- Mar 18, 2008
-
-
Michael Hanselmann authored
The whole Ganeti cluster has a single SSH key. Its fingerprint is written to Ganeti's known_hosts file, together with an alias. This allows us to always use that alias instead of the real hostname, making management of the known_hosts file much easier. This patch does not handle an upgrade from an earlier version. Reviewed-by: ultrotter
-
- Nov 09, 2007
-
-
Iustin Pop authored
Currently, an unreachable node (or one that return undetermined failure) in the hooks pre-phase will abort the curren operation. This is not good, as a down node could prevent many operation on the cluster. This patch changes a RPC-level failure (and not a hook execution failure) into a warning. It also modifies the related test cases. This fixes issue 11. Reviewed-by: ultrotter
-
- Oct 10, 2007
-
-
Iustin Pop authored
Since modules are not directly executables, remove the shebang from them. This helps with lintian warnings. Also make the autogenerated _autoconf.py contain two comment lines at the beginning, like the other modules. Reviewed-by: ultrotter
-
- Sep 21, 2007
-
-
Iustin Pop authored
We currently require that hostnames are FQDN not short names (node1.example.com instead of node1). We can allow short names as long as: - we always resolve the names as returned by socket.gethostname() - we rely on having a working resolver These issues are not as big as may seem, as we only did gethostname() in a few places in order to check for the master; we already required working resolver all over the code for the other nodes names (and thus requiring the same for the current node name is normal). The patch moves some resolver calls from within execution path to the checking path (which can abort without any problems). It is important that after this patch is applied, no name resolving is called from the execution path (LU.Exec() or other code that is called from within those methods) as in this case we get much better code flow. This patch also changes the functions for doing name lookups and encapsulates all functionality in a single class. The final change is that, by requiring working resolver at all times, we can change the 'return None' into an exception and thus we don't have to check manually each time; only some special cases will check (ganeti-daemon and ganeti-watcher which are not covered by the generalized exception handling in cli.py). The code is cleaner this way. Reviewed-by: imsnah
-
- Sep 12, 2007
-
-
Michael Hanselmann authored
-
Michael Hanselmann authored
-
- Jul 27, 2007
-
-
Iustin Pop authored
Reason: if left ConfigWriter, nodes don't know to which cluster they belong. This will bite us later when we'll revisit node join operation. Cons: we lose the cluster name from the config file, which means a standalone "cluster.data" is a little bit harder to analyze. But I have a plan for this which will follow shortly. Implementing this will also allow us to cleanly fix "gnt-cluster getmaster". Reviewed-by: imsnah
-
- Jul 23, 2007
-
-
Iustin Pop authored
- move the master node name from the ConfigWriter to SimpleStore (all nodes need this, and it was the only thing pulled in from the ConfigWriter on nodes) - fix mcpu.py and the testing w.r.t. this change; for testing, rename the fake_config.py to mocks.py and add a FakeSStore object - then add a ganeti-master script which can be run on any node at boot and which will not do anything if not master on start (on stop it will still try to remove the ip address) - also add a new cluster-wide variable (master_netdev) that determines on which interface we add this ip address; it's customizable at cluster init time - also remove the cluster name file which was separately handled from ssconf (not needed anymore) - remove the master init.d links from the list of config files as this is not our responsibility now
-
- Jul 16, 2007
-
-
Iustin Pop authored
-