summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDevan Goodwin <dgoodwin@redhat.com>2015-11-25 15:17:38 -0400
committerDevan Goodwin <dgoodwin@redhat.com>2015-11-25 15:17:38 -0400
commit80c166ab60c4608ac83afb865f76b4206d593818 (patch)
treee3c97725370f8cae1943b156fb281e9d055b89cf
parente3071fd15f70214fe9f13b847f2cc5443716d955 (diff)
downloadopenshift-80c166ab60c4608ac83afb865f76b4206d593818.tar.gz
openshift-80c166ab60c4608ac83afb865f76b4206d593818.tar.bz2
openshift-80c166ab60c4608ac83afb865f76b4206d593818.tar.xz
openshift-80c166ab60c4608ac83afb865f76b4206d593818.zip
Explicitly set schedulable when masters == nodes.
When the masters are the only nodes in play, we need to explicitly set schedulable to True due to logic in openshift_facts.py which assumes that if the node is also a master, schedulable should be false.
-rw-r--r--utils/src/ooinstall/openshift_ansible.py18
-rw-r--r--utils/test/cli_installer_tests.py32
2 files changed, 25 insertions, 25 deletions
diff --git a/utils/src/ooinstall/openshift_ansible.py b/utils/src/ooinstall/openshift_ansible.py
index 9afc9a644..84e4db61d 100644
--- a/utils/src/ooinstall/openshift_ansible.py
+++ b/utils/src/ooinstall/openshift_ansible.py
@@ -62,12 +62,12 @@ def generate_inventory(hosts):
# and store it on the Node object.
if set(nodes) == set(masters):
for node in nodes:
- write_host(node, base_inventory)
+ write_host(node, base_inventory, True)
else:
for node in nodes:
# TODO: Until the Master can run the SDN itself we have to configure the Masters
# as Nodes too.
- scheduleable = True
+ scheduleable = None
if node in masters:
scheduleable = False
write_host(node, base_inventory, scheduleable)
@@ -112,7 +112,7 @@ def write_inventory_vars(base_inventory, multiple_masters, proxy):
base_inventory.write("openshift_master_cluster_public_hostname={}\n".format(proxy.public_hostname))
-def write_host(host, inventory, scheduleable=True):
+def write_host(host, inventory, scheduleable=None):
global CFG
facts = ''
@@ -126,8 +126,16 @@ def write_host(host, inventory, scheduleable=True):
facts += ' openshift_public_hostname={}'.format(host.public_hostname)
# TODO: For not write_host is handles both master and nodes.
# Technically only nodes will ever need this.
- if not scheduleable:
- facts += ' openshift_scheduleable=False'
+
+ # Distinguish between three states, no schedulability specified (use default),
+ # explicitly set to True, or explicitly set to False:
+ if scheduleable is None:
+ pass
+ elif scheduleable:
+ facts += ' openshift_schedulable=True'
+ elif not scheduleable:
+ facts += ' openshift_schedulable=False'
+
installer_host = socket.gethostname()
if installer_host in [host.connect_to, host.hostname, host.public_hostname]:
facts += ' ansible_connection=local'
diff --git a/utils/test/cli_installer_tests.py b/utils/test/cli_installer_tests.py
index c951b6580..8e9c2d698 100644
--- a/utils/test/cli_installer_tests.py
+++ b/utils/test/cli_installer_tests.py
@@ -209,7 +209,6 @@ class OOCliFixture(OOInstallFixture):
self.assertEquals(exp_hosts_to_run_on_len, len(hosts_to_run_on))
def _verify_config_hosts(self, written_config, host_count):
- print written_config['hosts']
self.assertEquals(host_count, len(written_config['hosts']))
for h in written_config['hosts']:
self.assertTrue('hostname' in h)
@@ -712,7 +711,7 @@ class AttendedCliTests(OOCliFixture):
inventory = ConfigParser.ConfigParser(allow_no_value=True)
inventory.read(os.path.join(self.work_dir, '.ansible/hosts'))
self.assertEquals('False',
- inventory.get('nodes', '10.0.0.1 openshift_scheduleable'))
+ inventory.get('nodes', '10.0.0.1 openshift_schedulable'))
self.assertEquals(None,
inventory.get('nodes', '10.0.0.2'))
self.assertEquals(None,
@@ -744,7 +743,6 @@ class AttendedCliTests(OOCliFixture):
result = self.runner.invoke(cli.cli,
self.cli_args,
input=cli_input)
- print result
self.assert_result(result, 0)
self._verify_load_facts(load_facts_mock)
@@ -830,15 +828,13 @@ class AttendedCliTests(OOCliFixture):
inventory = ConfigParser.ConfigParser(allow_no_value=True)
inventory.read(os.path.join(self.work_dir, '.ansible/hosts'))
self.assertEquals('False',
- inventory.get('nodes', '10.0.0.1 openshift_scheduleable'))
+ inventory.get('nodes', '10.0.0.1 openshift_schedulable'))
self.assertEquals('False',
- inventory.get('nodes', '10.0.0.2 openshift_scheduleable'))
+ inventory.get('nodes', '10.0.0.2 openshift_schedulable'))
self.assertEquals(None,
inventory.get('nodes', '10.0.0.3'))
self.assertEquals('False',
- inventory.get('nodes', '10.0.0.4 openshift_scheduleable'))
-
- return
+ inventory.get('nodes', '10.0.0.4 openshift_schedulable'))
#interactive multimaster: equal number masters and nodes
@patch('ooinstall.openshift_ansible.run_main_playbook')
@@ -868,14 +864,12 @@ class AttendedCliTests(OOCliFixture):
inventory = ConfigParser.ConfigParser(allow_no_value=True)
inventory.read(os.path.join(self.work_dir, '.ansible/hosts'))
- self.assertEquals(None,
- inventory.get('nodes', '10.0.0.1'))
- self.assertEquals(None,
- inventory.get('nodes', '10.0.0.2'))
- self.assertEquals(None,
- inventory.get('nodes', '10.0.0.3'))
-
- return
+ self.assertEquals('True',
+ inventory.get('nodes', '10.0.0.1 openshift_schedulable'))
+ self.assertEquals('True',
+ inventory.get('nodes', '10.0.0.2 openshift_schedulable'))
+ self.assertEquals('True',
+ inventory.get('nodes', '10.0.0.3 openshift_schedulable'))
#interactive all-in-one
@patch('ooinstall.openshift_ansible.run_main_playbook')
@@ -902,10 +896,8 @@ class AttendedCliTests(OOCliFixture):
inventory = ConfigParser.ConfigParser(allow_no_value=True)
inventory.read(os.path.join(self.work_dir, '.ansible/hosts'))
- self.assertEquals(None,
- inventory.get('nodes', '10.0.0.1'))
-
- return
+ self.assertEquals('True',
+ inventory.get('nodes', '10.0.0.1 openshift_schedulable'))
# TODO: test with config file, attended add node
# TODO: test with config file, attended new node already in config file