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

b/snf-cyclades-app/synnefo/api/tests/servers.py
409 409
    def test_create_network_settings(self, mrapi):
410 410
        mrapi().CreateInstance.return_value = 12
411 411
        # Create public network and backend
412
        subnet1 = mfactory.IPv4SubnetFactory()
412
        subnet1 = mfactory.IPv4SubnetFactory(network__userid="test_user")
413 413
        bnet1 = mfactory.BackendNetworkFactory(network=subnet1.network,
414 414
                                               backend=self.backend,
415 415
                                               operstate="ACTIVE")
416
        subnet2 = mfactory.IPv4SubnetFactory()
416
        subnet2 = mfactory.IPv4SubnetFactory(network__userid="test_user")
417 417
        bnet2 = mfactory.BackendNetworkFactory(network=subnet2.network,
418 418
                                               backend=self.backend,
419 419
                                               operstate="ACTIVE")
420
        subnet3 = mfactory.IPv4SubnetFactory(network__userid="test_user")
421
        bnet3 = mfactory.BackendNetworkFactory(network=subnet3.network,
422
                                               backend=self.backend,
423
                                               operstate="ACTIVE")
424
        subnet4 = mfactory.IPv4SubnetFactory(network__userid="test_user")
425
        bnet4 = mfactory.BackendNetworkFactory(network=subnet4.network,
426
                                               backend=self.backend,
427
                                               operstate="ACTIVE")
428 420
        # User requested private networks
429 421
        request = deepcopy(self.request)
430
        request["server"]["networks"] = [bnet3.network.id, bnet4.network.id]
422
        request["server"]["networks"] = [bnet1.network.id, bnet2.network.id]
431 423
        with override_settings(settings,
432 424
                               DEFAULT_INSTANCE_NETWORKS=[
433
                                   "SNF:ANY_PUBLIC",
434
                                   bnet1.network.id,
435
                                   bnet2.network.id]):
425
                                   "SNF:ANY_PUBLIC"]):
436 426
            with mocked_quotaholder():
437 427
                response = self.mypost('servers', 'test_user',
438 428
                                       json.dumps(request), 'json')
439 429
        self.assertEqual(response.status_code, 202)
440 430
        name, args, kwargs = mrapi().CreateInstance.mock_calls[0]
441
        self.assertEqual(len(kwargs["nics"]), 5)
431
        self.assertEqual(len(kwargs["nics"]), 3)
442 432
        self.assertEqual(kwargs["nics"][0]["network"],
443 433
                         self.network.backend_id)
444 434
        self.assertEqual(kwargs["nics"][1]["network"],
445 435
                         bnet1.network.backend_id)
446 436
        self.assertEqual(kwargs["nics"][2]["network"],
447 437
                         bnet2.network.backend_id)
448
        self.assertEqual(kwargs["nics"][3]["network"],
449
                         bnet3.network.backend_id)
450
        self.assertEqual(kwargs["nics"][4]["network"],
451
                         bnet4.network.backend_id)
452 438

  
439
        subnet3 = mfactory.IPv4SubnetFactory(network__public=True,
440
                                             network__floating_ip_pool=True)
441
        bnet3 = mfactory.BackendNetworkFactory(network=subnet3.network,
442
                                               backend=self.backend,
443
                                               operstate="ACTIVE")
453 444
        request["server"]["floating_ips"] = []
454 445
        with override_settings(settings,
455
                               DEFAULT_INSTANCE_NETWORKS=[bnet2.network.id]):
446
                               DEFAULT_INSTANCE_NETWORKS=[bnet3.network.id]):
456 447
            with mocked_quotaholder():
457 448
                response = self.mypost('servers', 'test_user',
458 449
                                       json.dumps(request), 'json')
......
460 451
        name, args, kwargs = mrapi().CreateInstance.mock_calls[1]
461 452
        self.assertEqual(len(kwargs["nics"]), 3)
462 453
        self.assertEqual(kwargs["nics"][0]["network"],
463
                         bnet2.network.backend_id)
464
        self.assertEqual(kwargs["nics"][1]["network"],
465 454
                         bnet3.network.backend_id)
455
        self.assertEqual(kwargs["nics"][1]["network"],
456
                         bnet1.network.backend_id)
466 457
        self.assertEqual(kwargs["nics"][2]["network"],
467
                         bnet4.network.backend_id)
458
                         bnet2.network.backend_id)
468 459

  
469 460
        # test invalid network in DEFAULT_INSTANCE_NETWORKS
470 461
        with override_settings(settings, DEFAULT_INSTANCE_NETWORKS=[42]):
......
480 471
            response = self.mypost('servers', 'test_user',
481 472
                                   json.dumps(request), 'json')
482 473
        self.assertFault(response, 403, "forbidden")
474

  
483 475
        # test wrong user
484 476
        request = deepcopy(self.request)
485
        request["server"]["networks"] = [bnet3.network.id]
477
        request["server"]["networks"] = [bnet1.network.id]
486 478
        with override_settings(settings,
487 479
                               DEFAULT_INSTANCE_NETWORKS=["SNF:ANY_PUBLIC"]):
488 480
            with mocked_quotaholder():
......
492 484

  
493 485
        # Test floating IPs
494 486
        request = deepcopy(self.request)
495
        request["server"]["networks"] = [bnet4.network.id]
487
        request["server"]["networks"] = [bnet1.network.id]
496 488
        fp1 = mfactory.FloatingIPFactory(address="10.0.0.2",
497 489
                                         userid="test_user",
490
                                         network=self.network,
498 491
                                         nic=None)
499 492
        fp2 = mfactory.FloatingIPFactory(address="10.0.0.3",
500 493
                                         userid="test_user",
494
                                         network=self.network,
501 495
                                         nic=None)
502 496
        request["server"]["floating_ips"] = [fp1.address, fp2.address]
503 497
        with override_settings(settings,
......
521 515
        self.assertEqual(kwargs["nics"][2]["network"], fp2.network.backend_id)
522 516
        self.assertEqual(kwargs["nics"][2]["ip"], fp2.address)
523 517
        self.assertEqual(kwargs["nics"][3]["network"],
524
                         bnet4.network.backend_id)
518
                         bnet1.network.backend_id)
525 519

  
526 520
    def test_create_server_no_flavor(self, mrapi):
527 521
        request = deepcopy(self.request)

Also available in: Unified diff