def test_variant_version_latest_assumed(self, load_facts_mock, prerequisites_mock, run_playbook_mock): load_facts_mock.return_value = (MOCK_FACTS, 0) prerequisites_mock.return_value = 0 run_playbook_mock.return_value = 0 config_file = self.write_config( os.path.join(self.work_dir, 'ooinstall.conf'), SAMPLE_CONFIG % 'openshift-enterprise') self.cli_args.extend(["-c", config_file, "install"]) result = self.runner.invoke(cli.cli, self.cli_args) self.assert_result(result, 0) written_config = read_yaml(config_file) self.assertEquals('openshift-enterprise', written_config['variant']) # We didn't specify a version so the latest should have been assumed, # and written to disk: self.assertEquals('3.3', written_config['variant_version']) # Make sure the correct value was passed to ansible: inventory = configparser.ConfigParser(allow_no_value=True) inventory.read(os.path.join(self.work_dir, 'hosts')) self.assertEquals('openshift-enterprise', inventory.get('OSEv3:vars', 'deployment_type'))
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 cli_input = build_input( hosts=[('10.0.0.1', True, False), ('10.0.0.2', True, False), ('10.0.0.3', True, False), ('10.0.0.4', False, False)], ssh_user='******', variant_num=1, confirm_facts='y', master_lb=('10.0.0.5', False), storage='10.1.0.1', ) self.cli_args.append("install") result = self.runner.invoke(cli.cli, self.cli_args, input=cli_input) self.assert_result(result, 0) self._verify_load_facts(load_facts_mock) self._verify_run_playbook(run_playbook_mock, 6, 6) written_config = read_yaml(self.config_file) self._verify_config_hosts(written_config, 6) 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_schedulable')) self.assertEquals( 'False', inventory.get('nodes', '10.0.0.2 openshift_schedulable')) self.assertEquals( 'False', inventory.get('nodes', '10.0.0.3 openshift_schedulable')) self.assertEquals(None, inventory.get('nodes', '10.0.0.4')) self.assertTrue(inventory.has_section('etcd')) self.assertEquals(3, len(inventory.items('etcd')))
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 cli_input = build_input(hosts=[ ('10.0.0.1', True, False), ('10.0.0.2', True, False), ('10.0.0.3', True, False)], ssh_user='******', variant_num=1, confirm_facts='y', master_lb=('10.0.0.5', False), storage='10.1.0.1',) self.cli_args.append("install") result = self.runner.invoke(cli.cli, self.cli_args, input=cli_input) self.assert_result(result, 0) self._verify_load_facts(load_facts_mock) self._verify_run_playbook(run_playbook_mock, 5, 5) written_config = read_yaml(self.config_file) self._verify_config_hosts(written_config, 5) inventory = ConfigParser.ConfigParser(allow_no_value=True) inventory.read(os.path.join(self.work_dir, 'hosts')) self.assert_inventory_host_var(inventory, 'nodes', '10.0.0.1', 'openshift_schedulable=True') self.assert_inventory_host_var(inventory, 'nodes', '10.0.0.2', 'openshift_schedulable=True') self.assert_inventory_host_var(inventory, 'nodes', '10.0.0.3', 'openshift_schedulable=True')
def test_full_run(self, load_facts_mock, run_playbook_mock): load_facts_mock.return_value = (MOCK_FACTS, 0) run_playbook_mock.return_value = 0 cli_input = build_input( hosts=[("10.0.0.1", True, False), ("10.0.0.2", False, False), ("10.0.0.3", False, False)], ssh_user="******", variant_num=1, confirm_facts="y", storage="10.1.0.1", ) self.cli_args.append("install") result = self.runner.invoke(cli.cli, self.cli_args, input=cli_input) self.assert_result(result, 0) self._verify_load_facts(load_facts_mock) self._verify_run_playbook(run_playbook_mock, 4, 4) written_config = read_yaml(self.config_file) self._verify_config_hosts(written_config, 4) inventory = ConfigParser.ConfigParser(allow_no_value=True) inventory.read(os.path.join(self.work_dir, "hosts")) self.assert_inventory_host_var(inventory, "nodes", "10.0.0.1", "openshift_schedulable=False") self.assert_inventory_host_var_unset(inventory, "nodes", "10.0.0.2", "openshift_schedulable") self.assert_inventory_host_var_unset(inventory, "nodes", "10.0.0.3", "openshift_schedulable")
def test_variant_version_latest_assumed(self, load_facts_mock, run_playbook_mock): load_facts_mock.return_value = (MOCK_FACTS, 0) run_playbook_mock.return_value = 0 config_file = self.write_config( os.path.join(self.work_dir, 'ooinstall.conf'), SAMPLE_CONFIG % 'openshift-enterprise') self.cli_args.extend(["-c", config_file, "install"]) result = self.runner.invoke(cli.cli, self.cli_args) self.assert_result(result, 0) written_config = read_yaml(config_file) self.assertEquals('openshift-enterprise', written_config['variant']) # We didn't specify a version so the latest should have been assumed, # and written to disk: self.assertEquals('3.2', written_config['variant_version']) # Make sure the correct value was passed to ansible: inventory = ConfigParser.ConfigParser(allow_no_value=True) inventory.read(os.path.join(self.work_dir, 'hosts')) self.assertEquals('openshift-enterprise', inventory.get('OSEv3:vars', 'deployment_type'))
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 cli_input = build_input( hosts=[("10.0.0.1", True, False), ("10.0.0.2", True, False), ("10.0.0.3", True, False)], ssh_user="******", variant_num=1, confirm_facts="y", master_lb=("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) self._verify_load_facts(load_facts_mock) self._verify_run_playbook(run_playbook_mock, 4, 4) written_config = read_yaml(self.config_file) self._verify_config_hosts(written_config, 4) inventory = ConfigParser.ConfigParser(allow_no_value=True) inventory.read(os.path.join(self.work_dir, ".ansible/hosts")) 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"))
def test_add_nodes(self, load_facts_mock, run_playbook_mock): # Modify the mock facts to return a version indicating OpenShift # is already installed on our master, and the first node. mock_facts = copy.deepcopy(MOCK_FACTS) mock_facts['10.0.0.1']['common']['version'] = "3.0.0" mock_facts['10.0.0.2']['common']['version'] = "3.0.0" load_facts_mock.return_value = (mock_facts, 0) run_playbook_mock.return_value = 0 cli_input = build_input( hosts=[ ('10.0.0.1', True, False), ('10.0.0.2', False, False), ], add_nodes=[('10.0.0.3', False, False)], ssh_user='******', variant_num=1, confirm_facts='y', storage='10.0.0.1', ) self.cli_args.append("install") result = self.runner.invoke(cli.cli, self.cli_args, input=cli_input) self.assert_result(result, 0) self._verify_load_facts(load_facts_mock) self._verify_run_playbook(run_playbook_mock, 3, 2) written_config = read_yaml(self.config_file) self._verify_config_hosts(written_config, 3)
def test_full_run(self, load_facts_mock, run_playbook_mock): load_facts_mock.return_value = (MOCK_FACTS, 0) run_playbook_mock.return_value = 0 cli_input = build_input(hosts=[ ('10.0.0.1', True, False), ('10.0.0.2', False, False), ('10.0.0.3', False, False)], ssh_user='******', variant_num=1, confirm_facts='y') self.cli_args.append("install") result = self.runner.invoke(cli.cli, self.cli_args, input=cli_input) self.assert_result(result, 0) self._verify_load_facts(load_facts_mock) self._verify_run_playbook(run_playbook_mock, 3, 3) written_config = read_yaml(self.config_file) self._verify_config_hosts(written_config, 3) 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_schedulable')) self.assertEquals(None, inventory.get('nodes', '10.0.0.2')) self.assertEquals(None, inventory.get('nodes', '10.0.0.3'))
def test_gen_inventory(self, load_facts_mock, run_playbook_mock): load_facts_mock.return_value = (MOCK_FACTS, 0) run_playbook_mock.return_value = 0 cli_input = build_input(hosts=[ ('10.0.0.1', True, False), ('10.0.0.2', False, False), ('10.0.0.3', False, False)], ssh_user='******', variant_num=1, confirm_facts='y', storage='10.1.0.1',) self.cli_args.append("install") self.cli_args.append("--gen-inventory") result = self.runner.invoke(cli.cli, self.cli_args, input=cli_input) self.assert_result(result, 0) self._verify_load_facts(load_facts_mock) # Make sure run playbook wasn't called: self.assertEquals(0, len(run_playbook_mock.mock_calls)) written_config = read_yaml(self.config_file) self._verify_config_hosts(written_config, 4) inventory = ConfigParser.ConfigParser(allow_no_value=True) inventory.read(os.path.join(self.work_dir, 'hosts')) self.assert_inventory_host_var(inventory, 'nodes', '10.0.0.1', 'openshift_schedulable=False') self.assert_inventory_host_var_unset(inventory, 'nodes', '10.0.0.2', 'openshift_schedulable=True') self.assert_inventory_host_var_unset(inventory, 'nodes', '10.0.0.3', 'openshift_schedulable=True')
def test_add_nodes(self, load_facts_mock, run_playbook_mock): # Modify the mock facts to return a version indicating OpenShift # is already installed on our master, and the first node. mock_facts = copy.deepcopy(MOCK_FACTS) mock_facts['10.0.0.1']['common']['version'] = "3.0.0" mock_facts['10.0.0.2']['common']['version'] = "3.0.0" load_facts_mock.return_value = (mock_facts, 0) run_playbook_mock.return_value = 0 cli_input = build_input(hosts=[ ('10.0.0.1', True, False), ('10.0.0.2', False, False), ], add_nodes=[('10.0.0.3', False, False)], ssh_user='******', variant_num=1, confirm_facts='y') self.cli_args.append("install") result = self.runner.invoke(cli.cli, self.cli_args, input=cli_input) self.assert_result(result, 0) self._verify_load_facts(load_facts_mock) self._verify_run_playbook(run_playbook_mock, 3, 2) written_config = read_yaml(self.config_file) self._verify_config_hosts(written_config, 3)
def test_all_in_one(self, load_facts_mock, prerequisites_mock, run_playbook_mock): load_facts_mock.return_value = (MOCK_FACTS, 0) prerequisites_mock.return_value = 0 run_playbook_mock.return_value = 0 cli_input = build_input( hosts=[ ('10.0.0.1', True, False)], ssh_user='******', variant_num=1, confirm_facts='y', storage='10.0.0.1') self.cli_args.append("install") result = self.runner.invoke( cli.cli, self.cli_args, input=cli_input) self.assert_result(result, 0) self._verify_load_facts(load_facts_mock) self._verify_run_playbook(run_playbook_mock, 1, 1) written_config = read_yaml(self.config_file) self._verify_config_hosts(written_config, 1) inventory = configparser.ConfigParser(allow_no_value=True) inventory.read(os.path.join(self.work_dir, 'hosts')) self.assert_inventory_host_var(inventory, 'nodes', '10.0.0.1', 'openshift_schedulable=True')
def test_gen_inventory(self, load_facts_mock, run_playbook_mock): load_facts_mock.return_value = (MOCK_FACTS, 0) run_playbook_mock.return_value = 0 cli_input = build_input( hosts=[('10.0.0.1', True, False), ('10.0.0.2', False, False), ('10.0.0.3', False, False)], ssh_user='******', variant_num=1, confirm_facts='y', storage='10.1.0.1', ) self.cli_args.append("install") self.cli_args.append("--gen-inventory") result = self.runner.invoke(cli.cli, self.cli_args, input=cli_input) self.assert_result(result, 0) self._verify_load_facts(load_facts_mock) # Make sure run playbook wasn't called: self.assertEquals(0, len(run_playbook_mock.mock_calls)) written_config = read_yaml(self.config_file) self._verify_config_hosts(written_config, 4) inventory = ConfigParser.ConfigParser(allow_no_value=True) inventory.read(os.path.join(self.work_dir, 'hosts')) self.assert_inventory_host_var(inventory, 'nodes', '10.0.0.1', 'openshift_schedulable=False') self.assert_inventory_host_var_unset(inventory, 'nodes', '10.0.0.2', 'openshift_schedulable=True') self.assert_inventory_host_var_unset(inventory, 'nodes', '10.0.0.3', 'openshift_schedulable=True')
def test_full_run(self, load_facts_mock, run_playbook_mock): load_facts_mock.return_value = (MOCK_FACTS, 0) run_playbook_mock.return_value = 0 cli_input = build_input(hosts=[('10.0.0.1', True, False), ('10.0.0.2', False, False), ('10.0.0.3', False, False)], ssh_user='******', variant_num=1, confirm_facts='y') self.cli_args.append("install") result = self.runner.invoke(cli.cli, self.cli_args, input=cli_input) self.assert_result(result, 0) self._verify_load_facts(load_facts_mock) self._verify_run_playbook(run_playbook_mock, 3, 3) written_config = read_yaml(self.config_file) self._verify_config_hosts(written_config, 3) 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_schedulable')) self.assertEquals(None, inventory.get('nodes', '10.0.0.2')) self.assertEquals(None, inventory.get('nodes', '10.0.0.3'))
def test_all_in_one(self, load_facts_mock, prerequisites_mock, run_playbook_mock): load_facts_mock.return_value = (MOCK_FACTS, 0) prerequisites_mock.return_value = 0 run_playbook_mock.return_value = 0 cli_input = build_input(hosts=[('10.0.0.1', True, False)], ssh_user='******', variant_num=1, confirm_facts='y', storage='10.0.0.1') self.cli_args.append("install") result = self.runner.invoke(cli.cli, self.cli_args, input=cli_input) self.assert_result(result, 0) self._verify_load_facts(load_facts_mock) self._verify_run_playbook(run_playbook_mock, 1, 1) written_config = read_yaml(self.config_file) self._verify_config_hosts(written_config, 1) inventory = configparser.ConfigParser(allow_no_value=True) inventory.read(os.path.join(self.work_dir, 'hosts')) self.assert_inventory_host_var(inventory, 'nodes', '10.0.0.1', 'openshift_schedulable=True')
def test_variant_version_preserved(self, load_facts_mock, run_playbook_mock): load_facts_mock.return_value = (MOCK_FACTS, 0) run_playbook_mock.return_value = 0 config = SAMPLE_CONFIG % 'openshift-enterprise' config = '%s\n%s' % (config, 'variant_version: 3.3') config_file = self.write_config(os.path.join(self.work_dir, 'ooinstall.conf'), config) self.cli_args.extend(["-c", config_file, "install"]) result = self.runner.invoke(cli.cli, self.cli_args) self.assert_result(result, 0) written_config = read_yaml(config_file) self.assertEquals('openshift-enterprise', written_config['variant']) # Make sure our older version was preserved: # and written to disk: self.assertEquals('3.3', written_config['variant_version']) inventory = ConfigParser.ConfigParser(allow_no_value=True) inventory.read(os.path.join(self.work_dir, 'hosts')) self.assertEquals('openshift-enterprise', inventory.get('OSEv3:vars', 'deployment_type'))
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 cli_input = build_input( hosts=[('10.0.0.1', True, False), ('10.0.0.2', True, False), ('10.0.0.3', True, False)], ssh_user='******', variant_num=1, confirm_facts='y', master_lb=('10.0.0.5', False), storage='10.1.0.1', ) self.cli_args.append("install") result = self.runner.invoke(cli.cli, self.cli_args, input=cli_input) self.assert_result(result, 0) self._verify_load_facts(load_facts_mock) self._verify_run_playbook(run_playbook_mock, 5, 5) written_config = read_yaml(self.config_file) self._verify_config_hosts(written_config, 5) inventory = ConfigParser.ConfigParser(allow_no_value=True) inventory.read(os.path.join(self.work_dir, 'hosts')) self.assert_inventory_host_var(inventory, 'nodes', '10.0.0.1', 'openshift_schedulable=True') self.assert_inventory_host_var(inventory, 'nodes', '10.0.0.2', 'openshift_schedulable=True') self.assert_inventory_host_var(inventory, 'nodes', '10.0.0.3', 'openshift_schedulable=True')
def test_variant_version_preserved(self, load_facts_mock, run_playbook_mock): load_facts_mock.return_value = (MOCK_FACTS, 0) run_playbook_mock.return_value = 0 config = SAMPLE_CONFIG % 'openshift-enterprise' config = '%s\n%s' % (config, 'variant_version: 3.2') config_file = self.write_config( os.path.join(self.work_dir, 'ooinstall.conf'), config) self.cli_args.extend(["-c", config_file, "install"]) result = self.runner.invoke(cli.cli, self.cli_args) self.assert_result(result, 0) written_config = read_yaml(config_file) self.assertEquals('openshift-enterprise', written_config['variant']) # Make sure our older version was preserved: # and written to disk: self.assertEquals('3.2', written_config['variant_version']) inventory = ConfigParser.ConfigParser(allow_no_value=True) inventory.read(os.path.join(self.work_dir, 'hosts')) self.assertEquals('openshift-enterprise', inventory.get('OSEv3:vars', 'deployment_type'))
def test_fresh_install_with_config(self, load_facts_mock, run_playbook_mock): load_facts_mock.return_value = (MOCK_FACTS, 0) run_playbook_mock.return_value = 0 config_file = self.write_config( os.path.join(self.work_dir, "ooinstall.conf"), SAMPLE_CONFIG % "openshift-enterprise" ) cli_input = build_input(confirm_facts="y") self.cli_args.extend(["-c", config_file]) self.cli_args.append("install") result = self.runner.invoke(cli.cli, self.cli_args, input=cli_input) self.assert_result(result, 0) self._verify_load_facts(load_facts_mock) self._verify_run_playbook(run_playbook_mock, 3, 3) written_config = read_yaml(config_file) self._verify_config_hosts(written_config, 3)
def test_fresh_install_with_config(self, load_facts_mock, run_playbook_mock): load_facts_mock.return_value = (MOCK_FACTS, 0) run_playbook_mock.return_value = 0 config_file = self.write_config( os.path.join(self.work_dir, 'ooinstall.conf'), SAMPLE_CONFIG % 'openshift-enterprise') cli_input = build_input(confirm_facts='y') self.cli_args.extend(["-c", config_file]) self.cli_args.append("install") result = self.runner.invoke(cli.cli, self.cli_args, input=cli_input) self.assert_result(result, 0) self._verify_load_facts(load_facts_mock) self._verify_run_playbook(run_playbook_mock, 3, 3) written_config = read_yaml(config_file) self._verify_config_hosts(written_config, 3)
def test_variant_version_preserved(self, load_facts_mock, run_playbook_mock): load_facts_mock.return_value = (MOCK_FACTS, 0) run_playbook_mock.return_value = 0 config = SAMPLE_CONFIG % "openshift-enterprise" config = "%s\n%s" % (config, "variant_version: 3.0") config_file = self.write_config(os.path.join(self.work_dir, "ooinstall.conf"), config) self.cli_args.extend(["-c", config_file, "install"]) result = self.runner.invoke(cli.cli, self.cli_args) self.assert_result(result, 0) written_config = read_yaml(config_file) self.assertEquals("openshift-enterprise", written_config["variant"]) # Make sure our older version was preserved: # and written to disk: self.assertEquals("3.0", written_config["variant_version"]) inventory = ConfigParser.ConfigParser(allow_no_value=True) inventory.read(os.path.join(self.work_dir, "hosts")) self.assertEquals("enterprise", inventory.get("OSEv3:vars", "deployment_type"))
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 cli_input = build_input(hosts=[ ('10.0.0.1', True, False), ('10.0.0.2', True, False), ('10.0.0.3', True, False), ('10.0.0.4', False, False)], ssh_user='******', variant_num=1, confirm_facts='y', master_lb=('10.0.0.5', False), storage='10.1.0.1',) self.cli_args.append("install") result = self.runner.invoke(cli.cli, self.cli_args, input=cli_input) self.assert_result(result, 0) self._verify_load_facts(load_facts_mock) self._verify_run_playbook(run_playbook_mock, 6, 6) written_config = read_yaml(self.config_file) self._verify_config_hosts(written_config, 6) 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_schedulable')) self.assertEquals('False', inventory.get('nodes', '10.0.0.2 openshift_schedulable')) self.assertEquals('False', inventory.get('nodes', '10.0.0.3 openshift_schedulable')) self.assertEquals(None, inventory.get('nodes', '10.0.0.4')) self.assertTrue(inventory.has_section('etcd')) self.assertEquals(3, len(inventory.items('etcd')))
def test_variant_version_latest_assumed(self, load_facts_mock, run_playbook_mock): load_facts_mock.return_value = (MOCK_FACTS, 0) run_playbook_mock.return_value = 0 config_file = self.write_config( os.path.join(self.work_dir, "ooinstall.conf"), SAMPLE_CONFIG % "openshift-enterprise" ) self.cli_args.extend(["-c", config_file, "install"]) result = self.runner.invoke(cli.cli, self.cli_args) self.assert_result(result, 0) written_config = read_yaml(config_file) self.assertEquals("openshift-enterprise", written_config["variant"]) # We didn't specify a version so the latest should have been assumed, # and written to disk: self.assertEquals("3.2", written_config["variant_version"]) # Make sure the correct value was passed to ansible: inventory = ConfigParser.ConfigParser(allow_no_value=True) inventory.read(os.path.join(self.work_dir, "hosts")) self.assertEquals("openshift-enterprise", inventory.get("OSEv3:vars", "deployment_type"))
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 cli_input = build_input( hosts=[ ("10.0.0.1", True, False), ("10.0.0.2", True, False), ("10.0.0.3", True, False), ("10.0.0.4", False, False), ], ssh_user="******", variant_num=1, confirm_facts="y", master_lb=("10.0.0.5", False), storage="10.1.0.1", ) self.cli_args.append("install") result = self.runner.invoke(cli.cli, self.cli_args, input=cli_input) self.assert_result(result, 0) self._verify_load_facts(load_facts_mock) self._verify_run_playbook(run_playbook_mock, 6, 6) written_config = read_yaml(self.config_file) self._verify_config_hosts(written_config, 6) inventory = ConfigParser.ConfigParser(allow_no_value=True) inventory.read(os.path.join(self.work_dir, "hosts")) self.assert_inventory_host_var(inventory, "nodes", "10.0.0.1", "openshift_schedulable=False") self.assert_inventory_host_var(inventory, "nodes", "10.0.0.2", "openshift_schedulable=False") self.assert_inventory_host_var(inventory, "nodes", "10.0.0.3", "openshift_schedulable=False") self.assert_inventory_host_var_unset(inventory, "nodes", "10.0.0.4", "openshift_schedulable") self.assertTrue(inventory.has_section("etcd")) self.assertEquals(3, len(inventory.items("etcd")))