Revision 90d90bd2
b/api/servers.py | ||
---|---|---|
64 | 64 |
d['hostId'] = server.hostid |
65 | 65 |
d['updated'] = server.updated.isoformat() |
66 | 66 |
d['created'] = server.created.isoformat() |
67 |
d['flavorId'] = server.flavor.id # XXX Should use flavorRef instead?
|
|
68 |
d['imageId'] = server.sourceimage.id # XXX Should use imageRef instead?
|
|
67 |
d['flavorRef'] = server.flavor.id
|
|
68 |
d['imageRef'] = server.sourceimage.id
|
|
69 | 69 |
d['description'] = server.description # XXX Not in OpenStack docs |
70 | 70 |
|
71 | 71 |
server_meta = server.virtualmachinemetadata_set.all() |
... | ... | |
122 | 122 |
try: |
123 | 123 |
server = req['server'] |
124 | 124 |
name = server['name'] |
125 |
sourceimage = Image.objects.get(id=server['imageId'])
|
|
126 |
flavor = Flavor.objects.get(id=server['flavorId'])
|
|
125 |
sourceimage = Image.objects.get(id=server['imageRef'])
|
|
126 |
flavor = Flavor.objects.get(id=server['flavorRef'])
|
|
127 | 127 |
except KeyError: |
128 | 128 |
raise BadRequest |
129 | 129 |
except Image.DoesNotExist: |
... | ... | |
152 | 152 |
disk_template='plain', |
153 | 153 |
disks=[{"size": 2000}], #FIXME: Always ask for a 2GB disk for now |
154 | 154 |
nics=[{}], |
155 |
os='debootstrap+default', #TODO: select OS from imageId
|
|
155 |
os='debootstrap+default', #TODO: select OS from imageRef
|
|
156 | 156 |
ip_check=False, |
157 |
nam_check=False, |
|
157 |
name_check=False,
|
|
158 | 158 |
pnode=rapi.GetNodes()[0], #TODO: verify if this is necessary |
159 | 159 |
dry_run=dry_run, |
160 | 160 |
beparams=dict(auto_balance=True, vcpus=flavor.cpu, memory=flavor.ram)) |
b/api/templates/server.xml | ||
---|---|---|
6 | 6 |
{% if server.adminPass %}adminPass="{{ server.adminPass }}"{% endif %} |
7 | 7 |
created="{{ server.created }}" |
8 | 8 |
description="{{ server.description }}" |
9 |
flavorId="{{ server.flavorId }}"
|
|
9 |
flavorRef="{{ server.flavorRef }}"
|
|
10 | 10 |
hostId="{{ server.hostId }}" |
11 | 11 |
id="{{ server.id }}" |
12 |
imageId="{{ server.imageId }}"
|
|
12 |
imageRef="{{ server.imageRef }}"
|
|
13 | 13 |
name="{{ server.name }}" |
14 | 14 |
progress="{{ server.progress }}" |
15 | 15 |
status="{{ server.status }}" |
b/api/tests_redux.py | ||
---|---|---|
26 | 26 |
{ |
27 | 27 |
"server" : { |
28 | 28 |
"name" : "%(name)s", |
29 |
"flavorId" : "%(flavorId)s",
|
|
30 |
"imageId" : "%(imageId)s"
|
|
29 |
"flavorRef" : "%(flavorRef)s",
|
|
30 |
"imageRef" : "%(imageRef)s"
|
|
31 | 31 |
} |
32 | 32 |
} |
33 | 33 |
''' |
34 | 34 |
|
35 |
def new_server(imageId=1, flavorId=1):
|
|
35 |
def new_server(imageRef=1, flavorRef=1):
|
|
36 | 36 |
name = self.create_server_name() |
37 |
return name, TEMPLATE % dict(name=name, imageId=imageId, flavorId=flavorId)
|
|
37 |
return name, TEMPLATE % dict(name=name, imageRef=imageRef, flavorRef=flavorRef)
|
|
38 | 38 |
|
39 | 39 |
def verify_response(response, name): |
40 | 40 |
assert response.status_code == 202 |
41 | 41 |
reply = json.loads(response.content) |
42 | 42 |
server = reply['server'] |
43 | 43 |
assert server['name'] == name |
44 |
assert server['imageId'] == 1
|
|
45 |
assert server['flavorId'] == 1
|
|
44 |
assert server['imageRef'] == 1
|
|
45 |
assert server['flavorRef'] == 1
|
|
46 | 46 |
assert server['status'] == 'BUILD' |
47 | 47 |
assert server['adminPass'] |
48 | 48 |
assert server['addresses'] |
... | ... | |
69 | 69 |
HTTP_ACCEPT='application/xml') |
70 | 70 |
verify_response(response, name) |
71 | 71 |
|
72 |
name, data = new_server(imageId=0)
|
|
72 |
name, data = new_server(imageRef=0)
|
|
73 | 73 |
url = '/api/%s/servers' % API |
74 | 74 |
response = self.client.post(url, content_type='application/json', data=data) |
75 | 75 |
verify_error(response, 404, 'itemNotFound') |
76 | 76 |
|
77 |
name, data = new_server(flavorId=0)
|
|
77 |
name, data = new_server(flavorRef=0)
|
|
78 | 78 |
url = '/api/%s/servers' % API |
79 | 79 |
response = self.client.post(url, content_type='application/json', data=data) |
80 | 80 |
verify_error(response, 404, 'itemNotFound') |
Also available in: Unified diff