Revision b84ed662 snf-cyclades-app/synnefo/api/management/commands/server-create.py
b/snf-cyclades-app/synnefo/api/management/commands/server-create.py | ||
---|---|---|
34 | 34 |
from optparse import make_option |
35 | 35 |
|
36 | 36 |
from django.core.management.base import BaseCommand, CommandError |
37 |
from synnefo.management import common |
|
37 | 38 |
|
38 |
from synnefo.db.models import VirtualMachine, Backend, Flavor
|
|
39 |
from synnefo.db.models import VirtualMachine |
|
39 | 40 |
from synnefo.logic.backend import create_instance |
40 | 41 |
from synnefo.logic.backend_allocator import BackendAllocator |
41 |
from synnefo.api.util import get_image, allocate_public_address |
|
42 |
from synnefo.api.faults import ItemNotFound |
|
42 |
from synnefo.api.util import allocate_public_address |
|
43 | 43 |
|
44 | 44 |
HELP_MSG = """ |
45 | 45 |
|
... | ... | |
95 | 95 |
|
96 | 96 |
# Get Flavor |
97 | 97 |
if flavor_id: |
98 |
try: |
|
99 |
flavor_id = int(flavor_id) |
|
100 |
flavor = Flavor.objects.get(id=flavor_id) |
|
101 |
except ValueError: |
|
102 |
raise CommandError("Invalid flavor-id") |
|
103 |
except Flavor.DoesNotExist: |
|
104 |
raise CommandError("Flavor not found") |
|
105 |
else: |
|
106 |
raise CommandError("flavor-id is mandatory") |
|
98 |
flavor = common.get_flavor(flavor_id) |
|
107 | 99 |
|
108 | 100 |
# Get Image |
109 | 101 |
if image_id: |
110 |
try: |
|
111 |
img = get_image(image_id, user_id) |
|
112 |
except ItemNotFound: |
|
113 |
raise CommandError("Image not found") |
|
102 |
img = common.get_image(image_id, user_id) |
|
114 | 103 |
|
115 | 104 |
properties = img.get('properties', {}) |
116 | 105 |
image = {} |
... | ... | |
123 | 112 |
|
124 | 113 |
# Get Backend |
125 | 114 |
if backend_id: |
126 |
try: |
|
127 |
backend_id = int(backend_id) |
|
128 |
backend = Backend.objects.get(id=backend_id) |
|
129 |
except (ValueError, Backend.DoesNotExist): |
|
130 |
raise CommandError("Invalid Backend ID") |
|
115 |
backend = common.get_backend(backend_id) |
|
131 | 116 |
else: |
132 | 117 |
ballocator = BackendAllocator() |
133 | 118 |
backend = ballocator.allocate(user_id, flavor) |
Also available in: Unified diff