- Oct 20, 2008
-
-
Alexander Schreiber authored
During cluster init, set the default hypervisor to be used for instances. Ensure that the default hypervisor belongs to the set enabled hypervisors for this cluster. Also fix a small bug with setting the default enabled hypervisor list. Reviewed-by: imsnah
-
Alexander Schreiber authored
We no longer use a single, cluster-wide hypervisor, but configure the actual to be used hypervisor on the instance level. Reviewed-by: imsnah
-
- Oct 18, 2008
-
-
Alexander Schreiber authored
Reviewed-by: iustinp
-
- Oct 16, 2008
-
-
Iustin Pop authored
If we don't actually know the current master (as determined via voting), we prevent the failover. The patch also changes some messages (capitalization, typos). Reviewed-by: ultrotter
-
Iustin Pop authored
In order to account for future improvements to master failover, we move the actual data gathering capabilities from ganeti-masterd into bootstrap.py, and we leave only the verification into masterd. The verification procedure is then changed to retry multiple times (up to one minute) in case most nodes do not respond, and also the algorithm is changed to require at least half (but not half+1) votes, since our vote also should count (and we vote for ourselves). Example for consistent (config-wise) cluster: - 5 node cluster, 2 nodes down: still start - 4 node cluster, 2 nodes down: retry for one minute, abort Reviewed-by: ultrotter
-
- Oct 12, 2008
-
-
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
-
- Oct 10, 2008
-
-
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
-
Iustin Pop authored
Indentation in bootstrap was wrong and some names in cmdlib.py were not right. Reviewed-by: imsnah
-
- Oct 08, 2008
-
-
Iustin Pop authored
Since in 2.0 the user will possibly have more interaction with the hypervisor names, we sanitize them by removing the version numbers (the version can be a prerequisite for the ganeti installation, we shouldn't document it in variable names). Reviewed-by: schreiberal
-
Oleksiy Mishchenko authored
Reviewed-by: iustinp
-
- Oct 06, 2008
-
-
Iustin Pop authored
More places actually use the SshRunner than just the gnt-cluster commands. Reviewed-by: ultrotter
-
- Oct 01, 2008
-
-
Michael Hanselmann authored
Remove leftovers from ssconf. Reviewed-by: iustinp
-
Michael Hanselmann authored
Replace ssconf with configuration. Reviewed-by: iustinp
-
Michael Hanselmann authored
Get rid of ssconf and convert to configuration instead. Reviewed-by: iustinp
-
Michael Hanselmann authored
ssconf will become write-only from ganeti-masterd's point of view, therefore all settings in there need to go into the main configuration file. Reviewed-by: iustinp
-
Michael Hanselmann authored
Future patches will add even more variables to the cluster config. Adding more parameters wouldn't make the function easier to use and it doesn't make sense to pass them to another function, as it's only done once in bootstrap.py on cluster initialization. Reviewed-by: iustinp
-
- Sep 28, 2008
-
-
Iustin Pop authored
The bootstrap code needs a pseudo-secret and this is currently generated inside the InitGanetiServerSetup function. Since more users will need this, move it to utils.py Reviewed-by: ultrotter
-
- Aug 15, 2008
-
-
Michael Hanselmann authored
This option will be used to add nodes to the cluster without asking the user to confirm the key. Together with key based authentication this can be used in the QA tests. Reviewed-by: ultrotter
-
- Aug 13, 2008
-
-
Michael Hanselmann authored
If a node hasn't been part of the cluster before being added it'll not have the cluster's SSH key. This patch makes sure to accept those by not aliasing the machine name to the cluster name. Reviewed-by: ultrotter
-
- Jul 30, 2008
-
-
Iustin Pop authored
With the recent startup/shutdown changes (and with the master daemon in place), the cluster destroy needs some fixing. This patch moves the finalization of the destroy out from cmdlib into bootstrap, so we can nicely shutdown the rapi and master daemons. Reviewed-by: ultrotter
-
Iustin Pop authored
With the recent changes, I forgot the extra parameter to this rpc call. Also the rpc call needs to be done after we setup the config data, for the master daemon to be able to start, so we move it after all other init steps. Reviewed-by: ultrotter
-
Iustin Pop authored
Reviewed-by: imsnah
-
Iustin Pop authored
This (big) patch reworks the master startup/shutdown and the fixes the master failover. What does the patch do? For master start/stop: - remove the old ganeti-master script and its associated man page - moves the ip start/stop directly into the backend.(Start|Stop)Master - adds start/stop of the master/rapi daemon into these functions, selectively based on the start/stop arguments - makes the master call via rpc StartMaster(start_daemons=False) to the local node so that the master IP is started - and finally changes the example init.d script to directly start and stop all three daemons, since they do the right thing (depending on master/not master role) For master failover: - moves the code from LUMasterFailover into bootstrap.MasterFailover, since we need to start/stop the master during this operation and thus it can't be executed from the master - removes the LUMasterFailover and its associated opcode Notes: ubuntu's /etc/lsb-base-logging.sh is dumb, so the messages 'not master' are not seen during startup on non-master nodes. Reviewed-by: ultrotter
-
- Jun 27, 2008
-
-
Guido Trotter authored
From the master node we can't start ssh and connect to the remote node, nor we can do it from ganeti-noded as this ssh section will possibly ask for key confirmation and password. So the code to copy the ganeti-noded password and SSL key has been moved to bootstrap.py, and it's called by gnt-node before the AddNode opcode. Reviewed-by: iustinp
-
- Jun 16, 2008
-
-
Guido Trotter authored
Before we used to be able to update SimpleStore by just calling SetKey, this feature is now moved to an external class, which inherits from it. In this patch the new WritableSimpleStore class is also put to use, in the LUs that need it. Rather than making each LU instantiate it, we have a new LogicalUnit flag REQ_WSSTORE which defaults to False, but when declared to be True asks the LogicalUnit to be initialized with a writeable version of the SimpleStore. LUMasterFailover and LURenameCluster are then changed to use it. InitCluster is also changed to instantiate a WritableSimpleStore, rather than a normal one. Reviewed-by: imsnah
-
- Jun 12, 2008
-
-
Michael Hanselmann authored
This allows us to initialize a new cluster. The code certainly contains bugs and hooks aren't implemented yet. Reviewed-by: iustinp
-