Example #1
0
    def test_reg_and_retieve_multi(self, m_get_ip, m_gethost):
        m_get_ip.return_value = '1.2.3.4'
        m_gethost.return_value = 'test-hostname'

        # register local host group.
        start.register_group_and_hostvars(self.client)

        # dummy external host registration.
        remote = {'ansible_eth0': {'ipv4': {'address': '4.4.4.4'}},
                  'ansible_eth1': {'ipv4': {'address': '4.4.4.4'}},
                  'ansible_hostname': 'the-other-host',
                  'api_interface': 'eth2',
                  'role': 'testr',
                  'id': '55'}
        party.Party(self.client, '/kolla/deploy_id/groups/testr',
                    json.dumps(remote)).join()

        # make sure this function gets both hosts information.
        groups, hostvars = start.get_groups_and_hostvars(self.client)
        self.assertEqual(sorted(['1.2.3.4', '4.4.4.4']),
                         sorted(groups['testr']))
        exp_local = {'ansible_eth1': {'ipv4': {'address': '1.2.3.4'}},
                     'ansible_eth2': {'ipv4': {'address': '1.2.3.4'}},
                     'ansible_hostname': 'test-hostname',
                     'api_interface': 'eth2',
                     'role': 'testr',
                     'id': '1'}
        self.assertEqual(exp_local, hostvars['1.2.3.4'])
        self.assertEqual(remote, hostvars['4.4.4.4'])
Example #2
0
    def test_reg_and_retieve_multi(self, m_get_ip, m_gethost):
        m_get_ip.return_value = '1.2.3.4'
        m_gethost.return_value = 'test-hostname'

        # register local host group.
        start.register_group_and_hostvars(self.client)

        # dummy external host registration.
        remote = {'ansible_eth0': {'ipv4': {'address': '4.4.4.4'}},
                  'ansible_eth1': {'ipv4': {'address': '4.4.4.4'}},
                  'ansible_hostname': 'the-other-host',
                  'api_interface': 'eth2'}
        party.Party(self.client, '/kolla/deploy_id/testg/testr/.party',
                    json.dumps(remote)).join()

        # make sure this function gets both hosts information.
        tf = start.TemplateFunctions(self.client)
        groups, hostvars = tf.get_groups_and_hostvars()
        self.assertEqual(sorted(['1.2.3.4', '4.4.4.4']),
                         sorted(groups['testr']))
        exp_local = {'ansible_eth1': {'ipv4': {'address': '1.2.3.4'}},
                     'ansible_eth2': {'ipv4': {'address': '1.2.3.4'}},
                     'ansible_hostname': 'test-hostname',
                     'api_interface': 'eth2'}
        self.assertEqual(exp_local, hostvars['1.2.3.4'])
        self.assertEqual(remote, hostvars['4.4.4.4'])
        ips = tf.list_ips_by_service('testg/testr')
        self.assertIn('1.2.3.4', ips)
        self.assertIn('4.4.4.4', ips)
        ipsp = tf.list_ips_by_service('testg/testr', port='3246')
        self.assertIn('1.2.3.4:3246', ipsp)
        self.assertIn('4.4.4.4:3246', ipsp)
Example #3
0
 def test_reg_and_retieve_single(self, m_get_ip, m_gethost):
     m_get_ip.return_value = '1.2.3.4'
     m_gethost.return_value = 'test-hostname'
     start.register_group_and_hostvars(self.client)
     tf = start.TemplateFunctions(self.client)
     groups, hostvars = tf.get_groups_and_hostvars()
     self.assertEqual({'testr': ['1.2.3.4']}, groups)
     exp = {'ansible_eth1': {'ipv4': {'address': '1.2.3.4'}},
            'ansible_eth2': {'ipv4': {'address': '1.2.3.4'}},
            'ansible_hostname': 'test-hostname',
            'api_interface': 'eth2'}
     self.assertEqual(exp, hostvars['1.2.3.4'])
 def test_reg_and_retieve_single(self, m_get_ip, m_gethost):
     m_get_ip.return_value = '1.2.3.4'
     m_gethost.return_value = 'test-hostname'
     start.register_group_and_hostvars(self.client)
     groups, hostvars = start.get_groups_and_hostvars(self.client)
     self.assertEqual({'testg': ['1.2.3.4']}, groups)
     exp = {'ansible_eth0': {'ipv4': {'address': '1.2.3.4'}},
            'ansible_eth1': {'ipv4': {'address': '1.2.3.4'}},
            'ansible_hostname': 'test-hostname',
            'role': 'testr',
            'id': '1'}
     self.assertEqual(exp, hostvars['1.2.3.4'])
Example #5
0
    def test_nova_conf(self, m_write_file, m_get_ip, m_gethost, m_sleep):
        m_get_ip.return_value = '1.2.3.4'
        m_gethost.return_value = 'test-hostname'

        # register local host group.
        start.register_group_and_hostvars(self.client)

        self._register_service('openstack/nova/nova-compute', ['4.4.4.4'])
        self._register_service('infra/memcached/memcached',
                               ['3.1.2.3', '3.1.2.4'])
        self._register_service('infra/rabbitmq/rabbitmq',
                               ['2.1.2.3', '2.1.2.4'])
        self._register_service('openstack/glance/glance-api',
                               ['1.1.2.3', '1.1.2.4'])
        self._define_variables()

        afile = {'source': 'nova.conf.j2',
                 'dest': '/etc/nova/nova.conf',
                 'owner': 'nova',
                 'perm': '0600'}

        conf = {'commands': {'setup': {
            'command': 'true', 'files': {'afile': afile}}}}

        mod_dir = os.path.dirname(sys.modules[__name__].__file__)
        proj_dir = os.path.abspath(os.path.join(mod_dir, '..', '..', '..'))
        with open(os.path.join(proj_dir,
                  'config/nova/templates/nova.conf.j2')) as nc:
            template_contents = nc.read()
            self.client.create(
                '/kolla/did/openstack/nova/nova-compute/files/afile',
                template_contents.encode('utf-8'), makepath=True)

        cmp_file = os.path.join(mod_dir, 'nova-%s.conf' % self.out)
        with open(cmp_file) as cf:
            expect = cf.read()

        start.run_commands(self.client, conf)
        m_write_file.assert_called_once_with(afile, expect)