Ejemplo n.º 1
0
    def test_init_instances_ips_neutron_without_floating(
            self, nova, upd, neutron):

        self.override_config('use_neutron', True)
        self.override_config('use_floating_ips', False)
        server = mock.Mock(addresses={}, id='serv_id')
        nova.return_value = server
        neutron_client = mock.Mock()
        neutron_client.list_ports.return_value = {
            'ports': [
                {'id': 'port_id'}
            ]
        }

        neutron_client.list_floatingips.return_value = {
            'floatingips': [
                {
                    'floating_ip_address': '172.1.1.1',
                    'fixed_ip_address': '10.2.2.2',
                }
            ]
        }
        neutron.return_value = neutron_client

        self.assertEqual('10.2.2.2', networks.init_instances_ips(mock.Mock()))
Ejemplo n.º 2
0
    def _await_networks(self, cluster, instances):
        if not instances:
            return

        ips_assigned = set()
        while len(ips_assigned) != len(instances):
            if not g.check_cluster_exists(cluster):
                return
            for instance in instances:
                if instance.id not in ips_assigned:
                    if networks.init_instances_ips(instance):
                        ips_assigned.add(instance.id)

            context.sleep(1)

        LOG.info(
            _LI("Cluster '%s': all instances have IPs assigned"), cluster.id)

        cluster = conductor.cluster_get(context.ctx(), cluster)
        instances = g.get_instances(cluster, ips_assigned)

        with context.ThreadGroup() as tg:
            for instance in instances:
                tg.spawn("wait-for-ssh-%s" % instance.instance_name,
                         self._wait_until_accessible, instance)

        LOG.info(_LI("Cluster '%s': all instances are accessible"), cluster.id)
Ejemplo n.º 3
0
 def _ips_assign(self, ips_assigned, cluster, instances):
     if not g.check_cluster_exists(cluster):
         return True
     for instance in instances:
         if instance.id not in ips_assigned:
             if networks.init_instances_ips(instance):
                 ips_assigned.add(instance.id)
                 cpo.add_successful_event(instance)
     return len(ips_assigned) == len(instances)
Ejemplo n.º 4
0
 def _ips_assign(self, ips_assigned, cluster, instances):
     if not g.check_cluster_exists(cluster):
         return True
     for instance in instances:
         if instance.id not in ips_assigned:
             if networks.init_instances_ips(instance):
                 ips_assigned.add(instance.id)
                 cpo.add_successful_event(instance)
     return len(ips_assigned) == len(instances)
Ejemplo n.º 5
0
 def _ips_assign(self, ips_assigned, cluster, instances):
     if not cluster_utils.check_cluster_exists(cluster):
         return True
     for instance in instances:
         if instance.id not in ips_assigned:
             with context.set_current_instance_id(instance.instance_id):
                 if networks.init_instances_ips(instance):
                     ips_assigned.add(instance.id)
                     cpo.add_successful_event(instance)
     return len(ips_assigned) == len(instances)
Ejemplo n.º 6
0
 def _ips_assign(self, ips_assigned, cluster, instances):
     if not cluster_utils.check_cluster_exists(cluster):
         return True
     for instance in instances:
         if instance.id not in ips_assigned:
             with context.set_current_instance_id(instance.instance_id):
                 if networks.init_instances_ips(instance):
                     ips_assigned.add(instance.id)
                     cpo.add_successful_event(instance)
     return len(ips_assigned) == len(instances)
Ejemplo n.º 7
0
    def test_init_instances_ips_without_floating(self, nova, upd):
        self.override_config('use_floating_ips', False)
        server = mock.Mock()
        server.addresses = {
            'network': [{
                'version': 4,
                'OS-EXT-IPS:type': 'fixed',
                'addr': '10.2.2.2'
            }]
        }
        nova.return_value = server

        self.assertEqual('10.2.2.2', networks.init_instances_ips(mock.Mock()))
Ejemplo n.º 8
0
    def test_init_instances_ips_without_floating(self, nova, upd):
        self.override_config('use_floating_ips', False)
        server = mock.Mock()
        server.addresses = {
            'network': [
                {
                    'version': 4,
                    'OS-EXT-IPS:type': 'fixed',
                    'addr': '10.2.2.2'
                }
            ]
        }
        nova.return_value = server

        self.assertEqual('10.2.2.2', networks.init_instances_ips(mock.Mock()))
