- 21 Nov, 2008 2 commits
-
-
Michael Hanselmann authored
ganeti-masterd: Add initialization and shutdown of RPC pool. It needs to be shutdown before forking. ganeti.cli: Add decorator function to initialize and shutdown RPC pool. ganeti.rpc: Add functions to initialize and shutdown RPC pool. Throw exception when used without proper initialization. gnt-cluster, gnt-node: Use decorator function to initialize and shutdown RPC pool. Reviewed-by: iustinp
-
Michael Hanselmann authored
Reviewed-by: iustinp
-
- 19 Nov, 2008 1 commit
-
-
Michael Hanselmann authored
Before we had lots, lots and lots of code duplication. This patch changes the code to use four central functions. Reviewed-by: iustinp
-
- 12 Nov, 2008 3 commits
-
-
Michael Hanselmann authored
Reviewed-by: iustinp
-
Michael Hanselmann authored
This is one of the last places where the simplejson module is used directly. Reviewed-by: iustinp
-
Michael Hanselmann authored
Currently, HttpClientManager is instantiated for every RPC call. This will be changed with another patch, as will the use of SSL. The “Run” method is no longer needed. Reviewed-by: iustinp
-
- 23 Oct, 2008 1 commit
-
-
Iustin Pop authored
We want to export the disk index as some OSes will only want to export the first disk (or the second one, etc.), even if we have multiple disks. The patch also updates the backend.ExportSnapshot docstring. Reviewed-by: ultrotter
-
- 22 Oct, 2008 1 commit
-
-
Guido Trotter authored
- Change ImportOSIntoInstance not to get any "os_disk" and "swap_disk" arguments but to accept multiple target images to import, and to return a list of booleans with the result of each import - Change the relevant rpc call and the only caller to conform - Pass arguments to the import script through the environment - Run one import os script for each disk image, passing an IMPORT_DEVICE Reviewed-by: iustinp
-
- 20 Oct, 2008 6 commits
-
-
Iustin Pop authored
The two main multi-node job queue RPC calls (jobqueue_update, jobqueue_rename) are converted to address-based calls, in order to speed up queue changes. For this, we need to change the _nodes attribute on the jobqueue to be a dict {name: ip}, instead of a set. Reviewed-by: imsnah
-
Iustin Pop authored
This patch allows rpc.call_upload_file to use addresses (if passed), and also converts the ConfigWriter._DistributeConfig to pass them, since this is an often-done operation. Reviewed-by: imsnah
-
Iustin Pop authored
This patch converts all non-staticmethods rpc calls to pass addresses to the Client calls. This is done via two new small helpers. These functions also deal with nodes that are not (yet) in the configuration file, and pass None for the address instead (which allow NodeControllers to do resolving). Reviewed-by: imsnah
-
Iustin Pop authored
The patch adds support for passing node addresses to NodeController objects, which should speed up the connect sequence. The patch also adds another very small optimization of computing the content-length header value in the parent Client class instead of each NodeController. Reviewed-by: imsnah
-
Iustin Pop authored
This patch renames some internal function to camel case, for compliance with the style guide. It also fixes the module docstring (how old was that?). Reviewed-by: imsnah
-
Iustin Pop authored
Reviewed-by: imsnah
-
- 17 Oct, 2008 1 commit
-
-
Guido Trotter authored
- remove now unused osdev and swapdev arguments from backend, noded, rpc, cmdlib - convert docstrings to epydoc Reviewed-by: iustinp
-
- 15 Oct, 2008 1 commit
-
-
Iustin Pop authored
A new multi-node call is added that sets/resets the drain flag. Reviewed-by: imsnah
-
- 14 Oct, 2008 3 commits
-
-
Iustin Pop authored
As for the hvparams, we need to replace the sent instance beparams. Reviewed-by: ultrotter
-
Iustin Pop authored
We fill the instance hvparams with cluster defaults, and send a modified dict over the wire to the node methods - they don't know anything about cluster defaults versus instance parameters. Reviewed-by: ultrotter
-
Iustin Pop authored
The newly-added node-specific ValidateParams hypervisor method is exported over RPC, using the semi-standard (success, message) return value. Multi-node call, so that we call on both primary and secondary at once. Reviewed-by: ultrotter
-
- 13 Oct, 2008 1 commit
-
-
Iustin Pop authored
This fixes: - whitespace change, double lines between methods - duplication of call_upload_file, introduced by mistake in rev 1795 and which went undetected because of the many changes in that ref (only diff -b shows it clearly) - call_instance_info didn't pass the hypervisor name parameter, but the backend requires it Reviewed-by: ultrotter
-
- 12 Oct, 2008 1 commit
-
-
Iustin Pop authored
Currently, we check if we have a given ip address (i.e. it's alive on one of our interfaces) but manually calling TcpPing(source=localhost). This works, but having it spread all over the code makes it hard to change the implementation. The patch abstracts this into a separate utils.OwnIpAddress(addr) function. We add a rpc call for it, which we use instead of the (single-use of) call_node_tcp_ping. We leave node_tcp_ping in, as seems useful and eventually it should be removed in a separate patch. Reviewed-by: imsnah
-
- 10 Oct, 2008 2 commits
-
-
Michael Hanselmann authored
Reviewed-by: iustinp
-
Iustin Pop authored
This big patch changes the call model used in internode-rpc from standalong function calls in the rpc module to via a RpcRunner class, that holds all the methods. This can be used in the future to enable smarter processing in the RPC layer itself (some quick examples are not setting the DiskID from cmdlib code, but only once in each rpc call, etc.). There are a few RPC calls that are made outside of the LU code, and these calls are left as staticmethods, so they can be used without a class instance (which requires a ConfigWriter instance). Reviewed-by: imsnah
-
- 08 Oct, 2008 1 commit
-
-
Iustin Pop authored
This (big) patch moves the hypervisor type from the cluster to the instance level; the cluster attribute remains as the default hypervisor, and will be renamed accordingly in a next patch. The cluster also gains the ‘enable_hypervisors’ attribute, and instances can be created with any of the enabled ones (no provision yet for changing that attribute). The many many changes in the rpc/backend layer are due to the fact that all backend code read the hypervisor from the local copy of the config, and now we have to send it (either in the instance object, or as a separate parameter) for each function. The node list by default will list the node free/total memory for the default hypervisor, a new flag to it should exist to select another hypervisor. Instance list has a new field, hypervisor, that shows the instance hypervisor. Cluster verify runs for all enabled hypervisor types. The new FIXMEs are related to IAllocator, since now the node total/free/used memory counts are wrong (we can't reliably compute the free memory). Reviewed-by: imsnah
-
- 07 Oct, 2008 1 commit
-
-
Iustin Pop authored
Currently the call_instance_migrate call only passes the instance name; we need to pass the whole object for the hypervisor_type changes (all the other individual instance rpc calls already pass the instance object). Reviewed-by: imsnah
-
- 06 Oct, 2008 1 commit
-
-
Iustin Pop authored
Currently there are three function in backend that need the cluster name in order to instantiate an SshRunner. The patch changes these to get the cluster name from the master in the rpc call; once the multi-hypervisor change is implemented, then very few places in which we need the SCR remain in the backend. Reviewed-by: killerfoxi, imsnah
-
- 01 Oct, 2008 1 commit
-
-
Michael Hanselmann authored
Replacing ssconf with utility functions. Reviewed-by: iustinp
-
- 09 Sep, 2008 1 commit
-
-
Iustin Pop authored
We create a multi-node call so that querying all nodes for agreement will be fast. Reviewed-by: imsnah
-
- 08 Aug, 2008 2 commits
-
-
Michael Hanselmann authored
This will be used to archive jobs. Reviewed-by: iustinp
-
Michael Hanselmann authored
jobqueue_update: Uploads a job queue file's content to a node. The most common operation is to upload something that we already have in a string. Unlike in the upload_file function, the file is not read again when distributing changes, but content has to be passed as a string. jobqueue_purge: Removes all queue related files from a node. Reviewed-by: iustinp
-
- 30 Jul, 2008 2 commits
-
-
Iustin Pop authored
This is mostly: - whitespace fix (space at EOL in some files, not all, broken indentation, etc) - variable names overriding others (one is a real bug in there) - too-long-lines - cleanup of most unused imports (not all) Reviewed-by: ultrotter
-
Iustin Pop authored
This patch adds a new, unused for now, parameter to the start and stop master operations in backend. The idea behind it is that we need to be able to control whether the IP (de)activation is coupled with daemon startup/shutdown. The callers are also modified to pass this parameter (even if unused for now). Reviewed-by: ultrotter
-
- 20 Jun, 2008 1 commit
-
-
Iustin Pop authored
This patch adds rpc layer calls (in rpc.py and the equivalent in ganeti-noded) to close a list of block devices, and the wrapper in backend.py that takes a list of Disk objects, identifies them and returns correctly formatted results. The reason why this very basic call was missing until now from the rpc layer is that we usually don't care about device closes (though we should, and will do so in the future) as only drbd has a meaningful Close() operation; right now we directly do Shutdown(). The patch is clean enough that it's actually independent of the live migration implementation. Reviewed-by: imsnah
-
- 17 Jun, 2008 1 commit
-
-
Iustin Pop authored
This simple patch exposes the block device grow operation at the rpc layer. It does not increase the protocol version as it has been recently changed by the live failover rpc call. Reviewed-by: imsnah
-
- 16 Jun, 2008 1 commit
-
-
Iustin Pop authored
This patch adds the migration rpc call and its implementation in the backend. The patch does not deal with the correct activation of disks. Because of the new RPC, the protocol version is increased. Reviewed-by: imsnah
-
- 28 Apr, 2008 1 commit
-
-
Iustin Pop authored
Currently the iallocator execution takes place in the master, which is a violation of the current architecture, and will create problems with a threaded master daemon. This patch moves the execution to the backend, similar to the hooks runner, by: - introducing a new class that handles the execution in the backend (and could be used also for listing the allocators, etc.) - introducing a new rpc call - replacing the actual execution in IAllocator.Run() with a rpc call This passes burnin with the dumb allocator Reviewed-by: imsnah
-
- 05 Apr, 2008 1 commit
-
-
Manuel Franceschini authored
Reviewed-by: ultrotter
-
- 02 Apr, 2008 1 commit
-
-
Michael Hanselmann authored
ConfigParser.SafeConfigParser doesn't support unicode string objects. Unicode string objects are returned by simplejson. Reviewed-by: iustinp
-
- 05 Mar, 2008 1 commit
-
-
Michael Hanselmann authored
Reviewed-by: ultrotter
-
- 22 Feb, 2008 1 commit
-
-
Iustin Pop authored
This patch switches from the twisted usage for inter-node protocol to simple BaseHTTPServer/httplib. The patch has more deletions because we use no authentication, no encryption at all. As such, this is just for trunk, and only for testing. What it brings is the ability to use the rpc library from within multiple threads in parallel (or it should so). Since the changes are very few and non-intrusive, they can be reverted without impacting the rest of the code. This passes burnin. QA was not tested. Reviewed-by: imsnah
-