- Sep 18, 2009
-
-
Iustin Pop authored
This was already unified inside gnt-instance, I just moved that definition (and upper-cased it) into cli.py. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
This patch also changes the gnt-debug's “--algorithm” into IALLOCATOR_OPT, since it was the only non-standard use of this (due to historical reasons). Since it's just a debug option, backwards-compatibility is not critical here. 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
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
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:
Michael Hanselmann <hansmi@google.com>
-
Guido Trotter authored
The install guide asks the user to use the fqdn in the hostname, but doesn't explain why. This has been asked multiple times, so adding an explanation there. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Olivier Tharan <olive@google.com>
-
- Sep 17, 2009
-
-
Michael Hanselmann authored
Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
Also increase the table of contents' depth to 4. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Iustin Pop authored
One of the issues we have in ganeti is that it's very hard to test the error-handling paths; QA and burnin only test the OK code-path, since it's hard to simulate errors. LUVerifyCluster is special amongst the LUs in the fact that a) it has a lot of error paths and b) the error paths only log the error, they don't do any rollback or other similar actions. Thus, it's enough for this LU to separate the testing of the error condition from the logging of the error condition. This patch does this by replacing code blocks of the form: if x: log_error() [y] into: log_error_if(x) [if x: y ] After this change, it's simple enough to turn on logging of all errors by adding a special case inside log_error_if such that if the incoming opcode has a special ‘debug_simulate_errors’ attribute and it's true, it will log unconditionally the error. Surprisingly this also turns into an absolute code reduction, since some of the if blocks were simplified. The only downside to this patch is that the various _VerifyX() functions are now stateful (modifying an attribute on the LU instance) instead of returning a boolean result. Last note: yes, this discovered some error cases in the logging. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
Currently the output of cluster verify can be parsed for 'ERROR' messages, but that is the only indication we get (error or no error). In order to allow monitoring tools to separate different error conditions, this patch introduces a new output format (“gnt-cluster verify --error-codes”) that changes the output from human-friendly to machine-friendly. In this mode, an error line changes from: ERROR: node node1: drbd minor 1 of instance inst1.is not active to: ERROR:ENODEDRBD:node:node1:drbd minor 1 of instance inst1 is not active i.e. the error message is a ‘:’-separated field, with ERROR in the first place, the error code in the second, the object type (cluster, node, instance) in the third, the name of the object (for nodes/instances) in the fourth, and then the text message. The patch also removes some of the verbosity of the operation (“Verifying instance X”, “Verifying node X”) since on big clusters these informational messages can quickly fill up an entire screen. The original behaviour can be restored via the ‘--verbose’ option. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
Currently multiple files define a 'verbose' option. This patch moves all these definitions to a single VERBOSE_OPT option which is exported from cli.py. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
Right now, the export list is a mess, it's not sorted, and the exported items are in random places. This patches does grow the length of the list, but at least it's more clear. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Sep 16, 2009
-
-
Michael Hanselmann authored
Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
It's redundant with RpcResult.fail_msg. This change survived QA, burnin and unittests. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Luca Bigliardi authored
Extend confd to answer queries about nodes primary IPs and master candidates primary IPs. Signed-off-by:
Luca Bigliardi <shammash@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Guido Trotter authored
Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Guido Trotter authored
Initial confd client library implementation. This initial version uses asyncore, and supports answers via a callback. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Guido Trotter authored
This way it can be used by the client as well Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Guido Trotter authored
Checking that the fourcc code is indeed a fourcc code, and that request codes and reply statuses are distinct. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Guido Trotter authored
Make sure that if we try to send packages which are too big (which shouldn't happen) this gets properly logged in the config file. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Luca Bigliardi <shammash@google.com>
-
Guido Trotter authored
This will make it easier to change the protocol later on Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Guido Trotter authored
Currently we read maximum 4K packets, and don't check packets when sending them. With this patch we move to a well defined maximum size of 60K. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Guido Trotter authored
It refers to an older input variable Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Guido Trotter authored
This allows this extended asyncore+udp module to be used also in other daemons, and in the confd client library Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Guido Trotter authored
Currently if we fail writing to the socket (perhaps because a signal was delivered) we lose the data we were sending. Although this is not too bad (it's udp, and data may get lost anyway) we try to avoid this by just putting the packets to write in a queue and handling that through the normal asyncore methods. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Guido Trotter authored
Currently if a signal is delivered during an attempted read, an exception is logged in the logfile. There is no need for this, so we handle this case explicitely. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Luca Bigliardi authored
Copy pub_key in authorized_keys. Signed-off-by:
Luca Bigliardi <shammash@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Sep 15, 2009
-
-
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>
-
Michael Hanselmann authored
Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
This can be useful for debugging locking problems. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
There are two major arguments for this: - There will be more callbacks (e.g. for lock debugging) and extending the parameter list is a lot of work. - In the jqueue module this allows us to keep per-job or per-opcode variables in a separate class. Instead of having to clean up the worker class after processing one job, these references will automatically go out of scope. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Sep 14, 2009
-
-
Iustin Pop authored
LUAddNode has this usage remaining, as it's the only other LU to use call_node_verify (beside LUVerifyCluster). Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
Currently, “gnt-cluster verify” and “gnt-cluster verify-disks” use the list of LVs as returned by backend.GetVolumeList to determine whether an LV exists or not. However, LVs can also be ‘virtual’, which is handled correctly (i.e. as missing) by the bdev code, but not by this function. This patch changed GetVolumeList to simply skip virtual LVs; this makes cluster verify and verify-disks report these correctly as missing. The only downside is that an user could get confused (lvs reports the volume as existing, but ganeti as missing). However, this is better than simply considering virtual LVs as “good”. No other code beside these two gnt-cluster operations uses the GetVolumeList function, so we don't change the behaviour of the rest of the code (e.g. replace-disks, instance info, etc.). Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Michael Hanselmann authored
This is for some more symetry with SharedLock.__exclusive_acquire. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Michael Hanselmann authored
This broke “gnt-instance replace-disks --auto” when the instance is down. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Olivier Tharan <olive@google.com>
-
Michael Hanselmann authored
Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Olivier Tharan <olive@google.com>
-
Michael Hanselmann authored
* commit 'origin/next': Fix gnt-node modify online help Fix gnt-job info entry in gnt-job(8) locking: Don't swallow exceptions Add check for duplicate MACs in instance add scripts/gnt-node: fix a help string Optimise multi-job submit Extend gnt-debug with more debugging options Conflicts: scripts/gnt-debug: Trivial scripts/gnt-node: Trivial
-