Exemplo n.º 1
0
    def get_by_network(cls, context, network, host=None):
        ipinfo = db.network_get_associated_fixed_ips(context,
                                                     network['id'],
                                                     host=host)
        if not ipinfo:
            return []

        fips = cls(context=context, objects=[])

        for info in ipinfo:
            inst = objects.Instance(context=context,
                                    uuid=info['instance_uuid'],
                                    hostname=info['instance_hostname'],
                                    created_at=info['instance_created'],
                                    updated_at=info['instance_updated'])
            vif = objects.VirtualInterface(context=context,
                                           id=info['vif_id'],
                                           address=info['vif_address'])
            fip = objects.FixedIP(context=context,
                                  address=info['address'],
                                  instance_uuid=info['instance_uuid'],
                                  network_id=info['network_id'],
                                  virtual_interface_id=info['vif_id'],
                                  allocated=info['allocated'],
                                  leased=info['leased'],
                                  default_route=info['default_route'],
                                  instance=inst,
                                  virtual_interface=vif)
            fips.objects.append(fip)
        fips.obj_reset_changes()
        return fips
Exemplo n.º 2
0
 def test_backport_fixedip_1_1(self):
     floating = objects.FloatingIP()
     fixed = objects.FixedIP()
     floating.fixed_ip = fixed
     primitive = floating.obj_to_primitive(target_version='1.1')
     self.assertEqual(
         '1.1', primitive['patron_object.data']['fixed_ip']
         ['patron_object.version'])
Exemplo n.º 3
0
 def test_get_instance_by_floating_address(self, mock_get_by_floating):
     mock_get_by_floating.return_value = objects.FixedIP(
         instance_uuid = mock.sentinel.instance_uuid)
     self.assertEqual(str(mock.sentinel.instance_uuid),
                      self.network_api.get_instance_id_by_floating_address(
                          self.context, mock.sentinel.floating))
     mock_get_by_floating.assert_called_once_with(self.context,
                                                  mock.sentinel.floating)
Exemplo n.º 4
0
 def _test_is_multi_host_network_has_project_id(self, is_multi_host,
                                                fip_get):
     network = objects.Network(
         id=123, project_id=self.context.project_id,
         multi_host=is_multi_host)
     fip_get.return_value = [
         objects.FixedIP(instance_uuid=FAKE_UUID, network=network,
                         floating_ips=objects.FloatingIPList())]
     instance = objects.Instance(uuid=FAKE_UUID)
     result, floats = self.network_api._get_multi_addresses(self.context,
                                                            instance)
     self.assertEqual(is_multi_host, result)
Exemplo n.º 5
0
    def test_list_ips_associated(self, mock_get):
        instance_uuid = "fake-uuid"
        fixed_address = "10.0.0.1"
        floating_address = "192.168.0.1"
        fixed_ip = objects.FixedIP(instance_uuid=instance_uuid,
                                   address=fixed_address)
        floating_ip = objects.FloatingIP(address=floating_address,
                                         fixed_ip=fixed_ip,
                                         pool=CONF.default_floating_pool,
                                         interface=CONF.public_interface,
                                         project_id=None)
        floating_list = objects.FloatingIPList(objects=[floating_ip])
        mock_get.return_value = floating_list
        res_dict = self.controller.index(self.admin_req)

        ip_info = [{'address': floating_address,
                    'pool': CONF.default_floating_pool,
                    'interface': CONF.public_interface,
                    'project_id': None,
                    'instance_uuid': instance_uuid,
                    'fixed_ip': fixed_address}]
        response = {'floating_ip_info': ip_info}

        self.assertEqual(res_dict, response)
Exemplo n.º 6
0
 def test_save_no_fixedip(self, update):
     update.return_value = fake_floating_ip
     floatingip = floating_ip.FloatingIP(context=self.context, id=123)
     floatingip.fixed_ip = objects.FixedIP(context=self.context, id=456)
     self.assertNotIn('fixed_ip', update.calls[1])