Ejemplo n.º 9
0
    def test_init_instances_ips_with_proxy(self, nova, upd):

        instance = mock.Mock()
        instance.cluster.has_proxy_gateway.return_value = True
        instance.node_group.is_proxy_gateway = False
        server = mock.Mock()
        server.addresses = {
            'network': [{
                'version': 4,
                'OS-EXT-IPS:type': 'fixed',
                'addr': '10.2.2.2'
            }]
        }
        nova.return_value = server

        self.assertEqual('10.2.2.2', networks.init_instances_ips(instance))
Ejemplo n.º 10
0
    def test_init_instances_ips_with_floating(self, nova, upd):
        server = mock.Mock()
        server.addresses = {
            'network': [{
                'version': 4,
                'OS-EXT-IPS:type': 'fixed',
                'addr': '10.2.2.2'
            }, {
                'version': 4,
                'OS-EXT-IPS:type': 'floating',
                'addr': '172.1.1.1'
            }]
        }
        nova.return_value = server

        self.assertEqual('172.1.1.1', networks.init_instances_ips(mock.Mock()))
Ejemplo n.º 11
0
    def test_init_instances_ips_with_proxy(self, nova, upd):

        instance = mock.Mock()
        instance.cluster.has_proxy_gateway.return_value = True
        instance.node_group.is_proxy_gateway = False
        server = mock.Mock()
        server.addresses = {
            'network': [
                {
                    'version': 4,
                    'OS-EXT-IPS:type': 'fixed',
                    'addr': '10.2.2.2'
                }
            ]
        }
        nova.return_value = server

        self.assertEqual('10.2.2.2', networks.init_instances_ips(instance))
Ejemplo n.º 12
0
    def test_init_instances_ips_neutron_with_floating(self, nova, upd,
                                                      neutron):

        self.override_config('use_neutron', True)
        server = mock.Mock(addresses={}, id='serv_id')
        nova.return_value = server
        neutron_client = mock.Mock()
        neutron_client.list_ports.return_value = {'ports': [{'id': 'port_id'}]}

        neutron_client.list_floatingips.return_value = {
            'floatingips': [{
                'floating_ip_address': '172.1.1.1',
                'fixed_ip_address': '10.2.2.2',
            }]
        }
        neutron.return_value = neutron_client

        self.assertEqual('172.1.1.1', networks.init_instances_ips(mock.Mock()))
Ejemplo n.º 13
0
    def test_init_instances_ips_with_ipv6_subnet(self, nova, upd):
        self.override_config('use_floating_ips', False)
        instance = mock.Mock()
        server = mock.Mock()
        server.addresses = {
            'network': [{
                'version': 6,
                'OS-EXT-IPS:type': 'fixed',
                'addr': 'fe80::1234:5678:9abc:def0'
            }, {
                'version': 4,
                'OS-EXT-IPS:type': 'fixed',
                'addr': '10.2.2.2'
            }]
        }
        nova.return_value = server

        self.assertEqual('10.2.2.2', networks.init_instances_ips(instance))
Ejemplo n.º 14
0
    def test_init_instances_ips_with_floating(self, nova, upd):
        server = mock.Mock()
        server.addresses = {
            'network': [
                {
                    'version': 4,
                    'OS-EXT-IPS:type': 'fixed',
                    'addr': '10.2.2.2'
                },
                {
                    'version': 4,
                    'OS-EXT-IPS:type': 'floating',
                    'addr': '172.1.1.1'
                }
            ]
        }
        nova.return_value = server

        self.assertEqual('172.1.1.1', networks.init_instances_ips(mock.Mock()))
Ejemplo n.º 15
0
    def test_init_instances_ips_neutron_with_floating(
            self, nova, upd):

        self.override_config('use_neutron', True)
        server = mock.Mock(id='serv_id')
        server.addresses = {
            'network': [
                {
                    'version': 4,
                    'OS-EXT-IPS:type': 'floating',
                    'addr': '172.1.1.1'
                },
                {
                    'version': 4,
                    'OS-EXT-IPS:type': 'fixed',
                    'addr': '10.2.2.2'
                }
            ]
        }
        nova.return_value = server
        self.assertEqual('172.1.1.1', networks.init_instances_ips(mock.Mock()))
Ejemplo n.º 16
0
    def test_init_instances_ips_with_ipv6_subnet(self, nova, upd):
        self.override_config('use_floating_ips', False)
        instance = mock.Mock()
        server = mock.Mock()
        server.addresses = {
            'network': [
                {
                    'version': 6,
                    'OS-EXT-IPS:type': 'fixed',
                    'addr': 'fe80::1234:5678:9abc:def0'
                },
                {
                    'version': 4,
                    'OS-EXT-IPS:type': 'fixed',
                    'addr': '10.2.2.2'
                }
            ]
        }
        nova.return_value = server

        self.assertEqual('10.2.2.2', networks.init_instances_ips(instance))