Merge "Relax restrictions on server name"

This commit is contained in:
Jenkins
2015-09-08 14:00:42 +00:00
committed by Gerrit Code Review
3 changed files with 41 additions and 3 deletions

View File

@@ -21,7 +21,7 @@ base_create = {
'server': {
'type': 'object',
'properties': {
'name': parameter_types.hostname,
'name': parameter_types.name,
'imageRef': parameter_types.image_ref,
'flavorRef': parameter_types.flavor_ref,
'adminPass': parameter_types.admin_password,
@@ -56,7 +56,7 @@ base_update = {
'server': {
'type': 'object',
'properties': {
'name': parameter_types.hostname,
'name': parameter_types.name,
},
'additionalProperties': False,
},
@@ -71,7 +71,7 @@ base_rebuild = {
'rebuild': {
'type': 'object',
'properties': {
'name': parameter_types.hostname,
'name': parameter_types.name,
'imageRef': parameter_types.image_ref,
'adminPass': parameter_types.admin_password,
'metadata': parameter_types.metadata,

View File

@@ -1397,6 +1397,11 @@ class ServersControllerUpdateTest(ControllerTest):
self.assertRaises(webob.exc.HTTPBadRequest, self.controller.update,
req, FAKE_UUID, body)
def test_update_server_name_with_spaces_in_the_middle(self):
body = {'server': {'name': 'abc def'}}
req = self._get_request(body)
self.controller.update(req, FAKE_UUID, body)
def test_update_server_personality(self):
body = {
'server': {
@@ -1626,6 +1631,11 @@ class ServersControllerRebuildInstanceTest(ControllerTest):
self.controller._action_rebuild,
self.req, FAKE_UUID, self.body)
def test_rebuild_instance_name_with_spaces_in_middle(self):
self.body['rebuild']['name'] = 'abc def'
self.req.body = jsonutils.dumps(self.body)
self.controller._action_rebuild(self.req, FAKE_UUID, self.body)
def test_rebuild_instance_with_metadata_key_too_long(self):
self.body['rebuild']['accessIPv4'] = '0.0.0.0'
self.body['rebuild']['accessIPv6'] = 'fead::1234'
@@ -2211,6 +2221,11 @@ class ServersControllerCreateTest(test.TestCase):
self.assertRaises(webob.exc.HTTPBadRequest,
self.controller.create, self.req, self.body)
def test_create_instance_name_with_spaces_in_middle(self):
self.body['server']['name'] = 'abc def'
self.req.body = jsonutils.dumps(self.body)
self.controller.create(self.req, self.body)
def test_create_instance_name_too_long(self):
self.body['server']['name'] = 'X' * 256
self.req.body = jsonutils.dumps(self.body)

View File

@@ -1520,6 +1520,11 @@ class ServersControllerRebuildInstanceTest(ControllerTest):
self.req.method = 'POST'
self.req.headers["content-type"] = "application/json"
def test_rebuild_instance_name_with_spaces_in_the_middle(self):
self.body['rebuild']['name'] = 'abc def'
self.req.body = jsonutils.dumps(self.body)
self.controller._action_rebuild(self.req, FAKE_UUID, body=self.body)
def test_rebuild_instance_with_blank_metadata_key(self):
self.body['rebuild']['metadata'][''] = 'world'
self.req.body = jsonutils.dumps(self.body)
@@ -1822,6 +1827,16 @@ class ServersControllerUpdateTest(ControllerTest):
self.assertRaises(exception.ValidationError, self.controller.update,
req, FAKE_UUID, body=body)
def test_update_server_name_with_spaces_in_the_middle(self):
self.stubs.Set(db, 'instance_get',
fakes.fake_instance_get(name='server_test'))
req = fakes.HTTPRequest.blank('/fake/servers/%s' % FAKE_UUID)
req.method = 'PUT'
req.content_type = 'application/json'
body = {'server': {'name': 'abc def'}}
req.body = jsonutils.dumps(body)
self.controller.update(req, FAKE_UUID, body=body)
def test_update_server_admin_password_extra_arg(self):
inst_dict = dict(name='server_test', admin_password='bacon')
body = dict(server=inst_dict)
@@ -2364,6 +2379,14 @@ class ServersControllerCreateTest(test.TestCase):
self.assertRaises(exception.ValidationError, self.controller.create,
self.req, body=self.body)
def test_create_instance_name_with_spaces_in_the_middle(self):
# proper local hrefs must start with 'http://localhost/v2/'
image_href = 'http://localhost/v2/images/%s' % self.image_uuid
self.body['server']['name'] = 'abc def'
self.body['server']['imageRef'] = image_href
self.req.body = jsonutils.dumps(self.body)
self.controller.create(self.req, body=self.body)
def test_create_instance_name_all_blank_spaces(self):
# proper local hrefs must start with 'http://localhost/v2/'
image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'