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