Improve client node_count validation

Currently client rely node_count validation on server side,
this is not good, the patch fix this.
Also make node_count default to 1.
Add invalid --node-count test.

Change-Id: I21109682358e125ae99326978eee73e09db476ba
Closes-Bug: #1522668
Related-Bug: #1465097
(cherry picked from commit 9e52d59148)
This commit is contained in:
Yang Hongyang 2015-12-04 12:03:13 +08:00
parent d25bd6e3c3
commit e3a796aae6
3 changed files with 15 additions and 1 deletions

View File

@ -42,7 +42,13 @@ class TestCommandLineArgument(utils.TestCase):
_few_argument_error = [
'.*?^usage: magnum ',
'.*?^error: (the following arguments|too few arguments)',
".*?^Try"
".*?^Try 'magnum help ",
]
_invalid_value_error = [
'.*?^usage: ',
'.*?^error: argument .*: invalid .* value:',
".*?^Try 'magnum help ",
]
def setUp(self):

View File

@ -73,6 +73,12 @@ class ShellTest(shell_test_base.TestCommandLineArgument):
self._mandatory_arg_error)
self.assertFalse(mock_create.called)
@mock.patch('magnumclient.v1.bays.BayManager.create')
def test_bay_create_failure_invalid_node_count(self, mock_create):
self._test_arg_failure('bay-create --baymodel xxx --node-count test',
self._invalid_value_error)
self.assertFalse(mock_create.called)
@mock.patch('magnumclient.v1.bays.BayManager.create')
def test_bay_create_failure_only_bay_create_timeout(self, mock_create):
self._test_arg_failure('bay-create --timeout 15',

View File

@ -38,6 +38,8 @@ def do_bay_list(cs, args):
help='ID or name of the baymodel.')
@utils.arg('--node-count',
metavar='<node-count>',
type=int,
default=1,
help='The bay node count.')
@utils.arg('--master-count',
metavar='<master-count>',