Deserialization of network group meta parameter

* Add deserialization for 'meta' parameter;
* Change default 'meta' notation to 'cidr';
* Add corresponding unit test.

Change-Id: Ife2dbf23e1a48eb5be9178500f23446c7340c676
Closes-bug: #1479384
This commit is contained in:
Ivan Kliuk
2015-07-30 21:30:00 +03:00
committed by Ivan Kliuk
parent 5d69610b94
commit 28ddd022fd
3 changed files with 26 additions and 7 deletions

View File

@@ -61,7 +61,13 @@ class NetworkGroupAction(Action):
"""Create a new network group
fuel network-group --create --node-group 1 --name "new network"
--release 2 --vlan 100 --cidr 10.0.0.0/24
fuel network-group --create --node-group 2 --name "new network"
--release 2 --vlan 100 --cidr 10.0.0.0/24 --gateway 10.0.0.1
--meta 'meta information in JSON format'
"""
meta = self.serializer.deserialize(params.meta) if params.meta else {}
NetworkGroup.create(
params.name,
params.release,
@@ -69,9 +75,8 @@ class NetworkGroupAction(Action):
params.cidr,
params.gateway,
int(params.nodegroup.pop()),
params.meta
meta
)
self.serializer.print_to_output(
{},
"Network group {0} has been created".format(params.name)

View File

@@ -31,7 +31,7 @@ class NetworkGroup(BaseObject):
group_id, meta=None):
metadata = {
'notation': 'ip_ranges',
'notation': 'cidr',
'render_type': None,
'map_priority': 2,
'configurable': True,

View File

@@ -45,11 +45,9 @@ class TestNetworkGroupActions(base.UnitTestCase):
self.assertEqual(mreq.last_request.method, 'GET')
self.assertEqual(mreq.last_request.path, self.req_base_path)
def test_create_network_group(self, mreq):
def create_network_group(self, mreq, cmd):
mreq.post(self.req_base_path)
self.execute(['fuel', 'network-group', '--create', '--cidr',
'10.0.0.0/24', '--name', 'test network',
'--node-group', '1'])
self.execute(cmd)
call_data = mreq.last_request.json()
self.assertEqual(1, call_data['group_id'])
@@ -58,6 +56,22 @@ class TestNetworkGroupActions(base.UnitTestCase):
self.assertEqual(mreq.last_request.method, 'POST')
self.assertEqual(mreq.last_request.path, self.req_base_path)
return call_data
def test_create_network_group(self, mreq):
cmd = ['fuel', 'network-group', '--create', '--cidr', '10.0.0.0/24',
'--name', 'test network', '--node-group', '1']
self.create_network_group(mreq, cmd)
def test_create_network_group_w_meta(self, mreq):
cmd = ['fuel', 'network-group', '--create', '--cidr', '10.0.0.0/24',
'--name', 'test network', '--node-group', '1', '--meta',
'{"ip_ranges": ["10.0.0.2", "10.0.0.254"]}']
self.create_network_group(mreq, cmd)
meta = mreq.last_request.json()['meta']
self.assertEqual(meta['ip_ranges'], ["10.0.0.2", "10.0.0.254"])
def test_create_network_group_required_args(self, mreq):
with mock.patch("sys.stderr") as m_stderr:
with self.assertRaises(SystemExit):