- 17 Mar, 2014 1 commit
-
-
Jose A. Lopes authored
Move function 'CheckOSVariant' to the node and add parameter 'force_variant' to RPC 'os_validate', thus making the node verify the OS variant together with the rest of the OS params. Signed-off-by:
Jose A. Lopes <jabolopes@google.com> Reviewed-by:
Petr Pudlak <pudlak@google.com>
-
- 14 Mar, 2014 1 commit
-
-
Jose A. Lopes authored
According to Ganeti design, files should not be copied from master to nodes and instead they are assumed to exist and it is the user's responsibility to assure that the file does exist. Signed-off-by:
Jose A. Lopes <jabolopes@google.com> Reviewed-by:
Hrvoje Ribicic <riba@google.com>
-
- 13 Mar, 2014 1 commit
-
-
Klaus Aehlig authored
So far, the mcpu acquires locks that live in memory of masterd. This design does not fit with our jobs-as-processes goal. So make mcpu acquire the corresponding locks in WConfD instead. Note that this implies changes in various other files that call to the Ganeti Lock Manager directly. Signed-off-by:
Klaus Aehlig <aehlig@google.com> Reviewed-by:
Petr Pudlak <pudlak@google.com>
-
- 11 Mar, 2014 3 commits
-
-
Jose A. Lopes authored
* Use the empty string in 'ganeti.objects.Instance.os' to signify that the instance does not use OS scripts. * Make several calls related to OS scripts first test whether OS scripts are being used. * Allow OS images to be used in 'LUInstanceCreate'. * Update error message in unit tests related to missing OS type. Signed-off-by:
Jose A. Lopes <jabolopes@google.com> Reviewed-by:
Hrvoje Ribicic <riba@google.com>
-
Jose A. Lopes authored
Extend 'LUInstanceCreate' to image the instance's first disk if an OS image is specified via the OS params. If the OS image is a file, it will be copied to the node via SSH. If ths OS image is a URL, it will be passed directly to the node, which will then download the file. Signed-off-by:
Jose A. Lopes <jabolopes@google.com> Reviewed-by:
Hrvoje Ribicic <riba@google.com>
-
Jose A. Lopes authored
* Extract code, into '_RemoveDegradedDisks', that checks if the disks of an instance are degraded and, if so, remove the instance. * Add a nice comment Signed-off-by:
Jose A. Lopes <jabolopes@google.com> Reviewed-by:
Hrvoje Ribicic <riba@google.com>
-
- 05 Mar, 2014 1 commit
-
-
Jose A. Lopes authored
It seems '_CheckOSVariant' was moved from 'ganeti.cmdlib.instance' to 'ganeti.cmdlib.instance_utils' but the source was never deleted. This patch deletes the source copy if this function. Signed-off-by:
Jose A. Lopes <jabolopes@google.com> Reviewed-by:
Michele Tartara <mtartara@google.com>
-
- 20 Feb, 2014 2 commits
-
-
Dimitris Aragiorgis authored
Name of Disk/NIC were not exported during backup until now. Use the exported info during gnt-backup import. Signed-off-by:
Dimitris Aragiorgis <dimara@grnet.gr> Signed-off-by:
Michele Tartara <mtartara@google.com> Reviewed-by:
Michele Tartara <mtartara@google.com>
-
Dimitris Aragiorgis authored
Network UUID is written in .ini file during backup export but is not used by _ReadExportParams(). This patch fixes it. Please note that in case a network is given, link and mode should not be included in NIC options. This fixes issue 716. Signed-off-by:
Dimitris Aragiorgis <dimara@grnet.gr> Signed-off-by:
Michele Tartara <mtartara@google.com> Reviewed-by:
Michele Tartara <mtartara@google.com>
-
- 19 Feb, 2014 4 commits
-
-
Jose A. Lopes authored
Refactor name creation for the NICs used in instance communication. These names are generated based on a prefix and the instance name. Also, these names must be unique within a single instance. Signed-off-by:
Jose A. Lopes <jabolopes@google.com> Reviewed-by:
Hrvoje Ribicic <riba@google.com>
-
Jose A. Lopes authored
This patch adds the logic necessary to enable/disable the instance communication in a running instance via 'gnt-instance modify'. With instance communication enabled, the instance gets a new NIC that is meant to be used exclusively for the instance communication. With instance communication disabled, that same NIC is removed. Signed-off-by:
Jose A. Lopes <jabolopes@google.com> Reviewed-by:
Hrvoje Ribicic <riba@google.com>
-
Jose A. Lopes authored
* Add the instance communication flag to the 'OpInstanceSetParams' opcode. This flag allows the user to enable/disable instance communication in a running instance. This patch adds this flag but it does not implement the code that actually enables/disables the instance communication. * Because this flag is shared with 'gnt-instance add', the default is removed and inside 'GenericInstanceCreate' the default value is set. Signed-off-by:
Jose A. Lopes <jabolopes@google.com> Reviewed-by:
Hrvoje Ribicic <riba@google.com>
-
Jose A. Lopes authored
... which can be found just right below in the same module. Signed-off-by:
Jose A. Lopes <jabolopes@google.com> Reviewed-by:
Hrvoje Ribicic <riba@google.com>
-
- 18 Feb, 2014 1 commit
-
-
Jose A. Lopes authored
Signed-off-by:
Jose A. Lopes <jabolopes@google.com> Reviewed-by:
Hrvoje Ribicic <riba@google.com>
-
- 13 Feb, 2014 1 commit
-
-
Jose A. Lopes authored
* Add 'ganeti.objects.Cluster.instance_communication_network' to the config so the logical unit for 'OpInstanceCreate' can access the instance communication network which is stored in the cluster configuration. * Change logical unit for 'OpInstanceCreate' to use the instance communication network parameter defined in the cluster configuration instead of using a predefined one. Signed-off-by:
Jose A. Lopes <jabolopes@google.com> Reviewed-by:
Helga Velroyen <helgav@google.com>
-
- 07 Feb, 2014 2 commits
-
-
Santi Raffa authored
Modify InstanceCreate to accept process private and secret parameters. Signed-off-by:
Santi Raffa <rsanti@google.com> Reviewed-by:
Jose A. Lopes <jabolopes@google.com>
-
Santi Raffa authored
Modify InstanceSetParams to accept and process private parameters. Signed-off-by:
Santi Raffa <rsanti@google.com> Reviewed-by:
Jose A. Lopes <jabolopes@google.com>
-
- 06 Feb, 2014 1 commit
-
-
Jose A. Lopes authored
When an instance is being created, add an extra NIC (if necessary) which is meant to be used by the instance communication. Signed-off-by:
Jose A. Lopes <jabolopes@google.com> Reviewed-by:
Michele Tartara <mtartara@google.com>
-
- 03 Feb, 2014 1 commit
-
-
Hrvoje Ribicic authored
The LUInstanceCreate returned names instead of UUIDs in 2.6. Along the way, the names were internally replaced with UUIDs, and the abstraction leaked. This patch fixes the issue. Signed-off-by:
Hrvoje Ribicic <riba@google.com> Reviewed-by:
Thomas Thrainer <thomasth@google.com>
-
- 17 Dec, 2013 4 commits
-
-
Petr Pudlak authored
Move rpc.py to rpc/node.py and modify imports in existing code. Signed-off-by:
Petr Pudlak <pudlak@google.com> Reviewed-by:
Helga Velroyen <helgav@google.com>
-
Santi Raffa authored
Add parameters to the Gluster disk template so Gluster can manage the mount point point autonomously. Signed-off-by:
Santi Raffa <rsanti@google.com> Signed-off-by:
Thomas Thrainer <thomasth@google.com> Reviewed-by:
Thomas Thrainer <thomasth@google.com>
-
Santi Raffa authored
Gluster still does not mount anything autonomously, but this commit changes where Gluster expects its mountpoint to be. Signed-off-by:
Santi Raffa <rsanti@google.com> Signed-off-by:
Thomas Thrainer <thomasth@google.com> Reviewed-by:
Thomas Thrainer <thomasth@google.com>
-
Santi Raffa authored
Add Gluster to Ganeti by essentially cloning the shared file behaviour everywhere in the code base. Signed-off-by:
Santi Raffa <rsanti@google.com> Signed-off-by:
Thomas Thrainer <thomasth@google.com> Reviewed-by:
Thomas Thrainer <thomasth@google.com>
-
- 11 Dec, 2013 2 commits
-
-
Dimitris Aragiorgis authored
If param=default and the param already exists then we remove it from params dict. This is stolen by GetUpdatedParams() which is used for hvparams modification/inheritance. This means that 'default' value is not accepted for an arbitrary param of an ext disk. Signed-off-by:
Dimitris Aragiorgis <dimara@grnet.gr> Signed-off-by:
Michele Tartara <mtartara@google.com> Reviewed-by:
Michele Tartara <mtartara@google.com>
-
Dimitris Aragiorgis authored
Disks of ext template are allowed to have arbitrary parameters stored in the Disk object's params slot. Those parameters can be passed during creation of a new disk, either in LUInstanceCreate() or in LUInsanceSetParams(). Still those parameters can not be changed afterwards. With this patch we override this limitation. Currently, for the other disk templates we allow modifying only 'name' and 'mode'. Therefore, we introduce new constants MODIFIABLE_IDISK_PARAM* to include those params. If any other parameter is passed, _VerifyDiskModification() will raise an exception. Signed-off-by:
Dimitris Aragiorgis <dimara@grnet.gr> Signed-off-by:
Michele Tartara <mtartara@google.com> Reviewed-by:
Michele Tartara <mtartara@google.com>
-
- 09 Dec, 2013 1 commit
-
-
Petr Pudlak authored
This is required to prevent race conditions such as removing a network from a group and adding an instance at the same time. (See issue 621#2.) Signed-off-by:
Petr Pudlak <pudlak@google.com> Reviewed-by:
Thomas Thrainer <thomasth@google.com> Reviewed-by:
Michele Tartara <mtartara@google.com>
-
- 05 Dec, 2013 1 commit
-
-
Michele Tartara authored
If the file driver of an instance with file based storage is not specified, the default one is automatically added by the UpgradeConfig function. Fixes Issue 571. Signed-off-by:
Michele Tartara <mtartara@google.com> Reviewed-by:
Helga Velroyen <helgav@google.com>
-
- 02 Dec, 2013 1 commit
-
-
Dimitris Aragiorgis authored
In case no name is passed in disk modifications we should keep the old one. If name=none then set disk name to None. Signed-off-by:
Dimitris Aragiorgis <dimara@grnet.gr> Reviewed-by:
Jose A. Lopes <jabolopes@google.com>
-
- 27 Nov, 2013 1 commit
-
-
Thomas Thrainer authored
Both NODE and NODE_RES locks were acquired opportunistically if so requested by the user. LUInstanceCreate requires, however, that the actually locked elements on NODE and NODE_RES level are the same. This patch changes the locking of NODE_RES such that those locks are not acquired opportunistically any more. Instead, the mandatory locks are set to the acquired NODE locks once they are actually granted. This fixes issue 622. Signed-off-by:
Thomas Thrainer <thomasth@google.com> Reviewed-by:
Petr Pudlak <pudlak@google.com>
-
- 21 Nov, 2013 1 commit
-
-
Dimitris Aragiorgis authored
This will be useful for an external entity using RAPI that wants to modify devices of instances. The common use case for that is: "I want to add a NIC/disk to an instance. If it is running then try to hotplug the device. If not, then just add it to config." Another use case is that if we are unaware of the instance's hypervisor: "I want do add a NIC/disk to an instance and if its hypervisor is KVM try to hotplug it." For all those cases just print a warning in CheckPrereq() and disable any further hotplug related actions (and let modifications take place after reboot). Add NoHoplugSupport and HotplugIfPossible unittests an modify existing by explicitly creating successful RPC results for call_hotplug_supported. Signed-off-by:
Dimitris Aragiorgis <dimara@grnet.gr> Signed-off-by:
Thomas Thrainer <thomasth@google.com> Reviewed-by:
Thomas Thrainer <thomasth@google.com>
-
- 18 Nov, 2013 1 commit
-
-
Dimitris Aragiorgis authored
The administrator should be able to assign an externally reserved IP to a Ganeti instance manually, if desired. Currently this is not supported. External reservations should act as holes in the pool and not just as IPs already used by someone outside of Ganeti. Automatic allocation with ip=pool will continue to exclude those IPs as happens now. To allow such functionality the administrator needs to pass explicitly the desired IP along with the ``--no-conflicts-check`` option, or else an error will be produced as happens now. The aforementioned require the following changes: - Make IsReserved() to look either in reservations or external ones. - Make Reserve() and Release() to use IsReserved() with external argument True or False. - Pass extra option to ReserveIp() to bypass checking of external reservations - Update man pages and design doc for this change. Furthermore, a side effect of this patch is that it fixes the following problem: Currently, one could not mark an IP as external if it was already reserved (i.e. belonged to an instance). The code would produce a warning and fail silently. Fix config_mock.py so that if network and ip is given then reserve it in the pool. Signed-off-by:
Dimitris Aragiorgis <dimara@grnet.gr> Signed-off-by:
Thomas Thrainer <thomasth@google.com> Reviewed-by:
Thomas Thrainer <thomasth@google.com>
-
- 14 Nov, 2013 1 commit
-
-
Thomas Thrainer authored
Ganeti does not support optional fields in parameters (hypervisor-params, disk-params, etc.). OpenVSwitch related node parameters were the exception to this rule, which caused numerous problems related to import/export and (de-)serialization. The reason for making those parameters optional in the first place was to disallow them when OpenVSwitch is not used. This was not consistent with other parts of Ganeti, where we allow parameters to be set even though they are not actively used. This patch makes all node parameters mandatory and provides sensible defaults for them. Checks which make sure that certain parameters are not set in some cases were removed, and the tests adapted. Also, the inheritance logic from cluster -> node group -> node was implemented, as it was missing previously. Signed-off-by:
Thomas Thrainer <thomasth@google.com> Reviewed-by:
Hrvoje Ribicic <riba@google.com>
-
- 11 Nov, 2013 1 commit
-
-
Santi Raffa authored
DTS_FILEBASED is a constant that exists and this commit makes sure that it is used whenever sensible, rather than resorting to hardcoding the pair of templates in very many files. Signed-off-by:
Santi Raffa <rsanti@google.com> Reviewed-by:
Hrvoje Ribicic <riba@google.com>
-
- 31 Oct, 2013 2 commits
-
-
Petr Pudlak authored
Signed-off-by:
Petr Pudlak <pudlak@google.com> Signed-off-by:
Klaus Aehlig <aehlig@google.com> Reviewed-by:
Klaus Aehlig <aehlig@google.com>
-
Dimitris Aragiorgis authored
Introduce new RPC hotplug_supported that invokes the corresponding hypervisor's method which checks if hotplug is generally supported. Call this RPC early in CheckPrereq() and abort if hotplug is not supported. Currently only KVM hypervisor with qemu versions > 1.0. Please note that this check is unaware of target device and hotplug action. This latter check is still done during hotplug_device() RPC. Signed-off-by:
Dimitris Aragiorgis <dimara@grnet.gr> Signed-off-by:
Klaus Aehlig <aehlig@google.com> Reviewed-by:
Klaus Aehlig <aehlig@google.com>
-
- 29 Oct, 2013 5 commits
-
-
Thomas Thrainer authored
OpInstanceCreate now supports the 'compress' option. It allows to enable compression during instance imports. Signed-off-by:
Thomas Thrainer <thomasth@google.com> Reviewed-by:
Klaus Aehlig <aehlig@google.com>
-
Thomas Thrainer authored
Support compressing instance data while sending it to the target node on instance imports. Signed-off-by:
Thomas Thrainer <thomasth@google.com> Reviewed-by:
Klaus Aehlig <aehlig@google.com>
-
Thomas Thrainer authored
OpInstanceMove now supports the 'compress' option. It allows to enable compression for intra-cluster instance moves. Signed-off-by:
Thomas Thrainer <thomasth@google.com> Reviewed-by:
Klaus Aehlig <aehlig@google.com>
-
Thomas Thrainer authored
This unifies the inter- and intra-cluster moves and the backup code, so less code needs to be maintained. Also fix failing tests for LUInstanceMove by following the code changes in the tests. Signed-off-by:
Thomas Thrainer <thomasth@google.com> Reviewed-by:
Klaus Aehlig <aehlig@google.com>
-
Thomas Thrainer authored
The cluster object is already retrieved from the configuration, so use it consistently in LUInstanceMove.CheckPrereq(). Signed-off-by:
Thomas Thrainer <thomasth@google.com> Reviewed-by:
Klaus Aehlig <aehlig@google.com>
-