Change 'admin_password' into v2 style for servers extension

This patch changes 'admin_password' to 'adminPass' that same
with v2 api. And also change the related unittest.

The differences between v2 and v3 are described on the wiki page
https://wiki.openstack.org/wiki/NovaAPIv2tov3.

Partially implements blueprint v2-on-v3-api

Change-Id: Ie5675f98bb15c55a191a207171e2ffe3be8e6deb
This commit is contained in:
He Jie Xu 2014-08-14 17:23:23 +08:00
parent c2ee61e595
commit af8f401eb5
85 changed files with 101 additions and 101 deletions

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "zPnp2GseTqG4",
"adminPass": "zPnp2GseTqG4",
"id": "8195065c-fea4-4d57-b93f-5c5c63fe90e8",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "C3r5xKS73Y7S",
"adminPass": "C3r5xKS73Y7S",
"id": "3f19c120-f64a-4faf-848e-33900b752f83",
"links": [
{

View File

@ -10,7 +10,7 @@
}
]
},
"admin_password": "99WHAxN8gpvg",
"adminPass": "99WHAxN8gpvg",
"created": "2013-11-06T07:51:09Z",
"flavor": {
"id": "1",

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "n7JGBda664QG",
"adminPass": "n7JGBda664QG",
"id": "934760e1-2b0b-4f9e-a916-eac1e69839dc",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "DM3QzjhGTzLB",
"adminPass": "DM3QzjhGTzLB",
"id": "bebeec79-497e-4711-a311-d0d2e3dfc73b",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "oCYTjD2KnRtB",
"adminPass": "oCYTjD2KnRtB",
"id": "aa3130b9-dffc-417b-aa03-93d5394a2fa6",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "fjPxt8d8YcSR",
"adminPass": "fjPxt8d8YcSR",
"id": "c937be78-c423-495b-a99a-e590ab6f30ba",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "a2apKsfp7Rom",
"adminPass": "a2apKsfp7Rom",
"id": "e88c3898-e971-42e5-8325-b7ff921efb15",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "h2cx3Lm47BJc",
"adminPass": "h2cx3Lm47BJc",
"id": "f0318e69-11eb-4aed-9840-59b6c72beee8",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "Kwg5tff6KiUU",
"adminPass": "Kwg5tff6KiUU",
"id": "8619225c-67c8-424f-9b46-cec5bad137a2",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "8mQaAgHHFsDp",
"adminPass": "8mQaAgHHFsDp",
"id": "71e8cf04-0486-46ae-9d18-e51f4978fa13",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "DM3QzjhGTzLB",
"adminPass": "DM3QzjhGTzLB",
"id": "bebeec79-497e-4711-a311-d0d2e3dfc73b",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "hqgU8QzT54wF",
"adminPass": "hqgU8QzT54wF",
"id": "4a3bde9b-fa37-408d-b167-68e1724c923e",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "xCQm2Cs2vSFx",
"adminPass": "xCQm2Cs2vSFx",
"id": "5f1fbc62-29ed-4e4a-9f15-8affc5e0a796",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "87taVVreqh6R",
"adminPass": "87taVVreqh6R",
"id": "f22e4521-d03a-4e9f-9fd3-016b9e227219",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "UCvmH8nHXm66",
"adminPass": "UCvmH8nHXm66",
"id": "a8c1c13d-ec7e-47c7-b4ff-077f72c1ca46",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "EugbD2jAD2V2",
"adminPass": "EugbD2jAD2V2",
"id": "a868cb5e-c794-47bf-9cd8-e302b72bb94b",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "uNqGTziMK3px",
"adminPass": "uNqGTziMK3px",
"id": "7d62983e-23df-4320-bc89-bbc77f2a2e40",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "5bjyggD6SaSB",
"adminPass": "5bjyggD6SaSB",
"id": "3d8bedd4-003d-417a-8cd7-a94cb181185d",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "DM3QzjhGTzLB",
"adminPass": "DM3QzjhGTzLB",
"id": "bebeec79-497e-4711-a311-d0d2e3dfc73b",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "DM3QzjhGTzLB",
"adminPass": "DM3QzjhGTzLB",
"id": "bebeec79-497e-4711-a311-d0d2e3dfc73b",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "5Y9rR4XaM8Qg",
"adminPass": "5Y9rR4XaM8Qg",
"id": "bbe8d469-e8cb-49b1-96d8-f93b68c82355",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "DM3QzjhGTzLB",
"adminPass": "DM3QzjhGTzLB",
"id": "bebeec79-497e-4711-a311-d0d2e3dfc73b",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "8C5KEgw2cQxu",
"adminPass": "8C5KEgw2cQxu",
"id": "fb947804-6a43-499d-9526-3eac8adf7271",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "Kwg5tff6KiUU",
"adminPass": "Kwg5tff6KiUU",
"id": "8619225c-67c8-424f-9b46-cec5bad137a2",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "8RK85ufqhJVq",
"adminPass": "8RK85ufqhJVq",
"id": "edfc3905-1f3c-4819-8fc3-a7d8131cfa22",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "erQXgJ8NBDD4",
"adminPass": "erQXgJ8NBDD4",
"id": "4c8b1df3-46f7-4555-98d8-cdb869aaf9ad",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "ki8cbWeZdxH6",
"adminPass": "ki8cbWeZdxH6",
"id": "2dabdd93-ced7-4607-a542-2516de84e0e5",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "H83mnjinc5jy",
"adminPass": "H83mnjinc5jy",
"id": "b2bbf280-a78d-4724-90ba-b00dd5659097",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "DM3QzjhGTzLB",
"adminPass": "DM3QzjhGTzLB",
"id": "bebeec79-497e-4711-a311-d0d2e3dfc73b",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "kmspFLBzL75q",
"adminPass": "kmspFLBzL75q",
"id": "f8eeb5ba-19b7-49be-a1a9-10250dda5b14",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "LJGRdNsvzh6z",
"adminPass": "LJGRdNsvzh6z",
"id": "1d08717a-835e-4dca-9bfb-166fa18a6715",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "DM3QzjhGTzLB",
"adminPass": "DM3QzjhGTzLB",
"id": "bebeec79-497e-4711-a311-d0d2e3dfc73b",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "2xHoDU7Gd7vw",
"adminPass": "2xHoDU7Gd7vw",
"id": "976a62bb-0d4a-4e17-9044-1864e888a557",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "Ag463BYwnXEf",
"adminPass": "Ag463BYwnXEf",
"id": "0813a7dc-8e97-42df-9634-957109499bf0",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "ys9M8HQXvwEJ",
"adminPass": "ys9M8HQXvwEJ",
"id": "a6ebe5b4-b68b-420b-9c1e-620c4d3e0389",
"links": [
{

View File

@ -2,7 +2,7 @@
"rebuild" : {
"image_ref" : "http://glance.openstack.example.com/images/70a599e0-31e7-49b7-b260-868f441e862b",
"name" : "foobar",
"admin_password" : "seekr3t",
"adminPass" : "seekr3t",
"metadata" : {
"meta_var" : "meta_val"
},

View File

@ -10,7 +10,7 @@
}
]
},
"admin_password": "seekr3t",
"adminPass": "seekr3t",
"created": "2013-11-14T06:29:00Z",
"flavor": {
"id": "1",

View File

@ -2,7 +2,7 @@
"rebuild" : {
"image_ref" : "http://glance.openstack.example.com/images/70a599e0-31e7-49b7-b260-868f441e862b",
"name" : "foobar",
"admin_password" : "seekr3t",
"adminPass" : "seekr3t",
"metadata" : {
"meta_var" : "meta_val"
},

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "6NpUwoz2QDRN",
"adminPass": "6NpUwoz2QDRN",
"id": "f5dc173b-6804-445a-a6d8-c705dad5b5eb",
"links": [
{

View File

@ -564,7 +564,7 @@ class ServersController(wsgi.Controller):
server = self._view_builder.create(req, instances[0])
if CONF.enable_instance_password:
server['server']['admin_password'] = password
server['server']['adminPass'] = password
robj = wsgi.ResponseObject(server)
@ -907,7 +907,7 @@ class ServersController(wsgi.Controller):
# Add on the admin_password attribute since the view doesn't do it
# unless instance passwords are disabled
if CONF.enable_instance_password:
view['server']['admin_password'] = password
view['server']['adminPass'] = password
robj = wsgi.ResponseObject(view)
return self._add_location(robj)
@ -981,12 +981,12 @@ class ServersController(wsgi.Controller):
def _get_server_admin_password(self, server):
"""Determine the admin password for a server on creation."""
try:
password = server['admin_password']
password = server['adminPass']
self._validate_admin_password(password)
except KeyError:
password = utils.generate_password()
except ValueError:
raise exc.HTTPBadRequest(explanation=_("Invalid admin_password"))
raise exc.HTTPBadRequest(explanation=_("Invalid adminPass"))
return password

View File

@ -371,7 +371,7 @@ class ServersControllerCreateTest(test.TestCase):
def _check_admin_password_len(self, server_dict):
"""utility function - check server_dict for admin_password length."""
self.assertEqual(CONF.password_length,
len(server_dict["admin_password"]))
len(server_dict["adminPass"]))
def _check_admin_password_missing(self, server_dict):
"""utility function - check server_dict for admin_password absence."""

View File

@ -155,7 +155,7 @@ class ServerActionsControllerTest(test.TestCase):
body_map = {'resize': {'flavor_ref': '2'},
'reboot': {'type': 'HARD'},
'rebuild': {'image_ref': self.image_uuid,
'admin_password': 'TNc53Dr8s7vw'}}
'adminPass': 'TNc53Dr8s7vw'}}
args_map = {'resize': (('2'), {}),
'confirm_resize': ((), {}),
@ -269,7 +269,7 @@ class ServerActionsControllerTest(test.TestCase):
body = robj.obj
self.assertEqual(body['server']['image']['id'], '2')
self.assertEqual(len(body['server']['admin_password']),
self.assertEqual(len(body['server']['adminPass']),
CONF.password_length)
self.assertEqual(robj['location'], self_href)
@ -427,7 +427,7 @@ class ServerActionsControllerTest(test.TestCase):
body = {
"rebuild": {
"image_ref": self._image_href,
"admin_password": "asdf",
"adminPass": "asdf",
},
}
@ -435,7 +435,7 @@ class ServerActionsControllerTest(test.TestCase):
body = self.controller._action_rebuild(req, FAKE_UUID, body=body).obj
self.assertEqual(body['server']['image']['id'], '2')
self.assertEqual(body['server']['admin_password'], 'asdf')
self.assertEqual(body['server']['adminPass'], 'asdf')
def test_rebuild_admin_password_pass_disabled(self):
# run with enable_instance_password disabled to verify admin_password
@ -457,7 +457,7 @@ class ServerActionsControllerTest(test.TestCase):
body = self.controller._action_rebuild(req, FAKE_UUID, body=body).obj
self.assertEqual(body['server']['image']['id'], '2')
self.assertNotIn('admin_password', body['server'])
self.assertNotIn('adminPass', body['server'])
def test_rebuild_server_not_found(self):
def server_not_found(self, instance_id,

View File

@ -1635,8 +1635,8 @@ class ServersControllerUpdateTest(ControllerTest):
self.assertRaises(webob.exc.HTTPBadRequest, self.controller.update,
req, FAKE_UUID, body=body)
def test_update_server_adminPass_ignored(self):
inst_dict = dict(name='server_test', adminPass='bacon')
def test_update_server_admin_password_ignored(self):
inst_dict = dict(name='server_test', admin_password='bacon')
body = dict(server=inst_dict)
def server_update(context, id, params):
@ -1911,11 +1911,11 @@ class ServersControllerCreateTest(test.TestCase):
def _check_admin_password_len(self, server_dict):
"""utility function - check server_dict for admin_password length."""
self.assertEqual(CONF.password_length,
len(server_dict["admin_password"]))
len(server_dict["adminPass"]))
def _check_admin_password_missing(self, server_dict):
"""utility function - check server_dict for admin_password absence."""
self.assertNotIn("admin_password", server_dict)
self.assertNotIn("adminPass", server_dict)
def _test_create_instance(self, flavor=2):
image_uuid = 'c905cedb-7281-47e4-8a62-f26bc5fc4c77'
@ -2390,27 +2390,27 @@ class ServersControllerCreateTest(test.TestCase):
def test_create_instance_admin_password(self):
self.body['server']['flavor_ref'] = 3
self.body['server']['admin_password'] = 'testpass'
self.body['server']['adminPass'] = 'testpass'
self.req.body = jsonutils.dumps(self.body)
res = self.controller.create(self.req, body=self.body).obj
server = res['server']
self.assertEqual(server['admin_password'],
self.body['server']['admin_password'])
self.assertEqual(server['adminPass'],
self.body['server']['adminPass'])
def test_create_instance_admin_password_pass_disabled(self):
self.flags(enable_instance_password=False)
self.body['server']['flavor_ref'] = 3
self.body['server']['admin_password'] = 'testpass'
self.body['server']['adminPass'] = 'testpass'
self.req.body = jsonutils.dumps(self.body)
res = self.controller.create(self.req, body=self.body).obj
self.assertIn('server', res)
self.assertIn('admin_password', self.body['server'])
self.assertIn('adminPass', self.body['server'])
def test_create_instance_admin_password_empty(self):
self.body['server']['flavor_ref'] = 3
self.body['server']['admin_password'] = ''
self.body['server']['adminPass'] = ''
self.req.body = jsonutils.dumps(self.body)
# The fact that the action doesn't raise is enough validation

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "%(password)s",
"adminPass": "%(password)s",
"id": "%(id)s",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "%(password)s",
"adminPass": "%(password)s",
"id": "%(id)s",
"links": [
{

View File

@ -10,7 +10,7 @@
}
]
},
"admin_password": "%(password)s",
"adminPass": "%(password)s",
"created": "%(isotime)s",
"flavor": {
"id": "1",

View File

@ -2,7 +2,7 @@
"server": {
"os-access-ips:access_ip_v4": "%(access_ip_v4)s",
"os-access-ips:access_ip_v6": "%(access_ip_v6)s",
"admin_password": "%(password)s",
"adminPass": "%(password)s",
"id": "%(id)s",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "%(password)s",
"adminPass": "%(password)s",
"id": "%(id)s",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "%(password)s",
"adminPass": "%(password)s",
"id": "%(id)s",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "%(password)s",
"adminPass": "%(password)s",
"id": "%(id)s",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "%(password)s",
"adminPass": "%(password)s",
"id": "%(id)s",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "%(password)s",
"adminPass": "%(password)s",
"id": "%(id)s",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "%(password)s",
"adminPass": "%(password)s",
"id": "%(id)s",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "%(password)s",
"adminPass": "%(password)s",
"id": "%(id)s",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "%(password)s",
"adminPass": "%(password)s",
"id": "%(id)s",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "%(password)s",
"adminPass": "%(password)s",
"id": "%(id)s",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "%(password)s",
"adminPass": "%(password)s",
"id": "%(id)s",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "%(password)s",
"adminPass": "%(password)s",
"id": "%(id)s",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "%(password)s",
"adminPass": "%(password)s",
"id": "%(id)s",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "%(password)s",
"adminPass": "%(password)s",
"id": "%(id)s",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "%(password)s",
"adminPass": "%(password)s",
"id": "%(id)s",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "%(password)s",
"adminPass": "%(password)s",
"id": "%(id)s",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "%(password)s",
"adminPass": "%(password)s",
"id": "%(id)s",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "%(password)s",
"adminPass": "%(password)s",
"id": "%(id)s",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "%(password)s",
"adminPass": "%(password)s",
"id": "%(id)s",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "%(password)s",
"adminPass": "%(password)s",
"id": "%(id)s",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "%(password)s",
"adminPass": "%(password)s",
"id": "%(id)s",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "%(password)s",
"adminPass": "%(password)s",
"id": "%(id)s",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "%(password)s",
"adminPass": "%(password)s",
"id": "%(id)s",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "%(password)s",
"adminPass": "%(password)s",
"id": "%(id)s",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "%(password)s",
"adminPass": "%(password)s",
"id": "%(id)s",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "%(password)s",
"adminPass": "%(password)s",
"id": "%(id)s",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "%(password)s",
"adminPass": "%(password)s",
"id": "%(id)s",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "%(password)s",
"adminPass": "%(password)s",
"id": "%(id)s",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "%(password)s",
"adminPass": "%(password)s",
"id": "%(id)s",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "%(password)s",
"adminPass": "%(password)s",
"id": "%(id)s",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "%(password)s",
"adminPass": "%(password)s",
"id": "%(id)s",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "%(password)s",
"adminPass": "%(password)s",
"id": "%(id)s",
"links": [
{

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "%(password)s",
"adminPass": "%(password)s",
"id": "%(id)s",
"links": [
{

View File

@ -10,7 +10,7 @@
}
]
},
"admin_password": "%(password)s",
"adminPass": "%(password)s",
"created": "%(isotime)s",
"flavor": {
"id": "1",

View File

@ -2,7 +2,7 @@
"rebuild" : {
"image_ref" : "%(glance_host)s/images/%(uuid)s",
"name" : "%(name)s",
"admin_password" : "%(pass)s",
"adminPass" : "%(pass)s",
"metadata" : {
"meta_var" : "meta_val"
},

View File

@ -10,7 +10,7 @@
}
]
},
"admin_password": "%(password)s",
"adminPass": "%(password)s",
"created": "%(isotime)s",
"flavor": {
"id": "1",

View File

@ -2,7 +2,7 @@
"rebuild" : {
"image_ref" : "%(glance_host)s/images/%(uuid)s",
"name" : "%(name)s",
"admin_password" : "%(pass)s",
"adminPass" : "%(pass)s",
"metadata" : {
"meta_var" : "meta_val"
},

View File

@ -1,6 +1,6 @@
{
"server": {
"admin_password": "%(password)s",
"adminPass": "%(password)s",
"id": "%(id)s",
"links": [
{