- Nov 05, 2009
-
-
Guido Trotter authored
In order to allow working with older versions of autoconf we backport this macro, but only if it's not defined already (by autoconf itself). This commit can be reverted after we decide support for autoconf 2.61 and below should be deprecated. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Nov 04, 2009
-
-
Iustin Pop authored
This patch adds a check for listening on the remote port in Xen and KVM migrations. This will be generating a single “load of migration failed” message for KVM, but otherwise not prevent the migration. For Xen (which has a dedicated, always listening daemon) this should not create any problems. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
Currently the migration of an instance doesn't show any error until the end. We add two messages that show better the progress: node1# gnt-instance migrate -f instance5 Wed Nov 4 04:04:34 2009 Migrating instance instance5 Wed Nov 4 04:04:34 2009 * checking disk consistency between source and target Wed Nov 4 04:04:35 2009 * switching node node3 to secondary mode Wed Nov 4 04:04:35 2009 * changing into standalone mode Wed Nov 4 04:04:35 2009 * changing disks into dual-master mode Wed Nov 4 04:04:40 2009 * wait until resync is done Wed Nov 4 04:04:41 2009 * preparing node3 to accept the instance Wed Nov 4 04:04:41 2009 * migrating instance to node3 Wed Nov 4 04:04:51 2009 Migration failed, aborting Wed Nov 4 04:04:51 2009 * switching node node3 to secondary mode Wed Nov 4 04:04:51 2009 * changing into standalone mode Wed Nov 4 04:04:51 2009 * changing disks into single-master mode Wed Nov 4 04:04:57 2009 * wait until resync is done Failure: command execution error: Could not migrate instance instance5: Failed to migrate instance: Failed to migrate instance instance5: … Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
This changes KVM to use HV_MIGRATION_PORT instead of KVM_MIGRATION_PORT and enables passing the port for Xen migrations. Since KVM_MIGRATION_PORT is not used anymore, we stop exporting it from constants.py. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
This parameter will replace the direct use of KVM_MIGRATION_PORT and the implicit use of the Xen migration port. While it doesn't make sense to change this at instance level, we don't have any other infrastructure for cluster-wide hypervisor parameters, so we add it here (and document that it usually shouldn't be changed on a per-instance basis). Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
Currently the $hypervisor.MigrateInstance takes the instance name. This patch changes it to take the instance object, such that other instance properties (especially hvparams) are available to it. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
Since instances can live in different VLANs from nodes (especially in routed mode), based on the 'link' parameter, we shouldn't always restrict having duplicate IPs. Thus we only check the node IPs/cluster IP for now. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Olivier Tharan <olive@google.com>
-
Iustin Pop authored
Currently a few of the LU's CheckPrereq use utils.HostInfo which raises a resolver error in case of failure. This is an exception from the standard that CheckPrereq should raise an OpPrereqError if the error is in the 'pre' phase (so that it can be retried). This patch adds a new error code (resolver_error) and a wrapper over utils.HostInfo that just converts the ResolverError into OpPrereqError(…, errors.ECODE_RESOLVER). It then uses this wrapper in cmdlib, bootstrap and some scripts. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
This patch adds a check that the cluster IP, the nodes primary (and secondary, if enabled) IP(s) and the instances NIC IPs are unique in the cluster. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Nov 03, 2009
-
-
Iustin Pop authored
This patch is an attempt to fix the ugly issue during migration: Cannot resync disks on node …: [True, 100] If my understanding is correct, sometimes we poll the /proc/drbd file at an inoportune moment, while it's being updated, or while the DRBD device is changing state, and we see an unexpected state. Based on the assumption that this is just a transient state, rather than aborting directly, we change the backend.DrbdWaitSync() function to retry a few times the operation, giving DRBD a chance to settle down at the end of the resync. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
A newer version of pylint, more warnings… Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
This reverts commit 37fc2cf5, since it introduces configure.ac changes that depend on very very new autoconf macros that are not present in current stable distros (and it was not advertised as such). Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
This reverts commit ce0eb669, since it depends on 37fc2cf5 which will be reverted too. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
This patch changes the behaviour of _WriteConfig in case of configuration errors: - before, it used to abort the saving (even though the in-memory configuration used by current jobs has already changed) - now, we log it (both to the log and to the user) but continue, since we can't revert to a good version of the config anyway This should make the internal behaviour of the code more consistent with the external world, even though the config might be “wrong”; we leave the cleanup to the user. This should not be as bad as it sounds, since we haven't actually seen this case except for the ugly master candidates handling, and that was fixed recently by Guido's patch series. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
This requires git and lockfile-progs, and only backs up config.data (see the comments why). Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Guido Trotter authored
If this is enabled at configure time, we pass in different parameters to the socat console, making it a lot more manageable. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Guido Trotter authored
Currently we use a static value for the socat path, or we trust the user-provided one. With this patch we still trust any user provided value, but if none is passed we check for socat on the machine we're being configured on. This allows us also to check if we can or cannot use the escape= feature in socat. If the user has forced the path in, he can also pass --with-socat-escape in order to force the escape functionality to be used, even if a check is not done. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Guido Trotter authored
Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Iustin Pop authored
Since ':' is not a valid character in PV names (for the way Ganeti uses LVM), we need to check this and warn the user. This patch adds a new NV_PVLIST cluster verify check and verifies the PV names returned from the nodes. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
We will need to enumerate selectively the PVs of (possible) many VGs and not only the allocatable ones. For this we make the VG selection and the allocatable filtering optional. The two callers are modified for this new calling syntax. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
While ':' is not actually a supporte character in PV names (it has a special meaning for commands like lvcreate), we should throw specific errors for this case instead of generic “Can't create LV”. This patch does two things: - modifies the separator used when listing PVs to be '|' such that we can actually parse ':' as part of PV names - check if any of the discovered PVs have ':' in their name when creating LVs, and if so throw a specific error Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Michael Hanselmann authored
Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
Also replaces a hardcoded limit of 15 seconds with 1/4 of NET_RECONFIG_TIMEOUT. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
There are quite a few retry loops with timeouts in Ganeti's code. Duplicating code is not good, so this patch introduces a new function named “utils.Retry” to remedy this situation. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Nov 02, 2009
-
-
Iustin Pop authored
Currently the repair storage has two issues: - down instances are aborting the operation, even though they should be ignored (it's not technically possible to know their disk status unless we would activate their disks) - if the VG is so broken that disks cannot be activated via gnt-instance activate-disks or gnt-instance startup, it's not possible to repair the VG at all The patch makes the opcode skip down instances and also introduces an ``--ignore-consistency`` flag for forcing the execution of the LU. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
This finishes the conversion of OpPrereqError creation to two-argument style. Any leftovers as one-argument are not breaking anything, just losing information about the errors. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
This patch adds a new ecode argument to RpcResult.Raise(). This allows specifying the error code (for both OpExec and OpPrereq errors). Note that this patch also makes the OpExecError exceptions raised from _FindFaultInstanceDisks have the error code classification. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
This patch introduces a two-argument style for OpPrereqError. Only the direct raise calls in cmdlib.py are converted, other users will follow. cli.py is modified to handle both two-argument style and the current format. RAPI doesn't need modification as the way we encode errors is already using a list for the error arguments, so RAPI users only need to start checking the list length and the second argument. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
This is only used in two places, in an error path that is no longer valid since Ganeti 2.0. We remove the try..except since we should not get it anymore (and if we do, then we should catch it in all config.Update cases) and we remove the exception class completely. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Michael Hanselmann authored
Exporting an instance not running or without activated disks will fail. This patch makes sure to activate disks before exporting an instance if it's in the ADMIN_down state. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Michael Hanselmann authored
Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Michael Hanselmann authored
Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Iustin Pop authored
This patch unifies the query fields in the storage framework for all types. Note that the information is still computed on-demand, so if e.g. the used disk space is not requested for the ‘file’ type, it won't be computed on nodes. Summary of changes: - improve the LVM storage type to support multiple lvm fields in the LIST_FIELDS declaration and constant (not-computed via lvm commands) fields - rename utils.GetFilesystemFreeSpace to utils.GetFilesystemStats returning tuple of (total, free) - add used and free as valid fields for lvm-vg (use being computed as vg_size-vg_free) - make allocatable accepted for all types (ones which are always allocatable always return True) - add a new list field ‘type’ that gives the current selected type; not much useful today (except for understanding what the default output is) but in the future might help if we want to list multiple types - add type, size and allocatable to the default output field list - update the man page with details on how, for file storage, size ≠ used + free for non-mountpoint cases Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-