From aafb303d753df6d124c037a9f9775561eb6341a2 Mon Sep 17 00:00:00 2001 From: Guido Trotter <ultrotter@google.com> Date: Thu, 28 May 2009 10:12:58 +0100 Subject: [PATCH] Add cluster-init --no-etc-hosts parameter If --no-etc-hosts is passed in at cluster init time we set a new parameter in the cluster's object to false, and avoid adding nodes to the hosts file. The UpgradeConfig function is used to set the value to True, when upgrading from an old configuration version. Signed-off-by: Guido Trotter <ultrotter@google.com> Reviewed-by: Iustin Pop <iustin@google.com> (cherry picked from commit b86a6bcd476e420269a24a9b3d6289bebba69442) --- lib/bootstrap.py | 8 ++++++-- lib/cmdlib.py | 3 ++- lib/objects.py | 8 ++++++++ scripts/gnt-cluster | 5 +++++ 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/lib/bootstrap.py b/lib/bootstrap.py index fda1c2ee6..c936606bb 100644 --- a/lib/bootstrap.py +++ b/lib/bootstrap.py @@ -126,7 +126,8 @@ def _InitGanetiServerSetup(): def InitCluster(cluster_name, mac_prefix, def_bridge, master_netdev, file_storage_dir, candidate_pool_size, secondary_ip=None, vg_name=None, beparams=None, hvparams=None, - enabled_hypervisors=None, default_hypervisor=None): + enabled_hypervisors=None, default_hypervisor=None, + modify_etc_hosts=True): """Initialise the cluster. @type candidate_pool_size: int @@ -236,7 +237,9 @@ def InitCluster(cluster_name, mac_prefix, def_bridge, f.close() sshkey = sshline.split(" ")[1] - utils.AddHostToEtcHosts(hostname.name) + if modify_etc_hosts: + utils.AddHostToEtcHosts(hostname.name) + _InitSSHSetup() # init of cluster config file @@ -258,6 +261,7 @@ def InitCluster(cluster_name, mac_prefix, def_bridge, beparams={constants.BEGR_DEFAULT: beparams}, hvparams=hvparams, candidate_pool_size=candidate_pool_size, + modify_etc_hosts=opts.modify_etc_hosts, ) master_node_config = objects.Node(name=hostname.name, primary_ip=hostname.ip, diff --git a/lib/cmdlib.py b/lib/cmdlib.py index ae2267ad5..19196637b 100644 --- a/lib/cmdlib.py +++ b/lib/cmdlib.py @@ -2378,7 +2378,8 @@ class LUAddNode(LogicalUnit): " new node: %s" % msg) # Add node to our /etc/hosts, and add key to known_hosts - utils.AddHostToEtcHosts(new_node.name) + if self.cfg.GetClusterInfo().modify_etc_hosts: + utils.AddHostToEtcHosts(new_node.name) if new_node.secondary_ip != new_node.primary_ip: result = self.rpc.call_node_has_ip_address(new_node.name, diff --git a/lib/objects.py b/lib/objects.py index 23bb0f977..13e78dd05 100644 --- a/lib/objects.py +++ b/lib/objects.py @@ -752,8 +752,16 @@ class Cluster(TaggableObject): "hvparams", "beparams", "candidate_pool_size", + "modify_etc_hosts", ] + def UpgradeConfig(self): + """Fill defaults for missing configuration values. + + """ + if self.modify_etc_hosts is None: + self.modify_etc_hosts = True + def ToDict(self): """Custom function for cluster. diff --git a/scripts/gnt-cluster b/scripts/gnt-cluster index e6cb4f70c..fff42bb1f 100755 --- a/scripts/gnt-cluster +++ b/scripts/gnt-cluster @@ -105,6 +105,7 @@ def InitCluster(opts, args): hvparams=hvparams, beparams=beparams, candidate_pool_size=opts.candidate_pool_size, + modify_etc_hosts=opts.modify_etc_hosts, ) return 0 @@ -582,6 +583,10 @@ commands = { help="No support for lvm based instances" " (cluster-wide)", action="store_false", default=True,), + make_option("--no-etc-hosts", dest="modify_etc_hosts", + help="Don't modify /etc/hosts" + " (cluster-wide)", + action="store_false", default=True,), make_option("--enabled-hypervisors", dest="enabled_hypervisors", help="Comma-separated list of hypervisors", type="string", default=None), -- GitLab