Merge "Migrate "network create" command to use SDK."

This commit is contained in:
Jenkins 2015-12-09 03:32:08 +00:00 committed by Gerrit Code Review
commit 761657c8e8
2 changed files with 114 additions and 59 deletions
openstackclient
network/v2
tests/network/v2

@ -114,15 +114,14 @@ class CreateNetwork(show.ShowOne):
def take_action(self, parsed_args):
self.log.debug('take_action(%s)' % parsed_args)
self.app.client_manager.network = \
_make_client_sdk(self.app.client_manager)
client = self.app.client_manager.network
body = self.get_body(parsed_args)
create_method = getattr(client, "create_network")
data = create_method(body)['network']
if data:
data = _prep_network_detail(data)
else:
data = {'': ''}
return zip(*sorted(six.iteritems(data)))
obj = client.create_network(**body)
columns = sorted(obj.keys())
data = utils.get_item_properties(obj, columns, formatters=_formatters)
return (tuple(columns), data)
def get_body(self, parsed_args):
body = {'name': str(parsed_args.name),
@ -137,7 +136,7 @@ class CreateNetwork(show.ShowOne):
parsed_args.project_domain,
).id
body['tenant_id'] = project_id
return {'network': body}
return body
class DeleteNetwork(command.Command):

@ -71,13 +71,38 @@ class TestNetwork(network_fakes.TestNetworkV2):
self.api = self.app.client_manager.network.api
@mock.patch('openstackclient.network.v2.network._make_client_sdk')
class TestCreateNetworkIdentityV3(TestNetwork):
# The new network created.
_network = network_fakes.FakeNetwork.create_one_network(
attrs={'tenant_id': identity_fakes_v3.project_id}
)
columns = (
'admin_state_up',
'id',
'name',
'router_external',
'status',
'subnets',
'tenant_id',
)
data = (
network._format_admin_state(_network.admin_state_up),
_network.id,
_network.name,
network._format_router_external(_network.router_external),
_network.status,
utils.format_list(_network.subnets),
_network.tenant_id,
)
def setUp(self):
super(TestCreateNetworkIdentityV3, self).setUp()
self.new_network = mock.Mock(return_value=copy.deepcopy(RESPONSE))
self.network.create_network = self.new_network
self.network.create_network = mock.Mock(return_value=self._network)
# Get the command object to test
self.cmd = network.CreateNetwork(self.app, self.namespace)
@ -106,89 +131,117 @@ class TestCreateNetworkIdentityV3(TestNetwork):
loaded=True,
)
def test_create_no_options(self):
def test_create_no_options(self, _make_client_sdk):
_make_client_sdk.return_value = self.app.client_manager.network
arglist = [
FAKE_NAME,
self._network.name,
]
verifylist = [
('name', FAKE_NAME),
('name', self._network.name),
('admin_state', True),
('shared', None),
('project', None),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
result = list(self.cmd.take_action(parsed_args))
columns, data = self.cmd.take_action(parsed_args)
self.network.create_network.assert_called_with({
RESOURCE: {
'admin_state_up': True,
'name': FAKE_NAME,
}
self.network.create_network.assert_called_with(**{
'admin_state_up': True,
'name': self._network.name,
})
self.assertEqual(FILTERED, result)
self.assertEqual(self.columns, columns)
self.assertEqual(self.data, data)
def test_create_all_options(self, _make_client_sdk):
_make_client_sdk.return_value = self.app.client_manager.network
def test_create_all_options(self):
arglist = [
"--disable",
"--share",
"--project", identity_fakes_v3.project_name,
"--project-domain", identity_fakes_v3.domain_name,
FAKE_NAME,
self._network.name,
]
verifylist = [
('admin_state', False),
('shared', True),
('project', identity_fakes_v3.project_name),
('project_domain', identity_fakes_v3.domain_name),
('name', FAKE_NAME),
('name', self._network.name),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
result = list(self.cmd.take_action(parsed_args))
columns, data = (self.cmd.take_action(parsed_args))
self.network.create_network.assert_called_with({
RESOURCE: {
'admin_state_up': False,
'name': FAKE_NAME,
'shared': True,
'tenant_id': identity_fakes_v3.project_id,
}
self.network.create_network.assert_called_with(**{
'admin_state_up': False,
'name': self._network.name,
'shared': True,
'tenant_id': identity_fakes_v3.project_id,
})
self.assertEqual(FILTERED, result)
self.assertEqual(self.columns, columns)
self.assertEqual(self.data, data)
def test_create_other_options(self, _make_client_sdk):
_make_client_sdk.return_value = self.app.client_manager.network
def test_create_other_options(self):
arglist = [
"--enable",
"--no-share",
FAKE_NAME,
self._network.name,
]
verifylist = [
('admin_state', True),
('shared', False),
('name', FAKE_NAME),
('name', self._network.name),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
result = list(self.cmd.take_action(parsed_args))
columns, data = self.cmd.take_action(parsed_args)
self.network.create_network.assert_called_with({
RESOURCE: {
'admin_state_up': True,
'name': FAKE_NAME,
'shared': False,
}
self.network.create_network.assert_called_with(**{
'admin_state_up': True,
'name': self._network.name,
'shared': False,
})
self.assertEqual(FILTERED, result)
self.assertEqual(self.columns, columns)
self.assertEqual(self.data, data)
@mock.patch('openstackclient.network.v2.network._make_client_sdk')
class TestCreateNetworkIdentityV2(TestNetwork):
# The new network created.
_network = network_fakes.FakeNetwork.create_one_network(
attrs={'tenant_id': identity_fakes_v2.project_id}
)
columns = (
'admin_state_up',
'id',
'name',
'router_external',
'status',
'subnets',
'tenant_id',
)
data = (
network._format_admin_state(_network.admin_state_up),
_network.id,
_network.name,
network._format_router_external(_network.router_external),
_network.status,
utils.format_list(_network.subnets),
_network.tenant_id,
)
def setUp(self):
super(TestCreateNetworkIdentityV2, self).setUp()
self.new_network = mock.Mock(return_value=copy.deepcopy(RESPONSE))
self.network.create_network = self.new_network
self.network.create_network = mock.Mock(return_value=self._network)
# Get the command object to test
self.cmd = network.CreateNetwork(self.app, self.namespace)
@ -211,42 +264,45 @@ class TestCreateNetworkIdentityV2(TestNetwork):
# There is no DomainManager Mock in fake identity v2.
def test_create_with_project_identityv2(self):
def test_create_with_project_identityv2(self, _make_client_sdk):
_make_client_sdk.return_value = self.app.client_manager.network
arglist = [
"--project", identity_fakes_v2.project_name,
FAKE_NAME,
self._network.name,
]
verifylist = [
('admin_state', True),
('shared', None),
('name', FAKE_NAME),
('name', self._network.name),
('project', identity_fakes_v2.project_name),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
result = list(self.cmd.take_action(parsed_args))
columns, data = self.cmd.take_action(parsed_args)
self.network.create_network.assert_called_with({
RESOURCE: {
'admin_state_up': True,
'name': FAKE_NAME,
'tenant_id': identity_fakes_v2.project_id,
}
self.network.create_network.assert_called_with(**{
'admin_state_up': True,
'name': self._network.name,
'tenant_id': identity_fakes_v2.project_id,
})
self.assertEqual(FILTERED, result)
self.assertEqual(self.columns, columns)
self.assertEqual(self.data, data)
def test_create_with_domain_identityv2(self, _make_client_sdk):
_make_client_sdk.return_value = self.app.client_manager.network
def test_create_with_domain_identityv2(self):
arglist = [
"--project", identity_fakes_v3.project_name,
"--project-domain", identity_fakes_v3.domain_name,
FAKE_NAME,
self._network.name,
]
verifylist = [
('admin_state', True),
('shared', None),
('project', identity_fakes_v3.project_name),
('project_domain', identity_fakes_v3.domain_name),
('name', FAKE_NAME),
('name', self._network.name),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)