Revision 99988465 snf-cyclades-app/synnefo/api/tests/servers.py

b/snf-cyclades-app/synnefo/api/tests/servers.py
37 37
from snf_django.utils.testing import (BaseAPITest, mocked_quotaholder,
38 38
                                      override_settings)
39 39
from synnefo.db.models import (VirtualMachine, VirtualMachineMetadata,
40
                               IPAddress)
40
                               IPAddress, NetworkInterface)
41 41
from synnefo.db import models_factory as mfactory
42 42
from synnefo.logic.utils import get_rsapi_state
43 43
from synnefo.cyclades_settings import cyclades_services
......
406 406
                                   json.dumps(self.request), 'json')
407 407
        self.assertEqual(response.status_code, 503, "serviceUnavailable")
408 408

  
409
    def test_create_server_with_port(self, mrapi):
410
        mrapi().CreateInstance.return_value = 42
411
        port1 = mfactory.IPv4AddressFactory(nic=None)
412
        request = deepcopy(self.request)
413
        request["server"]["networks"] = [{"port": port1.id}]
414
        with mocked_quotaholder():
415
            response = self.mypost("servers", port1.userid,
416
                                   json.dumps(request), 'json')
417
        self.assertEqual(response.status_code, 202)
418
        vm_id = json.loads(response.content)["server"]["id"]
419
        port1 = NetworkInterface.objects.get(id=port1.id)
420
        self.assertEqual(port1.machine_id, vm_id)
421
        # 409 if already used
422
        with mocked_quotaholder():
423
            response = self.mypost("servers", port1.userid,
424
                                   json.dumps(request), 'json')
425
        self.assertConflict(response)
426
        # Test permissions
427
        port2 = mfactory.IPv4AddressFactory(userid="user1")
428
        request["server"]["networks"] = [{"port": port2.id}]
429
        with mocked_quotaholder():
430
            response = self.mypost("servers", "user2",
431
                                   json.dumps(request), 'json')
432
        self.assertEqual(response.status_code, 404)
433

  
409 434
    def test_create_network_settings(self, mrapi):
410 435
        mrapi().CreateInstance.return_value = 12
411 436
        # Create public network and backend
......
419 444
                                               operstate="ACTIVE")
420 445
        # User requested private networks
421 446
        request = deepcopy(self.request)
422
        request["server"]["networks"] = [bnet1.network.id, bnet2.network.id]
447
        request["server"]["networks"] = [{"uuid": bnet1.network.id},
448
                                         {"uuid": bnet2.network.id}]
423 449
        with override_settings(settings,
424 450
                               DEFAULT_INSTANCE_NETWORKS=[
425 451
                                   "SNF:ANY_PUBLIC"]):
......
465 491

  
466 492
        # test connect to public netwok
467 493
        request = deepcopy(self.request)
468
        request["server"]["networks"] = [self.network.id]
494
        request["server"]["networks"] = [{"uuid": self.network.id}]
469 495
        with override_settings(settings,
470 496
                               DEFAULT_INSTANCE_NETWORKS=["SNF:ANY_PUBLIC"]):
471 497
            response = self.mypost('servers', 'test_user',
......
474 500

  
475 501
        # test wrong user
476 502
        request = deepcopy(self.request)
477
        request["server"]["networks"] = [bnet1.network.id]
503
        request["server"]["networks"] = [{"uuid": bnet1.network.id}]
478 504
        with override_settings(settings,
479 505
                               DEFAULT_INSTANCE_NETWORKS=["SNF:ANY_PUBLIC"]):
480 506
            with mocked_quotaholder():
......
484 510

  
485 511
        # Test floating IPs
486 512
        request = deepcopy(self.request)
487
        request["server"]["networks"] = [bnet1.network.id]
513
        request["server"]["networks"] = [{"uuid": bnet1.network.id}]
488 514
        fp1 = mfactory.FloatingIPFactory(address="10.0.0.2",
489 515
                                         userid="test_user",
490 516
                                         network=self.network,
......
493 519
                                         userid="test_user",
494 520
                                         network=self.network,
495 521
                                         nic=None)
496
        request["server"]["floating_ips"] = [fp1.address, fp2.address]
522
        request["server"]["floating_ips"] = [fp1.id, fp2.id]
497 523
        with override_settings(settings,
498 524
                               DEFAULT_INSTANCE_NETWORKS=[bnet3.network.id]):
499 525
            with mocked_quotaholder():

Also available in: Unified diff