def test_port_show(self): with self._stubs(self.net_info, self.sub_info) as (network, subnet): fixed_ips = [dict(subnet_id=subnet['id'], enabled=True, ip_address="192.168.10.45"), dict(subnet_id=subnet['id'], enabled=True, ip_address="192.168.10.199")] port = dict(port=dict(network_id=network['id'], tenant_id=self.context.tenant_id, device_id='2', fixed_ips=fixed_ips)) expected = {'status': "ACTIVE", 'device_owner': None, 'network_id': network["id"], 'tenant_id': self.context.tenant_id, 'admin_state_up': True, 'fixed_ips': fixed_ips, 'device_id': '2'} result = port_api.create_port(self.context, port) result = port_api.get_port(self.context, result['id']) for key in expected.keys(): if key != 'fixed_ips': self.assertEqual(result[key], expected[key], "Mismatch on %s" % key) for ip in result['fixed_ips']: self.assertTrue(ip in fixed_ips, '%s not in %s' % (ip, expected['fixed_ips']))
def test_shared_ip_in_fixed_ip_list(self): with self._stubs(self.network, self.subnet, self.ports_info2) as ( net, sub, ports): for port in ports: self.assertEqual(1, len(port['fixed_ips'])) port_ids = [ports[0]['id'], ports[1]['id']] shared_ip = {'ip_address': dict(port_ids=port_ids, network_id=net['id'], version=4)} p_id = ports[0]['id'] ip = ip_api.create_ip_address(self.context, shared_ip) self.assertEqual(ip_types.SHARED, ip['type']) ports_ip = ip_api.get_ports_for_ip_address(self.context, ip['id']) self.assertEqual(2, len(ports_ip)) port_ip_update = ip_api.update_port_for_ip_address updated_port = port_ip_update(self.context, ip['id'], p_id, self._make_port_body('derp')) self.assertEqual('derp', updated_port.get('service')) port = port_api.get_port(self.context, p_id) self.assertEqual(2, len(port['fixed_ips']))
def test_port_show(self): with self._stubs(self.net_info, self.sub_info) as (network, subnet): fixed_ips = [ dict(subnet_id=subnet['id'], enabled=True, ip_address="192.168.10.45"), dict(subnet_id=subnet['id'], enabled=True, ip_address="192.168.10.199") ] port = dict(port=dict(network_id=network['id'], tenant_id=self.context.tenant_id, device_id='2', fixed_ips=fixed_ips)) expected = { 'status': "ACTIVE", 'device_owner': None, 'network_id': network["id"], 'tenant_id': self.context.tenant_id, 'admin_state_up': True, 'fixed_ips': fixed_ips, 'device_id': '2' } result = port_api.create_port(self.context, port) result = port_api.get_port(self.context, result['id']) for key in expected.keys(): if key != 'fixed_ips': self.assertEqual(result[key], expected[key], "Mismatch on %s" % key) for ip in result['fixed_ips']: self.assertTrue(ip in fixed_ips, '%s not in %s' % (ip, expected['fixed_ips']))
def test_shared_ip_in_fixed_ip_list(self): with self._stubs(self.network, self.subnet, self.ports_info2) as (net, sub, ports): for port in ports: self.assertEqual(1, len(port['fixed_ips'])) port_ids = [ports[0]['id'], ports[1]['id']] shared_ip = { 'ip_address': dict(port_ids=port_ids, network_id=net['id'], version=4) } p_id = ports[0]['id'] ip = ip_api.create_ip_address(self.context, shared_ip) self.assertEqual(ip_types.SHARED, ip['type']) ports_ip = ip_api.get_ports_for_ip_address(self.context, ip['id']) self.assertEqual(2, len(ports_ip)) port_ip_update = ip_api.update_port_for_ip_address updated_port = port_ip_update(self.context, ip['id'], p_id, self._make_port_body('derp')) self.assertEqual('derp', updated_port.get('service')) port = port_api.get_port(self.context, p_id) self.assertEqual(2, len(port['fixed_ips']))
def test_shared_ip_in_fixed_ip_list(self): def _make_body(service): body = dict(service=service) port_info = {"port": dict(body)} return port_info with self._stubs(self.network, self.subnet, self.ports_info2) as ( net, sub, ports): for p in ports: port_db = db_api.port_find(self.context, id=p['id'], scope=db_api.ONE) assocs = db_api.ip_port_association_find(self.context, scope=db_api.ALL, port_id=p['id']) self.assertEqual(1, len(p.get('fixed_ips'))) self.assertEqual(1, len(port_db.ip_addresses)) ip_db = port_db.ip_addresses[0] self.assertEqual('none', ip_db.get_service_for_port(port_db)) self.assertEqual(1, len(assocs)) device_ids = [ports[0]['device_id'], ports[1]['device_id']] shared_ip = {'ip_address': dict(device_ids=device_ids, network_id=net['id'], version=4)} ip = ip_api.create_ip_address(self.context, shared_ip) self.assertEqual(ip_types.SHARED, ip['type']) ports_ip = ip_api.get_ports_for_ip_address(self.context, ip['id']) self.assertEqual(2, len(ports_ip)) port = port_api.get_port(self.context, ports[0]['id']) self.assertEqual(2, len(port['fixed_ips'])) port_ip_update = ip_api.update_port_for_ip_address updated_port = port_ip_update(self.context, ip['id'], ports[0]['id'], _make_body('derp')) self.assertEqual('derp', updated_port.get('service')) port = ip_api.get_port_for_ip_address(self.context, ip['id'], ports[0]['id']) self.assertEqual('derp', port.get('service')) port = ip_api.get_port_for_ip_address(self.context, ip['id'], ports[1]['id']) self.assertEqual('none', port.get('service'))
def test_shared_ip_in_fixed_ip_list(self): with self._stubs(self.network, self.subnet, self.ports_info2) as (net, sub, ports): for port in ports: self.assertEqual(1, len(port["fixed_ips"])) port_ids = [ports[0]["id"], ports[1]["id"]] shared_ip = {"ip_address": dict(port_ids=port_ids, network_id=net["id"], version=4)} p_id = ports[0]["id"] ip = ip_api.create_ip_address(self.context, shared_ip) self.assertEqual(ip_types.SHARED, ip["type"]) ports_ip = ip_api.get_ports_for_ip_address(self.context, ip["id"]) self.assertEqual(2, len(ports_ip)) port_ip_update = ip_api.update_port_for_ip_address updated_port = port_ip_update(self.context, ip["id"], p_id, self._make_port_body("derp")) self.assertEqual("derp", updated_port.get("service")) port = port_api.get_port(self.context, p_id) self.assertEqual(2, len(port["fixed_ips"]))
def get_port(self, context, id, fields=None): return ports.get_port(context, id, fields)
def get_port(self, context, id, fields=None): return ports.get_port(context, id, fields)