From b157dc937e95b7334b0c1816b6b165d080fc3be6 Mon Sep 17 00:00:00 2001 From: Terry Howe Date: Mon, 7 Jul 2014 05:51:25 -0600 Subject: Move network stuff to v2 instead of v2_0 Rename network stuff v2 Change-Id: Ia9b8feda20dfd35b0f3712b8e2419d0bf5da0acd --- openstackclient/network/client.py | 4 +- openstackclient/network/v2/__init__.py | 0 openstackclient/network/v2/network.py | 236 +++++++++++++++++++++++++++++++ openstackclient/network/v2_0/__init__.py | 0 openstackclient/network/v2_0/network.py | 236 ------------------------------- 5 files changed, 238 insertions(+), 238 deletions(-) create mode 100644 openstackclient/network/v2/__init__.py create mode 100644 openstackclient/network/v2/network.py delete mode 100644 openstackclient/network/v2_0/__init__.py delete mode 100644 openstackclient/network/v2_0/network.py (limited to 'openstackclient/network') diff --git a/openstackclient/network/client.py b/openstackclient/network/client.py index 3c87e135..db0b5279 100644 --- a/openstackclient/network/client.py +++ b/openstackclient/network/client.py @@ -18,11 +18,11 @@ from openstackclient.common import utils LOG = logging.getLogger(__name__) -DEFAULT_NETWORK_API_VERSION = '2.0' +DEFAULT_NETWORK_API_VERSION = '2' API_VERSION_OPTION = 'os_network_api_version' API_NAME = "network" API_VERSIONS = { - "2.0": "neutronclient.v2_0.client.Client", + "2": "neutronclient.v2_0.client.Client", } diff --git a/openstackclient/network/v2/__init__.py b/openstackclient/network/v2/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/openstackclient/network/v2/network.py b/openstackclient/network/v2/network.py new file mode 100644 index 00000000..c0c25e71 --- /dev/null +++ b/openstackclient/network/v2/network.py @@ -0,0 +1,236 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# + +"""Network action implementations""" + +import logging +import six + +from cliff import command +from cliff import lister +from cliff import show + +from openstackclient.common import exceptions +from openstackclient.common import utils +from openstackclient.network import common + + +def filters(data): + if 'subnets' in data: + data['subnets'] = utils.format_list(data['subnets']) + return data + + +class CreateNetwork(show.ShowOne): + """Create a network""" + + log = logging.getLogger(__name__ + '.CreateNetwork') + + def get_parser(self, prog_name): + parser = super(CreateNetwork, self).get_parser(prog_name) + parser.add_argument( + 'name', metavar='', + help='Name of network to create') + admin_group = parser.add_mutually_exclusive_group() + admin_group.add_argument( + '--admin-state-up', + dest='admin_state', action='store_true', + default=True, help='Set Admin State Up') + admin_group.add_argument( + '--admin-state-down', + dest='admin_state', action='store_false', + help='Set Admin State Down') + share_group = parser.add_mutually_exclusive_group() + share_group.add_argument( + '--share', + dest='shared', action='store_true', + default=None, + help='Share the network across tenants') + share_group.add_argument( + '--no-share', + dest='shared', action='store_false', + help='Do not share the network across tenants') + return parser + + def take_action(self, parsed_args): + self.log.debug('take_action(%s)' % parsed_args) + 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 = filters(data) + else: + data = {'': ''} + return zip(*sorted(six.iteritems(data))) + + def get_body(self, parsed_args): + body = {'name': str(parsed_args.name), + 'admin_state_up': parsed_args.admin_state} + if parsed_args.shared is not None: + body['shared'] = parsed_args.shared + return {'network': body} + + +class DeleteNetwork(command.Command): + + log = logging.getLogger(__name__ + '.DeleteNetwork') + + def get_parser(self, prog_name): + parser = super(DeleteNetwork, self).get_parser(prog_name) + parser.add_argument( + 'identifier', + metavar="", + help=("Name or identifier of network to delete") + ) + return parser + + def take_action(self, parsed_args): + self.log.debug('take_action(%s)' % parsed_args) + client = self.app.client_manager.network + _id = common.find(client, 'network', 'networks', + parsed_args.identifier) + delete_method = getattr(client, "delete_network") + delete_method(_id) + return + + +class ListNetwork(lister.Lister): + """List networks""" + + log = logging.getLogger(__name__ + '.ListNetwork') + + def get_parser(self, prog_name): + parser = super(ListNetwork, self).get_parser(prog_name) + parser.add_argument( + '--external', + action='store_true', + default=False, + help='List external networks', + ) + parser.add_argument( + '--dhcp', + help='ID of the DHCP agent') + parser.add_argument( + '--long', + action='store_true', + default=False, + help='Long listing', + ) + return parser + + def take_action(self, parsed_args): + self.log.debug('take_action(%s)' % parsed_args) + client = self.app.client_manager.network + if parsed_args.dhcp: + list_method = getattr(client, 'list_networks_on_dhcp_agent') + resources = 'networks_on_dhcp_agent' + report_filter = {'dhcp_agent': parsed_args.dhcp} + data = list_method(**report_filter)[resources] + else: + list_method = getattr(client, "list_networks") + report_filter = {} + if parsed_args.external: + report_filter = {'router:external': True} + data = list_method(**report_filter)['networks'] + columns = len(data) > 0 and sorted(data[0].keys()) or [] + if parsed_args.columns: + list_columns = parsed_args.columns + else: + list_columns = ['id', 'name', 'subnets'] + if not parsed_args.long and not parsed_args.dhcp: + columns = [x for x in list_columns if x in columns] + formatters = {'subnets': utils.format_list} + return (columns, + (utils.get_dict_properties(s, columns, formatters=formatters) + for s in data)) + + +class SetNetwork(command.Command): + + log = logging.getLogger(__name__ + '.SetNetwork') + + def get_parser(self, prog_name): + parser = super(SetNetwork, self).get_parser(prog_name) + parser.add_argument( + 'identifier', + metavar="", + help=("Name or identifier of network to set") + ) + admin_group = parser.add_mutually_exclusive_group() + admin_group.add_argument( + '--admin-state-up', + dest='admin_state', action='store_true', + default=None, + help='Set Admin State Up') + admin_group.add_argument( + '--admin-state-down', + dest='admin_state', action='store_false', + help='Set Admin State Down') + parser.add_argument( + '--name', + metavar='', + help='New name for the network') + share_group = parser.add_mutually_exclusive_group() + share_group.add_argument( + '--share', + dest='shared', action='store_true', + default=None, + help='Share the network across tenants') + share_group.add_argument( + '--no-share', + dest='shared', action='store_false', + help='Do not share the network across tenants') + return parser + + def take_action(self, parsed_args): + self.log.debug('take_action(%s)' % parsed_args) + client = self.app.client_manager.network + _id = common.find(client, 'network', 'networks', + parsed_args.identifier) + body = {} + if parsed_args.name is not None: + body['name'] = str(parsed_args.name) + if parsed_args.admin_state is not None: + body['admin_state_up'] = parsed_args.admin_state + if parsed_args.shared is not None: + body['shared'] = parsed_args.shared + if body == {}: + raise exceptions.CommandError("Nothing specified to be set") + update_method = getattr(client, "update_network") + update_method(_id, {'network': body}) + return + + +class ShowNetwork(show.ShowOne): + + log = logging.getLogger(__name__ + '.ShowNetwork') + + def get_parser(self, prog_name): + parser = super(ShowNetwork, self).get_parser(prog_name) + parser.add_argument( + 'identifier', + metavar="", + help=("Name or identifier of network to show") + ) + return parser + + def take_action(self, parsed_args): + self.log.debug('take_action(%s)' % parsed_args) + client = self.app.client_manager.network + _id = common.find(client, 'network', 'networks', + parsed_args.identifier) + show_method = getattr(client, "show_network") + data = show_method(_id)['network'] + data = filters(data) + return zip(*sorted(six.iteritems(data))) diff --git a/openstackclient/network/v2_0/__init__.py b/openstackclient/network/v2_0/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/openstackclient/network/v2_0/network.py b/openstackclient/network/v2_0/network.py deleted file mode 100644 index c0c25e71..00000000 --- a/openstackclient/network/v2_0/network.py +++ /dev/null @@ -1,236 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. -# - -"""Network action implementations""" - -import logging -import six - -from cliff import command -from cliff import lister -from cliff import show - -from openstackclient.common import exceptions -from openstackclient.common import utils -from openstackclient.network import common - - -def filters(data): - if 'subnets' in data: - data['subnets'] = utils.format_list(data['subnets']) - return data - - -class CreateNetwork(show.ShowOne): - """Create a network""" - - log = logging.getLogger(__name__ + '.CreateNetwork') - - def get_parser(self, prog_name): - parser = super(CreateNetwork, self).get_parser(prog_name) - parser.add_argument( - 'name', metavar='', - help='Name of network to create') - admin_group = parser.add_mutually_exclusive_group() - admin_group.add_argument( - '--admin-state-up', - dest='admin_state', action='store_true', - default=True, help='Set Admin State Up') - admin_group.add_argument( - '--admin-state-down', - dest='admin_state', action='store_false', - help='Set Admin State Down') - share_group = parser.add_mutually_exclusive_group() - share_group.add_argument( - '--share', - dest='shared', action='store_true', - default=None, - help='Share the network across tenants') - share_group.add_argument( - '--no-share', - dest='shared', action='store_false', - help='Do not share the network across tenants') - return parser - - def take_action(self, parsed_args): - self.log.debug('take_action(%s)' % parsed_args) - 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 = filters(data) - else: - data = {'': ''} - return zip(*sorted(six.iteritems(data))) - - def get_body(self, parsed_args): - body = {'name': str(parsed_args.name), - 'admin_state_up': parsed_args.admin_state} - if parsed_args.shared is not None: - body['shared'] = parsed_args.shared - return {'network': body} - - -class DeleteNetwork(command.Command): - - log = logging.getLogger(__name__ + '.DeleteNetwork') - - def get_parser(self, prog_name): - parser = super(DeleteNetwork, self).get_parser(prog_name) - parser.add_argument( - 'identifier', - metavar="", - help=("Name or identifier of network to delete") - ) - return parser - - def take_action(self, parsed_args): - self.log.debug('take_action(%s)' % parsed_args) - client = self.app.client_manager.network - _id = common.find(client, 'network', 'networks', - parsed_args.identifier) - delete_method = getattr(client, "delete_network") - delete_method(_id) - return - - -class ListNetwork(lister.Lister): - """List networks""" - - log = logging.getLogger(__name__ + '.ListNetwork') - - def get_parser(self, prog_name): - parser = super(ListNetwork, self).get_parser(prog_name) - parser.add_argument( - '--external', - action='store_true', - default=False, - help='List external networks', - ) - parser.add_argument( - '--dhcp', - help='ID of the DHCP agent') - parser.add_argument( - '--long', - action='store_true', - default=False, - help='Long listing', - ) - return parser - - def take_action(self, parsed_args): - self.log.debug('take_action(%s)' % parsed_args) - client = self.app.client_manager.network - if parsed_args.dhcp: - list_method = getattr(client, 'list_networks_on_dhcp_agent') - resources = 'networks_on_dhcp_agent' - report_filter = {'dhcp_agent': parsed_args.dhcp} - data = list_method(**report_filter)[resources] - else: - list_method = getattr(client, "list_networks") - report_filter = {} - if parsed_args.external: - report_filter = {'router:external': True} - data = list_method(**report_filter)['networks'] - columns = len(data) > 0 and sorted(data[0].keys()) or [] - if parsed_args.columns: - list_columns = parsed_args.columns - else: - list_columns = ['id', 'name', 'subnets'] - if not parsed_args.long and not parsed_args.dhcp: - columns = [x for x in list_columns if x in columns] - formatters = {'subnets': utils.format_list} - return (columns, - (utils.get_dict_properties(s, columns, formatters=formatters) - for s in data)) - - -class SetNetwork(command.Command): - - log = logging.getLogger(__name__ + '.SetNetwork') - - def get_parser(self, prog_name): - parser = super(SetNetwork, self).get_parser(prog_name) - parser.add_argument( - 'identifier', - metavar="", - help=("Name or identifier of network to set") - ) - admin_group = parser.add_mutually_exclusive_group() - admin_group.add_argument( - '--admin-state-up', - dest='admin_state', action='store_true', - default=None, - help='Set Admin State Up') - admin_group.add_argument( - '--admin-state-down', - dest='admin_state', action='store_false', - help='Set Admin State Down') - parser.add_argument( - '--name', - metavar='', - help='New name for the network') - share_group = parser.add_mutually_exclusive_group() - share_group.add_argument( - '--share', - dest='shared', action='store_true', - default=None, - help='Share the network across tenants') - share_group.add_argument( - '--no-share', - dest='shared', action='store_false', - help='Do not share the network across tenants') - return parser - - def take_action(self, parsed_args): - self.log.debug('take_action(%s)' % parsed_args) - client = self.app.client_manager.network - _id = common.find(client, 'network', 'networks', - parsed_args.identifier) - body = {} - if parsed_args.name is not None: - body['name'] = str(parsed_args.name) - if parsed_args.admin_state is not None: - body['admin_state_up'] = parsed_args.admin_state - if parsed_args.shared is not None: - body['shared'] = parsed_args.shared - if body == {}: - raise exceptions.CommandError("Nothing specified to be set") - update_method = getattr(client, "update_network") - update_method(_id, {'network': body}) - return - - -class ShowNetwork(show.ShowOne): - - log = logging.getLogger(__name__ + '.ShowNetwork') - - def get_parser(self, prog_name): - parser = super(ShowNetwork, self).get_parser(prog_name) - parser.add_argument( - 'identifier', - metavar="", - help=("Name or identifier of network to show") - ) - return parser - - def take_action(self, parsed_args): - self.log.debug('take_action(%s)' % parsed_args) - client = self.app.client_manager.network - _id = common.find(client, 'network', 'networks', - parsed_args.identifier) - show_method = getattr(client, "show_network") - data = show_method(_id)['network'] - data = filters(data) - return zip(*sorted(six.iteritems(data))) -- cgit v1.2.1