summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Andrews <anotherjesse@gmail.com>2011-08-26 17:46:47 -0700
committerJesse Andrews <anotherjesse@gmail.com>2011-08-26 17:46:47 -0700
commit19cb3672f2849fe659173631f7f81ed489f1ea7e (patch)
treeb81551c4432a5f8c82d0f5e1b3b51f7771d57887
parent4389153161827166dac3acb02d3e7c6d07170714 (diff)
v1.0 of server create injects first users keypair
-rw-r--r--nova/api/openstack/create_instance_helper.py1
-rw-r--r--nova/api/openstack/servers.py13
-rw-r--r--nova/tests/api/openstack/test_servers.py6
3 files changed, 17 insertions, 3 deletions
diff --git a/nova/api/openstack/create_instance_helper.py b/nova/api/openstack/create_instance_helper.py
index e7428bf41..d82cb534f 100644
--- a/nova/api/openstack/create_instance_helper.py
+++ b/nova/api/openstack/create_instance_helper.py
@@ -19,7 +19,6 @@ import base64
from webob import exc
from xml.dom import minidom
-from nova import db
from nova import exception
from nova import flags
from nova import log as logging
diff --git a/nova/api/openstack/servers.py b/nova/api/openstack/servers.py
index ad563b771..f288f2228 100644
--- a/nova/api/openstack/servers.py
+++ b/nova/api/openstack/servers.py
@@ -22,6 +22,7 @@ from xml.dom import minidom
import webob
from nova import compute
+from nova import db
from nova import exception
from nova import flags
from nova import log as logging
@@ -563,6 +564,18 @@ class ControllerV10(Controller):
raise exc.HTTPNotFound()
return webob.Response(status_int=202)
+ def create(self, req, body):
+ """ Creates a new server for a given user """
+ # note(ja): v1.0 injects the first keypair for the project for testing
+ if 'server' in body and not 'key_name' in body['server']:
+ context = req.environ["nova.context"]
+ keypairs = db.key_pair_get_all_by_user(context.elevated(),
+ context.user_id)
+ if keypairs:
+ body['server']['key_name'] = keypairs[0]['name']
+
+ return super(ControllerV10, self).create(req, body)
+
def _image_ref_from_req_data(self, data):
return data['server']['imageId']
diff --git a/nova/tests/api/openstack/test_servers.py b/nova/tests/api/openstack/test_servers.py
index bb531f462..c54bead49 100644
--- a/nova/tests/api/openstack/test_servers.py
+++ b/nova/tests/api/openstack/test_servers.py
@@ -1761,7 +1761,7 @@ class ServersTest(test.TestCase):
body = dict(server=dict(
name='server_test', imageRef=image_href, flavorRef=flavor_ref,
key_name='nonexistentkey'))
- req = webob.Request.blank('/v1.1/servers')
+ req = webob.Request.blank('/v1.1/fake/servers')
req.method = 'POST'
req.body = json.dumps(body)
req.headers["content-type"] = "application/json"
@@ -1781,7 +1781,7 @@ class ServersTest(test.TestCase):
body = dict(server=dict(
name='server_test', imageRef=image_href, flavorRef=flavor_ref,
key_name='mykey'))
- req = webob.Request.blank('/v1.1/servers')
+ req = webob.Request.blank('/v1.1/fake/servers')
req.method = 'POST'
req.body = json.dumps(body)
req.headers["content-type"] = "application/json"
@@ -3793,6 +3793,7 @@ class ServersViewBuilderV11Test(test.TestCase):
"created": "2010-10-10T12:00:00Z",
"progress": 0,
"name": "test_server",
+ "key_name": "",
"status": "BUILD",
"hostId": '',
"image": {
@@ -3848,6 +3849,7 @@ class ServersViewBuilderV11Test(test.TestCase):
"created": "2010-10-10T12:00:00Z",
"progress": 0,
"name": "test_server",
+ "key_name": "",
"status": "BUILD",
"hostId": '',
"image": {