diff options
author | Devan Goodwin <dgoodwin@redhat.com> | 2015-11-26 10:40:05 -0400 |
---|---|---|
committer | Devan Goodwin <dgoodwin@redhat.com> | 2015-11-26 10:40:05 -0400 |
commit | 139a82349040983a4af7ebd7e09e32a96bc00667 (patch) | |
tree | 77fb55db5044be0795be27c51b04f83ee8fdec8a /utils/test | |
parent | 80c166ab60c4608ac83afb865f76b4206d593818 (diff) | |
download | openshift-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.py | 38 |
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') |