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')  | 
