Esempio n. 1
0
 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']))
Esempio n. 2
0
    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']))
Esempio n. 3
0
 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']))
Esempio n. 4
0
    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']))
Esempio n. 5
0
    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'))
Esempio n. 6
0
    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"]))
Esempio n. 7
0
 def get_port(self, context, id, fields=None):
     return ports.get_port(context, id, fields)
Esempio n. 8
0
 def get_port(self, context, id, fields=None):
     return ports.get_port(context, id, fields)