예제 #1
0
 def setUp(self):
     self.fixture = fixtures.OpenStackFixture()
     self.active_ip = factories.FloatingIPFactory(
         runtime_state='ACTIVE',
         service_settings=self.fixture.openstack_service_settings,
         project=self.fixture.project,
     )
     self.down_ip = factories.FloatingIPFactory(
         runtime_state='DOWN',
         service_settings=self.fixture.openstack_service_settings,
         project=self.fixture.project,
     )
     self.other_ip = factories.FloatingIPFactory(runtime_state='UNDEFINED')
예제 #2
0
    def test_floating_ip_delete(self):
        openstack_floating_ip = openstack_factories.FloatingIPFactory(
            tenant=self.tenant)
        factories.FloatingIPFactory(
            settings=self.service_settings,
            backend_id=openstack_floating_ip.backend_id)

        openstack_floating_ip.delete()
        self.assertEqual(models.FloatingIP.objects.count(), 0)
예제 #3
0
    def test_floating_ip_create(self):
        openstack_floating_ip = openstack_factories.FloatingIPFactory(
            tenant=self.tenant, state=StateMixin.States.CREATING)
        self.assertEqual(models.FloatingIP.objects.count(), 0)

        openstack_floating_ip.set_ok()
        openstack_floating_ip.save()

        self.assertEqual(models.FloatingIP.objects.count(), 1)
    def test_instance_information_is_empty_if_floating_ip_service_property_is_missing(self):
        openstack_factories.FloatingIPFactory()

        response = self.client.get(openstack_factories.FloatingIPFactory.get_list_url())

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(len(response.data), 1)
        self.assertIsNone(response.data[0]['instance_uuid'])
        self.assertIsNone(response.data[0]['instance_name'])
        self.assertIsNone(response.data[0]['instance_url'])
    def test_instance_information_is_empty_for_unassociated_floating_ip(self):
        openstack_factories.FloatingIPFactory(backend_id=self.fixture.floating_ip.backend_id,
                                              address=self.fixture.floating_ip.address)

        response = self.client.get(openstack_factories.FloatingIPFactory.get_list_url())

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(len(response.data), 1)
        self.assertIsNone(response.data[0]['instance_uuid'])
        self.assertIsNone(response.data[0]['instance_name'])
        self.assertIsNone(response.data[0]['instance_url'])
예제 #6
0
    def test_floating_ip_is_not_created_if_it_already_exists(self):
        factories.FloatingIPFactory(settings=self.service_settings,
                                    backend_id='VALID_BACKEND_ID')
        openstack_floating_ip = openstack_factories.FloatingIPFactory(
            tenant=self.tenant,
            state=StateMixin.States.CREATING,
            backend_id='VALID_BACKEND_ID',
        )
        self.assertEqual(models.FloatingIP.objects.count(), 1)

        openstack_floating_ip.set_ok()
        openstack_floating_ip.save()

        self.assertEqual(models.FloatingIP.objects.count(), 1)
    def test_instance_information_is_returned_for_associated_floating_ip(self):
        self.fixture.floating_ip.runtime_state = 'ACTIVE'
        self.fixture.floating_ip.internal_ip = self.fixture.internal_ip
        self.fixture.floating_ip.save()
        openstack_factories.FloatingIPFactory(backend_id=self.fixture.floating_ip.backend_id,
                                              address=self.fixture.floating_ip.address)

        response = self.client.get(openstack_factories.FloatingIPFactory.get_list_url())

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(len(response.data), 1)
        self.assertEqual(response.data[0]['instance_uuid'], self.fixture.instance.uuid)
        self.assertEqual(response.data[0]['instance_name'], self.fixture.instance.name)
        self.assertIn(self.fixture.instance.uuid.hex, response.data[0]['instance_url'])
예제 #8
0
    def test_floating_ip_update(self):
        openstack_floating_ip = openstack_factories.FloatingIPFactory(
            tenant=self.tenant,
            name='New name',
            state=StateMixin.States.UPDATING
        )
        floating_ip = factories.FloatingIPFactory(
            settings=self.service_settings,
            backend_id=openstack_floating_ip.backend_id,
        )

        openstack_floating_ip.set_ok()
        openstack_floating_ip.save()
        floating_ip.refresh_from_db()

        self.assertEqual(openstack_floating_ip.name, floating_ip.name)
        self.assertEqual(openstack_floating_ip.address, floating_ip.address)
        self.assertEqual(openstack_floating_ip.runtime_state, floating_ip.runtime_state)
        self.assertEqual(openstack_floating_ip.backend_network_id, floating_ip.backend_network_id)