summaryrefslogtreecommitdiffstats
path: root/utils/test
diff options
context:
space:
mode:
authorDevan Goodwin <dgoodwin@redhat.com>2015-11-26 10:40:05 -0400
committerDevan Goodwin <dgoodwin@redhat.com>2015-11-26 10:40:05 -0400
commit139a82349040983a4af7ebd7e09e32a96bc00667 (patch)
tree77fb55db5044be0795be27c51b04f83ee8fdec8a /utils/test
parent80c166ab60c4608ac83afb865f76b4206d593818 (diff)
downloadopenshift-139a82349040983a4af7ebd7e09e32a96bc00667.tar.gz
openshift-139a82349040983a4af7ebd7e09e32a96bc00667.tar.bz2
openshift-139a82349040983a4af7ebd7e09e32a96bc00667.tar.xz
openshift-139a82349040983a4af7ebd7e09e32a96bc00667.zip
Block re-use of master/node as load balancer in attended install.
Code was present to catch this in unattended installs but was looking for a host record with both master/node and master_lb set to true, but in the attended installs we were adding a separate host record with the same connect_to. Attended tests can now optionally specify multiple "attempted" strings for the master_lb specification, we'll try to input each if multiple are specified. Cleanup some empty defaults and error messages as well.
Diffstat (limited to 'utils/test')
-rw-r--r--utils/test/cli_installer_tests.py38
1 files changed, 32 insertions, 6 deletions
diff --git a/utils/test/cli_installer_tests.py b/utils/test/cli_installer_tests.py
index 8e9c2d698..2891cefcc 100644
--- a/utils/test/cli_installer_tests.py
+++ b/utils/test/cli_installer_tests.py
@@ -568,8 +568,9 @@ class UnattendedCliTests(OOCliFixture):
self.cli_args.extend(["-c", config_file, "install"])
result = self.runner.invoke(cli.cli, self.cli_args)
- assert result.exit_code == 1
- assert result.output == "You must specify either and 'ip' or 'hostname' to connect to.\n"
+ self.assertEquals(1, result.exit_code)
+ self.assertTrue("You must specify either an ip or hostname"
+ in result.output)
#unattended with two masters, one node, and haproxy
@patch('ooinstall.openshift_ansible.run_main_playbook')
@@ -651,8 +652,12 @@ class AttendedCliTests(OOCliFixture):
inputs.append('n') # Done adding hosts
i += 1
+ # You can pass a single master_lb or a list if you intend for one to get rejected:
if master_lb:
- inputs.append(master_lb[0])
+ if type(master_lb[0]) is list or type(master_lb[0]) is tuple:
+ inputs.extend(master_lb[0])
+ else:
+ inputs.append(master_lb[0])
inputs.append('y' if master_lb[1] else 'n')
# TODO: support option 2, fresh install
@@ -801,7 +806,7 @@ class AttendedCliTests(OOCliFixture):
#interactive multimaster: one more node than master
@patch('ooinstall.openshift_ansible.run_main_playbook')
@patch('ooinstall.openshift_ansible.load_system_facts')
- def test_quick_ha1(self, load_facts_mock, run_playbook_mock):
+ def test_ha_dedicated_node(self, load_facts_mock, run_playbook_mock):
load_facts_mock.return_value = (MOCK_FACTS_QUICKHA, 0)
run_playbook_mock.return_value = 0
@@ -836,10 +841,10 @@ class AttendedCliTests(OOCliFixture):
self.assertEquals('False',
inventory.get('nodes', '10.0.0.4 openshift_schedulable'))
- #interactive multimaster: equal number masters and nodes
+ #interactive multimaster: identical masters and nodes
@patch('ooinstall.openshift_ansible.run_main_playbook')
@patch('ooinstall.openshift_ansible.load_system_facts')
- def test_quick_ha2(self, load_facts_mock, run_playbook_mock):
+ def test_ha_no_dedicated_nodes(self, load_facts_mock, run_playbook_mock):
load_facts_mock.return_value = (MOCK_FACTS_QUICKHA, 0)
run_playbook_mock.return_value = 0
@@ -871,6 +876,27 @@ class AttendedCliTests(OOCliFixture):
self.assertEquals('True',
inventory.get('nodes', '10.0.0.3 openshift_schedulable'))
+ #interactive multimaster: attempting to use a master as the load balancer should fail:
+ @patch('ooinstall.openshift_ansible.run_main_playbook')
+ @patch('ooinstall.openshift_ansible.load_system_facts')
+ def test_ha_reuse_master_as_lb(self, load_facts_mock, run_playbook_mock):
+ load_facts_mock.return_value = (MOCK_FACTS_QUICKHA, 0)
+ run_playbook_mock.return_value = 0
+
+ cli_input = self._build_input(hosts=[
+ ('10.0.0.1', True),
+ ('10.0.0.2', True),
+ ('10.0.0.3', False),
+ ('10.0.0.4', True)],
+ ssh_user='root',
+ variant_num=1,
+ confirm_facts='y',
+ master_lb=(['10.0.0.2', '10.0.0.5'], False))
+ self.cli_args.append("install")
+ result = self.runner.invoke(cli.cli, self.cli_args,
+ input=cli_input)
+ self.assert_result(result, 0)
+
#interactive all-in-one
@patch('ooinstall.openshift_ansible.run_main_playbook')
@patch('ooinstall.openshift_ansible.load_system_facts')