diff options
| author | Shashank Kumar Shankar <shashank.kumar.shankar@intel.com> | 2016-10-17 18:26:01 +0000 |
|---|---|---|
| committer | Ankur Gupta <ankur.gupta@intel.com> | 2017-03-20 15:02:09 -0400 |
| commit | f4fd8f6e31dcc177b56d1e618cdefef728d09157 (patch) | |
| tree | bd0e9b293ff9c1c921bb75a768b0acf6d8d26515 /openstackclient/network/v2/network.py | |
| parent | 8bff11582d8fd78256795852dcf82a4c3daf4354 (diff) | |
| download | python-openstackclient-f4fd8f6e31dcc177b56d1e618cdefef728d09157.tar.gz | |
Introduce Neutron DHCP agent commands to OSC
This patch introduces neutron dhcp-agent related commands to OpenStack
client.
The equivalent neutron commands implemented in OSC:
neutron: dhcp-agent-list-hosting-net
OSC: network agent list --network
neutron: dhcp-agent-network-add
OSC: network agent add network
neutron: dhcp-agent-network-remove
OSC: network agent remove network
neutron: net-list-on-dhcp-agent
OSC: network list --agent
Change-Id: I77a933f4b3ce875c63cef5b6a32aee78fd844b03
Diffstat (limited to 'openstackclient/network/v2/network.py')
| -rw-r--r-- | openstackclient/network/v2/network.py | 44 |
1 files changed, 33 insertions, 11 deletions
diff --git a/openstackclient/network/v2/network.py b/openstackclient/network/v2/network.py index 3aa8ec84..3e0bb776 100644 --- a/openstackclient/network/v2/network.py +++ b/openstackclient/network/v2/network.py @@ -60,12 +60,10 @@ def _get_network_columns(item): def _get_columns(item): - columns = list(item.keys()) - if 'tenant_id' in columns: - columns.remove('tenant_id') - if 'project_id' not in columns: - columns.append('project_id') - return tuple(sorted(columns)) + column_map = { + 'tenant_id': 'project_id', + } + return sdk_utils.get_osc_show_columns_for_sdk_resource(item, column_map) def _get_attrs(client_manager, parsed_args): @@ -305,9 +303,9 @@ class CreateNetwork(common.NetworkAndComputeShowOne): def take_action_compute(self, client, parsed_args): attrs = _get_attrs_compute(self.app.client_manager, parsed_args) obj = client.networks.create(**attrs) - columns = _get_columns(obj._info) + display_columns, columns = _get_columns(obj._info) data = utils.get_dict_properties(obj._info, columns) - return (columns, data) + return (display_columns, data) class DeleteNetwork(common.NetworkAndComputeDelete): @@ -420,7 +418,11 @@ class ListNetwork(common.NetworkAndComputeLister): help=_("List networks according to VLAN ID for VLAN networks " "or Tunnel ID for GENEVE/GRE/VXLAN networks") ) - + parser.add_argument( + '--agent', + metavar='<agent-id>', + dest='agent_id', + help=_('List networks hosted by agent (ID only)')) return parser def take_action_network(self, client, parsed_args): @@ -450,6 +452,26 @@ class ListNetwork(common.NetworkAndComputeLister): 'Router Type', 'Availability Zones', ) + elif parsed_args.agent_id: + columns = ( + 'id', + 'name', + 'subnet_ids' + ) + column_headers = ( + 'ID', + 'Name', + 'Subnets', + ) + client = self.app.client_manager.network + dhcp_agent = client.get_agent(parsed_args.agent_id) + data = client.dhcp_agent_hosting_networks(dhcp_agent) + + return (column_headers, + (utils.get_item_properties( + s, columns, + formatters=_formatters, + ) for s in data)) else: columns = ( 'id', @@ -665,6 +687,6 @@ class ShowNetwork(common.NetworkAndComputeShowOne): client.networks, parsed_args.network, ) - columns = _get_columns(obj._info) + display_columns, columns = _get_columns(obj._info) data = utils.get_dict_properties(obj._info, columns) - return (columns, data) + return (display_columns, data) |
