Merge "Correct api version check conditional for node.name"
This commit is contained in:
commit
1bff8ddee4
@ -1213,7 +1213,7 @@ class NodesController(rest.RestController):
|
|||||||
e.code = http_client.BAD_REQUEST
|
e.code = http_client.BAD_REQUEST
|
||||||
raise e
|
raise e
|
||||||
|
|
||||||
if node.name:
|
if (node.name != wtypes.Unset and node.name is not None):
|
||||||
error_msg = _("Cannot create node with invalid name "
|
error_msg = _("Cannot create node with invalid name "
|
||||||
"%(name)s") % {'name': node.name}
|
"%(name)s") % {'name': node.name}
|
||||||
self._check_name_acceptable(node.name, error_msg)
|
self._check_name_acceptable(node.name, error_msg)
|
||||||
@ -1264,7 +1264,7 @@ class NodesController(rest.RestController):
|
|||||||
msg % node_ident, status_code=http_client.CONFLICT)
|
msg % node_ident, status_code=http_client.CONFLICT)
|
||||||
|
|
||||||
name = api_utils.get_patch_value(patch, '/name')
|
name = api_utils.get_patch_value(patch, '/name')
|
||||||
if name:
|
if name is not None:
|
||||||
error_msg = _("Node %(node)s: Cannot change name to invalid "
|
error_msg = _("Node %(node)s: Cannot change name to invalid "
|
||||||
"name '%(name)s'") % {'node': node_ident,
|
"name '%(name)s'") % {'node': node_ident,
|
||||||
'name': name}
|
'name': name}
|
||||||
|
@ -1269,6 +1269,29 @@ class TestPatch(test_api_base.BaseApiTest):
|
|||||||
self.assertEqual(http_client.BAD_REQUEST, response.status_code)
|
self.assertEqual(http_client.BAD_REQUEST, response.status_code)
|
||||||
self.assertTrue(response.json['error_message'])
|
self.assertTrue(response.json['error_message'])
|
||||||
|
|
||||||
|
def test_patch_add_name_empty_invalid(self):
|
||||||
|
test_name = ''
|
||||||
|
response = self.patch_json('/nodes/%s' % self.node_no_name.uuid,
|
||||||
|
[{'path': '/name',
|
||||||
|
'op': 'add',
|
||||||
|
'value': test_name}],
|
||||||
|
headers={api_base.Version.string: "1.5"},
|
||||||
|
expect_errors=True)
|
||||||
|
self.assertEqual('application/json', response.content_type)
|
||||||
|
self.assertEqual(http_client.BAD_REQUEST, response.status_code)
|
||||||
|
self.assertTrue(response.json['error_message'])
|
||||||
|
|
||||||
|
def test_patch_add_name_empty_not_acceptable(self):
|
||||||
|
test_name = ''
|
||||||
|
response = self.patch_json('/nodes/%s' % self.node_no_name.uuid,
|
||||||
|
[{'path': '/name',
|
||||||
|
'op': 'add',
|
||||||
|
'value': test_name}],
|
||||||
|
expect_errors=True)
|
||||||
|
self.assertEqual('application/json', response.content_type)
|
||||||
|
self.assertEqual(http_client.NOT_ACCEPTABLE, response.status_code)
|
||||||
|
self.assertTrue(response.json['error_message'])
|
||||||
|
|
||||||
def test_patch_name_replace_ok(self):
|
def test_patch_name_replace_ok(self):
|
||||||
self.mock_update_node.return_value = self.node
|
self.mock_update_node.return_value = self.node
|
||||||
test_name = 'guido-van-rossum'
|
test_name = 'guido-van-rossum'
|
||||||
@ -1380,6 +1403,22 @@ class TestPost(test_api_base.BaseApiTest):
|
|||||||
self.assertEqual(urlparse.urlparse(response.location).path,
|
self.assertEqual(urlparse.urlparse(response.location).path,
|
||||||
expected_location)
|
expected_location)
|
||||||
|
|
||||||
|
def test_create_node_name_empty_invalid(self):
|
||||||
|
ndict = test_api_utils.post_get_test_node(name='')
|
||||||
|
response = self.post_json('/nodes', ndict,
|
||||||
|
headers={api_base.Version.string: "1.10"},
|
||||||
|
expect_errors=True)
|
||||||
|
self.assertEqual(http_client.BAD_REQUEST, response.status_int)
|
||||||
|
self.assertEqual('application/json', response.content_type)
|
||||||
|
self.assertTrue(response.json['error_message'])
|
||||||
|
|
||||||
|
def test_create_node_name_empty_not_acceptable(self):
|
||||||
|
ndict = test_api_utils.post_get_test_node(name='')
|
||||||
|
response = self.post_json('/nodes', ndict, expect_errors=True)
|
||||||
|
self.assertEqual(http_client.NOT_ACCEPTABLE, response.status_int)
|
||||||
|
self.assertEqual('application/json', response.content_type)
|
||||||
|
self.assertTrue(response.json['error_message'])
|
||||||
|
|
||||||
def test_create_node_default_state_none(self):
|
def test_create_node_default_state_none(self):
|
||||||
ndict = test_api_utils.post_get_test_node()
|
ndict = test_api_utils.post_get_test_node()
|
||||||
response = self.post_json('/nodes', ndict,
|
response = self.post_json('/nodes', ndict,
|
||||||
|
@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
fixes:
|
||||||
|
- Correct api version check conditional for node.name to address
|
||||||
|
an issue that we could set node name to '' using API version lower than
|
||||||
|
1.5, where node names were introduced.
|
Loading…
Reference in New Issue
Block a user