- Jun 10, 2010
-
-
Michael Hanselmann authored
Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- Jun 08, 2010
-
-
Michael Hanselmann authored
Once we have a size for an export (in the context of the import/export daemon), we can provide the user with a percentage and ETA. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Michael Hanselmann authored
This reports the amount of data transferred and the throughput (averaged over 60 seconds) to the master daemon. While not yet fully implemented, once the export scripts report the expected data size, we can even provide an ETA and percentage. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- Jun 04, 2010
-
-
Guido Trotter authored
Sometimes a node has never been a master. Or ran rapi. In that case we need to create the file (because if later rapi gets started, it won't be able to create it itself). Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
René Nussbaumer authored
This is a workaround until we fully switched to user separation and fixes the owners of directories/log files so ganeti-rapi will start flawlessly. This is right now run for every daemon but as it operates on a relatively small subset its impact is small. Signed-off-by:
René Nussbaumer <rn@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
René Nussbaumer authored
Signed-off-by:
René Nussbaumer <rn@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
René Nussbaumer authored
Signed-off-by:
René Nussbaumer <rn@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Jun 03, 2010
-
-
Guido Trotter authored
Not much changes with this patch. The main loop for the IOServer is repaced by mainloop.Run() and the main thread now uses asyncore to handle connections to the master socket. Once it accepts them, though, it just pushes them to the current infrastructure, and everything proceeds as before. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Tom Limoncelli authored
Update ganeti-watcher so that it tests the master's RAPI port with a simple test (in this case GetVersion). If it fails, make one attempt at restarting ganeti-rapi and retest. - daemons/ganeti-watcher: Test rapi and make one attempt at restarting it. - lib/utils.py: add StopDaemon() function. Signed-off-by:
Tom Limoncelli <tlim@google.com> Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- May 28, 2010
-
-
Michael Hanselmann authored
The code parsing the child process' output is moved to a separate class in the impexpd module. As more programs are added, it'll become more complex and should be separated. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Michael Hanselmann authored
The import/export daemon code is already large. Moving some code to a separate module will make it smaller and easier to test. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Michael Hanselmann authored
Instead of passing around many variables for building the executed command, they're now kept as instance variables. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- May 25, 2010
-
-
Guido Trotter authored
This mixes AsyncNotifier with GanetiBaseAsyncoreDispatcher to provide an AsyncNotifier which will log errors, rather than bail out. Signed-off-by:
Guido Trotter <ultrotter@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>
-
Michael Hanselmann authored
For example, exports on the same node shouldn't be compressed. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Guido Trotter authored
Cut&Paste, plus the following changes: - The class is renamed to SingleFileEventHandler - The monitored filename must be passed in and doesn't default to the ganeti cluster config file - A small docstring is added to the class - Pylint disables for except: and method names are added This makes it possible to write unittests for this class. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Guido Trotter authored
This exception is caught, but never thrown. It became useless when we moved confd from on/off to enabled/disabled, but always running on all nodes. Removing its definition and the code catching it can do no harm. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- May 18, 2010
-
-
Michael Hanselmann authored
Importing/exporting an instance to a remote machine creates X509 certificates which expire after some time. They need to be removed from the nodes as they become useless. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Guido Trotter authored
Currently the EOM terminator is hardcoded on the server side, and is customizable in the Transport object (with the default being the same as the value found in the server), but not in the luxi client. With this patch we move the value to constants, and remove the "fake" customizability, which would just break client/server communication. If we ever need to have a luxi transport with a different terminator it's easy enough to add it back. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
Logfiles can be useful for debugging. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- May 17, 2010
-
-
Michael Hanselmann authored
Ganeti errors should also be logged with a backtrace. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- May 14, 2010
-
-
Guido Trotter authored
While mlock on noded is definitely good in most situations, there are some - namely my laptop - where it has no benefit, and uses precious non-swappable memory. To avoid this we make it optional, with a new --no-mlock option. Note that only the main node daemon and its http children are affected: the powercycle node child still uses mlock, which doesn't harm, since it's a short lived process happening just before node reboot anyway. The manpage is updated. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Luca Bigliardi <shammash@google.com>
-
- May 13, 2010
-
-
Luca Bigliardi authored
Node daemon logs will be printed on system console if writing on the log file fails. Signed-off-by:
Luca Bigliardi <shammash@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Luca Bigliardi authored
Signed-off-by:
Luca Bigliardi <shammash@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Luca Bigliardi authored
Signed-off-by:
Luca Bigliardi <shammash@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- May 03, 2010
-
-
Iustin Pop authored
These seem to be wrong, possibly a regression in pylint. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- Apr 27, 2010
-
-
Michael Hanselmann authored
Until now, exactly one attempt was made to establish a connection. If it failed, the whole import/export for the disk in question aborted. Retrying will make it more reliable. Unfortunately the listening part can't be made completely resiliant against DoS attacks without larger and complex changes to the daemon and using socat's EXEC: address combined with forking. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
Michael Hanselmann authored
Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
Michael Hanselmann authored
Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
- Apr 23, 2010
-
-
Michael Hanselmann authored
This can be very useful if client programs run as non-root. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Michael Hanselmann authored
Both of these functions, “snapshot_export” and “instance_os_import”, have been replaced by the instance import/export daemon. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- Apr 22, 2010
-
-
Michael Hanselmann authored
This will be used to stop the daemon without doing complete cleanup (yet). 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>
-
- Apr 16, 2010
-
-
Michael Hanselmann authored
These RPC calls can be used to start, monitor and stop the instance data import/export daemon. Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
This backend daemon for instance import and export will be used to transfer instance data to other machines. It is implemented in a generic way to support different ways of data input and output. The third-party program “socat”, which is already used by the KVM hypervisor abstraction, is used to connect to remote machines using SSL/TLS. After starting the child processes in a separate process group, the import/export daemon monitors their output and updates a status file regularily. This status file can then be read by ganeti-noded (not in this patch). Three I/O methods are supported: Raw disk, file and script. Each of these can be used for import and export. Similar to daemon-util, an incomplete set of tests written in Bash is included. Two future enhancements are planned: - Run parts of the command chain as a dedicated user (privilege separation). - Currently users of this daemon have to poll the status file while data is transferred. This is inefficient and creates unnecessary delays. By adding “dd” into the chain and sending it SIGUSR1 regularily, we can get some statistics, optimize the polling frequenc and even provide the user with an ETA (which isn't available with all current methods to import/export instance data). Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Apr 09, 2010
-
-
Guido Trotter authored
Under squeeze pylint reports the following errors: ************* Module ganeti.serializer E1103:155:LoadSignedJson: Instance of 'False' has no 'get' member (but some types could not be inferred) ************* Module ganeti-masterd E1103:166:ClientRqHandler.handle: Instance of 'False' has no 'get' member (but some types could not be inferred) E1103:167:ClientRqHandler.handle: Instance of 'False' has no 'get' member (but some types could not be inferred) ************* Module gnt-instance E1103:431:BatchCreate: Instance of 'False' has no 'keys' member (but some types could not be inferred) For the first two cases it's actually wrong: we had checked before that the variable on which "get" is called is actually a dict. In the third case though such check doesn't exist, so we add it. Then we silence the error all three times. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Iustin Pop authored
Since the actions are potentially destructive, we should try to get a consistent view of the cluster, so it's better to get the most coverage possible. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- Apr 08, 2010
-
-
Iustin Pop authored
This patch changes the watcher so that it maintains (on all nodes) the list of instances and DRBD devices by shutting down ones that confd daemons indicate should not be running on this node. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- Mar 30, 2010
-
-
René Nussbaumer authored
Before this was "400 Bad Request" and thus it didn't reflect the reality. Signed-off-by:
René Nussbaumer <rn@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
- Mar 23, 2010
-
-
Iustin Pop authored
Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-