summaryrefslogtreecommitdiffstats
path: root/utils/test
diff options
context:
space:
mode:
authorDevan Goodwin <dgoodwin@redhat.com>2015-11-26 12:20:25 -0400
committerDevan Goodwin <dgoodwin@redhat.com>2015-11-26 12:20:25 -0400
commit8a0153e992938a9b3441faca77305be1bb42f4d2 (patch)
tree3e0585b29bd671814ce152b92da78dd224053f65 /utils/test
parente6054d0ef7d07f370496dac82975b17dc3dfce70 (diff)
downloadopenshift-8a0153e992938a9b3441faca77305be1bb42f4d2.tar.gz
openshift-8a0153e992938a9b3441faca77305be1bb42f4d2.tar.bz2
openshift-8a0153e992938a9b3441faca77305be1bb42f4d2.tar.xz
openshift-8a0153e992938a9b3441faca77305be1bb42f4d2.zip
Test unattended HA quick install.
Checking behavior when there is no LB specified, and when the user attempts to re-use a master or node as their LB.
Diffstat (limited to 'utils/test')
-rw-r--r--utils/test/cli_installer_tests.py109
1 files changed, 109 insertions, 0 deletions
diff --git a/utils/test/cli_installer_tests.py b/utils/test/cli_installer_tests.py
index 2891cefcc..b1ab7b283 100644
--- a/utils/test/cli_installer_tests.py
+++ b/utils/test/cli_installer_tests.py
@@ -102,6 +102,7 @@ hosts:
node: true
"""
+# Missing connect_to on some hosts:
BAD_CONFIG = """
variant: %s
ansible_ssh_user: root
@@ -158,6 +159,59 @@ hosts:
master_lb: true
"""
+QUICKHA_CONFIG_REUSED_LB = """
+variant: %s
+ansible_ssh_user: root
+hosts:
+ - connect_to: 10.0.0.1
+ ip: 10.0.0.1
+ hostname: master-private.example.com
+ public_ip: 24.222.0.1
+ public_hostname: master.example.com
+ master: true
+ node: true
+ - connect_to: 10.0.0.2
+ ip: 10.0.0.2
+ hostname: node1-private.example.com
+ public_ip: 24.222.0.2
+ public_hostname: node1.example.com
+ master: true
+ node: true
+ master_lb: true
+ - connect_to: 10.0.0.3
+ ip: 10.0.0.3
+ hostname: node2-private.example.com
+ public_ip: 24.222.0.3
+ public_hostname: node2.example.com
+ node: true
+"""
+
+QUICKHA_CONFIG_NO_LB = """
+variant: %s
+ansible_ssh_user: root
+hosts:
+ - connect_to: 10.0.0.1
+ ip: 10.0.0.1
+ hostname: master-private.example.com
+ public_ip: 24.222.0.1
+ public_hostname: master.example.com
+ master: true
+ node: true
+ - connect_to: 10.0.0.2
+ ip: 10.0.0.2
+ hostname: node1-private.example.com
+ public_ip: 24.222.0.2
+ public_hostname: node1.example.com
+ master: true
+ node: true
+ - connect_to: 10.0.0.3
+ ip: 10.0.0.3
+ hostname: node2-private.example.com
+ public_ip: 24.222.0.3
+ public_hostname: node2.example.com
+ node: true
+"""
+
class OOCliFixture(OOInstallFixture):
def setUp(self):
@@ -606,6 +660,61 @@ class UnattendedCliTests(OOCliFixture):
self.assertEquals(4, len(hosts))
self.assertEquals(4, len(hosts_to_run_on))
+ #unattended with two masters, one node, but no load balancer specified:
+ @patch('ooinstall.openshift_ansible.run_main_playbook')
+ @patch('ooinstall.openshift_ansible.load_system_facts')
+ def test_quick_ha_no_lb(self, load_facts_mock, run_playbook_mock):
+ load_facts_mock.return_value = (MOCK_FACTS_QUICKHA, 0)
+ run_playbook_mock.return_value = 0
+
+ config_file = self.write_config(os.path.join(self.work_dir,
+ 'ooinstall.conf'), QUICKHA_CONFIG_NO_LB % 'openshift-enterprise')
+
+ self.cli_args.extend(["-c", config_file, "install"])
+ result = self.runner.invoke(cli.cli, self.cli_args)
+
+ # We consider this a valid outcome but lets make sure the warning
+ # was displayed:
+ self.assert_result(result, 0)
+ self.assertTrue('No master load balancer specified in config' in result.output)
+
+ load_facts_args = load_facts_mock.call_args[0]
+ self.assertEquals(os.path.join(self.work_dir, ".ansible/hosts"),
+ load_facts_args[0])
+ self.assertEquals(os.path.join(self.work_dir,
+ "playbooks/byo/openshift_facts.yml"), load_facts_args[1])
+ env_vars = load_facts_args[2]
+ self.assertEquals(os.path.join(self.work_dir,
+ '.ansible/callback_facts.yaml'),
+ env_vars['OO_INSTALL_CALLBACK_FACTS_YAML'])
+ self.assertEqual('/tmp/ansible.log', env_vars['ANSIBLE_LOG_PATH'])
+ # If user running test has rpm installed, this might be set to default:
+ self.assertTrue('ANSIBLE_CONFIG' not in env_vars or
+ env_vars['ANSIBLE_CONFIG'] == cli.DEFAULT_ANSIBLE_CONFIG)
+
+ # Make sure we ran on the expected masters and nodes:
+ hosts = run_playbook_mock.call_args[0][0]
+ hosts_to_run_on = run_playbook_mock.call_args[0][1]
+ self.assertEquals(3, len(hosts))
+ self.assertEquals(3, len(hosts_to_run_on))
+
+ #unattended with two masters, one node, and one of the masters reused as load balancer:
+ @patch('ooinstall.openshift_ansible.run_main_playbook')
+ @patch('ooinstall.openshift_ansible.load_system_facts')
+ def test_quick_ha_reused_lb(self, load_facts_mock, run_playbook_mock):
+ load_facts_mock.return_value = (MOCK_FACTS_QUICKHA, 0)
+ run_playbook_mock.return_value = 0
+
+ config_file = self.write_config(os.path.join(self.work_dir,
+ 'ooinstall.conf'), QUICKHA_CONFIG_REUSED_LB % 'openshift-enterprise')
+
+ self.cli_args.extend(["-c", config_file, "install"])
+ result = self.runner.invoke(cli.cli, self.cli_args)
+
+ # This is not a valid configuration:
+ self.assert_result(result, 0)
+
+
class AttendedCliTests(OOCliFixture):
def setUp(self):