Exemplo n.º 1
0
    def test_reserve_with_address(self):
        request = {"floatingip": {
            "floating_network_id": self.pool.id,
            "floating_ip_address": "192.168.2.10"}
            }
        with mocked_quotaholder():
            response = self.post(URL, "test_user", json.dumps(request), "json")
        self.assertSuccess(response)
        ip = floating_ips.get()
        self.assertEqual(json.loads(response.content)["floatingip"],
                         {"instance_id": None,
                          "floating_ip_address": "192.168.2.10",
                          "fixed_ip_address": None,
                          "id": str(ip.id),
                          "port_id": None,
                          "deleted": False,
                          "user_id": "test_user",
                          "tenant_id": "test_user",
                          "shared_to_project": False,
                          "floating_network_id": str(self.pool.id)})

        # Already reserved
        with mocked_quotaholder():
            response = self.post(URL, "test_user", json.dumps(request), "json")
        self.assertFault(response, 409, "conflict")

        # Used by instance
        with transaction.commit_on_success():
            self.pool.reserve_address("192.168.2.20")
        request = {"floatingip": {
            "floating_network_id": self.pool.id,
            "floating_ip_address": "192.168.2.20"}
            }
        with mocked_quotaholder():
            response = self.post(URL, "test_user", json.dumps(request), "json")
        self.assertFault(response, 409, "conflict")

        # Address out of pool
        request = {"floatingip": {
            "floating_network_id": self.pool.id,
            "floating_ip_address": "192.168.3.5"}
            }
        with mocked_quotaholder():
            response = self.post(URL, "test_user", json.dumps(request), "json")
        self.assertBadRequest(response)
Exemplo n.º 2
0
 def test_bad_transaction_custom_decorator_using(self):
     with self.assertRaises(TransactionException):
         cyclades_transaction.commit_on_success(using="default")(self.bad_transaction)()
     self.assertEqual(VirtualMachine.objects.count(), 0)
Exemplo n.º 3
0
 def test_bad_transaction_custom_decorator_incorrect_dbs(self):
     settings.DATABASES['cyclades'] = settings.DATABASES['default']
     with self.assertRaises(TransactionException):
         cyclades_transaction.commit_on_success(self.bad_transaction)()
     self.assertEqual(VirtualMachine.objects.count(), 0)
     settings.DATABASES.pop("cyclades")
Exemplo n.º 4
0
 def test_good_transaction_custom_decorator(self):
     cyclades_transaction.commit_on_success(self.good_transaction)()
     self.assertEqual(VirtualMachine.objects.count(), 1)
Exemplo n.º 5
0
 def test_bad_transaction_custom_decorator_using(self):
     with self.assertRaises(TransactionException):
         cyclades_transaction.commit_on_success(using="default")(
             self.bad_transaction)()
     self.assertEqual(VirtualMachine.objects.count(), 0)
Exemplo n.º 6
0
 def test_bad_transaction_custom_decorator_incorrect_dbs(self):
     settings.DATABASES['cyclades'] = settings.DATABASES['default']
     with self.assertRaises(TransactionException):
         cyclades_transaction.commit_on_success(self.bad_transaction)()
     self.assertEqual(VirtualMachine.objects.count(), 0)
     settings.DATABASES.pop("cyclades")
Exemplo n.º 7
0
 def test_good_transaction_custom_decorator(self):
     cyclades_transaction.commit_on_success(self.good_transaction)()
     self.assertEqual(VirtualMachine.objects.count(), 1)