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