def _create_port(self, network, namestart='port-quotatest-'): name = data_utils.rand_name(namestart) body = dict(port=dict( name=name, network_id=network.id, tenant_id=network.tenant_id)) result = self.network_client.create_port(body=body) self.assertIsNotNone(result, 'Unable to allocate port') port = net_common.DeletablePort(client=self.network_client, **result['port']) self.set_resource(name, port) return port
def _hotplug_server(self): old_floating_ip, server = self.floating_ip_tuple ip_address = old_floating_ip.floating_ip_address private_key = self.servers[server].private_key ssh_client = self.get_remote_client(ip_address, private_key=private_key) old_nic_list = self._get_server_nics(ssh_client) # get a port from a list of one item port_list = self._list_ports(device_id=server.id) self.assertEqual(1, len(port_list)) old_port = port_list[0] self.compute_client.servers.interface_attach(server=server, net_id=self.new_net.id, port_id=None, fixed_ip=None) # move server to the head of the cleanup list self.addCleanup(self.delete_timeout, self.compute_client.servers, server.id) self.addCleanup(self.delete_wrapper, server) def check_ports(): port_list = [port for port in self._list_ports(device_id=server.id) if port != old_port] return len(port_list) == 1 test.call_until_true(check_ports, 60, 1) new_port_list = [p for p in self._list_ports(device_id=server.id) if p != old_port] self.assertEqual(1, len(new_port_list)) new_port = new_port_list[0] new_port = net_common.DeletablePort(client=self.network_client, **new_port) new_nic_list = self._get_server_nics(ssh_client) diff_list = [n for n in new_nic_list if n not in old_nic_list] self.assertEqual(1, len(diff_list)) num, new_nic = diff_list[0] ssh_client.assign_static_ip(nic=new_nic, addr=new_port.fixed_ips[0]['ip_address']) ssh_client.turn_nic_on(nic=new_nic)