- Jun 23, 2010
-
-
Iustin Pop authored
This patch exports all the way from backend a new field ‘api_version’ which holds the list of support API versions, and exposes the (already computed) ‘parameters’ field. The patch also reworks (again) the field calculation in its Exec() method. All callers of LUDiagnoseOS pass in the 'valid' and 'variants' parameters, thus having the special casing of whether to compute or not the validity seems overkill. We move to a model where we always compute these across-nodes arguments, in order to simplify the code, and we also change the parameters set to be intersection of all node's values (which means a change in description will drop the parameter from the list of parameters). Additionally, we update scripts/gnt-os, which was broken for multi-dir OSes since the introduction of variants… Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
Nothing special here, just copy/adjust the beparams code. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
We move the instance OS rename checks earlier, as we need to run the validation against the new OS, if it has changed. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
We use _GetUpdatedParams in order to support removal too, and then validate the OS parameters if the OS exists. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
This patch adds controls for whether we recognize constants.VALUE_DEFAULT or not as a default value, and also adds dash-prefixes as another way for parameter removal. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
This is not yet complete, as it lacks proper support for instance import. 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:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
While we only support the 'parameters' check today, the RPC call is generic enough that will be able to support other checks in the future. The backend function will both validate the parameters list (so as to make sure we don't pass in extra parameters that the OS validation doesn't care about) and the parameter values, via the OS verify script. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
The patch also modifies the internal methods in LUDiagnoseOS and gnt-os to deal with the format change of call_os_diagnose. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
The OS parameters code will bump the number of lines over 10K, and thus we need to silence this (no, we don't want any other module to become this big…, so we use a targeted silence only). Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Guido Trotter authored
If the repetition count is not passed or is passed as 0 we sleep exactly one time, otherwise we sleep "repeat" times and log in between. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Jun 22, 2010
-
-
Iustin Pop authored
Commit cf26a87a added a tiny typo, which would break non-FQDN arguments to modify node storage. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
The update of the valid status in LUDiagnoseOS says: valid = valid and osl and osl[0][1] However, in Python, “True and []” (which '[]' we get for an invalid OS) will result in “[]”, and thus the valid field for an OS will be either True or an empty list. Which is not what we want… Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- Jun 14, 2010
-
-
Iustin Pop authored
Currently, this function does three things: - special handling of constants.VALUE_DEFAULT - type enforcing of the resulting dict - filling the dictionary with defaults However, except for the first one, the second two do not belong in this function: - in the future, not all parameter dictionaries will be able to be enforced - filling the dictionary with defaults cannot be done via a defaults dict in all cases, and should be done by the specialized functions (ideally we'd pass a partial function instance here, but we don't have that yet…) As such, we remove the last items, and move them to the callers; this is overall the same complexity, as we were calling this function in just three places and constructing the many arguments was also complicated. Furthermore, we move the function out of LUSetInstanceParams, as in the future it will be used by LUSetClusterParams too. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
Currently, the existing cluster.Fill* functions take as argument an instance. This means that in any case where we don't have an actual instance object, we have to resort to calling the low-level objects.FillDict function. This is bad for two reasons: - we have to know of, and we hardcode, the cluster object internals (e.g. that the nicparams are stored in a dict indexed by group) - which can result in subtle bugs, if the underlying storage mechanisms change This patch adds a lower-level implementation SimpleFillHV for FillHV and SimpleFillBE for FillBE, and adds a completely new SimpleFillNIC (all use cases until now hardcoded cluster.nicparams[constant.PP_DEFAULT] directly); it then uses these new functions in cmdlib.py. A side effect is that _CheckNicsBridgesExist loses the 'profile' parameter, which was unused. If it's needed, we should add it later via a proper profile parameter to SimpleFillNIC. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
Since the introduction of OS-specific hvparams, we shouldn't ever use objects.FillDict directly for instances, but instead go via the cluster object. Otherwise the os_hvp will be ignored. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
In case an OS has inconsistent declarations, we might get into a case where one node reports a valid variants list (with OS API >=15), and another node has OS API < 15, in which case its supported_variants gets the default value of None. This leads to the same variable having inconsistent data types, which leads to subtle bugs later: instead of reporting something like "Inconsistent OS API versions", the LU exits with a run-time exception. Furthermore, in another datapath, variants is initialized to '[]' in case of OS diagnose failures. The patch changes _TryOSFromDisk to initialize variants to '[]' for OS api level below 15, and changes the variants calculation in DiagnoseOS to be more readable. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Michael Hanselmann authored
This restores functionality lost in commit 387794f8. Found during tests using QA scripts. An instance should be started after it has been temporarily shutdown for an export. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Michael Hanselmann authored
This should prevent bugs in our code from accidentally overwriting disks. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Michael Hanselmann authored
The hostname and port received from the remote cluster should be validated, just in case. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- Jun 11, 2010
-
-
Guido Trotter authored
With this change unknown disk and nic parameters will be refused, rather than silently ignored, so that one can't pass them in by mistake and not realize what went wrong. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Guido Trotter authored
The various _Check* helper functions expect an lu to be passed in, but the TL is passed instead. This works... sometimes! :) Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Jun 08, 2010
-
-
Michael Hanselmann authored
Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- Jun 04, 2010
-
-
Guido Trotter authored
Currently it's impossible to grow a disk if an instance is shutdown, because the disk could not be assembled. Now we take care of assembling it, and shutting it down after. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Guido Trotter authored
If the disks= parameter is passed, we can assemble/wait for sync/shutdown only some disks belonging to an instance, rather than all. This is useful to only activate/sync/shutdown the affected disk when growing it. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Jun 01, 2010
-
-
Michael Hanselmann authored
The cluster domain secret file was not distributed to other nodes. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- May 21, 2010
-
-
Michael Hanselmann authored
The X509 key name and CA are passed from cmdlib all the way to the backend import/export daemon. With the addition of an option to choose the compression method, another parameter would have to be passed all the way. By moving these options to a separate object, adding new ones will become much easier. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- May 18, 2010
-
-
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
To prepare a remote export, the X509 key and certificate need to be generated. A handshake value is also returned for an easier check whether both clusters share the same cluster domain secret. 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> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
Until now, the instance was always removed (if asked for by the user). In case of export errors however, it shouldn't. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- May 17, 2010
-
-
Michael Hanselmann authored
Inter-cluster instance moves need the disk template. As they run LUQueryInstanceData to get an instance's details, the disk template must be returned. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Iustin Pop authored
This also updates a comment in the unittest for utils.py. We unittest the new function for two things: correct reporting on real case (for localhost), and correct reporting with a mocked-out TcpPing that returns false. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- May 11, 2010
-
-
Iustin Pop authored
Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Balazs Lecz <leczb@google.com>
-
- May 04, 2010
-
-
Michael Hanselmann authored
This will simplify the implementation of intra-cluster instance exports and reduces the number of local variables in LUExportInstance.Exec. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- May 03, 2010
-
-
Iustin Pop authored
It seems that commit d8470559 dropped the cleanup of /etc/hosts when a node is removed from the cluster. I don't know for sure, but it seems accidental. As long as we add it to /etc/hosts, we should clean it up too. The patch also adds two FIXMEs since this kind of modifications should be done via RPC calls to the master's node daemon, not directly. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
If we are told to modify /etc/hosts, then verify its consistency during cluster verify. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- Apr 29, 2010
-
-
Michael Hanselmann authored
This function will also be useful for inter-cluster instance moves for verifying certificates. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
- Apr 23, 2010
-
-
Michael Hanselmann authored
Use instance data transfer utility to import instances. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-