diff --git a/openstackclient/network/client.py b/openstackclient/network/client.py index 39936fde71..887be52cbe 100644 --- a/openstackclient/network/client.py +++ b/openstackclient/network/client.py @@ -50,7 +50,9 @@ def build_option_parser(parser): '--os-network-api-version', metavar='', default=utils.env('OS_NETWORK_API_VERSION'), - help=_("Network API version, default=%s " - "(Env: OS_NETWORK_API_VERSION)") % DEFAULT_API_VERSION + help=_( + "Network API version, default=%s " "(Env: OS_NETWORK_API_VERSION)" + ) + % DEFAULT_API_VERSION, ) return parser diff --git a/openstackclient/network/common.py b/openstackclient/network/common.py index b1902a6c9c..63c845cde8 100644 --- a/openstackclient/network/common.py +++ b/openstackclient/network/common.py @@ -64,6 +64,7 @@ class NetDetectionMixin(metaclass=abc.ABCMeta): But the command classes are used for docs builds as well, and docs must present the options for both network types, often qualified accordingly. """ + @property def _network_type(self): """Discover whether the running cloud is using neutron or nova-network. @@ -85,7 +86,9 @@ class NetDetectionMixin(metaclass=abc.ABCMeta): except AttributeError: LOG.warning( "%s: Could not detect a network type. Assuming we are " - "building docs.", self.__class__.__name__) + "building docs.", + self.__class__.__name__, + ) net_type = None self._net_type = net_type return self._net_type @@ -118,11 +121,14 @@ class NetDetectionMixin(metaclass=abc.ABCMeta): def split_help(network_help, compute_help): return ( "*%(network_qualifier)s:*\n %(network_help)s\n\n" - "*%(compute_qualifier)s:*\n %(compute_help)s" % dict( + "*%(compute_qualifier)s:*\n %(compute_help)s" + % dict( network_qualifier=_("Network version 2"), network_help=network_help, compute_qualifier=_("Compute version 2"), - compute_help=compute_help)) + compute_help=compute_help, + ) + ) def get_parser(self, prog_name): LOG.debug('get_parser(%s)', prog_name) @@ -150,11 +156,13 @@ class NetDetectionMixin(metaclass=abc.ABCMeta): def take_action(self, parsed_args): if self.is_neutron: - return self.take_action_network(self.app.client_manager.network, - parsed_args) + return self.take_action_network( + self.app.client_manager.network, parsed_args + ) elif self.is_nova_network: - return self.take_action_compute(self.app.client_manager.compute, - parsed_args) + return self.take_action_compute( + self.app.client_manager.compute, parsed_args + ) def take_action_network(self, client, parsed_args): """Override to do something useful.""" @@ -165,8 +173,9 @@ class NetDetectionMixin(metaclass=abc.ABCMeta): pass -class NetworkAndComputeCommand(NetDetectionMixin, command.Command, - metaclass=abc.ABCMeta): +class NetworkAndComputeCommand( + NetDetectionMixin, command.Command, metaclass=abc.ABCMeta +): """Network and Compute Command Command class for commands that support implementation via @@ -174,11 +183,11 @@ class NetworkAndComputeCommand(NetDetectionMixin, command.Command, implementations for take_action() and may even have different arguments. """ + pass -class NetworkAndComputeDelete(NetworkAndComputeCommand, - metaclass=abc.ABCMeta): +class NetworkAndComputeDelete(NetworkAndComputeCommand, metaclass=abc.ABCMeta): """Network and Compute Delete Delete class for commands that support implementation via @@ -196,17 +205,21 @@ class NetworkAndComputeDelete(NetworkAndComputeCommand, self.r = r try: if self.app.client_manager.is_network_endpoint_enabled(): - self.take_action_network(self.app.client_manager.network, - parsed_args) + self.take_action_network( + self.app.client_manager.network, parsed_args + ) else: - self.take_action_compute(self.app.client_manager.compute, - parsed_args) + self.take_action_compute( + self.app.client_manager.compute, parsed_args + ) except Exception as e: - msg = _("Failed to delete %(resource)s with name or ID " - "'%(name_or_id)s': %(e)s") % { - "resource": self.resource, - "name_or_id": r, - "e": e, + msg = _( + "Failed to delete %(resource)s with name or ID " + "'%(name_or_id)s': %(e)s" + ) % { + "resource": self.resource, + "name_or_id": r, + "e": e, } LOG.error(msg) ret += 1 @@ -221,8 +234,9 @@ class NetworkAndComputeDelete(NetworkAndComputeCommand, raise exceptions.CommandError(msg) -class NetworkAndComputeLister(NetDetectionMixin, command.Lister, - metaclass=abc.ABCMeta): +class NetworkAndComputeLister( + NetDetectionMixin, command.Lister, metaclass=abc.ABCMeta +): """Network and Compute Lister Lister class for commands that support implementation via @@ -230,11 +244,13 @@ class NetworkAndComputeLister(NetDetectionMixin, command.Lister, implementations for take_action() and may even have different arguments. """ + pass -class NetworkAndComputeShowOne(NetDetectionMixin, command.ShowOne, - metaclass=abc.ABCMeta): +class NetworkAndComputeShowOne( + NetDetectionMixin, command.ShowOne, metaclass=abc.ABCMeta +): """Network and Compute ShowOne ShowOne class for commands that support implementation via @@ -247,10 +263,12 @@ class NetworkAndComputeShowOne(NetDetectionMixin, command.ShowOne, try: if self.app.client_manager.is_network_endpoint_enabled(): return self.take_action_network( - self.app.client_manager.network, parsed_args) + self.app.client_manager.network, parsed_args + ) else: return self.take_action_compute( - self.app.client_manager.compute, parsed_args) + self.app.client_manager.compute, parsed_args + ) except openstack.exceptions.HttpException as exc: msg = _("Error while executing command: %s") % exc.message if exc.details: @@ -282,10 +300,13 @@ class NeutronCommandWithExtraArgs(command.Command): if not converter: raise exceptions.CommandError( - _("Type {property_type} of property {name} " - "is not supported").format( - property_type=_property['type'], - name=_property['name'])) + _( + "Type {property_type} of property {name} " + "is not supported" + ).format( + property_type=_property['type'], name=_property['name'] + ) + ) return converter def _parse_extra_properties(self, extra_properties): @@ -301,25 +322,26 @@ class NeutronCommandWithExtraArgs(command.Command): parser.add_argument( '--extra-property', metavar='type=,name=,' - 'value=', + 'value=', dest='extra_properties', action=parseractions.MultiKeyValueAction, required_keys=['name', 'value'], optional_keys=['type'], - help=_("Additional parameters can be passed using this property. " - "Default type of the extra property is string ('str'), but " - "other types can be used as well. Available types are: " - "'dict', 'list', 'str', 'bool', 'int'. " - "In case of 'list' type, 'value' can be " - "semicolon-separated list of values. " - "For 'dict' value is semicolon-separated list of the " - "key:value pairs.") + help=_( + "Additional parameters can be passed using this property. " + "Default type of the extra property is string ('str'), but " + "other types can be used as well. Available types are: " + "'dict', 'list', 'str', 'bool', 'int'. " + "In case of 'list' type, 'value' can be " + "semicolon-separated list of values. " + "For 'dict' value is semicolon-separated list of the " + "key:value pairs." + ), ) return parser class NeutronUnsetCommandWithExtraArgs(NeutronCommandWithExtraArgs): - def _parse_extra_properties(self, extra_properties): result = {} if extra_properties: diff --git a/openstackclient/network/v2/address_group.py b/openstackclient/network/v2/address_group.py index b22fd8aa1a..7c73718403 100644 --- a/openstackclient/network/v2/address_group.py +++ b/openstackclient/network/v2/address_group.py @@ -31,9 +31,7 @@ def _get_columns(item): column_map = {} hidden_columns = ['location', 'tenant_id'] return utils.get_osc_show_columns_for_sdk_resource( - item, - column_map, - hidden_columns + item, column_map, hidden_columns ) @@ -65,27 +63,27 @@ class CreateAddressGroup(command.ShowOne, common.NeutronCommandWithExtraArgs): def get_parser(self, prog_name): parser = super(CreateAddressGroup, self).get_parser(prog_name) parser.add_argument( - 'name', - metavar="", - help=_("New address group name") + 'name', metavar="", help=_("New address group name") ) parser.add_argument( '--description', metavar="", - help=_("New address group description") + help=_("New address group description"), ) parser.add_argument( "--address", metavar="", action='append', default=[], - help=_("IP address or CIDR " - "(repeat option to set multiple addresses)"), + help=_( + "IP address or CIDR " + "(repeat option to set multiple addresses)" + ), ) parser.add_argument( '--project', metavar="", - help=_("Owner's project (name or ID)") + help=_("Owner's project (name or ID)"), ) identity_common.add_project_domain_option_to_parser(parser) @@ -96,7 +94,8 @@ class CreateAddressGroup(command.ShowOne, common.NeutronCommandWithExtraArgs): attrs = _get_attrs(self.app.client_manager, parsed_args) attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) obj = client.create_address_group(**attrs) display_columns, columns = _get_columns(obj) @@ -114,7 +113,7 @@ class DeleteAddressGroup(command.Command): 'address_group', metavar="", nargs='+', - help=_("Address group(s) to delete (name or ID)") + help=_("Address group(s) to delete (name or ID)"), ) return parser @@ -129,14 +128,19 @@ class DeleteAddressGroup(command.Command): client.delete_address_group(obj) except Exception as e: result += 1 - LOG.error(_("Failed to delete address group with " - "name or ID '%(group)s': %(e)s"), - {'group': group, 'e': e}) + LOG.error( + _( + "Failed to delete address group with " + "name or ID '%(group)s': %(e)s" + ), + {'group': group, 'e': e}, + ) if result > 0: total = len(parsed_args.address_group) - msg = (_("%(result)s of %(total)s address groups failed " - "to delete.") % {'result': result, 'total': total}) + msg = _( + "%(result)s of %(total)s address groups failed " "to delete." + ) % {'result': result, 'total': total} raise exceptions.CommandError(msg) @@ -149,13 +153,15 @@ class ListAddressGroup(command.Lister): parser.add_argument( '--name', metavar='', - help=_("List only address groups of given name in output") + help=_("List only address groups of given name in output"), ) parser.add_argument( '--project', metavar="", - help=_("List address groups according to their project " - "(name or ID)") + help=_( + "List address groups according to their project " + "(name or ID)" + ), ) identity_common.add_project_domain_option_to_parser(parser) @@ -190,10 +196,17 @@ class ListAddressGroup(command.Lister): attrs['project_id'] = project_id data = client.address_groups(**attrs) - return (column_headers, - (utils.get_item_properties( - s, columns, formatters={}, - ) for s in data)) + return ( + column_headers, + ( + utils.get_item_properties( + s, + columns, + formatters={}, + ) + for s in data + ), + ) class SetAddressGroup(common.NeutronCommandWithExtraArgs): @@ -204,46 +217,48 @@ class SetAddressGroup(common.NeutronCommandWithExtraArgs): parser.add_argument( 'address_group', metavar="", - help=_("Address group to modify (name or ID)") + help=_("Address group to modify (name or ID)"), ) parser.add_argument( - '--name', - metavar="", - help=_('Set address group name') + '--name', metavar="", help=_('Set address group name') ) parser.add_argument( '--description', metavar="", - help=_('Set address group description') + help=_('Set address group description'), ) parser.add_argument( "--address", metavar="", action='append', default=[], - help=_("IP address or CIDR " - "(repeat option to set multiple addresses)"), + help=_( + "IP address or CIDR " + "(repeat option to set multiple addresses)" + ), ) return parser def take_action(self, parsed_args): client = self.app.client_manager.network obj = client.find_address_group( - parsed_args.address_group, - ignore_missing=False) + parsed_args.address_group, ignore_missing=False + ) attrs = {} if parsed_args.name is not None: attrs['name'] = parsed_args.name if parsed_args.description is not None: attrs['description'] = parsed_args.description attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) if attrs: client.update_address_group(obj, **attrs) if parsed_args.address: client.add_addresses_to_address_group( - obj, _format_addresses(parsed_args.address)) + obj, _format_addresses(parsed_args.address) + ) class ShowAddressGroup(command.ShowOne): @@ -254,7 +269,7 @@ class ShowAddressGroup(command.ShowOne): parser.add_argument( 'address_group', metavar="", - help=_("Address group to display (name or ID)") + help=_("Address group to display (name or ID)"), ) return parser @@ -262,8 +277,8 @@ class ShowAddressGroup(command.ShowOne): def take_action(self, parsed_args): client = self.app.client_manager.network obj = client.find_address_group( - parsed_args.address_group, - ignore_missing=False) + parsed_args.address_group, ignore_missing=False + ) display_columns, columns = _get_columns(obj) data = utils.get_item_properties(obj, columns, formatters={}) @@ -278,23 +293,26 @@ class UnsetAddressGroup(command.Command): parser.add_argument( 'address_group', metavar="", - help=_("Address group to modify (name or ID)") + help=_("Address group to modify (name or ID)"), ) parser.add_argument( "--address", metavar="", action='append', default=[], - help=_("IP address or CIDR " - "(repeat option to unset multiple addresses)"), + help=_( + "IP address or CIDR " + "(repeat option to unset multiple addresses)" + ), ) return parser def take_action(self, parsed_args): client = self.app.client_manager.network obj = client.find_address_group( - parsed_args.address_group, - ignore_missing=False) + parsed_args.address_group, ignore_missing=False + ) if parsed_args.address: client.remove_addresses_from_address_group( - obj, _format_addresses(parsed_args.address)) + obj, _format_addresses(parsed_args.address) + ) diff --git a/openstackclient/network/v2/address_scope.py b/openstackclient/network/v2/address_scope.py index 91f581b55c..f6f9c6d356 100644 --- a/openstackclient/network/v2/address_scope.py +++ b/openstackclient/network/v2/address_scope.py @@ -32,9 +32,7 @@ def _get_columns(item): } hidden_columns = ['location', 'tenant_id'] return utils.get_osc_show_columns_for_sdk_resource( - item, - column_map, - hidden_columns + item, column_map, hidden_columns ) @@ -66,21 +64,19 @@ class CreateAddressScope(command.ShowOne, common.NeutronCommandWithExtraArgs): def get_parser(self, prog_name): parser = super(CreateAddressScope, self).get_parser(prog_name) parser.add_argument( - 'name', - metavar="", - help=_("New address scope name") + 'name', metavar="", help=_("New address scope name") ) parser.add_argument( '--ip-version', type=int, default=4, choices=[4, 6], - help=_("IP version (default is 4)") + help=_("IP version (default is 4)"), ) parser.add_argument( '--project', metavar="", - help=_("Owner's project (name or ID)") + help=_("Owner's project (name or ID)"), ) identity_common.add_project_domain_option_to_parser(parser) @@ -88,12 +84,14 @@ class CreateAddressScope(command.ShowOne, common.NeutronCommandWithExtraArgs): share_group.add_argument( '--share', action='store_true', - help=_('Share the address scope between projects') + help=_('Share the address scope between projects'), ) share_group.add_argument( '--no-share', action='store_true', - help=_('Do not share the address scope between projects (default)') + help=_( + 'Do not share the address scope between projects (default)' + ), ) return parser @@ -102,7 +100,8 @@ class CreateAddressScope(command.ShowOne, common.NeutronCommandWithExtraArgs): client = self.app.client_manager.network attrs = _get_attrs(self.app.client_manager, parsed_args) attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) obj = client.create_address_scope(**attrs) display_columns, columns = _get_columns(obj) data = utils.get_item_properties(obj, columns, formatters={}) @@ -119,7 +118,7 @@ class DeleteAddressScope(command.Command): 'address_scope', metavar="", nargs='+', - help=_("Address scope(s) to delete (name or ID)") + help=_("Address scope(s) to delete (name or ID)"), ) return parser @@ -134,14 +133,19 @@ class DeleteAddressScope(command.Command): client.delete_address_scope(obj) except Exception as e: result += 1 - LOG.error(_("Failed to delete address scope with " - "name or ID '%(scope)s': %(e)s"), - {'scope': scope, 'e': e}) + LOG.error( + _( + "Failed to delete address scope with " + "name or ID '%(scope)s': %(e)s" + ), + {'scope': scope, 'e': e}, + ) if result > 0: total = len(parsed_args.address_scope) - msg = (_("%(result)s of %(total)s address scopes failed " - "to delete.") % {'result': result, 'total': total}) + msg = _( + "%(result)s of %(total)s address scopes failed " "to delete." + ) % {'result': result, 'total': total} raise exceptions.CommandError(msg) @@ -156,7 +160,7 @@ class ListAddressScope(command.Lister): parser.add_argument( '--name', metavar='', - help=_("List only address scopes of given name in output") + help=_("List only address scopes of given name in output"), ) parser.add_argument( '--ip-version', @@ -164,13 +168,17 @@ class ListAddressScope(command.Lister): choices=[4, 6], metavar='', dest='ip_version', - help=_("List address scopes of given IP version networks (4 or 6)") + help=_( + "List address scopes of given IP version networks (4 or 6)" + ), ) parser.add_argument( '--project', metavar="", - help=_("List address scopes according to their project " - "(name or ID)") + help=_( + "List address scopes according to their project " + "(name or ID)" + ), ) identity_common.add_project_domain_option_to_parser(parser) @@ -178,12 +186,12 @@ class ListAddressScope(command.Lister): shared_group.add_argument( '--share', action='store_true', - help=_("List address scopes shared between projects") + help=_("List address scopes shared between projects"), ) shared_group.add_argument( '--no-share', action='store_true', - help=_("List address scopes not shared between projects") + help=_("List address scopes not shared between projects"), ) return parser @@ -222,10 +230,17 @@ class ListAddressScope(command.Lister): attrs['project_id'] = project_id data = client.address_scopes(**attrs) - return (column_headers, - (utils.get_item_properties( - s, columns, formatters={}, - ) for s in data)) + return ( + column_headers, + ( + utils.get_item_properties( + s, + columns, + formatters={}, + ) + for s in data + ), + ) # TODO(rtheis): Use the SDK resource mapped attribute names once the @@ -238,23 +253,21 @@ class SetAddressScope(common.NeutronCommandWithExtraArgs): parser.add_argument( 'address_scope', metavar="", - help=_("Address scope to modify (name or ID)") + help=_("Address scope to modify (name or ID)"), ) parser.add_argument( - '--name', - metavar="", - help=_('Set address scope name') + '--name', metavar="", help=_('Set address scope name') ) share_group = parser.add_mutually_exclusive_group() share_group.add_argument( '--share', action='store_true', - help=_('Share the address scope between projects') + help=_('Share the address scope between projects'), ) share_group.add_argument( '--no-share', action='store_true', - help=_('Do not share the address scope between projects') + help=_('Do not share the address scope between projects'), ) return parser @@ -262,8 +275,8 @@ class SetAddressScope(common.NeutronCommandWithExtraArgs): def take_action(self, parsed_args): client = self.app.client_manager.network obj = client.find_address_scope( - parsed_args.address_scope, - ignore_missing=False) + parsed_args.address_scope, ignore_missing=False + ) attrs = {} if parsed_args.name is not None: attrs['name'] = parsed_args.name @@ -272,7 +285,8 @@ class SetAddressScope(common.NeutronCommandWithExtraArgs): if parsed_args.no_share: attrs['shared'] = False attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) client.update_address_scope(obj, **attrs) @@ -284,7 +298,7 @@ class ShowAddressScope(command.ShowOne): parser.add_argument( 'address_scope', metavar="", - help=_("Address scope to display (name or ID)") + help=_("Address scope to display (name or ID)"), ) return parser @@ -292,8 +306,8 @@ class ShowAddressScope(command.ShowOne): def take_action(self, parsed_args): client = self.app.client_manager.network obj = client.find_address_scope( - parsed_args.address_scope, - ignore_missing=False) + parsed_args.address_scope, ignore_missing=False + ) display_columns, columns = _get_columns(obj) data = utils.get_item_properties(obj, columns, formatters={}) diff --git a/openstackclient/network/v2/floating_ip.py b/openstackclient/network/v2/floating_ip.py index 22096bc4bf..f878a3897c 100644 --- a/openstackclient/network/v2/floating_ip.py +++ b/openstackclient/network/v2/floating_ip.py @@ -30,9 +30,7 @@ def _get_network_columns(item): column_map = {} hidden_columns = ['location', 'tenant_id'] return utils.get_osc_show_columns_for_sdk_resource( - item, - column_map, - hidden_columns + item, column_map, hidden_columns ) @@ -47,18 +45,19 @@ def _get_attrs(client_manager, parsed_args): # Name of a network could be empty string. if parsed_args.network is not None: - network = network_client.find_network(parsed_args.network, - ignore_missing=False) + network = network_client.find_network( + parsed_args.network, ignore_missing=False + ) attrs['floating_network_id'] = network.id if parsed_args.subnet: - subnet = network_client.find_subnet(parsed_args.subnet, - ignore_missing=False) + subnet = network_client.find_subnet( + parsed_args.subnet, ignore_missing=False + ) attrs['subnet_id'] = subnet.id if parsed_args.port: - port = network_client.find_port(parsed_args.port, - ignore_missing=False) + port = network_client.find_port(parsed_args.port, ignore_missing=False) attrs['port_id'] = port.id if parsed_args.floating_ip_address: @@ -69,7 +68,8 @@ def _get_attrs(client_manager, parsed_args): if parsed_args.qos_policy: attrs['qos_policy_id'] = network_client.find_qos_policy( - parsed_args.qos_policy, ignore_missing=False).id + parsed_args.qos_policy, ignore_missing=False + ).id if parsed_args.description is not None: attrs['description'] = parsed_args.description @@ -92,8 +92,9 @@ def _get_attrs(client_manager, parsed_args): return attrs -class CreateFloatingIP(common.NetworkAndComputeShowOne, - common.NeutronCommandWithExtraArgs): +class CreateFloatingIP( + common.NetworkAndComputeShowOne, common.NeutronCommandWithExtraArgs +): _description = _("Create floating IP") def update_parser_common(self, parser): @@ -103,7 +104,7 @@ class CreateFloatingIP(common.NetworkAndComputeShowOne, parser.add_argument( 'network', metavar='', - help=_("Network to allocate floating IP from (name or ID)") + help=_("Network to allocate floating IP from (name or ID)"), ) return parser @@ -112,72 +113,83 @@ class CreateFloatingIP(common.NetworkAndComputeShowOne, '--subnet', metavar='', help=self.enhance_help_neutron( - _("Subnet on which you want to create the floating IP " - "(name or ID)")) + _( + "Subnet on which you want to create the floating IP " + "(name or ID)" + ) + ), ) parser.add_argument( '--port', metavar='', help=self.enhance_help_neutron( - _("Port to be associated with the floating IP " - "(name or ID)")) + _("Port to be associated with the floating IP " "(name or ID)") + ), ) parser.add_argument( '--floating-ip-address', metavar='', dest='floating_ip_address', - help=self.enhance_help_neutron(_("Floating IP address")) + help=self.enhance_help_neutron(_("Floating IP address")), ) parser.add_argument( '--fixed-ip-address', metavar='', dest='fixed_ip_address', help=self.enhance_help_neutron( - _("Fixed IP address mapped to the floating IP")) + _("Fixed IP address mapped to the floating IP") + ), ) parser.add_argument( '--qos-policy', metavar='', help=self.enhance_help_neutron( - _("Attach QoS policy to the floating IP (name or ID)")) + _("Attach QoS policy to the floating IP (name or ID)") + ), ) parser.add_argument( '--description', metavar='', - help=self.enhance_help_neutron(_('Set floating IP description')) + help=self.enhance_help_neutron(_('Set floating IP description')), ) parser.add_argument( '--project', metavar='', - help=self.enhance_help_neutron(_("Owner's project (name or ID)")) + help=self.enhance_help_neutron(_("Owner's project (name or ID)")), ) parser.add_argument( '--dns-domain', metavar='', dest='dns_domain', help=self.enhance_help_neutron( - _("Set DNS domain for this floating IP")) + _("Set DNS domain for this floating IP") + ), ) parser.add_argument( '--dns-name', metavar='', dest='dns_name', help=self.enhance_help_neutron( - _("Set DNS name for this floating IP")) + _("Set DNS name for this floating IP") + ), ) identity_common.add_project_domain_option_to_parser( - parser, enhance_help=self.enhance_help_neutron) + parser, enhance_help=self.enhance_help_neutron + ) _tag.add_tag_option_to_parser_for_create( - parser, _('floating IP'), enhance_help=self.enhance_help_neutron) + parser, _('floating IP'), enhance_help=self.enhance_help_neutron + ) return parser def take_action_network(self, client, parsed_args): attrs = _get_attrs(self.app.client_manager, parsed_args) attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) with common.check_missing_extension_if_error( - self.app.client_manager.network, attrs): + self.app.client_manager.network, attrs + ): obj = client.create_ip(**attrs) # tags cannot be set when created, so tags need to be set later. @@ -206,7 +218,7 @@ class DeleteFloatingIP(common.NetworkAndComputeDelete): 'floating_ip', metavar="", nargs="+", - help=_("Floating IP(s) to delete (IP address or ID)") + help=_("Floating IP(s) to delete (IP address or ID)"), ) return parser @@ -232,60 +244,79 @@ class ListFloatingIP(common.NetworkAndComputeLister): '--network', metavar='', help=self.enhance_help_neutron( - _("List floating IP(s) according to " - "given network (name or ID)")) + _( + "List floating IP(s) according to " + "given network (name or ID)" + ) + ), ) parser.add_argument( '--port', metavar='', help=self.enhance_help_neutron( - _("List floating IP(s) according to given port (name or ID)")) + _("List floating IP(s) according to given port (name or ID)") + ), ) parser.add_argument( '--fixed-ip-address', metavar='', help=self.enhance_help_neutron( - _("List floating IP(s) according to given fixed IP address")) + _("List floating IP(s) according to given fixed IP address") + ), ) parser.add_argument( '--floating-ip-address', metavar='', help=self.enhance_help_neutron( - _("List floating IP(s) according to given floating IP " - "address")) + _( + "List floating IP(s) according to given floating IP " + "address" + ) + ), ) parser.add_argument( '--long', action='store_true', default=False, help=self.enhance_help_neutron( - _("List additional fields in output")) + _("List additional fields in output") + ), ) parser.add_argument( '--status', metavar='', choices=['ACTIVE', 'DOWN'], help=self.enhance_help_neutron( - _("List floating IP(s) according to given status ('ACTIVE', " - "'DOWN')")) + _( + "List floating IP(s) according to given status ('ACTIVE', " + "'DOWN')" + ) + ), ) parser.add_argument( '--project', metavar='', help=self.enhance_help_neutron( - _("List floating IP(s) according to given project (name or " - "ID)")) + _( + "List floating IP(s) according to given project (name or " + "ID)" + ) + ), ) identity_common.add_project_domain_option_to_parser(parser) parser.add_argument( '--router', metavar='', help=self.enhance_help_neutron( - _("List floating IP(s) according to given router (name or " - "ID)")) + _( + "List floating IP(s) according to given router (name or " + "ID)" + ) + ), ) _tag.add_tag_filtering_option_to_parser( - parser, _('floating IP'), enhance_help=self.enhance_help_neutron) + parser, _('floating IP'), enhance_help=self.enhance_help_neutron + ) return parser @@ -330,12 +361,14 @@ class ListFloatingIP(common.NetworkAndComputeLister): query = {} if parsed_args.network is not None: - network = network_client.find_network(parsed_args.network, - ignore_missing=False) + network = network_client.find_network( + parsed_args.network, ignore_missing=False + ) query['floating_network_id'] = network.id if parsed_args.port is not None: - port = network_client.find_port(parsed_args.port, - ignore_missing=False) + port = network_client.find_port( + parsed_args.port, ignore_missing=False + ) query['port_id'] = port.id if parsed_args.fixed_ip_address is not None: query['fixed_ip_address'] = parsed_args.fixed_ip_address @@ -351,19 +384,26 @@ class ListFloatingIP(common.NetworkAndComputeLister): ) query['project_id'] = project.id if parsed_args.router is not None: - router = network_client.find_router(parsed_args.router, - ignore_missing=False) + router = network_client.find_router( + parsed_args.router, ignore_missing=False + ) query['router_id'] = router.id _tag.get_tag_filtering_args(parsed_args, query) data = client.ips(**query) - return (headers, - (utils.get_item_properties( - s, columns, + return ( + headers, + ( + utils.get_item_properties( + s, + columns, formatters={}, - ) for s in data)) + ) + for s in data + ), + ) def take_action_compute(self, client, parsed_args): columns = ( @@ -383,11 +423,17 @@ class ListFloatingIP(common.NetworkAndComputeLister): data = client.api.floating_ip_list() - return (headers, - (utils.get_dict_properties( - s, columns, + return ( + headers, + ( + utils.get_dict_properties( + s, + columns, formatters={}, - ) for s in data)) + ) + for s in data + ), + ) class SetFloatingIP(common.NeutronCommandWithExtraArgs): @@ -398,33 +444,37 @@ class SetFloatingIP(common.NeutronCommandWithExtraArgs): parser.add_argument( 'floating_ip', metavar='', - help=_("Floating IP to modify (IP address or ID)")) + help=_("Floating IP to modify (IP address or ID)"), + ) parser.add_argument( '--port', metavar='', - help=_("Associate the floating IP with port (name or ID)")), + help=_("Associate the floating IP with port (name or ID)"), + ), parser.add_argument( '--fixed-ip-address', metavar='', dest='fixed_ip_address', - help=_("Fixed IP of the port " - "(required only if port has multiple IPs)") + help=_( + "Fixed IP of the port " + "(required only if port has multiple IPs)" + ), ) parser.add_argument( '--description', metavar='', - help=_('Set floating IP description') + help=_('Set floating IP description'), ) qos_policy_group = parser.add_mutually_exclusive_group() qos_policy_group.add_argument( '--qos-policy', metavar='', - help=_("Attach QoS policy to the floating IP (name or ID)") + help=_("Attach QoS policy to the floating IP (name or ID)"), ) qos_policy_group.add_argument( '--no-qos-policy', action='store_true', - help=_("Remove the QoS policy attached to the floating IP") + help=_("Remove the QoS policy attached to the floating IP"), ) _tag.add_tag_option_to_parser_for_set(parser, _('floating IP')) @@ -439,8 +489,7 @@ class SetFloatingIP(common.NeutronCommandWithExtraArgs): ignore_missing=False, ) if parsed_args.port: - port = client.find_port(parsed_args.port, - ignore_missing=False) + port = client.find_port(parsed_args.port, ignore_missing=False) attrs['port_id'] = port.id if parsed_args.fixed_ip_address: @@ -451,13 +500,15 @@ class SetFloatingIP(common.NeutronCommandWithExtraArgs): if parsed_args.qos_policy: attrs['qos_policy_id'] = client.find_qos_policy( - parsed_args.qos_policy, ignore_missing=False).id + parsed_args.qos_policy, ignore_missing=False + ).id if 'no_qos_policy' in parsed_args and parsed_args.no_qos_policy: attrs['qos_policy_id'] = None attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) if attrs: client.update_ip(obj, **attrs) @@ -473,7 +524,7 @@ class ShowFloatingIP(common.NetworkAndComputeShowOne): parser.add_argument( 'floating_ip', metavar="", - help=_("Floating IP to display (IP address or ID)") + help=_("Floating IP to display (IP address or ID)"), ) return parser @@ -501,18 +552,19 @@ class UnsetFloatingIP(common.NeutronCommandWithExtraArgs): parser.add_argument( 'floating_ip', metavar='', - help=_("Floating IP to disassociate (IP address or ID)")) + help=_("Floating IP to disassociate (IP address or ID)"), + ) parser.add_argument( '--port', action='store_true', default=False, - help=_("Disassociate any port associated with the floating IP") + help=_("Disassociate any port associated with the floating IP"), ) parser.add_argument( '--qos-policy', action='store_true', default=False, - help=_("Remove the QoS policy attached to the floating IP") + help=_("Remove the QoS policy attached to the floating IP"), ) _tag.add_tag_option_to_parser_for_unset(parser, _('floating IP')) @@ -530,7 +582,8 @@ class UnsetFloatingIP(common.NeutronCommandWithExtraArgs): if parsed_args.qos_policy: attrs['qos_policy_id'] = None attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) if attrs: client.update_ip(obj, **attrs) diff --git a/openstackclient/network/v2/floating_ip_pool.py b/openstackclient/network/v2/floating_ip_pool.py index 32852004c5..43d7ac8585 100644 --- a/openstackclient/network/v2/floating_ip_pool.py +++ b/openstackclient/network/v2/floating_ip_pool.py @@ -25,17 +25,23 @@ class ListFloatingIPPool(common.NetworkAndComputeLister): _description = _("List pools of floating IP addresses") def take_action_network(self, client, parsed_args): - msg = _("Floating ip pool operations are only available for " - "Compute v2 network.") + msg = _( + "Floating ip pool operations are only available for " + "Compute v2 network." + ) raise exceptions.CommandError(msg) def take_action_compute(self, client, parsed_args): - columns = ( - 'Name', - ) + columns = ('Name',) data = client.api.floating_ip_pool_list() - return (columns, - (utils.get_dict_properties( - s, columns, - ) for s in data)) + return ( + columns, + ( + utils.get_dict_properties( + s, + columns, + ) + for s in data + ), + ) diff --git a/openstackclient/network/v2/floating_ip_port_forwarding.py b/openstackclient/network/v2/floating_ip_port_forwarding.py index 0156af8e04..324708ae31 100644 --- a/openstackclient/network/v2/floating_ip_port_forwarding.py +++ b/openstackclient/network/v2/floating_ip_port_forwarding.py @@ -31,8 +31,10 @@ def validate_ports_diff(ports): ports_diff = ports[-1] - ports[0] if ports_diff < 0: - msg = _("The last number in port range must be" - " greater or equal to the first") + msg = _( + "The last number in port range must be" + " greater or equal to the first" + ) raise exceptions.CommandError(msg) return ports_diff @@ -42,8 +44,10 @@ def validate_ports_match(internal_ports, external_ports): external_ports_diff = validate_ports_diff(external_ports) if internal_ports_diff != 0 and internal_ports_diff != external_ports_diff: - msg = _("The relation between internal and external ports does not " - "match the pattern 1:N and N:N") + msg = _( + "The relation between internal and external ports does not " + "match the pattern 1:N and N:N" + ) raise exceptions.CommandError(msg) @@ -84,66 +88,80 @@ def _get_columns(item): column_map = {} hidden_columns = ['location', 'tenant_id'] return utils.get_osc_show_columns_for_sdk_resource( - item, - column_map, - hidden_columns + item, column_map, hidden_columns ) -class CreateFloatingIPPortForwarding(command.ShowOne, - common.NeutronCommandWithExtraArgs): +class CreateFloatingIPPortForwarding( + command.ShowOne, common.NeutronCommandWithExtraArgs +): _description = _("Create floating IP port forwarding") def get_parser(self, prog_name): - parser = super(CreateFloatingIPPortForwarding, - self).get_parser(prog_name) + parser = super(CreateFloatingIPPortForwarding, self).get_parser( + prog_name + ) parser.add_argument( '--internal-ip-address', required=True, metavar='', - help=_("The fixed IPv4 address of the network " - "port associated to the floating IP port forwarding") + help=_( + "The fixed IPv4 address of the network " + "port associated to the floating IP port forwarding" + ), ) parser.add_argument( '--port', metavar='', required=True, - help=_("The name or ID of the network port associated " - "to the floating IP port forwarding") + help=_( + "The name or ID of the network port associated " + "to the floating IP port forwarding" + ), ) parser.add_argument( '--internal-protocol-port', metavar='', required=True, - help=_("The protocol port number " - "of the network port fixed IPv4 address " - "associated to the floating IP port forwarding") + help=_( + "The protocol port number " + "of the network port fixed IPv4 address " + "associated to the floating IP port forwarding" + ), ) parser.add_argument( '--external-protocol-port', metavar='', required=True, - help=_("The protocol port number of " - "the port forwarding's floating IP address") + help=_( + "The protocol port number of " + "the port forwarding's floating IP address" + ), ) parser.add_argument( '--protocol', metavar='', required=True, - help=_("The protocol used in the floating IP " - "port forwarding, for instance: TCP, UDP") + help=_( + "The protocol used in the floating IP " + "port forwarding, for instance: TCP, UDP" + ), ), parser.add_argument( '--description', metavar='', - help=_("A text to describe/contextualize the use of the " - "port forwarding configuration") + help=_( + "A text to describe/contextualize the use of the " + "port forwarding configuration" + ), ) parser.add_argument( 'floating_ip', metavar='', - help=_("Floating IP that the port forwarding belongs to " - "(IP address or ID)") + help=_( + "Floating IP that the port forwarding belongs to " + "(IP address or ID)" + ), ) return parser @@ -159,8 +177,7 @@ class CreateFloatingIPPortForwarding(command.ShowOne, validate_and_assign_port_ranges(parsed_args, attrs) if parsed_args.port: - port = client.find_port(parsed_args.port, - ignore_missing=False) + port = client.find_port(parsed_args.port, ignore_missing=False) attrs['internal_port_id'] = port.id attrs['internal_ip_address'] = parsed_args.internal_ip_address attrs['protocol'] = parsed_args.protocol @@ -169,11 +186,11 @@ class CreateFloatingIPPortForwarding(command.ShowOne, attrs['description'] = parsed_args.description attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) obj = client.create_floating_ip_port_forwarding( - floating_ip.id, - **attrs + floating_ip.id, **attrs ) display_columns, columns = _get_columns(obj) data = utils.get_item_properties(obj, columns) @@ -184,19 +201,22 @@ class DeleteFloatingIPPortForwarding(command.Command): _description = _("Delete floating IP port forwarding") def get_parser(self, prog_name): - parser = super(DeleteFloatingIPPortForwarding, - self).get_parser(prog_name) + parser = super(DeleteFloatingIPPortForwarding, self).get_parser( + prog_name + ) parser.add_argument( 'floating_ip', metavar='', - help=_("Floating IP that the port forwarding belongs to " - "(IP address or ID)") + help=_( + "Floating IP that the port forwarding belongs to " + "(IP address or ID)" + ), ) parser.add_argument( 'port_forwarding_id', nargs="+", metavar="", - help=_("The ID of the floating IP port forwarding(s) to delete") + help=_("The ID of the floating IP port forwarding(s) to delete"), ) return parser @@ -217,13 +237,18 @@ class DeleteFloatingIPPortForwarding(command.Command): ) except Exception as e: result += 1 - LOG.error(_("Failed to delete floating IP port forwarding " - "'%(port_forwarding_id)s': %(e)s"), - {'port_forwarding_id': port_forwarding_id, 'e': e}) + LOG.error( + _( + "Failed to delete floating IP port forwarding " + "'%(port_forwarding_id)s': %(e)s" + ), + {'port_forwarding_id': port_forwarding_id, 'e': e}, + ) if result > 0: total = len(parsed_args.port_forwarding_id) - msg = (_("%(result)s of %(total)s Port forwarding failed " - "to delete.") % {'result': result, 'total': total}) + msg = _( + "%(result)s of %(total)s Port forwarding failed " "to delete." + ) % {'result': result, 'total': total} raise exceptions.CommandError(msg) @@ -231,31 +256,38 @@ class ListFloatingIPPortForwarding(command.Lister): _description = _("List floating IP port forwarding") def get_parser(self, prog_name): - parser = super(ListFloatingIPPortForwarding, - self).get_parser(prog_name) + parser = super(ListFloatingIPPortForwarding, self).get_parser( + prog_name + ) parser.add_argument( 'floating_ip', metavar='', - help=_("Floating IP that the port forwarding belongs to " - "(IP address or ID)") + help=_( + "Floating IP that the port forwarding belongs to " + "(IP address or ID)" + ), ) parser.add_argument( '--port', metavar='', - help=_("Filter the list result by the ID or name of " - "the internal network port") + help=_( + "Filter the list result by the ID or name of " + "the internal network port" + ), ) parser.add_argument( '--external-protocol-port', metavar='', dest='external_protocol_port', - help=_("Filter the list result by the " - "protocol port number of the floating IP") + help=_( + "Filter the list result by the " + "protocol port number of the floating IP" + ), ) parser.add_argument( '--protocol', metavar='protocol', - help=_("Filter the list result by the port protocol") + help=_("Filter the list result by the port protocol"), ) return parser @@ -289,8 +321,7 @@ class ListFloatingIPPortForwarding(command.Lister): query = {} if parsed_args.port: - port = client.find_port(parsed_args.port, - ignore_missing=False) + port = client.find_port(parsed_args.port, ignore_missing=False) query['internal_port_id'] = port.id external_port = parsed_args.external_protocol_port if external_port: @@ -298,7 +329,8 @@ class ListFloatingIPPortForwarding(command.Lister): query['external_port_range'] = external_port else: query['external_port'] = int( - parsed_args.external_protocol_port) + parsed_args.external_protocol_port + ) if parsed_args.protocol is not None: query['protocol'] = parsed_args.protocol @@ -309,66 +341,83 @@ class ListFloatingIPPortForwarding(command.Lister): data = client.floating_ip_port_forwardings(obj, **query) - return (headers, - (utils.get_item_properties( - s, columns, + return ( + headers, + ( + utils.get_item_properties( + s, + columns, formatters={}, - ) for s in data)) + ) + for s in data + ), + ) class SetFloatingIPPortForwarding(common.NeutronCommandWithExtraArgs): _description = _("Set floating IP Port Forwarding Properties") def get_parser(self, prog_name): - parser = super(SetFloatingIPPortForwarding, - self).get_parser(prog_name) + parser = super(SetFloatingIPPortForwarding, self).get_parser(prog_name) parser.add_argument( 'floating_ip', metavar='', - help=_("Floating IP that the port forwarding belongs to " - "(IP address or ID)") + help=_( + "Floating IP that the port forwarding belongs to " + "(IP address or ID)" + ), ) parser.add_argument( 'port_forwarding_id', metavar='', - help=_("The ID of the floating IP port forwarding") + help=_("The ID of the floating IP port forwarding"), ) parser.add_argument( '--port', metavar='', - help=_("The ID of the network port associated to " - "the floating IP port forwarding") + help=_( + "The ID of the network port associated to " + "the floating IP port forwarding" + ), ) parser.add_argument( '--internal-ip-address', metavar='', - help=_("The fixed IPv4 address of the network port " - "associated to the floating IP port forwarding") + help=_( + "The fixed IPv4 address of the network port " + "associated to the floating IP port forwarding" + ), ) parser.add_argument( '--internal-protocol-port', metavar='', - help=_("The TCP/UDP/other protocol port number of the " - "network port fixed IPv4 address associated to " - "the floating IP port forwarding") + help=_( + "The TCP/UDP/other protocol port number of the " + "network port fixed IPv4 address associated to " + "the floating IP port forwarding" + ), ) parser.add_argument( '--external-protocol-port', metavar='', - help=_("The TCP/UDP/other protocol port number of the " - "port forwarding's floating IP address") + help=_( + "The TCP/UDP/other protocol port number of the " + "port forwarding's floating IP address" + ), ) parser.add_argument( '--protocol', metavar='', choices=['tcp', 'udp'], - help=_("The IP protocol used in the floating IP port forwarding") + help=_("The IP protocol used in the floating IP port forwarding"), ), parser.add_argument( '--description', metavar='', - help=_("A text to describe/contextualize the use of " - "the port forwarding configuration") + help=_( + "A text to describe/contextualize the use of " + "the port forwarding configuration" + ), ) return parser @@ -382,8 +431,7 @@ class SetFloatingIPPortForwarding(common.NeutronCommandWithExtraArgs): attrs = {} if parsed_args.port: - port = client.find_port(parsed_args.port, - ignore_missing=False) + port = client.find_port(parsed_args.port, ignore_missing=False) attrs['internal_port_id'] = port.id if parsed_args.internal_ip_address: @@ -398,28 +446,33 @@ class SetFloatingIPPortForwarding(common.NeutronCommandWithExtraArgs): attrs['description'] = parsed_args.description attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) client.update_floating_ip_port_forwarding( - floating_ip.id, parsed_args.port_forwarding_id, **attrs) + floating_ip.id, parsed_args.port_forwarding_id, **attrs + ) class ShowFloatingIPPortForwarding(command.ShowOne): _description = _("Display floating IP Port Forwarding details") def get_parser(self, prog_name): - parser = super(ShowFloatingIPPortForwarding, - self).get_parser(prog_name) + parser = super(ShowFloatingIPPortForwarding, self).get_parser( + prog_name + ) parser.add_argument( 'floating_ip', metavar='', - help=_("Floating IP that the port forwarding belongs to " - "(IP address or ID)") + help=_( + "Floating IP that the port forwarding belongs to " + "(IP address or ID)" + ), ) parser.add_argument( 'port_forwarding_id', metavar="", - help=_("The ID of the floating IP port forwarding") + help=_("The ID of the floating IP port forwarding"), ) return parser diff --git a/openstackclient/network/v2/ip_availability.py b/openstackclient/network/v2/ip_availability.py index b065ab1ea9..49b0c07cd6 100644 --- a/openstackclient/network/v2/ip_availability.py +++ b/openstackclient/network/v2/ip_availability.py @@ -29,9 +29,7 @@ def _get_columns(item): column_map = {} hidden_columns = ['id', 'name', 'location', 'tenant_id'] return utils.get_osc_show_columns_for_sdk_resource( - item, - column_map, - hidden_columns + item, column_map, hidden_columns ) @@ -49,8 +47,10 @@ class ListIPAvailability(command.Lister): choices=[4, 6], metavar='', dest='ip_version', - help=_("List IP availability of given IP version " - "networks (default is 4)"), + help=_( + "List IP availability of given IP version " + "networks (default is 4)" + ), ) parser.add_argument( '--project', @@ -89,10 +89,16 @@ class ListIPAvailability(command.Lister): ).id filters['project_id'] = project_id data = client.network_ip_availabilities(**filters) - return (column_headers, - (utils.get_item_properties( - s, columns, - ) for s in data)) + return ( + column_headers, + ( + utils.get_item_properties( + s, + columns, + ) + for s in data + ), + ) class ShowIPAvailability(command.ShowOne): @@ -109,10 +115,12 @@ class ShowIPAvailability(command.ShowOne): def take_action(self, parsed_args): client = self.app.client_manager.network - network_id = client.find_network(parsed_args.network, - ignore_missing=False).id - obj = client.find_network_ip_availability(network_id, - ignore_missing=False) + network_id = client.find_network( + parsed_args.network, ignore_missing=False + ).id + obj = client.find_network_ip_availability( + network_id, ignore_missing=False + ) display_columns, columns = _get_columns(obj) data = utils.get_item_properties(obj, columns, formatters=_formatters) return (display_columns, data) diff --git a/openstackclient/network/v2/l3_conntrack_helper.py b/openstackclient/network/v2/l3_conntrack_helper.py index df153dd815..f55a46133c 100644 --- a/openstackclient/network/v2/l3_conntrack_helper.py +++ b/openstackclient/network/v2/l3_conntrack_helper.py @@ -28,9 +28,7 @@ def _get_columns(item): column_map = {} hidden_columns = ['location', 'tenant_id'] return utils.get_osc_show_columns_for_sdk_resource( - item, - column_map, - hidden_columns + item, column_map, hidden_columns ) @@ -55,27 +53,29 @@ class CreateConntrackHelper(command.ShowOne): parser.add_argument( 'router', metavar='', - help=_('Router for which conntrack helper will be created') + help=_('Router for which conntrack helper will be created'), ) parser.add_argument( '--helper', required=True, metavar='', - help=_('The netfilter conntrack helper module') + help=_('The netfilter conntrack helper module'), ) parser.add_argument( '--protocol', required=True, metavar='', - help=_('The network protocol for the netfilter conntrack target ' - 'rule') + help=_( + 'The network protocol for the netfilter conntrack target ' + 'rule' + ), ) parser.add_argument( '--port', required=True, metavar='', type=int, - help=_('The network port for the netfilter conntrack target rule') + help=_('The network port for the netfilter conntrack target rule'), ) return parser @@ -99,13 +99,13 @@ class DeleteConntrackHelper(command.Command): parser.add_argument( 'router', metavar='', - help=_('Router that the conntrack helper belong to') + help=_('Router that the conntrack helper belong to'), ) parser.add_argument( 'conntrack_helper_id', metavar='', nargs='+', - help=_('The ID of the conntrack helper(s) to delete') + help=_('The ID of the conntrack helper(s) to delete'), ) return parser @@ -118,17 +118,24 @@ class DeleteConntrackHelper(command.Command): for ct_helper in parsed_args.conntrack_helper_id: try: client.delete_conntrack_helper( - ct_helper, router.id, ignore_missing=False) + ct_helper, router.id, ignore_missing=False + ) except Exception as e: result += 1 - LOG.error(_("Failed to delete L3 conntrack helper with " - "ID '%(ct_helper)s': %(e)s"), - {'ct_helper': ct_helper, 'e': e}) + LOG.error( + _( + "Failed to delete L3 conntrack helper with " + "ID '%(ct_helper)s': %(e)s" + ), + {'ct_helper': ct_helper, 'e': e}, + ) if result > 0: total = len(parsed_args.conntrack_helper_id) - msg = (_("%(result)s of %(total)s L3 conntrack helpers failed " - "to delete.") % {'result': result, 'total': total}) + msg = _( + "%(result)s of %(total)s L3 conntrack helpers failed " + "to delete." + ) % {'result': result, 'total': total} raise exceptions.CommandError(msg) @@ -140,23 +147,25 @@ class ListConntrackHelper(command.Lister): parser.add_argument( 'router', metavar='', - help=_('Router that the conntrack helper belong to') + help=_('Router that the conntrack helper belong to'), ) parser.add_argument( '--helper', metavar='', - help=_('The netfilter conntrack helper module') + help=_('The netfilter conntrack helper module'), ) parser.add_argument( '--protocol', metavar='', - help=_('The network protocol for the netfilter conntrack target ' - 'rule') + help=_( + 'The network protocol for the netfilter conntrack target ' + 'rule' + ), ) parser.add_argument( '--port', metavar='', - help=_('The network port for the netfilter conntrack target rule') + help=_('The network port for the netfilter conntrack target rule'), ) return parser @@ -180,10 +189,17 @@ class ListConntrackHelper(command.Lister): attrs = _get_attrs(client, parsed_args) data = client.conntrack_helpers(attrs.pop('router_id'), **attrs) - return (column_headers, - (utils.get_item_properties( - s, columns, formatters={}, - ) for s in data)) + return ( + column_headers, + ( + utils.get_item_properties( + s, + columns, + formatters={}, + ) + for s in data + ), + ) class SetConntrackHelper(command.Command): @@ -194,29 +210,31 @@ class SetConntrackHelper(command.Command): parser.add_argument( 'router', metavar='', - help=_('Router that the conntrack helper belong to') + help=_('Router that the conntrack helper belong to'), ) parser.add_argument( 'conntrack_helper_id', metavar='', - help=_('The ID of the conntrack helper(s)') + help=_('The ID of the conntrack helper(s)'), ) parser.add_argument( '--helper', metavar='', - help=_('The netfilter conntrack helper module') + help=_('The netfilter conntrack helper module'), ) parser.add_argument( '--protocol', metavar='', - help=_('The network protocol for the netfilter conntrack target ' - 'rule') + help=_( + 'The network protocol for the netfilter conntrack target ' + 'rule' + ), ) parser.add_argument( '--port', metavar='', type=int, - help=_('The network port for the netfilter conntrack target rule') + help=_('The network port for the netfilter conntrack target rule'), ) return parser @@ -225,8 +243,10 @@ class SetConntrackHelper(command.Command): attrs = _get_attrs(client, parsed_args) if attrs: client.update_conntrack_helper( - parsed_args.conntrack_helper_id, attrs.pop('router_id'), - **attrs) + parsed_args.conntrack_helper_id, + attrs.pop('router_id'), + **attrs + ) class ShowConntrackHelper(command.ShowOne): @@ -237,12 +257,12 @@ class ShowConntrackHelper(command.ShowOne): parser.add_argument( 'router', metavar='', - help=_('Router that the conntrack helper belong to') + help=_('Router that the conntrack helper belong to'), ) parser.add_argument( 'conntrack_helper_id', metavar='', - help=_('The ID of the conntrack helper') + help=_('The ID of the conntrack helper'), ) return parser @@ -251,7 +271,8 @@ class ShowConntrackHelper(command.ShowOne): client = self.app.client_manager.network router = client.find_router(parsed_args.router, ignore_missing=False) obj = client.get_conntrack_helper( - parsed_args.conntrack_helper_id, router.id) + parsed_args.conntrack_helper_id, router.id + ) display_columns, columns = _get_columns(obj) data = utils.get_item_properties(obj, columns, formatters={}) diff --git a/openstackclient/network/v2/local_ip.py b/openstackclient/network/v2/local_ip.py index e8fb5f8aac..0d92f2c111 100644 --- a/openstackclient/network/v2/local_ip.py +++ b/openstackclient/network/v2/local_ip.py @@ -31,7 +31,8 @@ def _get_columns(item): column_map = {} hidden_columns = ['location', 'tenant_id'] return utils.get_osc_show_columns_for_sdk_resource( - item, column_map, hidden_columns) + item, column_map, hidden_columns + ) def _get_attrs(client_manager, parsed_args): @@ -51,14 +52,16 @@ def _get_attrs(client_manager, parsed_args): ).id attrs['project_id'] = project_id if parsed_args.network: - network = network_client.find_network(parsed_args.network, - ignore_missing=False) + network = network_client.find_network( + parsed_args.network, ignore_missing=False + ) attrs['network_id'] = network.id if parsed_args.local_ip_address: attrs['local_ip_address'] = parsed_args.local_ip_address if parsed_args.local_port: - port = network_client.find_port(parsed_args.local_port, - ignore_missing=False) + port = network_client.find_port( + parsed_args.local_port, ignore_missing=False + ) attrs['local_port_id'] = port.id if parsed_args.ip_mode: attrs['ip_mode'] = parsed_args.ip_mode @@ -71,24 +74,22 @@ class CreateLocalIP(command.ShowOne): def get_parser(self, prog_name): parser = super().get_parser(prog_name) parser.add_argument( - '--name', - metavar="", - help=_("New local IP name") + '--name', metavar="", help=_("New local IP name") ) parser.add_argument( '--description', metavar="", - help=_("New local IP description") + help=_("New local IP description"), ) parser.add_argument( '--network', metavar='', - help=_("Network to allocate Local IP (name or ID)") + help=_("Network to allocate Local IP (name or ID)"), ) parser.add_argument( '--local-port', metavar='', - help=_("Port to allocate Local IP (name or ID)") + help=_("Port to allocate Local IP (name or ID)"), ) parser.add_argument( "--local-ip-address", @@ -96,9 +97,7 @@ class CreateLocalIP(command.ShowOne): help=_("IP address or CIDR "), ) parser.add_argument( - '--ip-mode', - metavar='', - help=_("local IP ip mode") + '--ip-mode', metavar='', help=_("local IP ip mode") ) identity_common.add_project_domain_option_to_parser(parser) @@ -125,7 +124,7 @@ class DeleteLocalIP(command.Command): 'local_ip', metavar="", nargs='+', - help=_("Local IP(s) to delete (name or ID)") + help=_("Local IP(s) to delete (name or ID)"), ) return parser @@ -140,14 +139,19 @@ class DeleteLocalIP(command.Command): client.delete_local_ip(obj) except Exception as e: result += 1 - LOG.error(_("Failed to delete Local IP with " - "name or ID '%(lip)s': %(e)s"), - {'lip': lip, 'e': e}) + LOG.error( + _( + "Failed to delete Local IP with " + "name or ID '%(lip)s': %(e)s" + ), + {'lip': lip, 'e': e}, + ) if result > 0: total = len(parsed_args.local_ip) - msg = (_("%(result)s of %(total)s local IPs failed " - "to delete.") % {'result': result, 'total': total}) + msg = _( + "%(result)s of %(total)s local IPs failed " "to delete." + ) % {'result': result, 'total': total} raise exceptions.CommandError(msg) @@ -159,25 +163,21 @@ class SetLocalIP(command.Command): parser.add_argument( 'local_ip', metavar="", - help=_("Local IP to modify (name or ID)") + help=_("Local IP to modify (name or ID)"), ) parser.add_argument( - '--name', - metavar="", - help=_('Set local IP name') + '--name', metavar="", help=_('Set local IP name') ) parser.add_argument( '--description', metavar="", - help=_('Set local IP description') + help=_('Set local IP description'), ) return parser def take_action(self, parsed_args): client = self.app.client_manager.network - obj = client.find_local_ip( - parsed_args.local_ip, - ignore_missing=False) + obj = client.find_local_ip(parsed_args.local_ip, ignore_missing=False) attrs = {} if parsed_args.name is not None: attrs['name'] = parsed_args.name @@ -196,37 +196,36 @@ class ListLocalIP(command.Lister): parser.add_argument( '--name', metavar='', - help=_("List only local IPs of given name in output") + help=_("List only local IPs of given name in output"), ) parser.add_argument( '--project', metavar="", - help=_("List Local IPs according to their project " - "(name or ID)") + help=_( + "List Local IPs according to their project " "(name or ID)" + ), ) parser.add_argument( '--network', metavar='', - help=_("List Local IP(s) according to " - "given network (name or ID)") + help=_( + "List Local IP(s) according to " "given network (name or ID)" + ), ) parser.add_argument( '--local-port', metavar='', - help=_("List Local IP(s) according to " - "given port (name or ID)") + help=_("List Local IP(s) according to " "given port (name or ID)"), ) parser.add_argument( '--local-ip-address', metavar='', - help=_("List Local IP(s) according to " - "given Local IP Address") + help=_("List Local IP(s) according to " "given Local IP Address"), ) parser.add_argument( '--ip-mode', metavar='', - help=_("List Local IP(s) according to " - "given IP mode") + help=_("List Local IP(s) according to " "given IP mode"), ) identity_common.add_project_domain_option_to_parser(parser) @@ -267,12 +266,14 @@ class ListLocalIP(command.Lister): ).id attrs['project_id'] = project_id if parsed_args.network is not None: - network = client.find_network(parsed_args.network, - ignore_missing=False) + network = client.find_network( + parsed_args.network, ignore_missing=False + ) attrs['network_id'] = network.id if parsed_args.local_port: - port = client.find_port(parsed_args.local_port, - ignore_missing=False) + port = client.find_port( + parsed_args.local_port, ignore_missing=False + ) attrs['local_port_id'] = port.id if parsed_args.local_ip_address: attrs['local_ip_address'] = parsed_args.local_ip_address @@ -280,10 +281,17 @@ class ListLocalIP(command.Lister): attrs['ip_mode'] = parsed_args.ip_mode data = client.local_ips(**attrs) - return (column_headers, - (utils.get_item_properties(s, - columns, - formatters={},) for s in data)) + return ( + column_headers, + ( + utils.get_item_properties( + s, + columns, + formatters={}, + ) + for s in data + ), + ) class ShowLocalIP(command.ShowOne): @@ -294,16 +302,14 @@ class ShowLocalIP(command.ShowOne): parser.add_argument( 'local_ip', metavar="", - help=_("Local IP to display (name or ID)") + help=_("Local IP to display (name or ID)"), ) return parser def take_action(self, parsed_args): client = self.app.client_manager.network - obj = client.find_local_ip( - parsed_args.local_ip, - ignore_missing=False) + obj = client.find_local_ip(parsed_args.local_ip, ignore_missing=False) display_columns, columns = _get_columns(obj) data = utils.get_item_properties(obj, columns, formatters={}) diff --git a/openstackclient/network/v2/local_ip_association.py b/openstackclient/network/v2/local_ip_association.py index 4cd7707ae2..d54ac9c90d 100644 --- a/openstackclient/network/v2/local_ip_association.py +++ b/openstackclient/network/v2/local_ip_association.py @@ -31,7 +31,8 @@ def _get_columns(item): column_map = {} hidden_columns = ['location', 'name', 'id', 'tenant_id'] return utils.get_osc_show_columns_for_sdk_resource( - item, column_map, hidden_columns) + item, column_map, hidden_columns + ) class CreateLocalIPAssociation(command.ShowOne): @@ -42,18 +43,19 @@ class CreateLocalIPAssociation(command.ShowOne): parser.add_argument( 'local_ip', metavar='', - help=_("Local IP that the port association belongs to " - "(Name or ID)") + help=_( + "Local IP that the port association belongs to " "(Name or ID)" + ), ) parser.add_argument( 'fixed_port', metavar='', - help=_("The ID or Name of Port to allocate Local IP Association") + help=_("The ID or Name of Port to allocate Local IP Association"), ) parser.add_argument( '--fixed-ip', metavar='', - help=_("Fixed IP for Local IP Association") + help=_("Fixed IP for Local IP Association"), ) identity_common.add_project_domain_option_to_parser(parser) @@ -64,8 +66,7 @@ class CreateLocalIPAssociation(command.ShowOne): client = self.app.client_manager.network attrs = {} - port = client.find_port(parsed_args.fixed_port, - ignore_missing=False) + port = client.find_port(parsed_args.fixed_port, ignore_missing=False) attrs['fixed_port_id'] = port.id if parsed_args.fixed_ip: attrs['fixed_ip'] = parsed_args.fixed_ip @@ -88,14 +89,15 @@ class DeleteLocalIPAssociation(command.Command): parser.add_argument( 'local_ip', metavar="", - help=_("Local IP that the port association belongs to " - "(Name or ID)") + help=_( + "Local IP that the port association belongs to " "(Name or ID)" + ), ) parser.add_argument( 'fixed_port_id', nargs="+", metavar="", - help=_("The fixed port ID of Local IP Association") + help=_("The fixed port ID of Local IP Association"), ) return parser @@ -116,15 +118,21 @@ class DeleteLocalIPAssociation(command.Command): ) except Exception as e: result += 1 - LOG.error(_("Failed to delete Local IP Association with " - "fixed port " - "name or ID '%(fixed_port_id)s': %(e)s"), - {'fixed port ID': fixed_port_id, 'e': e}) + LOG.error( + _( + "Failed to delete Local IP Association with " + "fixed port " + "name or ID '%(fixed_port_id)s': %(e)s" + ), + {'fixed port ID': fixed_port_id, 'e': e}, + ) if result > 0: total = len(parsed_args.fixed_port_id) - msg = (_("%(result)s of %(total)s Local IP Associations failed " - "to delete.") % {'result': result, 'total': total}) + msg = _( + "%(result)s of %(total)s Local IP Associations failed " + "to delete." + ) % {'result': result, 'total': total} raise exceptions.CommandError(msg) @@ -137,23 +145,24 @@ class ListLocalIPAssociation(command.Lister): parser.add_argument( 'local_ip', metavar='', - help=_("Local IP that port associations belongs to") + help=_("Local IP that port associations belongs to"), ) parser.add_argument( '--fixed-port', metavar='', - help=_("Filter the list result by the ID or name of " - "the fixed port") + help=_( + "Filter the list result by the ID or name of " "the fixed port" + ), ) parser.add_argument( '--fixed-ip', metavar='', - help=_("Filter the list result by fixed ip") + help=_("Filter the list result by fixed ip"), ) parser.add_argument( '--host', metavar='', - help=_("Filter the list result by given host") + help=_("Filter the list result by given host"), ) identity_common.add_project_domain_option_to_parser(parser) @@ -173,7 +182,7 @@ class ListLocalIPAssociation(command.Lister): 'Local IP Address', 'Fixed port ID', 'Fixed IP', - 'Host' + 'Host', ) attrs = {} obj = client.find_local_ip( @@ -181,8 +190,9 @@ class ListLocalIPAssociation(command.Lister): ignore_missing=False, ) if parsed_args.fixed_port: - port = client.find_port(parsed_args.fixed_port, - ignore_missing=False) + port = client.find_port( + parsed_args.fixed_port, ignore_missing=False + ) attrs['fixed_port_id'] = port.id if parsed_args.fixed_ip: attrs['fixed_ip'] = parsed_args.fixed_ip @@ -191,7 +201,10 @@ class ListLocalIPAssociation(command.Lister): data = client.local_ip_associations(obj, **attrs) - return (column_headers, - (utils.get_item_properties(s, - columns, - formatters={}) for s in data)) + return ( + column_headers, + ( + utils.get_item_properties(s, columns, formatters={}) + for s in data + ), + ) diff --git a/openstackclient/network/v2/ndp_proxy.py b/openstackclient/network/v2/ndp_proxy.py index 25b287f3af..8699d2fbd0 100644 --- a/openstackclient/network/v2/ndp_proxy.py +++ b/openstackclient/network/v2/ndp_proxy.py @@ -31,7 +31,8 @@ def _get_columns(item): column_map = {} hidden_columns = ['location'] return utils.get_osc_show_columns_for_sdk_resource( - item, column_map, hidden_columns) + item, column_map, hidden_columns + ) class CreateNDPProxy(command.ShowOne): @@ -40,31 +41,36 @@ class CreateNDPProxy(command.ShowOne): def get_parser(self, prog_name): parser = super().get_parser(prog_name) parser.add_argument( - 'router', - metavar='', - help=_("The name or ID of a router")) + 'router', metavar='', help=_("The name or ID of a router") + ) parser.add_argument( - '--name', - metavar='', - help=_("New NDP proxy name") + '--name', metavar='', help=_("New NDP proxy name") ) parser.add_argument( '--port', metavar='', required=True, - help=_("The name or ID of the network port associated " - "to the NDP proxy")) + help=_( + "The name or ID of the network port associated " + "to the NDP proxy" + ), + ) parser.add_argument( '--ip-address', metavar='', - help=_("The IPv6 address that is to be proxied. In case the port " - "has multiple addresses assigned, use this option to " - "select which address is to be used.")) + help=_( + "The IPv6 address that is to be proxied. In case the port " + "has multiple addresses assigned, use this option to " + "select which address is to be used." + ), + ) parser.add_argument( '--description', metavar='', - help=_("A text to describe/contextualize the use of the " - "NDP proxy configuration") + help=_( + "A text to describe/contextualize the use of the " + "NDP proxy configuration" + ), ) return parser @@ -81,8 +87,7 @@ class CreateNDPProxy(command.ShowOne): if parsed_args.ip_address: attrs['ip_address'] = parsed_args.ip_address - port = client.find_port(parsed_args.port, - ignore_missing=False) + port = client.find_port(parsed_args.port, ignore_missing=False) attrs['port_id'] = port.id if parsed_args.description is not None: @@ -103,7 +108,7 @@ class DeleteNDPProxy(command.Command): 'ndp_proxy', nargs="+", metavar="", - help=_("NDP proxy(s) to delete (name or ID)") + help=_("NDP proxy(s) to delete (name or ID)"), ) return parser @@ -117,13 +122,15 @@ class DeleteNDPProxy(command.Command): client.delete_ndp_proxy(obj) except Exception as e: result += 1 - LOG.error(_("Failed to delete NDP proxy " - "'%(ndp_proxy)s': %(e)s"), - {'ndp_proxy': ndp_proxy, 'e': e}) + LOG.error( + _("Failed to delete NDP proxy " "'%(ndp_proxy)s': %(e)s"), + {'ndp_proxy': ndp_proxy, 'e': e}, + ) if result > 0: total = len(parsed_args.ndp_proxy) - msg = (_("%(result)s of %(total)s NDP Proxy failed " - "to delete.") % {'result': result, 'total': total}) + msg = _( + "%(result)s of %(total)s NDP Proxy failed " "to delete." + ) % {'result': result, 'total': total} raise exceptions.CommandError(msg) @@ -135,27 +142,27 @@ class ListNDPProxy(command.Lister): parser.add_argument( '--router', metavar='', - help=_("List only NDP proxies belong to this router (name or ID)") + help=_("List only NDP proxies belong to this router (name or ID)"), ) parser.add_argument( '--port', metavar='', - help=_("List only NDP proxies assocate to this port (name or ID)") + help=_("List only NDP proxies assocate to this port (name or ID)"), ) parser.add_argument( '--ip-address', metavar='ip-address', - help=_("List only NDP proxies according to their IPv6 address") + help=_("List only NDP proxies according to their IPv6 address"), ) parser.add_argument( '--project', metavar='', - help=_("List NDP proxies according to their project (name or ID)") + help=_("List NDP proxies according to their project (name or ID)"), ) parser.add_argument( '--name', metavar='', - help=_("List NDP proxies according to their name") + help=_("List NDP proxies according to their name"), ) identity_common.add_project_domain_option_to_parser(parser) @@ -184,12 +191,12 @@ class ListNDPProxy(command.Lister): query = {} if parsed_args.router: - router = client.find_router(parsed_args.router, - ignore_missing=False) + router = client.find_router( + parsed_args.router, ignore_missing=False + ) query['router_id'] = router.id if parsed_args.port: - port = client.find_port(parsed_args.port, - ignore_missing=False) + port = client.find_port(parsed_args.port, ignore_missing=False) query['port_id'] = port.id if parsed_args.ip_address is not None: query['ip_address'] = parsed_args.ip_address @@ -205,11 +212,17 @@ class ListNDPProxy(command.Lister): data = client.ndp_proxies(**query) - return (headers, - (utils.get_item_properties( - s, columns, + return ( + headers, + ( + utils.get_item_properties( + s, + columns, formatters={}, - ) for s in data)) + ) + for s in data + ), + ) class SetNDPProxy(command.Command): @@ -220,18 +233,18 @@ class SetNDPProxy(command.Command): parser.add_argument( 'ndp_proxy', metavar='', - help=_("The ID or name of the NDP proxy to update") + help=_("The ID or name of the NDP proxy to update"), ) parser.add_argument( - '--name', - metavar='', - help=_("Set NDP proxy name") + '--name', metavar='', help=_("Set NDP proxy name") ) parser.add_argument( '--description', metavar='', - help=_("A text to describe/contextualize the use of " - "the NDP proxy configuration") + help=_( + "A text to describe/contextualize the use of " + "the NDP proxy configuration" + ), ) return parser @@ -244,7 +257,8 @@ class SetNDPProxy(command.Command): attrs['name'] = parsed_args.name obj = client.find_ndp_proxy( - parsed_args.ndp_proxy, ignore_missing=False) + parsed_args.ndp_proxy, ignore_missing=False + ) client.update_ndp_proxy(obj, **attrs) @@ -256,14 +270,15 @@ class ShowNDPProxy(command.ShowOne): parser.add_argument( 'ndp_proxy', metavar="", - help=_("The ID or name of the NDP proxy") + help=_("The ID or name of the NDP proxy"), ) return parser def take_action(self, parsed_args): client = self.app.client_manager.network - obj = client.find_ndp_proxy(parsed_args.ndp_proxy, - ignore_missing=False) + obj = client.find_ndp_proxy( + parsed_args.ndp_proxy, ignore_missing=False + ) display_columns, columns = _get_columns(obj) data = utils.get_item_properties(obj, columns) return (display_columns, data) diff --git a/openstackclient/network/v2/network.py b/openstackclient/network/v2/network.py index 54e2821c4f..1901e2195c 100644 --- a/openstackclient/network/v2/network.py +++ b/openstackclient/network/v2/network.py @@ -63,9 +63,7 @@ def _get_columns_network(item): hidden_columns = ['location', 'tenant_id'] hidden_columns = ['location'] return utils.get_osc_show_columns_for_sdk_resource( - item, - column_map, - hidden_columns + item, column_map, hidden_columns ) @@ -102,8 +100,10 @@ def _get_attrs_network(client_manager, parsed_args): attrs['project_id'] = project_id # "network set" command doesn't support setting availability zone hints. - if 'availability_zone_hints' in parsed_args and \ - parsed_args.availability_zone_hints is not None: + if ( + 'availability_zone_hints' in parsed_args + and parsed_args.availability_zone_hints is not None + ): attrs['availability_zone_hints'] = parsed_args.availability_zone_hints # set description @@ -132,8 +132,9 @@ def _get_attrs_network(client_manager, parsed_args): attrs['provider:segmentation_id'] = parsed_args.segmentation_id if parsed_args.qos_policy is not None: network_client = client_manager.network - _qos_policy = network_client.find_qos_policy(parsed_args.qos_policy, - ignore_missing=False) + _qos_policy = network_client.find_qos_policy( + parsed_args.qos_policy, ignore_missing=False + ) attrs['qos_policy_id'] = _qos_policy.id if 'no_qos_policy' in parsed_args and parsed_args.no_qos_policy: attrs['qos_policy_id'] = None @@ -162,53 +163,63 @@ def _add_additional_network_options(parser): parser.add_argument( '--provider-network-type', metavar='', - help=_("The physical mechanism by which the virtual network " - "is implemented. For example: " - "flat, geneve, gre, local, vlan, vxlan.")) + help=_( + "The physical mechanism by which the virtual network " + "is implemented. For example: " + "flat, geneve, gre, local, vlan, vxlan." + ), + ) parser.add_argument( '--provider-physical-network', metavar='', dest='physical_network', - help=_("Name of the physical network over which the virtual " - "network is implemented")) + help=_( + "Name of the physical network over which the virtual " + "network is implemented" + ), + ) parser.add_argument( '--provider-segment', metavar='', dest='segmentation_id', - help=_("VLAN ID for VLAN networks or Tunnel ID for " - "GENEVE/GRE/VXLAN networks")) + help=_( + "VLAN ID for VLAN networks or Tunnel ID for " + "GENEVE/GRE/VXLAN networks" + ), + ) parser.add_argument( '--dns-domain', metavar='', dest='dns_domain', - help=_("Set DNS domain for this network " - "(requires DNS integration extension)") + help=_( + "Set DNS domain for this network " + "(requires DNS integration extension)" + ), ) # TODO(sindhu): Use the SDK resource mapped attribute names once the # OSC minimum requirements include SDK 1.0. -class CreateNetwork(common.NetworkAndComputeShowOne, - common.NeutronCommandWithExtraArgs): +class CreateNetwork( + common.NetworkAndComputeShowOne, common.NeutronCommandWithExtraArgs +): _description = _("Create new network") def update_parser_common(self, parser): parser.add_argument( - 'name', - metavar='', - help=_("New network name") + 'name', metavar='', help=_("New network name") ) share_group = parser.add_mutually_exclusive_group() share_group.add_argument( '--share', action='store_true', default=None, - help=_("Share the network between projects") + help=_("Share the network between projects"), ) share_group.add_argument( '--no-share', action='store_true', - help=_("Do not share the network between projects") + help=_("Do not share the network between projects"), ) return parser @@ -218,27 +229,27 @@ class CreateNetwork(common.NetworkAndComputeShowOne, '--enable', action='store_true', default=True, - help=self.enhance_help_neutron(_("Enable network (default)")) + help=self.enhance_help_neutron(_("Enable network (default)")), ) admin_group.add_argument( '--disable', action='store_true', - help=self.enhance_help_neutron(_("Disable network")) + help=self.enhance_help_neutron(_("Disable network")), ) parser.add_argument( '--project', metavar='', - help=self.enhance_help_neutron(_("Owner's project (name or ID)")) + help=self.enhance_help_neutron(_("Owner's project (name or ID)")), ) parser.add_argument( '--description', metavar='', - help=self.enhance_help_neutron(_("Set network description")) + help=self.enhance_help_neutron(_("Set network description")), ) parser.add_argument( '--mtu', metavar='', - help=self.enhance_help_neutron(_("Set network mtu")) + help=self.enhance_help_neutron(_("Set network mtu")), ) identity_common.add_project_domain_option_to_parser(parser) parser.add_argument( @@ -247,77 +258,102 @@ class CreateNetwork(common.NetworkAndComputeShowOne, dest='availability_zone_hints', metavar='', help=self.enhance_help_neutron( - _("Availability Zone in which to create this network " - "(Network Availability Zone extension required, " - "repeat option to set multiple availability zones)")) + _( + "Availability Zone in which to create this network " + "(Network Availability Zone extension required, " + "repeat option to set multiple availability zones)" + ) + ), ) port_security_group = parser.add_mutually_exclusive_group() port_security_group.add_argument( '--enable-port-security', action='store_true', help=self.enhance_help_neutron( - _("Enable port security by default for ports created on " - "this network (default)")) + _( + "Enable port security by default for ports created on " + "this network (default)" + ) + ), ) port_security_group.add_argument( '--disable-port-security', action='store_true', help=self.enhance_help_neutron( - _("Disable port security by default for ports created on " - "this network")) + _( + "Disable port security by default for ports created on " + "this network" + ) + ), ) external_router_grp = parser.add_mutually_exclusive_group() external_router_grp.add_argument( '--external', action='store_true', help=self.enhance_help_neutron( - _("The network has an external routing facility that's not " - "managed by Neutron and can be used as in: " - "openstack router set --external-gateway NETWORK " - "(external-net extension required)")) + _( + "The network has an external routing facility that's not " + "managed by Neutron and can be used as in: " + "openstack router set --external-gateway NETWORK " + "(external-net extension required)" + ) + ), ) external_router_grp.add_argument( '--internal', action='store_true', help=self.enhance_help_neutron( - _("Opposite of '--external' (default)")) + _("Opposite of '--external' (default)") + ), ) default_router_grp = parser.add_mutually_exclusive_group() default_router_grp.add_argument( '--default', action='store_true', help=self.enhance_help_neutron( - _("Specify if this network should be used as the default " - "external network")) + _( + "Specify if this network should be used as the default " + "external network" + ) + ), ) default_router_grp.add_argument( '--no-default', action='store_true', help=self.enhance_help_neutron( - _("Do not use the network as the default external network " - "(default)")) + _( + "Do not use the network as the default external network " + "(default)" + ) + ), ) parser.add_argument( '--qos-policy', metavar='', help=self.enhance_help_neutron( - _("QoS policy to attach to this network (name or ID)")) + _("QoS policy to attach to this network (name or ID)") + ), ) vlan_transparent_grp = parser.add_mutually_exclusive_group() vlan_transparent_grp.add_argument( '--transparent-vlan', action='store_true', help=self.enhance_help_neutron( - _("Make the network VLAN transparent"))) + _("Make the network VLAN transparent") + ), + ) vlan_transparent_grp.add_argument( '--no-transparent-vlan', action='store_true', help=self.enhance_help_neutron( - _("Do not make the network VLAN transparent"))) + _("Do not make the network VLAN transparent") + ), + ) _add_additional_network_options(parser) _tag.add_tag_option_to_parser_for_create( - parser, _('network'), enhance_help=self.enhance_help_neutron) + parser, _('network'), enhance_help=self.enhance_help_neutron + ) return parser def update_parser_compute(self, parser): @@ -326,7 +362,8 @@ class CreateNetwork(common.NetworkAndComputeShowOne, metavar='', required=True, help=self.enhance_help_nova_network( - _("IPv4 subnet for fixed IPs (in CIDR notation)")) + _("IPv4 subnet for fixed IPs (in CIDR notation)") + ), ) return parser @@ -337,9 +374,11 @@ class CreateNetwork(common.NetworkAndComputeShowOne, if parsed_args.no_transparent_vlan: attrs['vlan_transparent'] = False attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) with common.check_missing_extension_if_error( - self.app.client_manager.network, attrs): + self.app.client_manager.network, attrs + ): obj = client.create_network(**attrs) # tags cannot be set when created, so tags need to be set later. @@ -368,7 +407,7 @@ class DeleteNetwork(common.NetworkAndComputeDelete): 'network', metavar="", nargs="+", - help=_("Network(s) to delete (name or ID)") + help=_("Network(s) to delete (name or ID)"), ) return parser @@ -391,98 +430,114 @@ class ListNetwork(common.NetworkAndComputeLister): router_ext_group.add_argument( '--external', action='store_true', - help=self.enhance_help_neutron(_("List external networks")) + help=self.enhance_help_neutron(_("List external networks")), ) router_ext_group.add_argument( '--internal', action='store_true', - help=self.enhance_help_neutron(_("List internal networks")) + help=self.enhance_help_neutron(_("List internal networks")), ) parser.add_argument( '--long', action='store_true', help=self.enhance_help_neutron( - _("List additional fields in output")) + _("List additional fields in output") + ), ) parser.add_argument( '--name', metavar='', help=self.enhance_help_neutron( - _("List networks according to their name")) + _("List networks according to their name") + ), ) admin_state_group = parser.add_mutually_exclusive_group() admin_state_group.add_argument( '--enable', action='store_true', - help=self.enhance_help_neutron(_("List enabled networks")) + help=self.enhance_help_neutron(_("List enabled networks")), ) admin_state_group.add_argument( '--disable', action='store_true', - help=self.enhance_help_neutron(_("List disabled networks")) + help=self.enhance_help_neutron(_("List disabled networks")), ) parser.add_argument( '--project', metavar='', - help=_("List networks according to their project (name or ID)") + help=_("List networks according to their project (name or ID)"), ) identity_common.add_project_domain_option_to_parser( - parser, enhance_help=self.enhance_help_neutron) + parser, enhance_help=self.enhance_help_neutron + ) shared_group = parser.add_mutually_exclusive_group() shared_group.add_argument( '--share', action='store_true', help=self.enhance_help_neutron( - _("List networks shared between projects")) + _("List networks shared between projects") + ), ) shared_group.add_argument( '--no-share', action='store_true', help=self.enhance_help_neutron( - _("List networks not shared between projects")) + _("List networks not shared between projects") + ), ) parser.add_argument( '--status', metavar='', choices=['ACTIVE', 'BUILD', 'DOWN', 'ERROR'], help=self.enhance_help_neutron( - _("List networks according to their status " - "('ACTIVE', 'BUILD', 'DOWN', 'ERROR')")) + _( + "List networks according to their status " + "('ACTIVE', 'BUILD', 'DOWN', 'ERROR')" + ) + ), ) parser.add_argument( '--provider-network-type', metavar='', - choices=['flat', 'geneve', 'gre', 'local', - 'vlan', 'vxlan'], + choices=['flat', 'geneve', 'gre', 'local', 'vlan', 'vxlan'], help=self.enhance_help_neutron( - _("List networks according to their physical mechanisms. The " - "supported options are: flat, geneve, gre, local, vlan, " - "vxlan.")) + _( + "List networks according to their physical mechanisms. " + "The supported options are: flat, geneve, gre, local, " + "vlan, vxlan." + ) + ), ) parser.add_argument( '--provider-physical-network', metavar='', dest='physical_network', help=self.enhance_help_neutron( - _("List networks according to name of the physical network")) + _("List networks according to name of the physical network") + ), ) parser.add_argument( '--provider-segment', metavar='', dest='segmentation_id', help=self.enhance_help_neutron( - _("List networks according to VLAN ID for VLAN networks or " - "Tunnel ID for GENEVE/GRE/VXLAN networks")) + _( + "List networks according to VLAN ID for VLAN networks or " + "Tunnel ID for GENEVE/GRE/VXLAN networks" + ) + ), ) parser.add_argument( '--agent', metavar='', dest='agent_id', help=self.enhance_help_neutron( - _('List networks hosted by agent (ID only)')) + _('List networks hosted by agent (ID only)') + ), ) _tag.add_tag_filtering_option_to_parser( - parser, _('networks'), enhance_help=self.enhance_help_neutron) + parser, _('networks'), enhance_help=self.enhance_help_neutron + ) return parser def take_action_network(self, client, parsed_args): @@ -515,11 +570,7 @@ class ListNetwork(common.NetworkAndComputeLister): 'Tags', ) elif parsed_args.agent_id: - columns = ( - 'id', - 'name', - 'subnet_ids' - ) + columns = ('id', 'name', 'subnet_ids') column_headers = ( 'ID', 'Name', @@ -529,17 +580,19 @@ class ListNetwork(common.NetworkAndComputeLister): 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, + return ( + column_headers, + ( + utils.get_item_properties( + s, + columns, formatters=_formatters, - ) for s in data)) - else: - columns = ( - 'id', - 'name', - 'subnet_ids' + ) + for s in data + ), ) + else: + columns = ('id', 'name', 'subnet_ids') column_headers = ( 'ID', 'Name', @@ -597,11 +650,17 @@ class ListNetwork(common.NetworkAndComputeLister): data = client.networks(**args) - return (column_headers, - (utils.get_item_properties( - s, columns, + return ( + column_headers, + ( + utils.get_item_properties( + s, + columns, formatters=_formatters, - ) for s in data)) + ) + for s in data + ), + ) def take_action_compute(self, client, parsed_args): columns = ( @@ -617,11 +676,17 @@ class ListNetwork(common.NetworkAndComputeLister): data = client.api.network_list() - return (column_headers, - (utils.get_dict_properties( - s, columns, + return ( + column_headers, + ( + utils.get_dict_properties( + s, + columns, formatters=_formatters, - ) for s in data)) + ) + for s in data + ), + ) # TODO(sindhu): Use the SDK resource mapped attribute names once the @@ -634,95 +699,95 @@ class SetNetwork(common.NeutronCommandWithExtraArgs): parser.add_argument( 'network', metavar="", - help=_("Network to modify (name or ID)") + help=_("Network to modify (name or ID)"), ) parser.add_argument( - '--name', - metavar='', - help=_("Set network name") + '--name', metavar='', help=_("Set network name") ) admin_group = parser.add_mutually_exclusive_group() admin_group.add_argument( '--enable', action='store_true', default=None, - help=_("Enable network") + help=_("Enable network"), ) admin_group.add_argument( - '--disable', - action='store_true', - help=_("Disable network") + '--disable', action='store_true', help=_("Disable network") ) share_group = parser.add_mutually_exclusive_group() share_group.add_argument( '--share', action='store_true', default=None, - help=_("Share the network between projects") + help=_("Share the network between projects"), ) share_group.add_argument( '--no-share', action='store_true', - help=_("Do not share the network between projects") + help=_("Do not share the network between projects"), ) parser.add_argument( '--description', metavar="", - help=_("Set network description") + help=_("Set network description"), ) parser.add_argument( - '--mtu', - metavar="", - help=_("Set network mtu") + '--mtu', metavar="", help=_("Set network mtu") ) port_security_group = parser.add_mutually_exclusive_group() port_security_group.add_argument( '--enable-port-security', action='store_true', - help=_("Enable port security by default for ports created on " - "this network") + help=_( + "Enable port security by default for ports created on " + "this network" + ), ) port_security_group.add_argument( '--disable-port-security', action='store_true', - help=_("Disable port security by default for ports created on " - "this network") + help=_( + "Disable port security by default for ports created on " + "this network" + ), ) external_router_grp = parser.add_mutually_exclusive_group() external_router_grp.add_argument( '--external', action='store_true', - help=_("The network has an external routing facility that's not " - "managed by Neutron and can be used as in: " - "openstack router set --external-gateway NETWORK " - "(external-net extension required)") + help=_( + "The network has an external routing facility that's not " + "managed by Neutron and can be used as in: " + "openstack router set --external-gateway NETWORK " + "(external-net extension required)" + ), ) external_router_grp.add_argument( '--internal', action='store_true', - help=_("Opposite of '--external'") + help=_("Opposite of '--external'"), ) default_router_grp = parser.add_mutually_exclusive_group() default_router_grp.add_argument( '--default', action='store_true', - help=_("Set the network as the default external network") + help=_("Set the network as the default external network"), ) default_router_grp.add_argument( '--no-default', action='store_true', - help=_("Do not use the network as the default external network") + help=_("Do not use the network as the default external network"), ) qos_group = parser.add_mutually_exclusive_group() qos_group.add_argument( '--qos-policy', metavar='', - help=_("QoS policy to attach to this network (name or ID)") + help=_("QoS policy to attach to this network (name or ID)"), ) qos_group.add_argument( '--no-qos-policy', action='store_true', - help=_("Remove the QoS policy attached to this network") + help=_("Remove the QoS policy attached to this network"), ) _tag.add_tag_option_to_parser_for_set(parser, _('network')) _add_additional_network_options(parser) @@ -734,10 +799,12 @@ class SetNetwork(common.NeutronCommandWithExtraArgs): attrs = _get_attrs_network(self.app.client_manager, parsed_args) attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) if attrs: with common.check_missing_extension_if_error( - self.app.client_manager.network, attrs): + self.app.client_manager.network, attrs + ): client.update_network(obj, **attrs) # tags is a subresource and it needs to be updated separately. @@ -751,7 +818,7 @@ class ShowNetwork(common.NetworkAndComputeShowOne): parser.add_argument( 'network', metavar="", - help=_("Network to display (name or ID)") + help=_("Network to display (name or ID)"), ) return parser @@ -776,7 +843,7 @@ class UnsetNetwork(common.NeutronUnsetCommandWithExtraArgs): parser.add_argument( 'network', metavar="", - help=_("Network to modify (name or ID)") + help=_("Network to modify (name or ID)"), ) _tag.add_tag_option_to_parser_for_unset(parser, _('network')) return parser diff --git a/openstackclient/network/v2/network_agent.py b/openstackclient/network/v2/network_agent.py index f67f67bd6c..085e6cfff4 100644 --- a/openstackclient/network/v2/network_agent.py +++ b/openstackclient/network/v2/network_agent.py @@ -52,9 +52,7 @@ def _get_network_columns(item): } hidden_columns = ['location', 'name', 'tenant_id'] return utils.get_osc_show_columns_for_sdk_resource( - item, - column_map, - hidden_columns + item, column_map, hidden_columns ) @@ -66,15 +64,18 @@ class AddNetworkToAgent(command.Command): parser.add_argument( '--dhcp', action='store_true', - help=_('Add network to a DHCP agent')) + help=_('Add network to a DHCP agent'), + ) parser.add_argument( 'agent_id', metavar='', - help=_('Agent to which a network is added (ID only)')) + help=_('Agent to which a network is added (ID only)'), + ) parser.add_argument( 'network', metavar='', - help=_('Network to be added to an agent (name or ID)')) + help=_('Network to be added to an agent (name or ID)'), + ) return parser @@ -82,13 +83,15 @@ class AddNetworkToAgent(command.Command): client = self.app.client_manager.network agent = client.get_agent(parsed_args.agent_id) network = client.find_network( - parsed_args.network, ignore_missing=False) + parsed_args.network, ignore_missing=False + ) if parsed_args.dhcp: try: client.add_dhcp_agent_to_network(agent, network) except Exception: msg = 'Failed to add {} to {}'.format( - network.name, agent.agent_type) + network.name, agent.agent_type + ) exceptions.CommandError(msg) @@ -98,19 +101,17 @@ class AddRouterToAgent(command.Command): def get_parser(self, prog_name): parser = super(AddRouterToAgent, self).get_parser(prog_name) parser.add_argument( - '--l3', - action='store_true', - help=_('Add router to an L3 agent') + '--l3', action='store_true', help=_('Add router to an L3 agent') ) parser.add_argument( 'agent_id', metavar='', - help=_("Agent to which a router is added (ID only)") + help=_("Agent to which a router is added (ID only)"), ) parser.add_argument( 'router', metavar='', - help=_("Router to be added to an agent (name or ID)") + help=_("Router to be added to an agent (name or ID)"), ) return parser @@ -132,7 +133,7 @@ class DeleteNetworkAgent(command.Command): 'network_agent', metavar="", nargs='+', - help=(_("Network agent(s) to delete (ID only)")) + help=(_("Network agent(s) to delete (ID only)")), ) return parser @@ -145,14 +146,19 @@ class DeleteNetworkAgent(command.Command): client.delete_agent(agent, ignore_missing=False) except Exception as e: result += 1 - LOG.error(_("Failed to delete network agent with " - "ID '%(agent)s': %(e)s"), - {'agent': agent, 'e': e}) + LOG.error( + _( + "Failed to delete network agent with " + "ID '%(agent)s': %(e)s" + ), + {'agent': agent, 'e': e}, + ) if result > 0: total = len(parsed_args.network_agent) - msg = (_("%(result)s of %(total)s network agents failed " - "to delete.") % {'result': result, 'total': total}) + msg = _( + "%(result)s of %(total)s network agents failed " "to delete." + ) % {'result': result, 'total': total} raise exceptions.CommandError(msg) @@ -166,35 +172,48 @@ class ListNetworkAgent(command.Lister): parser.add_argument( '--agent-type', metavar='', - choices=["bgp", "dhcp", "open-vswitch", "linux-bridge", "ofa", - "l3", "loadbalancer", "metering", "metadata", "macvtap", - "nic", "baremetal"], - help=_("List only agents with the specified agent type. " - "The supported agent types are: bgp, dhcp, open-vswitch, " - "linux-bridge, ofa, l3, loadbalancer, metering, " - "metadata, macvtap, nic, baremetal.") + choices=[ + "bgp", + "dhcp", + "open-vswitch", + "linux-bridge", + "ofa", + "l3", + "loadbalancer", + "metering", + "metadata", + "macvtap", + "nic", + "baremetal", + ], + help=_( + "List only agents with the specified agent type. " + "The supported agent types are: bgp, dhcp, open-vswitch, " + "linux-bridge, ofa, l3, loadbalancer, metering, " + "metadata, macvtap, nic, baremetal." + ), ) parser.add_argument( '--host', metavar='', - help=_("List only agents running on the specified host") + help=_("List only agents running on the specified host"), ) agent_type_group = parser.add_mutually_exclusive_group() agent_type_group.add_argument( '--network', metavar='', - help=_('List agents hosting a network (name or ID)') + help=_('List agents hosting a network (name or ID)'), ) agent_type_group.add_argument( '--router', metavar='', - help=_('List agents hosting this router (name or ID)') + help=_('List agents hosting this router (name or ID)'), ) parser.add_argument( '--long', action='store_true', default=False, - help=_("List additional fields in output") + help=_("List additional fields in output"), ) return parser @@ -208,7 +227,7 @@ class ListNetworkAgent(command.Lister): 'availability_zone', 'is_alive', 'is_admin_state_up', - 'binary' + 'binary', ) column_headers = ( 'ID', @@ -217,7 +236,7 @@ class ListNetworkAgent(command.Lister): 'Availability Zone', 'Alive', 'State', - 'Binary' + 'Binary', ) key_value = { @@ -232,21 +251,23 @@ class ListNetworkAgent(command.Lister): 'metadata': 'Metadata agent', 'macvtap': 'Macvtap agent', 'nic': 'NIC Switch agent', - 'baremetal': 'Baremetal Node' + 'baremetal': 'Baremetal Node', } filters = {} if parsed_args.network is not None: network = client.find_network( - parsed_args.network, ignore_missing=False) + parsed_args.network, ignore_missing=False + ) data = client.network_hosting_dhcp_agents(network) elif parsed_args.router is not None: if parsed_args.long: columns += ('ha_state',) column_headers += ('HA State',) - router = client.find_router(parsed_args.router, - ignore_missing=False) + router = client.find_router( + parsed_args.router, ignore_missing=False + ) data = client.routers_hosting_l3_agents(router) else: if parsed_args.agent_type is not None: @@ -255,10 +276,17 @@ class ListNetworkAgent(command.Lister): filters['host'] = parsed_args.host data = client.agents(**filters) - return (column_headers, - (utils.get_item_properties( - s, columns, formatters=_formatters, - ) for s in data)) + return ( + column_headers, + ( + utils.get_item_properties( + s, + columns, + formatters=_formatters, + ) + for s in data + ), + ) class RemoveNetworkFromAgent(command.Command): @@ -269,28 +297,33 @@ class RemoveNetworkFromAgent(command.Command): parser.add_argument( '--dhcp', action='store_true', - help=_('Remove network from DHCP agent')) + help=_('Remove network from DHCP agent'), + ) parser.add_argument( 'agent_id', metavar='', - help=_('Agent to which a network is removed (ID only)')) + help=_('Agent to which a network is removed (ID only)'), + ) parser.add_argument( 'network', metavar='', - help=_('Network to be removed from an agent (name or ID)')) + help=_('Network to be removed from an agent (name or ID)'), + ) return parser def take_action(self, parsed_args): client = self.app.client_manager.network agent = client.get_agent(parsed_args.agent_id) network = client.find_network( - parsed_args.network, ignore_missing=False) + parsed_args.network, ignore_missing=False + ) if parsed_args.dhcp: try: client.remove_dhcp_agent_from_network(agent, network) except Exception: msg = 'Failed to remove {} to {}'.format( - network.name, agent.agent_type) + network.name, agent.agent_type + ) exceptions.CommandError(msg) @@ -302,17 +335,17 @@ class RemoveRouterFromAgent(command.Command): parser.add_argument( '--l3', action='store_true', - help=_('Remove router from an L3 agent') + help=_('Remove router from an L3 agent'), ) parser.add_argument( 'agent_id', metavar='', - help=_("Agent from which router will be removed (ID only)") + help=_("Agent from which router will be removed (ID only)"), ) parser.add_argument( 'router', metavar='', - help=_("Router to be removed from an agent (name or ID)") + help=_("Router to be removed from an agent (name or ID)"), ) return parser @@ -335,23 +368,19 @@ class SetNetworkAgent(command.Command): parser.add_argument( 'network_agent', metavar="", - help=(_("Network agent to modify (ID only)")) + help=(_("Network agent to modify (ID only)")), ) parser.add_argument( '--description', metavar='', - help=_("Set network agent description") + help=_("Set network agent description"), ) admin_group = parser.add_mutually_exclusive_group() admin_group.add_argument( - '--enable', - action='store_true', - help=_("Enable network agent") + '--enable', action='store_true', help=_("Enable network agent") ) admin_group.add_argument( - '--disable', - action='store_true', - help=_("Disable network agent") + '--disable', action='store_true', help=_("Disable network agent") ) return parser @@ -378,7 +407,7 @@ class ShowNetworkAgent(command.ShowOne): parser.add_argument( 'network_agent', metavar="", - help=(_("Network agent to display (ID only)")) + help=(_("Network agent to display (ID only)")), ) return parser @@ -386,5 +415,9 @@ class ShowNetworkAgent(command.ShowOne): client = self.app.client_manager.network obj = client.get_agent(parsed_args.network_agent) display_columns, columns = _get_network_columns(obj) - data = utils.get_item_properties(obj, columns, formatters=_formatters,) + data = utils.get_item_properties( + obj, + columns, + formatters=_formatters, + ) return display_columns, data diff --git a/openstackclient/network/v2/network_auto_allocated_topology.py b/openstackclient/network/v2/network_auto_allocated_topology.py index c612f053b4..b2d0fe1d80 100644 --- a/openstackclient/network/v2/network_auto_allocated_topology.py +++ b/openstackclient/network/v2/network_auto_allocated_topology.py @@ -28,9 +28,7 @@ def _get_columns(item): column_map = {} hidden_columns = ['name', 'location', 'tenant_id'] return utils.get_osc_show_columns_for_sdk_resource( - item, - column_map, - hidden_columns + item, column_map, hidden_columns ) @@ -71,22 +69,28 @@ class CreateAutoAllocatedTopology(command.ShowOne): parser.add_argument( '--project', metavar='', - help=_("Return the auto allocated topology for a given project. " - "Default is current project") + help=_( + "Return the auto allocated topology for a given project. " + "Default is current project" + ), ) identity_common.add_project_domain_option_to_parser(parser) parser.add_argument( '--check-resources', action='store_true', - help=_("Validate the requirements for auto allocated topology. " - "Does not return a topology.") + help=_( + "Validate the requirements for auto allocated topology. " + "Does not return a topology." + ), ) parser.add_argument( '--or-show', action='store_true', default=True, - help=_("If topology exists returns the topology's " - "information (Default)") + help=_( + "If topology exists returns the topology's " + "information (Default)" + ), ) return parser @@ -95,9 +99,9 @@ class CreateAutoAllocatedTopology(command.ShowOne): obj = client.validate_auto_allocated_topology(parsed_args.project) columns = _format_check_resource_columns() - data = utils.get_item_properties(_format_check_resource(obj), - columns, - formatters={}) + data = utils.get_item_properties( + _format_check_resource(obj), columns, formatters={} + ) return (columns, data) @@ -126,8 +130,10 @@ class DeleteAutoAllocatedTopology(command.Command): parser.add_argument( '--project', metavar='', - help=_('Delete auto allocated topology for a given project. ' - 'Default is the current project') + help=_( + 'Delete auto allocated topology for a given project. ' + 'Default is the current project' + ), ) identity_common.add_project_domain_option_to_parser(parser) diff --git a/openstackclient/network/v2/network_flavor.py b/openstackclient/network/v2/network_flavor.py index 864184c0c3..7c088d5095 100644 --- a/openstackclient/network/v2/network_flavor.py +++ b/openstackclient/network/v2/network_flavor.py @@ -33,9 +33,7 @@ def _get_columns(item): hidden_columns = ['location', 'tenant_id'] return utils.get_osc_show_columns_for_sdk_resource( - item, - column_map, - hidden_columns + item, column_map, hidden_columns ) @@ -65,28 +63,28 @@ class AddNetworkFlavorToProfile(command.Command): _description = _("Add a service profile to a network flavor") def get_parser(self, prog_name): - parser = super( - AddNetworkFlavorToProfile, self).get_parser(prog_name) + parser = super(AddNetworkFlavorToProfile, self).get_parser(prog_name) parser.add_argument( - 'flavor', - metavar="", - help=_("Network flavor (name or ID)") + 'flavor', metavar="", help=_("Network flavor (name or ID)") ) parser.add_argument( 'service_profile', metavar="", - help=_("Service profile (ID only)") + help=_("Service profile (ID only)"), ) return parser def take_action(self, parsed_args): client = self.app.client_manager.network obj_flavor = client.find_flavor( - parsed_args.flavor, ignore_missing=False) + parsed_args.flavor, ignore_missing=False + ) obj_service_profile = client.find_service_profile( - parsed_args.service_profile, ignore_missing=False) + parsed_args.service_profile, ignore_missing=False + ) client.associate_flavor_with_service_profile( - obj_flavor, obj_service_profile) + obj_flavor, obj_service_profile + ) # TODO(dasanind): Use the SDK resource mapped attribute names once the @@ -97,26 +95,25 @@ class CreateNetworkFlavor(command.ShowOne, common.NeutronCommandWithExtraArgs): def get_parser(self, prog_name): parser = super(CreateNetworkFlavor, self).get_parser(prog_name) parser.add_argument( - 'name', - metavar="", - help=_("Name for the flavor") + 'name', metavar="", help=_("Name for the flavor") ) parser.add_argument( '--service-type', metavar="", required=True, - help=_('Service type to which the flavor applies to: e.g. VPN ' - '(See openstack network service provider list for loaded ' - 'examples.)') + help=_( + 'Service type to which the flavor applies to: e.g. VPN ' + '(See openstack network service provider list for loaded ' + 'examples.)' + ), ) parser.add_argument( - '--description', - help=_('Description for the flavor') + '--description', help=_('Description for the flavor') ) parser.add_argument( '--project', metavar="", - help=_("Owner's project (name or ID)") + help=_("Owner's project (name or ID)"), ) identity_common.add_project_domain_option_to_parser(parser) @@ -124,12 +121,10 @@ class CreateNetworkFlavor(command.ShowOne, common.NeutronCommandWithExtraArgs): enable_group.add_argument( '--enable', action='store_true', - help=_("Enable the flavor (default)") + help=_("Enable the flavor (default)"), ) enable_group.add_argument( - '--disable', - action='store_true', - help=_("Disable the flavor") + '--disable', action='store_true', help=_("Disable the flavor") ) return parser @@ -138,7 +133,8 @@ class CreateNetworkFlavor(command.ShowOne, common.NeutronCommandWithExtraArgs): client = self.app.client_manager.network attrs = _get_attrs(self.app.client_manager, parsed_args) attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) obj = client.create_flavor(**attrs) display_columns, columns = _get_columns(obj) data = utils.get_item_properties(obj, columns, formatters={}) @@ -156,7 +152,7 @@ class DeleteNetworkFlavor(command.Command): 'flavor', metavar='', nargs='+', - help=_('Flavor(s) to delete (name or ID)') + help=_('Flavor(s) to delete (name or ID)'), ) return parser @@ -170,13 +166,19 @@ class DeleteNetworkFlavor(command.Command): client.delete_flavor(obj) except Exception as e: result += 1 - LOG.error(_("Failed to delete flavor with " - "name or ID '%(flavor)s': %(e)s"), - {"flavor": flavor, "e": e}) + LOG.error( + _( + "Failed to delete flavor with " + "name or ID '%(flavor)s': %(e)s" + ), + {"flavor": flavor, "e": e}, + ) if result > 0: total = len(parsed_args.flavor) - msg = (_("%(result)s of %(total)s flavors failed " - "to delete.") % {"result": result, "total": total}) + msg = _("%(result)s of %(total)s flavors failed " "to delete.") % { + "result": result, + "total": total, + } raise exceptions.CommandError(msg) @@ -186,55 +188,56 @@ class ListNetworkFlavor(command.Lister): def take_action(self, parsed_args): client = self.app.client_manager.network - columns = ( - 'id', - 'name', - 'is_enabled', - 'service_type', - 'description' - ) + columns = ('id', 'name', 'is_enabled', 'service_type', 'description') column_headers = ( 'ID', 'Name', 'Enabled', 'Service Type', - 'Description' + 'Description', ) data = client.flavors() - return (column_headers, - (utils.get_item_properties( - s, columns, - ) for s in data)) + return ( + column_headers, + ( + utils.get_item_properties( + s, + columns, + ) + for s in data + ), + ) class RemoveNetworkFlavorFromProfile(command.Command): - _description = _( - "Remove service profile from network flavor") + _description = _("Remove service profile from network flavor") def get_parser(self, prog_name): - parser = super( - RemoveNetworkFlavorFromProfile, self).get_parser(prog_name) + parser = super(RemoveNetworkFlavorFromProfile, self).get_parser( + prog_name + ) parser.add_argument( - 'flavor', - metavar="", - help=_("Network flavor (name or ID)") + 'flavor', metavar="", help=_("Network flavor (name or ID)") ) parser.add_argument( 'service_profile', metavar="", - help=_("Service profile (ID only)") + help=_("Service profile (ID only)"), ) return parser def take_action(self, parsed_args): client = self.app.client_manager.network obj_flavor = client.find_flavor( - parsed_args.flavor, ignore_missing=False) + parsed_args.flavor, ignore_missing=False + ) obj_service_profile = client.find_service_profile( - parsed_args.service_profile, ignore_missing=False) + parsed_args.service_profile, ignore_missing=False + ) client.disassociate_flavor_from_service_profile( - obj_flavor, obj_service_profile) + obj_flavor, obj_service_profile + ) # TODO(dasanind): Use only the SDK resource mapped attribute names once the @@ -247,36 +250,27 @@ class SetNetworkFlavor(common.NeutronCommandWithExtraArgs): parser.add_argument( 'flavor', metavar="", - help=_("Flavor to update (name or ID)") + help=_("Flavor to update (name or ID)"), ) parser.add_argument( - '--description', - help=_('Set network flavor description') + '--description', help=_('Set network flavor description') ) enable_group = parser.add_mutually_exclusive_group() enable_group.add_argument( - '--disable', - action='store_true', - help=_("Disable network flavor") + '--disable', action='store_true', help=_("Disable network flavor") ) enable_group.add_argument( - '--enable', - action='store_true', - help=_("Enable network flavor") + '--enable', action='store_true', help=_("Enable network flavor") ) parser.add_argument( - '--name', - metavar="", - help=_('Set flavor name') + '--name', metavar="", help=_('Set flavor name') ) return parser def take_action(self, parsed_args): client = self.app.client_manager.network - obj = client.find_flavor( - parsed_args.flavor, - ignore_missing=False) + obj = client.find_flavor(parsed_args.flavor, ignore_missing=False) attrs = {} if parsed_args.name is not None: attrs['name'] = parsed_args.name @@ -287,7 +281,8 @@ class SetNetworkFlavor(common.NeutronCommandWithExtraArgs): if parsed_args.disable: attrs['enabled'] = False attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) client.update_flavor(obj, **attrs) @@ -299,7 +294,7 @@ class ShowNetworkFlavor(command.ShowOne): parser.add_argument( 'flavor', metavar='', - help=_('Flavor to display (name or ID)') + help=_('Flavor to display (name or ID)'), ) return parser diff --git a/openstackclient/network/v2/network_flavor_profile.py b/openstackclient/network/v2/network_flavor_profile.py index 66c6dcff3f..c063d5dd34 100644 --- a/openstackclient/network/v2/network_flavor_profile.py +++ b/openstackclient/network/v2/network_flavor_profile.py @@ -31,9 +31,7 @@ def _get_columns(item): hidden_columns = ['location', 'name', 'tenant_id'] return utils.get_osc_show_columns_for_sdk_resource( - item, - column_map, - hidden_columns + item, column_map, hidden_columns ) @@ -63,8 +61,9 @@ def _get_attrs(client_manager, parsed_args): # TODO(ndahiwade): Use the SDK resource mapped attribute names once the # OSC minimum requirements include SDK 1.0. -class CreateNetworkFlavorProfile(command.ShowOne, - common.NeutronCommandWithExtraArgs): +class CreateNetworkFlavorProfile( + command.ShowOne, common.NeutronCommandWithExtraArgs +): _description = _("Create new network flavor profile") def get_parser(self, prog_name): @@ -72,34 +71,38 @@ class CreateNetworkFlavorProfile(command.ShowOne, parser.add_argument( '--project', metavar="", - help=_("Owner's project (name or ID)") + help=_("Owner's project (name or ID)"), ) identity_common.add_project_domain_option_to_parser(parser) parser.add_argument( '--description', metavar="", - help=_("Description for the flavor profile") + help=_("Description for the flavor profile"), ) enable_group = parser.add_mutually_exclusive_group() enable_group.add_argument( '--enable', action='store_true', - help=_("Enable the flavor profile") + help=_("Enable the flavor profile"), ) enable_group.add_argument( '--disable', action='store_true', - help=_("Disable the flavor profile") + help=_("Disable the flavor profile"), ) parser.add_argument( '--driver', - help=_("Python module path to driver. This becomes " - "required if --metainfo is missing and vice versa") + help=_( + "Python module path to driver. This becomes " + "required if --metainfo is missing and vice versa" + ), ) parser.add_argument( '--metainfo', - help=_("Metainfo for the flavor profile. This becomes " - "required if --driver is missing and vice versa") + help=_( + "Metainfo for the flavor profile. This becomes " + "required if --driver is missing and vice versa" + ), ) return parser @@ -108,7 +111,8 @@ class CreateNetworkFlavorProfile(command.ShowOne, client = self.app.client_manager.network attrs = _get_attrs(self.app.client_manager, parsed_args) attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) if parsed_args.driver is None and parsed_args.metainfo is None: msg = _("Either --driver or --metainfo or both are required") @@ -131,7 +135,7 @@ class DeleteNetworkFlavorProfile(command.Command): 'flavor_profile', metavar='', nargs='+', - help=_("Flavor profile(s) to delete (ID only)") + help=_("Flavor profile(s) to delete (ID only)"), ) return parser @@ -141,18 +145,24 @@ class DeleteNetworkFlavorProfile(command.Command): for flavor_profile in parsed_args.flavor_profile: try: - obj = client.find_service_profile(flavor_profile, - ignore_missing=False) + obj = client.find_service_profile( + flavor_profile, ignore_missing=False + ) client.delete_service_profile(obj) except Exception as e: result += 1 - LOG.error(_("Failed to delete flavor profile with " - "ID '%(flavor_profile)s': %(e)s"), - {"flavor_profile": flavor_profile, "e": e}) + LOG.error( + _( + "Failed to delete flavor profile with " + "ID '%(flavor_profile)s': %(e)s" + ), + {"flavor_profile": flavor_profile, "e": e}, + ) if result > 0: total = len(parsed_args.flavor_profile) - msg = (_("%(result)s of %(total)s flavor_profiles failed " - "to delete.") % {"result": result, "total": total}) + msg = _( + "%(result)s of %(total)s flavor_profiles failed " "to delete." + ) % {"result": result, "total": total} raise exceptions.CommandError(msg) @@ -178,10 +188,16 @@ class ListNetworkFlavorProfile(command.Lister): ) data = client.service_profiles() - return (column_headers, - (utils.get_item_properties( - s, columns, - ) for s in data)) + return ( + column_headers, + ( + utils.get_item_properties( + s, + columns, + ) + for s in data + ), + ) # TODO(ndahiwade): Use the SDK resource mapped attribute names once the @@ -194,45 +210,51 @@ class SetNetworkFlavorProfile(common.NeutronCommandWithExtraArgs): parser.add_argument( 'flavor_profile', metavar="", - help=_("Flavor profile to update (ID only)") + help=_("Flavor profile to update (ID only)"), ) identity_common.add_project_domain_option_to_parser(parser) parser.add_argument( '--description', metavar="", - help=_("Description for the flavor profile") + help=_("Description for the flavor profile"), ) enable_group = parser.add_mutually_exclusive_group() enable_group.add_argument( '--enable', action='store_true', - help=_("Enable the flavor profile") + help=_("Enable the flavor profile"), ) enable_group.add_argument( '--disable', action='store_true', - help=_("Disable the flavor profile") + help=_("Disable the flavor profile"), ) parser.add_argument( '--driver', - help=_("Python module path to driver. This becomes " - "required if --metainfo is missing and vice versa") + help=_( + "Python module path to driver. This becomes " + "required if --metainfo is missing and vice versa" + ), ) parser.add_argument( '--metainfo', - help=_("Metainfo for the flavor profile. This becomes " - "required if --driver is missing and vice versa") + help=_( + "Metainfo for the flavor profile. This becomes " + "required if --driver is missing and vice versa" + ), ) return parser def take_action(self, parsed_args): client = self.app.client_manager.network - obj = client.find_service_profile(parsed_args.flavor_profile, - ignore_missing=False) + obj = client.find_service_profile( + parsed_args.flavor_profile, ignore_missing=False + ) attrs = _get_attrs(self.app.client_manager, parsed_args) attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) client.update_service_profile(obj, **attrs) @@ -245,14 +267,15 @@ class ShowNetworkFlavorProfile(command.ShowOne): parser.add_argument( 'flavor_profile', metavar='', - help=_("Flavor profile to display (ID only)") + help=_("Flavor profile to display (ID only)"), ) return parser def take_action(self, parsed_args): client = self.app.client_manager.network - obj = client.find_service_profile(parsed_args.flavor_profile, - ignore_missing=False) + obj = client.find_service_profile( + parsed_args.flavor_profile, ignore_missing=False + ) display_columns, columns = _get_columns(obj) data = utils.get_item_properties(obj, columns) return (display_columns, data) diff --git a/openstackclient/network/v2/network_meter.py b/openstackclient/network/v2/network_meter.py index 99b0bdd453..d39bc31f4c 100644 --- a/openstackclient/network/v2/network_meter.py +++ b/openstackclient/network/v2/network_meter.py @@ -32,9 +32,7 @@ def _get_columns(item): } hidden_columns = ['location', 'tenant_id'] return utils.get_osc_show_columns_for_sdk_resource( - item, - column_map, - hidden_columns + item, column_map, hidden_columns ) @@ -72,12 +70,12 @@ class CreateMeter(command.ShowOne, common.NeutronCommandWithExtraArgs): parser.add_argument( '--description', metavar='', - help=_("Create description for meter") + help=_("Create description for meter"), ) parser.add_argument( '--project', metavar='', - help=_("Owner's project (name or ID)") + help=_("Owner's project (name or ID)"), ) identity_common.add_project_domain_option_to_parser(parser) @@ -86,12 +84,12 @@ class CreateMeter(command.ShowOne, common.NeutronCommandWithExtraArgs): '--share', action='store_true', default=None, - help=_("Share meter between projects") + help=_("Share meter between projects"), ) share_group.add_argument( '--no-share', action='store_true', - help=_("Do not share meter between projects") + help=_("Do not share meter between projects"), ) parser.add_argument( 'name', @@ -105,7 +103,8 @@ class CreateMeter(command.ShowOne, common.NeutronCommandWithExtraArgs): client = self.app.client_manager.network attrs = _get_attrs(self.app.client_manager, parsed_args) attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) obj = client.create_metering_label(**attrs) display_columns, columns = _get_columns(obj) data = utils.get_item_properties(obj, columns, formatters={}) @@ -125,7 +124,7 @@ class DeleteMeter(command.Command): 'meter', metavar='', nargs='+', - help=_('Meter to delete (name or ID)') + help=_('Meter to delete (name or ID)'), ) return parser @@ -139,13 +138,16 @@ class DeleteMeter(command.Command): client.delete_metering_label(obj) except Exception as e: result += 1 - LOG.error(_("Failed to delete meter with " - "ID '%(meter)s': %(e)s"), - {"meter": meter, "e": e}) + LOG.error( + _("Failed to delete meter with " "ID '%(meter)s': %(e)s"), + {"meter": meter, "e": e}, + ) if result > 0: total = len(parsed_args.meter) - msg = (_("%(result)s of %(total)s meters failed " - "to delete.") % {"result": result, "total": total}) + msg = _("%(result)s of %(total)s meters failed " "to delete.") % { + "result": result, + "total": total, + } raise exceptions.CommandError(msg) @@ -169,10 +171,16 @@ class ListMeter(command.Lister): ) data = client.metering_labels() - return (column_headers, - (utils.get_item_properties( - s, columns, - ) for s in data)) + return ( + column_headers, + ( + utils.get_item_properties( + s, + columns, + ) + for s in data + ), + ) class ShowMeter(command.ShowOne): @@ -181,16 +189,15 @@ class ShowMeter(command.ShowOne): def get_parser(self, prog_name): parser = super(ShowMeter, self).get_parser(prog_name) parser.add_argument( - 'meter', - metavar='', - help=_('Meter to display (name or ID)') + 'meter', metavar='', help=_('Meter to display (name or ID)') ) return parser def take_action(self, parsed_args): client = self.app.client_manager.network - obj = client.find_metering_label(parsed_args.meter, - ignore_missing=False) + obj = client.find_metering_label( + parsed_args.meter, ignore_missing=False + ) display_columns, columns = _get_columns(obj) data = utils.get_item_properties(obj, columns) return display_columns, data diff --git a/openstackclient/network/v2/network_meter_rule.py b/openstackclient/network/v2/network_meter_rule.py index 2c50e5a662..4e513e3425 100644 --- a/openstackclient/network/v2/network_meter_rule.py +++ b/openstackclient/network/v2/network_meter_rule.py @@ -30,9 +30,7 @@ def _get_columns(item): column_map = {} hidden_columns = ['location', 'tenant_id'] return utils.get_osc_show_columns_for_sdk_resource( - item, - column_map, - hidden_columns + item, column_map, hidden_columns ) @@ -76,30 +74,30 @@ class CreateMeterRule(command.ShowOne, common.NeutronCommandWithExtraArgs): parser.add_argument( '--project', metavar='', - help=_("Owner's project (name or ID)") + help=_("Owner's project (name or ID)"), ) identity_common.add_project_domain_option_to_parser(parser) exclude_group = parser.add_mutually_exclusive_group() exclude_group.add_argument( '--exclude', action='store_true', - help=_("Exclude remote IP prefix from traffic count") + help=_("Exclude remote IP prefix from traffic count"), ) exclude_group.add_argument( '--include', action='store_true', - help=_("Include remote IP prefix from traffic count (default)") + help=_("Include remote IP prefix from traffic count (default)"), ) direction_group = parser.add_mutually_exclusive_group() direction_group.add_argument( '--ingress', action='store_true', - help=_("Apply rule to incoming network traffic (default)") + help=_("Apply rule to incoming network traffic (default)"), ) direction_group.add_argument( '--egress', action='store_true', - help=_('Apply rule to outgoing network traffic') + help=_('Apply rule to outgoing network traffic'), ) parser.add_argument( '--remote-ip-prefix', @@ -129,12 +127,14 @@ class CreateMeterRule(command.ShowOne, common.NeutronCommandWithExtraArgs): def take_action(self, parsed_args): client = self.app.client_manager.network - _meter = client.find_metering_label(parsed_args.meter, - ignore_missing=False) + _meter = client.find_metering_label( + parsed_args.meter, ignore_missing=False + ) parsed_args.meter = _meter.id attrs = _get_attrs(self.app.client_manager, parsed_args) attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) obj = client.create_metering_label_rule(**attrs) display_columns, columns = _get_columns(obj) data = utils.get_item_properties(obj, columns, formatters={}) @@ -152,7 +152,7 @@ class DeleteMeterRule(command.Command): 'meter_rule_id', metavar='', nargs='+', - help=_('Meter rule to delete (ID only)') + help=_('Meter rule to delete (ID only)'), ) return parser @@ -167,14 +167,19 @@ class DeleteMeterRule(command.Command): client.delete_metering_label_rule(obj) except Exception as e: result += 1 - LOG.error(_("Failed to delete meter rule with " - "ID '%(id)s': %(e)s"), - {"id": id, "e": e}) + LOG.error( + _( + "Failed to delete meter rule with " + "ID '%(id)s': %(e)s" + ), + {"id": id, "e": e}, + ) if result > 0: total = len(parsed_args.meter_rule_id) - msg = (_("%(result)s of %(total)s meter rules failed " - "to delete.") % {"result": result, "total": total}) + msg = _( + "%(result)s of %(total)s meter rules failed " "to delete." + ) % {"result": result, "total": total} raise exceptions.CommandError(msg) @@ -201,10 +206,16 @@ class ListMeterRule(command.Lister): 'Destination IP Prefix', ) data = client.metering_label_rules() - return (column_headers, - (utils.get_item_properties( - s, columns, - ) for s in data)) + return ( + column_headers, + ( + utils.get_item_properties( + s, + columns, + ) + for s in data + ), + ) class ShowMeterRule(command.ShowOne): @@ -215,14 +226,15 @@ class ShowMeterRule(command.ShowOne): parser.add_argument( 'meter_rule_id', metavar='', - help=_('Meter rule (ID only)') + help=_('Meter rule (ID only)'), ) return parser def take_action(self, parsed_args): client = self.app.client_manager.network - obj = client.find_metering_label_rule(parsed_args.meter_rule_id, - ignore_missing=False) + obj = client.find_metering_label_rule( + parsed_args.meter_rule_id, ignore_missing=False + ) display_columns, columns = _get_columns(obj) data = utils.get_item_properties(obj, columns) return display_columns, data diff --git a/openstackclient/network/v2/network_qos_policy.py b/openstackclient/network/v2/network_qos_policy.py index 29967d7d5a..ca0f871194 100644 --- a/openstackclient/network/v2/network_qos_policy.py +++ b/openstackclient/network/v2/network_qos_policy.py @@ -43,9 +43,7 @@ def _get_columns(item): } hidden_columns = ['location', 'tenant_id'] return utils.get_osc_show_columns_for_sdk_resource( - item, - column_map, - hidden_columns + item, column_map, hidden_columns ) @@ -81,39 +79,40 @@ def _get_attrs(client_manager, parsed_args): # TODO(abhiraut): Use the SDK resource mapped attribute names once the # OSC minimum requirements include SDK 1.0. -class CreateNetworkQosPolicy(command.ShowOne, - common.NeutronCommandWithExtraArgs): +class CreateNetworkQosPolicy( + command.ShowOne, common.NeutronCommandWithExtraArgs +): _description = _("Create a QoS policy") def get_parser(self, prog_name): parser = super(CreateNetworkQosPolicy, self).get_parser(prog_name) parser.add_argument( - 'name', - metavar='', - help=_("Name of QoS policy to create") + 'name', metavar='', help=_("Name of QoS policy to create") ) parser.add_argument( '--description', metavar='', - help=_("Description of the QoS policy") + help=_("Description of the QoS policy"), ) share_group = parser.add_mutually_exclusive_group() share_group.add_argument( '--share', action='store_true', default=None, - help=_("Make the QoS policy accessible by other projects") + help=_("Make the QoS policy accessible by other projects"), ) share_group.add_argument( '--no-share', action='store_true', - help=_("Make the QoS policy not accessible by other projects " - "(default)") + help=_( + "Make the QoS policy not accessible by other projects " + "(default)" + ), ) parser.add_argument( '--project', metavar='', - help=_("Owner's project (name or ID)") + help=_("Owner's project (name or ID)"), ) identity_common.add_project_domain_option_to_parser(parser) default_group = parser.add_mutually_exclusive_group() @@ -133,7 +132,8 @@ class CreateNetworkQosPolicy(command.ShowOne, client = self.app.client_manager.network attrs = _get_attrs(self.app.client_manager, parsed_args) attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) obj = client.create_qos_policy(**attrs) display_columns, columns = _get_columns(obj) data = utils.get_item_properties(obj, columns, formatters={}) @@ -149,7 +149,7 @@ class DeleteNetworkQosPolicy(command.Command): 'policy', metavar="", nargs="+", - help=_("QoS policy(s) to delete (name or ID)") + help=_("QoS policy(s) to delete (name or ID)"), ) return parser @@ -163,14 +163,19 @@ class DeleteNetworkQosPolicy(command.Command): client.delete_qos_policy(obj) except Exception as e: result += 1 - LOG.error(_("Failed to delete QoS policy " - "name or ID '%(qos_policy)s': %(e)s"), - {'qos_policy': policy, 'e': e}) + LOG.error( + _( + "Failed to delete QoS policy " + "name or ID '%(qos_policy)s': %(e)s" + ), + {'qos_policy': policy, 'e': e}, + ) if result > 0: total = len(parsed_args.policy) - msg = (_("%(result)s of %(total)s QoS policies failed " - "to delete.") % {'result': result, 'total': total}) + msg = _( + "%(result)s of %(total)s QoS policies failed " "to delete." + ) % {'result': result, 'total': total} raise exceptions.CommandError(msg) @@ -184,19 +189,21 @@ class ListNetworkQosPolicy(command.Lister): parser.add_argument( '--project', metavar='', - help=_("List qos policies according to their project (name or ID)") + help=_( + "List qos policies according to their project (name or ID)" + ), ) identity_common.add_project_domain_option_to_parser(parser) shared_group = parser.add_mutually_exclusive_group() shared_group.add_argument( '--share', action='store_true', - help=_("List qos policies shared between projects") + help=_("List qos policies shared between projects"), ) shared_group.add_argument( '--no-share', action='store_true', - help=_("List qos policies not shared between projects") + help=_("List qos policies not shared between projects"), ) return parser @@ -218,10 +225,17 @@ class ListNetworkQosPolicy(command.Lister): ) attrs = _get_attrs(self.app.client_manager, parsed_args) data = client.qos_policies(**attrs) - return (column_headers, - (utils.get_item_properties( - s, columns, formatters={}, - ) for s in data)) + return ( + column_headers, + ( + utils.get_item_properties( + s, + columns, + formatters={}, + ) + for s in data + ), + ) # TODO(abhiraut): Use the SDK resource mapped attribute names once the @@ -234,17 +248,15 @@ class SetNetworkQosPolicy(common.NeutronCommandWithExtraArgs): parser.add_argument( 'policy', metavar="", - help=_("QoS policy to modify (name or ID)") + help=_("QoS policy to modify (name or ID)"), ) parser.add_argument( - '--name', - metavar="", - help=_('Set QoS policy name') + '--name', metavar="", help=_('Set QoS policy name') ) parser.add_argument( '--description', metavar='', - help=_("Description of the QoS policy") + help=_("Description of the QoS policy"), ) enable_group = parser.add_mutually_exclusive_group() enable_group.add_argument( @@ -272,12 +284,11 @@ class SetNetworkQosPolicy(common.NeutronCommandWithExtraArgs): def take_action(self, parsed_args): client = self.app.client_manager.network - obj = client.find_qos_policy( - parsed_args.policy, - ignore_missing=False) + obj = client.find_qos_policy(parsed_args.policy, ignore_missing=False) attrs = _get_attrs(self.app.client_manager, parsed_args) attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) client.update_qos_policy(obj, **attrs) @@ -289,14 +300,13 @@ class ShowNetworkQosPolicy(command.ShowOne): parser.add_argument( 'policy', metavar="", - help=_("QoS policy to display (name or ID)") + help=_("QoS policy to display (name or ID)"), ) return parser def take_action(self, parsed_args): client = self.app.client_manager.network - obj = client.find_qos_policy(parsed_args.policy, - ignore_missing=False) + obj = client.find_qos_policy(parsed_args.policy, ignore_missing=False) display_columns, columns = _get_columns(obj) data = utils.get_item_properties(obj, columns, formatters=_formatters) return (display_columns, data) diff --git a/openstackclient/network/v2/network_qos_rule.py b/openstackclient/network/v2/network_qos_rule.py index cb2d23398e..a6529c8b80 100644 --- a/openstackclient/network/v2/network_qos_rule.py +++ b/openstackclient/network/v2/network_qos_rule.py @@ -30,17 +30,40 @@ MANDATORY_PARAMETERS = { RULE_TYPE_MINIMUM_BANDWIDTH: {'min_kbps', 'direction'}, RULE_TYPE_MINIMUM_PACKET_RATE: {'min_kpps', 'direction'}, RULE_TYPE_DSCP_MARKING: {'dscp_mark'}, - RULE_TYPE_BANDWIDTH_LIMIT: {'max_kbps'}} + RULE_TYPE_BANDWIDTH_LIMIT: {'max_kbps'}, +} OPTIONAL_PARAMETERS = { RULE_TYPE_MINIMUM_BANDWIDTH: set(), RULE_TYPE_MINIMUM_PACKET_RATE: set(), RULE_TYPE_DSCP_MARKING: set(), - RULE_TYPE_BANDWIDTH_LIMIT: {'direction', 'max_burst_kbps'}} + RULE_TYPE_BANDWIDTH_LIMIT: {'direction', 'max_burst_kbps'}, +} DIRECTION_EGRESS = 'egress' DIRECTION_INGRESS = 'ingress' DIRECTION_ANY = 'any' -DSCP_VALID_MARKS = [0, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, - 34, 36, 38, 40, 46, 48, 56] +DSCP_VALID_MARKS = [ + 0, + 8, + 10, + 12, + 14, + 16, + 18, + 20, + 22, + 24, + 26, + 28, + 30, + 32, + 34, + 36, + 38, + 40, + 46, + 48, + 56, +] ACTION_CREATE = 'create' ACTION_DELETE = 'delete' @@ -53,9 +76,7 @@ def _get_columns(item): column_map = {} hidden_columns = ['location', 'tenant_id'] return utils.get_osc_show_columns_for_sdk_resource( - item, - column_map, - hidden_columns + item, column_map, hidden_columns ) @@ -63,31 +84,38 @@ def _check_type_parameters(attrs, type, is_create): req_params = MANDATORY_PARAMETERS[type] opt_params = OPTIONAL_PARAMETERS[type] type_params = req_params | opt_params - notreq_params = set(itertools.chain( - *[v for k, v in MANDATORY_PARAMETERS.items() if k != type])) + notreq_params = set( + itertools.chain( + *[v for k, v in MANDATORY_PARAMETERS.items() if k != type] + ) + ) notreq_params -= type_params if is_create and None in map(attrs.get, req_params): - msg = (_('"Create" rule command for type "%(rule_type)s" requires ' - 'arguments: %(args)s') % - {'rule_type': type, 'args': ", ".join(sorted(req_params))}) + msg = _( + '"Create" rule command for type "%(rule_type)s" requires ' + 'arguments: %(args)s' + ) % {'rule_type': type, 'args': ", ".join(sorted(req_params))} raise exceptions.CommandError(msg) if set(attrs.keys()) & notreq_params: - msg = (_('Rule type "%(rule_type)s" only requires arguments: %(args)s') - % {'rule_type': type, 'args': ", ".join(sorted(type_params))}) + msg = _( + 'Rule type "%(rule_type)s" only requires arguments: %(args)s' + ) % {'rule_type': type, 'args': ", ".join(sorted(type_params))} raise exceptions.CommandError(msg) def _get_attrs(network_client, parsed_args, is_create=False): attrs = {} - qos = network_client.find_qos_policy(parsed_args.qos_policy, - ignore_missing=False) + qos = network_client.find_qos_policy( + parsed_args.qos_policy, ignore_missing=False + ) attrs['qos_policy_id'] = qos.id if not is_create: attrs['id'] = parsed_args.id rule_type = _find_rule_type(qos, parsed_args.id) if not rule_type: - msg = (_('Rule ID %(rule_id)s not found') % - {'rule_id': parsed_args.id}) + msg = _('Rule ID %(rule_id)s not found') % { + 'rule_id': parsed_args.id + } raise exceptions.CommandError(msg) else: rule_type = parsed_args.type @@ -112,9 +140,10 @@ def _get_attrs(network_client, parsed_args, is_create=False): if rule_type == RULE_TYPE_MINIMUM_PACKET_RATE: attrs['direction'] = DIRECTION_ANY else: - msg = (_('Direction "any" can only be used with ' - '%(rule_type_min_pps)s rule type') % - {'rule_type_min_pps': RULE_TYPE_MINIMUM_PACKET_RATE}) + msg = _( + 'Direction "any" can only be used with ' + '%(rule_type_min_pps)s rule type' + ) % {'rule_type_min_pps': RULE_TYPE_MINIMUM_PACKET_RATE} raise exceptions.CommandError(msg) _check_type_parameters(attrs, rule_type, is_create) return attrs @@ -130,8 +159,10 @@ def _get_item_properties(item, fields): def _rule_action_call(client, action, rule_type): rule_type = rule_type.replace('-', '_') - func_name = '%(action)s_qos_%(rule_type)s_rule' % {'action': action, - 'rule_type': rule_type} + func_name = '%(action)s_qos_%(rule_type)s_rule' % { + 'action': action, + 'rule_type': rule_type, + } return getattr(client, func_name) @@ -147,81 +178,91 @@ def _add_rule_arguments(parser): dest='max_kbps', metavar='', type=int, - help=_('Maximum bandwidth in kbps') + help=_('Maximum bandwidth in kbps'), ) parser.add_argument( '--max-burst-kbits', dest='max_burst_kbits', metavar='', type=int, - help=_('Maximum burst in kilobits, 0 or not specified means ' - 'automatic, which is 80%% of the bandwidth limit, which works ' - 'for typical TCP traffic. For details check the QoS user ' - 'workflow.') + help=_( + 'Maximum burst in kilobits, 0 or not specified means ' + 'automatic, which is 80%% of the bandwidth limit, which works ' + 'for typical TCP traffic. For details check the QoS user ' + 'workflow.' + ), ) parser.add_argument( '--dscp-mark', dest='dscp_mark', metavar='', type=int, - help=_('DSCP mark: value can be 0, even numbers from 8-56, ' - 'excluding 42, 44, 50, 52, and 54') + help=_( + 'DSCP mark: value can be 0, even numbers from 8-56, ' + 'excluding 42, 44, 50, 52, and 54' + ), ) parser.add_argument( '--min-kbps', dest='min_kbps', metavar='', type=int, - help=_('Minimum guaranteed bandwidth in kbps') + help=_('Minimum guaranteed bandwidth in kbps'), ) parser.add_argument( '--min-kpps', dest='min_kpps', metavar='', type=int, - help=_('Minimum guaranteed packet rate in kpps') + help=_('Minimum guaranteed packet rate in kpps'), ) direction_group = parser.add_mutually_exclusive_group() direction_group.add_argument( '--ingress', action='store_true', - help=_("Ingress traffic direction from the project point of view") + help=_("Ingress traffic direction from the project point of view"), ) direction_group.add_argument( '--egress', action='store_true', - help=_("Egress traffic direction from the project point of view") + help=_("Egress traffic direction from the project point of view"), ) direction_group.add_argument( '--any', action='store_true', - help=_("Any traffic direction from the project point of view. Can be " - "used only with minimum packet rate rule.") + help=_( + "Any traffic direction from the project point of view. Can be " + "used only with minimum packet rate rule." + ), ) -class CreateNetworkQosRule(command.ShowOne, - common.NeutronCommandWithExtraArgs): +class CreateNetworkQosRule( + command.ShowOne, common.NeutronCommandWithExtraArgs +): _description = _("Create new Network QoS rule") def get_parser(self, prog_name): - parser = super(CreateNetworkQosRule, self).get_parser( - prog_name) + parser = super(CreateNetworkQosRule, self).get_parser(prog_name) parser.add_argument( 'qos_policy', metavar='', - help=_('QoS policy that contains the rule (name or ID)') + help=_('QoS policy that contains the rule (name or ID)'), ) parser.add_argument( '--type', metavar='', required=True, - choices=[RULE_TYPE_MINIMUM_BANDWIDTH, - RULE_TYPE_MINIMUM_PACKET_RATE, - RULE_TYPE_DSCP_MARKING, - RULE_TYPE_BANDWIDTH_LIMIT], - help=(_('QoS rule type (%s)') % - ", ".join(MANDATORY_PARAMETERS.keys())) + choices=[ + RULE_TYPE_MINIMUM_BANDWIDTH, + RULE_TYPE_MINIMUM_PACKET_RATE, + RULE_TYPE_DSCP_MARKING, + RULE_TYPE_BANDWIDTH_LIMIT, + ], + help=( + _('QoS rule type (%s)') + % ", ".join(MANDATORY_PARAMETERS.keys()) + ), ) _add_rule_arguments(parser) return parser @@ -231,12 +272,13 @@ class CreateNetworkQosRule(command.ShowOne, try: attrs = _get_attrs(network_client, parsed_args, is_create=True) attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) obj = _rule_action_call( - network_client, ACTION_CREATE, parsed_args.type)( - attrs.pop('qos_policy_id'), **attrs) + network_client, ACTION_CREATE, parsed_args.type + )(attrs.pop('qos_policy_id'), **attrs) except Exception as e: - msg = (_('Failed to create Network QoS rule: %(e)s') % {'e': e}) + msg = _('Failed to create Network QoS rule: %(e)s') % {'e': e} raise exceptions.CommandError(msg) display_columns, columns = _get_columns(obj) data = utils.get_item_properties(obj, columns) @@ -251,12 +293,12 @@ class DeleteNetworkQosRule(command.Command): parser.add_argument( 'qos_policy', metavar='', - help=_('QoS policy that contains the rule (name or ID)') + help=_('QoS policy that contains the rule (name or ID)'), ) parser.add_argument( 'id', metavar='', - help=_('Network QoS rule to delete (ID)') + help=_('Network QoS rule to delete (ID)'), ) return parser @@ -264,16 +306,19 @@ class DeleteNetworkQosRule(command.Command): network_client = self.app.client_manager.network rule_id = parsed_args.id try: - qos = network_client.find_qos_policy(parsed_args.qos_policy, - ignore_missing=False) + qos = network_client.find_qos_policy( + parsed_args.qos_policy, ignore_missing=False + ) rule_type = _find_rule_type(qos, rule_id) if not rule_type: raise Exception('Rule %s not found' % rule_id) _rule_action_call(network_client, ACTION_DELETE, rule_type)( - rule_id, qos.id) + rule_id, qos.id + ) except Exception as e: - msg = (_('Failed to delete Network QoS rule ID "%(rule)s": %(e)s') - % {'rule': rule_id, 'e': e}) + msg = _( + 'Failed to delete Network QoS rule ID "%(rule)s": %(e)s' + ) % {'rule': rule_id, 'e': e} raise exceptions.CommandError(msg) @@ -285,7 +330,7 @@ class ListNetworkQosRule(command.Lister): parser.add_argument( 'qos_policy', metavar='', - help=_('QoS policy that contains the rule (name or ID)') + help=_('QoS policy that contains the rule (name or ID)'), ) return parser @@ -313,11 +358,14 @@ class ListNetworkQosRule(command.Lister): 'DSCP mark', 'Direction', ) - qos = client.find_qos_policy(parsed_args.qos_policy, - ignore_missing=False) + qos = client.find_qos_policy( + parsed_args.qos_policy, ignore_missing=False + ) data = qos.rules - return (column_headers, - (_get_item_properties(s, columns) for s in data)) + return ( + column_headers, + (_get_item_properties(s, columns) for s in data), + ) class SetNetworkQosRule(common.NeutronCommandWithExtraArgs): @@ -328,12 +376,12 @@ class SetNetworkQosRule(common.NeutronCommandWithExtraArgs): parser.add_argument( 'qos_policy', metavar='', - help=_('QoS policy that contains the rule (name or ID)') + help=_('QoS policy that contains the rule (name or ID)'), ) parser.add_argument( 'id', metavar='', - help=_('Network QoS rule to delete (ID)') + help=_('Network QoS rule to delete (ID)'), ) _add_rule_arguments(parser) return parser @@ -341,22 +389,28 @@ class SetNetworkQosRule(common.NeutronCommandWithExtraArgs): def take_action(self, parsed_args): network_client = self.app.client_manager.network try: - qos = network_client.find_qos_policy(parsed_args.qos_policy, - ignore_missing=False) + qos = network_client.find_qos_policy( + parsed_args.qos_policy, ignore_missing=False + ) rule_type = _find_rule_type(qos, parsed_args.id) if not rule_type: raise Exception('Rule not found') attrs = _get_attrs(network_client, parsed_args) attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) qos_id = attrs.pop('qos_policy_id') - qos_rule = _rule_action_call(network_client, ACTION_FIND, - rule_type)(attrs.pop('id'), qos_id) + qos_rule = _rule_action_call( + network_client, ACTION_FIND, rule_type + )(attrs.pop('id'), qos_id) _rule_action_call(network_client, ACTION_SET, rule_type)( - qos_rule, qos_id, **attrs) + qos_rule, qos_id, **attrs + ) except Exception as e: - msg = (_('Failed to set Network QoS rule ID "%(rule)s": %(e)s') % - {'rule': parsed_args.id, 'e': e}) + msg = _('Failed to set Network QoS rule ID "%(rule)s": %(e)s') % { + 'rule': parsed_args.id, + 'e': e, + } raise exceptions.CommandError(msg) @@ -368,12 +422,12 @@ class ShowNetworkQosRule(command.ShowOne): parser.add_argument( 'qos_policy', metavar='', - help=_('QoS policy that contains the rule (name or ID)') + help=_('QoS policy that contains the rule (name or ID)'), ) parser.add_argument( 'id', metavar='', - help=_('Network QoS rule to delete (ID)') + help=_('Network QoS rule to delete (ID)'), ) return parser @@ -381,16 +435,20 @@ class ShowNetworkQosRule(command.ShowOne): network_client = self.app.client_manager.network rule_id = parsed_args.id try: - qos = network_client.find_qos_policy(parsed_args.qos_policy, - ignore_missing=False) + qos = network_client.find_qos_policy( + parsed_args.qos_policy, ignore_missing=False + ) rule_type = _find_rule_type(qos, rule_id) if not rule_type: raise Exception('Rule not found') obj = _rule_action_call(network_client, ACTION_SHOW, rule_type)( - rule_id, qos.id) + rule_id, qos.id + ) except Exception as e: - msg = (_('Failed to set Network QoS rule ID "%(rule)s": %(e)s') % - {'rule': rule_id, 'e': e}) + msg = _('Failed to set Network QoS rule ID "%(rule)s": %(e)s') % { + 'rule': rule_id, + 'e': e, + } raise exceptions.CommandError(msg) display_columns, columns = _get_columns(obj) data = utils.get_item_properties(obj, columns) diff --git a/openstackclient/network/v2/network_qos_rule_type.py b/openstackclient/network/v2/network_qos_rule_type.py index 3f4f6a198b..24702070b7 100644 --- a/openstackclient/network/v2/network_qos_rule_type.py +++ b/openstackclient/network/v2/network_qos_rule_type.py @@ -26,7 +26,8 @@ def _get_columns(item): } hidden_columns = ["id", "location", "name", 'tenant_id'] return utils.get_osc_show_columns_for_sdk_resource( - item, column_map, hidden_columns) + item, column_map, hidden_columns + ) class ListNetworkQosRuleType(command.Lister): @@ -38,25 +39,25 @@ class ListNetworkQosRuleType(command.Lister): supported.add_argument( '--all-supported', action='store_true', - help=_("List all the QoS rule types supported by any loaded " - "mechanism drivers (the union of all sets of supported " - "rules)") + help=_( + "List all the QoS rule types supported by any loaded " + "mechanism drivers (the union of all sets of supported " + "rules)" + ), ) supported.add_argument( '--all-rules', action='store_true', - help=_("List all QoS rule types implemented in Neutron QoS driver") + help=_( + "List all QoS rule types implemented in Neutron QoS driver" + ), ) return parser def take_action(self, parsed_args): client = self.app.client_manager.network - columns = ( - 'type', - ) - column_headers = ( - 'Type', - ) + columns = ('type',) + column_headers = ('Type',) args = {} if parsed_args.all_supported: @@ -65,10 +66,17 @@ class ListNetworkQosRuleType(command.Lister): args['all_rules'] = True data = client.qos_rule_types(**args) - return (column_headers, - (utils.get_item_properties( - s, columns, formatters={}, - ) for s in data)) + return ( + column_headers, + ( + utils.get_item_properties( + s, + columns, + formatters={}, + ) + for s in data + ), + ) class ShowNetworkQosRuleType(command.ShowOne): @@ -79,7 +87,7 @@ class ShowNetworkQosRuleType(command.ShowOne): parser.add_argument( 'rule_type', metavar="", - help=_("Name of QoS rule type") + help=_("Name of QoS rule type"), ) return parser diff --git a/openstackclient/network/v2/network_rbac.py b/openstackclient/network/v2/network_rbac.py index fa4fca7c40..cb28ea3b2c 100644 --- a/openstackclient/network/v2/network_rbac.py +++ b/openstackclient/network/v2/network_rbac.py @@ -32,9 +32,7 @@ def _get_columns(item): } hidden_columns = ['location', 'name', 'tenant_id'] return utils.get_osc_show_columns_for_sdk_resource( - item, - column_map, - hidden_columns + item, column_map, hidden_columns ) @@ -46,27 +44,28 @@ def _get_attrs(client_manager, parsed_args): network_client = client_manager.network if parsed_args.type == 'network': object_id = network_client.find_network( - parsed_args.rbac_object, ignore_missing=False).id + parsed_args.rbac_object, ignore_missing=False + ).id if parsed_args.type == 'qos_policy': object_id = network_client.find_qos_policy( - parsed_args.rbac_object, - ignore_missing=False).id + parsed_args.rbac_object, ignore_missing=False + ).id if parsed_args.type == 'security_group': object_id = network_client.find_security_group( - parsed_args.rbac_object, - ignore_missing=False).id + parsed_args.rbac_object, ignore_missing=False + ).id if parsed_args.type == 'address_scope': object_id = network_client.find_address_scope( - parsed_args.rbac_object, - ignore_missing=False).id + parsed_args.rbac_object, ignore_missing=False + ).id if parsed_args.type == 'subnetpool': object_id = network_client.find_subnet_pool( - parsed_args.rbac_object, - ignore_missing=False).id + parsed_args.rbac_object, ignore_missing=False + ).id if parsed_args.type == 'address_group': object_id = network_client.find_address_group( - parsed_args.rbac_object, - ignore_missing=False).id + parsed_args.rbac_object, ignore_missing=False + ).id attrs['object_id'] = object_id @@ -101,51 +100,68 @@ class CreateNetworkRBAC(command.ShowOne, common.NeutronCommandWithExtraArgs): parser.add_argument( 'rbac_object', metavar="", - help=_("The object to which this RBAC policy affects (name or ID)") + help=_( + "The object to which this RBAC policy affects (name or ID)" + ), ) parser.add_argument( '--type', metavar="", required=True, - choices=['address_group', 'address_scope', 'security_group', - 'subnetpool', 'qos_policy', 'network'], - help=_('Type of the object that RBAC policy ' - 'affects ("address_group", "address_scope", ' - '"security_group", "subnetpool", "qos_policy" or ' - '"network")') + choices=[ + 'address_group', + 'address_scope', + 'security_group', + 'subnetpool', + 'qos_policy', + 'network', + ], + help=_( + 'Type of the object that RBAC policy ' + 'affects ("address_group", "address_scope", ' + '"security_group", "subnetpool", "qos_policy" or ' + '"network")' + ), ) parser.add_argument( '--action', metavar="", required=True, choices=['access_as_external', 'access_as_shared'], - help=_('Action for the RBAC policy ' - '("access_as_external" or "access_as_shared")') + help=_( + 'Action for the RBAC policy ' + '("access_as_external" or "access_as_shared")' + ), ) target_project_group = parser.add_mutually_exclusive_group( - required=True) + required=True + ) target_project_group.add_argument( '--target-project', metavar="", - help=_('The project to which the RBAC policy ' - 'will be enforced (name or ID)') + help=_( + 'The project to which the RBAC policy ' + 'will be enforced (name or ID)' + ), ) target_project_group.add_argument( '--target-all-projects', action='store_true', - help=_('Allow creating RBAC policy for all projects.') + help=_('Allow creating RBAC policy for all projects.'), ) parser.add_argument( '--target-project-domain', metavar='', - help=_('Domain the target project belongs to (name or ID). ' - 'This can be used in case collisions between project names ' - 'exist.'), + help=_( + 'Domain the target project belongs to (name or ID). ' + 'This can be used in case collisions between project names ' + 'exist.' + ), ) parser.add_argument( '--project', metavar="", - help=_('The owner project (name or ID)') + help=_('The owner project (name or ID)'), ) identity_common.add_project_domain_option_to_parser(parser) return parser @@ -154,7 +170,8 @@ class CreateNetworkRBAC(command.ShowOne, common.NeutronCommandWithExtraArgs): client = self.app.client_manager.network attrs = _get_attrs(self.app.client_manager, parsed_args) attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) obj = client.create_rbac_policy(**attrs) display_columns, columns = _get_columns(obj) data = utils.get_item_properties(obj, columns) @@ -170,7 +187,7 @@ class DeleteNetworkRBAC(command.Command): 'rbac_policy', metavar="", nargs='+', - help=_("RBAC policy(s) to delete (ID only)") + help=_("RBAC policy(s) to delete (ID only)"), ) return parser @@ -184,14 +201,19 @@ class DeleteNetworkRBAC(command.Command): client.delete_rbac_policy(obj) except Exception as e: result += 1 - LOG.error(_("Failed to delete RBAC policy with " - "ID '%(rbac)s': %(e)s"), - {'rbac': rbac, 'e': e}) + LOG.error( + _( + "Failed to delete RBAC policy with " + "ID '%(rbac)s': %(e)s" + ), + {'rbac': rbac, 'e': e}, + ) if result > 0: total = len(parsed_args.rbac_policy) - msg = (_("%(result)s of %(total)s RBAC policies failed " - "to delete.") % {'result': result, 'total': total}) + msg = _( + "%(result)s of %(total)s RBAC policies failed " "to delete." + ) % {'result': result, 'total': total} raise exceptions.CommandError(msg) @@ -203,30 +225,40 @@ class ListNetworkRBAC(command.Lister): parser.add_argument( '--type', metavar='', - choices=['address_group', 'address_scope', 'security_group', - 'subnetpool', 'qos_policy', 'network'], - help=_('List network RBAC policies according to ' - 'given object type ("address_group", "address_scope", ' - '"security_group", "subnetpool", "qos_policy" or ' - '"network")') + choices=[ + 'address_group', + 'address_scope', + 'security_group', + 'subnetpool', + 'qos_policy', + 'network', + ], + help=_( + 'List network RBAC policies according to ' + 'given object type ("address_group", "address_scope", ' + '"security_group", "subnetpool", "qos_policy" or ' + '"network")' + ), ) parser.add_argument( '--action', metavar='', choices=['access_as_external', 'access_as_shared'], - help=_('List network RBAC policies according to given ' - 'action ("access_as_external" or "access_as_shared")') + help=_( + 'List network RBAC policies according to given ' + 'action ("access_as_external" or "access_as_shared")' + ), ) parser.add_argument( '--target-project', metavar='', - help=_('List network RBAC policies for a specific target project') + help=_('List network RBAC policies for a specific target project'), ) parser.add_argument( '--long', action='store_true', default=False, - help=_("List additional fields in output") + help=_("List additional fields in output"), ) return parser @@ -265,10 +297,16 @@ class ListNetworkRBAC(command.Lister): data = client.rbac_policies(**query) - return (column_headers, - (utils.get_item_properties( - s, columns, - ) for s in data)) + return ( + column_headers, + ( + utils.get_item_properties( + s, + columns, + ) + for s in data + ), + ) # TODO(abhiraut): Use the SDK resource mapped attribute names once the @@ -281,27 +319,32 @@ class SetNetworkRBAC(common.NeutronCommandWithExtraArgs): parser.add_argument( 'rbac_policy', metavar="", - help=_("RBAC policy to be modified (ID only)") + help=_("RBAC policy to be modified (ID only)"), ) parser.add_argument( '--target-project', metavar="", - help=_('The project to which the RBAC policy ' - 'will be enforced (name or ID)') + help=_( + 'The project to which the RBAC policy ' + 'will be enforced (name or ID)' + ), ) parser.add_argument( '--target-project-domain', metavar='', - help=_('Domain the target project belongs to (name or ID). ' - 'This can be used in case collisions between project names ' - 'exist.'), + help=_( + 'Domain the target project belongs to (name or ID). ' + 'This can be used in case collisions between project names ' + 'exist.' + ), ) return parser def take_action(self, parsed_args): client = self.app.client_manager.network - obj = client.find_rbac_policy(parsed_args.rbac_policy, - ignore_missing=False) + obj = client.find_rbac_policy( + parsed_args.rbac_policy, ignore_missing=False + ) attrs = {} if parsed_args.target_project: identity_client = self.app.client_manager.identity @@ -312,7 +355,8 @@ class SetNetworkRBAC(common.NeutronCommandWithExtraArgs): ).id attrs['target_tenant'] = project_id attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) client.update_rbac_policy(obj, **attrs) @@ -324,14 +368,15 @@ class ShowNetworkRBAC(command.ShowOne): parser.add_argument( 'rbac_policy', metavar="", - help=_("RBAC policy (ID only)") + help=_("RBAC policy (ID only)"), ) return parser def take_action(self, parsed_args): client = self.app.client_manager.network - obj = client.find_rbac_policy(parsed_args.rbac_policy, - ignore_missing=False) + obj = client.find_rbac_policy( + parsed_args.rbac_policy, ignore_missing=False + ) display_columns, columns = _get_columns(obj) data = utils.get_item_properties(obj, columns) return display_columns, data diff --git a/openstackclient/network/v2/network_segment.py b/openstackclient/network/v2/network_segment.py index c6c88e30c9..a17f37c03e 100644 --- a/openstackclient/network/v2/network_segment.py +++ b/openstackclient/network/v2/network_segment.py @@ -29,22 +29,19 @@ def _get_columns(item): column_map = {} hidden_columns = ['location', 'tenant_id'] return utils.get_osc_show_columns_for_sdk_resource( - item, - column_map, - hidden_columns + item, column_map, hidden_columns ) -class CreateNetworkSegment(command.ShowOne, - common.NeutronCommandWithExtraArgs): +class CreateNetworkSegment( + command.ShowOne, common.NeutronCommandWithExtraArgs +): _description = _("Create new network segment") def get_parser(self, prog_name): parser = super(CreateNetworkSegment, self).get_parser(prog_name) parser.add_argument( - 'name', - metavar='', - help=_('New network segment name') + 'name', metavar='', help=_('New network segment name') ) parser.add_argument( '--description', @@ -60,10 +57,12 @@ class CreateNetworkSegment(command.ShowOne, '--segment', metavar='', type=int, - help=_('Segment identifier for this network segment which is ' - 'based on the network type, VLAN ID for vlan network ' - 'type and tunnel ID for geneve, gre and vxlan network ' - 'types'), + help=_( + 'Segment identifier for this network segment which is ' + 'based on the network type, VLAN ID for vlan network ' + 'type and tunnel ID for geneve, gre and vxlan network ' + 'types' + ), ) parser.add_argument( '--network', @@ -76,8 +75,10 @@ class CreateNetworkSegment(command.ShowOne, metavar='', choices=['flat', 'geneve', 'gre', 'local', 'vlan', 'vxlan'], required=True, - help=_('Network type of this network segment ' - '(flat, geneve, gre, local, vlan or vxlan)'), + help=_( + 'Network type of this network segment ' + '(flat, geneve, gre, local, vlan or vxlan)' + ), ) return parser @@ -85,8 +86,9 @@ class CreateNetworkSegment(command.ShowOne, client = self.app.client_manager.network attrs = {} attrs['name'] = parsed_args.name - attrs['network_id'] = client.find_network(parsed_args.network, - ignore_missing=False).id + attrs['network_id'] = client.find_network( + parsed_args.network, ignore_missing=False + ).id attrs['network_type'] = parsed_args.network_type if parsed_args.description is not None: attrs['description'] = parsed_args.description @@ -95,7 +97,8 @@ class CreateNetworkSegment(command.ShowOne, if parsed_args.segment is not None: attrs['segmentation_id'] = parsed_args.segment attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) obj = client.create_segment(**attrs) display_columns, columns = _get_columns(obj) data = utils.get_item_properties(obj, columns) @@ -121,19 +124,25 @@ class DeleteNetworkSegment(command.Command): result = 0 for network_segment in parsed_args.network_segment: try: - obj = client.find_segment(network_segment, - ignore_missing=False) + obj = client.find_segment( + network_segment, ignore_missing=False + ) client.delete_segment(obj) except Exception as e: result += 1 - LOG.error(_("Failed to delete network segment with " - "ID '%(network_segment)s': %(e)s"), - {'network_segment': network_segment, 'e': e}) + LOG.error( + _( + "Failed to delete network segment with " + "ID '%(network_segment)s': %(e)s" + ), + {'network_segment': network_segment, 'e': e}, + ) if result > 0: total = len(parsed_args.network_segment) - msg = (_("%(result)s of %(total)s network segments failed " - "to delete.") % {'result': result, 'total': total}) + msg = _( + "%(result)s of %(total)s network segments failed " "to delete." + ) % {'result': result, 'total': total} raise exceptions.CommandError(msg) @@ -151,8 +160,10 @@ class ListNetworkSegment(command.Lister): parser.add_argument( '--network', metavar='', - help=_('List network segments that belong to this ' - 'network (name or ID)'), + help=_( + 'List network segments that belong to this ' + 'network (name or ID)' + ), ) return parser @@ -162,8 +173,7 @@ class ListNetworkSegment(command.Lister): filters = {} if parsed_args.network: _network = network_client.find_network( - parsed_args.network, - ignore_missing=False + parsed_args.network, ignore_missing=False ) filters = {'network_id': _network.id} data = network_client.segments(**filters) @@ -183,18 +193,20 @@ class ListNetworkSegment(command.Lister): 'segmentation_id', ) if parsed_args.long: - headers = headers + ( - 'Physical Network', - ) - columns = columns + ( - 'physical_network', - ) + headers = headers + ('Physical Network',) + columns = columns + ('physical_network',) - return (headers, - (utils.get_item_properties( - s, columns, + return ( + headers, + ( + utils.get_item_properties( + s, + columns, formatters={}, - ) for s in data)) + ) + for s in data + ), + ) class SetNetworkSegment(common.NeutronCommandWithExtraArgs): @@ -221,15 +233,17 @@ class SetNetworkSegment(common.NeutronCommandWithExtraArgs): def take_action(self, parsed_args): client = self.app.client_manager.network - obj = client.find_segment(parsed_args.network_segment, - ignore_missing=False) + obj = client.find_segment( + parsed_args.network_segment, ignore_missing=False + ) attrs = {} if parsed_args.description is not None: attrs['description'] = parsed_args.description if parsed_args.name is not None: attrs['name'] = parsed_args.name attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) client.update_segment(obj, **attrs) @@ -248,8 +262,7 @@ class ShowNetworkSegment(command.ShowOne): def take_action(self, parsed_args): client = self.app.client_manager.network obj = client.find_segment( - parsed_args.network_segment, - ignore_missing=False + parsed_args.network_segment, ignore_missing=False ) display_columns, columns = _get_columns(obj) data = utils.get_item_properties(obj, columns) diff --git a/openstackclient/network/v2/network_segment_range.py b/openstackclient/network/v2/network_segment_range.py index 1291d9d815..96a03cf6c1 100644 --- a/openstackclient/network/v2/network_segment_range.py +++ b/openstackclient/network/v2/network_segment_range.py @@ -35,9 +35,7 @@ def _get_columns(item): column_map = {} hidden_columns = ['location', 'tenant_id'] return utils.get_osc_show_columns_for_sdk_resource( - item, - column_map, - hidden_columns + item, column_map, hidden_columns ) @@ -45,8 +43,9 @@ def _get_ranges(item): item = sorted([int(i) for i in item]) for a, b in itertools.groupby(enumerate(item), lambda xy: xy[1] - xy[0]): b = list(b) - yield "%s-%s" % (b[0][1], b[-1][1]) if b[0][1] != b[-1][1] else \ - str(b[0][1]) + yield "%s-%s" % (b[0][1], b[-1][1]) if b[0][1] != b[-1][1] else str( + b[0][1] + ) def _hack_tuple_value_update_by_index(tup, index, value): @@ -73,7 +72,8 @@ def _exchange_dict_keys_with_values(orig_dict): def _update_available_from_props(columns, props): index_available = columns.index('available') props = _hack_tuple_value_update_by_index( - props, index_available, list(_get_ranges(props[index_available]))) + props, index_available, list(_get_ranges(props[index_available])) + ) return props @@ -82,8 +82,7 @@ def _update_used_from_props(columns, props): updated_used = _exchange_dict_keys_with_values(props[index_used]) for k, v in updated_used.items(): updated_used[k] = list(_get_ranges(v)) - props = _hack_tuple_value_update_by_index( - props, index_used, updated_used) + props = _hack_tuple_value_update_by_index(props, index_used, updated_used) return props @@ -93,8 +92,9 @@ def _update_additional_fields_from_props(columns, props): return props -class CreateNetworkSegmentRange(command.ShowOne, - common.NeutronCommandWithExtraArgs): +class CreateNetworkSegmentRange( + command.ShowOne, common.NeutronCommandWithExtraArgs +): _description = _("Create new network segment range") def get_parser(self, prog_name): @@ -104,8 +104,10 @@ class CreateNetworkSegmentRange(command.ShowOne, "--private", dest="private", action="store_true", - help=_('Network segment range is assigned specifically to the ' - 'project'), + help=_( + 'Network segment range is assigned specifically to the ' + 'project' + ), ) shared_group.add_argument( "--shared", @@ -116,13 +118,15 @@ class CreateNetworkSegmentRange(command.ShowOne, parser.add_argument( 'name', metavar='', - help=_('Name of new network segment range') + help=_('Name of new network segment range'), ) parser.add_argument( '--project', metavar='', - help=_('Network segment range owner (name or ID). Optional when ' - 'the segment range is shared'), + help=_( + 'Network segment range owner (name or ID). Optional when ' + 'the segment range is shared' + ), ) identity_common.add_project_domain_option_to_parser(parser) parser.add_argument( @@ -130,8 +134,10 @@ class CreateNetworkSegmentRange(command.ShowOne, metavar='', choices=['geneve', 'gre', 'vlan', 'vxlan'], required=True, - help=_('Network type of this network segment range ' - '(geneve, gre, vlan or vxlan)'), + help=_( + 'Network type of this network segment range ' + '(geneve, gre, vlan or vxlan)' + ), ) parser.add_argument( '--physical-network', @@ -143,20 +149,24 @@ class CreateNetworkSegmentRange(command.ShowOne, metavar='', type=int, required=True, - help=_('Minimum segment identifier for this network segment ' - 'range which is based on the network type, VLAN ID for ' - 'vlan network type and tunnel ID for geneve, gre and vxlan ' - 'network types'), + help=_( + 'Minimum segment identifier for this network segment ' + 'range which is based on the network type, VLAN ID for ' + 'vlan network type and tunnel ID for geneve, gre and vxlan ' + 'network types' + ), ) parser.add_argument( '--maximum', metavar='', type=int, required=True, - help=_('Maximum segment identifier for this network segment ' - 'range which is based on the network type, VLAN ID for ' - 'vlan network type and tunnel ID for geneve, gre and vxlan ' - 'network types'), + help=_( + 'Maximum segment identifier for this network segment ' + 'range which is based on the network type, VLAN ID for ' + 'vlan network type and tunnel ID for geneve, gre and vxlan ' + 'network types' + ), ) return parser @@ -165,11 +175,14 @@ class CreateNetworkSegmentRange(command.ShowOne, network_client = self.app.client_manager.network try: # Verify that the extension exists. - network_client.find_extension('network-segment-range', - ignore_missing=False) + network_client.find_extension( + 'network-segment-range', ignore_missing=False + ) except Exception as e: - msg = (_('Network segment range create not supported by ' - 'Network API: %(e)s') % {'e': e}) + msg = _( + 'Network segment range create not supported by ' + 'Network API: %(e)s' + ) % {'e': e} raise exceptions.CommandError(msg) identity_client = self.app.client_manager.identity @@ -178,10 +191,14 @@ class CreateNetworkSegmentRange(command.ShowOne, msg = _("--project is only allowed with --private") raise exceptions.CommandError(msg) - if (parsed_args.network_type.lower() != 'vlan' and - parsed_args.physical_network): - msg = _("--physical-network is only allowed with --network-type " - "vlan") + if ( + parsed_args.network_type.lower() != 'vlan' + and parsed_args.physical_network + ): + msg = _( + "--physical-network is only allowed with --network-type " + "vlan" + ) raise exceptions.CommandError(msg) attrs = {} @@ -205,8 +222,13 @@ class CreateNetworkSegmentRange(command.ShowOne, if project_id: attrs['project_id'] = project_id else: - msg = (_("Failed to create the network segment range for " - "project %(project_id)s") % parsed_args.project_id) + msg = ( + _( + "Failed to create the network segment range for " + "project %(project_id)s" + ) + % parsed_args.project_id + ) raise exceptions.CommandError(msg) elif not attrs['shared']: # default to the current project if no project specified and shared @@ -218,7 +240,8 @@ class CreateNetworkSegmentRange(command.ShowOne, attrs['physical_network'] = parsed_args.physical_network attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) obj = network_client.create_network_segment_range(**attrs) display_columns, columns = _get_columns(obj) @@ -244,30 +267,39 @@ class DeleteNetworkSegmentRange(command.Command): network_client = self.app.client_manager.network try: # Verify that the extension exists. - network_client.find_extension('network-segment-range', - ignore_missing=False) + network_client.find_extension( + 'network-segment-range', ignore_missing=False + ) except Exception as e: - msg = (_('Network segment range delete not supported by ' - 'Network API: %(e)s') % {'e': e}) + msg = _( + 'Network segment range delete not supported by ' + 'Network API: %(e)s' + ) % {'e': e} raise exceptions.CommandError(msg) result = 0 for network_segment_range in parsed_args.network_segment_range: try: obj = network_client.find_network_segment_range( - network_segment_range, ignore_missing=False) + network_segment_range, ignore_missing=False + ) network_client.delete_network_segment_range(obj) except Exception as e: result += 1 - LOG.error(_("Failed to delete network segment range with " - "ID '%(network_segment_range)s': %(e)s"), - {'network_segment_range': network_segment_range, - 'e': e}) + LOG.error( + _( + "Failed to delete network segment range with " + "ID '%(network_segment_range)s': %(e)s" + ), + {'network_segment_range': network_segment_range, 'e': e}, + ) if result > 0: total = len(parsed_args.network_segment_range) - msg = (_("%(result)s of %(total)s network segment ranges failed " - "to delete.") % {'result': result, 'total': total}) + msg = _( + "%(result)s of %(total)s network segment ranges failed " + "to delete." + ) % {'result': result, 'total': total} raise exceptions.CommandError(msg) @@ -290,8 +322,9 @@ class ListNetworkSegmentRange(command.Lister): used_group.add_argument( '--unused', action='store_true', - help=_('List network segment ranges that have segments ' - 'not in use'), + help=_( + 'List network segment ranges that have segments ' 'not in use' + ), ) available_group = parser.add_mutually_exclusive_group() available_group.add_argument( @@ -310,11 +343,14 @@ class ListNetworkSegmentRange(command.Lister): network_client = self.app.client_manager.network try: # Verify that the extension exists. - network_client.find_extension('network-segment-range', - ignore_missing=False) + network_client.find_extension( + 'network-segment-range', ignore_missing=False + ) except Exception as e: - msg = (_('Network segment ranges list not supported by ' - 'Network API: %(e)s') % {'e': e}) + msg = _( + 'Network segment ranges list not supported by ' + 'Network API: %(e)s' + ) % {'e': e} raise exceptions.CommandError(msg) filters = {} @@ -329,7 +365,7 @@ class ListNetworkSegmentRange(command.Lister): 'Network Type', 'Physical Network', 'Minimum ID', - 'Maximum ID' + 'Maximum ID', ) columns = ( 'id', @@ -342,8 +378,12 @@ class ListNetworkSegmentRange(command.Lister): 'minimum', 'maximum', ) - if parsed_args.available or parsed_args.unavailable or \ - parsed_args.used or parsed_args.unused: + if ( + parsed_args.available + or parsed_args.unavailable + or parsed_args.used + or parsed_args.unused + ): # If one of `--available`, `--unavailable`, `--used`, # `--unused` is specified, we assume that additional fields # should be listed in output. @@ -361,13 +401,16 @@ class ListNetworkSegmentRange(command.Lister): display_props = tuple() for s in data: props = utils.get_item_properties(s, columns) - if parsed_args.available and \ - _is_prop_empty(columns, props, 'available') or \ - parsed_args.unavailable and \ - not _is_prop_empty(columns, props, 'available') or \ - parsed_args.used and _is_prop_empty(columns, props, 'used') or \ - parsed_args.unused and \ - not _is_prop_empty(columns, props, 'used'): + if ( + parsed_args.available + and _is_prop_empty(columns, props, 'available') + or parsed_args.unavailable + and not _is_prop_empty(columns, props, 'available') + or parsed_args.used + and _is_prop_empty(columns, props, 'used') + or parsed_args.unused + and not _is_prop_empty(columns, props, 'used') + ): continue if parsed_args.long: props = _update_additional_fields_from_props(columns, props) @@ -409,20 +452,25 @@ class SetNetworkSegmentRange(common.NeutronCommandWithExtraArgs): network_client = self.app.client_manager.network try: # Verify that the extension exists. - network_client.find_extension('network-segment-range', - ignore_missing=False) + network_client.find_extension( + 'network-segment-range', ignore_missing=False + ) except Exception as e: - msg = (_('Network segment range set not supported by ' - 'Network API: %(e)s') % {'e': e}) + msg = _( + 'Network segment range set not supported by ' + 'Network API: %(e)s' + ) % {'e': e} raise exceptions.CommandError(msg) - if (parsed_args.minimum and not parsed_args.maximum) or \ - (parsed_args.maximum and not parsed_args.minimum): + if (parsed_args.minimum and not parsed_args.maximum) or ( + parsed_args.maximum and not parsed_args.minimum + ): msg = _("--minimum and --maximum are both required") raise exceptions.CommandError(msg) obj = network_client.find_network_segment_range( - parsed_args.network_segment_range, ignore_missing=False) + parsed_args.network_segment_range, ignore_missing=False + ) attrs = {} if parsed_args.name: attrs['name'] = parsed_args.name @@ -431,7 +479,8 @@ class SetNetworkSegmentRange(common.NeutronCommandWithExtraArgs): if parsed_args.maximum: attrs['maximum'] = parsed_args.maximum attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) network_client.update_network_segment_range(obj, **attrs) @@ -451,16 +500,18 @@ class ShowNetworkSegmentRange(command.ShowOne): network_client = self.app.client_manager.network try: # Verify that the extension exists. - network_client.find_extension('network-segment-range', - ignore_missing=False) + network_client.find_extension( + 'network-segment-range', ignore_missing=False + ) except Exception as e: - msg = (_('Network segment range show not supported by ' - 'Network API: %(e)s') % {'e': e}) + msg = _( + 'Network segment range show not supported by ' + 'Network API: %(e)s' + ) % {'e': e} raise exceptions.CommandError(msg) obj = network_client.find_network_segment_range( - parsed_args.network_segment_range, - ignore_missing=False + parsed_args.network_segment_range, ignore_missing=False ) display_columns, columns = _get_columns(obj) data = utils.get_item_properties(obj, columns) diff --git a/openstackclient/network/v2/network_trunk.py b/openstackclient/network/v2/network_trunk.py index c5f629018e..6050ba6575 100644 --- a/openstackclient/network/v2/network_trunk.py +++ b/openstackclient/network/v2/network_trunk.py @@ -45,55 +45,54 @@ class CreateNetworkTrunk(command.ShowOne): def get_parser(self, prog_name): parser = super(CreateNetworkTrunk, self).get_parser(prog_name) parser.add_argument( - 'name', - metavar='', - help=_("Name of the trunk to create") + 'name', metavar='', help=_("Name of the trunk to create") ) parser.add_argument( '--description', metavar='', - help=_("A description of the trunk") + help=_("A description of the trunk"), ) parser.add_argument( '--parent-port', metavar='', required=True, - help=_("Parent port belonging to this trunk (name or ID)") + help=_("Parent port belonging to this trunk (name or ID)"), ) parser.add_argument( '--subport', metavar='', - action=parseractions.MultiKeyValueAction, dest='add_subports', + action=parseractions.MultiKeyValueAction, + dest='add_subports', optional_keys=['segmentation-id', 'segmentation-type'], required_keys=['port'], - help=_("Subport to add. Subport is of form " - "\'port=,segmentation-type=," - "segmentation-id=\' (--subport) option " - "can be repeated") + help=_( + "Subport to add. Subport is of form " + "\'port=,segmentation-type=," + "segmentation-id=\' (--subport) option " + "can be repeated" + ), ) admin_group = parser.add_mutually_exclusive_group() admin_group.add_argument( '--enable', action='store_true', default=True, - help=_("Enable trunk (default)") + help=_("Enable trunk (default)"), ) admin_group.add_argument( - '--disable', - action='store_true', - help=_("Disable trunk") + '--disable', action='store_true', help=_("Disable trunk") ) identity_utils.add_project_owner_option_to_parser(parser) return parser def take_action(self, parsed_args): client = self.app.client_manager.network - attrs = _get_attrs_for_trunk(self.app.client_manager, - parsed_args) + attrs = _get_attrs_for_trunk(self.app.client_manager, parsed_args) obj = client.create_trunk(**attrs) display_columns, columns = _get_columns(obj) - data = osc_utils.get_dict_properties(obj, columns, - formatters=_formatters) + data = osc_utils.get_dict_properties( + obj, columns, formatters=_formatters + ) return display_columns, data @@ -106,7 +105,7 @@ class DeleteNetworkTrunk(command.Command): 'trunk', metavar="", nargs="+", - help=_("Trunk(s) to delete (name or ID)") + help=_("Trunk(s) to delete (name or ID)"), ) return parser @@ -119,13 +118,19 @@ class DeleteNetworkTrunk(command.Command): client.delete_trunk(trunk_id) except Exception as e: result += 1 - LOG.error(_("Failed to delete trunk with name " - "or ID '%(trunk)s': %(e)s"), - {'trunk': trunk, 'e': e}) + LOG.error( + _( + "Failed to delete trunk with name " + "or ID '%(trunk)s': %(e)s" + ), + {'trunk': trunk, 'e': e}, + ) if result > 0: total = len(parsed_args.trunk) - msg = (_("%(result)s of %(total)s trunks failed " - "to delete.") % {'result': result, 'total': total}) + msg = _("%(result)s of %(total)s trunks failed " "to delete.") % { + 'result': result, + 'total': total, + } raise exceptions.CommandError(msg) @@ -138,25 +143,15 @@ class ListNetworkTrunk(command.Lister): '--long', action='store_true', default=False, - help=_("List additional fields in output") + help=_("List additional fields in output"), ) return parser def take_action(self, parsed_args): client = self.app.client_manager.network data = client.trunks() - headers = ( - 'ID', - 'Name', - 'Parent Port', - 'Description' - ) - columns = ( - 'id', - 'name', - 'port_id', - 'description' - ) + headers = ('ID', 'Name', 'Parent Port', 'Description') + columns = ('id', 'name', 'port_id', 'description') if parsed_args.long: headers += ( 'Status', @@ -164,17 +159,18 @@ class ListNetworkTrunk(command.Lister): 'Created At', 'Updated At', ) - columns += ( - 'status', - 'admin_state_up', - 'created_at', - 'updated_at' - ) - return (headers, - (osc_utils.get_item_properties( - s, columns, + columns += ('status', 'admin_state_up', 'created_at', 'updated_at') + return ( + headers, + ( + osc_utils.get_item_properties( + s, + columns, formatters=_formatters, - ) for s in data)) + ) + for s in data + ), + ) class SetNetworkTrunk(command.Command): @@ -183,41 +179,36 @@ class SetNetworkTrunk(command.Command): def get_parser(self, prog_name): parser = super(SetNetworkTrunk, self).get_parser(prog_name) parser.add_argument( - 'trunk', - metavar="", - help=_("Trunk to modify (name or ID)") + 'trunk', metavar="", help=_("Trunk to modify (name or ID)") ) parser.add_argument( - '--name', - metavar="", - help=_("Set trunk name") + '--name', metavar="", help=_("Set trunk name") ) parser.add_argument( '--description', metavar='', - help=_("A description of the trunk") + help=_("A description of the trunk"), ) parser.add_argument( '--subport', metavar='', - action=parseractions.MultiKeyValueAction, dest='set_subports', + action=parseractions.MultiKeyValueAction, + dest='set_subports', optional_keys=['segmentation-id', 'segmentation-type'], required_keys=['port'], - help=_("Subport to add. Subport is of form " - "\'port=,segmentation-type=" - ",segmentation-id=\' (--subport) option " - "can be repeated") + help=_( + "Subport to add. Subport is of form " + "\'port=,segmentation-type=" + ",segmentation-id=\' (--subport) option " + "can be repeated" + ), ) admin_group = parser.add_mutually_exclusive_group() admin_group.add_argument( - '--enable', - action='store_true', - help=_("Enable trunk") + '--enable', action='store_true', help=_("Enable trunk") ) admin_group.add_argument( - '--disable', - action='store_true', - help=_("Disable trunk") + '--disable', action='store_true', help=_("Disable trunk") ) return parser @@ -228,28 +219,32 @@ class SetNetworkTrunk(command.Command): try: client.update_trunk(trunk_id, **attrs) except Exception as e: - msg = (_("Failed to set trunk '%(t)s': %(e)s") - % {'t': parsed_args.trunk, 'e': e}) + msg = _("Failed to set trunk '%(t)s': %(e)s") % { + 't': parsed_args.trunk, + 'e': e, + } raise exceptions.CommandError(msg) if parsed_args.set_subports: - subport_attrs = _get_attrs_for_subports(self.app.client_manager, - parsed_args) + subport_attrs = _get_attrs_for_subports( + self.app.client_manager, parsed_args + ) try: client.add_trunk_subports(trunk_id, subport_attrs) except Exception as e: - msg = (_("Failed to add subports to trunk '%(t)s': %(e)s") - % {'t': parsed_args.trunk, 'e': e}) + msg = _("Failed to add subports to trunk '%(t)s': %(e)s") % { + 't': parsed_args.trunk, + 'e': e, + } raise exceptions.CommandError(msg) class ShowNetworkTrunk(command.ShowOne): """Show information of a given network trunk""" + def get_parser(self, prog_name): parser = super(ShowNetworkTrunk, self).get_parser(prog_name) parser.add_argument( - 'trunk', - metavar="", - help=_("Trunk to display (name or ID)") + 'trunk', metavar="", help=_("Trunk to display (name or ID)") ) return parser @@ -258,8 +253,9 @@ class ShowNetworkTrunk(command.ShowOne): trunk_id = client.find_trunk(parsed_args.trunk).id obj = client.get_trunk(trunk_id) display_columns, columns = _get_columns(obj) - data = osc_utils.get_dict_properties(obj, columns, - formatters=_formatters) + data = osc_utils.get_dict_properties( + obj, columns, formatters=_formatters + ) return display_columns, data @@ -272,7 +268,7 @@ class ListNetworkSubport(command.Lister): '--trunk', required=True, metavar="", - help=_("List subports belonging to this trunk (name or ID)") + help=_("List subports belonging to this trunk (name or ID)"), ) return parser @@ -282,10 +278,16 @@ class ListNetworkSubport(command.Lister): data = client.get_trunk_subports(trunk_id) headers = ('Port', 'Segmentation Type', 'Segmentation ID') columns = ('port_id', 'segmentation_type', 'segmentation_id') - return (headers, - (osc_utils.get_dict_properties( - s, columns, - ) for s in data[SUB_PORTS])) + return ( + headers, + ( + osc_utils.get_dict_properties( + s, + columns, + ) + for s in data[SUB_PORTS] + ), + ) class UnsetNetworkTrunk(command.Command): @@ -296,15 +298,18 @@ class UnsetNetworkTrunk(command.Command): parser.add_argument( 'trunk', metavar="", - help=_("Unset subports from this trunk (name or ID)") + help=_("Unset subports from this trunk (name or ID)"), ) parser.add_argument( '--subport', metavar="", required=True, - action='append', dest='unset_subports', - help=_("Subport to delete (name or ID of the port) " - "(--subport) option can be repeated") + action='append', + dest='unset_subports', + help=_( + "Subport to delete (name or ID of the port) " + "(--subport) option can be repeated" + ), ) return parser @@ -325,9 +330,7 @@ def _get_columns(item): column_map = {} hidden_columns = ['location', 'tenant_id'] return osc_utils.get_osc_show_columns_for_sdk_resource( - item, - column_map, - hidden_columns + item, column_map, hidden_columns ) @@ -342,12 +345,14 @@ def _get_attrs_for_trunk(client_manager, parsed_args): if parsed_args.disable: attrs['admin_state_up'] = False if 'parent_port' in parsed_args and parsed_args.parent_port is not None: - port_id = client_manager.network.find_port( - parsed_args.parent_port)['id'] + port_id = client_manager.network.find_port(parsed_args.parent_port)[ + 'id' + ] attrs['port_id'] = port_id if 'add_subports' in parsed_args and parsed_args.add_subports is not None: - attrs[SUB_PORTS] = _format_subports(client_manager, - parsed_args.add_subports) + attrs[SUB_PORTS] = _format_subports( + client_manager, parsed_args.add_subports + ) # "trunk set" command doesn't support setting project. if 'project' in parsed_args and parsed_args.project is not None: @@ -372,10 +377,13 @@ def _format_subports(client_manager, subports): if subport.get('segmentation-id'): try: subport_attrs['segmentation_id'] = int( - subport['segmentation-id']) + subport['segmentation-id'] + ) except ValueError: - msg = (_("Segmentation-id '%s' is not an integer") % - subport['segmentation-id']) + msg = ( + _("Segmentation-id '%s' is not an integer") + % subport['segmentation-id'] + ) raise exceptions.CommandError(msg) if subport.get('segmentation-type'): subport_attrs['segmentation_type'] = subport['segmentation-type'] @@ -386,10 +394,11 @@ def _format_subports(client_manager, subports): def _get_attrs_for_subports(client_manager, parsed_args): attrs = {} if 'set_subports' in parsed_args and parsed_args.set_subports is not None: - attrs = _format_subports(client_manager, - parsed_args.set_subports) - if ('unset_subports' in parsed_args and - parsed_args.unset_subports is not None): + attrs = _format_subports(client_manager, parsed_args.set_subports) + if ( + 'unset_subports' in parsed_args + and parsed_args.unset_subports is not None + ): subports_list = [] for subport in parsed_args.unset_subports: port_id = client_manager.network.find_port(subport)['id'] diff --git a/openstackclient/network/v2/port.py b/openstackclient/network/v2/port.py index 8bf14d6a73..814e82abc8 100644 --- a/openstackclient/network/v2/port.py +++ b/openstackclient/network/v2/port.py @@ -66,9 +66,7 @@ def _get_columns(item): } hidden_columns = ['location', 'tenant_id'] return utils.get_osc_show_columns_for_sdk_resource( - item, - column_map, - hidden_columns + item, column_map, hidden_columns ) @@ -79,7 +77,6 @@ class JSONKeyValueAction(argparse.Action): """ def __call__(self, parser, namespace, values, option_string=None): - # Make sure we have an empty dict rather than None if getattr(namespace, self.dest, None) is None: setattr(namespace, self.dest, {}) @@ -92,9 +89,11 @@ class JSONKeyValueAction(argparse.Action): if '=' in values: current_dest.update([values.split('=', 1)]) else: - msg = _("Expected '=' or JSON data for option " - "%(option)s, but encountered JSON parsing error: " - "%(error)s") % {"option": option_string, "error": e} + msg = _( + "Expected '=' or JSON data for option " + "%(option)s, but encountered JSON parsing error: " + "%(error)s" + ) % {"option": option_string, "error": e} raise argparse.ArgumentTypeError(msg) @@ -151,23 +150,33 @@ def _get_attrs(client_manager, parsed_args): if parsed_args.qos_policy: attrs['qos_policy_id'] = client_manager.network.find_qos_policy( - parsed_args.qos_policy, ignore_missing=False).id + parsed_args.qos_policy, ignore_missing=False + ).id - if ('enable_uplink_status_propagation' in parsed_args and - parsed_args.enable_uplink_status_propagation): + if ( + 'enable_uplink_status_propagation' in parsed_args + and parsed_args.enable_uplink_status_propagation + ): attrs['propagate_uplink_status'] = True - if ('disable_uplink_status_propagation' in parsed_args and - parsed_args.disable_uplink_status_propagation): + if ( + 'disable_uplink_status_propagation' in parsed_args + and parsed_args.disable_uplink_status_propagation + ): attrs['propagate_uplink_status'] = False - if ('numa_policy_required' in parsed_args and - parsed_args.numa_policy_required): + if ( + 'numa_policy_required' in parsed_args + and parsed_args.numa_policy_required + ): attrs['numa_affinity_policy'] = 'required' - elif ('numa_policy_preferred' in parsed_args and - parsed_args.numa_policy_preferred): + elif ( + 'numa_policy_preferred' in parsed_args + and parsed_args.numa_policy_preferred + ): attrs['numa_affinity_policy'] = 'preferred' - elif ('numa_policy_legacy' in parsed_args and - parsed_args.numa_policy_legacy): + elif ( + 'numa_policy_legacy' in parsed_args and parsed_args.numa_policy_legacy + ): attrs['numa_affinity_policy'] = 'legacy' if 'device_profile' in parsed_args and parsed_args.device_profile: @@ -191,8 +200,9 @@ def _prepare_fixed_ips(client_manager, parsed_args): if 'subnet' in ip_spec: subnet_name_id = ip_spec['subnet'] if subnet_name_id: - _subnet = client.find_subnet(subnet_name_id, - ignore_missing=False) + _subnet = client.find_subnet( + subnet_name_id, ignore_missing=False + ) ip_spec['subnet_id'] = _subnet.id del ip_spec['subnet'] @@ -220,8 +230,9 @@ def _prepare_filter_fixed_ips(client_manager, parsed_args): if 'subnet' in ip_spec: subnet_name_id = ip_spec['subnet'] if subnet_name_id: - _subnet = client.find_subnet(subnet_name_id, - ignore_missing=False) + _subnet = client.find_subnet( + subnet_name_id, ignore_missing=False + ) ips.append('subnet_id=%s' % _subnet.id) if 'ip-address' in ip_spec: @@ -236,30 +247,36 @@ def _add_updatable_args(parser): parser.add_argument( '--description', metavar='', - help=_("Description of this port") + help=_("Description of this port"), ) parser.add_argument( - '--device', - metavar='', - help=_("Port device ID") + '--device', metavar='', help=_("Port device ID") ) parser.add_argument( '--mac-address', metavar='', - help=_("MAC address of this port (admin only)") + help=_("MAC address of this port (admin only)"), ) parser.add_argument( '--device-owner', metavar='', - help=_("Device owner of this port. This is the entity that uses " - "the port (for example, network:dhcp).") + help=_( + "Device owner of this port. This is the entity that uses " + "the port (for example, network:dhcp)." + ), ) parser.add_argument( '--vnic-type', metavar='', choices=( - 'direct', 'direct-physical', 'macvtap', - 'normal', 'baremetal', 'virtio-forwarder', 'vdpa', 'remote-managed' + 'direct', + 'direct-physical', + 'macvtap', + 'normal', + 'baremetal', + 'virtio-forwarder', + 'vdpa', + 'remote-managed', ), help=_( "VNIC type for this port (direct | direct-physical | " @@ -271,35 +288,39 @@ def _add_updatable_args(parser): parser.add_argument( '--host', metavar='', - help=_("Allocate port on host (ID only)") + help=_("Allocate port on host (ID only)"), ) parser.add_argument( '--dns-domain', metavar='dns-domain', - help=_("Set DNS domain to this port " - "(requires dns_domain extension for ports)") + help=_( + "Set DNS domain to this port " + "(requires dns_domain extension for ports)" + ), ) parser.add_argument( '--dns-name', metavar='', - help=_("Set DNS name for this port " - "(requires DNS integration extension)") + help=_( + "Set DNS name for this port " + "(requires DNS integration extension)" + ), ) numa_affinity_policy_group = parser.add_mutually_exclusive_group() numa_affinity_policy_group.add_argument( '--numa-policy-required', action='store_true', - help=_("NUMA affinity policy required to schedule this port") + help=_("NUMA affinity policy required to schedule this port"), ) numa_affinity_policy_group.add_argument( '--numa-policy-preferred', action='store_true', - help=_("NUMA affinity policy preferred to schedule this port") + help=_("NUMA affinity policy preferred to schedule this port"), ) numa_affinity_policy_group.add_argument( '--numa-policy-legacy', action='store_true', - help=_("NUMA affinity policy using legacy mode to schedule this port") + help=_("NUMA affinity policy using legacy mode to schedule this port"), ) @@ -339,7 +360,7 @@ class CreatePort(command.ShowOne, common.NeutronCommandWithExtraArgs): '--network', metavar='', required=True, - help=_("Network this port belongs to (name or ID)") + help=_("Network this port belongs to (name or ID)"), ) _add_updatable_args(parser) fixed_ip = parser.add_mutually_exclusive_group() @@ -348,56 +369,56 @@ class CreatePort(command.ShowOne, common.NeutronCommandWithExtraArgs): metavar='subnet=,ip-address=', action=parseractions.MultiKeyValueAction, optional_keys=['subnet', 'ip-address'], - help=_("Desired IP and/or subnet for this port (name or ID): " - "subnet=,ip-address= " - "(repeat option to set multiple fixed IP addresses)") + help=_( + "Desired IP and/or subnet for this port (name or ID): " + "subnet=,ip-address= " + "(repeat option to set multiple fixed IP addresses)" + ), ) fixed_ip.add_argument( '--no-fixed-ip', action='store_true', - help=_("No IP or subnet for this port.") + help=_("No IP or subnet for this port."), ) parser.add_argument( '--binding-profile', metavar='', action=JSONKeyValueAction, - help=_("Custom data to be passed as binding:profile. Data may " - "be passed as = or JSON. " - "(repeat option to set multiple binding:profile data)") + help=_( + "Custom data to be passed as binding:profile. Data may " + "be passed as = or JSON. " + "(repeat option to set multiple binding:profile data)" + ), ) admin_group = parser.add_mutually_exclusive_group() admin_group.add_argument( '--enable', action='store_true', default=True, - help=_("Enable port (default)") + help=_("Enable port (default)"), ) admin_group.add_argument( - '--disable', - action='store_true', - help=_("Disable port") + '--disable', action='store_true', help=_("Disable port") ) uplink_status_group = parser.add_mutually_exclusive_group() uplink_status_group.add_argument( '--enable-uplink-status-propagation', action='store_true', - help=_("Enable uplink status propagate") + help=_("Enable uplink status propagate"), ) uplink_status_group.add_argument( '--disable-uplink-status-propagation', action='store_true', - help=_("Disable uplink status propagate (default)") + help=_("Disable uplink status propagate (default)"), ) parser.add_argument( '--project', metavar='', - help=_("Owner's project (name or ID)") + help=_("Owner's project (name or ID)"), ) identity_common.add_project_domain_option_to_parser(parser) parser.add_argument( - 'name', - metavar='', - help=_("Name of this port") + 'name', metavar='', help=_("Name of this port") ) parser.add_argument( '--extra-dhcp-option', @@ -407,9 +428,12 @@ class CreatePort(command.ShowOne, common.NeutronCommandWithExtraArgs): dest='extra_dhcp_options', required_keys=['name'], optional_keys=['value', "ip-version"], - help=_('Extra DHCP options to be assigned to this port: ' - 'name=[,value=,ip-version={4,6}] ' - '(repeat option to set multiple extra DHCP options)')) + help=_( + 'Extra DHCP options to be assigned to this port: ' + 'name=[,value=,ip-version={4,6}] ' + '(repeat option to set multiple extra DHCP options)' + ), + ) secgroups = parser.add_mutually_exclusive_group() secgroups.add_argument( @@ -417,30 +441,32 @@ class CreatePort(command.ShowOne, common.NeutronCommandWithExtraArgs): metavar='', action='append', dest='security_group', - help=_("Security group to associate with this port (name or ID) " - "(repeat option to set multiple security groups)") + help=_( + "Security group to associate with this port (name or ID) " + "(repeat option to set multiple security groups)" + ), ) secgroups.add_argument( '--no-security-group', dest='no_security_group', action='store_true', - help=_("Associate no security groups with this port") + help=_("Associate no security groups with this port"), ) parser.add_argument( '--qos-policy', metavar='', - help=_("Attach QoS policy to this port (name or ID)") + help=_("Attach QoS policy to this port (name or ID)"), ) port_security = parser.add_mutually_exclusive_group() port_security.add_argument( '--enable-port-security', action='store_true', - help=_("Enable port security for this port (Default)") + help=_("Enable port security for this port (Default)"), ) port_security.add_argument( '--disable-port-security', action='store_true', - help=_("Disable port security for this port") + help=_("Disable port security for this port"), ) parser.add_argument( '--allowed-address', @@ -449,22 +475,25 @@ class CreatePort(command.ShowOne, common.NeutronCommandWithExtraArgs): dest='allowed_address_pairs', required_keys=['ip-address'], optional_keys=['mac-address'], - help=_("Add allowed-address pair associated with this port: " - "ip-address=[,mac-address=] " - "(repeat option to set multiple allowed-address pairs)") + help=_( + "Add allowed-address pair associated with this port: " + "ip-address=[,mac-address=] " + "(repeat option to set multiple allowed-address pairs)" + ), ) parser.add_argument( '--device-profile', metavar='', - help=_('Cyborg port device profile') + help=_('Cyborg port device profile'), ) _tag.add_tag_option_to_parser_for_create(parser, _('port')) return parser def take_action(self, parsed_args): client = self.app.client_manager.network - _network = client.find_network(parsed_args.network, - ignore_missing=False) + _network = client.find_network( + parsed_args.network, ignore_missing=False + ) parsed_args.network = _network.id _prepare_fixed_ips(self.app.client_manager, parsed_args) attrs = _get_attrs(self.app.client_manager, parsed_args) @@ -478,26 +507,29 @@ class CreatePort(command.ShowOne, common.NeutronCommandWithExtraArgs): attrs['fixed_ips'] = [] if parsed_args.security_group: - attrs['security_group_ids'] = [client.find_security_group( - sg, ignore_missing=False).id - for sg in - parsed_args.security_group] + attrs['security_group_ids'] = [ + client.find_security_group(sg, ignore_missing=False).id + for sg in parsed_args.security_group + ] elif parsed_args.no_security_group: attrs['security_group_ids'] = [] if parsed_args.allowed_address_pairs: - attrs['allowed_address_pairs'] = ( - _convert_address_pairs(parsed_args)) + attrs['allowed_address_pairs'] = _convert_address_pairs( + parsed_args + ) if parsed_args.extra_dhcp_options: attrs["extra_dhcp_opts"] = _convert_extra_dhcp_options(parsed_args) if parsed_args.qos_policy: attrs['qos_policy_id'] = client.find_qos_policy( - parsed_args.qos_policy, ignore_missing=False).id + parsed_args.qos_policy, ignore_missing=False + ).id set_tags_in_post = bool( - client.find_extension('tag-ports-during-bulk-creation')) + client.find_extension('tag-ports-during-bulk-creation') + ) if set_tags_in_post: if parsed_args.no_tag: attrs['tags'] = [] @@ -505,10 +537,12 @@ class CreatePort(command.ShowOne, common.NeutronCommandWithExtraArgs): attrs['tags'] = list(set(parsed_args.tags)) attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) with common.check_missing_extension_if_error( - self.app.client_manager.network, attrs): + self.app.client_manager.network, attrs + ): obj = client.create_port(**attrs) if not set_tags_in_post: @@ -530,7 +564,7 @@ class DeletePort(command.Command): 'port', metavar="", nargs="+", - help=_("Port(s) to delete (name or ID)") + help=_("Port(s) to delete (name or ID)"), ) return parser @@ -544,14 +578,20 @@ class DeletePort(command.Command): client.delete_port(obj) except Exception as e: result += 1 - LOG.error(_("Failed to delete port with " - "name or ID '%(port)s': %(e)s"), - {'port': port, 'e': e}) + LOG.error( + _( + "Failed to delete port with " + "name or ID '%(port)s': %(e)s" + ), + {'port': port, 'e': e}, + ) if result > 0: total = len(parsed_args.port) - msg = (_("%(result)s of %(total)s ports failed " - "to delete.") % {'result': result, 'total': total}) + msg = _("%(result)s of %(total)s ports failed " "to delete.") % { + 'result': result, + 'total': total, + } raise exceptions.CommandError(msg) @@ -565,24 +605,28 @@ class ListPort(command.Lister): parser.add_argument( '--device-owner', metavar='', - help=_("List only ports with the specified device owner. " - "This is the entity that uses the port (for example, " - "network:dhcp).") + help=_( + "List only ports with the specified device owner. " + "This is the entity that uses the port (for example, " + "network:dhcp)." + ), ) parser.add_argument( '--host', metavar='', - help=_("List only ports bound to this host ID")) + help=_("List only ports bound to this host ID"), + ) parser.add_argument( '--network', metavar='', - help=_("List only ports connected to this network (name or ID)")) + help=_("List only ports connected to this network (name or ID)"), + ) device_group = parser.add_mutually_exclusive_group() device_group.add_argument( '--router', metavar='', dest='router', - help=_("List only ports attached to this router (name or ID)") + help=_("List only ports attached to this router (name or ID)"), ) device_group.add_argument( '--server', @@ -592,47 +636,51 @@ class ListPort(command.Lister): device_group.add_argument( '--device-id', metavar='', - help=_("List only ports with the specified device ID") + help=_("List only ports with the specified device ID"), ) parser.add_argument( '--mac-address', metavar='', - help=_("List only ports with this MAC address") + help=_("List only ports with this MAC address"), ) parser.add_argument( '--long', action='store_true', default=False, - help=_("List additional fields in output") + help=_("List additional fields in output"), ) parser.add_argument( '--project', metavar='', - help=_("List ports according to their project (name or ID)") + help=_("List ports according to their project (name or ID)"), ) parser.add_argument( '--name', metavar='', - help=_("List ports according to their name") + help=_("List ports according to their name"), ) parser.add_argument( '--security-group', action='append', dest='security_groups', metavar='', - help=_("List only ports associated with this security group") + help=_("List only ports associated with this security group"), ) identity_common.add_project_domain_option_to_parser(parser) parser.add_argument( '--fixed-ip', - metavar=('subnet=,ip-address=,' - 'ip-substring='), + metavar=( + 'subnet=,ip-address=,' + 'ip-substring=' + ), action=parseractions.MultiKeyValueAction, optional_keys=['subnet', 'ip-address', 'ip-substring'], - help=_("Desired IP and/or subnet for filtering ports " - "(name or ID): subnet=,ip-address=," - "ip-substring= " - "(repeat option to set multiple fixed IP addresses)"), + help=_( + "Desired IP and/or subnet for filtering ports " + "(name or ID): subnet=,ip-address=," + "ip-substring= " + "(repeat option to set multiple fixed IP addresses)" + ), ) _tag.add_tag_filtering_option_to_parser(parser, _('ports')) return parser @@ -665,19 +713,22 @@ class ListPort(command.Lister): if parsed_args.device_id is not None: filters['device_id'] = parsed_args.device_id if parsed_args.router: - _router = network_client.find_router(parsed_args.router, - ignore_missing=False) + _router = network_client.find_router( + parsed_args.router, ignore_missing=False + ) filters['device_id'] = _router.id if parsed_args.server: compute_client = self.app.client_manager.compute - server = utils.find_resource(compute_client.servers, - parsed_args.server) + server = utils.find_resource( + compute_client.servers, parsed_args.server + ) filters['device_id'] = server.id if parsed_args.host: filters['binding:host_id'] = parsed_args.host if parsed_args.network: - network = network_client.find_network(parsed_args.network, - ignore_missing=False) + network = network_client.find_network( + parsed_args.network, ignore_missing=False + ) filters['network_id'] = network.id if parsed_args.mac_address: filters['mac_address'] = parsed_args.mac_address @@ -692,7 +743,8 @@ class ListPort(command.Lister): filters['name'] = parsed_args.name if parsed_args.fixed_ip: filters['fixed_ips'] = _prepare_filter_fixed_ips( - self.app.client_manager, parsed_args) + self.app.client_manager, parsed_args + ) if parsed_args.security_groups: filters['security_groups'] = parsed_args.security_groups @@ -701,12 +753,19 @@ class ListPort(command.Lister): data = network_client.ports(fields=columns, **filters) headers, attrs = utils.calculate_header_and_attrs( - column_headers, columns, parsed_args) - return (headers, - (utils.get_item_properties( - s, attrs, + column_headers, columns, parsed_args + ) + return ( + headers, + ( + utils.get_item_properties( + s, + attrs, formatters=_formatters, - ) for s in data)) + ) + for s in data + ), + ) # TODO(abhiraut): Use the SDK resource mapped attribute names once the @@ -722,83 +781,87 @@ class SetPort(common.NeutronCommandWithExtraArgs): '--enable', action='store_true', default=None, - help=_("Enable port") + help=_("Enable port"), ) admin_group.add_argument( - '--disable', - action='store_true', - help=_("Disable port") + '--disable', action='store_true', help=_("Disable port") ) parser.add_argument( - '--name', - metavar="", - help=_("Set port name") + '--name', metavar="", help=_("Set port name") ) parser.add_argument( '--fixed-ip', metavar='subnet=,ip-address=', action=parseractions.MultiKeyValueAction, optional_keys=['subnet', 'ip-address'], - help=_("Desired IP and/or subnet for this port (name or ID): " - "subnet=,ip-address= " - "(repeat option to set multiple fixed IP addresses)") + help=_( + "Desired IP and/or subnet for this port (name or ID): " + "subnet=,ip-address= " + "(repeat option to set multiple fixed IP addresses)" + ), ) parser.add_argument( '--no-fixed-ip', action='store_true', - help=_("Clear existing information of fixed IP addresses." - "Specify both --fixed-ip and --no-fixed-ip " - "to overwrite the current fixed IP addresses.") + help=_( + "Clear existing information of fixed IP addresses." + "Specify both --fixed-ip and --no-fixed-ip " + "to overwrite the current fixed IP addresses." + ), ) parser.add_argument( '--binding-profile', metavar='', action=JSONKeyValueAction, - help=_("Custom data to be passed as binding:profile. Data may " - "be passed as = or JSON. " - "(repeat option to set multiple binding:profile data)") + help=_( + "Custom data to be passed as binding:profile. Data may " + "be passed as = or JSON. " + "(repeat option to set multiple binding:profile data)" + ), ) parser.add_argument( '--no-binding-profile', action='store_true', - help=_("Clear existing information of binding:profile. " - "Specify both --binding-profile and --no-binding-profile " - "to overwrite the current binding:profile information.") + help=_( + "Clear existing information of binding:profile. " + "Specify both --binding-profile and --no-binding-profile " + "to overwrite the current binding:profile information." + ), ) parser.add_argument( '--qos-policy', metavar='', - help=_("Attach QoS policy to this port (name or ID)") + help=_("Attach QoS policy to this port (name or ID)"), ) parser.add_argument( - 'port', - metavar="", - help=_("Port to modify (name or ID)") + 'port', metavar="", help=_("Port to modify (name or ID)") ) parser.add_argument( '--security-group', metavar='', action='append', dest='security_group', - help=_("Security group to associate with this port (name or ID) " - "(repeat option to set multiple security groups)") + help=_( + "Security group to associate with this port (name or ID) " + "(repeat option to set multiple security groups)" + ), ) parser.add_argument( '--no-security-group', dest='no_security_group', action='store_true', - help=_("Clear existing security groups associated with this port") + help=_("Clear existing security groups associated with this port"), ) port_security = parser.add_mutually_exclusive_group() port_security.add_argument( '--enable-port-security', action='store_true', - help=_("Enable port security for this port") + help=_("Enable port security for this port"), ) port_security.add_argument( '--disable-port-security', action='store_true', - help=_("Disable port security for this port") + help=_("Disable port security for this port"), ) parser.add_argument( '--allowed-address', @@ -807,18 +870,22 @@ class SetPort(common.NeutronCommandWithExtraArgs): dest='allowed_address_pairs', required_keys=['ip-address'], optional_keys=['mac-address'], - help=_("Add allowed-address pair associated with this port: " - "ip-address=[,mac-address=] " - "(repeat option to set multiple allowed-address pairs)") + help=_( + "Add allowed-address pair associated with this port: " + "ip-address=[,mac-address=] " + "(repeat option to set multiple allowed-address pairs)" + ), ) parser.add_argument( '--no-allowed-address', dest='no_allowed_address_pair', action='store_true', - help=_("Clear existing allowed-address pairs associated " - "with this port. " - "(Specify both --allowed-address and --no-allowed-address " - "to overwrite the current allowed-address pairs)") + help=_( + "Clear existing allowed-address pairs associated " + "with this port. " + "(Specify both --allowed-address and --no-allowed-address " + "to overwrite the current allowed-address pairs)" + ), ) parser.add_argument( '--extra-dhcp-option', @@ -828,16 +895,21 @@ class SetPort(common.NeutronCommandWithExtraArgs): dest='extra_dhcp_options', required_keys=['name'], optional_keys=['value', "ip-version"], - help=_('Extra DHCP options to be assigned to this port: ' - 'name=[,value=,ip-version={4,6}] ' - '(repeat option to set multiple extra DHCP options)')) + help=_( + 'Extra DHCP options to be assigned to this port: ' + 'name=[,value=,ip-version={4,6}] ' + '(repeat option to set multiple extra DHCP options)' + ), + ) parser.add_argument( '--data-plane-status', metavar='', choices=['ACTIVE', 'DOWN'], - help=_("Set data plane status of this port (ACTIVE | DOWN). " - "Unset it to None with the 'port unset' command " - "(requires data plane status extension)") + help=_( + "Set data plane status of this port (ACTIVE | DOWN). " + "Unset it to None with the 'port unset' command " + "(requires data plane status extension)" + ), ) _tag.add_tag_option_to_parser_for_set(parser, _('port')) @@ -887,9 +959,9 @@ class SetPort(common.NeutronCommandWithExtraArgs): attrs['allowed_address_pairs'] = [] if parsed_args.allowed_address_pairs: if 'allowed_address_pairs' not in attrs: - attrs['allowed_address_pairs'] = ( - [addr for addr in obj.allowed_address_pairs if addr] - ) + attrs['allowed_address_pairs'] = [ + addr for addr in obj.allowed_address_pairs if addr + ] attrs['allowed_address_pairs'].extend( _convert_address_pairs(parsed_args) ) @@ -901,11 +973,13 @@ class SetPort(common.NeutronCommandWithExtraArgs): attrs['data_plane_status'] = parsed_args.data_plane_status attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) if attrs: with common.check_missing_extension_if_error( - self.app.client_manager.network, attrs): + self.app.client_manager.network, attrs + ): client.update_port(obj, **attrs) # tags is a subresource and it needs to be updated separately. @@ -918,9 +992,7 @@ class ShowPort(command.ShowOne): def get_parser(self, prog_name): parser = super(ShowPort, self).get_parser(prog_name) parser.add_argument( - 'port', - metavar="", - help=_("Port to display (name or ID)") + 'port', metavar="", help=_("Port to display (name or ID)") ) return parser @@ -944,30 +1016,36 @@ class UnsetPort(common.NeutronUnsetCommandWithExtraArgs): metavar='subnet=,ip-address=', action=parseractions.MultiKeyValueAction, optional_keys=['subnet', 'ip-address'], - help=_("Desired IP and/or subnet which should be " - "removed from this port (name or ID): subnet=," - "ip-address= (repeat option to unset multiple " - "fixed IP addresses)")) + help=_( + "Desired IP and/or subnet which should be " + "removed from this port (name or ID): subnet=," + "ip-address= (repeat option to unset multiple " + "fixed IP addresses)" + ), + ) parser.add_argument( '--binding-profile', metavar='', action='append', - help=_("Desired key which should be removed from binding:profile " - "(repeat option to unset multiple binding:profile data)")) + help=_( + "Desired key which should be removed from binding:profile " + "(repeat option to unset multiple binding:profile data)" + ), + ) parser.add_argument( '--security-group', metavar='', action='append', dest='security_group_ids', - help=_("Security group which should be removed this port (name " - "or ID) (repeat option to unset multiple security groups)") + help=_( + "Security group which should be removed this port (name " + "or ID) (repeat option to unset multiple security groups)" + ), ) parser.add_argument( - 'port', - metavar="", - help=_("Port to modify (name or ID)") + 'port', metavar="", help=_("Port to modify (name or ID)") ) parser.add_argument( '--allowed-address', @@ -976,32 +1054,34 @@ class UnsetPort(common.NeutronUnsetCommandWithExtraArgs): dest='allowed_address_pairs', required_keys=['ip-address'], optional_keys=['mac-address'], - help=_("Desired allowed-address pair which should be removed " - "from this port: ip-address=" - "[,mac-address=] (repeat option to unset " - "multiple allowed-address pairs)") + help=_( + "Desired allowed-address pair which should be removed " + "from this port: ip-address=" + "[,mac-address=] (repeat option to unset " + "multiple allowed-address pairs)" + ), ) parser.add_argument( '--qos-policy', action='store_true', default=False, - help=_("Remove the QoS policy attached to the port") + help=_("Remove the QoS policy attached to the port"), ) parser.add_argument( '--data-plane-status', action='store_true', - help=_("Clear existing information of data plane status") + help=_("Clear existing information of data plane status"), ) parser.add_argument( '--numa-policy', action='store_true', - help=_("Clear existing NUMA affinity policy") + help=_("Clear existing NUMA affinity policy"), ) parser.add_argument( '--host', action='store_true', default=False, - help=_("Clear host binding for the port.") + help=_("Clear host binding for the port."), ) _tag.add_tag_option_to_parser_for_unset(parser, _('port')) @@ -1040,7 +1120,8 @@ class UnsetPort(common.NeutronUnsetCommandWithExtraArgs): try: for sg in parsed_args.security_group_ids: sg_id = client.find_security_group( - sg, ignore_missing=False).id + sg, ignore_missing=False + ).id tmp_secgroups.remove(sg_id) except ValueError: msg = _("Port does not contain security group %s") % sg @@ -1064,7 +1145,8 @@ class UnsetPort(common.NeutronUnsetCommandWithExtraArgs): attrs['binding:host_id'] = None attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) if attrs: client.update_port(obj, **attrs) diff --git a/openstackclient/network/v2/router.py b/openstackclient/network/v2/router.py index 8302ee0152..e601f98e94 100644 --- a/openstackclient/network/v2/router.py +++ b/openstackclient/network/v2/router.py @@ -81,7 +81,8 @@ def _get_columns(item): invisible_columns.append('is_distributed') column_map.pop('is_distributed') return utils.get_osc_show_columns_for_sdk_resource( - item, column_map, invisible_columns) + item, column_map, invisible_columns + ) def _get_attrs(client_manager, parsed_args): @@ -96,8 +97,10 @@ def _get_attrs(client_manager, parsed_args): attrs['distributed'] = False if parsed_args.distributed: attrs['distributed'] = True - if ('availability_zone_hints' in parsed_args and - parsed_args.availability_zone_hints is not None): + if ( + 'availability_zone_hints' in parsed_args + and parsed_args.availability_zone_hints is not None + ): attrs['availability_zone_hints'] = parsed_args.availability_zone_hints if parsed_args.description is not None: attrs['description'] = parsed_args.description @@ -114,7 +117,8 @@ def _get_attrs(client_manager, parsed_args): gateway_info = {} n_client = client_manager.network network = n_client.find_network( - parsed_args.external_gateway, ignore_missing=False) + parsed_args.external_gateway, ignore_missing=False + ) gateway_info['network_id'] = network.id if parsed_args.disable_snat: gateway_info['enable_snat'] = False @@ -126,8 +130,9 @@ def _get_attrs(client_manager, parsed_args): if ip_spec.get('subnet', False): subnet_name_id = ip_spec.pop('subnet') if subnet_name_id: - subnet = n_client.find_subnet(subnet_name_id, - ignore_missing=False) + subnet = n_client.find_subnet( + subnet_name_id, ignore_missing=False + ) ip_spec['subnet_id'] = subnet.id if ip_spec.get('ip-address', False): ip_spec['ip_address'] = ip_spec.pop('ip-address') @@ -146,20 +151,20 @@ class AddPortToRouter(command.Command): parser.add_argument( 'router', metavar='', - help=_("Router to which port will be added (name or ID)") + help=_("Router to which port will be added (name or ID)"), ) parser.add_argument( - 'port', - metavar='', - help=_("Port to be added (name or ID)") + 'port', metavar='', help=_("Port to be added (name or ID)") ) return parser def take_action(self, parsed_args): client = self.app.client_manager.network port = client.find_port(parsed_args.port, ignore_missing=False) - client.add_interface_to_router(client.find_router( - parsed_args.router, ignore_missing=False), port_id=port.id) + client.add_interface_to_router( + client.find_router(parsed_args.router, ignore_missing=False), + port_id=port.id, + ) class AddSubnetToRouter(command.Command): @@ -170,23 +175,22 @@ class AddSubnetToRouter(command.Command): parser.add_argument( 'router', metavar='', - help=_("Router to which subnet will be added (name or ID)") + help=_("Router to which subnet will be added (name or ID)"), ) parser.add_argument( 'subnet', metavar='', - help=_("Subnet to be added (name or ID)") + help=_("Subnet to be added (name or ID)"), ) return parser def take_action(self, parsed_args): client = self.app.client_manager.network - subnet = client.find_subnet(parsed_args.subnet, - ignore_missing=False) + subnet = client.find_subnet(parsed_args.subnet, ignore_missing=False) client.add_interface_to_router( - client.find_router(parsed_args.router, - ignore_missing=False), - subnet_id=subnet.id) + client.find_router(parsed_args.router, ignore_missing=False), + subnet_id=subnet.id, + ) class AddExtraRoutesToRouter(command.ShowOne): @@ -197,8 +201,10 @@ class AddExtraRoutesToRouter(command.ShowOne): parser.add_argument( 'router', metavar='', - help=_("Router to which extra static routes " - "will be added (name or ID).") + help=_( + "Router to which extra static routes " + "will be added (name or ID)." + ), ) parser.add_argument( '--route', @@ -207,14 +213,16 @@ class AddExtraRoutesToRouter(command.ShowOne): dest='routes', default=[], required_keys=['destination', 'gateway'], - help=_("Add extra static route to the router. " - "destination: destination subnet (in CIDR notation), " - "gateway: nexthop IP address. " - "Repeat option to add multiple routes. " - "Trying to add a route that's already present " - "(exactly, including destination and nexthop) " - "in the routing table is allowed and is considered " - "a successful operation.") + help=_( + "Add extra static route to the router. " + "destination: destination subnet (in CIDR notation), " + "gateway: nexthop IP address. " + "Repeat option to add multiple routes. " + "Trying to add a route that's already present " + "(exactly, including destination and nexthop) " + "in the routing table is allowed and is considered " + "a successful operation." + ), ) return parser @@ -225,24 +233,29 @@ class AddExtraRoutesToRouter(command.ShowOne): client = self.app.client_manager.network router_obj = client.add_extra_routes_to_router( client.find_router(parsed_args.router, ignore_missing=False), - body={'router': {'routes': parsed_args.routes}}) + body={'router': {'routes': parsed_args.routes}}, + ) display_columns, columns = _get_columns(router_obj) data = utils.get_item_properties( - router_obj, columns, formatters=_formatters) + router_obj, columns, formatters=_formatters + ) return (display_columns, data) class RemoveExtraRoutesFromRouter(command.ShowOne): _description = _( - "Remove extra static routes from a router's routing table.") + "Remove extra static routes from a router's routing table." + ) def get_parser(self, prog_name): parser = super(RemoveExtraRoutesFromRouter, self).get_parser(prog_name) parser.add_argument( 'router', metavar='', - help=_("Router from which extra static routes " - "will be removed (name or ID).") + help=_( + "Router from which extra static routes " + "will be removed (name or ID)." + ), ) parser.add_argument( '--route', @@ -251,14 +264,16 @@ class RemoveExtraRoutesFromRouter(command.ShowOne): dest='routes', default=[], required_keys=['destination', 'gateway'], - help=_("Remove extra static route from the router. " - "destination: destination subnet (in CIDR notation), " - "gateway: nexthop IP address. " - "Repeat option to remove multiple routes. " - "Trying to remove a route that's already missing " - "(fully, including destination and nexthop) " - "from the routing table is allowed and is considered " - "a successful operation.") + help=_( + "Remove extra static route from the router. " + "destination: destination subnet (in CIDR notation), " + "gateway: nexthop IP address. " + "Repeat option to remove multiple routes. " + "Trying to remove a route that's already missing " + "(fully, including destination and nexthop) " + "from the routing table is allowed and is considered " + "a successful operation." + ), ) return parser @@ -269,10 +284,12 @@ class RemoveExtraRoutesFromRouter(command.ShowOne): client = self.app.client_manager.network router_obj = client.remove_extra_routes_from_router( client.find_router(parsed_args.router, ignore_missing=False), - body={'router': {'routes': parsed_args.routes}}) + body={'router': {'routes': parsed_args.routes}}, + ) display_columns, columns = _get_columns(router_obj) data = utils.get_item_properties( - router_obj, columns, formatters=_formatters) + router_obj, columns, formatters=_formatters + ) return (display_columns, data) @@ -284,53 +301,47 @@ class CreateRouter(command.ShowOne, common.NeutronCommandWithExtraArgs): def get_parser(self, prog_name): parser = super(CreateRouter, self).get_parser(prog_name) parser.add_argument( - 'name', - metavar='', - help=_("New router name") + 'name', metavar='', help=_("New router name") ) admin_group = parser.add_mutually_exclusive_group() admin_group.add_argument( '--enable', action='store_true', default=True, - help=_("Enable router (default)") + help=_("Enable router (default)"), ) admin_group.add_argument( - '--disable', - action='store_true', - help=_("Disable router") + '--disable', action='store_true', help=_("Disable router") ) distribute_group = parser.add_mutually_exclusive_group() distribute_group.add_argument( '--distributed', action='store_true', - help=_("Create a distributed router") + help=_("Create a distributed router"), ) distribute_group.add_argument( '--centralized', action='store_true', - help=_("Create a centralized router") + help=_("Create a centralized router"), ) ha_group = parser.add_mutually_exclusive_group() ha_group.add_argument( '--ha', action='store_true', - help=_("Create a highly available router") + help=_("Create a highly available router"), ) ha_group.add_argument( - '--no-ha', - action='store_true', - help=_("Create a legacy router") + '--no-ha', action='store_true', help=_("Create a legacy router") ) parser.add_argument( '--description', metavar='', - help=_("Set router description") + help=_("Set router description"), ) parser.add_argument( '--project', metavar='', - help=_("Owner's project (name or ID)") + help=_("Owner's project (name or ID)"), ) identity_common.add_project_domain_option_to_parser(parser) parser.add_argument( @@ -338,36 +349,40 @@ class CreateRouter(command.ShowOne, common.NeutronCommandWithExtraArgs): metavar='', action='append', dest='availability_zone_hints', - help=_("Availability Zone in which to create this router " - "(Router Availability Zone extension required, " - "repeat option to set multiple availability zones)") + help=_( + "Availability Zone in which to create this router " + "(Router Availability Zone extension required, " + "repeat option to set multiple availability zones)" + ), ) _tag.add_tag_option_to_parser_for_create(parser, _('router')) parser.add_argument( '--external-gateway', metavar="", - help=_("External Network used as router's gateway (name or ID)") + help=_("External Network used as router's gateway (name or ID)"), ) parser.add_argument( '--fixed-ip', metavar='subnet=,ip-address=', action=parseractions.MultiKeyValueAction, optional_keys=['subnet', 'ip-address'], - help=_("Desired IP and/or subnet (name or ID) " - "on external gateway: " - "subnet=,ip-address= " - "(repeat option to set multiple fixed IP addresses)") + help=_( + "Desired IP and/or subnet (name or ID) " + "on external gateway: " + "subnet=,ip-address= " + "(repeat option to set multiple fixed IP addresses)" + ), ) snat_group = parser.add_mutually_exclusive_group() snat_group.add_argument( '--enable-snat', action='store_true', - help=_("Enable Source NAT on external gateway") + help=_("Enable Source NAT on external gateway"), ) snat_group.add_argument( '--disable-snat', action='store_true', - help=_("Disable Source NAT on external gateway") + help=_("Disable Source NAT on external gateway"), ) ndp_proxy_group = parser.add_mutually_exclusive_group() ndp_proxy_group.add_argument( @@ -375,14 +390,14 @@ class CreateRouter(command.ShowOne, common.NeutronCommandWithExtraArgs): dest='enable_ndp_proxy', default=None, action='store_true', - help=_("Enable IPv6 NDP proxy on external gateway") + help=_("Enable IPv6 NDP proxy on external gateway"), ) ndp_proxy_group.add_argument( '--disable-ndp-proxy', dest='enable_ndp_proxy', default=None, action='store_false', - help=_("Disable IPv6 NDP proxy on external gateway") + help=_("Disable IPv6 NDP proxy on external gateway"), ) return parser @@ -396,11 +411,14 @@ class CreateRouter(command.ShowOne, common.NeutronCommandWithExtraArgs): if parsed_args.no_ha: attrs['ha'] = False attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) if parsed_args.enable_ndp_proxy and not parsed_args.external_gateway: - msg = (_("You must specify '--external-gateway' in order " - "to enable router's NDP proxy")) + msg = _( + "You must specify '--external-gateway' in order " + "to enable router's NDP proxy" + ) raise exceptions.CommandError(msg) if parsed_args.enable_ndp_proxy is not None: @@ -410,10 +428,15 @@ class CreateRouter(command.ShowOne, common.NeutronCommandWithExtraArgs): # tags cannot be set when created, so tags need to be set later. _tag.update_tags_for_set(client, obj, parsed_args) - if (parsed_args.disable_snat or parsed_args.enable_snat or - parsed_args.fixed_ip) and not parsed_args.external_gateway: - msg = (_("You must specify '--external-gateway' in order " - "to specify SNAT or fixed-ip values")) + if ( + parsed_args.disable_snat + or parsed_args.enable_snat + or parsed_args.fixed_ip + ) and not parsed_args.external_gateway: + msg = _( + "You must specify '--external-gateway' in order " + "to specify SNAT or fixed-ip values" + ) raise exceptions.CommandError(msg) display_columns, columns = _get_columns(obj) @@ -431,7 +454,7 @@ class DeleteRouter(command.Command): 'router', metavar="", nargs="+", - help=_("Router(s) to delete (name or ID)") + help=_("Router(s) to delete (name or ID)"), ) return parser @@ -445,14 +468,20 @@ class DeleteRouter(command.Command): client.delete_router(obj) except Exception as e: result += 1 - LOG.error(_("Failed to delete router with " - "name or ID '%(router)s': %(e)s"), - {'router': router, 'e': e}) + LOG.error( + _( + "Failed to delete router with " + "name or ID '%(router)s': %(e)s" + ), + {'router': router, 'e': e}, + ) if result > 0: total = len(parsed_args.router) - msg = (_("%(result)s of %(total)s routers failed " - "to delete.") % {'result': result, 'total': total}) + msg = _("%(result)s of %(total)s routers failed " "to delete.") % { + 'result': result, + 'total': total, + } raise exceptions.CommandError(msg) @@ -466,35 +495,31 @@ class ListRouter(command.Lister): parser.add_argument( '--name', metavar='', - help=_("List routers according to their name") + help=_("List routers according to their name"), ) admin_state_group = parser.add_mutually_exclusive_group() admin_state_group.add_argument( - '--enable', - action='store_true', - help=_("List enabled routers") + '--enable', action='store_true', help=_("List enabled routers") ) admin_state_group.add_argument( - '--disable', - action='store_true', - help=_("List disabled routers") + '--disable', action='store_true', help=_("List disabled routers") ) parser.add_argument( '--long', action='store_true', default=False, - help=_("List additional fields in output") + help=_("List additional fields in output"), ) parser.add_argument( '--project', metavar='', - help=_("List routers according to their project (name or ID)") + help=_("List routers according to their project (name or ID)"), ) identity_common.add_project_domain_option_to_parser(parser) parser.add_argument( '--agent', metavar='', - help=_("List routers hosted by an agent (ID only)") + help=_("List routers hosted by an agent (ID only)"), ) _tag.add_tag_filtering_option_to_parser(parser, _('routers')) @@ -553,8 +578,10 @@ class ListRouter(command.Lister): # check if "HA" and "Distributed" columns should be displayed also data = list(data) for d in data: - if (d.is_distributed is not None and - 'is_distributed' not in columns): + if ( + d.is_distributed is not None + and 'is_distributed' not in columns + ): columns = columns + ('is_distributed',) column_headers = column_headers + ('Distributed',) if d.is_ha is not None and 'is_ha' not in columns: @@ -572,20 +599,22 @@ class ListRouter(command.Lister): # availability zone will be available only when # router_availability_zone extension is enabled if client.find_extension("router_availability_zone"): - columns = columns + ( - 'availability_zones', - ) - column_headers = column_headers + ( - 'Availability zones', - ) + columns = columns + ('availability_zones',) + column_headers = column_headers + ('Availability zones',) columns = columns + ('tags',) column_headers = column_headers + ('Tags',) - return (column_headers, - (utils.get_item_properties( - s, columns, + return ( + column_headers, + ( + utils.get_item_properties( + s, + columns, formatters=_formatters, - ) for s in data)) + ) + for s in data + ), + ) @staticmethod def _filter_match(data, conditions): @@ -610,20 +639,22 @@ class RemovePortFromRouter(command.Command): parser.add_argument( 'router', metavar='', - help=_("Router from which port will be removed (name or ID)") + help=_("Router from which port will be removed (name or ID)"), ) parser.add_argument( 'port', metavar='', - help=_("Port to be removed and deleted (name or ID)") + help=_("Port to be removed and deleted (name or ID)"), ) return parser def take_action(self, parsed_args): client = self.app.client_manager.network port = client.find_port(parsed_args.port, ignore_missing=False) - client.remove_interface_from_router(client.find_router( - parsed_args.router, ignore_missing=False), port_id=port.id) + client.remove_interface_from_router( + client.find_router(parsed_args.router, ignore_missing=False), + port_id=port.id, + ) class RemoveSubnetFromRouter(command.Command): @@ -634,23 +665,24 @@ class RemoveSubnetFromRouter(command.Command): parser.add_argument( 'router', metavar='', - help=_("Router from which the subnet will be removed (name or ID)") + help=_( + "Router from which the subnet will be removed (name or ID)" + ), ) parser.add_argument( 'subnet', metavar='', - help=_("Subnet to be removed (name or ID)") + help=_("Subnet to be removed (name or ID)"), ) return parser def take_action(self, parsed_args): client = self.app.client_manager.network - subnet = client.find_subnet(parsed_args.subnet, - ignore_missing=False) + subnet = client.find_subnet(parsed_args.subnet, ignore_missing=False) client.remove_interface_from_router( - client.find_router(parsed_args.router, - ignore_missing=False), - subnet_id=subnet.id) + client.find_router(parsed_args.router, ignore_missing=False), + subnet_id=subnet.id, + ) # TODO(yanxing'an): Use the SDK resource mapped attribute names once the @@ -663,40 +695,36 @@ class SetRouter(common.NeutronCommandWithExtraArgs): parser.add_argument( 'router', metavar="", - help=_("Router to modify (name or ID)") + help=_("Router to modify (name or ID)"), ) parser.add_argument( - '--name', - metavar='', - help=_("Set router name") + '--name', metavar='', help=_("Set router name") ) parser.add_argument( '--description', metavar='', - help=_('Set router description') + help=_('Set router description'), ) admin_group = parser.add_mutually_exclusive_group() admin_group.add_argument( '--enable', action='store_true', default=None, - help=_("Enable router") + help=_("Enable router"), ) admin_group.add_argument( - '--disable', - action='store_true', - help=_("Disable router") + '--disable', action='store_true', help=_("Disable router") ) distribute_group = parser.add_mutually_exclusive_group() distribute_group.add_argument( '--distributed', action='store_true', - help=_("Set router to distributed mode (disabled router only)") + help=_("Set router to distributed mode (disabled router only)"), ) distribute_group.add_argument( '--centralized', action='store_true', - help=_("Set router to centralized mode (disabled router only)") + help=_("Set router to centralized mode (disabled router only)"), ) parser.add_argument( '--route', @@ -705,60 +733,69 @@ class SetRouter(common.NeutronCommandWithExtraArgs): dest='routes', default=None, required_keys=['destination', 'gateway'], - help=_("Add routes to the router " - "destination: destination subnet (in CIDR notation) " - "gateway: nexthop IP address " - "(repeat option to add multiple routes). " - "This is deprecated in favor of 'router add/remove route' " - "since it is prone to race conditions between concurrent " - "clients when not used together with --no-route to " - "overwrite the current value of 'routes'.") + help=_( + "Add routes to the router " + "destination: destination subnet (in CIDR notation) " + "gateway: nexthop IP address " + "(repeat option to add multiple routes). " + "This is deprecated in favor of 'router add/remove route' " + "since it is prone to race conditions between concurrent " + "clients when not used together with --no-route to " + "overwrite the current value of 'routes'." + ), ) parser.add_argument( '--no-route', action='store_true', - help=_("Clear routes associated with the router. " - "Specify both --route and --no-route to overwrite " - "current value of routes.") + help=_( + "Clear routes associated with the router. " + "Specify both --route and --no-route to overwrite " + "current value of routes." + ), ) routes_ha = parser.add_mutually_exclusive_group() routes_ha.add_argument( '--ha', action='store_true', - help=_("Set the router as highly available " - "(disabled router only)") + help=_( + "Set the router as highly available " "(disabled router only)" + ), ) routes_ha.add_argument( '--no-ha', action='store_true', - help=_("Clear high availability attribute of the router " - "(disabled router only)") + help=_( + "Clear high availability attribute of the router " + "(disabled router only)" + ), ) parser.add_argument( '--external-gateway', metavar="", - help=_("External Network used as router's gateway (name or ID)") + help=_("External Network used as router's gateway (name or ID)"), ) parser.add_argument( '--fixed-ip', metavar='subnet=,ip-address=', action=parseractions.MultiKeyValueAction, optional_keys=['subnet', 'ip-address'], - help=_("Desired IP and/or subnet (name or ID) " - "on external gateway: " - "subnet=,ip-address= " - "(repeat option to set multiple fixed IP addresses)") + help=_( + "Desired IP and/or subnet (name or ID) " + "on external gateway: " + "subnet=,ip-address= " + "(repeat option to set multiple fixed IP addresses)" + ), ) snat_group = parser.add_mutually_exclusive_group() snat_group.add_argument( '--enable-snat', action='store_true', - help=_("Enable Source NAT on external gateway") + help=_("Enable Source NAT on external gateway"), ) snat_group.add_argument( '--disable-snat', action='store_true', - help=_("Disable Source NAT on external gateway") + help=_("Disable Source NAT on external gateway"), ) ndp_proxy_group = parser.add_mutually_exclusive_group() ndp_proxy_group.add_argument( @@ -766,25 +803,25 @@ class SetRouter(common.NeutronCommandWithExtraArgs): dest='enable_ndp_proxy', default=None, action='store_true', - help=_("Enable IPv6 NDP proxy on external gateway") + help=_("Enable IPv6 NDP proxy on external gateway"), ) ndp_proxy_group.add_argument( '--disable-ndp-proxy', dest='enable_ndp_proxy', default=None, action='store_false', - help=_("Disable IPv6 NDP proxy on external gateway") + help=_("Disable IPv6 NDP proxy on external gateway"), ) qos_policy_group = parser.add_mutually_exclusive_group() qos_policy_group.add_argument( '--qos-policy', metavar='', - help=_("Attach QoS policy to router gateway IPs") + help=_("Attach QoS policy to router gateway IPs"), ) qos_policy_group.add_argument( '--no-qos-policy', action='store_true', - help=_("Remove QoS policy from router gateway IPs") + help=_("Remove QoS policy from router gateway IPs"), ) _tag.add_tag_option_to_parser_for_set(parser, _('router')) return parser @@ -812,20 +849,28 @@ class SetRouter(common.NeutronCommandWithExtraArgs): attrs['routes'] += obj.routes elif parsed_args.no_route: attrs['routes'] = [] - if (parsed_args.disable_snat or parsed_args.enable_snat or - parsed_args.fixed_ip) and not parsed_args.external_gateway: - msg = (_("You must specify '--external-gateway' in order " - "to update the SNAT or fixed-ip values")) + if ( + parsed_args.disable_snat + or parsed_args.enable_snat + or parsed_args.fixed_ip + ) and not parsed_args.external_gateway: + msg = _( + "You must specify '--external-gateway' in order " + "to update the SNAT or fixed-ip values" + ) raise exceptions.CommandError(msg) - if ((parsed_args.qos_policy or parsed_args.no_qos_policy) and - not parsed_args.external_gateway): + if ( + parsed_args.qos_policy or parsed_args.no_qos_policy + ) and not parsed_args.external_gateway: try: original_net_id = obj.external_gateway_info['network_id'] except (KeyError, TypeError): - msg = (_("You must specify '--external-gateway' or the router " - "must already have an external network in order to " - "set router gateway IP QoS")) + msg = _( + "You must specify '--external-gateway' or the router " + "must already have an external network in order to " + "set router gateway IP QoS" + ) raise exceptions.CommandError(msg) else: if not attrs.get('external_gateway_info'): @@ -833,14 +878,16 @@ class SetRouter(common.NeutronCommandWithExtraArgs): attrs['external_gateway_info']['network_id'] = original_net_id if parsed_args.qos_policy: check_qos_id = client.find_qos_policy( - parsed_args.qos_policy, ignore_missing=False).id + parsed_args.qos_policy, ignore_missing=False + ).id attrs['external_gateway_info']['qos_policy_id'] = check_qos_id if 'no_qos_policy' in parsed_args and parsed_args.no_qos_policy: attrs['external_gateway_info']['qos_policy_id'] = None attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) if parsed_args.enable_ndp_proxy is not None: attrs['enable_ndp_proxy'] = parsed_args.enable_ndp_proxy @@ -859,7 +906,7 @@ class ShowRouter(command.ShowOne): parser.add_argument( 'router', metavar="", - help=_("Router to display (name or ID)") + help=_("Router to display (name or ID)"), ) return parser @@ -875,7 +922,7 @@ class ShowRouter(command.ShowOne): int_info = { 'port_id': port.id, 'ip_address': ip_spec.get('ip_address'), - 'subnet_id': ip_spec.get('subnet_id') + 'subnet_id': ip_spec.get('subnet_id'), } interfaces_info.append(int_info) @@ -899,25 +946,29 @@ class UnsetRouter(common.NeutronUnsetCommandWithExtraArgs): dest='routes', default=None, required_keys=['destination', 'gateway'], - help=_("Routes to be removed from the router " - "destination: destination subnet (in CIDR notation) " - "gateway: nexthop IP address " - "(repeat option to unset multiple routes)")) + help=_( + "Routes to be removed from the router " + "destination: destination subnet (in CIDR notation) " + "gateway: nexthop IP address " + "(repeat option to unset multiple routes)" + ), + ) parser.add_argument( '--external-gateway', action='store_true', default=False, - help=_("Remove external gateway information from the router")) + help=_("Remove external gateway information from the router"), + ) parser.add_argument( '--qos-policy', action='store_true', default=False, - help=_("Remove QoS policy from router gateway IPs") + help=_("Remove QoS policy from router gateway IPs"), ) parser.add_argument( 'router', metavar="", - help=_("Router to modify (name or ID)") + help=_("Router to modify (name or ID)"), ) _tag.add_tag_option_to_parser_for_unset(parser, _('router')) return parser @@ -934,13 +985,15 @@ class UnsetRouter(common.NeutronUnsetCommandWithExtraArgs): route['nexthop'] = route.pop('gateway') tmp_routes.remove(route) except ValueError: - msg = (_("Router does not contain route %s") % route) + msg = _("Router does not contain route %s") % route raise exceptions.CommandError(msg) attrs['routes'] = tmp_routes if parsed_args.qos_policy: try: - if (tmp_external_gateway_info['network_id'] and - tmp_external_gateway_info['qos_policy_id']): + if ( + tmp_external_gateway_info['network_id'] + and tmp_external_gateway_info['qos_policy_id'] + ): pass except (KeyError, TypeError): msg = _("Router does not have external network or qos policy") @@ -948,14 +1001,15 @@ class UnsetRouter(common.NeutronUnsetCommandWithExtraArgs): else: attrs['external_gateway_info'] = { 'network_id': tmp_external_gateway_info['network_id'], - 'qos_policy_id': None + 'qos_policy_id': None, } if parsed_args.external_gateway: attrs['external_gateway_info'] = {} attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) if attrs: client.update_router(obj, **attrs) diff --git a/openstackclient/network/v2/security_group.py b/openstackclient/network/v2/security_group.py index ffad99882c..6de9cad301 100644 --- a/openstackclient/network/v2/security_group.py +++ b/openstackclient/network/v2/security_group.py @@ -92,28 +92,25 @@ def _get_columns(item): } hidden_columns = ['location'] return utils.get_osc_show_columns_for_sdk_resource( - item, - column_map, - hidden_columns + item, column_map, hidden_columns ) # TODO(abhiraut): Use the SDK resource mapped attribute names once the # OSC minimum requirements include SDK 1.0. -class CreateSecurityGroup(common.NetworkAndComputeShowOne, - common.NeutronCommandWithExtraArgs): +class CreateSecurityGroup( + common.NetworkAndComputeShowOne, common.NeutronCommandWithExtraArgs +): _description = _("Create a new security group") def update_parser_common(self, parser): parser.add_argument( - "name", - metavar="", - help=_("New security group name") + "name", metavar="", help=_("New security group name") ) parser.add_argument( "--description", metavar="", - help=_("Security group description") + help=_("Security group description"), ) return parser @@ -121,26 +118,27 @@ class CreateSecurityGroup(common.NetworkAndComputeShowOne, parser.add_argument( '--project', metavar='', - help=self.enhance_help_neutron(_("Owner's project (name or ID)")) + help=self.enhance_help_neutron(_("Owner's project (name or ID)")), ) stateful_group = parser.add_mutually_exclusive_group() stateful_group.add_argument( "--stateful", action='store_true', default=None, - help=_("Security group is stateful (Default)") + help=_("Security group is stateful (Default)"), ) stateful_group.add_argument( "--stateless", action='store_true', default=None, - help=_("Security group is stateless") + help=_("Security group is stateless"), ) identity_common.add_project_domain_option_to_parser( - parser, enhance_help=self.enhance_help_neutron) + parser, enhance_help=self.enhance_help_neutron + ) _tag.add_tag_option_to_parser_for_create( - parser, _('security group'), - enhance_help=self.enhance_help_neutron) + parser, _('security group'), enhance_help=self.enhance_help_neutron + ) return parser def _get_description(self, parsed_args): @@ -167,7 +165,8 @@ class CreateSecurityGroup(common.NetworkAndComputeShowOne, ).id attrs['project_id'] = project_id attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) # Create the security group and display the results. obj = client.create_security_group(**attrs) @@ -175,9 +174,7 @@ class CreateSecurityGroup(common.NetworkAndComputeShowOne, _tag.update_tags_for_set(client, obj, parsed_args) display_columns, property_columns = _get_columns(obj) data = utils.get_item_properties( - obj, - property_columns, - formatters=_formatters_network + obj, property_columns, formatters=_formatters_network ) return (display_columns, data) @@ -189,9 +186,7 @@ class CreateSecurityGroup(common.NetworkAndComputeShowOne, ) display_columns, property_columns = _get_columns(obj) data = utils.get_dict_properties( - obj, - property_columns, - formatters=_formatters_compute + obj, property_columns, formatters=_formatters_compute ) return (display_columns, data) @@ -241,14 +236,18 @@ class ListSecurityGroup(common.NetworkAndComputeLister): '--project', metavar='', help=self.enhance_help_neutron( - _("List security groups according to the project (name or " - "ID)")) + _( + "List security groups according to the project (name or " + "ID)" + ) + ), ) identity_common.add_project_domain_option_to_parser( - parser, enhance_help=self.enhance_help_neutron) + parser, enhance_help=self.enhance_help_neutron + ) _tag.add_tag_filtering_option_to_parser( - parser, _('security group'), - enhance_help=self.enhance_help_neutron) + parser, _('security group'), enhance_help=self.enhance_help_neutron + ) return parser def update_parser_compute(self, parser): @@ -257,7 +256,8 @@ class ListSecurityGroup(common.NetworkAndComputeLister): action='store_true', default=False, help=self.enhance_help_nova_network( - _("Display information from all projects (admin only)")) + _("Display information from all projects (admin only)") + ), ) return parser @@ -273,27 +273,22 @@ class ListSecurityGroup(common.NetworkAndComputeLister): filters['project_id'] = project_id _tag.get_tag_filtering_args(parsed_args, filters) - data = client.security_groups(fields=self.FIELDS_TO_RETRIEVE, - **filters) + data = client.security_groups( + fields=self.FIELDS_TO_RETRIEVE, **filters + ) - columns = ( - "ID", - "Name", - "Description", - "Project ID", - "tags" + columns = ("ID", "Name", "Description", "Project ID", "tags") + column_headers = ("ID", "Name", "Description", "Project", "Tags") + return ( + column_headers, + ( + utils.get_item_properties( + s, + columns, + ) + for s in data + ), ) - column_headers = ( - "ID", - "Name", - "Description", - "Project", - "Tags" - ) - return (column_headers, - (utils.get_item_properties( - s, columns, - ) for s in data)) def take_action_compute(self, client, parsed_args): search = {'all_tenants': parsed_args.all_projects} @@ -311,56 +306,62 @@ class ListSecurityGroup(common.NetworkAndComputeLister): if parsed_args.all_projects: columns = columns + ('Tenant ID',) column_headers = column_headers + ('Project',) - return (column_headers, - (utils.get_dict_properties( - s, columns, - ) for s in data)) + return ( + column_headers, + ( + utils.get_dict_properties( + s, + columns, + ) + for s in data + ), + ) -class SetSecurityGroup(common.NetworkAndComputeCommand, - common.NeutronCommandWithExtraArgs): +class SetSecurityGroup( + common.NetworkAndComputeCommand, common.NeutronCommandWithExtraArgs +): _description = _("Set security group properties") def update_parser_common(self, parser): parser.add_argument( 'group', metavar='', - help=_("Security group to modify (name or ID)") + help=_("Security group to modify (name or ID)"), ) parser.add_argument( - '--name', - metavar='', - help=_("New security group name") + '--name', metavar='', help=_("New security group name") ) parser.add_argument( "--description", metavar="", - help=_("New security group description") + help=_("New security group description"), ) stateful_group = parser.add_mutually_exclusive_group() stateful_group.add_argument( "--stateful", action='store_true', default=None, - help=_("Security group is stateful (Default)") + help=_("Security group is stateful (Default)"), ) stateful_group.add_argument( "--stateless", action='store_true', default=None, - help=_("Security group is stateless") + help=_("Security group is stateless"), ) return parser def update_parser_network(self, parser): _tag.add_tag_option_to_parser_for_set( - parser, _('security group'), - enhance_help=self.enhance_help_neutron) + parser, _('security group'), enhance_help=self.enhance_help_neutron + ) return parser def take_action_network(self, client, parsed_args): - obj = client.find_security_group(parsed_args.group, - ignore_missing=False) + obj = client.find_security_group( + parsed_args.group, ignore_missing=False + ) attrs = {} if parsed_args.name is not None: attrs['name'] = parsed_args.name @@ -371,7 +372,8 @@ class SetSecurityGroup(common.NetworkAndComputeCommand, if parsed_args.stateless: attrs['stateful'] = False attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) # NOTE(rtheis): Previous behavior did not raise a CommandError # if there were no updates. Maintain this behavior and issue # the update. @@ -405,18 +407,17 @@ class ShowSecurityGroup(common.NetworkAndComputeShowOne): parser.add_argument( 'group', metavar='', - help=_("Security group to display (name or ID)") + help=_("Security group to display (name or ID)"), ) return parser def take_action_network(self, client, parsed_args): - obj = client.find_security_group(parsed_args.group, - ignore_missing=False) + obj = client.find_security_group( + parsed_args.group, ignore_missing=False + ) display_columns, property_columns = _get_columns(obj) data = utils.get_item_properties( - obj, - property_columns, - formatters=_formatters_network + obj, property_columns, formatters=_formatters_network ) return (display_columns, data) @@ -424,9 +425,7 @@ class ShowSecurityGroup(common.NetworkAndComputeShowOne): obj = client.api.security_group_find(parsed_args.group) display_columns, property_columns = _get_columns(obj) data = utils.get_dict_properties( - obj, - property_columns, - formatters=_formatters_compute + obj, property_columns, formatters=_formatters_compute ) return (display_columns, data) @@ -439,15 +438,16 @@ class UnsetSecurityGroup(command.Command): parser.add_argument( 'group', metavar="", - help=_("Security group to modify (name or ID)") + help=_("Security group to modify (name or ID)"), ) _tag.add_tag_option_to_parser_for_unset(parser, _('security group')) return parser def take_action(self, parsed_args): client = self.app.client_manager.network - obj = client.find_security_group(parsed_args.group, - ignore_missing=False) + obj = client.find_security_group( + parsed_args.group, ignore_missing=False + ) # tags is a subresource and it needs to be updated separately. _tag.update_tags_for_unset(client, obj, parsed_args) diff --git a/openstackclient/network/v2/security_group_rule.py b/openstackclient/network/v2/security_group_rule.py index 2179f33d8e..24a1fcfb0d 100644 --- a/openstackclient/network/v2/security_group_rule.py +++ b/openstackclient/network/v2/security_group_rule.py @@ -74,9 +74,7 @@ def _get_columns(item): column_map = {} hidden_columns = ['location', 'tenant_id'] return utils.get_osc_show_columns_for_sdk_resource( - item, - column_map, - hidden_columns + item, column_map, hidden_columns ) @@ -105,23 +103,26 @@ def _is_icmp_protocol(protocol): # TODO(abhiraut): Use the SDK resource mapped attribute names once the # OSC minimum requirements include SDK 1.0. -class CreateSecurityGroupRule(common.NetworkAndComputeShowOne, - common.NeutronCommandWithExtraArgs): +class CreateSecurityGroupRule( + common.NetworkAndComputeShowOne, common.NeutronCommandWithExtraArgs +): _description = _("Create a new security group rule") def update_parser_common(self, parser): parser.add_argument( 'group', metavar='', - help=_("Create rule in this security group (name or ID)") + help=_("Create rule in this security group (name or ID)"), ) remote_group = parser.add_mutually_exclusive_group() remote_group.add_argument( "--remote-ip", metavar="", - help=_("Remote IP address block (may use CIDR notation; " - "default for IPv4 rule: 0.0.0.0/0, " - "default for IPv6 rule: ::/0)"), + help=_( + "Remote IP address block (may use CIDR notation; " + "default for IPv4 rule: 0.0.0.0/0, " + "default for IPv6 rule: ::/0)" + ), ) remote_group.add_argument( "--remote-group", @@ -150,9 +151,11 @@ class CreateSecurityGroupRule(common.NetworkAndComputeShowOne, '--dst-port', metavar='', action=parseractions.RangeAction, - help=_("Destination port, may be a single port or a starting and " - "ending port range: 137:139. Required for IP protocols TCP " - "and UDP. Ignored for ICMP IP protocols."), + help=_( + "Destination port, may be a single port or a starting and " + "ending port range: 137:139. Required for IP protocols TCP " + "and UDP. Ignored for ICMP IP protocols." + ), **dst_port_default ) @@ -170,7 +173,8 @@ class CreateSecurityGroupRule(common.NetworkAndComputeShowOne, "IP protocol (ah, dccp, egp, esp, gre, icmp, igmp, ipv6-encap, " "ipv6-frag, ipv6-icmp, ipv6-nonxt, ipv6-opts, ipv6-route, ospf, " "pgm, rsvp, sctp, tcp, udp, udplite, vrrp and integer " - "representations [0-255] or any; default: any (all protocols))") + "representations [0-255] or any; default: any (all protocols))" + ) if self.is_nova_network: protocol_help = protocol_help_compute elif self.is_neutron: @@ -178,7 +182,8 @@ class CreateSecurityGroupRule(common.NetworkAndComputeShowOne, else: # Docs build: compose help for both nova-network and neutron protocol_help = self.split_help( - protocol_help_network, protocol_help_compute) + protocol_help_network, protocol_help_compute + ) protocol_group.add_argument( '--protocol', @@ -203,34 +208,39 @@ class CreateSecurityGroupRule(common.NetworkAndComputeShowOne, '--description', metavar='', help=self.enhance_help_neutron( - _("Set security group rule description")) + _("Set security group rule description") + ), ) parser.add_argument( '--icmp-type', metavar='', type=int, help=self.enhance_help_neutron( - _("ICMP type for ICMP IP protocols")) + _("ICMP type for ICMP IP protocols") + ), ) parser.add_argument( '--icmp-code', metavar='', type=int, help=self.enhance_help_neutron( - _("ICMP code for ICMP IP protocols")) + _("ICMP code for ICMP IP protocols") + ), ) direction_group = parser.add_mutually_exclusive_group() direction_group.add_argument( '--ingress', action='store_true', help=self.enhance_help_neutron( - _("Rule applies to incoming network traffic (default)")) + _("Rule applies to incoming network traffic (default)") + ), ) direction_group.add_argument( '--egress', action='store_true', help=self.enhance_help_neutron( - _("Rule applies to outgoing network traffic")) + _("Rule applies to outgoing network traffic") + ), ) parser.add_argument( '--ethertype', @@ -238,16 +248,20 @@ class CreateSecurityGroupRule(common.NetworkAndComputeShowOne, choices=['IPv4', 'IPv6'], type=_convert_ipvx_case, help=self.enhance_help_neutron( - _("Ethertype of network traffic " - "(IPv4, IPv6; default: based on IP protocol)")) + _( + "Ethertype of network traffic " + "(IPv4, IPv6; default: based on IP protocol)" + ) + ), ) parser.add_argument( '--project', metavar='', - help=self.enhance_help_neutron(_("Owner's project (name or ID)")) + help=self.enhance_help_neutron(_("Owner's project (name or ID)")), ) identity_common.add_project_domain_option_to_parser( - parser, enhance_help=self.enhance_help_neutron) + parser, enhance_help=self.enhance_help_neutron + ) return parser def _get_protocol(self, parsed_args, default_protocol='any'): @@ -273,8 +287,11 @@ class CreateSecurityGroupRule(common.NetworkAndComputeShowOne, # However, while the OSC CLI doesn't document the protocol, # the code must still handle it. In addition, handle both # protocol names and numbers. - if (protocol is not None and protocol.startswith('ipv6-') or - protocol in ['icmpv6', '41', '43', '44', '58', '59', '60']): + if ( + protocol is not None + and protocol.startswith('ipv6-') + or protocol in ['icmpv6', '41', '43', '44', '58', '59', '60'] + ): return True else: return False @@ -282,8 +299,7 @@ class CreateSecurityGroupRule(common.NetworkAndComputeShowOne, def take_action_network(self, client, parsed_args): # Get the security group ID to hold the rule. security_group_id = client.find_security_group( - parsed_args.group, - ignore_missing=False + parsed_args.group, ignore_missing=False ).id # Build the create attributes. @@ -302,24 +318,31 @@ class CreateSecurityGroupRule(common.NetworkAndComputeShowOne, # NOTE(rtheis): Use ethertype specified else default based # on IP protocol. - attrs['ethertype'] = self._get_ethertype(parsed_args, - attrs['protocol']) + attrs['ethertype'] = self._get_ethertype( + parsed_args, attrs['protocol'] + ) # NOTE(rtheis): Validate the port range and ICMP type and code. # It would be ideal if argparse could do this. - if parsed_args.dst_port and (parsed_args.icmp_type or - parsed_args.icmp_code): - msg = _('Argument --dst-port not allowed with arguments ' - '--icmp-type and --icmp-code') + if parsed_args.dst_port and ( + parsed_args.icmp_type or parsed_args.icmp_code + ): + msg = _( + 'Argument --dst-port not allowed with arguments ' + '--icmp-type and --icmp-code' + ) raise exceptions.CommandError(msg) if parsed_args.icmp_type is None and parsed_args.icmp_code is not None: msg = _('Argument --icmp-type required with argument --icmp-code') raise exceptions.CommandError(msg) is_icmp_protocol = _is_icmp_protocol(attrs['protocol']) - if not is_icmp_protocol and (parsed_args.icmp_type or - parsed_args.icmp_code): - msg = _('ICMP IP protocol required with arguments ' - '--icmp-type and --icmp-code') + if not is_icmp_protocol and ( + parsed_args.icmp_type or parsed_args.icmp_code + ): + msg = _( + 'ICMP IP protocol required with arguments ' + '--icmp-type and --icmp-code' + ) raise exceptions.CommandError(msg) # NOTE(rtheis): For backwards compatibility, continue ignoring # the destination port range when an ICMP IP protocol is specified. @@ -333,13 +356,11 @@ class CreateSecurityGroupRule(common.NetworkAndComputeShowOne, if parsed_args.remote_group is not None: attrs['remote_group_id'] = client.find_security_group( - parsed_args.remote_group, - ignore_missing=False + parsed_args.remote_group, ignore_missing=False ).id elif parsed_args.remote_address_group is not None: attrs['remote_address_group_id'] = client.find_address_group( - parsed_args.remote_address_group, - ignore_missing=False + parsed_args.remote_address_group, ignore_missing=False ).id elif parsed_args.remote_ip is not None: attrs['remote_ip_prefix'] = parsed_args.remote_ip @@ -358,7 +379,8 @@ class CreateSecurityGroupRule(common.NetworkAndComputeShowOne, attrs['project_id'] = project_id attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) # Create and show the security group rule. obj = client.create_security_group_rule(**attrs) @@ -407,13 +429,12 @@ class DeleteSecurityGroupRule(common.NetworkAndComputeDelete): 'rule', metavar='', nargs="+", - help=_("Security group rule(s) to delete (ID only)") + help=_("Security group rule(s) to delete (ID only)"), ) return parser def take_action_network(self, client, parsed_args): - obj = client.find_security_group_rule( - self.r, ignore_missing=False) + obj = client.find_security_group_rule(self.r, ignore_missing=False) client.delete_security_group_rule(obj) def take_action_compute(self, client, parsed_args): @@ -439,7 +460,7 @@ class ListSecurityGroupRule(common.NetworkAndComputeLister): 'group', metavar='', nargs='?', - help=_("List all rules in this security group (name or ID)") + help=_("List all rules in this security group (name or ID)"), ) return parser @@ -451,7 +472,7 @@ class ListSecurityGroupRule(common.NetworkAndComputeLister): '--all-projects', action='store_true', default=False, - help=argparse.SUPPRESS + help=argparse.SUPPRESS, ) parser.add_argument( @@ -459,38 +480,46 @@ class ListSecurityGroupRule(common.NetworkAndComputeLister): metavar='', type=_convert_to_lowercase, help=self.enhance_help_neutron( - _("List rules by the IP protocol (ah, dhcp, egp, esp, gre, " - "icmp, igmp, ipv6-encap, ipv6-frag, ipv6-icmp, ipv6-nonxt, " - "ipv6-opts, ipv6-route, ospf, pgm, rsvp, sctp, tcp, udp, " - "udplite, vrrp and integer representations [0-255] or any; " - "default: any (all protocols))")) + _( + "List rules by the IP protocol (ah, dhcp, egp, esp, gre, " + "icmp, igmp, ipv6-encap, ipv6-frag, ipv6-icmp, " + "ipv6-nonxt, ipv6-opts, ipv6-route, ospf, pgm, rsvp, " + "sctp, tcp, udp, udplite, vrrp and integer " + "representations [0-255] or any; " + "default: any (all protocols))" + ) + ), ) parser.add_argument( '--ethertype', metavar='', type=_convert_to_lowercase, help=self.enhance_help_neutron( - _("List rules by the Ethertype (IPv4 or IPv6)")) + _("List rules by the Ethertype (IPv4 or IPv6)") + ), ) direction_group = parser.add_mutually_exclusive_group() direction_group.add_argument( '--ingress', action='store_true', help=self.enhance_help_neutron( - _("List rules applied to incoming network traffic")) + _("List rules applied to incoming network traffic") + ), ) direction_group.add_argument( '--egress', action='store_true', help=self.enhance_help_neutron( - _("List rules applied to outgoing network traffic")) + _("List rules applied to outgoing network traffic") + ), ) parser.add_argument( '--long', action='store_true', default=False, help=self.enhance_help_neutron( - _("**Deprecated** This argument is no longer needed")) + _("**Deprecated** This argument is no longer needed") + ), ) return parser @@ -500,7 +529,8 @@ class ListSecurityGroupRule(common.NetworkAndComputeLister): action='store_true', default=False, help=self.enhance_help_nova_network( - _("Display information from all projects (admin only)")) + _("Display information from all projects (admin only)") + ), ) if not self.is_docs_build: # Accept but hide the argument for consistency with network. @@ -509,7 +539,7 @@ class ListSecurityGroupRule(common.NetworkAndComputeLister): '--long', action='store_false', default=False, - help=argparse.SUPPRESS + help=argparse.SUPPRESS, ) return parser @@ -531,9 +561,10 @@ class ListSecurityGroupRule(common.NetworkAndComputeLister): def take_action_network(self, client, parsed_args): if parsed_args.long: - self.log.warning(_( + msg = _( "The --long option has been deprecated and is no longer needed" - )) + ) + self.log.warning(msg) column_headers = self._get_column_headers(parsed_args) columns = ( @@ -554,8 +585,7 @@ class ListSecurityGroupRule(common.NetworkAndComputeLister): # does not contain security group rules resources. So use # the security group ID in a query to get the resources. security_group_id = client.find_security_group( - parsed_args.group, - ignore_missing=False + parsed_args.group, ignore_missing=False ).id query = {'security_group_id': security_group_id} else: @@ -573,10 +603,16 @@ class ListSecurityGroupRule(common.NetworkAndComputeLister): for r in client.security_group_rules(**query) ] - return (column_headers, - (utils.get_dict_properties( - s, columns, - ) for s in rules)) + return ( + column_headers, + ( + utils.get_dict_properties( + s, + columns, + ) + for s in rules + ), + ) def take_action_compute(self, client, parsed_args): column_headers = self._get_column_headers(parsed_args) @@ -612,10 +648,16 @@ class ListSecurityGroupRule(common.NetworkAndComputeLister): # network_utils.transform_compute_security_group_rule(rule), # )) - return (column_headers, - (utils.get_dict_properties( - s, columns, - ) for s in rules)) + return ( + column_headers, + ( + utils.get_dict_properties( + s, + columns, + ) + for s in rules + ), + ) class ShowSecurityGroupRule(common.NetworkAndComputeShowOne): @@ -625,13 +667,14 @@ class ShowSecurityGroupRule(common.NetworkAndComputeShowOne): parser.add_argument( 'rule', metavar="", - help=_("Security group rule to display (ID only)") + help=_("Security group rule to display (ID only)"), ) return parser def take_action_network(self, client, parsed_args): - obj = client.find_security_group_rule(parsed_args.rule, - ignore_missing=False) + obj = client.find_security_group_rule( + parsed_args.rule, ignore_missing=False + ) # necessary for old rules that have None in this field if not obj['remote_ip_prefix']: obj['remote_ip_prefix'] = _format_remote_ip_prefix(obj) @@ -654,8 +697,10 @@ class ShowSecurityGroupRule(common.NetworkAndComputeShowOne): break if obj is None: - msg = _("Could not find security group rule " - "with ID '%s'") % parsed_args.rule + msg = ( + _("Could not find security group rule " "with ID '%s'") + % parsed_args.rule + ) raise exceptions.CommandError(msg) # NOTE(rtheis): Format security group rule diff --git a/openstackclient/network/v2/subnet.py b/openstackclient/network/v2/subnet.py index 8e3a877ffd..32b2493a07 100644 --- a/openstackclient/network/v2/subnet.py +++ b/openstackclient/network/v2/subnet.py @@ -36,16 +36,19 @@ def _update_arguments(obj_list, parsed_args_list, option): try: obj_list.remove(item) except ValueError: - msg = (_("Subnet does not contain %(option)s %(value)s") % - {'option': option, 'value': item}) + msg = _("Subnet does not contain %(option)s %(value)s") % { + 'option': option, + 'value': item, + } raise exceptions.CommandError(msg) class AllocationPoolsColumn(cliff_columns.FormattableColumn): def human_readable(self): - pool_formatted = ['%s-%s' % (pool.get('start', ''), - pool.get('end', '')) - for pool in self._value] + pool_formatted = [ + '%s-%s' % (pool.get('start', ''), pool.get('end', '')) + for pool in self._value + ] return ','.join(pool_formatted) @@ -53,7 +56,8 @@ class HostRoutesColumn(cliff_columns.FormattableColumn): def human_readable(self): # Map the host route keys to match --host-route option. return utils.format_list_of_dicts( - convert_entries_to_gateway(self._value)) + convert_entries_to_gateway(self._value) + ) _formatters = { @@ -72,34 +76,42 @@ def _get_common_parse_arguments(parser, is_create=True): dest='allocation_pools', action=parseractions.MultiKeyValueAction, required_keys=['start', 'end'], - help=_("Allocation pool IP addresses for this subnet " - "e.g.: start=192.168.199.2,end=192.168.199.254 " - "(repeat option to add multiple IP addresses)") + help=_( + "Allocation pool IP addresses for this subnet " + "e.g.: start=192.168.199.2,end=192.168.199.254 " + "(repeat option to add multiple IP addresses)" + ), ) if not is_create: parser.add_argument( '--no-allocation-pool', action='store_true', - help=_("Clear associated allocation-pools from the subnet. " - "Specify both --allocation-pool and --no-allocation-pool " - "to overwrite the current allocation pool information.") + help=_( + "Clear associated allocation-pools from the subnet. " + "Specify both --allocation-pool and --no-allocation-pool " + "to overwrite the current allocation pool information." + ), ) parser.add_argument( '--dns-nameserver', metavar='', action='append', dest='dns_nameservers', - help=_("DNS server for this subnet " - "(repeat option to set multiple DNS servers)") + help=_( + "DNS server for this subnet " + "(repeat option to set multiple DNS servers)" + ), ) if not is_create: parser.add_argument( '--no-dns-nameservers', action='store_true', - help=_("Clear existing information of DNS Nameservers. " - "Specify both --dns-nameserver and --no-dns-nameserver " - "to overwrite the current DNS Nameserver information.") + help=_( + "Clear existing information of DNS Nameservers. " + "Specify both --dns-nameserver and --no-dns-nameserver " + "to overwrite the current DNS Nameserver information." + ), ) parser.add_argument( '--host-route', @@ -107,29 +119,35 @@ def _get_common_parse_arguments(parser, is_create=True): dest='host_routes', action=parseractions.MultiKeyValueAction, required_keys=['destination', 'gateway'], - help=_("Additional route for this subnet " - "e.g.: destination=10.10.0.0/16,gateway=192.168.71.254 " - "destination: destination subnet (in CIDR notation) " - "gateway: nexthop IP address " - "(repeat option to add multiple routes)") + help=_( + "Additional route for this subnet " + "e.g.: destination=10.10.0.0/16,gateway=192.168.71.254 " + "destination: destination subnet (in CIDR notation) " + "gateway: nexthop IP address " + "(repeat option to add multiple routes)" + ), ) if not is_create: parser.add_argument( '--no-host-route', action='store_true', - help=_("Clear associated host-routes from the subnet. " - "Specify both --host-route and --no-host-route " - "to overwrite the current host route information.") + help=_( + "Clear associated host-routes from the subnet. " + "Specify both --host-route and --no-host-route " + "to overwrite the current host route information." + ), ) parser.add_argument( '--service-type', metavar='', action='append', dest='service_types', - help=_("Service type for this subnet " - "e.g.: network:floatingip_agent_gateway. " - "Must be a valid device owner value for a network port " - "(repeat option to set multiple service types)") + help=_( + "Service type for this subnet " + "e.g.: network:floatingip_agent_gateway. " + "Must be a valid device owner value for a network port " + "(repeat option to set multiple service types)" + ), ) @@ -146,9 +164,7 @@ def _get_columns(item): 'tenant_id', ] return utils.get_osc_show_columns_for_sdk_resource( - item, - column_map, - hidden_columns + item, column_map, hidden_columns ) @@ -189,11 +205,13 @@ def _get_attrs(client_manager, parsed_args, is_create=True): parsed_args.project_domain, ).id attrs['project_id'] = project_id - attrs['network_id'] = client.find_network(parsed_args.network, - ignore_missing=False).id + attrs['network_id'] = client.find_network( + parsed_args.network, ignore_missing=False + ).id if parsed_args.subnet_pool is not None: - subnet_pool = client.find_subnet_pool(parsed_args.subnet_pool, - ignore_missing=False) + subnet_pool = client.find_subnet_pool( + parsed_args.subnet_pool, ignore_missing=False + ) attrs['subnetpool_id'] = subnet_pool.id if parsed_args.use_prefix_delegation: attrs['subnetpool_id'] = "prefix_delegation" @@ -212,21 +230,26 @@ def _get_attrs(client_manager, parsed_args, is_create=True): if parsed_args.network_segment is not None: attrs['segment_id'] = client.find_segment( - parsed_args.network_segment, ignore_missing=False).id + parsed_args.network_segment, ignore_missing=False + ).id if 'gateway' in parsed_args and parsed_args.gateway is not None: gateway = parsed_args.gateway.lower() if not is_create and gateway == 'auto': - msg = _("Auto option is not available for Subnet Set. " - "Valid options are or none") + msg = _( + "Auto option is not available for Subnet Set. " + "Valid options are or none" + ) raise exceptions.CommandError(msg) elif gateway != 'auto': if gateway == 'none': attrs['gateway_ip'] = None else: attrs['gateway_ip'] = gateway - if ('allocation_pools' in parsed_args and - parsed_args.allocation_pools is not None): + if ( + 'allocation_pools' in parsed_args + and parsed_args.allocation_pools is not None + ): attrs['allocation_pools'] = parsed_args.allocation_pools if parsed_args.dhcp: attrs['enable_dhcp'] = True @@ -236,15 +259,20 @@ def _get_attrs(client_manager, parsed_args, is_create=True): attrs['dns_publish_fixed_ip'] = True if parsed_args.no_dns_publish_fixed_ip: attrs['dns_publish_fixed_ip'] = False - if ('dns_nameservers' in parsed_args and - parsed_args.dns_nameservers is not None): + if ( + 'dns_nameservers' in parsed_args + and parsed_args.dns_nameservers is not None + ): attrs['dns_nameservers'] = parsed_args.dns_nameservers if 'host_routes' in parsed_args and parsed_args.host_routes is not None: # Change 'gateway' entry to 'nexthop' to match the API attrs['host_routes'] = convert_entries_to_nexthop( - parsed_args.host_routes) - if ('service_types' in parsed_args and - parsed_args.service_types is not None): + parsed_args.host_routes + ) + if ( + 'service_types' in parsed_args + and parsed_args.service_types is not None + ): attrs['service_types'] = parsed_args.service_types if parsed_args.description is not None: attrs['description'] = parsed_args.description @@ -259,115 +287,124 @@ class CreateSubnet(command.ShowOne, common.NeutronCommandWithExtraArgs): def get_parser(self, prog_name): parser = super(CreateSubnet, self).get_parser(prog_name) parser.add_argument( - 'name', - metavar='', - help=_("New subnet name") + 'name', metavar='', help=_("New subnet name") ) parser.add_argument( '--project', metavar='', - help=_("Owner's project (name or ID)") + help=_("Owner's project (name or ID)"), ) identity_common.add_project_domain_option_to_parser(parser) subnet_pool_group = parser.add_mutually_exclusive_group() subnet_pool_group.add_argument( '--subnet-pool', metavar='', - help=_("Subnet pool from which this subnet will obtain a CIDR " - "(Name or ID)") + help=_( + "Subnet pool from which this subnet will obtain a CIDR " + "(Name or ID)" + ), ) subnet_pool_group.add_argument( '--use-prefix-delegation', - help=_("Use 'prefix-delegation' if IP is IPv6 format " - "and IP would be delegated externally") + help=_( + "Use 'prefix-delegation' if IP is IPv6 format " + "and IP would be delegated externally" + ), ) subnet_pool_group.add_argument( '--use-default-subnet-pool', action='store_true', - help=_("Use default subnet pool for --ip-version") + help=_("Use default subnet pool for --ip-version"), ) parser.add_argument( '--prefix-length', metavar='', - help=_("Prefix length for subnet allocation from subnet pool") + help=_("Prefix length for subnet allocation from subnet pool"), ) parser.add_argument( '--subnet-range', metavar='', - help=_("Subnet range in CIDR notation " - "(required if --subnet-pool is not specified, " - "optional otherwise)") + help=_( + "Subnet range in CIDR notation " + "(required if --subnet-pool is not specified, " + "optional otherwise)" + ), ) dhcp_enable_group = parser.add_mutually_exclusive_group() dhcp_enable_group.add_argument( - '--dhcp', - action='store_true', - help=_("Enable DHCP (default)") + '--dhcp', action='store_true', help=_("Enable DHCP (default)") ) dhcp_enable_group.add_argument( - '--no-dhcp', - action='store_true', - help=_("Disable DHCP") + '--no-dhcp', action='store_true', help=_("Disable DHCP") ) dns_publish_fixed_ip_group = parser.add_mutually_exclusive_group() dns_publish_fixed_ip_group.add_argument( '--dns-publish-fixed-ip', action='store_true', - help=_("Enable publishing fixed IPs in DNS") + help=_("Enable publishing fixed IPs in DNS"), ) dns_publish_fixed_ip_group.add_argument( '--no-dns-publish-fixed-ip', action='store_true', - help=_("Disable publishing fixed IPs in DNS (default)") + help=_("Disable publishing fixed IPs in DNS (default)"), ) parser.add_argument( '--gateway', metavar='', default='auto', - help=_("Specify a gateway for the subnet. The three options are: " - ": Specific IP address to use as the gateway, " - "'auto': Gateway address should automatically be chosen " - "from within the subnet itself, 'none': This subnet will " - "not use a gateway, e.g.: --gateway 192.168.9.1, " - "--gateway auto, --gateway none (default is 'auto').") + help=_( + "Specify a gateway for the subnet. The three options are: " + ": Specific IP address to use as the gateway, " + "'auto': Gateway address should automatically be chosen " + "from within the subnet itself, 'none': This subnet will " + "not use a gateway, e.g.: --gateway 192.168.9.1, " + "--gateway auto, --gateway none (default is 'auto')." + ), ) parser.add_argument( '--ip-version', type=int, default=4, choices=[4, 6], - help=_("IP version (default is 4). Note that when subnet pool is " - "specified, IP version is determined from the subnet pool " - "and this option is ignored.") + help=_( + "IP version (default is 4). Note that when subnet pool is " + "specified, IP version is determined from the subnet pool " + "and this option is ignored." + ), ) parser.add_argument( '--ipv6-ra-mode', choices=['dhcpv6-stateful', 'dhcpv6-stateless', 'slaac'], - help=_("IPv6 RA (Router Advertisement) mode, " - "valid modes: [dhcpv6-stateful, dhcpv6-stateless, slaac]") + help=_( + "IPv6 RA (Router Advertisement) mode, " + "valid modes: [dhcpv6-stateful, dhcpv6-stateless, slaac]" + ), ) parser.add_argument( '--ipv6-address-mode', choices=['dhcpv6-stateful', 'dhcpv6-stateless', 'slaac'], - help=_("IPv6 address mode, " - "valid modes: [dhcpv6-stateful, dhcpv6-stateless, slaac]") + help=_( + "IPv6 address mode, " + "valid modes: [dhcpv6-stateful, dhcpv6-stateless, slaac]" + ), ) parser.add_argument( '--network-segment', metavar='', - help=_("Network segment to associate with this subnet " - "(name or ID)") + help=_( + "Network segment to associate with this subnet " "(name or ID)" + ), ) parser.add_argument( '--network', required=True, metavar='', - help=_("Network this subnet belongs to (name or ID)") + help=_("Network this subnet belongs to (name or ID)"), ) parser.add_argument( '--description', metavar='', - help=_("Set subnet description") + help=_("Set subnet description"), ) _get_common_parse_arguments(parser) _tag.add_tag_option_to_parser_for_create(parser, _('subnet')) @@ -377,7 +414,8 @@ class CreateSubnet(command.ShowOne, common.NeutronCommandWithExtraArgs): client = self.app.client_manager.network attrs = _get_attrs(self.app.client_manager, parsed_args) attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) obj = client.create_subnet(**attrs) # tags cannot be set when created, so tags need to be set later. _tag.update_tags_for_set(client, obj, parsed_args) @@ -395,7 +433,7 @@ class DeleteSubnet(command.Command): 'subnet', metavar="", nargs='+', - help=_("Subnet(s) to delete (name or ID)") + help=_("Subnet(s) to delete (name or ID)"), ) return parser @@ -409,14 +447,20 @@ class DeleteSubnet(command.Command): client.delete_subnet(obj) except Exception as e: result += 1 - LOG.error(_("Failed to delete subnet with " - "name or ID '%(subnet)s': %(e)s"), - {'subnet': subnet, 'e': e}) + LOG.error( + _( + "Failed to delete subnet with " + "name or ID '%(subnet)s': %(e)s" + ), + {'subnet': subnet, 'e': e}, + ) if result > 0: total = len(parsed_args.subnet) - msg = (_("%(result)s of %(total)s subnets failed " - "to delete.") % {'result': result, 'total': total}) + msg = _("%(result)s of %(total)s subnets failed " "to delete.") % { + 'result': result, + 'total': total, + } raise exceptions.CommandError(msg) @@ -431,7 +475,7 @@ class ListSubnet(command.Lister): '--long', action='store_true', default=False, - help=_("List additional fields in output") + help=_("List additional fields in output"), ) parser.add_argument( '--ip-version', @@ -439,65 +483,77 @@ class ListSubnet(command.Lister): choices=[4, 6], metavar='', dest='ip_version', - help=_("List only subnets of given IP version in output. " - "Allowed values for IP version are 4 and 6."), + help=_( + "List only subnets of given IP version in output. " + "Allowed values for IP version are 4 and 6." + ), ) dhcp_enable_group = parser.add_mutually_exclusive_group() dhcp_enable_group.add_argument( '--dhcp', action='store_true', - help=_("List subnets which have DHCP enabled") + help=_("List subnets which have DHCP enabled"), ) dhcp_enable_group.add_argument( '--no-dhcp', action='store_true', - help=_("List subnets which have DHCP disabled") + help=_("List subnets which have DHCP disabled"), ) parser.add_argument( '--service-type', metavar='', action='append', dest='service_types', - help=_("List only subnets of a given service type in output " - "e.g.: network:floatingip_agent_gateway. " - "Must be a valid device owner value for a network port " - "(repeat option to list multiple service types)") + help=_( + "List only subnets of a given service type in output " + "e.g.: network:floatingip_agent_gateway. " + "Must be a valid device owner value for a network port " + "(repeat option to list multiple service types)" + ), ) parser.add_argument( '--project', metavar='', - help=_("List only subnets which belong to a given project " - "in output (name or ID)") + help=_( + "List only subnets which belong to a given project " + "in output (name or ID)" + ), ) identity_common.add_project_domain_option_to_parser(parser) parser.add_argument( '--network', metavar='', - help=_("List only subnets which belong to a given network " - "in output (name or ID)") + help=_( + "List only subnets which belong to a given network " + "in output (name or ID)" + ), ) parser.add_argument( '--gateway', metavar='', - help=_("List only subnets of given gateway IP in output") + help=_("List only subnets of given gateway IP in output"), ) parser.add_argument( '--name', metavar='', - help=_("List only subnets of given name in output") + help=_("List only subnets of given name in output"), ) parser.add_argument( '--subnet-range', metavar='', - help=_("List only subnets of given subnet range " - "(in CIDR notation) in output " - "e.g.: --subnet-range 10.10.0.0/16") + help=_( + "List only subnets of given subnet range " + "(in CIDR notation) in output " + "e.g.: --subnet-range 10.10.0.0/16" + ), ) parser.add_argument( '--subnet-pool', metavar='', - help=_("List only subnets which belong to a given subnet pool " - "in output (Name or ID)") + help=_( + "List only subnets which belong to a given subnet pool " + "in output (Name or ID)" + ), ) _tag.add_tag_filtering_option_to_parser(parser, _('subnets')) return parser @@ -524,8 +580,9 @@ class ListSubnet(command.Lister): ).id filters['project_id'] = project_id if parsed_args.network: - network_id = network_client.find_network(parsed_args.network, - ignore_missing=False).id + network_id = network_client.find_network( + parsed_args.network, ignore_missing=False + ).id filters['network_id'] = network_id if parsed_args.gateway: filters['gateway_ip'] = parsed_args.gateway @@ -535,7 +592,8 @@ class ListSubnet(command.Lister): filters['cidr'] = parsed_args.subnet_range if parsed_args.subnet_pool: subnetpool_id = network_client.find_subnet_pool( - parsed_args.subnet_pool, ignore_missing=False).id + parsed_args.subnet_pool, ignore_missing=False + ).id filters['subnetpool_id'] = subnetpool_id _tag.get_tag_filtering_args(parsed_args, filters) data = network_client.subnets(**filters) @@ -543,18 +601,40 @@ class ListSubnet(command.Lister): headers = ('ID', 'Name', 'Network', 'Subnet') columns = ('id', 'name', 'network_id', 'cidr') if parsed_args.long: - headers += ('Project', 'DHCP', 'Name Servers', - 'Allocation Pools', 'Host Routes', 'IP Version', - 'Gateway', 'Service Types', 'Tags') - columns += ('project_id', 'is_dhcp_enabled', 'dns_nameservers', - 'allocation_pools', 'host_routes', 'ip_version', - 'gateway_ip', 'service_types', 'tags') + headers += ( + 'Project', + 'DHCP', + 'Name Servers', + 'Allocation Pools', + 'Host Routes', + 'IP Version', + 'Gateway', + 'Service Types', + 'Tags', + ) + columns += ( + 'project_id', + 'is_dhcp_enabled', + 'dns_nameservers', + 'allocation_pools', + 'host_routes', + 'ip_version', + 'gateway_ip', + 'service_types', + 'tags', + ) - return (headers, - (utils.get_item_properties( - s, columns, + return ( + headers, + ( + utils.get_item_properties( + s, + columns, formatters=_formatters, - ) for s in data)) + ) + for s in data + ), + ) # TODO(abhiraut): Use the SDK resource mapped attribute names once the @@ -567,56 +647,53 @@ class SetSubnet(common.NeutronCommandWithExtraArgs): parser.add_argument( 'subnet', metavar="", - help=_("Subnet to modify (name or ID)") + help=_("Subnet to modify (name or ID)"), ) parser.add_argument( - '--name', - metavar='', - help=_("Updated name of the subnet") + '--name', metavar='', help=_("Updated name of the subnet") ) dhcp_enable_group = parser.add_mutually_exclusive_group() dhcp_enable_group.add_argument( - '--dhcp', - action='store_true', - default=None, - help=_("Enable DHCP") + '--dhcp', action='store_true', default=None, help=_("Enable DHCP") ) dhcp_enable_group.add_argument( - '--no-dhcp', - action='store_true', - help=_("Disable DHCP") + '--no-dhcp', action='store_true', help=_("Disable DHCP") ) dns_publish_fixed_ip_group = parser.add_mutually_exclusive_group() dns_publish_fixed_ip_group.add_argument( '--dns-publish-fixed-ip', action='store_true', - help=_("Enable publishing fixed IPs in DNS") + help=_("Enable publishing fixed IPs in DNS"), ) dns_publish_fixed_ip_group.add_argument( '--no-dns-publish-fixed-ip', action='store_true', - help=_("Disable publishing fixed IPs in DNS") + help=_("Disable publishing fixed IPs in DNS"), ) parser.add_argument( '--gateway', metavar='', - help=_("Specify a gateway for the subnet. The options are: " - ": Specific IP address to use as the gateway, " - "'none': This subnet will not use a gateway, " - "e.g.: --gateway 192.168.9.1, --gateway none.") + help=_( + "Specify a gateway for the subnet. The options are: " + ": Specific IP address to use as the gateway, " + "'none': This subnet will not use a gateway, " + "e.g.: --gateway 192.168.9.1, --gateway none." + ), ) parser.add_argument( '--network-segment', metavar='', - help=_("Network segment to associate with this subnet (name or " - "ID). It is only allowed to set the segment if the current " - "value is `None`, the network must also have only one " - "segment and only one subnet can exist on the network.") + help=_( + "Network segment to associate with this subnet (name or " + "ID). It is only allowed to set the segment if the current " + "value is `None`, the network must also have only one " + "segment and only one subnet can exist on the network." + ), ) parser.add_argument( '--description', metavar='', - help=_("Set subnet description") + help=_("Set subnet description"), ) _tag.add_tag_option_to_parser_for_set(parser, _('subnet')) _get_common_parse_arguments(parser, is_create=False) @@ -625,8 +702,9 @@ class SetSubnet(common.NeutronCommandWithExtraArgs): def take_action(self, parsed_args): client = self.app.client_manager.network obj = client.find_subnet(parsed_args.subnet, ignore_missing=False) - attrs = _get_attrs(self.app.client_manager, parsed_args, - is_create=False) + attrs = _get_attrs( + self.app.client_manager, parsed_args, is_create=False + ) if 'dns_nameservers' in attrs: if not parsed_args.no_dns_nameservers: attrs['dns_nameservers'] += obj.dns_nameservers @@ -645,7 +723,8 @@ class SetSubnet(common.NeutronCommandWithExtraArgs): if 'service_types' in attrs: attrs['service_types'] += obj.service_types attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) if attrs: client.update_subnet(obj, **attrs) # tags is a subresource and it needs to be updated separately. @@ -661,13 +740,14 @@ class ShowSubnet(command.ShowOne): parser.add_argument( 'subnet', metavar="", - help=_("Subnet to display (name or ID)") + help=_("Subnet to display (name or ID)"), ) return parser def take_action(self, parsed_args): - obj = self.app.client_manager.network.find_subnet(parsed_args.subnet, - ignore_missing=False) + obj = self.app.client_manager.network.find_subnet( + parsed_args.subnet, ignore_missing=False + ) display_columns, columns = _get_columns(obj) data = utils.get_item_properties(obj, columns, formatters=_formatters) return (display_columns, data) @@ -684,22 +764,26 @@ class UnsetSubnet(common.NeutronUnsetCommandWithExtraArgs): dest='allocation_pools', action=parseractions.MultiKeyValueAction, required_keys=['start', 'end'], - help=_('Allocation pool IP addresses to be removed from this ' - 'subnet e.g.: start=192.168.199.2,end=192.168.199.254 ' - '(repeat option to unset multiple allocation pools)') + help=_( + 'Allocation pool IP addresses to be removed from this ' + 'subnet e.g.: start=192.168.199.2,end=192.168.199.254 ' + '(repeat option to unset multiple allocation pools)' + ), ) parser.add_argument( '--gateway', action='store_true', - help=_("Remove gateway IP from this subnet") + help=_("Remove gateway IP from this subnet"), ) parser.add_argument( '--dns-nameserver', metavar='', action='append', dest='dns_nameservers', - help=_('DNS server to be removed from this subnet ' - '(repeat option to unset multiple DNS servers)') + help=_( + 'DNS server to be removed from this subnet ' + '(repeat option to unset multiple DNS servers)' + ), ) parser.add_argument( '--host-route', @@ -707,27 +791,31 @@ class UnsetSubnet(common.NeutronUnsetCommandWithExtraArgs): dest='host_routes', action=parseractions.MultiKeyValueAction, required_keys=['destination', 'gateway'], - help=_('Route to be removed from this subnet ' - 'e.g.: destination=10.10.0.0/16,gateway=192.168.71.254 ' - 'destination: destination subnet (in CIDR notation) ' - 'gateway: nexthop IP address ' - '(repeat option to unset multiple host routes)') + help=_( + 'Route to be removed from this subnet ' + 'e.g.: destination=10.10.0.0/16,gateway=192.168.71.254 ' + 'destination: destination subnet (in CIDR notation) ' + 'gateway: nexthop IP address ' + '(repeat option to unset multiple host routes)' + ), ) parser.add_argument( '--service-type', metavar='', action='append', dest='service_types', - help=_('Service type to be removed from this subnet ' - 'e.g.: network:floatingip_agent_gateway. ' - 'Must be a valid device owner value for a network port ' - '(repeat option to unset multiple service types)') + help=_( + 'Service type to be removed from this subnet ' + 'e.g.: network:floatingip_agent_gateway. ' + 'Must be a valid device owner value for a network port ' + '(repeat option to unset multiple service types)' + ), ) _tag.add_tag_option_to_parser_for_unset(parser, _('subnet')) parser.add_argument( 'subnet', metavar="", - help=_("Subnet to modify (name or ID)") + help=_("Subnet to modify (name or ID)"), ) return parser @@ -740,28 +828,36 @@ class UnsetSubnet(common.NeutronUnsetCommandWithExtraArgs): attrs['gateway_ip'] = None if parsed_args.dns_nameservers: attrs['dns_nameservers'] = copy.deepcopy(obj.dns_nameservers) - _update_arguments(attrs['dns_nameservers'], - parsed_args.dns_nameservers, - 'dns-nameserver') + _update_arguments( + attrs['dns_nameservers'], + parsed_args.dns_nameservers, + 'dns-nameserver', + ) if parsed_args.host_routes: attrs['host_routes'] = copy.deepcopy(obj.host_routes) _update_arguments( attrs['host_routes'], convert_entries_to_nexthop(parsed_args.host_routes), - 'host-route') + 'host-route', + ) if parsed_args.allocation_pools: attrs['allocation_pools'] = copy.deepcopy(obj.allocation_pools) - _update_arguments(attrs['allocation_pools'], - parsed_args.allocation_pools, - 'allocation-pool') + _update_arguments( + attrs['allocation_pools'], + parsed_args.allocation_pools, + 'allocation-pool', + ) if parsed_args.service_types: attrs['service_types'] = copy.deepcopy(obj.service_types) - _update_arguments(attrs['service_types'], - parsed_args.service_types, - 'service-type') + _update_arguments( + attrs['service_types'], + parsed_args.service_types, + 'service-type', + ) attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) if attrs: client.update_subnet(obj, **attrs) diff --git a/openstackclient/network/v2/subnet_pool.py b/openstackclient/network/v2/subnet_pool.py index 2369960ecb..833fe3257f 100644 --- a/openstackclient/network/v2/subnet_pool.py +++ b/openstackclient/network/v2/subnet_pool.py @@ -39,9 +39,7 @@ def _get_columns(item): } hidden_columns = ['location', 'tenant_id'] return utils.get_osc_show_columns_for_sdk_resource( - item, - column_map, - hidden_columns + item, column_map, hidden_columns ) @@ -68,7 +66,8 @@ def _get_attrs(client_manager, parsed_args): if parsed_args.address_scope is not None: attrs['address_scope_id'] = network_client.find_address_scope( - parsed_args.address_scope, ignore_missing=False).id + parsed_args.address_scope, ignore_missing=False + ).id if 'no_address_scope' in parsed_args and parsed_args.no_address_scope: attrs['address_scope_id'] = None @@ -108,29 +107,31 @@ def _add_prefix_options(parser, for_create=False): dest='prefixes', action='append', required=for_create, - help=_("Set subnet pool prefixes (in CIDR notation) " - "(repeat option to set multiple prefixes)") + help=_( + "Set subnet pool prefixes (in CIDR notation) " + "(repeat option to set multiple prefixes)" + ), ) parser.add_argument( '--default-prefix-length', metavar='', type=int, action=parseractions.NonNegativeAction, - help=_("Set subnet pool default prefix length") + help=_("Set subnet pool default prefix length"), ) parser.add_argument( '--min-prefix-length', metavar='', action=parseractions.NonNegativeAction, type=int, - help=_("Set subnet pool minimum prefix length") + help=_("Set subnet pool minimum prefix length"), ) parser.add_argument( '--max-prefix-length', metavar='', type=int, action=parseractions.NonNegativeAction, - help=_("Set subnet pool maximum prefix length") + help=_("Set subnet pool maximum prefix length"), ) @@ -156,23 +157,23 @@ class CreateSubnetPool(command.ShowOne, common.NeutronCommandWithExtraArgs): def get_parser(self, prog_name): parser = super(CreateSubnetPool, self).get_parser(prog_name) parser.add_argument( - 'name', - metavar='', - help=_("Name of the new subnet pool") + 'name', metavar='', help=_("Name of the new subnet pool") ) _add_prefix_options(parser, for_create=True) parser.add_argument( '--project', metavar='', - help=_("Owner's project (name or ID)") + help=_("Owner's project (name or ID)"), ) identity_common.add_project_domain_option_to_parser(parser) parser.add_argument( '--address-scope', metavar='', - help=_("Set address scope associated with the subnet pool " - "(name or ID), prefixes must be unique across address " - "scopes") + help=_( + "Set address scope associated with the subnet pool " + "(name or ID), prefixes must be unique across address " + "scopes" + ), ) _add_default_options(parser) shared_group = parser.add_mutually_exclusive_group() @@ -189,15 +190,18 @@ class CreateSubnetPool(command.ShowOne, common.NeutronCommandWithExtraArgs): parser.add_argument( '--description', metavar='', - help=_("Set subnet pool description") + help=_("Set subnet pool description"), ) parser.add_argument( '--default-quota', type=int, metavar='', - help=_("Set default per-project quota for this subnet pool " - "as the number of IP addresses that can be allocated " - "from the subnet pool")), + help=_( + "Set default per-project quota for this subnet pool " + "as the number of IP addresses that can be allocated " + "from the subnet pool" + ), + ), _tag.add_tag_option_to_parser_for_create(parser, _('subnet pool')) return parser @@ -208,7 +212,8 @@ class CreateSubnetPool(command.ShowOne, common.NeutronCommandWithExtraArgs): if "prefixes" not in attrs: attrs['prefixes'] = [] attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) obj = client.create_subnet_pool(**attrs) # tags cannot be set when created, so tags need to be set later. _tag.update_tags_for_set(client, obj, parsed_args) @@ -226,7 +231,7 @@ class DeleteSubnetPool(command.Command): 'subnet_pool', metavar='', nargs='+', - help=_("Subnet pool(s) to delete (name or ID)") + help=_("Subnet pool(s) to delete (name or ID)"), ) return parser @@ -240,14 +245,19 @@ class DeleteSubnetPool(command.Command): client.delete_subnet_pool(obj) except Exception as e: result += 1 - LOG.error(_("Failed to delete subnet pool with " - "name or ID '%(pool)s': %(e)s"), - {'pool': pool, 'e': e}) + LOG.error( + _( + "Failed to delete subnet pool with " + "name or ID '%(pool)s': %(e)s" + ), + {'pool': pool, 'e': e}, + ) if result > 0: total = len(parsed_args.subnet_pool) - msg = (_("%(result)s of %(total)s subnet pools failed " - "to delete.") % {'result': result, 'total': total}) + msg = _( + "%(result)s of %(total)s subnet pools failed " "to delete." + ) % {'result': result, 'total': total} raise exceptions.CommandError(msg) @@ -262,7 +272,7 @@ class ListSubnetPool(command.Lister): '--long', action='store_true', default=False, - help=_("List additional fields in output") + help=_("List additional fields in output"), ) shared_group = parser.add_mutually_exclusive_group() shared_group.add_argument( @@ -279,31 +289,38 @@ class ListSubnetPool(command.Lister): default_group.add_argument( '--default', action='store_true', - help=_("List subnet pools used as the default external " - "subnet pool"), + help=_( + "List subnet pools used as the default external " "subnet pool" + ), ) default_group.add_argument( '--no-default', action='store_true', - help=_("List subnet pools not used as the default external " - "subnet pool") + help=_( + "List subnet pools not used as the default external " + "subnet pool" + ), ) parser.add_argument( '--project', metavar='', - help=_("List subnet pools according to their project (name or ID)") + help=_( + "List subnet pools according to their project (name or ID)" + ), ) identity_common.add_project_domain_option_to_parser(parser) parser.add_argument( '--name', metavar='', - help=_("List only subnet pools of given name in output") + help=_("List only subnet pools of given name in output"), ) parser.add_argument( '--address-scope', metavar='', - help=_("List only subnet pools of given address scope " - "in output (name or ID)") + help=_( + "List only subnet pools of given address scope " + "in output (name or ID)" + ), ) _tag.add_tag_filtering_option_to_parser(parser, _('subnet pools')) return parser @@ -333,8 +350,8 @@ class ListSubnetPool(command.Lister): filters['name'] = parsed_args.name if parsed_args.address_scope: address_scope = network_client.find_address_scope( - parsed_args.address_scope, - ignore_missing=False) + parsed_args.address_scope, ignore_missing=False + ) filters['address_scope_id'] = address_scope.id _tag.get_tag_filtering_args(parsed_args, filters) data = network_client.subnet_pools(**filters) @@ -342,16 +359,32 @@ class ListSubnetPool(command.Lister): headers = ('ID', 'Name', 'Prefixes') columns = ('id', 'name', 'prefixes') if parsed_args.long: - headers += ('Default Prefix Length', 'Address Scope', - 'Default Subnet Pool', 'Shared', 'Tags') - columns += ('default_prefix_length', 'address_scope_id', - 'is_default', 'is_shared', 'tags') + headers += ( + 'Default Prefix Length', + 'Address Scope', + 'Default Subnet Pool', + 'Shared', + 'Tags', + ) + columns += ( + 'default_prefix_length', + 'address_scope_id', + 'is_default', + 'is_shared', + 'tags', + ) - return (headers, - (utils.get_item_properties( - s, columns, + return ( + headers, + ( + utils.get_item_properties( + s, + columns, formatters=_formatters, - ) for s in data)) + ) + for s in data + ), + ) # TODO(rtheis): Use the SDK resource mapped attribute names once the @@ -364,48 +397,52 @@ class SetSubnetPool(common.NeutronCommandWithExtraArgs): parser.add_argument( 'subnet_pool', metavar='', - help=_("Subnet pool to modify (name or ID)") + help=_("Subnet pool to modify (name or ID)"), ) parser.add_argument( - '--name', - metavar='', - help=_("Set subnet pool name") + '--name', metavar='', help=_("Set subnet pool name") ) _add_prefix_options(parser) address_scope_group = parser.add_mutually_exclusive_group() address_scope_group.add_argument( '--address-scope', metavar='', - help=_("Set address scope associated with the subnet pool " - "(name or ID), prefixes must be unique across address " - "scopes") + help=_( + "Set address scope associated with the subnet pool " + "(name or ID), prefixes must be unique across address " + "scopes" + ), ) address_scope_group.add_argument( '--no-address-scope', action='store_true', - help=_("Remove address scope associated with the subnet pool") + help=_("Remove address scope associated with the subnet pool"), ) _add_default_options(parser) parser.add_argument( '--description', metavar='', - help=_("Set subnet pool description") + help=_("Set subnet pool description"), ) parser.add_argument( '--default-quota', type=int, metavar='', - help=_("Set default per-project quota for this subnet pool " - "as the number of IP addresses that can be allocated " - "from the subnet pool")), + help=_( + "Set default per-project quota for this subnet pool " + "as the number of IP addresses that can be allocated " + "from the subnet pool" + ), + ), _tag.add_tag_option_to_parser_for_set(parser, _('subnet pool')) return parser def take_action(self, parsed_args): client = self.app.client_manager.network - obj = client.find_subnet_pool(parsed_args.subnet_pool, - ignore_missing=False) + obj = client.find_subnet_pool( + parsed_args.subnet_pool, ignore_missing=False + ) attrs = _get_attrs(self.app.client_manager, parsed_args) @@ -414,7 +451,8 @@ class SetSubnetPool(common.NeutronCommandWithExtraArgs): attrs['prefixes'].extend(obj.prefixes) attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) if attrs: client.update_subnet_pool(obj, **attrs) @@ -430,15 +468,14 @@ class ShowSubnetPool(command.ShowOne): parser.add_argument( 'subnet_pool', metavar='', - help=_("Subnet pool to display (name or ID)") + help=_("Subnet pool to display (name or ID)"), ) return parser def take_action(self, parsed_args): client = self.app.client_manager.network obj = client.find_subnet_pool( - parsed_args.subnet_pool, - ignore_missing=False + parsed_args.subnet_pool, ignore_missing=False ) display_columns, columns = _get_columns(obj) data = utils.get_item_properties(obj, columns, formatters=_formatters) @@ -453,7 +490,7 @@ class UnsetSubnetPool(command.Command): parser.add_argument( 'subnet_pool', metavar="", - help=_("Subnet pool to modify (name or ID)") + help=_("Subnet pool to modify (name or ID)"), ) _tag.add_tag_option_to_parser_for_unset(parser, _('subnet pool')) return parser @@ -461,6 +498,7 @@ class UnsetSubnetPool(command.Command): def take_action(self, parsed_args): client = self.app.client_manager.network obj = client.find_subnet_pool( - parsed_args.subnet_pool, ignore_missing=False) + parsed_args.subnet_pool, ignore_missing=False + ) # tags is a subresource and it needs to be updated separately. _tag.update_tags_for_unset(client, obj, parsed_args) diff --git a/openstackclient/tests/functional/network/v2/common.py b/openstackclient/tests/functional/network/v2/common.py index a9c5b8303f..afdf5d7041 100644 --- a/openstackclient/tests/functional/network/v2/common.py +++ b/openstackclient/tests/functional/network/v2/common.py @@ -40,34 +40,43 @@ class NetworkTagTests(NetworkTests): # Network create with no options name1 = self._create_resource_and_tag_check('', []) # Network create with tags - name2 = self._create_resource_and_tag_check('--tag red --tag blue', - ['red', 'blue']) + name2 = self._create_resource_and_tag_check( + '--tag red --tag blue', ['red', 'blue'] + ) # Network create with no tag explicitly name3 = self._create_resource_and_tag_check('--no-tag', []) - self._set_resource_and_tag_check('set', name1, '--tag red --tag green', - ['red', 'green']) + self._set_resource_and_tag_check( + 'set', name1, '--tag red --tag green', ['red', 'green'] + ) - list_expected = ((name1, ['red', 'green']), - (name2, ['red', 'blue']), - (name3, [])) + list_expected = ( + (name1, ['red', 'green']), + (name2, ['red', 'blue']), + (name3, []), + ) self._list_tag_check(auth_project_id, list_expected) - self._set_resource_and_tag_check('set', name1, '--tag blue', - ['red', 'green', 'blue']) self._set_resource_and_tag_check( - 'set', name1, + 'set', name1, '--tag blue', ['red', 'green', 'blue'] + ) + self._set_resource_and_tag_check( + 'set', + name1, '--no-tag --tag yellow --tag orange --tag purple', - ['yellow', 'orange', 'purple']) - self._set_resource_and_tag_check('unset', name1, '--tag yellow', - ['orange', 'purple']) + ['yellow', 'orange', 'purple'], + ) + self._set_resource_and_tag_check( + 'unset', name1, '--tag yellow', ['orange', 'purple'] + ) self._set_resource_and_tag_check('unset', name1, '--all-tag', []) self._set_resource_and_tag_check('set', name2, '--no-tag', []) def _list_tag_check(self, project_id, expected): cmd_output = self.openstack( - '{} list --long --project {}'.format(self.base_command, - project_id), + '{} list --long --project {}'.format( + self.base_command, project_id + ), parse_output=True, ) for name, tags in expected: @@ -84,7 +93,8 @@ class NetworkTagTests(NetworkTests): name = uuid.uuid4().hex cmd_output = self._create_resource_for_tag_test(name, args) self.addCleanup( - self.openstack, '{} delete {}'.format(self.base_command, name)) + self.openstack, '{} delete {}'.format(self.base_command, name) + ) self.assertIsNotNone(cmd_output["id"]) self.assertEqual(set(expected), set(cmd_output['tags'])) return name diff --git a/openstackclient/tests/functional/network/v2/test_address_group.py b/openstackclient/tests/functional/network/v2/test_address_group.py index 17ab2362b4..e3fb2eaed2 100644 --- a/openstackclient/tests/functional/network/v2/test_address_group.py +++ b/openstackclient/tests/functional/network/v2/test_address_group.py @@ -30,8 +30,7 @@ class AddressGroupTests(common.NetworkTests): """Test create, delete multiple""" name1 = uuid.uuid4().hex cmd_output = self.openstack( - 'address group create ' + - name1, + 'address group create ' + name1, parse_output=True, ) self.assertEqual( @@ -41,8 +40,7 @@ class AddressGroupTests(common.NetworkTests): name2 = uuid.uuid4().hex cmd_output = self.openstack( - 'address group create ' + - name2, + 'address group create ' + name2, parse_output=True, ) self.assertEqual( @@ -81,8 +79,7 @@ class AddressGroupTests(common.NetworkTests): name1 = uuid.uuid4().hex cmd_output = self.openstack( - 'address group create ' + - name1, + 'address group create ' + name1, parse_output=True, ) self.addCleanup(self.openstack, 'address group delete ' + name1) @@ -93,9 +90,11 @@ class AddressGroupTests(common.NetworkTests): name2 = uuid.uuid4().hex cmd_output = self.openstack( - 'address group create ' + - '--project ' + demo_project_id + - ' ' + name2, + 'address group create ' + + '--project ' + + demo_project_id + + ' ' + + name2, parse_output=True, ) self.addCleanup(self.openstack, 'address group delete ' + name2) @@ -115,8 +114,7 @@ class AddressGroupTests(common.NetworkTests): # Test list --project cmd_output = self.openstack( - 'address group list ' + - '--project ' + demo_project_id, + 'address group list ' + '--project ' + demo_project_id, parse_output=True, ) names = [x["Name"] for x in cmd_output] @@ -125,8 +123,7 @@ class AddressGroupTests(common.NetworkTests): # Test list --name cmd_output = self.openstack( - 'address group list ' + - '--name ' + name1, + 'address group list ' + '--name ' + name1, parse_output=True, ) names = [x["Name"] for x in cmd_output] @@ -138,10 +135,10 @@ class AddressGroupTests(common.NetworkTests): name = uuid.uuid4().hex newname = name + "_" cmd_output = self.openstack( - 'address group create ' + - '--description aaaa ' + - '--address 10.0.0.1 --address 2001::/16 ' + - name, + 'address group create ' + + '--description aaaa ' + + '--address 10.0.0.1 --address 2001::/16 ' + + name, parse_output=True, ) self.addCleanup(self.openstack, 'address group delete ' + newname) @@ -151,18 +148,19 @@ class AddressGroupTests(common.NetworkTests): # Test set name, description and address raw_output = self.openstack( - 'address group set ' + - '--name ' + newname + ' ' + - '--description bbbb ' + - '--address 10.0.0.2 --address 192.0.0.0/8 ' + - name, + 'address group set ' + + '--name ' + + newname + + ' ' + + '--description bbbb ' + + '--address 10.0.0.2 --address 192.0.0.0/8 ' + + name, ) self.assertOutput('', raw_output) # Show the updated address group cmd_output = self.openstack( - 'address group show ' + - newname, + 'address group show ' + newname, parse_output=True, ) self.assertEqual(newname, cmd_output['name']) @@ -171,16 +169,15 @@ class AddressGroupTests(common.NetworkTests): # Test unset address raw_output = self.openstack( - 'address group unset ' + - '--address 10.0.0.1 --address 2001::/16 ' + - '--address 10.0.0.2 --address 192.0.0.0/8 ' + - newname, + 'address group unset ' + + '--address 10.0.0.1 --address 2001::/16 ' + + '--address 10.0.0.2 --address 192.0.0.0/8 ' + + newname, ) self.assertEqual('', raw_output) cmd_output = self.openstack( - 'address group show ' + - newname, + 'address group show ' + newname, parse_output=True, ) self.assertEqual(0, len(cmd_output['addresses'])) diff --git a/openstackclient/tests/functional/network/v2/test_address_scope.py b/openstackclient/tests/functional/network/v2/test_address_scope.py index 8ebb9522b2..48957a7ef6 100644 --- a/openstackclient/tests/functional/network/v2/test_address_scope.py +++ b/openstackclient/tests/functional/network/v2/test_address_scope.py @@ -33,8 +33,7 @@ class AddressScopeTests(common.NetworkTests): """Test create, delete multiple""" name1 = uuid.uuid4().hex cmd_output = self.openstack( - 'address scope create ' + - name1, + 'address scope create ' + name1, parse_output=True, ) self.assertEqual( @@ -46,8 +45,7 @@ class AddressScopeTests(common.NetworkTests): name2 = uuid.uuid4().hex cmd_output = self.openstack( - 'address scope create ' + - name2, + 'address scope create ' + name2, parse_output=True, ) self.assertEqual( @@ -64,10 +62,7 @@ class AddressScopeTests(common.NetworkTests): """Test create defaults, list filters, delete""" name1 = uuid.uuid4().hex cmd_output = self.openstack( - 'address scope create ' + - '--ip-version 4 ' + - '--share ' + - name1, + 'address scope create ' + '--ip-version 4 ' + '--share ' + name1, parse_output=True, ) self.addCleanup(self.openstack, 'address scope delete ' + name1) @@ -83,10 +78,10 @@ class AddressScopeTests(common.NetworkTests): name2 = uuid.uuid4().hex cmd_output = self.openstack( - 'address scope create ' + - '--ip-version 6 ' + - '--no-share ' + - name2, + 'address scope create ' + + '--ip-version 6 ' + + '--no-share ' + + name2, parse_output=True, ) self.addCleanup(self.openstack, 'address scope delete ' + name2) @@ -132,10 +127,7 @@ class AddressScopeTests(common.NetworkTests): name = uuid.uuid4().hex newname = name + "_" cmd_output = self.openstack( - 'address scope create ' + - '--ip-version 4 ' + - '--no-share ' + - name, + 'address scope create ' + '--ip-version 4 ' + '--no-share ' + name, parse_output=True, ) self.addCleanup(self.openstack, 'address scope delete ' + newname) @@ -150,16 +142,12 @@ class AddressScopeTests(common.NetworkTests): self.assertFalse(cmd_output['shared']) raw_output = self.openstack( - 'address scope set ' + - '--name ' + newname + - ' --share ' + - name, + 'address scope set ' + '--name ' + newname + ' --share ' + name, ) self.assertOutput('', raw_output) cmd_output = self.openstack( - 'address scope show ' + - newname, + 'address scope show ' + newname, parse_output=True, ) self.assertEqual( diff --git a/openstackclient/tests/functional/network/v2/test_floating_ip.py b/openstackclient/tests/functional/network/v2/test_floating_ip.py index 871cab2d54..9f29825082 100644 --- a/openstackclient/tests/functional/network/v2/test_floating_ip.py +++ b/openstackclient/tests/functional/network/v2/test_floating_ip.py @@ -29,17 +29,14 @@ class FloatingIpTests(common.NetworkTests): # Create a network for the floating ip json_output = cls.openstack( - 'network create ' + - '--external ' + - cls.EXTERNAL_NETWORK_NAME, + 'network create ' + '--external ' + cls.EXTERNAL_NETWORK_NAME, parse_output=True, ) cls.external_network_id = json_output["id"] # Create a private network for the port json_output = cls.openstack( - 'network create ' + - cls.PRIVATE_NETWORK_NAME, + 'network create ' + cls.PRIVATE_NETWORK_NAME, parse_output=True, ) cls.private_network_id = json_output["id"] @@ -49,9 +46,10 @@ class FloatingIpTests(common.NetworkTests): try: if cls.haz_network: del_output = cls.openstack( - 'network delete ' + - cls.EXTERNAL_NETWORK_NAME + ' ' + - cls.PRIVATE_NETWORK_NAME + 'network delete ' + + cls.EXTERNAL_NETWORK_NAME + + ' ' + + cls.PRIVATE_NETWORK_NAME ) cls.assertOutput('', del_output) finally: @@ -76,23 +74,27 @@ class FloatingIpTests(common.NetworkTests): # try 4 times for i in range(4): # Make a random subnet - subnet = ".".join(map( - str, - (random.randint(0, 223) for _ in range(3)) - )) + ".0/26" + subnet = ( + ".".join(map(str, (random.randint(0, 223) for _ in range(3)))) + + ".0/26" + ) try: # Create a subnet for the network json_output = self.openstack( - 'subnet create ' + - '--network ' + network_name + ' ' + - '--subnet-range ' + subnet + ' ' + - subnet_name, + 'subnet create ' + + '--network ' + + network_name + + ' ' + + '--subnet-range ' + + subnet + + ' ' + + subnet_name, parse_output=True, ) self.assertIsNotNone(json_output["id"]) subnet_id = json_output["id"] except Exception: - if (i == 3): + if i == 3: # raise the exception at the last time raise pass @@ -106,15 +108,14 @@ class FloatingIpTests(common.NetworkTests): # Subnets must exist even if not directly referenced here ext_subnet_id = self._create_subnet( - self.EXTERNAL_NETWORK_NAME, - "ext-test-delete" + self.EXTERNAL_NETWORK_NAME, "ext-test-delete" ) self.addCleanup(self.openstack, 'subnet delete ' + ext_subnet_id) json_output = self.openstack( - 'floating ip create ' + - '--description aaaa ' + - self.EXTERNAL_NETWORK_NAME, + 'floating ip create ' + + '--description aaaa ' + + self.EXTERNAL_NETWORK_NAME, parse_output=True, ) self.assertIsNotNone(json_output["id"]) @@ -125,9 +126,9 @@ class FloatingIpTests(common.NetworkTests): ) json_output = self.openstack( - 'floating ip create ' + - '--description bbbb ' + - self.EXTERNAL_NETWORK_NAME, + 'floating ip create ' + + '--description bbbb ' + + self.EXTERNAL_NETWORK_NAME, parse_output=True, ) self.assertIsNotNone(json_output["id"]) @@ -148,15 +149,14 @@ class FloatingIpTests(common.NetworkTests): # Subnets must exist even if not directly referenced here ext_subnet_id = self._create_subnet( - self.EXTERNAL_NETWORK_NAME, - "ext-test-delete" + self.EXTERNAL_NETWORK_NAME, "ext-test-delete" ) self.addCleanup(self.openstack, 'subnet delete ' + ext_subnet_id) json_output = self.openstack( - 'floating ip create ' + - '--description aaaa ' + - self.EXTERNAL_NETWORK_NAME, + 'floating ip create ' + + '--description aaaa ' + + self.EXTERNAL_NETWORK_NAME, parse_output=True, ) self.assertIsNotNone(json_output["id"]) @@ -170,9 +170,9 @@ class FloatingIpTests(common.NetworkTests): fip1 = json_output["floating_ip_address"] json_output = self.openstack( - 'floating ip create ' + - '--description bbbb ' + - self.EXTERNAL_NETWORK_NAME, + 'floating ip create ' + + '--description bbbb ' + + self.EXTERNAL_NETWORK_NAME, parse_output=True, ) self.assertIsNotNone(json_output["id"]) @@ -191,8 +191,8 @@ class FloatingIpTests(common.NetworkTests): parse_output=True, ) fip_map = { - item.get('ID'): - item.get('Floating IP Address') for item in json_output + item.get('ID'): item.get('Floating IP Address') + for item in json_output } # self.assertEqual(item_map, json_output) self.assertIn(ip1, fip_map.keys()) @@ -202,13 +202,12 @@ class FloatingIpTests(common.NetworkTests): # Test list --long json_output = self.openstack( - 'floating ip list ' + - '--long', + 'floating ip list ' + '--long', parse_output=True, ) fip_map = { - item.get('ID'): - item.get('Floating IP Address') for item in json_output + item.get('ID'): item.get('Floating IP Address') + for item in json_output } self.assertIn(ip1, fip_map.keys()) self.assertIn(ip2, fip_map.keys()) @@ -223,8 +222,7 @@ class FloatingIpTests(common.NetworkTests): # TODO(dtroyer): add more filter tests json_output = self.openstack( - 'floating ip show ' + - ip1, + 'floating ip show ' + ip1, parse_output=True, ) self.assertIsNotNone(json_output["id"]) @@ -247,13 +245,11 @@ class FloatingIpTests(common.NetworkTests): # Subnets must exist even if not directly referenced here ext_subnet_id = self._create_subnet( - self.EXTERNAL_NETWORK_NAME, - "ext-test-delete" + self.EXTERNAL_NETWORK_NAME, "ext-test-delete" ) self.addCleanup(self.openstack, 'subnet delete ' + ext_subnet_id) priv_subnet_id = self._create_subnet( - self.PRIVATE_NETWORK_NAME, - "priv-test-delete" + self.PRIVATE_NETWORK_NAME, "priv-test-delete" ) self.addCleanup(self.openstack, 'subnet delete ' + priv_subnet_id) @@ -261,9 +257,9 @@ class FloatingIpTests(common.NetworkTests): self.PORT_NAME = uuid.uuid4().hex json_output = self.openstack( - 'floating ip create ' + - '--description aaaa ' + - self.EXTERNAL_NETWORK_NAME, + 'floating ip create ' + + '--description aaaa ' + + self.EXTERNAL_NETWORK_NAME, parse_output=True, ) self.assertIsNotNone(json_output["id"]) @@ -275,33 +271,34 @@ class FloatingIpTests(common.NetworkTests): ) json_output = self.openstack( - 'port create ' + - '--network ' + self.PRIVATE_NETWORK_NAME + ' ' + - '--fixed-ip subnet=' + priv_subnet_id + ' ' + - self.PORT_NAME, + 'port create ' + + '--network ' + + self.PRIVATE_NETWORK_NAME + + ' ' + + '--fixed-ip subnet=' + + priv_subnet_id + + ' ' + + self.PORT_NAME, parse_output=True, ) self.assertIsNotNone(json_output["id"]) port_id = json_output["id"] json_output = self.openstack( - 'router create ' + - self.ROUTER, + 'router create ' + self.ROUTER, parse_output=True, ) self.assertIsNotNone(json_output["id"]) self.addCleanup(self.openstack, 'router delete ' + self.ROUTER) - self.openstack( - 'router add port ' + - self.ROUTER + ' ' + - port_id - ) + self.openstack('router add port ' + self.ROUTER + ' ' + port_id) self.openstack( - 'router set ' + - '--external-gateway ' + self.EXTERNAL_NETWORK_NAME + ' ' + - self.ROUTER + 'router set ' + + '--external-gateway ' + + self.EXTERNAL_NETWORK_NAME + + ' ' + + self.ROUTER ) self.addCleanup( self.openstack, @@ -312,19 +309,14 @@ class FloatingIpTests(common.NetworkTests): 'router remove port ' + self.ROUTER + ' ' + port_id, ) - self.openstack( - 'floating ip set ' + - '--port ' + port_id + ' ' + - ip1 - ) + self.openstack('floating ip set ' + '--port ' + port_id + ' ' + ip1) self.addCleanup( self.openstack, 'floating ip unset --port ' + ip1, ) json_output = self.openstack( - 'floating ip show ' + - ip1, + 'floating ip show ' + ip1, parse_output=True, ) diff --git a/openstackclient/tests/functional/network/v2/test_ip_availability.py b/openstackclient/tests/functional/network/v2/test_ip_availability.py index 6697ed3639..643f03555d 100644 --- a/openstackclient/tests/functional/network/v2/test_ip_availability.py +++ b/openstackclient/tests/functional/network/v2/test_ip_availability.py @@ -26,15 +26,14 @@ class IPAvailabilityTests(common.NetworkTests): cls.NETWORK_NAME = uuid.uuid4().hex # Create a network for the subnet - cls.openstack( - 'network create ' + - cls.NETWORK_NAME - ) + cls.openstack('network create ' + cls.NETWORK_NAME) cmd_output = cls.openstack( - 'subnet create ' + - '--network ' + cls.NETWORK_NAME + ' ' + - '--subnet-range 10.10.10.0/24 ' + - cls.NAME, + 'subnet create ' + + '--network ' + + cls.NETWORK_NAME + + ' ' + + '--subnet-range 10.10.10.0/24 ' + + cls.NAME, parse_output=True, ) cls.assertOutput(cls.NAME, cmd_output['name']) @@ -43,13 +42,9 @@ class IPAvailabilityTests(common.NetworkTests): def tearDownClass(cls): try: if cls.haz_network: - raw_subnet = cls.openstack( - 'subnet delete ' + - cls.NAME - ) + raw_subnet = cls.openstack('subnet delete ' + cls.NAME) raw_network = cls.openstack( - 'network delete ' + - cls.NETWORK_NAME + 'network delete ' + cls.NETWORK_NAME ) cls.assertOutput('', raw_subnet) cls.assertOutput('', raw_network) @@ -66,7 +61,8 @@ class IPAvailabilityTests(common.NetworkTests): """Test ip availability list""" cmd_output = self.openstack( 'ip availability list', - parse_output=True,) + parse_output=True, + ) names = [x['Network Name'] for x in cmd_output] self.assertIn(self.NETWORK_NAME, names) @@ -74,7 +70,8 @@ class IPAvailabilityTests(common.NetworkTests): """Test ip availability show""" cmd_output = self.openstack( 'ip availability show ' + self.NETWORK_NAME, - parse_output=True,) + parse_output=True, + ) self.assertEqual( self.NETWORK_NAME, cmd_output['network_name'], diff --git a/openstackclient/tests/functional/network/v2/test_l3_conntrack_helper.py b/openstackclient/tests/functional/network/v2/test_l3_conntrack_helper.py index 2563bcf980..f899b041fe 100644 --- a/openstackclient/tests/functional/network/v2/test_l3_conntrack_helper.py +++ b/openstackclient/tests/functional/network/v2/test_l3_conntrack_helper.py @@ -17,7 +17,6 @@ from openstackclient.tests.functional.network.v2 import common class L3ConntrackHelperTests(common.NetworkTests): - def setUp(self): super(L3ConntrackHelperTests, self).setUp() # Nothing in this class works with Nova Network @@ -45,7 +44,8 @@ class L3ConntrackHelperTests(common.NetworkTests): output = self.openstack( 'network l3 conntrack helper create %(router)s ' '--helper %(helper)s --protocol %(protocol)s ' - '--port %(port)s ' % { + '--port %(port)s ' + % { 'router': router_id, 'helper': helper['helper'], 'protocol': helper['protocol'], @@ -63,15 +63,8 @@ class L3ConntrackHelperTests(common.NetworkTests): """Test create, delete multiple""" helpers = [ - { - 'helper': 'tftp', - 'protocol': 'udp', - 'port': 69 - }, { - 'helper': 'ftp', - 'protocol': 'tcp', - 'port': 21 - } + {'helper': 'tftp', 'protocol': 'udp', 'port': 69}, + {'helper': 'ftp', 'protocol': 'tcp', 'port': 21}, ] router_id = self._create_router() created_helpers = self._create_helpers(router_id, helpers) @@ -79,32 +72,18 @@ class L3ConntrackHelperTests(common.NetworkTests): raw_output = self.openstack( '--debug network l3 conntrack helper delete %(router)s ' - '%(ct_ids)s' % { - 'router': router_id, 'ct_ids': ct_ids}) + '%(ct_ids)s' % {'router': router_id, 'ct_ids': ct_ids} + ) self.assertOutput('', raw_output) def test_l3_conntrack_helper_list(self): helpers = [ - { - 'helper': 'tftp', - 'protocol': 'udp', - 'port': 69 - }, { - 'helper': 'ftp', - 'protocol': 'tcp', - 'port': 21 - } + {'helper': 'tftp', 'protocol': 'udp', 'port': 69}, + {'helper': 'ftp', 'protocol': 'tcp', 'port': 21}, ] expected_helpers = [ - { - 'Helper': 'tftp', - 'Protocol': 'udp', - 'Port': 69 - }, { - 'Helper': 'ftp', - 'Protocol': 'tcp', - 'Port': 21 - } + {'Helper': 'tftp', 'Protocol': 'udp', 'Port': 69}, + {'Helper': 'ftp', 'Protocol': 'tcp', 'Port': 21}, ] router_id = self._create_router() self._create_helpers(router_id, helpers) @@ -118,15 +97,13 @@ class L3ConntrackHelperTests(common.NetworkTests): self.assertIn(ct, expected_helpers) def test_l3_conntrack_helper_set_and_show(self): - helper = { - 'helper': 'tftp', - 'protocol': 'udp', - 'port': 69} + helper = {'helper': 'tftp', 'protocol': 'udp', 'port': 69} router_id = self._create_router() created_helper = self._create_helpers(router_id, [helper])[0] output = self.openstack( 'network l3 conntrack helper show %(router_id)s %(ct_id)s ' - '-f json' % { + '-f json' + % { 'router_id': router_id, 'ct_id': created_helper['id'], }, @@ -138,15 +115,19 @@ class L3ConntrackHelperTests(common.NetworkTests): raw_output = self.openstack( 'network l3 conntrack helper set %(router_id)s %(ct_id)s ' - '--port %(port)s ' % { + '--port %(port)s ' + % { 'router_id': router_id, 'ct_id': created_helper['id'], - 'port': helper['port'] + 1}) + 'port': helper['port'] + 1, + } + ) self.assertOutput('', raw_output) output = self.openstack( 'network l3 conntrack helper show %(router_id)s %(ct_id)s ' - '-f json' % { + '-f json' + % { 'router_id': router_id, 'ct_id': created_helper['id'], }, diff --git a/openstackclient/tests/functional/network/v2/test_local_ip.py b/openstackclient/tests/functional/network/v2/test_local_ip.py index b5672b6ded..921dd13dc5 100644 --- a/openstackclient/tests/functional/network/v2/test_local_ip.py +++ b/openstackclient/tests/functional/network/v2/test_local_ip.py @@ -32,8 +32,7 @@ class LocalIPTests(common.NetworkTests): """Test create, delete multiple""" name1 = uuid.uuid4().hex cmd_output = self.openstack( - 'local ip create ' + - name1, + 'local ip create ' + name1, parse_output=True, ) self.assertEqual( @@ -43,8 +42,7 @@ class LocalIPTests(common.NetworkTests): name2 = uuid.uuid4().hex cmd_output = self.openstack( - 'local ip create ' + - name2, + 'local ip create ' + name2, parse_output=True, ) self.assertEqual( @@ -83,8 +81,7 @@ class LocalIPTests(common.NetworkTests): name1 = uuid.uuid4().hex cmd_output = self.openstack( - 'local ip create ' + - name1, + 'local ip create ' + name1, parse_output=True, ) self.addCleanup(self.openstack, 'local ip delete ' + name1) @@ -95,9 +92,7 @@ class LocalIPTests(common.NetworkTests): name2 = uuid.uuid4().hex cmd_output = self.openstack( - 'local ip create ' + - '--project ' + demo_project_id + - ' ' + name2, + 'local ip create ' + '--project ' + demo_project_id + ' ' + name2, parse_output=True, ) self.addCleanup(self.openstack, 'local ip delete ' + name2) @@ -117,8 +112,7 @@ class LocalIPTests(common.NetworkTests): # Test list --project cmd_output = self.openstack( - 'local ip list ' + - '--project ' + demo_project_id, + 'local ip list ' + '--project ' + demo_project_id, parse_output=True, ) names = [x["Name"] for x in cmd_output] @@ -127,8 +121,7 @@ class LocalIPTests(common.NetworkTests): # Test list --name cmd_output = self.openstack( - 'local ip list ' + - '--name ' + name1, + 'local ip list ' + '--name ' + name1, parse_output=True, ) names = [x["Name"] for x in cmd_output] @@ -140,9 +133,7 @@ class LocalIPTests(common.NetworkTests): name = uuid.uuid4().hex newname = name + "_" cmd_output = self.openstack( - 'local ip create ' + - '--description aaaa ' + - name, + 'local ip create ' + '--description aaaa ' + name, parse_output=True, ) self.addCleanup(self.openstack, 'local ip delete ' + newname) @@ -151,17 +142,18 @@ class LocalIPTests(common.NetworkTests): # Test set name and description raw_output = self.openstack( - 'local ip set ' + - '--name ' + newname + ' ' + - '--description bbbb ' + - name, + 'local ip set ' + + '--name ' + + newname + + ' ' + + '--description bbbb ' + + name, ) self.assertOutput('', raw_output) # Show the updated local ip cmd_output = self.openstack( - 'local ip show ' + - newname, + 'local ip show ' + newname, parse_output=True, ) self.assertEqual(newname, cmd_output['name']) diff --git a/openstackclient/tests/functional/network/v2/test_network.py b/openstackclient/tests/functional/network/v2/test_network.py index 20be2d1ad1..16886b62e4 100644 --- a/openstackclient/tests/functional/network/v2/test_network.py +++ b/openstackclient/tests/functional/network/v2/test_network.py @@ -34,9 +34,7 @@ class NetworkTests(common.NetworkTagTests): # Network create with minimum options name1 = uuid.uuid4().hex cmd_output = self.openstack( - 'network create ' + - '--subnet 1.2.3.4/28 ' + - name1, + 'network create ' + '--subnet 1.2.3.4/28 ' + name1, parse_output=True, ) self.addCleanup(self.openstack, 'network delete ' + name1) @@ -54,10 +52,7 @@ class NetworkTests(common.NetworkTagTests): # Network create with more options name2 = uuid.uuid4().hex cmd_output = self.openstack( - 'network create ' + - '--subnet 1.2.4.4/28 ' + - '--share ' + - name2, + 'network create ' + '--subnet 1.2.4.4/28 ' + '--share ' + name2, parse_output=True, ) self.addCleanup(self.openstack, 'network delete ' + name2) @@ -105,8 +100,7 @@ class NetworkTests(common.NetworkTagTests): # Network create with no options name1 = uuid.uuid4().hex cmd_output = self.openstack( - 'network create ' + - name1, + 'network create ' + name1, parse_output=True, ) self.addCleanup(self.openstack, 'network delete ' + name1) @@ -136,9 +130,7 @@ class NetworkTests(common.NetworkTagTests): # Network create with options name2 = uuid.uuid4().hex cmd_output = self.openstack( - 'network create ' + - '--project demo ' + - name2, + 'network create ' + '--project demo ' + name2, parse_output=True, ) self.addCleanup(self.openstack, 'network delete ' + name2) @@ -159,9 +151,7 @@ class NetworkTests(common.NetworkTagTests): name1 = uuid.uuid4().hex cmd_output = self.openstack( - 'network create ' + - '--subnet 9.8.7.6/28 ' + - name1, + 'network create ' + '--subnet 9.8.7.6/28 ' + name1, parse_output=True, ) self.assertIsNotNone(cmd_output["id"]) @@ -172,9 +162,7 @@ class NetworkTests(common.NetworkTagTests): name2 = uuid.uuid4().hex cmd_output = self.openstack( - 'network create ' + - '--subnet 8.7.6.5/28 ' + - name2, + 'network create ' + '--subnet 8.7.6.5/28 ' + name2, parse_output=True, ) self.assertIsNotNone(cmd_output["id"]) @@ -190,9 +178,7 @@ class NetworkTests(common.NetworkTagTests): name1 = uuid.uuid4().hex cmd_output = self.openstack( - 'network create ' + - '--description aaaa ' + - name1, + 'network create ' + '--description aaaa ' + name1, parse_output=True, ) self.assertIsNotNone(cmd_output["id"]) @@ -203,9 +189,7 @@ class NetworkTests(common.NetworkTagTests): name2 = uuid.uuid4().hex cmd_output = self.openstack( - 'network create ' + - '--description bbbb ' + - name2, + 'network create ' + '--description bbbb ' + name2, parse_output=True, ) self.assertIsNotNone(cmd_output["id"]) @@ -225,9 +209,7 @@ class NetworkTests(common.NetworkTagTests): else: network_options = '--subnet 3.4.5.6/28 ' cmd_output = self.openstack( - 'network create ' + - network_options + - name1, + 'network create ' + network_options + name1, parse_output=True, ) self.addCleanup(self.openstack, 'network delete %s' % name1) @@ -248,9 +230,7 @@ class NetworkTests(common.NetworkTagTests): cmd_output["router:external"], ) self.assertFalse(cmd_output["is_default"]) - self.assertTrue( - cmd_output["port_security_enabled"] - ) + self.assertTrue(cmd_output["port_security_enabled"]) else: self.assertEqual( '3.4.5.0/28', @@ -263,8 +243,7 @@ class NetworkTests(common.NetworkTagTests): else: network_options = '--subnet 4.5.6.7/28 ' cmd_output = self.openstack( - 'network create --share %s%s' % - (network_options, name2), + 'network create --share %s%s' % (network_options, name2), parse_output=True, ) self.addCleanup(self.openstack, 'network delete ' + name2) @@ -385,15 +364,13 @@ class NetworkTests(common.NetworkTagTests): # Cleanup # Remove Agent from Network self.openstack( - 'network agent remove network --dhcp %s %s' % - (agent_id, network_id) + 'network agent remove network --dhcp %s %s' + % (agent_id, network_id) ) # Assert col_name = [x["ID"] for x in cmd_output3] - self.assertIn( - network_id, col_name - ) + self.assertIn(network_id, col_name) def test_network_set(self): """Tests create options, set, show, delete""" @@ -408,8 +385,7 @@ class NetworkTests(common.NetworkTagTests): '--no-share ' '--internal ' '--no-default ' - '--enable-port-security %s' % - name, + '--enable-port-security %s' % name, parse_output=True, ) self.addCleanup(self.openstack, 'network delete %s' % name) @@ -429,9 +405,7 @@ class NetworkTests(common.NetworkTagTests): ) self.assertFalse(cmd_output["is_default"]) - self.assertTrue( - cmd_output["port_security_enabled"] - ) + self.assertTrue(cmd_output["port_security_enabled"]) raw_output = self.openstack( 'network set ' @@ -439,8 +413,7 @@ class NetworkTests(common.NetworkTagTests): '--disable ' '--share ' '--external ' - '--disable-port-security %s' % - name + '--disable-port-security %s' % name ) self.assertOutput('', raw_output) @@ -463,6 +436,4 @@ class NetworkTests(common.NetworkTagTests): cmd_output["router:external"], ) self.assertFalse(cmd_output["is_default"]) - self.assertFalse( - cmd_output["port_security_enabled"] - ) + self.assertFalse(cmd_output["port_security_enabled"]) diff --git a/openstackclient/tests/functional/network/v2/test_network_agent.py b/openstackclient/tests/functional/network/v2/test_network_agent.py index d3e6353ed1..6ff2c0f01f 100644 --- a/openstackclient/tests/functional/network/v2/test_network_agent.py +++ b/openstackclient/tests/functional/network/v2/test_network_agent.py @@ -120,8 +120,7 @@ class NetworkAgentListTests(common.NetworkTests): # Add Agent to Network self.openstack( - 'network agent add network --dhcp %s %s' % - (agent_id, network_id) + 'network agent add network --dhcp %s %s' % (agent_id, network_id) ) # Test network agent list --network @@ -133,15 +132,13 @@ class NetworkAgentListTests(common.NetworkTests): # Cleanup # Remove Agent from Network self.openstack( - 'network agent remove network --dhcp %s %s' % - (agent_id, network_id) + 'network agent remove network --dhcp %s %s' + % (agent_id, network_id) ) # Assert col_name = [x["ID"] for x in cmd_output3] - self.assertIn( - agent_id, col_name - ) + self.assertIn(agent_id, col_name) def test_network_agent_list_routers(self): """Add agent to router, list agents on router, delete.""" @@ -152,7 +149,8 @@ class NetworkAgentListTests(common.NetworkTests): name = uuid.uuid4().hex cmd_output = self.openstack( 'router create %s' % name, - parse_output=True,) + parse_output=True, + ) self.addCleanup(self.openstack, 'router delete %s' % name) # Get router ID @@ -160,7 +158,8 @@ class NetworkAgentListTests(common.NetworkTests): # Get l3 agent id cmd_output = self.openstack( 'network agent list --agent-type l3', - parse_output=True,) + parse_output=True, + ) # Check at least one L3 agent is included in the response. self.assertTrue(cmd_output) @@ -168,21 +167,25 @@ class NetworkAgentListTests(common.NetworkTests): # Add router to agent self.openstack( - 'network agent add router --l3 %s %s' % (agent_id, router_id)) + 'network agent add router --l3 %s %s' % (agent_id, router_id) + ) # Test router list --agent cmd_output = self.openstack( 'network agent list --router %s' % router_id, - parse_output=True,) + parse_output=True, + ) agent_ids = [x['ID'] for x in cmd_output] self.assertIn(agent_id, agent_ids) # Remove router from agent self.openstack( - 'network agent remove router --l3 %s %s' % (agent_id, router_id)) + 'network agent remove router --l3 %s %s' % (agent_id, router_id) + ) cmd_output = self.openstack( 'network agent list --router %s' % router_id, - parse_output=True,) + parse_output=True, + ) agent_ids = [x['ID'] for x in cmd_output] self.assertNotIn(agent_id, agent_ids) diff --git a/openstackclient/tests/functional/network/v2/test_network_flavor.py b/openstackclient/tests/functional/network/v2/test_network_flavor.py index 2ac0daef54..13dc0d5cc2 100644 --- a/openstackclient/tests/functional/network/v2/test_network_flavor.py +++ b/openstackclient/tests/functional/network/v2/test_network_flavor.py @@ -43,14 +43,17 @@ class NetworkFlavorTests(common.NetworkTests): ) service_profile_id = cmd_output2.get('id') - self.addCleanup(self.openstack, 'network flavor delete %s' % - flavor_id) - self.addCleanup(self.openstack, 'network flavor profile delete %s' % - service_profile_id) + self.addCleanup(self.openstack, 'network flavor delete %s' % flavor_id) + self.addCleanup( + self.openstack, + 'network flavor profile delete %s' % service_profile_id, + ) # Add flavor to service profile self.openstack( - 'network flavor add profile ' + - flavor_id + ' ' + service_profile_id + 'network flavor add profile ' + + flavor_id + + ' ' + + service_profile_id ) cmd_output4 = self.openstack( @@ -65,8 +68,10 @@ class NetworkFlavorTests(common.NetworkTests): # Cleanup # Remove flavor from service profile self.openstack( - 'network flavor remove profile ' + - flavor_id + ' ' + service_profile_id + 'network flavor remove profile ' + + flavor_id + + ' ' + + service_profile_id ) cmd_output6 = self.openstack( @@ -112,7 +117,8 @@ class NetworkFlavorTests(common.NetworkTests): cmd_output['description'], ) raw_output = self.openstack( - 'network flavor delete ' + name1 + " " + name2) + 'network flavor delete ' + name1 + " " + name2 + ) self.assertOutput('', raw_output) def test_network_flavor_list(self): @@ -160,7 +166,8 @@ class NetworkFlavorTests(common.NetworkTests): # Test list cmd_output = self.openstack( 'network flavor list ', - parse_output=True,) + parse_output=True, + ) self.assertIsNotNone(cmd_output) name_list = [item.get('Name') for item in cmd_output] @@ -197,7 +204,8 @@ class NetworkFlavorTests(common.NetworkTests): cmd_output = self.openstack( 'network flavor show ' + newname, - parse_output=True,) + parse_output=True, + ) self.assertEqual( newname, cmd_output['name'], @@ -222,7 +230,8 @@ class NetworkFlavorTests(common.NetworkTests): self.addCleanup(self.openstack, "network flavor delete " + name) cmd_output = self.openstack( 'network flavor show ' + name, - parse_output=True,) + parse_output=True, + ) self.assertEqual( name, cmd_output['name'], diff --git a/openstackclient/tests/functional/network/v2/test_network_flavor_profile.py b/openstackclient/tests/functional/network/v2/test_network_flavor_profile.py index 60fd949b41..c6f84f8246 100644 --- a/openstackclient/tests/functional/network/v2/test_network_flavor_profile.py +++ b/openstackclient/tests/functional/network/v2/test_network_flavor_profile.py @@ -27,9 +27,12 @@ class NetworkFlavorProfileTests(common.NetworkTests): def test_network_flavor_profile_create(self): json_output = self.openstack( - 'network flavor profile create ' + - '--description ' + self.DESCRIPTION + ' ' + - '--enable --metainfo ' + self.METAINFO, + 'network flavor profile create ' + + '--description ' + + self.DESCRIPTION + + ' ' + + '--enable --metainfo ' + + self.METAINFO, parse_output=True, ) ID = json_output.get('id') @@ -50,10 +53,13 @@ class NetworkFlavorProfileTests(common.NetworkTests): def test_network_flavor_profile_list(self): json_output = self.openstack( - 'network flavor profile create ' + - '--description ' + self.DESCRIPTION + ' ' + - '--enable ' + - '--metainfo ' + self.METAINFO, + 'network flavor profile create ' + + '--description ' + + self.DESCRIPTION + + ' ' + + '--enable ' + + '--metainfo ' + + self.METAINFO, parse_output=True, ) ID1 = json_output.get('id') @@ -69,10 +75,13 @@ class NetworkFlavorProfileTests(common.NetworkTests): ) json_output = self.openstack( - 'network flavor profile create ' + - '--description ' + self.DESCRIPTION + ' ' + - '--disable ' + - '--metainfo ' + self.METAINFO, + 'network flavor profile create ' + + '--description ' + + self.DESCRIPTION + + ' ' + + '--disable ' + + '--metainfo ' + + self.METAINFO, parse_output=True, ) ID2 = json_output.get('id') @@ -106,10 +115,13 @@ class NetworkFlavorProfileTests(common.NetworkTests): def test_network_flavor_profile_set(self): json_output_1 = self.openstack( - 'network flavor profile create ' + - '--description ' + self.DESCRIPTION + ' ' + - '--enable ' + - '--metainfo ' + self.METAINFO, + 'network flavor profile create ' + + '--description ' + + self.DESCRIPTION + + ' ' + + '--enable ' + + '--metainfo ' + + self.METAINFO, parse_output=True, ) ID = json_output_1.get('id') @@ -146,10 +158,13 @@ class NetworkFlavorProfileTests(common.NetworkTests): def test_network_flavor_profile_show(self): json_output_1 = self.openstack( - 'network flavor profile create ' + - '--description ' + self.DESCRIPTION + ' ' + - '--enable ' + - '--metainfo ' + self.METAINFO, + 'network flavor profile create ' + + '--description ' + + self.DESCRIPTION + + ' ' + + '--enable ' + + '--metainfo ' + + self.METAINFO, parse_output=True, ) ID = json_output_1.get('id') diff --git a/openstackclient/tests/functional/network/v2/test_network_meter.py b/openstackclient/tests/functional/network/v2/test_network_meter.py index ea9d289fdf..aa00e25b73 100644 --- a/openstackclient/tests/functional/network/v2/test_network_meter.py +++ b/openstackclient/tests/functional/network/v2/test_network_meter.py @@ -38,9 +38,11 @@ class TestMeter(common.NetworkTests): name2 = uuid.uuid4().hex description = 'fakedescription' json_output = self.openstack( - 'network meter create ' + - ' --description ' + description + ' ' + - name1, + 'network meter create ' + + ' --description ' + + description + + ' ' + + name1, parse_output=True, ) self.assertEqual( @@ -55,9 +57,11 @@ class TestMeter(common.NetworkTests): ) json_output_2 = self.openstack( - 'network meter create ' + - '--description ' + description + ' ' + - name2, + 'network meter create ' + + '--description ' + + description + + ' ' + + name2, parse_output=True, ) self.assertEqual( @@ -80,16 +84,13 @@ class TestMeter(common.NetworkTests): """Test create, list filters, delete""" name1 = uuid.uuid4().hex json_output = self.openstack( - 'network meter create ' + - '--description Test1 ' + - '--share ' + - name1, + 'network meter create ' + + '--description Test1 ' + + '--share ' + + name1, parse_output=True, ) - self.addCleanup( - self.openstack, - 'network meter delete ' + name1 - ) + self.addCleanup(self.openstack, 'network meter delete ' + name1) self.assertEqual( 'Test1', @@ -99,10 +100,10 @@ class TestMeter(common.NetworkTests): name2 = uuid.uuid4().hex json_output_2 = self.openstack( - 'network meter create ' + - '--description Test2 ' + - '--no-share ' + - name2, + 'network meter create ' + + '--description Test2 ' + + '--no-share ' + + name2, parse_output=True, ) self.addCleanup(self.openstack, 'network meter delete ' + name2) @@ -125,9 +126,11 @@ class TestMeter(common.NetworkTests): name1 = uuid.uuid4().hex description = 'fakedescription' json_output = self.openstack( - 'network meter create ' + - ' --description ' + description + ' ' + - name1, + 'network meter create ' + + ' --description ' + + description + + ' ' + + name1, parse_output=True, ) meter_id = json_output.get('id') diff --git a/openstackclient/tests/functional/network/v2/test_network_meter_rule.py b/openstackclient/tests/functional/network/v2/test_network_meter_rule.py index ae1bb90444..40838855a5 100644 --- a/openstackclient/tests/functional/network/v2/test_network_meter_rule.py +++ b/openstackclient/tests/functional/network/v2/test_network_meter_rule.py @@ -31,8 +31,7 @@ class TestMeterRule(common.NetworkTests): cls.METER_NAME = uuid.uuid4().hex json_output = cls.openstack( - 'network meter create ' + - cls.METER_NAME, + 'network meter create ' + cls.METER_NAME, parse_output=True, ) cls.METER_ID = json_output.get('id') @@ -42,8 +41,7 @@ class TestMeterRule(common.NetworkTests): try: if cls.haz_network: raw_output = cls.openstack( - 'network meter delete ' + - cls.METER_ID + 'network meter delete ' + cls.METER_ID ) cls.assertOutput('', raw_output) finally: @@ -58,57 +56,44 @@ class TestMeterRule(common.NetworkTests): def test_meter_rule_delete(self): """test create, delete""" json_output = self.openstack( - 'network meter rule create ' + - '--remote-ip-prefix 10.0.0.0/8 ' + - self.METER_ID, + 'network meter rule create ' + + '--remote-ip-prefix 10.0.0.0/8 ' + + self.METER_ID, parse_output=True, ) rule_id = json_output.get('id') re_ip = json_output.get('remote_ip_prefix') - self.addCleanup( - self.openstack, - 'network meter rule delete ' + rule_id - ) + self.addCleanup(self.openstack, 'network meter rule delete ' + rule_id) self.assertIsNotNone(re_ip) self.assertIsNotNone(rule_id) - self.assertEqual( - '10.0.0.0/8', re_ip - ) + self.assertEqual('10.0.0.0/8', re_ip) def test_meter_rule_list(self): """Test create, list, delete""" json_output = self.openstack( - 'network meter rule create ' + - '--remote-ip-prefix 10.0.0.0/8 ' + - self.METER_ID, + 'network meter rule create ' + + '--remote-ip-prefix 10.0.0.0/8 ' + + self.METER_ID, parse_output=True, ) rule_id_1 = json_output.get('id') self.addCleanup( - self.openstack, - 'network meter rule delete ' + rule_id_1 - ) - self.assertEqual( - '10.0.0.0/8', - json_output.get('remote_ip_prefix') + self.openstack, 'network meter rule delete ' + rule_id_1 ) + self.assertEqual('10.0.0.0/8', json_output.get('remote_ip_prefix')) json_output_1 = self.openstack( - 'network meter rule create ' + - '--remote-ip-prefix 11.0.0.0/8 ' + - self.METER_ID, + 'network meter rule create ' + + '--remote-ip-prefix 11.0.0.0/8 ' + + self.METER_ID, parse_output=True, ) rule_id_2 = json_output_1.get('id') self.addCleanup( - self.openstack, - 'network meter rule delete ' + rule_id_2 - ) - self.assertEqual( - '11.0.0.0/8', - json_output_1.get('remote_ip_prefix') + self.openstack, 'network meter rule delete ' + rule_id_2 ) + self.assertEqual('11.0.0.0/8', json_output_1.get('remote_ip_prefix')) json_output = self.openstack( 'network meter rule list', @@ -124,30 +109,21 @@ class TestMeterRule(common.NetworkTests): def test_meter_rule_show(self): """Test create, show, delete""" json_output = self.openstack( - 'network meter rule create ' + - '--remote-ip-prefix 10.0.0.0/8 ' + - '--egress ' + - self.METER_ID, + 'network meter rule create ' + + '--remote-ip-prefix 10.0.0.0/8 ' + + '--egress ' + + self.METER_ID, parse_output=True, ) rule_id = json_output.get('id') - self.assertEqual( - 'egress', - json_output.get('direction') - ) + self.assertEqual('egress', json_output.get('direction')) json_output = self.openstack( 'network meter rule show ' + rule_id, parse_output=True, ) - self.assertEqual( - '10.0.0.0/8', - json_output.get('remote_ip_prefix') - ) + self.assertEqual('10.0.0.0/8', json_output.get('remote_ip_prefix')) self.assertIsNotNone(rule_id) - self.addCleanup( - self.openstack, - 'network meter rule delete ' + rule_id - ) + self.addCleanup(self.openstack, 'network meter rule delete ' + rule_id) diff --git a/openstackclient/tests/functional/network/v2/test_network_ndp_proxy.py b/openstackclient/tests/functional/network/v2/test_network_ndp_proxy.py index 588b1f56ae..62eecf869f 100644 --- a/openstackclient/tests/functional/network/v2/test_network_ndp_proxy.py +++ b/openstackclient/tests/functional/network/v2/test_network_ndp_proxy.py @@ -14,7 +14,6 @@ from openstackclient.tests.functional.network.v2 import common class L3NDPProxyTests(common.NetworkTests): - def setUp(self): super().setUp() # Nothing in this class works with Nova Network @@ -43,7 +42,8 @@ class L3NDPProxyTests(common.NetworkTests): json_output = self.openstack( 'subnet pool create %(subnet_p_name)s ' '--address-scope %(address_scope)s ' - '--pool-prefix 2001:db8::/96 --default-prefix-length 112' % { + '--pool-prefix 2001:db8::/96 --default-prefix-length 112' + % { 'subnet_p_name': self.SUBNET_P_NAME, 'address_scope': self.ADDRESS_SCOPE_ID, }, @@ -59,7 +59,8 @@ class L3NDPProxyTests(common.NetworkTests): self.EXT_NET_ID = json_output['id'] json_output = self.openstack( 'subnet create --ip-version 6 --subnet-pool ' - '%(subnet_pool)s --network %(net_id)s %(sub_name)s' % { + '%(subnet_pool)s --network %(net_id)s %(sub_name)s' + % { 'subnet_pool': self.SUBNET_POOL_ID, 'net_id': self.EXT_NET_ID, 'sub_name': self.EXT_SUB_NAME, @@ -75,9 +76,9 @@ class L3NDPProxyTests(common.NetworkTests): self.assertIsNotNone(json_output['id']) self.ROT_ID = json_output['id'] output = self.openstack( - 'router set %(router_id)s --external-gateway %(net_id)s' % { - 'router_id': self.ROT_ID, - 'net_id': self.EXT_NET_ID}) + 'router set %(router_id)s --external-gateway %(net_id)s' + % {'router_id': self.ROT_ID, 'net_id': self.EXT_NET_ID} + ) self.assertEqual('', output) output = self.openstack('router set --enable-ndp-proxy ' + self.ROT_ID) self.assertEqual('', output) @@ -94,7 +95,8 @@ class L3NDPProxyTests(common.NetworkTests): self.INT_NET_ID = json_output['id'] json_output = self.openstack( 'subnet create --ip-version 6 --subnet-pool ' - '%(subnet_pool)s --network %(net_id)s %(sub_name)s' % { + '%(subnet_pool)s --network %(net_id)s %(sub_name)s' + % { 'subnet_pool': self.SUBNET_POOL_ID, 'net_id': self.INT_NET_ID, 'sub_name': self.INT_SUB_NAME, @@ -105,7 +107,8 @@ class L3NDPProxyTests(common.NetworkTests): self.INT_SUB_ID = json_output['id'] json_output = self.openstack( 'port create --network %(net_id)s ' - '%(port_name)s' % { + '%(port_name)s' + % { 'net_id': self.INT_NET_ID, 'port_name': self.INT_PORT_NAME, }, @@ -115,28 +118,33 @@ class L3NDPProxyTests(common.NetworkTests): self.INT_PORT_ID = json_output['id'] self.INT_PORT_ADDRESS = json_output['fixed_ips'][0]['ip_address'] output = self.openstack( - 'router add subnet ' + self.ROT_ID + ' ' + self.INT_SUB_ID) + 'router add subnet ' + self.ROT_ID + ' ' + self.INT_SUB_ID + ) self.assertEqual('', output) def tearDown(self): for ndp_proxy in self.created_ndp_proxies: output = self.openstack( - 'router ndp proxy delete ' + ndp_proxy['id']) + 'router ndp proxy delete ' + ndp_proxy['id'] + ) self.assertEqual('', output) output = self.openstack('port delete ' + self.INT_PORT_ID) self.assertEqual('', output) output = self.openstack( - 'router set --disable-ndp-proxy ' + self.ROT_ID) + 'router set --disable-ndp-proxy ' + self.ROT_ID + ) self.assertEqual('', output) output = self.openstack( - 'router remove subnet ' + self.ROT_ID + ' ' + self.INT_SUB_ID) + 'router remove subnet ' + self.ROT_ID + ' ' + self.INT_SUB_ID + ) self.assertEqual('', output) output = self.openstack('subnet delete ' + self.INT_SUB_ID) self.assertEqual('', output) output = self.openstack('network delete ' + self.INT_NET_ID) self.assertEqual('', output) output = self.openstack( - 'router unset ' + self.ROT_ID + ' ' + '--external-gateway') + 'router unset ' + self.ROT_ID + ' ' + '--external-gateway' + ) self.assertEqual('', output) output = self.openstack('router delete ' + self.ROT_ID) self.assertEqual('', output) @@ -146,8 +154,9 @@ class L3NDPProxyTests(common.NetworkTests): self.assertEqual('', output) output = self.openstack('subnet pool delete ' + self.SUBNET_POOL_ID) self.assertEqual('', output) - output = self.openstack('address scope delete ' + - self.ADDRESS_SCOPE_ID) + output = self.openstack( + 'address scope delete ' + self.ADDRESS_SCOPE_ID + ) self.assertEqual('', output) super().tearDown() @@ -155,7 +164,8 @@ class L3NDPProxyTests(common.NetworkTests): for ndp_proxy in ndp_proxies: output = self.openstack( 'router ndp proxy create %(router)s --name %(name)s ' - '--port %(port)s --ip-address %(address)s' % { + '--port %(port)s --ip-address %(address)s' + % { 'router': ndp_proxy['router_id'], 'name': ndp_proxy['name'], 'port': ndp_proxy['port_id'], @@ -174,7 +184,7 @@ class L3NDPProxyTests(common.NetworkTests): 'name': self.getUniqueString(), 'router_id': self.ROT_ID, 'port_id': self.INT_PORT_ID, - 'address': self.INT_PORT_ADDRESS + 'address': self.INT_PORT_ADDRESS, } ] self._create_ndp_proxies(ndp_proxies) @@ -184,11 +194,13 @@ class L3NDPProxyTests(common.NetworkTests): 'name': self.getUniqueString(), 'router_id': self.ROT_ID, 'port_id': self.INT_PORT_ID, - 'address': self.INT_PORT_ADDRESS} + 'address': self.INT_PORT_ADDRESS, + } self._create_ndp_proxies([ndp_proxies]) ndp_proxy = self.openstack( 'router ndp proxy list', - parse_output=True,)[0] + parse_output=True, + )[0] self.assertEqual(ndp_proxies['name'], ndp_proxy['Name']) self.assertEqual(ndp_proxies['router_id'], ndp_proxy['Router ID']) self.assertEqual(ndp_proxies['address'], ndp_proxy['IP Address']) @@ -198,13 +210,15 @@ class L3NDPProxyTests(common.NetworkTests): 'name': self.getUniqueString(), 'router_id': self.ROT_ID, 'port_id': self.INT_PORT_ID, - 'address': self.INT_PORT_ADDRESS} + 'address': self.INT_PORT_ADDRESS, + } description = 'balala' self._create_ndp_proxies([ndp_proxies]) ndp_proxy_id = self.created_ndp_proxies[0]['id'] output = self.openstack( - 'router ndp proxy set --description %s %s' % ( - description, ndp_proxy_id)) + 'router ndp proxy set --description %s %s' + % (description, ndp_proxy_id) + ) self.assertEqual('', output) json_output = self.openstack( 'router ndp proxy show ' + ndp_proxy_id, diff --git a/openstackclient/tests/functional/network/v2/test_network_qos_policy.py b/openstackclient/tests/functional/network/v2/test_network_qos_policy.py index b603cf1f69..492f6a0a51 100644 --- a/openstackclient/tests/functional/network/v2/test_network_qos_policy.py +++ b/openstackclient/tests/functional/network/v2/test_network_qos_policy.py @@ -31,21 +31,18 @@ class NetworkQosPolicyTests(common.NetworkTests): # This is to check the output of qos policy delete policy_name = uuid.uuid4().hex self.openstack('network qos policy create ' + policy_name) - raw_output = self.openstack( - 'network qos policy delete ' + - policy_name - ) + raw_output = self.openstack('network qos policy delete ' + policy_name) self.assertEqual('', raw_output) def test_qos_policy_list(self): policy_name = uuid.uuid4().hex json_output = self.openstack( - 'network qos policy create ' + - policy_name, + 'network qos policy create ' + policy_name, parse_output=True, ) - self.addCleanup(self.openstack, - 'network qos policy delete ' + policy_name) + self.addCleanup( + self.openstack, 'network qos policy delete ' + policy_name + ) self.assertEqual(policy_name, json_output['name']) json_output = self.openstack( @@ -57,36 +54,30 @@ class NetworkQosPolicyTests(common.NetworkTests): def test_qos_policy_set(self): policy_name = uuid.uuid4().hex json_output = self.openstack( - 'network qos policy create ' + - policy_name, + 'network qos policy create ' + policy_name, parse_output=True, ) - self.addCleanup(self.openstack, - 'network qos policy delete ' + policy_name) + self.addCleanup( + self.openstack, 'network qos policy delete ' + policy_name + ) self.assertEqual(policy_name, json_output['name']) - self.openstack( - 'network qos policy set ' + - '--share ' + - policy_name - ) + self.openstack('network qos policy set ' + '--share ' + policy_name) json_output = self.openstack( - 'network qos policy show ' + - policy_name, + 'network qos policy show ' + policy_name, parse_output=True, ) self.assertTrue(json_output['shared']) self.openstack( - 'network qos policy set ' + - '--no-share ' + - '--no-default ' + - policy_name + 'network qos policy set ' + + '--no-share ' + + '--no-default ' + + policy_name ) json_output = self.openstack( - 'network qos policy show ' + - policy_name, + 'network qos policy show ' + policy_name, parse_output=True, ) self.assertFalse(json_output['shared']) diff --git a/openstackclient/tests/functional/network/v2/test_network_qos_rule.py b/openstackclient/tests/functional/network/v2/test_network_qos_rule.py index 0fe1854bc0..25455b1383 100644 --- a/openstackclient/tests/functional/network/v2/test_network_qos_rule.py +++ b/openstackclient/tests/functional/network/v2/test_network_qos_rule.py @@ -29,31 +29,33 @@ class NetworkQosRuleTestsMinimumBandwidth(common.NetworkTests): self.QOS_POLICY_NAME = 'qos_policy_%s' % uuid.uuid4().hex - self.openstack( - 'network qos policy create %s' % self.QOS_POLICY_NAME + self.openstack('network qos policy create %s' % self.QOS_POLICY_NAME) + self.addCleanup( + self.openstack, + 'network qos policy delete %s' % self.QOS_POLICY_NAME, ) - self.addCleanup(self.openstack, - 'network qos policy delete %s' % self.QOS_POLICY_NAME) cmd_output = self.openstack( 'network qos rule create ' '--type minimum-bandwidth ' '--min-kbps 2800 ' - '--egress %s' % - self.QOS_POLICY_NAME, + '--egress %s' % self.QOS_POLICY_NAME, parse_output=True, ) self.RULE_ID = cmd_output['id'] - self.addCleanup(self.openstack, - 'network qos rule delete %s %s' % - (self.QOS_POLICY_NAME, self.RULE_ID)) + self.addCleanup( + self.openstack, + 'network qos rule delete %s %s' + % (self.QOS_POLICY_NAME, self.RULE_ID), + ) self.assertTrue(self.RULE_ID) def test_qos_rule_create_delete(self): # This is to check the output of qos rule delete policy_name = uuid.uuid4().hex self.openstack('network qos policy create %s' % policy_name) - self.addCleanup(self.openstack, - 'network qos policy delete %s' % policy_name) + self.addCleanup( + self.openstack, 'network qos policy delete %s' % policy_name + ) rule = self.openstack( 'network qos rule create ' '--type minimum-bandwidth ' @@ -62,30 +64,33 @@ class NetworkQosRuleTestsMinimumBandwidth(common.NetworkTests): parse_output=True, ) raw_output = self.openstack( - 'network qos rule delete %s %s' % - (policy_name, rule['id'])) + 'network qos rule delete %s %s' % (policy_name, rule['id']) + ) self.assertEqual('', raw_output) def test_qos_rule_list(self): cmd_output = self.openstack( 'network qos rule list %s' % self.QOS_POLICY_NAME, - parse_output=True,) + parse_output=True, + ) self.assertIn(self.RULE_ID, [rule['ID'] for rule in cmd_output]) def test_qos_rule_show(self): cmd_output = self.openstack( - 'network qos rule show %s %s' % - (self.QOS_POLICY_NAME, self.RULE_ID), + 'network qos rule show %s %s' + % (self.QOS_POLICY_NAME, self.RULE_ID), parse_output=True, ) self.assertEqual(self.RULE_ID, cmd_output['id']) def test_qos_rule_set(self): - self.openstack('network qos rule set --min-kbps 7500 %s %s' % - (self.QOS_POLICY_NAME, self.RULE_ID)) + self.openstack( + 'network qos rule set --min-kbps 7500 %s %s' + % (self.QOS_POLICY_NAME, self.RULE_ID) + ) cmd_output = self.openstack( - 'network qos rule show %s %s' % - (self.QOS_POLICY_NAME, self.RULE_ID), + 'network qos rule show %s %s' + % (self.QOS_POLICY_NAME, self.RULE_ID), parse_output=True, ) self.assertEqual(7500, cmd_output['min_kbps']) @@ -102,31 +107,33 @@ class NetworkQosRuleTestsMinimumPacketRate(common.NetworkTests): self.QOS_POLICY_NAME = 'qos_policy_%s' % uuid.uuid4().hex - self.openstack( - 'network qos policy create %s' % self.QOS_POLICY_NAME + self.openstack('network qos policy create %s' % self.QOS_POLICY_NAME) + self.addCleanup( + self.openstack, + 'network qos policy delete %s' % self.QOS_POLICY_NAME, ) - self.addCleanup(self.openstack, - 'network qos policy delete %s' % self.QOS_POLICY_NAME) cmd_output = self.openstack( 'network qos rule create ' '--type minimum-packet-rate ' '--min-kpps 2800 ' - '--egress %s' % - self.QOS_POLICY_NAME, + '--egress %s' % self.QOS_POLICY_NAME, parse_output=True, ) self.RULE_ID = cmd_output['id'] - self.addCleanup(self.openstack, - 'network qos rule delete %s %s' % - (self.QOS_POLICY_NAME, self.RULE_ID)) + self.addCleanup( + self.openstack, + 'network qos rule delete %s %s' + % (self.QOS_POLICY_NAME, self.RULE_ID), + ) self.assertTrue(self.RULE_ID) def test_qos_rule_create_delete(self): # This is to check the output of qos rule delete policy_name = uuid.uuid4().hex self.openstack('network qos policy create %s' % policy_name) - self.addCleanup(self.openstack, - 'network qos policy delete %s' % policy_name) + self.addCleanup( + self.openstack, 'network qos policy delete %s' % policy_name + ) rule = self.openstack( 'network qos rule create ' '--type minimum-packet-rate ' @@ -135,30 +142,33 @@ class NetworkQosRuleTestsMinimumPacketRate(common.NetworkTests): parse_output=True, ) raw_output = self.openstack( - 'network qos rule delete %s %s' % - (policy_name, rule['id'])) + 'network qos rule delete %s %s' % (policy_name, rule['id']) + ) self.assertEqual('', raw_output) def test_qos_rule_list(self): cmd_output = self.openstack( 'network qos rule list %s' % self.QOS_POLICY_NAME, - parse_output=True,) + parse_output=True, + ) self.assertIn(self.RULE_ID, [rule['ID'] for rule in cmd_output]) def test_qos_rule_show(self): cmd_output = self.openstack( - 'network qos rule show %s %s' % - (self.QOS_POLICY_NAME, self.RULE_ID), + 'network qos rule show %s %s' + % (self.QOS_POLICY_NAME, self.RULE_ID), parse_output=True, ) self.assertEqual(self.RULE_ID, cmd_output['id']) def test_qos_rule_set(self): - self.openstack('network qos rule set --min-kpps 7500 --any %s %s' % - (self.QOS_POLICY_NAME, self.RULE_ID)) + self.openstack( + 'network qos rule set --min-kpps 7500 --any %s %s' + % (self.QOS_POLICY_NAME, self.RULE_ID) + ) cmd_output = self.openstack( - 'network qos rule show %s %s' % - (self.QOS_POLICY_NAME, self.RULE_ID), + 'network qos rule show %s %s' + % (self.QOS_POLICY_NAME, self.RULE_ID), parse_output=True, ) self.assertEqual(7500, cmd_output['min_kpps']) @@ -175,30 +185,32 @@ class NetworkQosRuleTestsDSCPMarking(common.NetworkTests): self.skipTest("No Network service present") self.QOS_POLICY_NAME = 'qos_policy_%s' % uuid.uuid4().hex - self.openstack( - 'network qos policy create %s' % self.QOS_POLICY_NAME + self.openstack('network qos policy create %s' % self.QOS_POLICY_NAME) + self.addCleanup( + self.openstack, + 'network qos policy delete %s' % self.QOS_POLICY_NAME, ) - self.addCleanup(self.openstack, - 'network qos policy delete %s' % self.QOS_POLICY_NAME) cmd_output = self.openstack( 'network qos rule create ' '--type dscp-marking ' - '--dscp-mark 8 %s' % - self.QOS_POLICY_NAME, + '--dscp-mark 8 %s' % self.QOS_POLICY_NAME, parse_output=True, ) self.RULE_ID = cmd_output['id'] - self.addCleanup(self.openstack, - 'network qos rule delete %s %s' % - (self.QOS_POLICY_NAME, self.RULE_ID)) + self.addCleanup( + self.openstack, + 'network qos rule delete %s %s' + % (self.QOS_POLICY_NAME, self.RULE_ID), + ) self.assertTrue(self.RULE_ID) def test_qos_rule_create_delete(self): # This is to check the output of qos rule delete policy_name = uuid.uuid4().hex self.openstack('network qos policy create %s' % policy_name) - self.addCleanup(self.openstack, - 'network qos policy delete %s' % policy_name) + self.addCleanup( + self.openstack, 'network qos policy delete %s' % policy_name + ) rule = self.openstack( 'network qos rule create ' '--type dscp-marking ' @@ -206,30 +218,33 @@ class NetworkQosRuleTestsDSCPMarking(common.NetworkTests): parse_output=True, ) raw_output = self.openstack( - 'network qos rule delete %s %s' % - (policy_name, rule['id'])) + 'network qos rule delete %s %s' % (policy_name, rule['id']) + ) self.assertEqual('', raw_output) def test_qos_rule_list(self): cmd_output = self.openstack( 'network qos rule list %s' % self.QOS_POLICY_NAME, - parse_output=True,) + parse_output=True, + ) self.assertIn(self.RULE_ID, [rule['ID'] for rule in cmd_output]) def test_qos_rule_show(self): cmd_output = self.openstack( - 'network qos rule show %s %s' % - (self.QOS_POLICY_NAME, self.RULE_ID), + 'network qos rule show %s %s' + % (self.QOS_POLICY_NAME, self.RULE_ID), parse_output=True, ) self.assertEqual(self.RULE_ID, cmd_output['id']) def test_qos_rule_set(self): - self.openstack('network qos rule set --dscp-mark 32 %s %s' % - (self.QOS_POLICY_NAME, self.RULE_ID)) + self.openstack( + 'network qos rule set --dscp-mark 32 %s %s' + % (self.QOS_POLICY_NAME, self.RULE_ID) + ) cmd_output = self.openstack( - 'network qos rule show %s %s' % - (self.QOS_POLICY_NAME, self.RULE_ID), + 'network qos rule show %s %s' + % (self.QOS_POLICY_NAME, self.RULE_ID), parse_output=True, ) self.assertEqual(32, cmd_output['dscp_mark']) @@ -245,31 +260,33 @@ class NetworkQosRuleTestsBandwidthLimit(common.NetworkTests): self.skipTest("No Network service present") self.QOS_POLICY_NAME = 'qos_policy_%s' % uuid.uuid4().hex - self.openstack( - 'network qos policy create %s' % self.QOS_POLICY_NAME + self.openstack('network qos policy create %s' % self.QOS_POLICY_NAME) + self.addCleanup( + self.openstack, + 'network qos policy delete %s' % self.QOS_POLICY_NAME, ) - self.addCleanup(self.openstack, - 'network qos policy delete %s' % self.QOS_POLICY_NAME) cmd_output = self.openstack( 'network qos rule create ' '--type bandwidth-limit ' '--max-kbps 10000 ' - '--egress %s' % - self.QOS_POLICY_NAME, + '--egress %s' % self.QOS_POLICY_NAME, parse_output=True, ) self.RULE_ID = cmd_output['id'] - self.addCleanup(self.openstack, - 'network qos rule delete %s %s' % - (self.QOS_POLICY_NAME, self.RULE_ID)) + self.addCleanup( + self.openstack, + 'network qos rule delete %s %s' + % (self.QOS_POLICY_NAME, self.RULE_ID), + ) self.assertTrue(self.RULE_ID) def test_qos_rule_create_delete(self): # This is to check the output of qos rule delete policy_name = uuid.uuid4().hex self.openstack('network qos policy create %s' % policy_name) - self.addCleanup(self.openstack, - 'network qos policy delete %s' % policy_name) + self.addCleanup( + self.openstack, 'network qos policy delete %s' % policy_name + ) rule = self.openstack( 'network qos rule create ' '--type bandwidth-limit ' @@ -279,33 +296,34 @@ class NetworkQosRuleTestsBandwidthLimit(common.NetworkTests): parse_output=True, ) raw_output = self.openstack( - 'network qos rule delete %s %s' % - (policy_name, rule['id'])) + 'network qos rule delete %s %s' % (policy_name, rule['id']) + ) self.assertEqual('', raw_output) def test_qos_rule_list(self): cmd_output = self.openstack( - 'network qos rule list %s' % - self.QOS_POLICY_NAME, - parse_output=True,) + 'network qos rule list %s' % self.QOS_POLICY_NAME, + parse_output=True, + ) self.assertIn(self.RULE_ID, [rule['ID'] for rule in cmd_output]) def test_qos_rule_show(self): cmd_output = self.openstack( - 'network qos rule show %s %s' % - (self.QOS_POLICY_NAME, self.RULE_ID), + 'network qos rule show %s %s' + % (self.QOS_POLICY_NAME, self.RULE_ID), parse_output=True, ) self.assertEqual(self.RULE_ID, cmd_output['id']) def test_qos_rule_set(self): - self.openstack('network qos rule set --max-kbps 15000 ' - '--max-burst-kbits 1800 ' - '--ingress %s %s' % - (self.QOS_POLICY_NAME, self.RULE_ID)) + self.openstack( + 'network qos rule set --max-kbps 15000 ' + '--max-burst-kbits 1800 ' + '--ingress %s %s' % (self.QOS_POLICY_NAME, self.RULE_ID) + ) cmd_output = self.openstack( - 'network qos rule show %s %s' % - (self.QOS_POLICY_NAME, self.RULE_ID), + 'network qos rule show %s %s' + % (self.QOS_POLICY_NAME, self.RULE_ID), parse_output=True, ) self.assertEqual(15000, cmd_output['max_kbps']) diff --git a/openstackclient/tests/functional/network/v2/test_network_qos_rule_type.py b/openstackclient/tests/functional/network/v2/test_network_qos_rule_type.py index 4ead65cc29..77f0d71c40 100644 --- a/openstackclient/tests/functional/network/v2/test_network_qos_rule_type.py +++ b/openstackclient/tests/functional/network/v2/test_network_qos_rule_type.py @@ -17,17 +17,17 @@ from openstackclient.tests.functional.network.v2 import common class NetworkQosRuleTypeTests(common.NetworkTests): - """Functional tests for Network QoS rule type. """ + """Functional tests for Network QoS rule type.""" - AVAILABLE_RULE_TYPES = ['dscp_marking', - 'bandwidth_limit'] + AVAILABLE_RULE_TYPES = ['dscp_marking', 'bandwidth_limit'] # NOTE(ralonsoh): this list was updated in Yoga (February 2022) - ALL_AVAILABLE_RULE_TYPES = ['dscp_marking', - 'bandwidth_limit', - 'minimum_bandwidth', - 'packet_rate_limit', - 'minimum_packet_rate', - ] + ALL_AVAILABLE_RULE_TYPES = [ + 'dscp_marking', + 'bandwidth_limit', + 'minimum_bandwidth', + 'packet_rate_limit', + 'minimum_packet_rate', + ] def setUp(self): super(NetworkQosRuleTypeTests, self).setUp() @@ -49,7 +49,7 @@ class NetworkQosRuleTypeTests(common.NetworkTests): cmd_output = self.openstack( 'network qos rule type list --all-supported -f json', - parse_output=True + parse_output=True, ) for rule_type in self.AVAILABLE_RULE_TYPES: self.assertIn(rule_type, [x['Type'] for x in cmd_output]) @@ -59,8 +59,7 @@ class NetworkQosRuleTypeTests(common.NetworkTests): self.skipTest('No "qos-rule-type-filter" extension present') cmd_output = self.openstack( - 'network qos rule type list --all-rules -f json', - parse_output=True + 'network qos rule type list --all-rules -f json', parse_output=True ) for rule_type in self.ALL_AVAILABLE_RULE_TYPES: self.assertIn(rule_type, [x['Type'] for x in cmd_output]) diff --git a/openstackclient/tests/functional/network/v2/test_network_rbac.py b/openstackclient/tests/functional/network/v2/test_network_rbac.py index cb66759afc..e5130cd101 100644 --- a/openstackclient/tests/functional/network/v2/test_network_rbac.py +++ b/openstackclient/tests/functional/network/v2/test_network_rbac.py @@ -17,6 +17,7 @@ from openstackclient.tests.functional.network.v2 import common class NetworkRBACTests(common.NetworkTests): """Functional tests for network rbac""" + OBJECT_ID = None ID = None HEADERS = ['ID'] @@ -35,20 +36,20 @@ class NetworkRBACTests(common.NetworkTests): 'network create ' + self.NET_NAME, parse_output=True, ) - self.addCleanup(self.openstack, - 'network delete ' + cmd_output['id']) + self.addCleanup(self.openstack, 'network delete ' + cmd_output['id']) self.OBJECT_ID = cmd_output['id'] cmd_output = self.openstack( - 'network rbac create ' + - self.OBJECT_ID + - ' --action access_as_shared' + - ' --target-project admin' + - ' --type network', + 'network rbac create ' + + self.OBJECT_ID + + ' --action access_as_shared' + + ' --target-project admin' + + ' --type network', parse_output=True, ) - self.addCleanup(self.openstack, - 'network rbac delete ' + cmd_output['id']) + self.addCleanup( + self.openstack, 'network rbac delete ' + cmd_output['id'] + ) self.ID = cmd_output['id'] self.assertEqual(self.OBJECT_ID, cmd_output['object_id']) @@ -59,20 +60,27 @@ class NetworkRBACTests(common.NetworkTests): def test_network_rbac_show(self): cmd_output = self.openstack( 'network rbac show ' + self.ID, - parse_output=True,) + parse_output=True, + ) self.assertEqual(self.ID, cmd_output['id']) def test_network_rbac_set(self): project_id = self.openstack( 'project create ' + self.PROJECT_NAME, - parse_output=True,)['id'] - self.openstack('network rbac set ' + self.ID + - ' --target-project ' + self.PROJECT_NAME) + parse_output=True, + )['id'] + self.openstack( + 'network rbac set ' + + self.ID + + ' --target-project ' + + self.PROJECT_NAME + ) cmd_output_rbac = self.openstack( 'network rbac show ' + self.ID, parse_output=True, ) self.assertEqual(project_id, cmd_output_rbac['target_project_id']) raw_output_project = self.openstack( - 'project delete ' + self.PROJECT_NAME) + 'project delete ' + self.PROJECT_NAME + ) self.assertEqual('', raw_output_project) diff --git a/openstackclient/tests/functional/network/v2/test_network_segment.py b/openstackclient/tests/functional/network/v2/test_network_segment.py index 111c4dc3f8..f8b5aaf60a 100644 --- a/openstackclient/tests/functional/network/v2/test_network_segment.py +++ b/openstackclient/tests/functional/network/v2/test_network_segment.py @@ -27,7 +27,8 @@ class NetworkSegmentTests(common.NetworkTests): # Create a network for the all subnet tests cmd_output = cls.openstack( - 'network create ' + cls.NETWORK_NAME, parse_output=True, + 'network create ' + cls.NETWORK_NAME, + parse_output=True, ) # Get network_id for assertEqual cls.NETWORK_ID = cmd_output["id"] @@ -37,8 +38,7 @@ class NetworkSegmentTests(common.NetworkTests): try: if cls.haz_network: raw_output = cls.openstack( - 'network delete ' + - cls.NETWORK_NAME + 'network delete ' + cls.NETWORK_NAME ) cls.assertOutput('', raw_output) finally: @@ -53,11 +53,13 @@ class NetworkSegmentTests(common.NetworkTests): def test_network_segment_create_delete(self): name = uuid.uuid4().hex json_output = self.openstack( - ' network segment create ' + - '--network ' + self.NETWORK_ID + ' ' + - '--network-type geneve ' + - '--segment 2055 ' + - name, + ' network segment create ' + + '--network ' + + self.NETWORK_ID + + ' ' + + '--network-type geneve ' + + '--segment 2055 ' + + name, parse_output=True, ) self.assertEqual( @@ -73,18 +75,19 @@ class NetworkSegmentTests(common.NetworkTests): def test_network_segment_list(self): name = uuid.uuid4().hex json_output = self.openstack( - ' network segment create ' + - '--network ' + self.NETWORK_ID + ' ' + - '--network-type geneve ' + - '--segment 2055 ' + - name, + ' network segment create ' + + '--network ' + + self.NETWORK_ID + + ' ' + + '--network-type geneve ' + + '--segment 2055 ' + + name, parse_output=True, ) network_segment_id = json_output.get('id') network_segment_name = json_output.get('name') self.addCleanup( - self.openstack, - 'network segment delete ' + network_segment_id + self.openstack, 'network segment delete ' + network_segment_id ) self.assertEqual( name, @@ -95,26 +98,23 @@ class NetworkSegmentTests(common.NetworkTests): 'network segment list', parse_output=True, ) - item_map = { - item.get('ID'): item.get('Name') for item in json_output - } + item_map = {item.get('ID'): item.get('Name') for item in json_output} self.assertIn(network_segment_id, item_map.keys()) self.assertIn(network_segment_name, item_map.values()) def test_network_segment_set_show(self): name = uuid.uuid4().hex json_output = self.openstack( - ' network segment create ' + - '--network ' + self.NETWORK_ID + ' ' + - '--network-type geneve ' + - '--segment 2055 ' + - name, + ' network segment create ' + + '--network ' + + self.NETWORK_ID + + ' ' + + '--network-type geneve ' + + '--segment 2055 ' + + name, parse_output=True, ) - self.addCleanup( - self.openstack, - 'network segment delete ' + name - ) + self.addCleanup(self.openstack, 'network segment delete ' + name) extension_output = self.openstack( "extension list ", @@ -133,15 +133,16 @@ class NetworkSegmentTests(common.NetworkTests): new_description = 'new_description' cmd_output = self.openstack( - 'network segment set ' + - '--description ' + new_description + ' ' + - name + 'network segment set ' + + '--description ' + + new_description + + ' ' + + name ) self.assertOutput('', cmd_output) json_output = self.openstack( - 'network segment show ' + - name, + 'network segment show ' + name, parse_output=True, ) self.assertEqual( diff --git a/openstackclient/tests/functional/network/v2/test_network_segment_range.py b/openstackclient/tests/functional/network/v2/test_network_segment_range.py index 5cdf581241..0dd67ead0e 100644 --- a/openstackclient/tests/functional/network/v2/test_network_segment_range.py +++ b/openstackclient/tests/functional/network/v2/test_network_segment_range.py @@ -35,16 +35,19 @@ class NetworkSegmentRangeTests(common.NetworkTests): # Make a project project_id = self.openstack( 'project create ' + self.PROJECT_NAME, - parse_output=True,)['id'] + parse_output=True, + )['id'] name = uuid.uuid4().hex json_output = self.openstack( - ' network segment range create ' + - '--private ' + - "--project " + self.PROJECT_NAME + " " + - '--network-type vxlan ' + - '--minimum 2005 ' + - '--maximum 2009 ' + - name, + ' network segment range create ' + + '--private ' + + "--project " + + self.PROJECT_NAME + + " " + + '--network-type vxlan ' + + '--minimum 2005 ' + + '--maximum 2009 ' + + name, parse_output=True, ) self.assertEqual( @@ -61,25 +64,26 @@ class NetworkSegmentRangeTests(common.NetworkTests): ) self.assertOutput('', raw_output) raw_output_project = self.openstack( - 'project delete ' + self.PROJECT_NAME) + 'project delete ' + self.PROJECT_NAME + ) self.assertEqual('', raw_output_project) def test_network_segment_range_list(self): name = uuid.uuid4().hex json_output = self.openstack( - ' network segment range create ' + - '--shared ' + - '--network-type geneve ' + - '--minimum 2013 ' + - '--maximum 2017 ' + - name, + ' network segment range create ' + + '--shared ' + + '--network-type geneve ' + + '--minimum 2013 ' + + '--maximum 2017 ' + + name, parse_output=True, ) network_segment_range_id = json_output.get('id') network_segment_range_name = json_output.get('name') self.addCleanup( self.openstack, - 'network segment range delete ' + network_segment_range_id + 'network segment range delete ' + network_segment_range_id, ) self.assertEqual( name, @@ -90,31 +94,29 @@ class NetworkSegmentRangeTests(common.NetworkTests): 'network segment range list', parse_output=True, ) - item_map = { - item.get('ID'): item.get('Name') for item in json_output - } + item_map = {item.get('ID'): item.get('Name') for item in json_output} self.assertIn(network_segment_range_id, item_map.keys()) self.assertIn(network_segment_range_name, item_map.values()) def test_network_segment_range_set_show(self): project_id = self.openstack( 'project create ' + self.PROJECT_NAME, - parse_output=True,)['id'] + parse_output=True, + )['id'] name = uuid.uuid4().hex json_output = self.openstack( - ' network segment range create ' + - '--private ' + - "--project " + self.PROJECT_NAME + " " + - '--network-type geneve ' + - '--minimum 2021 ' + - '--maximum 2025 ' + - name, + ' network segment range create ' + + '--private ' + + "--project " + + self.PROJECT_NAME + + " " + + '--network-type geneve ' + + '--minimum 2021 ' + + '--maximum 2025 ' + + name, parse_output=True, ) - self.addCleanup( - self.openstack, - 'network segment range delete ' + name - ) + self.addCleanup(self.openstack, 'network segment range delete ' + name) self.assertEqual( name, json_output["name"], @@ -127,14 +129,13 @@ class NetworkSegmentRangeTests(common.NetworkTests): new_minimum = 2020 new_maximum = 2029 cmd_output = self.openstack( - 'network segment range set --minimum {min} --maximum {max} {name}' - .format(min=new_minimum, max=new_maximum, name=name) + 'network segment range set --minimum {min} --maximum {max} ' + '{name}'.format(min=new_minimum, max=new_maximum, name=name) ) self.assertOutput('', cmd_output) json_output = self.openstack( - 'network segment range show ' + - name, + 'network segment range show ' + name, parse_output=True, ) self.assertEqual( @@ -147,5 +148,6 @@ class NetworkSegmentRangeTests(common.NetworkTests): ) raw_output_project = self.openstack( - 'project delete ' + self.PROJECT_NAME) + 'project delete ' + self.PROJECT_NAME + ) self.assertEqual('', raw_output_project) diff --git a/openstackclient/tests/functional/network/v2/test_network_service_provider.py b/openstackclient/tests/functional/network/v2/test_network_service_provider.py index 9d513564d5..dd1d26e21e 100644 --- a/openstackclient/tests/functional/network/v2/test_network_service_provider.py +++ b/openstackclient/tests/functional/network/v2/test_network_service_provider.py @@ -37,5 +37,6 @@ class TestNetworkServiceProvider(common.NetworkTests): def test_network_service_provider_list(self): cmd_output = self.openstack( 'network service provider list', - parse_output=True,) + parse_output=True, + ) self.assertIn('L3_ROUTER_NAT', [x['Service Type'] for x in cmd_output]) diff --git a/openstackclient/tests/functional/network/v2/test_network_trunk.py b/openstackclient/tests/functional/network/v2/test_network_trunk.py index bbb77a0d61..bb50164fe4 100644 --- a/openstackclient/tests/functional/network/v2/test_network_trunk.py +++ b/openstackclient/tests/functional/network/v2/test_network_trunk.py @@ -37,113 +37,122 @@ class NetworkTrunkTests(common.NetworkTests): self.openstack( 'subnet create %s ' - '--network %s --subnet-range 10.0.0.0/24' % ( - subnet_name, network_name)) - self.openstack('port create %s --network %s' % - (self.parent_port_name, network_name)) - self.addCleanup(self.openstack, 'port delete %s' % - self.parent_port_name) - json_out = self.openstack('port create %s --network %s -f json' % - (self.sub_port_name, network_name)) + '--network %s --subnet-range 10.0.0.0/24' + % (subnet_name, network_name) + ) + self.openstack( + 'port create %s --network %s' + % (self.parent_port_name, network_name) + ) + self.addCleanup( + self.openstack, 'port delete %s' % self.parent_port_name + ) + json_out = self.openstack( + 'port create %s --network %s -f json' + % (self.sub_port_name, network_name) + ) self.sub_port_id = json.loads(json_out)['id'] self.addCleanup(self.openstack, 'port delete %s' % self.sub_port_name) def test_network_trunk_create_delete(self): trunk_name = uuid.uuid4().hex - self.openstack('network trunk create %s --parent-port %s -f json ' % - (trunk_name, self.parent_port_name)) - raw_output = self.openstack( - 'network trunk delete ' + - trunk_name + self.openstack( + 'network trunk create %s --parent-port %s -f json ' + % (trunk_name, self.parent_port_name) ) + raw_output = self.openstack('network trunk delete ' + trunk_name) self.assertEqual('', raw_output) def test_network_trunk_list(self): trunk_name = uuid.uuid4().hex - json_output = json.loads(self.openstack( - 'network trunk create %s --parent-port %s -f json ' % - (trunk_name, self.parent_port_name))) - self.addCleanup(self.openstack, - 'network trunk delete ' + trunk_name) + json_output = json.loads( + self.openstack( + 'network trunk create %s --parent-port %s -f json ' + % (trunk_name, self.parent_port_name) + ) + ) + self.addCleanup(self.openstack, 'network trunk delete ' + trunk_name) self.assertEqual(trunk_name, json_output['name']) - json_output = json.loads(self.openstack( - 'network trunk list -f json' - )) + json_output = json.loads(self.openstack('network trunk list -f json')) self.assertIn(trunk_name, [tr['Name'] for tr in json_output]) def test_network_trunk_set_unset(self): trunk_name = uuid.uuid4().hex - json_output = json.loads(self.openstack( - 'network trunk create %s --parent-port %s -f json ' % - (trunk_name, self.parent_port_name))) - self.addCleanup(self.openstack, - 'network trunk delete ' + trunk_name) + json_output = json.loads( + self.openstack( + 'network trunk create %s --parent-port %s -f json ' + % (trunk_name, self.parent_port_name) + ) + ) + self.addCleanup(self.openstack, 'network trunk delete ' + trunk_name) self.assertEqual(trunk_name, json_output['name']) - self.openstack( - 'network trunk set ' - '--enable ' + - trunk_name - ) + self.openstack('network trunk set ' '--enable ' + trunk_name) - json_output = json.loads(self.openstack( - 'network trunk show -f json ' + - trunk_name - )) + json_output = json.loads( + self.openstack('network trunk show -f json ' + trunk_name) + ) self.assertTrue(json_output['is_admin_state_up']) # Add subport to trunk self.openstack( - 'network trunk set ' + - '--subport port=%s,segmentation-type=vlan,segmentation-id=42 ' % - (self.sub_port_name) + - trunk_name + 'network trunk set ' + + '--subport port=%s,segmentation-type=vlan,segmentation-id=42 ' + % (self.sub_port_name) + + trunk_name + ) + json_output = json.loads( + self.openstack('network trunk show -f json ' + trunk_name) ) - json_output = json.loads(self.openstack( - 'network trunk show -f json ' + - trunk_name - )) self.assertEqual( - [{ - 'port_id': self.sub_port_id, - 'segmentation_id': 42, - 'segmentation_type': 'vlan' - }], - json_output['sub_ports']) + [ + { + 'port_id': self.sub_port_id, + 'segmentation_id': 42, + 'segmentation_type': 'vlan', + } + ], + json_output['sub_ports'], + ) # Remove subport from trunk self.openstack( - 'network trunk unset ' + - trunk_name + - ' --subport ' + - self.sub_port_name + 'network trunk unset ' + + trunk_name + + ' --subport ' + + self.sub_port_name ) - json_output = json.loads(self.openstack( - 'network trunk show -f json ' + - trunk_name - )) - self.assertEqual( - [], - json_output['sub_ports']) + json_output = json.loads( + self.openstack('network trunk show -f json ' + trunk_name) + ) + self.assertEqual([], json_output['sub_ports']) def test_network_trunk_list_subports(self): trunk_name = uuid.uuid4().hex - json_output = json.loads(self.openstack( - 'network trunk create %s --parent-port %s ' - '--subport port=%s,segmentation-type=vlan,segmentation-id=42 ' - '-f json ' % - (trunk_name, self.parent_port_name, self.sub_port_name))) - self.addCleanup(self.openstack, - 'network trunk delete ' + trunk_name) + json_output = json.loads( + self.openstack( + 'network trunk create %s --parent-port %s ' + '--subport port=%s,segmentation-type=vlan,segmentation-id=42 ' + '-f json ' + % (trunk_name, self.parent_port_name, self.sub_port_name) + ) + ) + self.addCleanup(self.openstack, 'network trunk delete ' + trunk_name) self.assertEqual(trunk_name, json_output['name']) - json_output = json.loads(self.openstack( - 'network subport list --trunk %s -f json' % trunk_name)) + json_output = json.loads( + self.openstack( + 'network subport list --trunk %s -f json' % trunk_name + ) + ) self.assertEqual( - [{ - 'Port': self.sub_port_id, - 'Segmentation ID': 42, - 'Segmentation Type': 'vlan' - }], - json_output) + [ + { + 'Port': self.sub_port_id, + 'Segmentation ID': 42, + 'Segmentation Type': 'vlan', + } + ], + json_output, + ) diff --git a/openstackclient/tests/functional/network/v2/test_port.py b/openstackclient/tests/functional/network/v2/test_port.py index f5bc9c4ae5..b3d3a109c3 100644 --- a/openstackclient/tests/functional/network/v2/test_port.py +++ b/openstackclient/tests/functional/network/v2/test_port.py @@ -31,9 +31,7 @@ class PortTests(common.NetworkTagTests): cls.NETWORK_NAME = uuid.uuid4().hex # Create a network for the port tests - cls.openstack( - 'network create %s' % cls.NETWORK_NAME - ) + cls.openstack('network create %s' % cls.NETWORK_NAME) @classmethod def tearDownClass(cls): @@ -55,8 +53,7 @@ class PortTests(common.NetworkTagTests): def test_port_delete(self): """Test create, delete multiple""" json_output = self.openstack( - 'port create --network %s %s' % - (self.NETWORK_NAME, self.NAME), + 'port create --network %s %s' % (self.NETWORK_NAME, self.NAME), parse_output=True, ) id1 = json_output.get('id') @@ -65,8 +62,7 @@ class PortTests(common.NetworkTagTests): self.assertEqual(self.NAME, json_output.get('name')) json_output = self.openstack( - 'port create --network %s %sx' % - (self.NETWORK_NAME, self.NAME), + 'port create --network %s %sx' % (self.NETWORK_NAME, self.NAME), parse_output=True, ) id2 = json_output.get('id') @@ -81,8 +77,7 @@ class PortTests(common.NetworkTagTests): def test_port_list(self): """Test create defaults, list, delete""" json_output = self.openstack( - 'port create --network %s %s' % - (self.NETWORK_NAME, self.NAME), + 'port create --network %s %s' % (self.NETWORK_NAME, self.NAME), parse_output=True, ) id1 = json_output.get('id') @@ -93,8 +88,7 @@ class PortTests(common.NetworkTagTests): self.assertEqual(self.NAME, json_output.get('name')) json_output = self.openstack( - 'port create --network %s %sx' % - (self.NETWORK_NAME, self.NAME), + 'port create --network %s %sx' % (self.NETWORK_NAME, self.NAME), parse_output=True, ) id2 = json_output.get('id') @@ -109,8 +103,9 @@ class PortTests(common.NetworkTagTests): 'port list', parse_output=True, ) - item_map = {item.get('ID'): item.get('MAC Address') for item in - json_output} + item_map = { + item.get('ID'): item.get('MAC Address') for item in json_output + } self.assertIn(id1, item_map.keys()) self.assertIn(id2, item_map.keys()) self.assertIn(mac1, item_map.values()) @@ -130,8 +125,9 @@ class PortTests(common.NetworkTagTests): 'port list --mac-address %s' % mac2, parse_output=True, ) - item_map = {item.get('ID'): item.get('MAC Address') for item in - json_output} + item_map = { + item.get('ID'): item.get('MAC Address') for item in json_output + } self.assertNotIn(id1, item_map.keys()) self.assertIn(id2, item_map.keys()) self.assertNotIn(mac1, item_map.values()) @@ -155,8 +151,7 @@ class PortTests(common.NetworkTagTests): 'port create ' '--network %s ' '--description xyzpdq ' - '--disable %s' % - (self.NETWORK_NAME, name), + '--disable %s' % (self.NETWORK_NAME, name), parse_output=True, ) id1 = json_output.get('id') @@ -165,10 +160,7 @@ class PortTests(common.NetworkTagTests): self.assertEqual('xyzpdq', json_output.get('description')) self.assertEqual(False, json_output.get('admin_state_up')) - raw_output = self.openstack( - 'port set --enable %s' % - name - ) + raw_output = self.openstack('port set --enable %s' % name) self.assertOutput('', raw_output) json_output = self.openstack( @@ -183,7 +175,8 @@ class PortTests(common.NetworkTagTests): self.assertIsNotNone(json_output.get('mac_address')) raw_output = self.openstack( - 'port unset --security-group %s %s' % (sg_id, id1)) + 'port unset --security-group %s %s' % (sg_id, id1) + ) self.assertOutput('', raw_output) json_output = self.openstack( @@ -195,8 +188,7 @@ class PortTests(common.NetworkTagTests): def test_port_admin_set(self): """Test create, set (as admin), show, delete""" json_output = self.openstack( - 'port create ' - '--network %s %s' % (self.NETWORK_NAME, self.NAME), + 'port create ' '--network %s %s' % (self.NETWORK_NAME, self.NAME), parse_output=True, ) id_ = json_output.get('id') @@ -204,8 +196,8 @@ class PortTests(common.NetworkTagTests): raw_output = self.openstack( '--os-username admin ' - 'port set --mac-address 11:22:33:44:55:66 %s' % - self.NAME) + 'port set --mac-address 11:22:33:44:55:66 %s' % self.NAME + ) self.assertOutput('', raw_output) json_output = self.openstack( 'port show %s' % self.NAME, @@ -217,8 +209,7 @@ class PortTests(common.NetworkTagTests): """Test create, set, show, delete""" sg_name1 = uuid.uuid4().hex json_output = self.openstack( - 'security group create %s' % - sg_name1, + 'security group create %s' % sg_name1, parse_output=True, ) sg_id1 = json_output.get('id') @@ -226,8 +217,7 @@ class PortTests(common.NetworkTagTests): sg_name2 = uuid.uuid4().hex json_output = self.openstack( - 'security group create %s' % - sg_name2, + 'security group create %s' % sg_name2, parse_output=True, ) sg_id2 = json_output.get('id') @@ -237,8 +227,7 @@ class PortTests(common.NetworkTagTests): json_output = self.openstack( 'port create ' '--network %s ' - '--security-group %s %s' % - (self.NETWORK_NAME, sg_name1, name), + '--security-group %s %s' % (self.NETWORK_NAME, sg_name1, name), parse_output=True, ) id1 = json_output.get('id') @@ -247,9 +236,7 @@ class PortTests(common.NetworkTagTests): self.assertEqual([sg_id1], json_output.get('security_group_ids')) raw_output = self.openstack( - 'port set ' - '--security-group %s %s' % - (sg_name2, name) + 'port set ' '--security-group %s %s' % (sg_name2, name) ) self.assertOutput('', raw_output) @@ -260,25 +247,26 @@ class PortTests(common.NetworkTagTests): self.assertEqual(name, json_output.get('name')) # NOTE(amotoki): The order of the field is not predictable, self.assertIsInstance(json_output.get('security_group_ids'), list) - self.assertEqual(sorted([sg_id1, sg_id2]), - sorted(json_output.get('security_group_ids'))) + self.assertEqual( + sorted([sg_id1, sg_id2]), + sorted(json_output.get('security_group_ids')), + ) raw_output = self.openstack( - 'port unset --security-group %s %s' % (sg_id1, id1)) + 'port unset --security-group %s %s' % (sg_id1, id1) + ) self.assertOutput('', raw_output) json_output = self.openstack( 'port show %s' % name, parse_output=True, ) - self.assertEqual( - [sg_id2], - json_output.get('security_group_ids') - ) + self.assertEqual([sg_id2], json_output.get('security_group_ids')) def _create_resource_for_tag_test(self, name, args): return self.openstack( - '{} create --network {} {} {}' - .format(self.base_command, self.NETWORK_NAME, args, name), + '{} create --network {} {} {}'.format( + self.base_command, self.NETWORK_NAME, args, name + ), parse_output=True, ) diff --git a/openstackclient/tests/functional/network/v2/test_router.py b/openstackclient/tests/functional/network/v2/test_router.py index 07a5a633d9..fcd72d9fa7 100644 --- a/openstackclient/tests/functional/network/v2/test_router.py +++ b/openstackclient/tests/functional/network/v2/test_router.py @@ -31,8 +31,7 @@ class RouterTests(common.NetworkTagTests): name1 = uuid.uuid4().hex name2 = uuid.uuid4().hex cmd_output = self.openstack( - 'router create ' + - name1, + 'router create ' + name1, parse_output=True, ) self.assertEqual( @@ -40,8 +39,7 @@ class RouterTests(common.NetworkTagTests): cmd_output["name"], ) cmd_output = self.openstack( - 'router create ' + - name2, + 'router create ' + name2, parse_output=True, ) self.assertEqual( @@ -49,8 +47,7 @@ class RouterTests(common.NetworkTagTests): cmd_output["name"], ) - del_output = self.openstack( - 'router delete ' + name1 + ' ' + name2) + del_output = self.openstack('router delete ' + name1 + ' ' + name2) self.assertOutput('', del_output) def test_router_list(self): @@ -80,9 +77,7 @@ class RouterTests(common.NetworkTagTests): name1 = uuid.uuid4().hex name2 = uuid.uuid4().hex cmd_output = self.openstack( - 'router create ' + - '--disable ' + - name1, + 'router create ' + '--disable ' + name1, parse_output=True, ) @@ -100,9 +95,7 @@ class RouterTests(common.NetworkTagTests): cmd_output["project_id"], ) cmd_output = self.openstack( - 'router create ' + - '--project ' + demo_project_id + - ' ' + name2, + 'router create ' + '--project ' + demo_project_id + ' ' + name2, parse_output=True, ) @@ -122,8 +115,7 @@ class RouterTests(common.NetworkTagTests): # Test list --project cmd_output = self.openstack( - 'router list ' + - '--project ' + demo_project_id, + 'router list ' + '--project ' + demo_project_id, parse_output=True, ) names = [x["Name"] for x in cmd_output] @@ -132,8 +124,7 @@ class RouterTests(common.NetworkTagTests): # Test list --disable cmd_output = self.openstack( - 'router list ' + - '--disable ', + 'router list ' + '--disable ', parse_output=True, ) names = [x["Name"] for x in cmd_output] @@ -142,8 +133,7 @@ class RouterTests(common.NetworkTagTests): # Test list --name cmd_output = self.openstack( - 'router list ' + - '--name ' + name1, + 'router list ' + '--name ' + name1, parse_output=True, ) names = [x["Name"] for x in cmd_output] @@ -152,8 +142,7 @@ class RouterTests(common.NetworkTagTests): # Test list --long cmd_output = self.openstack( - 'router list ' + - '--long ', + 'router list ' + '--long ', parse_output=True, ) names = [x["Name"] for x in cmd_output] @@ -169,7 +158,8 @@ class RouterTests(common.NetworkTagTests): name = uuid.uuid4().hex cmd_output = self.openstack( 'router create ' + name, - parse_output=True,) + parse_output=True, + ) self.addCleanup(self.openstack, 'router delete ' + name) # Get router ID @@ -177,7 +167,8 @@ class RouterTests(common.NetworkTagTests): # Get l3 agent id cmd_output = self.openstack( 'network agent list --agent-type l3', - parse_output=True,) + parse_output=True, + ) # Check at least one L3 agent is included in the response. self.assertTrue(cmd_output) @@ -185,20 +176,24 @@ class RouterTests(common.NetworkTagTests): # Add router to agent self.openstack( - 'network agent add router --l3 ' + agent_id + ' ' + router_id) + 'network agent add router --l3 ' + agent_id + ' ' + router_id + ) cmd_output = self.openstack( 'router list --agent ' + agent_id, - parse_output=True,) + parse_output=True, + ) router_ids = [x['ID'] for x in cmd_output] self.assertIn(router_id, router_ids) # Remove router from agent self.openstack( - 'network agent remove router --l3 ' + agent_id + ' ' + router_id) + 'network agent remove router --l3 ' + agent_id + ' ' + router_id + ) cmd_output = self.openstack( 'router list --agent ' + agent_id, - parse_output=True,) + parse_output=True, + ) router_ids = [x['ID'] for x in cmd_output] self.assertNotIn(router_id, router_ids) @@ -208,9 +203,7 @@ class RouterTests(common.NetworkTagTests): name = uuid.uuid4().hex new_name = name + "_" cmd_output = self.openstack( - 'router create ' + - '--description aaaa ' + - name, + 'router create ' + '--description aaaa ' + name, parse_output=True, ) self.addCleanup(self.openstack, 'router delete ' + new_name) @@ -225,17 +218,17 @@ class RouterTests(common.NetworkTagTests): # Test set --disable cmd_output = self.openstack( - 'router set ' + - '--name ' + new_name + - ' --description bbbb ' + - '--disable ' + - name + 'router set ' + + '--name ' + + new_name + + ' --description bbbb ' + + '--disable ' + + name ) self.assertOutput('', cmd_output) cmd_output = self.openstack( - 'router show ' + - new_name, + 'router show ' + new_name, parse_output=True, ) self.assertEqual( @@ -256,13 +249,10 @@ class RouterTests(common.NetworkTagTests): # Test unset cmd_output = self.openstack( - 'router unset ' + - '--external-gateway ' + - new_name + 'router unset ' + '--external-gateway ' + new_name ) cmd_output = self.openstack( - 'router show ' + - new_name, + 'router show ' + new_name, parse_output=True, ) self.assertIsNone(cmd_output["external_gateway_info"]) @@ -272,16 +262,15 @@ class RouterTests(common.NetworkTagTests): return cmd_output = self.openstack( - 'router set ' + - '--distributed ' + - '--external-gateway public ' + - router_name + 'router set ' + + '--distributed ' + + '--external-gateway public ' + + router_name ) self.assertOutput('', cmd_output) cmd_output = self.openstack( - 'router show ' + - router_name, + 'router show ' + router_name, parse_output=True, ) self.assertTrue(cmd_output["distributed"]) @@ -297,38 +286,51 @@ class RouterTests(common.NetworkTagTests): self.openstack( 'subnet create %s ' - '--network %s --subnet-range 10.0.0.0/24' % ( - subnet_name, network_name)) + '--network %s --subnet-range 10.0.0.0/24' + % (subnet_name, network_name) + ) self.openstack('router create %s' % router_name) self.addCleanup(self.openstack, 'router delete %s' % router_name) self.openstack('router add subnet %s %s' % (router_name, subnet_name)) - self.addCleanup(self.openstack, 'router remove subnet %s %s' % ( - router_name, subnet_name)) + self.addCleanup( + self.openstack, + 'router remove subnet %s %s' % (router_name, subnet_name), + ) - out1 = self.openstack( - 'router add route %s ' - '--route destination=10.0.10.0/24,gateway=10.0.0.10' % - router_name, - parse_output=True,), + out1 = ( + self.openstack( + 'router add route %s ' + '--route destination=10.0.10.0/24,gateway=10.0.0.10' + % router_name, + parse_output=True, + ), + ) self.assertEqual(1, len(out1[0]['routes'])) self.addCleanup( - self.openstack, 'router set %s --no-route' % router_name) + self.openstack, 'router set %s --no-route' % router_name + ) - out2 = self.openstack( - 'router add route %s ' - '--route destination=10.0.10.0/24,gateway=10.0.0.10 ' - '--route destination=10.0.11.0/24,gateway=10.0.0.11' % - router_name, - parse_output=True,), + out2 = ( + self.openstack( + 'router add route %s ' + '--route destination=10.0.10.0/24,gateway=10.0.0.10 ' + '--route destination=10.0.11.0/24,gateway=10.0.0.11' + % router_name, + parse_output=True, + ), + ) self.assertEqual(2, len(out2[0]['routes'])) - out3 = self.openstack( - 'router remove route %s ' - '--route destination=10.0.11.0/24,gateway=10.0.0.11 ' - '--route destination=10.0.12.0/24,gateway=10.0.0.12' % - router_name, - parse_output=True,), + out3 = ( + self.openstack( + 'router remove route %s ' + '--route destination=10.0.11.0/24,gateway=10.0.0.11 ' + '--route destination=10.0.12.0/24,gateway=10.0.0.12' + % router_name, + parse_output=True, + ), + ) self.assertEqual(1, len(out3[0]['routes'])) diff --git a/openstackclient/tests/functional/network/v2/test_security_group.py b/openstackclient/tests/functional/network/v2/test_security_group.py index c9d929f57e..571c01ee15 100644 --- a/openstackclient/tests/functional/network/v2/test_security_group.py +++ b/openstackclient/tests/functional/network/v2/test_security_group.py @@ -27,12 +27,12 @@ class SecurityGroupTests(common.NetworkTests): self.NAME = uuid.uuid4().hex self.OTHER_NAME = uuid.uuid4().hex cmd_output = self.openstack( - 'security group create ' + - self.NAME, + 'security group create ' + self.NAME, parse_output=True, ) - self.addCleanup(self.openstack, - 'security group delete ' + cmd_output['id']) + self.addCleanup( + self.openstack, 'security group delete ' + cmd_output['id'] + ) self.assertEqual(self.NAME, cmd_output['name']) def test_security_group_list(self): @@ -42,8 +42,10 @@ class SecurityGroupTests(common.NetworkTests): def test_security_group_set(self): other_name = uuid.uuid4().hex raw_output = self.openstack( - 'security group set --description NSA --stateless --name ' + - other_name + ' ' + self.NAME + 'security group set --description NSA --stateless --name ' + + other_name + + ' ' + + self.NAME ) self.assertEqual('', raw_output) diff --git a/openstackclient/tests/functional/network/v2/test_security_group_rule.py b/openstackclient/tests/functional/network/v2/test_security_group_rule.py index d64fb420fa..6fdd041c12 100644 --- a/openstackclient/tests/functional/network/v2/test_security_group_rule.py +++ b/openstackclient/tests/functional/network/v2/test_security_group_rule.py @@ -28,24 +28,26 @@ class SecurityGroupRuleTests(common.NetworkTests): # Create the security group to hold the rule cmd_output = self.openstack( - 'security group create ' + - self.SECURITY_GROUP_NAME, + 'security group create ' + self.SECURITY_GROUP_NAME, parse_output=True, ) - self.addCleanup(self.openstack, - 'security group delete ' + self.SECURITY_GROUP_NAME) + self.addCleanup( + self.openstack, 'security group delete ' + self.SECURITY_GROUP_NAME + ) self.assertEqual(self.SECURITY_GROUP_NAME, cmd_output['name']) # Create the security group rule. cmd_output = self.openstack( - 'security group rule create ' + - self.SECURITY_GROUP_NAME + ' ' + - '--protocol tcp --dst-port 80:80 ' + - '--ingress --ethertype IPv4 ', + 'security group rule create ' + + self.SECURITY_GROUP_NAME + + ' ' + + '--protocol tcp --dst-port 80:80 ' + + '--ingress --ethertype IPv4 ', parse_output=True, ) - self.addCleanup(self.openstack, - 'security group rule delete ' + cmd_output['id']) + self.addCleanup( + self.openstack, 'security group rule delete ' + cmd_output['id'] + ) self.SECURITY_GROUP_RULE_ID = cmd_output['id'] def test_security_group_rule_list(self): @@ -53,8 +55,9 @@ class SecurityGroupRuleTests(common.NetworkTests): 'security group rule list ' + self.SECURITY_GROUP_NAME, parse_output=True, ) - self.assertIn(self.SECURITY_GROUP_RULE_ID, - [rule['ID'] for rule in cmd_output]) + self.assertIn( + self.SECURITY_GROUP_RULE_ID, [rule['ID'] for rule in cmd_output] + ) def test_security_group_rule_show(self): cmd_output = self.openstack( diff --git a/openstackclient/tests/functional/network/v2/test_subnet.py b/openstackclient/tests/functional/network/v2/test_subnet.py index 041ec9f04b..90eb772993 100644 --- a/openstackclient/tests/functional/network/v2/test_subnet.py +++ b/openstackclient/tests/functional/network/v2/test_subnet.py @@ -29,8 +29,7 @@ class SubnetTests(common.NetworkTagTests): # Create a network for the all subnet tests cmd_output = cls.openstack( - 'network create ' + - cls.NETWORK_NAME, + 'network create ' + cls.NETWORK_NAME, parse_output=True, ) # Get network_id for assertEqual @@ -41,8 +40,7 @@ class SubnetTests(common.NetworkTagTests): try: if cls.haz_network: raw_output = cls.openstack( - 'network delete ' + - cls.NETWORK_NAME + 'network delete ' + cls.NETWORK_NAME ) cls.assertOutput('', raw_output) finally: @@ -57,9 +55,9 @@ class SubnetTests(common.NetworkTagTests): def test_subnet_create_and_delete(self): """Test create, delete multiple""" name1 = uuid.uuid4().hex - cmd = ('subnet create --network ' + - self.NETWORK_NAME + - ' --subnet-range') + cmd = ( + 'subnet create --network ' + self.NETWORK_NAME + ' --subnet-range' + ) cmd_output = self._subnet_create(cmd, name1) self.assertEqual( name1, @@ -70,9 +68,9 @@ class SubnetTests(common.NetworkTagTests): cmd_output["network_id"], ) name2 = uuid.uuid4().hex - cmd = ('subnet create --network ' + - self.NETWORK_NAME + - ' --subnet-range') + cmd = ( + 'subnet create --network ' + self.NETWORK_NAME + ' --subnet-range' + ) cmd_output = self._subnet_create(cmd, name2) self.assertEqual( name2, @@ -83,17 +81,19 @@ class SubnetTests(common.NetworkTagTests): cmd_output["network_id"], ) - del_output = self.openstack( - 'subnet delete ' + name1 + ' ' + name2) + del_output = self.openstack('subnet delete ' + name1 + ' ' + name2) self.assertOutput('', del_output) def test_subnet_list(self): """Test create, list filter""" name1 = uuid.uuid4().hex name2 = uuid.uuid4().hex - cmd = ('subnet create ' + - '--network ' + self.NETWORK_NAME + - ' --dhcp --subnet-range') + cmd = ( + 'subnet create ' + + '--network ' + + self.NETWORK_NAME + + ' --dhcp --subnet-range' + ) cmd_output = self._subnet_create(cmd, name1) self.addCleanup(self.openstack, 'subnet delete ' + name1) @@ -114,10 +114,13 @@ class SubnetTests(common.NetworkTagTests): cmd_output["ip_version"], ) - cmd = ('subnet create ' + - '--network ' + self.NETWORK_NAME + - ' --ip-version 6 --no-dhcp ' + - '--subnet-range') + cmd = ( + 'subnet create ' + + '--network ' + + self.NETWORK_NAME + + ' --ip-version 6 --no-dhcp ' + + '--subnet-range' + ) cmd_output = self._subnet_create(cmd, name2, is_type_ipv4=False) self.addCleanup(self.openstack, 'subnet delete ' + name2) @@ -140,8 +143,7 @@ class SubnetTests(common.NetworkTagTests): # Test list --long cmd_output = self.openstack( - 'subnet list ' + - '--long ', + 'subnet list ' + '--long ', parse_output=True, ) names = [x["Name"] for x in cmd_output] @@ -150,8 +152,7 @@ class SubnetTests(common.NetworkTagTests): # Test list --name cmd_output = self.openstack( - 'subnet list ' + - '--name ' + name1, + 'subnet list ' + '--name ' + name1, parse_output=True, ) names = [x["Name"] for x in cmd_output] @@ -160,8 +161,7 @@ class SubnetTests(common.NetworkTagTests): # Test list --ip-version cmd_output = self.openstack( - 'subnet list ' + - '--ip-version 6', + 'subnet list ' + '--ip-version 6', parse_output=True, ) names = [x["Name"] for x in cmd_output] @@ -170,8 +170,7 @@ class SubnetTests(common.NetworkTagTests): # Test list --network cmd_output = self.openstack( - 'subnet list ' + - '--network ' + self.NETWORK_ID, + 'subnet list ' + '--network ' + self.NETWORK_ID, parse_output=True, ) names = [x["Name"] for x in cmd_output] @@ -180,8 +179,7 @@ class SubnetTests(common.NetworkTagTests): # Test list --no-dhcp cmd_output = self.openstack( - 'subnet list ' + - '--no-dhcp ', + 'subnet list ' + '--no-dhcp ', parse_output=True, ) names = [x["Name"] for x in cmd_output] @@ -193,9 +191,12 @@ class SubnetTests(common.NetworkTagTests): name = uuid.uuid4().hex new_name = name + "_" - cmd = ('subnet create ' + - '--network ' + self.NETWORK_NAME + - ' --description aaaa --subnet-range') + cmd = ( + 'subnet create ' + + '--network ' + + self.NETWORK_NAME + + ' --description aaaa --subnet-range' + ) cmd_output = self._subnet_create(cmd, name) self.addCleanup(self.openstack, 'subnet delete ' + new_name) @@ -210,19 +211,19 @@ class SubnetTests(common.NetworkTagTests): # Test set --no-dhcp --name --gateway --description cmd_output = self.openstack( - 'subnet set ' + - '--name ' + new_name + - ' --description bbbb ' + - '--no-dhcp ' + - '--gateway 10.10.11.1 ' + - '--service-type network:floatingip_agent_gateway ' + - name + 'subnet set ' + + '--name ' + + new_name + + ' --description bbbb ' + + '--no-dhcp ' + + '--gateway 10.10.11.1 ' + + '--service-type network:floatingip_agent_gateway ' + + name ) self.assertOutput('', cmd_output) cmd_output = self.openstack( - 'subnet show ' + - new_name, + 'subnet show ' + new_name, parse_output=True, ) self.assertEqual( @@ -248,15 +249,14 @@ class SubnetTests(common.NetworkTagTests): # Test unset cmd_output = self.openstack( - 'subnet unset ' + - '--service-type network:floatingip_agent_gateway ' + - new_name + 'subnet unset ' + + '--service-type network:floatingip_agent_gateway ' + + new_name ) self.assertOutput('', cmd_output) cmd_output = self.openstack( - 'subnet show ' + - new_name, + 'subnet show ' + new_name, parse_output=True, ) self.assertEqual( @@ -271,23 +271,32 @@ class SubnetTests(common.NetworkTagTests): for i in range(4): # Make a random subnet if is_type_ipv4: - subnet = ".".join(map( - str, - (random.randint(0, 223) for _ in range(3)) - )) + ".0/26" + subnet = ( + ".".join( + map(str, (random.randint(0, 223) for _ in range(3))) + ) + + ".0/26" + ) else: - subnet = ":".join(map( - str, - (hex(random.randint(0, 65535))[2:] for _ in range(7)) - )) + ":0/112" + subnet = ( + ":".join( + map( + str, + ( + hex(random.randint(0, 65535))[2:] + for _ in range(7) + ), + ) + ) + + ":0/112" + ) try: cmd_output = self.openstack( - cmd + ' ' + subnet + ' ' + - name, + cmd + ' ' + subnet + ' ' + name, parse_output=True, ) except Exception: - if (i == 3): + if i == 3: # raise the exception at the last time raise pass @@ -297,7 +306,11 @@ class SubnetTests(common.NetworkTagTests): return cmd_output def _create_resource_for_tag_test(self, name, args): - cmd = ('subnet create --network ' + - self.NETWORK_NAME + ' ' + args + - ' --subnet-range') + cmd = ( + 'subnet create --network ' + + self.NETWORK_NAME + + ' ' + + args + + ' --subnet-range' + ) return self._subnet_create(cmd, name) diff --git a/openstackclient/tests/functional/network/v2/test_subnet_pool.py b/openstackclient/tests/functional/network/v2/test_subnet_pool.py index 8dc5e7a1c5..f7cb1d7426 100644 --- a/openstackclient/tests/functional/network/v2/test_subnet_pool.py +++ b/openstackclient/tests/functional/network/v2/test_subnet_pool.py @@ -32,26 +32,14 @@ class SubnetPoolTests(common.NetworkTagTests): name1 = uuid.uuid4().hex cmd_output, pool_prefix = self._subnet_pool_create("", name1) - self.assertEqual( - name1, - cmd_output["name"] - ) - self.assertEqual( - [pool_prefix], - cmd_output["prefixes"] - ) + self.assertEqual(name1, cmd_output["name"]) + self.assertEqual([pool_prefix], cmd_output["prefixes"]) name2 = uuid.uuid4().hex cmd_output, pool_prefix = self._subnet_pool_create("", name2) - self.assertEqual( - name2, - cmd_output["name"] - ) - self.assertEqual( - [pool_prefix], - cmd_output["prefixes"] - ) + self.assertEqual(name2, cmd_output["name"]) + self.assertEqual([pool_prefix], cmd_output["prefixes"]) del_output = self.openstack( 'subnet pool delete ' + name1 + ' ' + name2, @@ -85,8 +73,7 @@ class SubnetPoolTests(common.NetworkTagTests): name2 = uuid.uuid4().hex cmd_output, pool_prefix = self._subnet_pool_create( - '--project ' + demo_project_id + - ' --no-share ', + '--project ' + demo_project_id + ' --no-share ', name1, ) self.addCleanup(self.openstack, 'subnet pool delete ' + name1) @@ -131,8 +118,7 @@ class SubnetPoolTests(common.NetworkTagTests): # Test list --project cmd_output = self.openstack( - 'subnet pool list ' + - '--project ' + demo_project_id, + 'subnet pool list ' + '--project ' + demo_project_id, parse_output=True, ) names = [x["Name"] for x in cmd_output] @@ -141,8 +127,7 @@ class SubnetPoolTests(common.NetworkTagTests): # Test list --share cmd_output = self.openstack( - 'subnet pool list ' + - '--share', + 'subnet pool list ' + '--share', parse_output=True, ) names = [x["Name"] for x in cmd_output] @@ -151,8 +136,7 @@ class SubnetPoolTests(common.NetworkTagTests): # Test list --name cmd_output = self.openstack( - 'subnet pool list ' + - '--name ' + name1, + 'subnet pool list ' + '--name ' + name1, parse_output=True, ) names = [x["Name"] for x in cmd_output] @@ -161,8 +145,7 @@ class SubnetPoolTests(common.NetworkTagTests): # Test list --long cmd_output = self.openstack( - 'subnet pool list ' + - '--long ', + 'subnet pool list ' + '--long ', parse_output=True, ) names = [x["Name"] for x in cmd_output] @@ -175,11 +158,11 @@ class SubnetPoolTests(common.NetworkTagTests): name = uuid.uuid4().hex new_name = name + "_" cmd_output, pool_prefix = self._subnet_pool_create( - '--default-prefix-length 16 ' + - '--min-prefix-length 16 ' + - '--max-prefix-length 32 ' + - '--description aaaa ' + - '--default-quota 10 ', + '--default-prefix-length 16 ' + + '--min-prefix-length 16 ' + + '--max-prefix-length 32 ' + + '--description aaaa ' + + '--default-quota 10 ', name, ) @@ -218,21 +201,21 @@ class SubnetPoolTests(common.NetworkTagTests): # Test set cmd_output = self.openstack( - 'subnet pool set ' + - '--name ' + new_name + - ' --description bbbb ' + - ' --pool-prefix 10.110.0.0/16 ' + - '--default-prefix-length 8 ' + - '--min-prefix-length 8 ' + - '--max-prefix-length 16 ' + - '--default-quota 20 ' + - name, + 'subnet pool set ' + + '--name ' + + new_name + + ' --description bbbb ' + + ' --pool-prefix 10.110.0.0/16 ' + + '--default-prefix-length 8 ' + + '--min-prefix-length 8 ' + + '--max-prefix-length 16 ' + + '--default-quota 20 ' + + name, ) self.assertOutput('', cmd_output) cmd_output = self.openstack( - 'subnet pool show ' + - new_name, + 'subnet pool show ' + new_name, parse_output=True, ) self.assertEqual( @@ -300,26 +283,42 @@ class SubnetPoolTests(common.NetworkTagTests): for i in range(4): # Create a random prefix if is_type_ipv4: - pool_prefix = ".".join(map( - str, - (random.randint(0, 223) for _ in range(2)), - )) + ".0.0/16" + pool_prefix = ( + ".".join( + map( + str, + (random.randint(0, 223) for _ in range(2)), + ) + ) + + ".0.0/16" + ) else: - pool_prefix = ":".join(map( - str, - (hex(random.randint(0, 65535))[2:] for _ in range(6)), - )) + ":0:0/96" + pool_prefix = ( + ":".join( + map( + str, + ( + hex(random.randint(0, 65535))[2:] + for _ in range(6) + ), + ) + ) + + ":0:0/96" + ) try: cmd_output = self.openstack( - 'subnet pool create ' + - cmd + ' ' + - '--pool-prefix ' + pool_prefix + ' ' + - name, + 'subnet pool create ' + + cmd + + ' ' + + '--pool-prefix ' + + pool_prefix + + ' ' + + name, parse_output=True, ) except Exception: - if (i == 3): + if i == 3: # Raise the exception the last time raise pass diff --git a/openstackclient/tests/unit/network/test_common.py b/openstackclient/tests/unit/network/test_common.py index 4dde1b2bea..dec27b7bd4 100644 --- a/openstackclient/tests/unit/network/test_common.py +++ b/openstackclient/tests/unit/network/test_common.py @@ -49,7 +49,6 @@ def _add_compute_argument(parser): class FakeNetworkAndComputeCommand(common.NetworkAndComputeCommand): - def update_parser_common(self, parser): return _add_common_argument(parser) @@ -67,7 +66,6 @@ class FakeNetworkAndComputeCommand(common.NetworkAndComputeCommand): class FakeNetworkAndComputeLister(common.NetworkAndComputeLister): - def update_parser_common(self, parser): return _add_common_argument(parser) @@ -85,7 +83,6 @@ class FakeNetworkAndComputeLister(common.NetworkAndComputeLister): class FakeNetworkAndComputeShowOne(common.NetworkAndComputeShowOne): - def update_parser_common(self, parser): return _add_common_argument(parser) @@ -103,11 +100,12 @@ class FakeNetworkAndComputeShowOne(common.NetworkAndComputeShowOne): class FakeCreateNeutronCommandWithExtraArgs( - common.NeutronCommandWithExtraArgs): - + common.NeutronCommandWithExtraArgs +): def get_parser(self, prog_name): - parser = super(FakeCreateNeutronCommandWithExtraArgs, - self).get_parser(prog_name) + parser = super(FakeCreateNeutronCommandWithExtraArgs, self).get_parser( + prog_name + ) parser.add_argument( '--known-attribute', ) @@ -119,12 +117,12 @@ class FakeCreateNeutronCommandWithExtraArgs( if 'known_attribute' in parsed_args: attrs['known_attribute'] = parsed_args.known_attribute attrs.update( - self._parse_extra_properties(parsed_args.extra_properties)) + self._parse_extra_properties(parsed_args.extra_properties) + ) client.test_create_action(**attrs) class TestNetworkAndCompute(utils.TestCommand): - def setUp(self): super(TestNetworkAndCompute, self).setUp() @@ -134,26 +132,22 @@ class TestNetworkAndCompute(utils.TestCommand): self.app.client_manager.network = mock.Mock() self.network = self.app.client_manager.network self.network.network_action = mock.Mock( - return_value='take_action_network') + return_value='take_action_network' + ) # Create compute client mocks. self.app.client_manager.compute = mock.Mock() self.compute = self.app.client_manager.compute self.compute.compute_action = mock.Mock( - return_value='take_action_compute') + return_value='take_action_compute' + ) # Subclasses can override the command object to test. self.cmd = FakeNetworkAndComputeCommand(self.app, self.namespace) def test_take_action_network(self): - arglist = [ - 'common', - 'network' - ] - verifylist = [ - ('common', 'common'), - ('network', 'network') - ] + arglist = ['common', 'network'] + verifylist = [('common', 'common'), ('network', 'network')] parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) @@ -161,14 +155,8 @@ class TestNetworkAndCompute(utils.TestCommand): self.assertEqual('take_action_network', result) def test_take_action_compute(self): - arglist = [ - 'common', - 'compute' - ] - verifylist = [ - ('common', 'common'), - ('compute', 'compute') - ] + arglist = ['common', 'compute'] + verifylist = [('common', 'common'), ('compute', 'compute')] self.app.client_manager.network_endpoint_enabled = False parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -178,21 +166,18 @@ class TestNetworkAndCompute(utils.TestCommand): class TestNetworkAndComputeCommand(TestNetworkAndCompute): - def setUp(self): super(TestNetworkAndComputeCommand, self).setUp() self.cmd = FakeNetworkAndComputeCommand(self.app, self.namespace) class TestNetworkAndComputeLister(TestNetworkAndCompute): - def setUp(self): super(TestNetworkAndComputeLister, self).setUp() self.cmd = FakeNetworkAndComputeLister(self.app, self.namespace) class TestNetworkAndComputeShowOne(TestNetworkAndCompute): - def setUp(self): super(TestNetworkAndComputeShowOne, self).setUp() self.cmd = FakeNetworkAndComputeShowOne(self.app, self.namespace) @@ -200,18 +185,25 @@ class TestNetworkAndComputeShowOne(TestNetworkAndCompute): def test_take_action_with_http_exception(self): with mock.patch.object(self.cmd, 'take_action_network') as m_action: m_action.side_effect = openstack.exceptions.HttpException("bar") - self.assertRaisesRegex(exceptions.CommandError, "bar", - self.cmd.take_action, mock.Mock()) + self.assertRaisesRegex( + exceptions.CommandError, + "bar", + self.cmd.take_action, + mock.Mock(), + ) self.app.client_manager.network_endpoint_enabled = False with mock.patch.object(self.cmd, 'take_action_compute') as m_action: m_action.side_effect = openstack.exceptions.HttpException("bar") - self.assertRaisesRegex(exceptions.CommandError, "bar", - self.cmd.take_action, mock.Mock()) + self.assertRaisesRegex( + exceptions.CommandError, + "bar", + self.cmd.take_action, + mock.Mock(), + ) class TestNeutronCommandWithExtraArgs(utils.TestCommand): - def setUp(self): super(TestNeutronCommandWithExtraArgs, self).setUp() @@ -223,106 +215,143 @@ class TestNeutronCommandWithExtraArgs(utils.TestCommand): # Subclasses can override the command object to test. self.cmd = FakeCreateNeutronCommandWithExtraArgs( - self.app, self.namespace) + self.app, self.namespace + ) def test_create_extra_attributes_default_type(self): arglist = [ - '--known-attribute', 'known-value', - '--extra-property', 'name=extra_name,value=extra_value' + '--known-attribute', + 'known-value', + '--extra-property', + 'name=extra_name,value=extra_value', ] verifylist = [ ('known_attribute', 'known-value'), - ('extra_properties', [{'name': 'extra_name', - 'value': 'extra_value'}]) + ( + 'extra_properties', + [{'name': 'extra_name', 'value': 'extra_value'}], + ), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.cmd.take_action(parsed_args) self.network.test_create_action.assert_called_with( - known_attribute='known-value', extra_name='extra_value') + known_attribute='known-value', extra_name='extra_value' + ) def test_create_extra_attributes_string(self): arglist = [ - '--known-attribute', 'known-value', - '--extra-property', 'type=str,name=extra_name,value=extra_value' + '--known-attribute', + 'known-value', + '--extra-property', + 'type=str,name=extra_name,value=extra_value', ] verifylist = [ ('known_attribute', 'known-value'), - ('extra_properties', [{'name': 'extra_name', - 'type': 'str', - 'value': 'extra_value'}]) + ( + 'extra_properties', + [ + { + 'name': 'extra_name', + 'type': 'str', + 'value': 'extra_value', + } + ], + ), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.cmd.take_action(parsed_args) self.network.test_create_action.assert_called_with( - known_attribute='known-value', extra_name='extra_value') + known_attribute='known-value', extra_name='extra_value' + ) def test_create_extra_attributes_bool(self): arglist = [ - '--known-attribute', 'known-value', - '--extra-property', 'type=bool,name=extra_name,value=TrUe' + '--known-attribute', + 'known-value', + '--extra-property', + 'type=bool,name=extra_name,value=TrUe', ] verifylist = [ ('known_attribute', 'known-value'), - ('extra_properties', [{'name': 'extra_name', - 'type': 'bool', - 'value': 'TrUe'}]) + ( + 'extra_properties', + [{'name': 'extra_name', 'type': 'bool', 'value': 'TrUe'}], + ), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.cmd.take_action(parsed_args) self.network.test_create_action.assert_called_with( - known_attribute='known-value', extra_name=True) + known_attribute='known-value', extra_name=True + ) def test_create_extra_attributes_int(self): arglist = [ - '--known-attribute', 'known-value', - '--extra-property', 'type=int,name=extra_name,value=8' + '--known-attribute', + 'known-value', + '--extra-property', + 'type=int,name=extra_name,value=8', ] verifylist = [ ('known_attribute', 'known-value'), - ('extra_properties', [{'name': 'extra_name', - 'type': 'int', - 'value': '8'}]) + ( + 'extra_properties', + [{'name': 'extra_name', 'type': 'int', 'value': '8'}], + ), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.cmd.take_action(parsed_args) self.network.test_create_action.assert_called_with( - known_attribute='known-value', extra_name=8) + known_attribute='known-value', extra_name=8 + ) def test_create_extra_attributes_list(self): arglist = [ - '--known-attribute', 'known-value', - '--extra-property', 'type=list,name=extra_name,value=v_1;v_2' + '--known-attribute', + 'known-value', + '--extra-property', + 'type=list,name=extra_name,value=v_1;v_2', ] verifylist = [ ('known_attribute', 'known-value'), - ('extra_properties', [{'name': 'extra_name', - 'type': 'list', - 'value': 'v_1;v_2'}]) + ( + 'extra_properties', + [{'name': 'extra_name', 'type': 'list', 'value': 'v_1;v_2'}], + ), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.cmd.take_action(parsed_args) self.network.test_create_action.assert_called_with( - known_attribute='known-value', extra_name=['v_1', 'v_2']) + known_attribute='known-value', extra_name=['v_1', 'v_2'] + ) def test_create_extra_attributes_dict(self): arglist = [ - '--known-attribute', 'known-value', - '--extra-property', 'type=dict,name=extra_name,value=n1:v1;n2:v2' + '--known-attribute', + 'known-value', + '--extra-property', + 'type=dict,name=extra_name,value=n1:v1;n2:v2', ] verifylist = [ ('known_attribute', 'known-value'), - ('extra_properties', [{'name': 'extra_name', - 'type': 'dict', - 'value': 'n1:v1;n2:v2'}]) + ( + 'extra_properties', + [ + { + 'name': 'extra_name', + 'type': 'dict', + 'value': 'n1:v1;n2:v2', + } + ], + ), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.cmd.take_action(parsed_args) self.network.test_create_action.assert_called_with( - known_attribute='known-value', - extra_name={'n1': 'v1', 'n2': 'v2'}) + known_attribute='known-value', extra_name={'n1': 'v1', 'n2': 'v2'} + ) diff --git a/openstackclient/tests/unit/network/test_utils.py b/openstackclient/tests/unit/network/test_utils.py index 6252d7f766..bc3bc127d8 100644 --- a/openstackclient/tests/unit/network/test_utils.py +++ b/openstackclient/tests/unit/network/test_utils.py @@ -18,7 +18,6 @@ from openstackclient.tests.unit import utils as tests_utils class TestUtils(tests_utils.TestCase): - def test_str2bool(self): self.assertTrue(utils.str2bool("true")) self.assertTrue(utils.str2bool("True")) @@ -35,25 +34,19 @@ class TestUtils(tests_utils.TestCase): self.assertIsNone(utils.str2bool(None)) def test_str2list(self): - self.assertEqual( - ['a', 'b', 'c'], utils.str2list("a;b;c")) - self.assertEqual( - ['abc'], utils.str2list("abc")) + self.assertEqual(['a', 'b', 'c'], utils.str2list("a;b;c")) + self.assertEqual(['abc'], utils.str2list("abc")) self.assertEqual([], utils.str2list("")) self.assertEqual([], utils.str2list(None)) def test_str2dict(self): + self.assertEqual({'a': 'aaa', 'b': '2'}, utils.str2dict('a:aaa;b:2')) self.assertEqual( - {'a': 'aaa', 'b': '2'}, - utils.str2dict('a:aaa;b:2')) - self.assertEqual( - {'a': 'aaa;b;c', 'd': 'ddd'}, - utils.str2dict('a:aaa;b;c;d:ddd')) + {'a': 'aaa;b;c', 'd': 'ddd'}, utils.str2dict('a:aaa;b;c;d:ddd') + ) self.assertEqual({}, utils.str2dict("")) self.assertEqual({}, utils.str2dict(None)) - self.assertRaises( - exceptions.CommandError, - utils.str2dict, "aaa;b:2") + self.assertRaises(exceptions.CommandError, utils.str2dict, "aaa;b:2") diff --git a/openstackclient/tests/unit/network/v2/fakes.py b/openstackclient/tests/unit/network/v2/fakes.py index 6d92200866..ce7ec79830 100644 --- a/openstackclient/tests/unit/network/v2/fakes.py +++ b/openstackclient/tests/unit/network/v2/fakes.py @@ -61,16 +61,38 @@ RULE_TYPE_BANDWIDTH_LIMIT = 'bandwidth-limit' RULE_TYPE_DSCP_MARKING = 'dscp-marking' RULE_TYPE_MINIMUM_BANDWIDTH = 'minimum-bandwidth' RULE_TYPE_MINIMUM_PACKET_RATE = 'minimum-packet-rate' -VALID_QOS_RULES = [RULE_TYPE_BANDWIDTH_LIMIT, - RULE_TYPE_DSCP_MARKING, - RULE_TYPE_MINIMUM_BANDWIDTH, - RULE_TYPE_MINIMUM_PACKET_RATE] -VALID_DSCP_MARKS = [0, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, - 34, 36, 38, 40, 46, 48, 56] +VALID_QOS_RULES = [ + RULE_TYPE_BANDWIDTH_LIMIT, + RULE_TYPE_DSCP_MARKING, + RULE_TYPE_MINIMUM_BANDWIDTH, + RULE_TYPE_MINIMUM_PACKET_RATE, +] +VALID_DSCP_MARKS = [ + 0, + 8, + 10, + 12, + 14, + 16, + 18, + 20, + 22, + 24, + 26, + 28, + 30, + 32, + 34, + 36, + 38, + 40, + 46, + 48, + 56, +] class FakeNetworkV2Client(object): - def __init__(self, **kwargs): self.session = mock.Mock() self.extensions = mock.Mock() @@ -78,7 +100,6 @@ class FakeNetworkV2Client(object): class TestNetworkV2(utils.TestCommand): - def setUp(self): super(TestNetworkV2, self).setUp() @@ -92,8 +113,9 @@ class TestNetworkV2(utils.TestCommand): ) self.app.client_manager.sdk_connection = mock.Mock() - self.app.client_manager.sdk_connection.network = \ + self.app.client_manager.sdk_connection.network = ( self.app.client_manager.network + ) self.app.client_manager.identity = ( identity_fakes_v3.FakeIdentityv3Client( @@ -124,15 +146,15 @@ class FakeExtension(object): 'description': 'description-' + uuid.uuid4().hex, 'updated': '2013-07-09T12:00:0-00:00', 'alias': 'Dystopian', - 'links': '[{"href":''"https://github.com/os/network", "type"}]', + 'links': '[{"href":' '"https://github.com/os/network", "type"}]', } # Overwrite default attributes. extension_info.update(attrs) extension = fakes.FakeResource( - info=copy.deepcopy(extension_info), - loaded=True) + info=copy.deepcopy(extension_info), loaded=True + ) return extension @@ -169,8 +191,8 @@ class FakeNetworkQosPolicy(object): qos_policy_attrs.update(attrs) qos_policy = fakes.FakeResource( - info=copy.deepcopy(qos_policy_attrs), - loaded=True) + info=copy.deepcopy(qos_policy_attrs), loaded=True + ) # Set attributes with special mapping in OpenStack SDK. qos_policy.is_shared = qos_policy_attrs['shared'] @@ -191,7 +213,8 @@ class FakeNetworkQosPolicy(object): qos_policies = [] for i in range(0, count): qos_policies.append( - FakeNetworkQosPolicy.create_one_qos_policy(attrs)) + FakeNetworkQosPolicy.create_one_qos_policy(attrs) + ) return qos_policies @@ -240,8 +263,8 @@ class FakeNetworkSecGroup(object): } security_group = fakes.FakeResource( - info=copy.deepcopy(security_group_attrs), - loaded=True) + info=copy.deepcopy(security_group_attrs), loaded=True + ) return security_group @@ -285,8 +308,9 @@ class FakeNetworkQosRule(object): # Overwrite default attributes. qos_rule_attrs.update(attrs) - qos_rule = fakes.FakeResource(info=copy.deepcopy(qos_rule_attrs), - loaded=True) + qos_rule = fakes.FakeResource( + info=copy.deepcopy(qos_rule_attrs), loaded=True + ) return qos_rule @@ -322,7 +346,7 @@ class FakeNetworkQosRule(object): qos minimum bandwidth rules """ if qos_rules is None: - qos_rules = (FakeNetworkQosRule.create_qos_rules(count)) + qos_rules = FakeNetworkQosRule.create_qos_rules(count) return mock.Mock(side_effect=qos_rules) @@ -350,8 +374,8 @@ class FakeNetworkQosRuleType(object): qos_rule_type_attrs.update(attrs) return fakes.FakeResource( - info=copy.deepcopy(qos_rule_type_attrs), - loaded=True) + info=copy.deepcopy(qos_rule_type_attrs), loaded=True + ) @staticmethod def create_qos_rule_types(attrs=None, count=2): @@ -367,7 +391,8 @@ class FakeNetworkQosRuleType(object): qos_rule_types = [] for i in range(0, count): qos_rule_types.append( - FakeNetworkQosRuleType.create_one_qos_rule_type(attrs)) + FakeNetworkQosRuleType.create_one_qos_rule_type(attrs) + ) return qos_rule_types @@ -408,8 +433,9 @@ class FakeRouter(object): # Overwrite default attributes. router_attrs.update(attrs) - router = fakes.FakeResource(info=copy.deepcopy(router_attrs), - loaded=True) + router = fakes.FakeResource( + info=copy.deepcopy(router_attrs), loaded=True + ) # Set attributes with special mapping in OpenStack SDK. router.is_admin_state_up = router_attrs['admin_state_up'] @@ -485,8 +511,8 @@ class FakeSecurityGroup(object): security_group_attrs.update(attrs) security_group = fakes.FakeResource( - info=copy.deepcopy(security_group_attrs), - loaded=True) + info=copy.deepcopy(security_group_attrs), loaded=True + ) return security_group @@ -504,7 +530,8 @@ class FakeSecurityGroup(object): security_groups = [] for i in range(0, count): security_groups.append( - FakeSecurityGroup.create_one_security_group(attrs)) + FakeSecurityGroup.create_one_security_group(attrs) + ) return security_groups @@ -544,8 +571,8 @@ class FakeSecurityGroupRule(object): # Set default attributes. security_group_rule_attrs = { - 'description': 'security-group-rule-description-' + - uuid.uuid4().hex, + 'description': 'security-group-rule-description-' + + uuid.uuid4().hex, 'direction': 'ingress', 'ether_type': 'IPv4', 'id': 'security-group-rule-id-' + uuid.uuid4().hex, @@ -564,8 +591,8 @@ class FakeSecurityGroupRule(object): security_group_rule_attrs.update(attrs) security_group_rule = fakes.FakeResource( - info=copy.deepcopy(security_group_rule_attrs), - loaded=True) + info=copy.deepcopy(security_group_rule_attrs), loaded=True + ) return security_group_rule @@ -583,7 +610,8 @@ class FakeSecurityGroupRule(object): security_group_rules = [] for i in range(0, count): security_group_rules.append( - FakeSecurityGroupRule.create_one_security_group_rule(attrs)) + FakeSecurityGroupRule.create_one_security_group_rule(attrs) + ) return security_group_rules @@ -604,7 +632,8 @@ class FakeSecurityGroupRule(object): """ if security_group_rules is None: security_group_rules = ( - FakeSecurityGroupRule.create_security_group_rules(count)) + FakeSecurityGroupRule.create_security_group_rules(count) + ) return mock.Mock(side_effect=security_group_rules) @@ -649,8 +678,9 @@ class FakeSubnet(object): # Overwrite default attributes. subnet_attrs.update(attrs) - subnet = fakes.FakeResource(info=copy.deepcopy(subnet_attrs), - loaded=True) + subnet = fakes.FakeResource( + info=copy.deepcopy(subnet_attrs), loaded=True + ) # Set attributes with special mappings in OpenStack SDK. subnet.is_dhcp_enabled = subnet_attrs['enable_dhcp'] @@ -731,8 +761,7 @@ class FakeFloatingIP(object): floating_ip_attrs.update(attrs) floating_ip = fakes.FakeResource( - info=copy.deepcopy(floating_ip_attrs), - loaded=True + info=copy.deepcopy(floating_ip_attrs), loaded=True ) return floating_ip @@ -793,8 +822,8 @@ class FakeNetworkMeter(object): meter_attrs.update(attrs) meter = fakes.FakeResource( - info=copy.deepcopy(meter_attrs), - loaded=True) + info=copy.deepcopy(meter_attrs), loaded=True + ) return meter @@ -804,16 +833,14 @@ class FakeNetworkMeter(object): meters = [] for i in range(0, count): - meters.append(FakeNetworkMeter. - create_one_meter(attrs)) + meters.append(FakeNetworkMeter.create_one_meter(attrs)) return meters @staticmethod def get_meter(meter=None, count=2): """Get a list of meters""" if meter is None: - meter = (FakeNetworkMeter. - create_meter(count)) + meter = FakeNetworkMeter.create_meter(count) return mock.Mock(side_effect=meter) @@ -840,8 +867,8 @@ class FakeNetworkMeterRule(object): meter_rule_attrs.update(attrs) meter_rule = fakes.FakeResource( - info=copy.deepcopy(meter_rule_attrs), - loaded=True) + info=copy.deepcopy(meter_rule_attrs), loaded=True + ) return meter_rule @@ -851,16 +878,14 @@ class FakeNetworkMeterRule(object): meter_rules = [] for i in range(0, count): - meter_rules.append(FakeNetworkMeterRule. - create_one_rule(attrs)) + meter_rules.append(FakeNetworkMeterRule.create_one_rule(attrs)) return meter_rules @staticmethod def get_meter_rule(meter_rule=None, count=2): """Get a list of meter rules""" if meter_rule is None: - meter_rule = (FakeNetworkMeterRule. - create_meter_rule(count)) + meter_rule = FakeNetworkMeterRule.create_meter_rule(count) return mock.Mock(side_effect=meter_rule) @@ -901,13 +926,13 @@ class FakeSubnetPool(object): subnet_pool_attrs.update(attrs) subnet_pool = fakes.FakeResource( - info=copy.deepcopy(subnet_pool_attrs), - loaded=True + info=copy.deepcopy(subnet_pool_attrs), loaded=True ) # Set attributes with special mapping in OpenStack SDK. - subnet_pool.default_prefix_length = \ - subnet_pool_attrs['default_prefixlen'] + subnet_pool.default_prefix_length = subnet_pool_attrs[ + 'default_prefixlen' + ] subnet_pool.is_shared = subnet_pool_attrs['shared'] subnet_pool.maximum_prefix_length = subnet_pool_attrs['max_prefixlen'] subnet_pool.minimum_prefix_length = subnet_pool_attrs['min_prefixlen'] @@ -927,9 +952,7 @@ class FakeSubnetPool(object): """ subnet_pools = [] for i in range(0, count): - subnet_pools.append( - FakeSubnetPool.create_one_subnet_pool(attrs) - ) + subnet_pools.append(FakeSubnetPool.create_one_subnet_pool(attrs)) return subnet_pools @@ -971,8 +994,8 @@ class FakeNetworkServiceProvider(object): service_provider.update(attrs) provider = fakes.FakeResource( - info=copy.deepcopy(service_provider), - loaded=True) + info=copy.deepcopy(service_provider), loaded=True + ) provider.is_default = service_provider['default'] return provider @@ -983,9 +1006,11 @@ class FakeNetworkServiceProvider(object): service_providers = [] for i in range(0, count): - service_providers.append(FakeNetworkServiceProvider. - create_one_network_service_provider( - attrs)) + service_providers.append( + FakeNetworkServiceProvider.create_one_network_service_provider( + attrs + ) + ) return service_providers @@ -1006,13 +1031,14 @@ class FakeQuota(object): 'security_groups': 10, 'security_group_rules': 100, 'subnets': 20, - 'subnet_pools': 30} + 'subnet_pools': 30, + } quota_attrs.update(attrs) quota = fakes.FakeResource( - info=copy.deepcopy(quota_attrs), - loaded=True) + info=copy.deepcopy(quota_attrs), loaded=True + ) return quota @staticmethod @@ -1029,13 +1055,14 @@ class FakeQuota(object): 'security_group': 30, 'security_group_rule': 200, 'subnet': 10, - 'subnetpool': 20} + 'subnetpool': 20, + } quota_attrs.update(attrs) quota = fakes.FakeResource( - info=copy.deepcopy(quota_attrs), - loaded=True) + info=copy.deepcopy(quota_attrs), loaded=True + ) return quota @staticmethod @@ -1052,18 +1079,19 @@ class FakeQuota(object): 'security_groups': {'used': 0, 'reserved': 0, 'limit': 10}, 'security_group_rules': {'used': 0, 'reserved': 0, 'limit': 100}, 'subnets': {'used': 0, 'reserved': 0, 'limit': 20}, - 'subnet_pools': {'used': 0, 'reserved': 0, 'limit': 30}} + 'subnet_pools': {'used': 0, 'reserved': 0, 'limit': 30}, + } quota_attrs.update(attrs) quota = fakes.FakeResource( - info=copy.deepcopy(quota_attrs), - loaded=True) + info=copy.deepcopy(quota_attrs), loaded=True + ) return quota class FakeFloatingIPPortForwarding(object): - """"Fake one or more Port forwarding""" + """Fake one or more Port forwarding""" @staticmethod def create_one_port_forwarding(attrs=None, use_range=False): @@ -1113,8 +1141,7 @@ class FakeFloatingIPPortForwarding(object): port_forwarding_attrs.update(attrs) port_forwarding = fakes.FakeResource( - info=copy.deepcopy(port_forwarding_attrs), - loaded=True + info=copy.deepcopy(port_forwarding_attrs), loaded=True ) return port_forwarding @@ -1122,20 +1149,21 @@ class FakeFloatingIPPortForwarding(object): def create_port_forwardings(attrs=None, count=2, use_range=False): """Create multiple fake Port Forwarding. - :param Dictionary attrs: - A dictionary with all attributes - :param int count: - The number of Port Forwarding rule to fake - :param Boolean use_range: - A boolean which defines if we will use ranges or not - :return: - A list of FakeResource objects faking the Port Forwardings - """ + :param Dictionary attrs: + A dictionary with all attributes + :param int count: + The number of Port Forwarding rule to fake + :param Boolean use_range: + A boolean which defines if we will use ranges or not + :return: + A list of FakeResource objects faking the Port Forwardings + """ port_forwardings = [] for i in range(0, count): port_forwardings.append( FakeFloatingIPPortForwarding.create_one_port_forwarding( - attrs, use_range=use_range) + attrs, use_range=use_range + ) ) return port_forwardings @@ -1159,14 +1187,15 @@ class FakeFloatingIPPortForwarding(object): if port_forwardings is None: port_forwardings = ( FakeFloatingIPPortForwarding.create_port_forwardings( - count, use_range=use_range) + count, use_range=use_range + ) ) return mock.Mock(side_effect=port_forwardings) class FakeL3ConntrackHelper(object): - """"Fake one or more L3 conntrack helper""" + """Fake one or more L3 conntrack helper""" @staticmethod def create_one_l3_conntrack_helper(attrs=None): @@ -1178,9 +1207,7 @@ class FakeL3ConntrackHelper(object): A FakeResource object with protocol, port, etc. """ attrs = attrs or {} - router_id = ( - attrs.get('router_id') or 'router-id-' + uuid.uuid4().hex - ) + router_id = attrs.get('router_id') or 'router-id-' + uuid.uuid4().hex # Set default attributes. ct_attrs = { 'id': uuid.uuid4().hex, @@ -1194,10 +1221,7 @@ class FakeL3ConntrackHelper(object): # Overwrite default attributes. ct_attrs.update(attrs) - ct = fakes.FakeResource( - info=copy.deepcopy(ct_attrs), - loaded=True - ) + ct = fakes.FakeResource(info=copy.deepcopy(ct_attrs), loaded=True) return ct @staticmethod @@ -1234,8 +1258,8 @@ class FakeL3ConntrackHelper(object): L3 conntrack helpers """ if ct_helpers is None: - ct_helpers = ( - FakeL3ConntrackHelper.create_l3_conntrack_helpers(count) + ct_helpers = FakeL3ConntrackHelper.create_l3_conntrack_helpers( + count ) return mock.Mock(side_effect=ct_helpers) @@ -1456,7 +1480,8 @@ def create_one_ip_availability(attrs=None): network_ip_attrs.update(attrs) network_ip_availability = _ip_availability.NetworkIPAvailability( - **network_ip_attrs) + **network_ip_attrs + ) return network_ip_availability @@ -1684,8 +1709,10 @@ def create_one_network_segment_range(attrs=None): 'physical_network': 'physical-network-name-' + fake_uuid, 'minimum': 100, 'maximum': 106, - 'used': {104: '3312e4ba67864b2eb53f3f41432f8efc', - 106: '3312e4ba67864b2eb53f3f41432f8efc'}, + 'used': { + 104: '3312e4ba67864b2eb53f3f41432f8efc', + 106: '3312e4ba67864b2eb53f3f41432f8efc', + }, 'available': [100, 101, 102, 103, 105], 'location': 'MUNCHMUNCHMUNCH', } @@ -1693,8 +1720,9 @@ def create_one_network_segment_range(attrs=None): # Overwrite default attributes. network_segment_range_attrs.update(attrs) - network_segment_range = ( - _segment_range.NetworkSegmentRange(**network_segment_range_attrs)) + network_segment_range = _segment_range.NetworkSegmentRange( + **network_segment_range_attrs + ) return network_segment_range @@ -1744,8 +1772,12 @@ def create_one_port(attrs=None): 'dns_domain': 'dns-domain-' + uuid.uuid4().hex, 'dns_name': 'dns-name-' + uuid.uuid4().hex, 'extra_dhcp_opts': [{}], - 'fixed_ips': [{'ip_address': '10.0.0.3', - 'subnet_id': 'subnet-id-' + uuid.uuid4().hex}], + 'fixed_ips': [ + { + 'ip_address': '10.0.0.3', + 'subnet_id': 'subnet-id-' + uuid.uuid4().hex, + } + ], 'id': 'port-id-' + uuid.uuid4().hex, 'mac_address': 'fa:16:3e:a9:4e:72', 'name': 'port-name-' + uuid.uuid4().hex, @@ -2063,9 +2095,9 @@ def create_one_local_ip_association(attrs=None): # Overwrite default attributes. local_ip_association_attrs.update(attrs) - local_ip_association = ( - _local_ip_association.LocalIPAssociation( - **local_ip_association_attrs)) + local_ip_association = _local_ip_association.LocalIPAssociation( + **local_ip_association_attrs + ) return local_ip_association @@ -2116,12 +2148,8 @@ def create_one_ndp_proxy(attrs=None): A FakeResource object with router_id, port_id, etc. """ attrs = attrs or {} - router_id = ( - attrs.get('router_id') or 'router-id-' + uuid.uuid4().hex - ) - port_id = ( - attrs.get('port_id') or 'port-id-' + uuid.uuid4().hex - ) + router_id = attrs.get('router_id') or 'router-id-' + uuid.uuid4().hex + port_id = attrs.get('port_id') or 'port-id-' + uuid.uuid4().hex # Set default attributes. np_attrs = { 'id': uuid.uuid4().hex, @@ -2152,9 +2180,7 @@ def create_ndp_proxies(attrs=None, count=2): """ ndp_proxies = [] for i in range(0, count): - ndp_proxies.append( - create_one_ndp_proxy(attrs) - ) + ndp_proxies.append(create_one_ndp_proxy(attrs)) return ndp_proxies @@ -2173,9 +2199,7 @@ def get_ndp_proxies(ndp_proxies=None, count=2): ndp proxy """ if ndp_proxies is None: - ndp_proxies = ( - create_ndp_proxies(count) - ) + ndp_proxies = create_ndp_proxies(count) return mock.Mock(side_effect=ndp_proxies) @@ -2198,10 +2222,13 @@ def create_one_trunk(attrs=None): 'admin_state_up': True, 'project_id': 'project-id-' + uuid.uuid4().hex, 'status': 'ACTIVE', - 'sub_ports': [{'port_id': 'subport-' + - uuid.uuid4().hex, - 'segmentation_type': 'vlan', - 'segmentation_id': 100}], + 'sub_ports': [ + { + 'port_id': 'subport-' + uuid.uuid4().hex, + 'segmentation_type': 'vlan', + 'segmentation_id': 100, + } + ], } # Overwrite default attributes. trunk_attrs.update(attrs) diff --git a/openstackclient/tests/unit/network/v2/test_address_group.py b/openstackclient/tests/unit/network/v2/test_address_group.py index f550db692b..fa67347abc 100644 --- a/openstackclient/tests/unit/network/v2/test_address_group.py +++ b/openstackclient/tests/unit/network/v2/test_address_group.py @@ -23,7 +23,6 @@ from openstackclient.tests.unit import utils as tests_utils class TestAddressGroup(network_fakes.TestNetworkV2): - def setUp(self): super(TestAddressGroup, self).setUp() @@ -36,16 +35,14 @@ class TestAddressGroup(network_fakes.TestNetworkV2): class TestCreateAddressGroup(TestAddressGroup): - project = identity_fakes_v3.FakeProject.create_one_project() domain = identity_fakes_v3.FakeDomain.create_one_domain() # The new address group created. - new_address_group = ( - network_fakes.create_one_address_group( - attrs={ - 'project_id': project.id, - } - )) + new_address_group = network_fakes.create_one_address_group( + attrs={ + 'project_id': project.id, + } + ) columns = ( 'addresses', 'description', @@ -64,7 +61,8 @@ class TestCreateAddressGroup(TestAddressGroup): def setUp(self): super(TestCreateAddressGroup, self).setUp() self.network.create_address_group = mock.Mock( - return_value=self.new_address_group) + return_value=self.new_address_group + ) # Get the command object to test self.cmd = address_group.CreateAddressGroup(self.app, self.namespace) @@ -77,8 +75,13 @@ class TestCreateAddressGroup(TestAddressGroup): verifylist = [] # Missing required args should bail here - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_create_default_options(self): arglist = [ @@ -92,21 +95,27 @@ class TestCreateAddressGroup(TestAddressGroup): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) - self.network.create_address_group.assert_called_once_with(**{ - 'name': self.new_address_group.name, - 'addresses': [], - }) + self.network.create_address_group.assert_called_once_with( + **{ + 'name': self.new_address_group.name, + 'addresses': [], + } + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, data) def test_create_all_options(self): arglist = [ - '--project', self.project.name, - '--project-domain', self.domain.name, - '--address', '10.0.0.1', - '--description', self.new_address_group.description, + '--project', + self.project.name, + '--project-domain', + self.domain.name, + '--address', + '10.0.0.1', + '--description', + self.new_address_group.description, self.new_address_group.name, ] verifylist = [ @@ -118,20 +127,21 @@ class TestCreateAddressGroup(TestAddressGroup): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) - self.network.create_address_group.assert_called_once_with(**{ - 'addresses': ['10.0.0.1/32'], - 'project_id': self.project.id, - 'name': self.new_address_group.name, - 'description': self.new_address_group.description, - }) + self.network.create_address_group.assert_called_once_with( + **{ + 'addresses': ['10.0.0.1/32'], + 'project_id': self.project.id, + 'name': self.new_address_group.name, + 'description': self.new_address_group.description, + } + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, data) class TestDeleteAddressGroup(TestAddressGroup): - # The address group to delete. _address_groups = network_fakes.create_address_groups(count=2) @@ -139,7 +149,8 @@ class TestDeleteAddressGroup(TestAddressGroup): super(TestDeleteAddressGroup, self).setUp() self.network.delete_address_group = mock.Mock(return_value=None) self.network.find_address_group = network_fakes.get_address_groups( - address_groups=self._address_groups) + address_groups=self._address_groups + ) # Get the command object to test self.cmd = address_group.DeleteAddressGroup(self.app, self.namespace) @@ -156,9 +167,11 @@ class TestDeleteAddressGroup(TestAddressGroup): result = self.cmd.take_action(parsed_args) self.network.find_address_group.assert_called_once_with( - self._address_groups[0].name, ignore_missing=False) + self._address_groups[0].name, ignore_missing=False + ) self.network.delete_address_group.assert_called_once_with( - self._address_groups[0]) + self._address_groups[0] + ) self.assertIsNone(result) def test_multi_address_groups_delete(self): @@ -185,14 +198,16 @@ class TestDeleteAddressGroup(TestAddressGroup): 'unexist_address_group', ] verifylist = [ - ('address_group', - [self._address_groups[0].name, 'unexist_address_group']), + ( + 'address_group', + [self._address_groups[0].name, 'unexist_address_group'], + ), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) find_mock_result = [self._address_groups[0], exceptions.CommandError] - self.network.find_address_group = ( - mock.Mock(side_effect=find_mock_result) + self.network.find_address_group = mock.Mock( + side_effect=find_mock_result ) try: @@ -202,16 +217,17 @@ class TestDeleteAddressGroup(TestAddressGroup): self.assertEqual('1 of 2 address groups failed to delete.', str(e)) self.network.find_address_group.assert_any_call( - self._address_groups[0].name, ignore_missing=False) + self._address_groups[0].name, ignore_missing=False + ) self.network.find_address_group.assert_any_call( - 'unexist_address_group', ignore_missing=False) + 'unexist_address_group', ignore_missing=False + ) self.network.delete_address_group.assert_called_once_with( self._address_groups[0] ) class TestListAddressGroup(TestAddressGroup): - # The address groups to list up. address_groups = network_fakes.create_address_groups(count=3) columns = ( @@ -223,18 +239,21 @@ class TestListAddressGroup(TestAddressGroup): ) data = [] for group in address_groups: - data.append(( - group.id, - group.name, - group.description, - group.project_id, - group.addresses, - )) + data.append( + ( + group.id, + group.name, + group.description, + group.project_id, + group.addresses, + ) + ) def setUp(self): super(TestListAddressGroup, self).setUp() self.network.address_groups = mock.Mock( - return_value=self.address_groups) + return_value=self.address_groups + ) # Get the command object to test self.cmd = address_group.ListAddressGroup(self.app, self.namespace) @@ -252,7 +271,8 @@ class TestListAddressGroup(TestAddressGroup): def test_address_group_list_name(self): arglist = [ - '--name', self.address_groups[0].name, + '--name', + self.address_groups[0].name, ] verifylist = [ ('name', self.address_groups[0].name), @@ -261,7 +281,8 @@ class TestListAddressGroup(TestAddressGroup): columns, data = self.cmd.take_action(parsed_args) self.network.address_groups.assert_called_once_with( - **{'name': self.address_groups[0].name}) + **{'name': self.address_groups[0].name} + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) @@ -269,7 +290,8 @@ class TestListAddressGroup(TestAddressGroup): project = identity_fakes_v3.FakeProject.create_one_project() self.projects_mock.get.return_value = project arglist = [ - '--project', project.id, + '--project', + project.id, ] verifylist = [ ('project', project.id), @@ -278,7 +300,8 @@ class TestListAddressGroup(TestAddressGroup): columns, data = self.cmd.take_action(parsed_args) self.network.address_groups.assert_called_once_with( - project_id=project.id) + project_id=project.id + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) @@ -286,8 +309,10 @@ class TestListAddressGroup(TestAddressGroup): project = identity_fakes_v3.FakeProject.create_one_project() self.projects_mock.get.return_value = project arglist = [ - '--project', project.id, - '--project-domain', project.domain_id, + '--project', + project.id, + '--project-domain', + project.domain_id, ] verifylist = [ ('project', project.id), @@ -296,13 +321,13 @@ class TestListAddressGroup(TestAddressGroup): columns, data = self.cmd.take_action(parsed_args) self.network.address_groups.assert_called_once_with( - project_id=project.id) + project_id=project.id + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) class TestSetAddressGroup(TestAddressGroup): - # The address group to set. _address_group = network_fakes.create_one_address_group() @@ -310,14 +335,18 @@ class TestSetAddressGroup(TestAddressGroup): super(TestSetAddressGroup, self).setUp() self.network.update_address_group = mock.Mock(return_value=None) self.network.find_address_group = mock.Mock( - return_value=self._address_group) + return_value=self._address_group + ) self.network.add_addresses_to_address_group = mock.Mock( - return_value=self._address_group) + return_value=self._address_group + ) # Get the command object to test self.cmd = address_group.SetAddressGroup(self.app, self.namespace) def test_set_nothing(self): - arglist = [self._address_group.name, ] + arglist = [ + self._address_group.name, + ] verifylist = [ ('address_group', self._address_group.name), ] @@ -331,8 +360,10 @@ class TestSetAddressGroup(TestAddressGroup): def test_set_name_and_description(self): arglist = [ - '--name', 'new_address_group_name', - '--description', 'new_address_group_description', + '--name', + 'new_address_group_name', + '--description', + 'new_address_group_description', self._address_group.name, ] verifylist = [ @@ -348,13 +379,15 @@ class TestSetAddressGroup(TestAddressGroup): 'description': 'new_address_group_description', } self.network.update_address_group.assert_called_with( - self._address_group, **attrs) + self._address_group, **attrs + ) self.assertIsNone(result) def test_set_one_address(self): arglist = [ self._address_group.name, - '--address', '10.0.0.2', + '--address', + '10.0.0.2', ] verifylist = [ ('address_group', self._address_group.name), @@ -364,14 +397,17 @@ class TestSetAddressGroup(TestAddressGroup): parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.network.add_addresses_to_address_group.assert_called_once_with( - self._address_group, ['10.0.0.2/32']) + self._address_group, ['10.0.0.2/32'] + ) self.assertIsNone(result) def test_set_multiple_addresses(self): arglist = [ self._address_group.name, - '--address', '10.0.0.2', - '--address', '2001::/16', + '--address', + '10.0.0.2', + '--address', + '2001::/16', ] verifylist = [ ('address_group', self._address_group.name), @@ -381,12 +417,12 @@ class TestSetAddressGroup(TestAddressGroup): parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.network.add_addresses_to_address_group.assert_called_once_with( - self._address_group, ['10.0.0.2/32', '2001::/16']) + self._address_group, ['10.0.0.2/32', '2001::/16'] + ) self.assertIsNone(result) class TestShowAddressGroup(TestAddressGroup): - # The address group to show. _address_group = network_fakes.create_one_address_group() columns = ( @@ -407,7 +443,8 @@ class TestShowAddressGroup(TestAddressGroup): def setUp(self): super(TestShowAddressGroup, self).setUp() self.network.find_address_group = mock.Mock( - return_value=self._address_group) + return_value=self._address_group + ) # Get the command object to test self.cmd = address_group.ShowAddressGroup(self.app, self.namespace) @@ -417,8 +454,13 @@ class TestShowAddressGroup(TestAddressGroup): verifylist = [] # Missing required args should bail here - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_show_all_options(self): arglist = [ @@ -432,27 +474,31 @@ class TestShowAddressGroup(TestAddressGroup): columns, data = self.cmd.take_action(parsed_args) self.network.find_address_group.assert_called_once_with( - self._address_group.name, ignore_missing=False) + self._address_group.name, ignore_missing=False + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) class TestUnsetAddressGroup(TestAddressGroup): - # The address group to unset. _address_group = network_fakes.create_one_address_group() def setUp(self): super(TestUnsetAddressGroup, self).setUp() self.network.find_address_group = mock.Mock( - return_value=self._address_group) + return_value=self._address_group + ) self.network.remove_addresses_from_address_group = mock.Mock( - return_value=self._address_group) + return_value=self._address_group + ) # Get the command object to test self.cmd = address_group.UnsetAddressGroup(self.app, self.namespace) def test_unset_nothing(self): - arglist = [self._address_group.name, ] + arglist = [ + self._address_group.name, + ] verifylist = [ ('address_group', self._address_group.name), ] @@ -466,7 +512,8 @@ class TestUnsetAddressGroup(TestAddressGroup): def test_unset_one_address(self): arglist = [ self._address_group.name, - '--address', '10.0.0.2', + '--address', + '10.0.0.2', ] verifylist = [ ('address_group', self._address_group.name), @@ -475,15 +522,18 @@ class TestUnsetAddressGroup(TestAddressGroup): parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) - self.network.remove_addresses_from_address_group.\ - assert_called_once_with(self._address_group, ['10.0.0.2/32']) + self.network.remove_addresses_from_address_group.assert_called_once_with( # noqa: E501 + self._address_group, ['10.0.0.2/32'] + ) self.assertIsNone(result) def test_unset_multiple_addresses(self): arglist = [ self._address_group.name, - '--address', '10.0.0.2', - '--address', '2001::/16', + '--address', + '10.0.0.2', + '--address', + '2001::/16', ] verifylist = [ ('address_group', self._address_group.name), @@ -492,7 +542,7 @@ class TestUnsetAddressGroup(TestAddressGroup): parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) - self.network.remove_addresses_from_address_group.\ - assert_called_once_with(self._address_group, - ['10.0.0.2/32', '2001::/16']) + self.network.remove_addresses_from_address_group.assert_called_once_with( # noqa: E501 + self._address_group, ['10.0.0.2/32', '2001::/16'] + ) self.assertIsNone(result) diff --git a/openstackclient/tests/unit/network/v2/test_address_scope.py b/openstackclient/tests/unit/network/v2/test_address_scope.py index d4c8352813..e645cc6046 100644 --- a/openstackclient/tests/unit/network/v2/test_address_scope.py +++ b/openstackclient/tests/unit/network/v2/test_address_scope.py @@ -23,7 +23,6 @@ from openstackclient.tests.unit import utils as tests_utils class TestAddressScope(network_fakes.TestNetworkV2): - def setUp(self): super(TestAddressScope, self).setUp() @@ -36,21 +35,15 @@ class TestAddressScope(network_fakes.TestNetworkV2): class TestCreateAddressScope(TestAddressScope): - project = identity_fakes_v3.FakeProject.create_one_project() domain = identity_fakes_v3.FakeDomain.create_one_domain() # The new address scope created. new_address_scope = network_fakes.create_one_address_scope( attrs={ 'project_id': project.id, - }) - columns = ( - 'id', - 'ip_version', - 'name', - 'project_id', - 'shared' + } ) + columns = ('id', 'ip_version', 'name', 'project_id', 'shared') data = ( new_address_scope.id, new_address_scope.ip_version, @@ -62,7 +55,8 @@ class TestCreateAddressScope(TestAddressScope): def setUp(self): super(TestCreateAddressScope, self).setUp() self.network.create_address_scope = mock.Mock( - return_value=self.new_address_scope) + return_value=self.new_address_scope + ) # Get the command object to test self.cmd = address_scope.CreateAddressScope(self.app, self.namespace) @@ -75,8 +69,13 @@ class TestCreateAddressScope(TestAddressScope): verifylist = [] # Missing required args should bail here - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_create_default_options(self): arglist = [ @@ -89,21 +88,26 @@ class TestCreateAddressScope(TestAddressScope): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) - self.network.create_address_scope.assert_called_once_with(**{ - 'ip_version': self.new_address_scope.ip_version, - 'name': self.new_address_scope.name, - }) + self.network.create_address_scope.assert_called_once_with( + **{ + 'ip_version': self.new_address_scope.ip_version, + 'name': self.new_address_scope.name, + } + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) def test_create_all_options(self): arglist = [ - '--ip-version', str(self.new_address_scope.ip_version), + '--ip-version', + str(self.new_address_scope.ip_version), '--share', - '--project', self.project.name, - '--project-domain', self.domain.name, + '--project', + self.project.name, + '--project-domain', + self.domain.name, self.new_address_scope.name, ] verifylist = [ @@ -115,14 +119,16 @@ class TestCreateAddressScope(TestAddressScope): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) - self.network.create_address_scope.assert_called_once_with(**{ - 'ip_version': self.new_address_scope.ip_version, - 'shared': True, - 'project_id': self.project.id, - 'name': self.new_address_scope.name, - }) + self.network.create_address_scope.assert_called_once_with( + **{ + 'ip_version': self.new_address_scope.ip_version, + 'shared': True, + 'project_id': self.project.id, + 'name': self.new_address_scope.name, + } + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) @@ -139,17 +145,18 @@ class TestCreateAddressScope(TestAddressScope): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.create_address_scope.assert_called_once_with(**{ - 'ip_version': self.new_address_scope.ip_version, - 'shared': False, - 'name': self.new_address_scope.name, - }) + self.network.create_address_scope.assert_called_once_with( + **{ + 'ip_version': self.new_address_scope.ip_version, + 'shared': False, + 'name': self.new_address_scope.name, + } + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) class TestDeleteAddressScope(TestAddressScope): - # The address scope to delete. _address_scopes = network_fakes.create_address_scopes(count=2) @@ -157,7 +164,8 @@ class TestDeleteAddressScope(TestAddressScope): super(TestDeleteAddressScope, self).setUp() self.network.delete_address_scope = mock.Mock(return_value=None) self.network.find_address_scope = network_fakes.get_address_scopes( - address_scopes=self._address_scopes) + address_scopes=self._address_scopes + ) # Get the command object to test self.cmd = address_scope.DeleteAddressScope(self.app, self.namespace) @@ -174,9 +182,11 @@ class TestDeleteAddressScope(TestAddressScope): result = self.cmd.take_action(parsed_args) self.network.find_address_scope.assert_called_once_with( - self._address_scopes[0].name, ignore_missing=False) + self._address_scopes[0].name, ignore_missing=False + ) self.network.delete_address_scope.assert_called_once_with( - self._address_scopes[0]) + self._address_scopes[0] + ) self.assertIsNone(result) def test_multi_address_scopes_delete(self): @@ -204,14 +214,16 @@ class TestDeleteAddressScope(TestAddressScope): 'unexist_address_scope', ] verifylist = [ - ('address_scope', - [self._address_scopes[0].name, 'unexist_address_scope']), + ( + 'address_scope', + [self._address_scopes[0].name, 'unexist_address_scope'], + ), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) find_mock_result = [self._address_scopes[0], exceptions.CommandError] - self.network.find_address_scope = ( - mock.Mock(side_effect=find_mock_result) + self.network.find_address_scope = mock.Mock( + side_effect=find_mock_result ) try: @@ -221,16 +233,17 @@ class TestDeleteAddressScope(TestAddressScope): self.assertEqual('1 of 2 address scopes failed to delete.', str(e)) self.network.find_address_scope.assert_any_call( - self._address_scopes[0].name, ignore_missing=False) + self._address_scopes[0].name, ignore_missing=False + ) self.network.find_address_scope.assert_any_call( - 'unexist_address_scope', ignore_missing=False) + 'unexist_address_scope', ignore_missing=False + ) self.network.delete_address_scope.assert_called_once_with( self._address_scopes[0] ) class TestListAddressScope(TestAddressScope): - # The address scopes to list up. address_scopes = network_fakes.create_address_scopes(count=3) columns = ( @@ -242,18 +255,21 @@ class TestListAddressScope(TestAddressScope): ) data = [] for scope in address_scopes: - data.append(( - scope.id, - scope.name, - scope.ip_version, - scope.is_shared, - scope.project_id, - )) + data.append( + ( + scope.id, + scope.name, + scope.ip_version, + scope.is_shared, + scope.project_id, + ) + ) def setUp(self): super(TestListAddressScope, self).setUp() self.network.address_scopes = mock.Mock( - return_value=self.address_scopes) + return_value=self.address_scopes + ) # Get the command object to test self.cmd = address_scope.ListAddressScope(self.app, self.namespace) @@ -271,7 +287,8 @@ class TestListAddressScope(TestAddressScope): def test_address_scope_list_name(self): arglist = [ - '--name', self.address_scopes[0].name, + '--name', + self.address_scopes[0].name, ] verifylist = [ ('name', self.address_scopes[0].name), @@ -280,13 +297,15 @@ class TestListAddressScope(TestAddressScope): columns, data = self.cmd.take_action(parsed_args) self.network.address_scopes.assert_called_once_with( - **{'name': self.address_scopes[0].name}) + **{'name': self.address_scopes[0].name} + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, list(data)) def test_address_scope_list_ip_version(self): arglist = [ - '--ip-version', str(4), + '--ip-version', + str(4), ] verifylist = [ ('ip_version', 4), @@ -295,7 +314,8 @@ class TestListAddressScope(TestAddressScope): columns, data = self.cmd.take_action(parsed_args) self.network.address_scopes.assert_called_once_with( - **{'ip_version': 4}) + **{'ip_version': 4} + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, list(data)) @@ -303,7 +323,8 @@ class TestListAddressScope(TestAddressScope): project = identity_fakes_v3.FakeProject.create_one_project() self.projects_mock.get.return_value = project arglist = [ - '--project', project.id, + '--project', + project.id, ] verifylist = [ ('project', project.id), @@ -312,7 +333,8 @@ class TestListAddressScope(TestAddressScope): columns, data = self.cmd.take_action(parsed_args) self.network.address_scopes.assert_called_once_with( - **{'project_id': project.id}) + **{'project_id': project.id} + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, list(data)) @@ -320,8 +342,10 @@ class TestListAddressScope(TestAddressScope): project = identity_fakes_v3.FakeProject.create_one_project() self.projects_mock.get.return_value = project arglist = [ - '--project', project.id, - '--project-domain', project.domain_id, + '--project', + project.id, + '--project-domain', + project.domain_id, ] verifylist = [ ('project', project.id), @@ -369,7 +393,6 @@ class TestListAddressScope(TestAddressScope): class TestSetAddressScope(TestAddressScope): - # The address scope to set. _address_scope = network_fakes.create_one_address_scope() @@ -377,13 +400,16 @@ class TestSetAddressScope(TestAddressScope): super(TestSetAddressScope, self).setUp() self.network.update_address_scope = mock.Mock(return_value=None) self.network.find_address_scope = mock.Mock( - return_value=self._address_scope) + return_value=self._address_scope + ) # Get the command object to test self.cmd = address_scope.SetAddressScope(self.app, self.namespace) def test_set_nothing(self): - arglist = [self._address_scope.name, ] + arglist = [ + self._address_scope.name, + ] verifylist = [ ('address_scope', self._address_scope.name), ] @@ -393,12 +419,14 @@ class TestSetAddressScope(TestAddressScope): attrs = {} self.network.update_address_scope.assert_called_with( - self._address_scope, **attrs) + self._address_scope, **attrs + ) self.assertIsNone(result) def test_set_name_and_share(self): arglist = [ - '--name', 'new_address_scope', + '--name', + 'new_address_scope', '--share', self._address_scope.name, ] @@ -415,7 +443,8 @@ class TestSetAddressScope(TestAddressScope): 'shared': True, } self.network.update_address_scope.assert_called_with( - self._address_scope, **attrs) + self._address_scope, **attrs + ) self.assertIsNone(result) def test_set_no_share(self): @@ -434,15 +463,14 @@ class TestSetAddressScope(TestAddressScope): 'shared': False, } self.network.update_address_scope.assert_called_with( - self._address_scope, **attrs) + self._address_scope, **attrs + ) self.assertIsNone(result) class TestShowAddressScope(TestAddressScope): - # The address scope to show. - _address_scope = ( - network_fakes.create_one_address_scope()) + _address_scope = network_fakes.create_one_address_scope() columns = ( 'id', 'ip_version', @@ -461,7 +489,8 @@ class TestShowAddressScope(TestAddressScope): def setUp(self): super(TestShowAddressScope, self).setUp() self.network.find_address_scope = mock.Mock( - return_value=self._address_scope) + return_value=self._address_scope + ) # Get the command object to test self.cmd = address_scope.ShowAddressScope(self.app, self.namespace) @@ -471,8 +500,13 @@ class TestShowAddressScope(TestAddressScope): verifylist = [] # Missing required args should bail here - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_show_all_options(self): arglist = [ @@ -486,6 +520,7 @@ class TestShowAddressScope(TestAddressScope): columns, data = self.cmd.take_action(parsed_args) self.network.find_address_scope.assert_called_once_with( - self._address_scope.name, ignore_missing=False) + self._address_scope.name, ignore_missing=False + ) self.assertEqual(self.columns, columns) self.assertEqual(list(self.data), list(data)) diff --git a/openstackclient/tests/unit/network/v2/test_floating_ip_compute.py b/openstackclient/tests/unit/network/v2/test_floating_ip_compute.py index 18212cf707..489212beb2 100644 --- a/openstackclient/tests/unit/network/v2/test_floating_ip_compute.py +++ b/openstackclient/tests/unit/network/v2/test_floating_ip_compute.py @@ -23,8 +23,8 @@ from openstackclient.tests.unit import utils as tests_utils # Tests for Nova network -class TestFloatingIPCompute(compute_fakes.TestComputev2): +class TestFloatingIPCompute(compute_fakes.TestComputev2): def setUp(self): super(TestFloatingIPCompute, self).setUp() @@ -32,11 +32,8 @@ class TestFloatingIPCompute(compute_fakes.TestComputev2): self.compute = self.app.client_manager.compute -@mock.patch( - 'openstackclient.api.compute_v2.APIv2.floating_ip_create' -) +@mock.patch('openstackclient.api.compute_v2.APIv2.floating_ip_create') class TestCreateFloatingIPCompute(TestFloatingIPCompute): - # The floating ip to be deleted. _floating_ip = compute_fakes.FakeFloatingIP.create_one_floating_ip() @@ -70,8 +67,13 @@ class TestCreateFloatingIPCompute(TestFloatingIPCompute): arglist = [] verifylist = [] - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_floating_ip_create_default(self, fip_mock): fip_mock.return_value = self._floating_ip @@ -90,11 +92,8 @@ class TestCreateFloatingIPCompute(TestFloatingIPCompute): self.assertEqual(self.data, data) -@mock.patch( - 'openstackclient.api.compute_v2.APIv2.floating_ip_delete' -) +@mock.patch('openstackclient.api.compute_v2.APIv2.floating_ip_delete') class TestDeleteFloatingIPCompute(TestFloatingIPCompute): - # The floating ips to be deleted. _floating_ips = compute_fakes.FakeFloatingIP.create_floating_ips(count=2) @@ -118,9 +117,7 @@ class TestDeleteFloatingIPCompute(TestFloatingIPCompute): result = self.cmd.take_action(parsed_args) - fip_mock.assert_called_once_with( - self._floating_ips[0]['id'] - ) + fip_mock.assert_called_once_with(self._floating_ips[0]['id']) self.assertIsNone(result) def test_floating_ip_delete_multi(self, fip_mock): @@ -145,18 +142,20 @@ class TestDeleteFloatingIPCompute(TestFloatingIPCompute): def test_floating_ip_delete_multi_exception(self, fip_mock): fip_mock.return_value = mock.Mock(return_value=None) - fip_mock.side_effect = ([ + fip_mock.side_effect = [ mock.Mock(return_value=None), exceptions.CommandError, - ]) + ] arglist = [ self._floating_ips[0]['id'], 'unexist_floating_ip', ] - verifylist = [( - 'floating_ip', - [self._floating_ips[0]['id'], 'unexist_floating_ip'], - )] + verifylist = [ + ( + 'floating_ip', + [self._floating_ips[0]['id'], 'unexist_floating_ip'], + ) + ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) try: @@ -169,11 +168,8 @@ class TestDeleteFloatingIPCompute(TestFloatingIPCompute): fip_mock.assert_any_call('unexist_floating_ip') -@mock.patch( - 'openstackclient.api.compute_v2.APIv2.floating_ip_list' -) +@mock.patch('openstackclient.api.compute_v2.APIv2.floating_ip_list') class TestListFloatingIPCompute(TestFloatingIPCompute): - # The floating ips to be list up _floating_ips = compute_fakes.FakeFloatingIP.create_floating_ips(count=3) @@ -187,13 +183,15 @@ class TestListFloatingIPCompute(TestFloatingIPCompute): data = [] for ip in _floating_ips: - data.append(( - ip['id'], - ip['ip'], - ip['fixed_ip'], - ip['instance_id'], - ip['pool'], - )) + data.append( + ( + ip['id'], + ip['ip'], + ip['fixed_ip'], + ip['instance_id'], + ip['pool'], + ) + ) def setUp(self): super(TestListFloatingIPCompute, self).setUp() @@ -216,11 +214,8 @@ class TestListFloatingIPCompute(TestFloatingIPCompute): self.assertEqual(self.data, list(data)) -@mock.patch( - 'openstackclient.api.compute_v2.APIv2.floating_ip_find' -) +@mock.patch('openstackclient.api.compute_v2.APIv2.floating_ip_find') class TestShowFloatingIPCompute(TestFloatingIPCompute): - # The floating ip to display. _floating_ip = compute_fakes.FakeFloatingIP.create_one_floating_ip() diff --git a/openstackclient/tests/unit/network/v2/test_floating_ip_network.py b/openstackclient/tests/unit/network/v2/test_floating_ip_network.py index f76dcc792a..d1d359d0f9 100644 --- a/openstackclient/tests/unit/network/v2/test_floating_ip_network.py +++ b/openstackclient/tests/unit/network/v2/test_floating_ip_network.py @@ -24,8 +24,8 @@ from openstackclient.tests.unit import utils as tests_utils # Tests for Neutron network -class TestFloatingIPNetwork(network_fakes.TestNetworkV2): +class TestFloatingIPNetwork(network_fakes.TestNetworkV2): def setUp(self): super(TestFloatingIPNetwork, self).setUp() @@ -38,7 +38,6 @@ class TestFloatingIPNetwork(network_fakes.TestNetworkV2): class TestCreateFloatingIPNetwork(TestFloatingIPNetwork): - # Fake data for option tests. floating_network = network_fakes.create_one_network() subnet = network_fakes.FakeSubnet.create_one_subnet() @@ -93,7 +92,8 @@ class TestCreateFloatingIPNetwork(TestFloatingIPNetwork): self.network.set_tags = mock.Mock(return_value=None) self.network.find_network = mock.Mock( - return_value=self.floating_network) + return_value=self.floating_network + ) self.network.find_subnet = mock.Mock(return_value=self.subnet) self.network.find_port = mock.Mock(return_value=self.port) @@ -104,8 +104,13 @@ class TestCreateFloatingIPNetwork(TestFloatingIPNetwork): arglist = [] verifylist = [] - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_create_default_options(self): arglist = [ @@ -118,21 +123,30 @@ class TestCreateFloatingIPNetwork(TestFloatingIPNetwork): columns, data = self.cmd.take_action(parsed_args) - self.network.create_ip.assert_called_once_with(**{ - 'floating_network_id': self.floating_ip.floating_network_id, - }) + self.network.create_ip.assert_called_once_with( + **{ + 'floating_network_id': self.floating_ip.floating_network_id, + } + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) def test_create_all_options(self): arglist = [ - '--subnet', self.subnet.id, - '--port', self.floating_ip.port_id, - '--floating-ip-address', self.floating_ip.floating_ip_address, - '--fixed-ip-address', self.floating_ip.fixed_ip_address, - '--description', self.floating_ip.description, - '--dns-domain', self.floating_ip.dns_domain, - '--dns-name', self.floating_ip.dns_name, + '--subnet', + self.subnet.id, + '--port', + self.floating_ip.port_id, + '--floating-ip-address', + self.floating_ip.floating_ip_address, + '--fixed-ip-address', + self.floating_ip.fixed_ip_address, + '--description', + self.floating_ip.description, + '--dns-domain', + self.floating_ip.dns_domain, + '--dns-name', + self.floating_ip.dns_name, self.floating_ip.floating_network_id, ] verifylist = [ @@ -149,16 +163,18 @@ class TestCreateFloatingIPNetwork(TestFloatingIPNetwork): columns, data = self.cmd.take_action(parsed_args) - self.network.create_ip.assert_called_once_with(**{ - 'subnet_id': self.subnet.id, - 'port_id': self.floating_ip.port_id, - 'floating_ip_address': self.floating_ip.floating_ip_address, - 'fixed_ip_address': self.floating_ip.fixed_ip_address, - 'floating_network_id': self.floating_ip.floating_network_id, - 'description': self.floating_ip.description, - 'dns_domain': self.floating_ip.dns_domain, - 'dns_name': self.floating_ip.dns_name, - }) + self.network.create_ip.assert_called_once_with( + **{ + 'subnet_id': self.subnet.id, + 'port_id': self.floating_ip.port_id, + 'floating_ip_address': self.floating_ip.floating_ip_address, + 'fixed_ip_address': self.floating_ip.fixed_ip_address, + 'floating_network_id': self.floating_ip.floating_network_id, + 'description': self.floating_ip.description, + 'dns_domain': self.floating_ip.dns_domain, + 'dns_name': self.floating_ip.dns_name, + } + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) @@ -166,7 +182,8 @@ class TestCreateFloatingIPNetwork(TestFloatingIPNetwork): project = identity_fakes_v3.FakeProject.create_one_project() self.projects_mock.get.return_value = project arglist = [ - '--project', project.id, + '--project', + project.id, self.floating_ip.floating_network_id, ] verifylist = [ @@ -177,10 +194,12 @@ class TestCreateFloatingIPNetwork(TestFloatingIPNetwork): columns, data = self.cmd.take_action(parsed_args) - self.network.create_ip.assert_called_once_with(**{ - 'floating_network_id': self.floating_ip.floating_network_id, - 'project_id': project.id, - }) + self.network.create_ip.assert_called_once_with( + **{ + 'floating_network_id': self.floating_ip.floating_network_id, + 'project_id': project.id, + } + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) @@ -189,8 +208,10 @@ class TestCreateFloatingIPNetwork(TestFloatingIPNetwork): domain = identity_fakes_v3.FakeDomain.create_one_domain() self.projects_mock.get.return_value = project arglist = [ - "--project", project.name, - "--project-domain", domain.name, + "--project", + project.name, + "--project-domain", + domain.name, self.floating_ip.floating_network_id, ] verifylist = [ @@ -203,10 +224,12 @@ class TestCreateFloatingIPNetwork(TestFloatingIPNetwork): columns, data = self.cmd.take_action(parsed_args) - self.network.create_ip.assert_called_once_with(**{ - 'floating_network_id': self.floating_ip.floating_network_id, - 'project_id': project.id, - }) + self.network.create_ip.assert_called_once_with( + **{ + 'floating_network_id': self.floating_ip.floating_network_id, + 'project_id': project.id, + } + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) @@ -214,7 +237,8 @@ class TestCreateFloatingIPNetwork(TestFloatingIPNetwork): qos_policy = network_fakes.FakeNetworkQosPolicy.create_one_qos_policy() self.network.find_qos_policy = mock.Mock(return_value=qos_policy) arglist = [ - '--qos-policy', qos_policy.id, + '--qos-policy', + qos_policy.id, self.floating_ip.floating_network_id, ] verifylist = [ @@ -225,10 +249,12 @@ class TestCreateFloatingIPNetwork(TestFloatingIPNetwork): columns, data = self.cmd.take_action(parsed_args) - self.network.create_ip.assert_called_once_with(**{ - 'floating_network_id': self.floating_ip.floating_network_id, - 'qos_policy_id': qos_policy.id, - }) + self.network.create_ip.assert_called_once_with( + **{ + 'floating_network_id': self.floating_ip.floating_network_id, + 'qos_policy_id': qos_policy.id, + } + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) @@ -248,15 +274,17 @@ class TestCreateFloatingIPNetwork(TestFloatingIPNetwork): verifylist.append(('no_tag', True)) parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) - self.network.create_ip.assert_called_once_with(**{ - 'floating_network_id': self.floating_ip.floating_network_id, - }) + self.network.create_ip.assert_called_once_with( + **{ + 'floating_network_id': self.floating_ip.floating_network_id, + } + ) if add_tags: self.network.set_tags.assert_called_once_with( - self.floating_ip, - tests_utils.CompareBySet(['red', 'blue'])) + self.floating_ip, tests_utils.CompareBySet(['red', 'blue']) + ) else: self.assertFalse(self.network.set_tags.called) self.assertEqual(self.columns, columns) @@ -270,7 +298,6 @@ class TestCreateFloatingIPNetwork(TestFloatingIPNetwork): class TestDeleteFloatingIPNetwork(TestFloatingIPNetwork): - # The floating ips to be deleted. floating_ips = network_fakes.FakeFloatingIP.create_floating_ips(count=2) @@ -350,8 +377,7 @@ class TestDeleteFloatingIPNetwork(TestFloatingIPNetwork): 'unexist_floating_ip', ] verifylist = [ - ('floating_ip', - [self.floating_ips[0].id, 'unexist_floating_ip']), + ('floating_ip', [self.floating_ips[0].id, 'unexist_floating_ip']), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -369,24 +395,27 @@ class TestDeleteFloatingIPNetwork(TestFloatingIPNetwork): 'unexist_floating_ip', ignore_missing=False, ) - self.network.delete_ip.assert_called_once_with( - self.floating_ips[0] - ) + self.network.delete_ip.assert_called_once_with(self.floating_ips[0]) class TestListFloatingIPNetwork(TestFloatingIPNetwork): - # The floating ips to list up floating_ips = network_fakes.FakeFloatingIP.create_floating_ips(count=3) - fake_network = network_fakes.create_one_network({ - 'id': 'fake_network_id', - }) - fake_port = network_fakes.create_one_port({ - 'id': 'fake_port_id', - }) - fake_router = network_fakes.FakeRouter.create_one_router({ - 'id': 'fake_router_id', - }) + fake_network = network_fakes.create_one_network( + { + 'id': 'fake_network_id', + } + ) + fake_port = network_fakes.create_one_port( + { + 'id': 'fake_port_id', + } + ) + fake_router = network_fakes.FakeRouter.create_one_router( + { + 'id': 'fake_router_id', + } + ) columns = ( 'ID', @@ -408,28 +437,32 @@ class TestListFloatingIPNetwork(TestFloatingIPNetwork): data = [] data_long = [] for ip in floating_ips: - data.append(( - ip.id, - ip.floating_ip_address, - ip.fixed_ip_address, - ip.port_id, - ip.floating_network_id, - ip.project_id, - )) - data_long.append(( - ip.id, - ip.floating_ip_address, - ip.fixed_ip_address, - ip.port_id, - ip.floating_network_id, - ip.project_id, - ip.router_id, - ip.status, - ip.description, - ip.tags, - ip.dns_domain, - ip.dns_name, - )) + data.append( + ( + ip.id, + ip.floating_ip_address, + ip.fixed_ip_address, + ip.port_id, + ip.floating_network_id, + ip.project_id, + ) + ) + data_long.append( + ( + ip.id, + ip.floating_ip_address, + ip.fixed_ip_address, + ip.port_id, + ip.floating_network_id, + ip.project_id, + ip.router_id, + ip.status, + ip.description, + ip.tags, + ip.dns_domain, + ip.dns_name, + ) + ) def setUp(self): super(TestListFloatingIPNetwork, self).setUp() @@ -455,7 +488,8 @@ class TestListFloatingIPNetwork(TestFloatingIPNetwork): def test_floating_ip_list_network(self): arglist = [ - '--network', 'fake_network_id', + '--network', + 'fake_network_id', ] verifylist = [ ('network', 'fake_network_id'), @@ -464,15 +498,18 @@ class TestListFloatingIPNetwork(TestFloatingIPNetwork): columns, data = self.cmd.take_action(parsed_args) - self.network.ips.assert_called_once_with(**{ - 'floating_network_id': 'fake_network_id', - }) + self.network.ips.assert_called_once_with( + **{ + 'floating_network_id': 'fake_network_id', + } + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, list(data)) def test_floating_ip_list_port(self): arglist = [ - '--port', 'fake_port_id', + '--port', + 'fake_port_id', ] verifylist = [ ('port', 'fake_port_id'), @@ -481,15 +518,18 @@ class TestListFloatingIPNetwork(TestFloatingIPNetwork): columns, data = self.cmd.take_action(parsed_args) - self.network.ips.assert_called_once_with(**{ - 'port_id': 'fake_port_id', - }) + self.network.ips.assert_called_once_with( + **{ + 'port_id': 'fake_port_id', + } + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, list(data)) def test_floating_ip_list_fixed_ip_address(self): arglist = [ - '--fixed-ip-address', self.floating_ips[0].fixed_ip_address, + '--fixed-ip-address', + self.floating_ips[0].fixed_ip_address, ] verifylist = [ ('fixed_ip_address', self.floating_ips[0].fixed_ip_address), @@ -498,15 +538,18 @@ class TestListFloatingIPNetwork(TestFloatingIPNetwork): columns, data = self.cmd.take_action(parsed_args) - self.network.ips.assert_called_once_with(**{ - 'fixed_ip_address': self.floating_ips[0].fixed_ip_address, - }) + self.network.ips.assert_called_once_with( + **{ + 'fixed_ip_address': self.floating_ips[0].fixed_ip_address, + } + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, list(data)) def test_floating_ip_list_floating_ip_address(self): arglist = [ - '--floating-ip-address', self.floating_ips[0].floating_ip_address, + '--floating-ip-address', + self.floating_ips[0].floating_ip_address, ] verifylist = [ ('floating_ip_address', self.floating_ips[0].floating_ip_address), @@ -515,15 +558,23 @@ class TestListFloatingIPNetwork(TestFloatingIPNetwork): columns, data = self.cmd.take_action(parsed_args) - self.network.ips.assert_called_once_with(**{ - 'floating_ip_address': self.floating_ips[0].floating_ip_address, - }) + self.network.ips.assert_called_once_with( + **{ + 'floating_ip_address': self.floating_ips[ + 0 + ].floating_ip_address, + } + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, list(data)) def test_floating_ip_list_long(self): - arglist = ['--long', ] - verifylist = [('long', True), ] + arglist = [ + '--long', + ] + verifylist = [ + ('long', True), + ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -535,7 +586,8 @@ class TestListFloatingIPNetwork(TestFloatingIPNetwork): def test_floating_ip_list_status(self): arglist = [ - '--status', 'ACTIVE', + '--status', + 'ACTIVE', '--long', ] verifylist = [ @@ -545,9 +597,11 @@ class TestListFloatingIPNetwork(TestFloatingIPNetwork): columns, data = self.cmd.take_action(parsed_args) - self.network.ips.assert_called_once_with(**{ - 'status': 'ACTIVE', - }) + self.network.ips.assert_called_once_with( + **{ + 'status': 'ACTIVE', + } + ) self.assertEqual(self.columns_long, columns) self.assertEqual(self.data_long, list(data)) @@ -555,7 +609,8 @@ class TestListFloatingIPNetwork(TestFloatingIPNetwork): project = identity_fakes_v3.FakeProject.create_one_project() self.projects_mock.get.return_value = project arglist = [ - '--project', project.id, + '--project', + project.id, ] verifylist = [ ('project', project.id), @@ -574,8 +629,10 @@ class TestListFloatingIPNetwork(TestFloatingIPNetwork): project = identity_fakes_v3.FakeProject.create_one_project() self.projects_mock.get.return_value = project arglist = [ - '--project', project.id, - '--project-domain', project.domain_id, + '--project', + project.id, + '--project-domain', + project.domain_id, ] verifylist = [ ('project', project.id), @@ -591,7 +648,8 @@ class TestListFloatingIPNetwork(TestFloatingIPNetwork): def test_floating_ip_list_router(self): arglist = [ - '--router', 'fake_router_id', + '--router', + 'fake_router_id', '--long', ] verifylist = [ @@ -601,18 +659,24 @@ class TestListFloatingIPNetwork(TestFloatingIPNetwork): columns, data = self.cmd.take_action(parsed_args) - self.network.ips.assert_called_once_with(**{ - 'router_id': 'fake_router_id', - }) + self.network.ips.assert_called_once_with( + **{ + 'router_id': 'fake_router_id', + } + ) self.assertEqual(self.columns_long, columns) self.assertEqual(self.data_long, list(data)) def test_list_with_tag_options(self): arglist = [ - '--tags', 'red,blue', - '--any-tags', 'red,green', - '--not-tags', 'orange,yellow', - '--not-any-tags', 'black,white', + '--tags', + 'red,blue', + '--any-tags', + 'red,green', + '--not-tags', + 'orange,yellow', + '--not-any-tags', + 'black,white', ] verifylist = [ ('tags', ['red', 'blue']), @@ -624,17 +688,18 @@ class TestListFloatingIPNetwork(TestFloatingIPNetwork): columns, data = self.cmd.take_action(parsed_args) self.network.ips.assert_called_once_with( - **{'tags': 'red,blue', - 'any_tags': 'red,green', - 'not_tags': 'orange,yellow', - 'not_any_tags': 'black,white'} + **{ + 'tags': 'red,blue', + 'any_tags': 'red,green', + 'not_tags': 'orange,yellow', + 'not_any_tags': 'black,white', + } ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, list(data)) class TestShowFloatingIPNetwork(TestFloatingIPNetwork): - # The floating ip to display. floating_ip = network_fakes.FakeFloatingIP.create_one_floating_ip() @@ -698,7 +763,6 @@ class TestShowFloatingIPNetwork(TestFloatingIPNetwork): class TestSetFloatingIP(TestFloatingIPNetwork): - # Fake data for option tests. floating_network = network_fakes.create_one_network() subnet = network_fakes.FakeSubnet.create_one_subnet() @@ -726,7 +790,8 @@ class TestSetFloatingIP(TestFloatingIPNetwork): def test_port_option(self): arglist = [ self.floating_ip.id, - '--port', self.floating_ip.port_id, + '--port', + self.floating_ip.port_id, ] verifylist = [ ('floating_ip', self.floating_ip.id), @@ -746,13 +811,16 @@ class TestSetFloatingIP(TestFloatingIPNetwork): ) self.network.update_ip.assert_called_once_with( - self.floating_ip, **attrs) + self.floating_ip, **attrs + ) def test_fixed_ip_option(self): arglist = [ self.floating_ip.id, - '--port', self.floating_ip.port_id, - "--fixed-ip-address", self.floating_ip.fixed_ip_address, + '--port', + self.floating_ip.port_id, + "--fixed-ip-address", + self.floating_ip.fixed_ip_address, ] verifylist = [ ('floating_ip', self.floating_ip.id), @@ -772,13 +840,16 @@ class TestSetFloatingIP(TestFloatingIPNetwork): ignore_missing=False, ) self.network.update_ip.assert_called_once_with( - self.floating_ip, **attrs) + self.floating_ip, **attrs + ) def test_description_option(self): arglist = [ self.floating_ip.id, - '--port', self.floating_ip.port_id, - '--description', self.floating_ip.description, + '--port', + self.floating_ip.port_id, + '--description', + self.floating_ip.description, ] verifylist = [ ('floating_ip', self.floating_ip.id), @@ -798,13 +869,15 @@ class TestSetFloatingIP(TestFloatingIPNetwork): ignore_missing=False, ) self.network.update_ip.assert_called_once_with( - self.floating_ip, **attrs) + self.floating_ip, **attrs + ) def test_qos_policy_option(self): qos_policy = network_fakes.FakeNetworkQosPolicy.create_one_qos_policy() self.network.find_qos_policy = mock.Mock(return_value=qos_policy) arglist = [ - "--qos-policy", qos_policy.id, + "--qos-policy", + qos_policy.id, self.floating_ip.id, ] verifylist = [ @@ -823,14 +896,17 @@ class TestSetFloatingIP(TestFloatingIPNetwork): ignore_missing=False, ) self.network.update_ip.assert_called_once_with( - self.floating_ip, **attrs) + self.floating_ip, **attrs + ) def test_port_and_qos_policy_option(self): qos_policy = network_fakes.FakeNetworkQosPolicy.create_one_qos_policy() self.network.find_qos_policy = mock.Mock(return_value=qos_policy) arglist = [ - "--qos-policy", qos_policy.id, - '--port', self.floating_ip.port_id, + "--qos-policy", + qos_policy.id, + '--port', + self.floating_ip.port_id, self.floating_ip.id, ] verifylist = [ @@ -851,7 +927,8 @@ class TestSetFloatingIP(TestFloatingIPNetwork): ignore_missing=False, ) self.network.update_ip.assert_called_once_with( - self.floating_ip, **attrs) + self.floating_ip, **attrs + ) def test_no_qos_policy_option(self): arglist = [ @@ -874,12 +951,14 @@ class TestSetFloatingIP(TestFloatingIPNetwork): ignore_missing=False, ) self.network.update_ip.assert_called_once_with( - self.floating_ip, **attrs) + self.floating_ip, **attrs + ) def test_port_and_no_qos_policy_option(self): arglist = [ "--no-qos-policy", - '--port', self.floating_ip.port_id, + '--port', + self.floating_ip.port_id, self.floating_ip.id, ] verifylist = [ @@ -900,7 +979,8 @@ class TestSetFloatingIP(TestFloatingIPNetwork): ignore_missing=False, ) self.network.update_ip.assert_called_once_with( - self.floating_ip, **attrs) + self.floating_ip, **attrs + ) def _test_set_tags(self, with_tags=True): if with_tags: @@ -919,8 +999,8 @@ class TestSetFloatingIP(TestFloatingIPNetwork): self.assertFalse(self.network.update_ip.called) self.network.set_tags.assert_called_once_with( - self.floating_ip, - tests_utils.CompareBySet(expected_args)) + self.floating_ip, tests_utils.CompareBySet(expected_args) + ) self.assertIsNone(result) def test_set_with_tags(self): @@ -931,7 +1011,6 @@ class TestSetFloatingIP(TestFloatingIPNetwork): class TestUnsetFloatingIP(TestFloatingIPNetwork): - floating_network = network_fakes.create_one_network() subnet = network_fakes.FakeSubnet.create_one_subnet() port = network_fakes.create_one_port() @@ -975,7 +1054,8 @@ class TestUnsetFloatingIP(TestFloatingIPNetwork): ignore_missing=False, ) self.network.update_ip.assert_called_once_with( - self.floating_ip, **attrs) + self.floating_ip, **attrs + ) self.assertIsNone(result) @@ -1000,7 +1080,8 @@ class TestUnsetFloatingIP(TestFloatingIPNetwork): ignore_missing=False, ) self.network.update_ip.assert_called_once_with( - self.floating_ip, **attrs) + self.floating_ip, **attrs + ) self.assertIsNone(result) @@ -1014,16 +1095,15 @@ class TestUnsetFloatingIP(TestFloatingIPNetwork): verifylist = [('all_tag', True)] expected_args = [] arglist.append(self.floating_ip.id) - verifylist.append( - ('floating_ip', self.floating_ip.id)) + verifylist.append(('floating_ip', self.floating_ip.id)) parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.assertFalse(self.network.update_ip.called) self.network.set_tags.assert_called_once_with( - self.floating_ip, - tests_utils.CompareBySet(expected_args)) + self.floating_ip, tests_utils.CompareBySet(expected_args) + ) self.assertIsNone(result) def test_unset_with_tags(self): diff --git a/openstackclient/tests/unit/network/v2/test_floating_ip_pool_compute.py b/openstackclient/tests/unit/network/v2/test_floating_ip_pool_compute.py index 3dd99362c1..2e0f75bd14 100644 --- a/openstackclient/tests/unit/network/v2/test_floating_ip_pool_compute.py +++ b/openstackclient/tests/unit/network/v2/test_floating_ip_pool_compute.py @@ -19,8 +19,8 @@ from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes # Tests for Compute network -class TestFloatingIPPoolCompute(compute_fakes.TestComputev2): +class TestFloatingIPPoolCompute(compute_fakes.TestComputev2): def setUp(self): super(TestFloatingIPPoolCompute, self).setUp() @@ -28,24 +28,18 @@ class TestFloatingIPPoolCompute(compute_fakes.TestComputev2): self.compute = self.app.client_manager.compute -@mock.patch( - 'openstackclient.api.compute_v2.APIv2.floating_ip_pool_list' -) +@mock.patch('openstackclient.api.compute_v2.APIv2.floating_ip_pool_list') class TestListFloatingIPPoolCompute(TestFloatingIPPoolCompute): - # The floating ip pools to list up - _floating_ip_pools = \ + _floating_ip_pools = ( compute_fakes.FakeFloatingIPPool.create_floating_ip_pools(count=3) - - columns = ( - 'Name', ) + columns = ('Name',) + data = [] for pool in _floating_ip_pools: - data.append(( - pool['name'], - )) + data.append((pool['name'],)) def setUp(self): super(TestListFloatingIPPoolCompute, self).setUp() diff --git a/openstackclient/tests/unit/network/v2/test_floating_ip_pool_network.py b/openstackclient/tests/unit/network/v2/test_floating_ip_pool_network.py index 95ff5549b0..fd0a208b2a 100644 --- a/openstackclient/tests/unit/network/v2/test_floating_ip_pool_network.py +++ b/openstackclient/tests/unit/network/v2/test_floating_ip_pool_network.py @@ -19,8 +19,8 @@ from openstackclient.tests.unit.network.v2 import fakes as network_fakes # Tests for Network API v2 -class TestFloatingIPPoolNetwork(network_fakes.TestNetworkV2): +class TestFloatingIPPoolNetwork(network_fakes.TestNetworkV2): def setUp(self): super(TestFloatingIPPoolNetwork, self).setUp() @@ -29,18 +29,19 @@ class TestFloatingIPPoolNetwork(network_fakes.TestNetworkV2): class TestListFloatingIPPoolNetwork(TestFloatingIPPoolNetwork): - def setUp(self): super(TestListFloatingIPPoolNetwork, self).setUp() # Get the command object to test - self.cmd = floating_ip_pool.ListFloatingIPPool(self.app, - self.namespace) + self.cmd = floating_ip_pool.ListFloatingIPPool( + self.app, self.namespace + ) def test_floating_ip_list(self): arglist = [] verifylist = [] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.assertRaises(exceptions.CommandError, self.cmd.take_action, - parsed_args) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) diff --git a/openstackclient/tests/unit/network/v2/test_floating_ip_port_forwarding.py b/openstackclient/tests/unit/network/v2/test_floating_ip_port_forwarding.py index d0f5af8caf..fb30a1a713 100644 --- a/openstackclient/tests/unit/network/v2/test_floating_ip_port_forwarding.py +++ b/openstackclient/tests/unit/network/v2/test_floating_ip_port_forwarding.py @@ -25,52 +25,45 @@ from openstackclient.tests.unit import utils as tests_utils class TestFloatingIPPortForwarding(network_fakes.TestNetworkV2): - def setUp(self): super(TestFloatingIPPortForwarding, self).setUp() self.network = self.app.client_manager.network - self.floating_ip = (network_fakes.FakeFloatingIP. - create_one_floating_ip()) + self.floating_ip = ( + network_fakes.FakeFloatingIP.create_one_floating_ip() + ) self.port = network_fakes.create_one_port() self.project = identity_fakes_v2.FakeProject.create_one_project() self.network.find_port = mock.Mock(return_value=self.port) class TestCreateFloatingIPPortForwarding(TestFloatingIPPortForwarding): - def setUp(self): super(TestCreateFloatingIPPortForwarding, self).setUp() - self.new_port_forwarding = ( - network_fakes.FakeFloatingIPPortForwarding. - create_one_port_forwarding( - attrs={ - 'internal_port_id': self.port.id, - 'floatingip_id': self.floating_ip.id, - } - ) + self.new_port_forwarding = network_fakes.FakeFloatingIPPortForwarding.create_one_port_forwarding( # noqa: E501 + attrs={ + 'internal_port_id': self.port.id, + 'floatingip_id': self.floating_ip.id, + } ) - self.new_port_forwarding_with_ranges = ( - network_fakes.FakeFloatingIPPortForwarding. - create_one_port_forwarding( - use_range=True, - attrs={ - 'internal_port_id': self.port.id, - 'floatingip_id': self.floating_ip.id, - } - ) + self.new_port_forwarding_with_ranges = network_fakes.FakeFloatingIPPortForwarding.create_one_port_forwarding( # noqa: E501 + use_range=True, + attrs={ + 'internal_port_id': self.port.id, + 'floatingip_id': self.floating_ip.id, + }, ) self.network.create_floating_ip_port_forwarding = mock.Mock( - return_value=self.new_port_forwarding) - - self.network.find_ip = mock.Mock( - return_value=self.floating_ip + return_value=self.new_port_forwarding ) + self.network.find_ip = mock.Mock(return_value=self.floating_ip) + # Get the command object to test self.cmd = floating_ip_port_forwarding.CreateFloatingIPPortForwarding( - self.app, self.namespace) + self.app, self.namespace + ) self.columns = ( 'description', @@ -82,7 +75,7 @@ class TestCreateFloatingIPPortForwarding(TestFloatingIPPortForwarding): 'internal_port', 'internal_port_id', 'internal_port_range', - 'protocol' + 'protocol', ) self.data = ( @@ -103,17 +96,24 @@ class TestCreateFloatingIPPortForwarding(TestFloatingIPPortForwarding): verifylist = [] # Missing required args should bail here - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_create_all_options_with_range(self): arglist = [ - '--port', self.new_port_forwarding_with_ranges.internal_port_id, + '--port', + self.new_port_forwarding_with_ranges.internal_port_id, '--internal-protocol-port', self.new_port_forwarding_with_ranges.internal_port_range, '--external-protocol-port', self.new_port_forwarding_with_ranges.external_port_range, - '--protocol', self.new_port_forwarding_with_ranges.protocol, + '--protocol', + self.new_port_forwarding_with_ranges.protocol, self.new_port_forwarding_with_ranges.floatingip_id, '--internal-ip-address', self.new_port_forwarding_with_ranges.internal_ip_address, @@ -122,49 +122,53 @@ class TestCreateFloatingIPPortForwarding(TestFloatingIPPortForwarding): ] verifylist = [ ('port', self.new_port_forwarding_with_ranges.internal_port_id), - ('internal_protocol_port', - self.new_port_forwarding_with_ranges.internal_port_range), - ('external_protocol_port', - self.new_port_forwarding_with_ranges.external_port_range), + ( + 'internal_protocol_port', + self.new_port_forwarding_with_ranges.internal_port_range, + ), + ( + 'external_protocol_port', + self.new_port_forwarding_with_ranges.external_port_range, + ), ('protocol', self.new_port_forwarding_with_ranges.protocol), - ('floating_ip', - self.new_port_forwarding_with_ranges.floatingip_id), - ('internal_ip_address', self.new_port_forwarding_with_ranges. - internal_ip_address), + ( + 'floating_ip', + self.new_port_forwarding_with_ranges.floatingip_id, + ), + ( + 'internal_ip_address', + self.new_port_forwarding_with_ranges.internal_ip_address, + ), ('description', self.new_port_forwarding_with_ranges.description), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.create_floating_ip_port_forwarding.\ - assert_called_once_with( - self.new_port_forwarding.floatingip_id, - **{ - 'external_port_range': - self.new_port_forwarding_with_ranges. - external_port_range, - 'internal_ip_address': - self.new_port_forwarding_with_ranges. - internal_ip_address, - 'internal_port_range': - self.new_port_forwarding_with_ranges. - internal_port_range, - 'internal_port_id': - self.new_port_forwarding_with_ranges.internal_port_id, - 'protocol': self.new_port_forwarding_with_ranges.protocol, - 'description': - self.new_port_forwarding_with_ranges.description, - }) + self.network.create_floating_ip_port_forwarding.assert_called_once_with( # noqa: E501 + self.new_port_forwarding.floatingip_id, + **{ + 'external_port_range': self.new_port_forwarding_with_ranges.external_port_range, # noqa: E501 + 'internal_ip_address': self.new_port_forwarding_with_ranges.internal_ip_address, # noqa: E501 + 'internal_port_range': self.new_port_forwarding_with_ranges.internal_port_range, # noqa: E501 + 'internal_port_id': self.new_port_forwarding_with_ranges.internal_port_id, # noqa: E501 + 'protocol': self.new_port_forwarding_with_ranges.protocol, + 'description': self.new_port_forwarding_with_ranges.description, # noqa: E501 + } + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) def test_create_all_options_with_range_invalid_port_exception(self): invalid_port_range = '999999:999999' arglist = [ - '--port', self.new_port_forwarding_with_ranges.internal_port_id, - '--internal-protocol-port', invalid_port_range, - '--external-protocol-port', invalid_port_range, - '--protocol', self.new_port_forwarding_with_ranges.protocol, + '--port', + self.new_port_forwarding_with_ranges.internal_port_id, + '--internal-protocol-port', + invalid_port_range, + '--external-protocol-port', + invalid_port_range, + '--protocol', + self.new_port_forwarding_with_ranges.protocol, self.new_port_forwarding_with_ranges.floatingip_id, '--internal-ip-address', self.new_port_forwarding_with_ranges.internal_ip_address, @@ -176,10 +180,14 @@ class TestCreateFloatingIPPortForwarding(TestFloatingIPPortForwarding): ('internal_protocol_port', invalid_port_range), ('external_protocol_port', invalid_port_range), ('protocol', self.new_port_forwarding_with_ranges.protocol), - ('floating_ip', - self.new_port_forwarding_with_ranges.floatingip_id), - ('internal_ip_address', self.new_port_forwarding_with_ranges. - internal_ip_address), + ( + 'floating_ip', + self.new_port_forwarding_with_ranges.floatingip_id, + ), + ( + 'internal_ip_address', + self.new_port_forwarding_with_ranges.internal_ip_address, + ), ('description', self.new_port_forwarding_with_ranges.description), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -194,10 +202,14 @@ class TestCreateFloatingIPPortForwarding(TestFloatingIPPortForwarding): def test_create_all_options_with_invalid_range_exception(self): invalid_port_range = '80:70' arglist = [ - '--port', self.new_port_forwarding_with_ranges.internal_port_id, - '--internal-protocol-port', invalid_port_range, - '--external-protocol-port', invalid_port_range, - '--protocol', self.new_port_forwarding_with_ranges.protocol, + '--port', + self.new_port_forwarding_with_ranges.internal_port_id, + '--internal-protocol-port', + invalid_port_range, + '--external-protocol-port', + invalid_port_range, + '--protocol', + self.new_port_forwarding_with_ranges.protocol, self.new_port_forwarding_with_ranges.floatingip_id, '--internal-ip-address', self.new_port_forwarding_with_ranges.internal_ip_address, @@ -209,15 +221,21 @@ class TestCreateFloatingIPPortForwarding(TestFloatingIPPortForwarding): ('internal_protocol_port', invalid_port_range), ('external_protocol_port', invalid_port_range), ('protocol', self.new_port_forwarding_with_ranges.protocol), - ('floating_ip', - self.new_port_forwarding_with_ranges.floatingip_id), - ('internal_ip_address', self.new_port_forwarding_with_ranges. - internal_ip_address), + ( + 'floating_ip', + self.new_port_forwarding_with_ranges.floatingip_id, + ), + ( + 'internal_ip_address', + self.new_port_forwarding_with_ranges.internal_ip_address, + ), ('description', self.new_port_forwarding_with_ranges.description), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - msg = 'The last number in port range must be greater or equal to ' \ - 'the first' + msg = ( + 'The last number in port range must be greater or equal to ' + 'the first' + ) try: self.cmd.take_action(parsed_args) self.fail('CommandError should be raised.') @@ -229,10 +247,14 @@ class TestCreateFloatingIPPortForwarding(TestFloatingIPPortForwarding): internal_range = '80:90' external_range = '8080:8100' arglist = [ - '--port', self.new_port_forwarding_with_ranges.internal_port_id, - '--internal-protocol-port', internal_range, - '--external-protocol-port', external_range, - '--protocol', self.new_port_forwarding_with_ranges.protocol, + '--port', + self.new_port_forwarding_with_ranges.internal_port_id, + '--internal-protocol-port', + internal_range, + '--external-protocol-port', + external_range, + '--protocol', + self.new_port_forwarding_with_ranges.protocol, self.new_port_forwarding_with_ranges.floatingip_id, '--internal-ip-address', self.new_port_forwarding_with_ranges.internal_ip_address, @@ -244,15 +266,21 @@ class TestCreateFloatingIPPortForwarding(TestFloatingIPPortForwarding): ('internal_protocol_port', internal_range), ('external_protocol_port', external_range), ('protocol', self.new_port_forwarding_with_ranges.protocol), - ('floating_ip', - self.new_port_forwarding_with_ranges.floatingip_id), - ('internal_ip_address', self.new_port_forwarding_with_ranges. - internal_ip_address), + ( + 'floating_ip', + self.new_port_forwarding_with_ranges.floatingip_id, + ), + ( + 'internal_ip_address', + self.new_port_forwarding_with_ranges.internal_ip_address, + ), ('description', self.new_port_forwarding_with_ranges.description), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - msg = "The relation between internal and external ports does not " \ - "match the pattern 1:N and N:N" + msg = ( + "The relation between internal and external ports does not " + "match the pattern 1:N and N:N" + ) try: self.cmd.take_action(parsed_args) self.fail('CommandError should be raised.') @@ -262,12 +290,14 @@ class TestCreateFloatingIPPortForwarding(TestFloatingIPPortForwarding): def test_create_all_options(self): arglist = [ - '--port', self.new_port_forwarding.internal_port_id, + '--port', + self.new_port_forwarding.internal_port_id, '--internal-protocol-port', str(self.new_port_forwarding.internal_port), '--external-protocol-port', str(self.new_port_forwarding.external_port), - '--protocol', self.new_port_forwarding.protocol, + '--protocol', + self.new_port_forwarding.protocol, self.new_port_forwarding.floatingip_id, '--internal-ip-address', self.new_port_forwarding.internal_ip_address, @@ -276,57 +306,60 @@ class TestCreateFloatingIPPortForwarding(TestFloatingIPPortForwarding): ] verifylist = [ ('port', self.new_port_forwarding.internal_port_id), - ('internal_protocol_port', - str(self.new_port_forwarding.internal_port)), - ('external_protocol_port', - str(self.new_port_forwarding.external_port)), + ( + 'internal_protocol_port', + str(self.new_port_forwarding.internal_port), + ), + ( + 'external_protocol_port', + str(self.new_port_forwarding.external_port), + ), ('protocol', self.new_port_forwarding.protocol), ('floating_ip', self.new_port_forwarding.floatingip_id), - ('internal_ip_address', self.new_port_forwarding. - internal_ip_address), + ( + 'internal_ip_address', + self.new_port_forwarding.internal_ip_address, + ), ('description', self.new_port_forwarding.description), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.create_floating_ip_port_forwarding.\ - assert_called_once_with( - self.new_port_forwarding.floatingip_id, - **{ - 'external_port': self.new_port_forwarding.external_port, - 'internal_ip_address': self.new_port_forwarding. - internal_ip_address, - 'internal_port': self.new_port_forwarding.internal_port, - 'internal_port_id': self.new_port_forwarding. - internal_port_id, - 'protocol': self.new_port_forwarding.protocol, - 'description': self.new_port_forwarding.description, - }) + self.network.create_floating_ip_port_forwarding.assert_called_once_with( # noqa: E501 + self.new_port_forwarding.floatingip_id, + **{ + 'external_port': self.new_port_forwarding.external_port, + 'internal_ip_address': self.new_port_forwarding.internal_ip_address, # noqa: E501 + 'internal_port': self.new_port_forwarding.internal_port, + 'internal_port_id': self.new_port_forwarding.internal_port_id, + 'protocol': self.new_port_forwarding.protocol, + 'description': self.new_port_forwarding.description, + } + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) class TestDeleteFloatingIPPortForwarding(TestFloatingIPPortForwarding): - def setUp(self): super(TestDeleteFloatingIPPortForwarding, self).setUp() self._port_forwarding = ( network_fakes.FakeFloatingIPPortForwarding.create_port_forwardings( - count=2, attrs={ + count=2, + attrs={ 'floatingip_id': self.floating_ip.id, - } + }, ) ) self.network.delete_floating_ip_port_forwarding = mock.Mock( return_value=None ) - self.network.find_ip = mock.Mock( - return_value=self.floating_ip - ) + self.network.find_ip = mock.Mock(return_value=self.floating_ip) # Get the command object to test self.cmd = floating_ip_port_forwarding.DeleteFloatingIPPortForwarding( - self.app, self.namespace) + self.app, self.namespace + ) def test_port_forwarding_delete(self): arglist = [ @@ -342,12 +375,11 @@ class TestDeleteFloatingIPPortForwarding(TestFloatingIPPortForwarding): result = self.cmd.take_action(parsed_args) - self.network.delete_floating_ip_port_forwarding.\ - assert_called_once_with( - self.floating_ip.id, - self._port_forwarding[0].id, - ignore_missing=False - ) + self.network.delete_floating_ip_port_forwarding.assert_called_once_with( # noqa: E501 + self.floating_ip.id, + self._port_forwarding[0].id, + ignore_missing=False, + ) self.assertIsNone(result) @@ -384,15 +416,17 @@ class TestDeleteFloatingIPPortForwarding(TestFloatingIPPortForwarding): ] verifylist = [ ('floating_ip', self.floating_ip.id), - ('port_forwarding_id', - [self._port_forwarding[0].id, 'unexist_port_forwarding_id']), + ( + 'port_forwarding_id', + [self._port_forwarding[0].id, 'unexist_port_forwarding_id'], + ), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) delete_mock_result = [None, exceptions.CommandError] - self.network.delete_floating_ip_port_forwarding = ( - mock.MagicMock(side_effect=delete_mock_result) + self.network.delete_floating_ip_port_forwarding = mock.MagicMock( + side_effect=delete_mock_result ) try: @@ -400,26 +434,22 @@ class TestDeleteFloatingIPPortForwarding(TestFloatingIPPortForwarding): self.fail('CommandError should be raised.') except exceptions.CommandError as e: self.assertEqual( - '1 of 2 Port forwarding failed to delete.', - str(e) + '1 of 2 Port forwarding failed to delete.', str(e) ) - self.network.delete_floating_ip_port_forwarding.\ - assert_any_call( - self.floating_ip.id, - 'unexist_port_forwarding_id', - ignore_missing=False - ) - self.network.delete_floating_ip_port_forwarding.\ - assert_any_call( - self.floating_ip.id, - self._port_forwarding[0].id, - ignore_missing=False - ) + self.network.delete_floating_ip_port_forwarding.assert_any_call( + self.floating_ip.id, + 'unexist_port_forwarding_id', + ignore_missing=False, + ) + self.network.delete_floating_ip_port_forwarding.assert_any_call( + self.floating_ip.id, + self._port_forwarding[0].id, + ignore_missing=False, + ) class TestListFloatingIPPortForwarding(TestFloatingIPPortForwarding): - columns = ( 'ID', 'Internal Port ID', @@ -436,68 +466,67 @@ class TestListFloatingIPPortForwarding(TestFloatingIPPortForwarding): super(TestListFloatingIPPortForwarding, self).setUp() self.port_forwardings = ( network_fakes.FakeFloatingIPPortForwarding.create_port_forwardings( - count=3, attrs={ + count=3, + attrs={ 'internal_port_id': self.port.id, 'floatingip_id': self.floating_ip.id, - } + }, ) ) self.data = [] for port_forwarding in self.port_forwardings: - self.data.append(( - port_forwarding.id, - port_forwarding.internal_port_id, - port_forwarding.internal_ip_address, - port_forwarding.internal_port, - port_forwarding.internal_port_range, - port_forwarding.external_port, - port_forwarding.external_port_range, - port_forwarding.protocol, - port_forwarding.description, - )) + self.data.append( + ( + port_forwarding.id, + port_forwarding.internal_port_id, + port_forwarding.internal_ip_address, + port_forwarding.internal_port, + port_forwarding.internal_port_range, + port_forwarding.external_port, + port_forwarding.external_port_range, + port_forwarding.protocol, + port_forwarding.description, + ) + ) self.network.floating_ip_port_forwardings = mock.Mock( return_value=self.port_forwardings ) - self.network.find_ip = mock.Mock( - return_value=self.floating_ip - ) + self.network.find_ip = mock.Mock(return_value=self.floating_ip) # Get the command object to test self.cmd = floating_ip_port_forwarding.ListFloatingIPPortForwarding( - self.app, - self.namespace + self.app, self.namespace ) def test_port_forwarding_list(self): - arglist = [ - self.floating_ip.id - ] - verifylist = [ - ('floating_ip', self.floating_ip.id) - ] + arglist = [self.floating_ip.id] + verifylist = [('floating_ip', self.floating_ip.id)] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) self.network.floating_ip_port_forwardings.assert_called_once_with( - self.floating_ip, - **{} + self.floating_ip, **{} ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, list(data)) def test_port_forwarding_list_all_options(self): arglist = [ - '--port', self.port_forwardings[0].internal_port_id, + '--port', + self.port_forwardings[0].internal_port_id, '--external-protocol-port', str(self.port_forwardings[0].external_port), - '--protocol', self.port_forwardings[0].protocol, + '--protocol', + self.port_forwardings[0].protocol, self.port_forwardings[0].floatingip_id, ] verifylist = [ ('port', self.port_forwardings[0].internal_port_id), - ('external_protocol_port', - str(self.port_forwardings[0].external_port)), + ( + 'external_protocol_port', + str(self.port_forwardings[0].external_port), + ), ('protocol', self.port_forwardings[0].protocol), ('floating_ip', self.port_forwardings[0].floatingip_id), ] @@ -511,39 +540,32 @@ class TestListFloatingIPPortForwarding(TestFloatingIPPortForwarding): } self.network.floating_ip_port_forwardings.assert_called_once_with( - self.floating_ip, - **query + self.floating_ip, **query ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, list(data)) class TestSetFloatingIPPortForwarding(TestFloatingIPPortForwarding): - # The Port Forwarding to set. def setUp(self): super(TestSetFloatingIPPortForwarding, self).setUp() - self._port_forwarding = ( - network_fakes.FakeFloatingIPPortForwarding. - create_one_port_forwarding( - attrs={ - 'floatingip_id': self.floating_ip.id, - } - ) + self._port_forwarding = network_fakes.FakeFloatingIPPortForwarding.create_one_port_forwarding( # noqa: E501 + attrs={ + 'floatingip_id': self.floating_ip.id, + } ) self.network.update_floating_ip_port_forwarding = mock.Mock( return_value=None ) self.network.find_floating_ip_port_forwarding = mock.Mock( - return_value=self._port_forwarding) - self.network.find_ip = mock.Mock( - return_value=self.floating_ip + return_value=self._port_forwarding ) + self.network.find_ip = mock.Mock(return_value=self.floating_ip) # Get the command object to test self.cmd = floating_ip_port_forwarding.SetFloatingIPPortForwarding( - self.app, - self.namespace + self.app, self.namespace ) def test_set_nothing(self): @@ -569,12 +591,18 @@ class TestSetFloatingIPPortForwarding(TestFloatingIPPortForwarding): def test_set_all_thing(self): arglist_single = [ - '--port', self.port.id, - '--internal-ip-address', 'new_internal_ip_address', - '--internal-protocol-port', '100', - '--external-protocol-port', '200', - '--protocol', 'tcp', - '--description', 'some description', + '--port', + self.port.id, + '--internal-ip-address', + 'new_internal_ip_address', + '--internal-protocol-port', + '100', + '--external-protocol-port', + '200', + '--protocol', + 'tcp', + '--description', + 'some description', self._port_forwarding.floatingip_id, self._port_forwarding.id, ] @@ -602,8 +630,11 @@ class TestSetFloatingIPPortForwarding(TestFloatingIPPortForwarding): 'protocol': 'tcp', 'description': 'some description', } - attrs_range = dict(attrs_single, internal_port_range='100:110', - external_port_range='200:210') + attrs_range = dict( + attrs_single, + internal_port_range='100:110', + external_port_range='200:210', + ) attrs_range.pop('internal_port') attrs_range.pop('external_port') @@ -624,7 +655,6 @@ class TestSetFloatingIPPortForwarding(TestFloatingIPPortForwarding): class TestShowFloatingIPPortForwarding(TestFloatingIPPortForwarding): - # The port forwarding to show. columns = ( 'description', @@ -641,13 +671,10 @@ class TestShowFloatingIPPortForwarding(TestFloatingIPPortForwarding): def setUp(self): super(TestShowFloatingIPPortForwarding, self).setUp() - self._port_forwarding = ( - network_fakes.FakeFloatingIPPortForwarding. - create_one_port_forwarding( - attrs={ - 'floatingip_id': self.floating_ip.id, - } - ) + self._port_forwarding = network_fakes.FakeFloatingIPPortForwarding.create_one_port_forwarding( # noqa: E501 + attrs={ + 'floatingip_id': self.floating_ip.id, + } ) self.data = ( self._port_forwarding.description, @@ -664,13 +691,10 @@ class TestShowFloatingIPPortForwarding(TestFloatingIPPortForwarding): self.network.find_floating_ip_port_forwarding = mock.Mock( return_value=self._port_forwarding ) - self.network.find_ip = mock.Mock( - return_value=self.floating_ip - ) + self.network.find_ip = mock.Mock(return_value=self.floating_ip) # Get the command object to test self.cmd = floating_ip_port_forwarding.ShowFloatingIPPortForwarding( - self.app, - self.namespace + self.app, self.namespace ) def test_show_no_options(self): @@ -678,8 +702,13 @@ class TestShowFloatingIPPortForwarding(TestFloatingIPPortForwarding): verifylist = [] # Missing required args should bail here - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_show_default_options(self): arglist = [ @@ -695,9 +724,7 @@ class TestShowFloatingIPPortForwarding(TestFloatingIPPortForwarding): columns, data = self.cmd.take_action(parsed_args) self.network.find_floating_ip_port_forwarding.assert_called_once_with( - self.floating_ip, - self._port_forwarding.id, - ignore_missing=False + self.floating_ip, self._port_forwarding.id, ignore_missing=False ) self.assertEqual(self.columns, columns) diff --git a/openstackclient/tests/unit/network/v2/test_ip_availability.py b/openstackclient/tests/unit/network/v2/test_ip_availability.py index fbe3b1ab5b..50ead91325 100644 --- a/openstackclient/tests/unit/network/v2/test_ip_availability.py +++ b/openstackclient/tests/unit/network/v2/test_ip_availability.py @@ -22,7 +22,6 @@ from openstackclient.tests.unit import utils as tests_utils class TestIPAvailability(network_fakes.TestNetworkV2): - def setUp(self): super(TestIPAvailability, self).setUp() @@ -37,7 +36,6 @@ class TestIPAvailability(network_fakes.TestNetworkV2): class TestListIPAvailability(TestIPAvailability): - _ip_availability = network_fakes.create_ip_availability(count=3) columns = ( 'Network ID', @@ -47,20 +45,22 @@ class TestListIPAvailability(TestIPAvailability): ) data = [] for net in _ip_availability: - data.append(( - net.network_id, - net.network_name, - net.total_ips, - net.used_ips, - )) + data.append( + ( + net.network_id, + net.network_name, + net.total_ips, + net.used_ips, + ) + ) def setUp(self): super(TestListIPAvailability, self).setUp() - self.cmd = ip_availability.ListIPAvailability( - self.app, self.namespace) + self.cmd = ip_availability.ListIPAvailability(self.app, self.namespace) self.network.network_ip_availabilities = mock.Mock( - return_value=self._ip_availability) + return_value=self._ip_availability + ) def test_list_no_options(self): arglist = [] @@ -72,17 +72,17 @@ class TestListIPAvailability(TestIPAvailability): filters = {'ip_version': 4} self.network.network_ip_availabilities.assert_called_once_with( - **filters) + **filters + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) def test_list_ip_version(self): arglist = [ - '--ip-version', str(4), - ] - verifylist = [ - ('ip_version', 4) + '--ip-version', + str(4), ] + verifylist = [('ip_version', 4)] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -90,35 +90,32 @@ class TestListIPAvailability(TestIPAvailability): filters = {'ip_version': 4} self.network.network_ip_availabilities.assert_called_once_with( - **filters) + **filters + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) def test_list_project(self): - arglist = [ - '--project', self.project.name - ] - verifylist = [ - ('project', self.project.name) - ] + arglist = ['--project', self.project.name] + verifylist = [('project', self.project.name)] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - filters = {'project_id': self.project.id, - 'ip_version': 4} + filters = {'project_id': self.project.id, 'ip_version': 4} self.network.network_ip_availabilities.assert_called_once_with( - **filters) + **filters + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) class TestShowIPAvailability(TestIPAvailability): - _network = network_fakes.create_one_network() _ip_availability = network_fakes.create_one_ip_availability( - attrs={'network_id': _network.id}) + attrs={'network_id': _network.id} + ) columns = ( 'network_id', @@ -132,8 +129,7 @@ class TestShowIPAvailability(TestIPAvailability): _ip_availability.network_id, _ip_availability.network_name, _ip_availability.project_id, - format_columns.ListDictColumn( - _ip_availability.subnet_ip_availability), + format_columns.ListDictColumn(_ip_availability.subnet_ip_availability), _ip_availability.total_ips, _ip_availability.used_ips, ) @@ -142,35 +138,37 @@ class TestShowIPAvailability(TestIPAvailability): super(TestShowIPAvailability, self).setUp() self.network.find_network_ip_availability = mock.Mock( - return_value=self._ip_availability) - self.network.find_network = mock.Mock( - return_value=self._network) + return_value=self._ip_availability + ) + self.network.find_network = mock.Mock(return_value=self._network) # Get the command object to test - self.cmd = ip_availability.ShowIPAvailability( - self.app, self.namespace) + self.cmd = ip_availability.ShowIPAvailability(self.app, self.namespace) def test_show_no_option(self): arglist = [] verifylist = [] - self.assertRaises(tests_utils.ParserException, - self.check_parser, self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_show_all_options(self): arglist = [ self._ip_availability.network_name, ] - verifylist = [ - ('network', self._ip_availability.network_name) - ] + verifylist = [('network', self._ip_availability.network_name)] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) self.network.find_network_ip_availability.assert_called_once_with( - self._ip_availability.network_id, - ignore_missing=False) + self._ip_availability.network_id, ignore_missing=False + ) self.network.find_network.assert_called_once_with( - self._ip_availability.network_name, - ignore_missing=False) + self._ip_availability.network_name, ignore_missing=False + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, data) diff --git a/openstackclient/tests/unit/network/v2/test_l3_conntrack_helper.py b/openstackclient/tests/unit/network/v2/test_l3_conntrack_helper.py index b3d026a7ef..df1d8854b0 100644 --- a/openstackclient/tests/unit/network/v2/test_l3_conntrack_helper.py +++ b/openstackclient/tests/unit/network/v2/test_l3_conntrack_helper.py @@ -21,7 +21,6 @@ from openstackclient.tests.unit import utils as tests_utils class TestConntrackHelper(network_fakes.TestNetworkV2): - def setUp(self): super(TestConntrackHelper, self).setUp() # Get a shortcut to the network client @@ -31,48 +30,53 @@ class TestConntrackHelper(network_fakes.TestNetworkV2): class TestCreateL3ConntrackHelper(TestConntrackHelper): - def setUp(self): super(TestCreateL3ConntrackHelper, self).setUp() attrs = {'router_id': self.router.id} self.ct_helper = ( network_fakes.FakeL3ConntrackHelper.create_one_l3_conntrack_helper( - attrs)) - self.columns = ( - 'helper', - 'id', - 'port', - 'protocol', - 'router_id' + attrs + ) ) + self.columns = ('helper', 'id', 'port', 'protocol', 'router_id') self.data = ( self.ct_helper.helper, self.ct_helper.id, self.ct_helper.port, self.ct_helper.protocol, - self.ct_helper.router_id + self.ct_helper.router_id, ) self.network.create_conntrack_helper = mock.Mock( - return_value=self.ct_helper) + return_value=self.ct_helper + ) # Get the command object to test - self.cmd = l3_conntrack_helper.CreateConntrackHelper(self.app, - self.namespace) + self.cmd = l3_conntrack_helper.CreateConntrackHelper( + self.app, self.namespace + ) def test_create_no_options(self): arglist = [] verifylist = [] # Missing required args should bail here - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_create_default_options(self): arglist = [ - '--helper', 'tftp', - '--protocol', 'udp', - '--port', '69', + '--helper', + 'tftp', + '--protocol', + 'udp', + '--port', + '69', self.router.id, ] @@ -83,49 +87,50 @@ class TestCreateL3ConntrackHelper(TestConntrackHelper): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) self.network.create_conntrack_helper.assert_called_once_with( - self.router.id, - **{'helper': 'tftp', 'protocol': 'udp', - 'port': 69} + self.router.id, **{'helper': 'tftp', 'protocol': 'udp', 'port': 69} ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) def test_create_wrong_options(self): arglist = [ - '--protocol', 'udp', - '--port', '69', + '--protocol', + 'udp', + '--port', + '69', self.router.id, ] self.assertRaises( tests_utils.ParserException, self.check_parser, - self.cmd, arglist, None) + self.cmd, + arglist, + None, + ) class TestDeleteL3ConntrackHelper(TestConntrackHelper): - def setUp(self): super(TestDeleteL3ConntrackHelper, self).setUp() attrs = {'router_id': self.router.id} self.ct_helper = ( network_fakes.FakeL3ConntrackHelper.create_one_l3_conntrack_helper( - attrs)) - self.network.delete_conntrack_helper = mock.Mock( - return_value=None) + attrs + ) + ) + self.network.delete_conntrack_helper = mock.Mock(return_value=None) # Get the command object to test - self.cmd = l3_conntrack_helper.DeleteConntrackHelper(self.app, - self.namespace) + self.cmd = l3_conntrack_helper.DeleteConntrackHelper( + self.app, self.namespace + ) def test_delete(self): - arglist = [ - self.ct_helper.router_id, - self.ct_helper.id - ] + arglist = [self.ct_helper.router_id, self.ct_helper.id] verifylist = [ ('conntrack_helper_id', [self.ct_helper.id]), ('router', self.ct_helper.router_id), @@ -133,35 +138,34 @@ class TestDeleteL3ConntrackHelper(TestConntrackHelper): parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.network.delete_conntrack_helper.assert_called_once_with( - self.ct_helper.id, self.router.id, - ignore_missing=False) + self.ct_helper.id, self.router.id, ignore_missing=False + ) self.assertIsNone(result) def test_delete_error(self): - arglist = [ - self.router.id, - self.ct_helper.id - ] + arglist = [self.router.id, self.ct_helper.id] verifylist = [ ('conntrack_helper_id', [self.ct_helper.id]), ('router', self.router.id), ] self.network.delete_conntrack_helper.side_effect = Exception( - 'Error message') + 'Error message' + ) parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) class TestListL3ConntrackHelper(TestConntrackHelper): - def setUp(self): super(TestListL3ConntrackHelper, self).setUp() attrs = {'router_id': self.router.id} ct_helpers = ( network_fakes.FakeL3ConntrackHelper.create_l3_conntrack_helpers( - attrs, count=3)) + attrs, count=3 + ) + ) self.columns = ( 'ID', 'Router ID', @@ -171,24 +175,24 @@ class TestListL3ConntrackHelper(TestConntrackHelper): ) self.data = [] for ct_helper in ct_helpers: - self.data.append(( - ct_helper.id, - ct_helper.router_id, - ct_helper.helper, - ct_helper.protocol, - ct_helper.port, - )) - self.network.conntrack_helpers = mock.Mock( - return_value=ct_helpers) + self.data.append( + ( + ct_helper.id, + ct_helper.router_id, + ct_helper.helper, + ct_helper.protocol, + ct_helper.port, + ) + ) + self.network.conntrack_helpers = mock.Mock(return_value=ct_helpers) # Get the command object to test - self.cmd = l3_conntrack_helper.ListConntrackHelper(self.app, - self.namespace) + self.cmd = l3_conntrack_helper.ListConntrackHelper( + self.app, self.namespace + ) def test_conntrack_helpers_list(self): - arglist = [ - self.router.id - ] + arglist = [self.router.id] verifylist = [ ('router', self.router.id), ] @@ -196,8 +200,7 @@ class TestListL3ConntrackHelper(TestConntrackHelper): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.conntrack_helpers.assert_called_once_with( - self.router.id) + self.network.conntrack_helpers.assert_called_once_with(self.router.id) self.assertEqual(self.columns, columns) list_data = list(data) self.assertEqual(len(self.data), len(list_data)) @@ -206,18 +209,20 @@ class TestListL3ConntrackHelper(TestConntrackHelper): class TestSetL3ConntrackHelper(TestConntrackHelper): - def setUp(self): super(TestSetL3ConntrackHelper, self).setUp() attrs = {'router_id': self.router.id} self.ct_helper = ( network_fakes.FakeL3ConntrackHelper.create_one_l3_conntrack_helper( - attrs)) + attrs + ) + ) self.network.update_conntrack_helper = mock.Mock(return_value=None) # Get the command object to test - self.cmd = l3_conntrack_helper.SetConntrackHelper(self.app, - self.namespace) + self.cmd = l3_conntrack_helper.SetConntrackHelper( + self.app, self.namespace + ) def test_set_nothing(self): arglist = [ @@ -230,7 +235,7 @@ class TestSetL3ConntrackHelper(TestConntrackHelper): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - result = (self.cmd.take_action(parsed_args)) + result = self.cmd.take_action(parsed_args) self.network.update_conntrack_helper.assert_called_once_with( self.ct_helper.id, self.router.id @@ -241,7 +246,8 @@ class TestSetL3ConntrackHelper(TestConntrackHelper): arglist = [ self.router.id, self.ct_helper.id, - '--port', '124', + '--port', + '124', ] verifylist = [ ('router', self.router.id), @@ -250,7 +256,7 @@ class TestSetL3ConntrackHelper(TestConntrackHelper): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - result = (self.cmd.take_action(parsed_args)) + result = self.cmd.take_action(parsed_args) self.network.update_conntrack_helper.assert_called_once_with( self.ct_helper.id, self.router.id, port=124 @@ -259,42 +265,44 @@ class TestSetL3ConntrackHelper(TestConntrackHelper): class TestShowL3ConntrackHelper(TestConntrackHelper): - def setUp(self): super(TestShowL3ConntrackHelper, self).setUp() attrs = {'router_id': self.router.id} self.ct_helper = ( network_fakes.FakeL3ConntrackHelper.create_one_l3_conntrack_helper( - attrs)) - self.columns = ( - 'helper', - 'id', - 'port', - 'protocol', - 'router_id' + attrs + ) ) + self.columns = ('helper', 'id', 'port', 'protocol', 'router_id') self.data = ( self.ct_helper.helper, self.ct_helper.id, self.ct_helper.port, self.ct_helper.protocol, - self.ct_helper.router_id + self.ct_helper.router_id, ) self.network.get_conntrack_helper = mock.Mock( - return_value=self.ct_helper) + return_value=self.ct_helper + ) # Get the command object to test - self.cmd = l3_conntrack_helper.ShowConntrackHelper(self.app, - self.namespace) + self.cmd = l3_conntrack_helper.ShowConntrackHelper( + self.app, self.namespace + ) def test_show_no_options(self): arglist = [] verifylist = [] # Missing required args should bail here - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_show_default_options(self): arglist = [ @@ -307,7 +315,7 @@ class TestShowL3ConntrackHelper(TestConntrackHelper): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) self.network.get_conntrack_helper.assert_called_once_with( self.ct_helper.id, self.router.id diff --git a/openstackclient/tests/unit/network/v2/test_local_ip.py b/openstackclient/tests/unit/network/v2/test_local_ip.py index be23365e08..d5a57545d2 100644 --- a/openstackclient/tests/unit/network/v2/test_local_ip.py +++ b/openstackclient/tests/unit/network/v2/test_local_ip.py @@ -25,7 +25,6 @@ from openstackclient.tests.unit import utils as tests_utils class TestLocalIP(network_fakes.TestNetworkV2): - def setUp(self): super().setUp() @@ -44,9 +43,12 @@ class TestCreateLocalIP(TestLocalIP): port = network_fakes.create_one_port() # The new local ip created. new_local_ip = network_fakes.create_one_local_ip( - attrs={'project_id': project.id, - 'network_id': local_ip_network.id, - 'local_port_id': port.id}) + attrs={ + 'project_id': project.id, + 'network_id': local_ip_network.id, + 'local_port_id': port.id, + } + ) columns = ( 'created_at', @@ -78,11 +80,12 @@ class TestCreateLocalIP(TestLocalIP): def setUp(self): super().setUp() self.network.create_local_ip = mock.Mock( - return_value=self.new_local_ip) + return_value=self.new_local_ip + ) self.network.find_network = mock.Mock( - return_value=self.local_ip_network) - self.network.find_port = mock.Mock( - return_value=self.port) + return_value=self.local_ip_network + ) + self.network.find_port = mock.Mock(return_value=self.port) # Get the command object to test self.cmd = local_ip.CreateLocalIP(self.app, self.namespace) @@ -92,7 +95,7 @@ class TestCreateLocalIP(TestLocalIP): def test_create_no_options(self): parsed_args = self.check_parser(self.cmd, [], []) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) self.network.create_local_ip.assert_called_once_with(**{}) self.assertEqual(set(self.columns), set(columns)) @@ -100,13 +103,20 @@ class TestCreateLocalIP(TestLocalIP): def test_create_all_options(self): arglist = [ - '--project-domain', self.domain.name, - '--description', self.new_local_ip.description, - '--name', self.new_local_ip.name, - '--network', self.new_local_ip.network_id, - '--local-port', self.new_local_ip.local_port_id, - '--local-ip-address', '10.0.0.1', - '--ip-mode', self.new_local_ip.ip_mode, + '--project-domain', + self.domain.name, + '--description', + self.new_local_ip.description, + '--name', + self.new_local_ip.name, + '--network', + self.new_local_ip.network_id, + '--local-port', + self.new_local_ip.local_port_id, + '--local-ip-address', + '10.0.0.1', + '--ip-mode', + self.new_local_ip.ip_mode, ] verifylist = [ ('project_domain', self.domain.name), @@ -119,16 +129,18 @@ class TestCreateLocalIP(TestLocalIP): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) - self.network.create_local_ip.assert_called_once_with(**{ - 'name': self.new_local_ip.name, - 'description': self.new_local_ip.description, - 'network_id': self.new_local_ip.network_id, - 'local_port_id': self.new_local_ip.local_port_id, - 'local_ip_address': '10.0.0.1', - 'ip_mode': self.new_local_ip.ip_mode, - }) + self.network.create_local_ip.assert_called_once_with( + **{ + 'name': self.new_local_ip.name, + 'description': self.new_local_ip.description, + 'network_id': self.new_local_ip.network_id, + 'local_port_id': self.new_local_ip.local_port_id, + 'local_ip_address': '10.0.0.1', + 'ip_mode': self.new_local_ip.ip_mode, + } + ) self.assertEqual(set(self.columns), set(columns)) self.assertCountEqual(self.data, data) @@ -141,7 +153,8 @@ class TestDeleteLocalIP(TestLocalIP): super().setUp() self.network.delete_local_ip = mock.Mock(return_value=None) self.network.find_local_ip = network_fakes.get_local_ips( - local_ips=self._local_ips) + local_ips=self._local_ips + ) # Get the command object to test self.cmd = local_ip.DeleteLocalIP(self.app, self.namespace) @@ -158,9 +171,11 @@ class TestDeleteLocalIP(TestLocalIP): result = self.cmd.take_action(parsed_args) self.network.find_local_ip.assert_called_once_with( - self._local_ips[0].name, ignore_missing=False) + self._local_ips[0].name, ignore_missing=False + ) self.network.delete_local_ip.assert_called_once_with( - self._local_ips[0]) + self._local_ips[0] + ) self.assertIsNone(result) def test_multi_local_ips_delete(self): @@ -187,15 +202,12 @@ class TestDeleteLocalIP(TestLocalIP): 'unexist_local_ip', ] verifylist = [ - ('local_ip', - [self._local_ips[0].name, 'unexist_local_ip']), + ('local_ip', [self._local_ips[0].name, 'unexist_local_ip']), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) find_mock_result = [self._local_ips[0], exceptions.CommandError] - self.network.find_local_ip = ( - mock.Mock(side_effect=find_mock_result) - ) + self.network.find_local_ip = mock.Mock(side_effect=find_mock_result) try: self.cmd.take_action(parsed_args) @@ -204,9 +216,11 @@ class TestDeleteLocalIP(TestLocalIP): self.assertEqual('1 of 2 local IPs failed to delete.', str(e)) self.network.find_local_ip.assert_any_call( - self._local_ips[0].name, ignore_missing=False) + self._local_ips[0].name, ignore_missing=False + ) self.network.find_local_ip.assert_any_call( - 'unexist_local_ip', ignore_missing=False) + 'unexist_local_ip', ignore_missing=False + ) self.network.delete_local_ip.assert_called_once_with( self._local_ips[0] ) @@ -214,11 +228,8 @@ class TestDeleteLocalIP(TestLocalIP): class TestListLocalIP(TestLocalIP): # The local ip to list up. - local_ips = ( - network_fakes.create_local_ips(count=3)) - fake_network = network_fakes.create_one_network( - {'id': 'fake_network_id'} - ) + local_ips = network_fakes.create_local_ips(count=3) + fake_network = network_fakes.create_one_network({'id': 'fake_network_id'}) columns = ( 'ID', @@ -232,24 +243,23 @@ class TestListLocalIP(TestLocalIP): ) data = [] for lip in local_ips: - data.append(( - lip.id, - lip.name, - lip.description, - lip.project_id, - lip.local_port_id, - lip.network_id, - lip.local_ip_address, - lip.ip_mode, - )) + data.append( + ( + lip.id, + lip.name, + lip.description, + lip.project_id, + lip.local_port_id, + lip.network_id, + lip.local_ip_address, + lip.ip_mode, + ) + ) def setUp(self): super().setUp() - self.network.local_ips = mock.Mock( - return_value=self.local_ips) - self.network.find_network = mock.Mock( - return_value=self.fake_network - ) + self.network.local_ips = mock.Mock(return_value=self.local_ips) + self.network.find_network = mock.Mock(return_value=self.fake_network) # Get the command object to test self.cmd = local_ip.ListLocalIP(self.app, self.namespace) @@ -267,7 +277,8 @@ class TestListLocalIP(TestLocalIP): def test_local_ip_list_name(self): arglist = [ - '--name', self.local_ips[0].name, + '--name', + self.local_ips[0].name, ] verifylist = [ ('name', self.local_ips[0].name), @@ -276,7 +287,8 @@ class TestListLocalIP(TestLocalIP): columns, data = self.cmd.take_action(parsed_args) self.network.local_ips.assert_called_once_with( - **{'name': self.local_ips[0].name}) + **{'name': self.local_ips[0].name} + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) @@ -284,7 +296,8 @@ class TestListLocalIP(TestLocalIP): project = identity_fakes_v3.FakeProject.create_one_project() self.projects_mock.get.return_value = project arglist = [ - '--project', project.id, + '--project', + project.id, ] verifylist = [ ('project', project.id), @@ -293,7 +306,8 @@ class TestListLocalIP(TestLocalIP): columns, data = self.cmd.take_action(parsed_args) self.network.local_ips.assert_called_once_with( - **{'project_id': project.id}) + **{'project_id': project.id} + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) @@ -301,8 +315,10 @@ class TestListLocalIP(TestLocalIP): project = identity_fakes_v3.FakeProject.create_one_project() self.projects_mock.get.return_value = project arglist = [ - '--project', project.id, - '--project-domain', project.domain_id, + '--project', + project.id, + '--project-domain', + project.domain_id, ] verifylist = [ ('project', project.id), @@ -318,7 +334,8 @@ class TestListLocalIP(TestLocalIP): def test_local_ip_list_network(self): arglist = [ - '--network', 'fake_network_id', + '--network', + 'fake_network_id', ] verifylist = [ ('network', 'fake_network_id'), @@ -327,16 +344,19 @@ class TestListLocalIP(TestLocalIP): columns, data = self.cmd.take_action(parsed_args) - self.network.local_ips.assert_called_once_with(**{ - 'network_id': 'fake_network_id', - }) + self.network.local_ips.assert_called_once_with( + **{ + 'network_id': 'fake_network_id', + } + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, list(data)) def test_local_ip_list_local_ip_address(self): arglist = [ - '--local-ip-address', self.local_ips[0].local_ip_address, + '--local-ip-address', + self.local_ips[0].local_ip_address, ] verifylist = [ ('local_ip_address', self.local_ips[0].local_ip_address), @@ -345,15 +365,18 @@ class TestListLocalIP(TestLocalIP): columns, data = self.cmd.take_action(parsed_args) - self.network.local_ips.assert_called_once_with(**{ - 'local_ip_address': self.local_ips[0].local_ip_address, - }) + self.network.local_ips.assert_called_once_with( + **{ + 'local_ip_address': self.local_ips[0].local_ip_address, + } + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, list(data)) def test_local_ip_list_ip_mode(self): arglist = [ - '--ip-mode', self.local_ips[0].ip_mode, + '--ip-mode', + self.local_ips[0].ip_mode, ] verifylist = [ ('ip_mode', self.local_ips[0].ip_mode), @@ -362,9 +385,11 @@ class TestListLocalIP(TestLocalIP): columns, data = self.cmd.take_action(parsed_args) - self.network.local_ips.assert_called_once_with(**{ - 'ip_mode': self.local_ips[0].ip_mode, - }) + self.network.local_ips.assert_called_once_with( + **{ + 'ip_mode': self.local_ips[0].ip_mode, + } + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, list(data)) @@ -376,14 +401,15 @@ class TestSetLocalIP(TestLocalIP): def setUp(self): super().setUp() self.network.update_local_ip = mock.Mock(return_value=None) - self.network.find_local_ip = mock.Mock( - return_value=self._local_ip) + self.network.find_local_ip = mock.Mock(return_value=self._local_ip) # Get the command object to test self.cmd = local_ip.SetLocalIP(self.app, self.namespace) def test_set_nothing(self): - arglist = [self._local_ip.name, ] + arglist = [ + self._local_ip.name, + ] verifylist = [ ('local_ip', self._local_ip.name), ] @@ -396,8 +422,10 @@ class TestSetLocalIP(TestLocalIP): def test_set_name_and_description(self): arglist = [ - '--name', 'new_local_ip_name', - '--description', 'new_local_ip_description', + '--name', + 'new_local_ip_name', + '--description', + 'new_local_ip_description', self._local_ip.name, ] verifylist = [ @@ -413,7 +441,8 @@ class TestSetLocalIP(TestLocalIP): 'description': 'new_local_ip_description', } self.network.update_local_ip.assert_called_with( - self._local_ip, **attrs) + self._local_ip, **attrs + ) self.assertIsNone(result) @@ -449,8 +478,7 @@ class TestShowLocalIP(TestLocalIP): def setUp(self): super().setUp() - self.network.find_local_ip = mock.Mock( - return_value=self._local_ip) + self.network.find_local_ip = mock.Mock(return_value=self._local_ip) # Get the command object to test self.cmd = local_ip.ShowLocalIP(self.app, self.namespace) @@ -460,8 +488,13 @@ class TestShowLocalIP(TestLocalIP): verifylist = [] # Missing required args should bail here - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_show_all_options(self): arglist = [ @@ -475,6 +508,7 @@ class TestShowLocalIP(TestLocalIP): columns, data = self.cmd.take_action(parsed_args) self.network.find_local_ip.assert_called_once_with( - self._local_ip.name, ignore_missing=False) + self._local_ip.name, ignore_missing=False + ) self.assertEqual(set(self.columns), set(columns)) self.assertCountEqual(self.data, list(data)) diff --git a/openstackclient/tests/unit/network/v2/test_local_ip_association.py b/openstackclient/tests/unit/network/v2/test_local_ip_association.py index 0e45374122..ab7341d2e7 100644 --- a/openstackclient/tests/unit/network/v2/test_local_ip_association.py +++ b/openstackclient/tests/unit/network/v2/test_local_ip_association.py @@ -24,7 +24,6 @@ from openstackclient.tests.unit.network.v2 import fakes as network_fakes class TestLocalIPAssociation(network_fakes.TestNetworkV2): - def setUp(self): super().setUp() self.network = self.app.client_manager.network @@ -35,7 +34,6 @@ class TestLocalIPAssociation(network_fakes.TestNetworkV2): class TestCreateLocalIPAssociation(TestLocalIPAssociation): - def setUp(self): super().setUp() self.new_local_ip_association = ( @@ -47,15 +45,15 @@ class TestCreateLocalIPAssociation(TestLocalIPAssociation): ) ) self.network.create_local_ip_association = mock.Mock( - return_value=self.new_local_ip_association) - - self.network.find_local_ip = mock.Mock( - return_value=self.local_ip + return_value=self.new_local_ip_association ) + self.network.find_local_ip = mock.Mock(return_value=self.local_ip) + # Get the command object to test self.cmd = local_ip_association.CreateLocalIPAssociation( - self.app, self.namespace) + self.app, self.namespace + ) self.columns = ( 'local_ip_address', @@ -83,13 +81,12 @@ class TestCreateLocalIPAssociation(TestLocalIPAssociation): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.create_local_ip_association.\ - assert_called_once_with( - self.new_local_ip_association.local_ip_id, - **{ - 'fixed_port_id': - self.new_local_ip_association.fixed_port_id, - }) + self.network.create_local_ip_association.assert_called_once_with( + self.new_local_ip_association.local_ip_id, + **{ + 'fixed_port_id': self.new_local_ip_association.fixed_port_id, + } + ) self.assertEqual(set(self.columns), set(columns)) self.assertEqual(set(self.data), set(data)) @@ -97,7 +94,8 @@ class TestCreateLocalIPAssociation(TestLocalIPAssociation): arglist = [ self.new_local_ip_association.local_ip_id, self.new_local_ip_association.fixed_port_id, - '--fixed-ip', self.new_local_ip_association.fixed_ip, + '--fixed-ip', + self.new_local_ip_association.fixed_ip, ] verifylist = [ ('local_ip', self.new_local_ip_association.local_ip_id), @@ -107,40 +105,35 @@ class TestCreateLocalIPAssociation(TestLocalIPAssociation): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.create_local_ip_association.\ - assert_called_once_with( - self.new_local_ip_association.local_ip_id, - **{ - 'fixed_port_id': - self.new_local_ip_association.fixed_port_id, - 'fixed_ip': - self.new_local_ip_association.fixed_ip, - }) + self.network.create_local_ip_association.assert_called_once_with( + self.new_local_ip_association.local_ip_id, + **{ + 'fixed_port_id': self.new_local_ip_association.fixed_port_id, + 'fixed_ip': self.new_local_ip_association.fixed_ip, + } + ) self.assertEqual(set(self.columns), set(columns)) self.assertEqual(set(self.data), set(data)) class TestDeleteLocalIPAssociation(TestLocalIPAssociation): - def setUp(self): super().setUp() self._local_ip_association = ( network_fakes.create_local_ip_associations( - count=2, attrs={ + count=2, + attrs={ 'local_ip_id': self.local_ip.id, - } + }, ) ) - self.network.delete_local_ip_association = mock.Mock( - return_value=None - ) + self.network.delete_local_ip_association = mock.Mock(return_value=None) - self.network.find_local_ip = mock.Mock( - return_value=self.local_ip - ) + self.network.find_local_ip = mock.Mock(return_value=self.local_ip) # Get the command object to test self.cmd = local_ip_association.DeleteLocalIPAssociation( - self.app, self.namespace) + self.app, self.namespace + ) def test_local_ip_association_delete(self): arglist = [ @@ -156,12 +149,11 @@ class TestDeleteLocalIPAssociation(TestLocalIPAssociation): result = self.cmd.take_action(parsed_args) - self.network.delete_local_ip_association.\ - assert_called_once_with( - self.local_ip.id, - self._local_ip_association[0].fixed_port_id, - ignore_missing=False - ) + self.network.delete_local_ip_association.assert_called_once_with( + self.local_ip.id, + self._local_ip_association[0].fixed_port_id, + ignore_missing=False, + ) self.assertIsNone(result) @@ -185,8 +177,9 @@ class TestDeleteLocalIPAssociation(TestLocalIPAssociation): calls = [] for a in self._local_ip_association: - calls.append(call(a.local_ip_id, a.fixed_port_id, - ignore_missing=False)) + calls.append( + call(a.local_ip_id, a.fixed_port_id, ignore_missing=False) + ) self.network.delete_local_ip_association.assert_has_calls(calls) self.assertIsNone(result) @@ -199,16 +192,20 @@ class TestDeleteLocalIPAssociation(TestLocalIPAssociation): ] verifylist = [ ('local_ip', self.local_ip.id), - ('fixed_port_id', - [self._local_ip_association[0].fixed_port_id, - 'unexist_fixed_port_id']), + ( + 'fixed_port_id', + [ + self._local_ip_association[0].fixed_port_id, + 'unexist_fixed_port_id', + ], + ), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) delete_mock_result = [None, exceptions.CommandError] - self.network.delete_local_ip_association = ( - mock.MagicMock(side_effect=delete_mock_result) + self.network.delete_local_ip_association = mock.MagicMock( + side_effect=delete_mock_result ) try: @@ -216,92 +213,82 @@ class TestDeleteLocalIPAssociation(TestLocalIPAssociation): self.fail('CommandError should be raised.') except exceptions.CommandError as e: self.assertEqual( - '1 of 2 Local IP Associations failed to delete.', - str(e) + '1 of 2 Local IP Associations failed to delete.', str(e) ) - self.network.delete_local_ip_association.\ - assert_any_call( - self.local_ip.id, - 'unexist_fixed_port_id', - ignore_missing=False - ) - self.network.delete_local_ip_association.\ - assert_any_call( - self.local_ip.id, - self._local_ip_association[0].fixed_port_id, - ignore_missing=False - ) + self.network.delete_local_ip_association.assert_any_call( + self.local_ip.id, 'unexist_fixed_port_id', ignore_missing=False + ) + self.network.delete_local_ip_association.assert_any_call( + self.local_ip.id, + self._local_ip_association[0].fixed_port_id, + ignore_missing=False, + ) class TestListLocalIPAssociation(TestLocalIPAssociation): - columns = ( 'Local IP ID', 'Local IP Address', 'Fixed port ID', 'Fixed IP', - 'Host' + 'Host', ) def setUp(self): super().setUp() self.local_ip_associations = ( network_fakes.create_local_ip_associations( - count=3, attrs={ + count=3, + attrs={ 'local_ip_id': self.local_ip.id, 'fixed_port_id': self.fixed_port.id, - } + }, ) ) self.data = [] for lip_assoc in self.local_ip_associations: - self.data.append(( - lip_assoc.local_ip_id, - lip_assoc.local_ip_address, - lip_assoc.fixed_port_id, - lip_assoc.fixed_ip, - lip_assoc.host, - )) + self.data.append( + ( + lip_assoc.local_ip_id, + lip_assoc.local_ip_address, + lip_assoc.fixed_port_id, + lip_assoc.fixed_ip, + lip_assoc.host, + ) + ) self.network.local_ip_associations = mock.Mock( return_value=self.local_ip_associations ) - self.network.find_local_ip = mock.Mock( - return_value=self.local_ip - ) - self.network.find_port = mock.Mock( - return_value=self.fixed_port - ) + self.network.find_local_ip = mock.Mock(return_value=self.local_ip) + self.network.find_port = mock.Mock(return_value=self.fixed_port) # Get the command object to test self.cmd = local_ip_association.ListLocalIPAssociation( - self.app, - self.namespace + self.app, self.namespace ) def test_local_ip_association_list(self): - arglist = [ - self.local_ip.id - ] - verifylist = [ - ('local_ip', self.local_ip.id) - ] + arglist = [self.local_ip.id] + verifylist = [('local_ip', self.local_ip.id)] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) self.network.local_ip_associations.assert_called_once_with( - self.local_ip, - **{} + self.local_ip, **{} ) self.assertEqual(set(self.columns), set(columns)) self.assertEqual(set(self.data), set(list(data))) def test_local_ip_association_list_all_options(self): arglist = [ - '--fixed-port', self.local_ip_associations[0].fixed_port_id, - '--fixed-ip', self.local_ip_associations[0].fixed_ip, - '--host', self.local_ip_associations[0].host, - self.local_ip_associations[0].local_ip_id + '--fixed-port', + self.local_ip_associations[0].fixed_port_id, + '--fixed-ip', + self.local_ip_associations[0].fixed_ip, + '--host', + self.local_ip_associations[0].host, + self.local_ip_associations[0].local_ip_id, ] verifylist = [ @@ -321,8 +308,7 @@ class TestListLocalIPAssociation(TestLocalIPAssociation): } self.network.local_ip_associations.assert_called_once_with( - self.local_ip, - **attrs + self.local_ip, **attrs ) self.assertEqual(set(self.columns), set(columns)) self.assertEqual(set(self.data), set(list(data))) diff --git a/openstackclient/tests/unit/network/v2/test_ndp_proxy.py b/openstackclient/tests/unit/network/v2/test_ndp_proxy.py index 48c5deb224..04a9eb61ce 100644 --- a/openstackclient/tests/unit/network/v2/test_ndp_proxy.py +++ b/openstackclient/tests/unit/network/v2/test_ndp_proxy.py @@ -23,7 +23,6 @@ from openstackclient.tests.unit import utils as tests_utils class TestNDPProxy(network_fakes.TestNetworkV2): - def setUp(self): super(TestNDPProxy, self).setUp() # Get a shortcut to the ProjectManager Mock @@ -33,7 +32,8 @@ class TestNDPProxy(network_fakes.TestNetworkV2): # Get a shortcut to the network client self.network = self.app.client_manager.network self.router = network_fakes.FakeRouter.create_one_router( - {'id': 'fake-router-id'}) + {'id': 'fake-router-id'} + ) self.network.find_router = mock.Mock(return_value=self.router) self.port = network_fakes.create_one_port() self.network.find_port = mock.Mock(return_value=self.port) @@ -43,9 +43,7 @@ class TestCreateNDPProxy(TestNDPProxy): def setUp(self): super(TestCreateNDPProxy, self).setUp() attrs = {'router_id': self.router.id, 'port_id': self.port.id} - self.ndp_proxy = ( - network_fakes.create_one_ndp_proxy( - attrs)) + self.ndp_proxy = network_fakes.create_one_ndp_proxy(attrs) self.columns = ( 'created_at', 'description', @@ -56,7 +54,8 @@ class TestCreateNDPProxy(TestNDPProxy): 'project_id', 'revision_number', 'router_id', - 'updated_at') + 'updated_at', + ) self.data = ( self.ndp_proxy.created_at, @@ -68,10 +67,9 @@ class TestCreateNDPProxy(TestNDPProxy): self.ndp_proxy.project_id, self.ndp_proxy.revision_number, self.ndp_proxy.router_id, - self.ndp_proxy.updated_at + self.ndp_proxy.updated_at, ) - self.network.create_ndp_proxy = mock.Mock( - return_value=self.ndp_proxy) + self.network.create_ndp_proxy = mock.Mock(return_value=self.ndp_proxy) # Get the command object to test self.cmd = ndp_proxy.CreateNDPProxy(self.app, self.namespace) @@ -81,16 +79,25 @@ class TestCreateNDPProxy(TestNDPProxy): verifylist = [] # Missing required args should bail here - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_create_all_options(self): arglist = [ self.ndp_proxy.router_id, - '--name', self.ndp_proxy.name, - '--port', self.ndp_proxy.port_id, - '--ip-address', self.ndp_proxy.ip_address, - '--description', self.ndp_proxy.description, + '--name', + self.ndp_proxy.name, + '--port', + self.ndp_proxy.port_id, + '--ip-address', + self.ndp_proxy.ip_address, + '--description', + self.ndp_proxy.description, ] verifylist = [ ('name', self.ndp_proxy.name), @@ -103,38 +110,33 @@ class TestCreateNDPProxy(TestNDPProxy): columns, data = self.cmd.take_action(parsed_args) self.network.create_ndp_proxy.assert_called_once_with( - **{'name': self.ndp_proxy.name, - 'router_id': self.ndp_proxy.router_id, - 'ip_address': self.ndp_proxy.ip_address, - 'port_id': self.ndp_proxy.port_id, - 'description': self.ndp_proxy.description}) + **{ + 'name': self.ndp_proxy.name, + 'router_id': self.ndp_proxy.router_id, + 'ip_address': self.ndp_proxy.ip_address, + 'port_id': self.ndp_proxy.port_id, + 'description': self.ndp_proxy.description, + } + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) class TestDeleteNDPProxy(TestNDPProxy): - def setUp(self): super(TestDeleteNDPProxy, self).setUp() attrs = {'router_id': self.router.id, 'port_id': self.port.id} - self.ndp_proxies = ( - network_fakes.create_ndp_proxies(attrs)) + self.ndp_proxies = network_fakes.create_ndp_proxies(attrs) self.ndp_proxy = self.ndp_proxies[0] - self.network.delete_ndp_proxy = mock.Mock( - return_value=None) - self.network.find_ndp_proxy = mock.Mock( - return_value=self.ndp_proxy) + self.network.delete_ndp_proxy = mock.Mock(return_value=None) + self.network.find_ndp_proxy = mock.Mock(return_value=self.ndp_proxy) # Get the command object to test self.cmd = ndp_proxy.DeleteNDPProxy(self.app, self.namespace) def test_delete(self): - arglist = [ - self.ndp_proxy.id - ] - verifylist = [ - ('ndp_proxy', [self.ndp_proxy.id]) - ] + arglist = [self.ndp_proxy.id] + verifylist = [('ndp_proxy', [self.ndp_proxy.id])] parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.network.delete_ndp_proxy.assert_called_once_with(self.ndp_proxy) @@ -144,15 +146,12 @@ class TestDeleteNDPProxy(TestNDPProxy): arglist = [ self.ndp_proxy.id, ] - verifylist = [ - ('ndp_proxy', [self.ndp_proxy.id]) - ] - self.network.delete_ndp_proxy.side_effect = Exception( - 'Error message') + verifylist = [('ndp_proxy', [self.ndp_proxy.id])] + self.network.delete_ndp_proxy.side_effect = Exception('Error message') parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, parsed_args) + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_multi_ndp_proxies_delete(self): arglist = [] @@ -170,17 +169,16 @@ class TestDeleteNDPProxy(TestNDPProxy): result = self.cmd.take_action(parsed_args) self.network.delete_ndp_proxy.assert_has_calls( - [call(self.ndp_proxy), call(self.ndp_proxy)]) + [call(self.ndp_proxy), call(self.ndp_proxy)] + ) self.assertIsNone(result) class TestListNDPProxy(TestNDPProxy): - def setUp(self): super(TestListNDPProxy, self).setUp() attrs = {'router_id': self.router.id, 'port_id': self.port.id} - ndp_proxies = ( - network_fakes.create_ndp_proxies(attrs, count=3)) + ndp_proxies = network_fakes.create_ndp_proxies(attrs, count=3) self.columns = ( 'ID', 'Name', @@ -190,16 +188,17 @@ class TestListNDPProxy(TestNDPProxy): ) self.data = [] for np in ndp_proxies: - self.data.append(( - np.id, - np.name, - np.router_id, - np.ip_address, - np.project_id, - )) + self.data.append( + ( + np.id, + np.name, + np.router_id, + np.ip_address, + np.project_id, + ) + ) - self.network.ndp_proxies = mock.Mock( - return_value=ndp_proxies) + self.network.ndp_proxies = mock.Mock(return_value=ndp_proxies) # Get the command object to test self.cmd = ndp_proxy.ListNDPProxy(self.app, self.namespace) @@ -220,73 +219,73 @@ class TestListNDPProxy(TestNDPProxy): def test_ndp_proxy_list_router(self): arglist = [ - '--router', 'fake-router-name', + '--router', + 'fake-router-name', ] - verifylist = [ - ('router', 'fake-router-name') - ] + verifylist = [('router', 'fake-router-name')] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.ndp_proxies.assert_called_once_with(**{ - 'router_id': 'fake-router-id'}) + self.network.ndp_proxies.assert_called_once_with( + **{'router_id': 'fake-router-id'} + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) def test_ndp_proxy_list_port(self): arglist = [ - '--port', self.port.id, + '--port', + self.port.id, ] - verifylist = [ - ('port', self.port.id) - ] + verifylist = [('port', self.port.id)] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.ndp_proxies.assert_called_once_with(**{ - 'port_id': self.port.id}) + self.network.ndp_proxies.assert_called_once_with( + **{'port_id': self.port.id} + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) def test_ndp_proxy_list_name(self): arglist = [ - '--name', 'fake-ndp-proxy-name', + '--name', + 'fake-ndp-proxy-name', ] - verifylist = [ - ('name', 'fake-ndp-proxy-name') - ] + verifylist = [('name', 'fake-ndp-proxy-name')] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.ndp_proxies.assert_called_once_with(**{ - 'name': 'fake-ndp-proxy-name'}) + self.network.ndp_proxies.assert_called_once_with( + **{'name': 'fake-ndp-proxy-name'} + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) def test_ndp_proxy_list_ip_address(self): arglist = [ - '--ip-address', '2001::1:2', + '--ip-address', + '2001::1:2', ] - verifylist = [ - ('ip_address', '2001::1:2') - ] + verifylist = [('ip_address', '2001::1:2')] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.ndp_proxies.assert_called_once_with(**{ - 'ip_address': '2001::1:2'}) + self.network.ndp_proxies.assert_called_once_with( + **{'ip_address': '2001::1:2'} + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) @@ -294,7 +293,8 @@ class TestListNDPProxy(TestNDPProxy): project = identity_fakes_v3.FakeProject.create_one_project() self.projects_mock.get.return_value = project arglist = [ - '--project', project.id, + '--project', + project.id, ] verifylist = [ ('project', project.id), @@ -303,7 +303,8 @@ class TestListNDPProxy(TestNDPProxy): columns, data = self.cmd.take_action(parsed_args) self.network.ndp_proxies.assert_called_once_with( - **{'project_id': project.id}) + **{'project_id': project.id} + ) self.assertEqual(self.columns, columns) self.assertItemsEqual(self.data, list(data)) @@ -311,8 +312,10 @@ class TestListNDPProxy(TestNDPProxy): project = identity_fakes_v3.FakeProject.create_one_project() self.projects_mock.get.return_value = project arglist = [ - '--project', project.id, - '--project-domain', project.domain_id, + '--project', + project.id, + '--project-domain', + project.domain_id, ] verifylist = [ ('project', project.id), @@ -328,15 +331,12 @@ class TestListNDPProxy(TestNDPProxy): class TestSetNDPProxy(TestNDPProxy): - def setUp(self): super(TestSetNDPProxy, self).setUp() attrs = {'router_id': self.router.id, 'port_id': self.port.id} - self.ndp_proxy = ( - network_fakes.create_one_ndp_proxy(attrs)) + self.ndp_proxy = network_fakes.create_one_ndp_proxy(attrs) self.network.update_ndp_proxy = mock.Mock(return_value=None) - self.network.find_ndp_proxy = mock.Mock( - return_value=self.ndp_proxy) + self.network.find_ndp_proxy = mock.Mock(return_value=self.ndp_proxy) # Get the command object to test self.cmd = ndp_proxy.SetNDPProxy(self.app, self.namespace) @@ -350,16 +350,16 @@ class TestSetNDPProxy(TestNDPProxy): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - result = (self.cmd.take_action(parsed_args)) + result = self.cmd.take_action(parsed_args) - self.network.update_ndp_proxy.assert_called_once_with( - self.ndp_proxy) + self.network.update_ndp_proxy.assert_called_once_with(self.ndp_proxy) self.assertIsNone(result) def test_set_name(self): arglist = [ self.ndp_proxy.id, - '--name', 'fake-name', + '--name', + 'fake-name', ] verifylist = [ ('ndp_proxy', self.ndp_proxy.id), @@ -367,16 +367,18 @@ class TestSetNDPProxy(TestNDPProxy): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - result = (self.cmd.take_action(parsed_args)) + result = self.cmd.take_action(parsed_args) self.network.update_ndp_proxy.assert_called_once_with( - self.ndp_proxy, name='fake-name') + self.ndp_proxy, name='fake-name' + ) self.assertIsNone(result) def test_set_description(self): arglist = [ self.ndp_proxy.id, - '--description', 'balala', + '--description', + 'balala', ] verifylist = [ ('ndp_proxy', self.ndp_proxy.id), @@ -384,20 +386,19 @@ class TestSetNDPProxy(TestNDPProxy): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - result = (self.cmd.take_action(parsed_args)) + result = self.cmd.take_action(parsed_args) self.network.update_ndp_proxy.assert_called_once_with( - self.ndp_proxy, description='balala') + self.ndp_proxy, description='balala' + ) self.assertIsNone(result) class TestShowNDPProxy(TestNDPProxy): - def setUp(self): super(TestShowNDPProxy, self).setUp() attrs = {'router_id': self.router.id, 'port_id': self.port.id} - self.ndp_proxy = ( - network_fakes.create_one_ndp_proxy(attrs)) + self.ndp_proxy = network_fakes.create_one_ndp_proxy(attrs) self.columns = ( 'created_at', @@ -409,7 +410,8 @@ class TestShowNDPProxy(TestNDPProxy): 'project_id', 'revision_number', 'router_id', - 'updated_at') + 'updated_at', + ) self.data = ( self.ndp_proxy.created_at, @@ -421,7 +423,7 @@ class TestShowNDPProxy(TestNDPProxy): self.ndp_proxy.project_id, self.ndp_proxy.revision_number, self.ndp_proxy.router_id, - self.ndp_proxy.updated_at + self.ndp_proxy.updated_at, ) self.network.get_ndp_proxy = mock.Mock(return_value=self.ndp_proxy) self.network.find_ndp_proxy = mock.Mock(return_value=self.ndp_proxy) @@ -434,8 +436,13 @@ class TestShowNDPProxy(TestNDPProxy): verifylist = [] # Missing required args should bail here - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_show_default_options(self): arglist = [ @@ -446,9 +453,10 @@ class TestShowNDPProxy(TestNDPProxy): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) self.network.find_ndp_proxy.assert_called_once_with( - self.ndp_proxy.id, ignore_missing=False) + self.ndp_proxy.id, ignore_missing=False + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) diff --git a/openstackclient/tests/unit/network/v2/test_network.py b/openstackclient/tests/unit/network/v2/test_network.py index 6adb9e16e9..76b33a556b 100644 --- a/openstackclient/tests/unit/network/v2/test_network.py +++ b/openstackclient/tests/unit/network/v2/test_network.py @@ -29,7 +29,6 @@ from openstackclient.tests.unit import utils as tests_utils # Tests for Neutron network # class TestNetwork(network_fakes.TestNetworkV2): - def setUp(self): super(TestNetwork, self).setUp() @@ -42,7 +41,6 @@ class TestNetwork(network_fakes.TestNetworkV2): class TestCreateNetworkIdentityV3(TestNetwork): - project = identity_fakes_v3.FakeProject.create_one_project() domain = identity_fakes_v3.FakeDomain.create_one_domain() # The new network created. @@ -52,8 +50,9 @@ class TestCreateNetworkIdentityV3(TestNetwork): 'availability_zone_hints': ["nova"], } ) - qos_policy = (network_fakes.FakeNetworkQosPolicy. - create_one_qos_policy(attrs={'id': _network.qos_policy_id})) + qos_policy = network_fakes.FakeNetworkQosPolicy.create_one_qos_policy( + attrs={'id': _network.qos_policy_id} + ) columns = ( 'admin_state_up', @@ -132,8 +131,13 @@ class TestCreateNetworkIdentityV3(TestNetwork): arglist = [] verifylist = [] - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_create_default_options(self): arglist = [ @@ -150,10 +154,12 @@ class TestCreateNetworkIdentityV3(TestNetwork): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.create_network.assert_called_once_with(**{ - 'admin_state_up': True, - 'name': self._network.name, - }) + self.network.create_network.assert_called_once_with( + **{ + 'admin_state_up': True, + 'name': self._network.name, + } + ) self.assertFalse(self.network.set_tags.called) self.assertEqual(set(self.columns), set(columns)) self.assertCountEqual(self.data, data) @@ -162,19 +168,30 @@ class TestCreateNetworkIdentityV3(TestNetwork): arglist = [ "--disable", "--share", - "--description", self._network.description, - "--mtu", str(self._network.mtu), - "--project", self.project.name, - "--project-domain", self.domain.name, - "--availability-zone-hint", "nova", - "--external", "--default", - "--provider-network-type", "vlan", - "--provider-physical-network", "physnet1", - "--provider-segment", "400", - "--qos-policy", self.qos_policy.id, + "--description", + self._network.description, + "--mtu", + str(self._network.mtu), + "--project", + self.project.name, + "--project-domain", + self.domain.name, + "--availability-zone-hint", + "nova", + "--external", + "--default", + "--provider-network-type", + "vlan", + "--provider-physical-network", + "physnet1", + "--provider-segment", + "400", + "--qos-policy", + self.qos_policy.id, "--transparent-vlan", "--enable-port-security", - "--dns-domain", "example.org.", + "--dns-domain", + "example.org.", self._network.name, ] verifylist = [ @@ -198,26 +215,28 @@ class TestCreateNetworkIdentityV3(TestNetwork): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) - self.network.create_network.assert_called_once_with(**{ - 'admin_state_up': False, - 'availability_zone_hints': ["nova"], - 'name': self._network.name, - 'shared': True, - 'description': self._network.description, - 'mtu': str(self._network.mtu), - 'project_id': self.project.id, - 'is_default': True, - 'router:external': True, - 'provider:network_type': 'vlan', - 'provider:physical_network': 'physnet1', - 'provider:segmentation_id': '400', - 'qos_policy_id': self.qos_policy.id, - 'vlan_transparent': True, - 'port_security_enabled': True, - 'dns_domain': 'example.org.', - }) + self.network.create_network.assert_called_once_with( + **{ + 'admin_state_up': False, + 'availability_zone_hints': ["nova"], + 'name': self._network.name, + 'shared': True, + 'description': self._network.description, + 'mtu': str(self._network.mtu), + 'project_id': self.project.id, + 'is_default': True, + 'router:external': True, + 'provider:network_type': 'vlan', + 'provider:physical_network': 'physnet1', + 'provider:segmentation_id': '400', + 'qos_policy_id': self.qos_policy.id, + 'vlan_transparent': True, + 'port_security_enabled': True, + 'dns_domain': 'example.org.', + } + ) self.assertEqual(set(self.columns), set(columns)) self.assertCountEqual(self.data, data) @@ -239,12 +258,14 @@ class TestCreateNetworkIdentityV3(TestNetwork): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.create_network.assert_called_once_with(**{ - 'admin_state_up': True, - 'name': self._network.name, - 'shared': False, - 'port_security_enabled': False, - }) + self.network.create_network.assert_called_once_with( + **{ + 'admin_state_up': True, + 'name': self._network.name, + 'shared': False, + 'port_security_enabled': False, + } + ) self.assertEqual(set(self.columns), set(columns)) self.assertCountEqual(self.data, data) @@ -267,14 +288,15 @@ class TestCreateNetworkIdentityV3(TestNetwork): verifylist.append(('no_tag', True)) parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) self.network.create_network.assert_called_once_with( - name=self._network.name, admin_state_up=True) + name=self._network.name, admin_state_up=True + ) if add_tags: self.network.set_tags.assert_called_once_with( - self._network, - tests_utils.CompareBySet(['red', 'blue'])) + self._network, tests_utils.CompareBySet(['red', 'blue']) + ) else: self.assertFalse(self.network.set_tags.called) self.assertEqual(set(self.columns), set(columns)) @@ -288,7 +310,6 @@ class TestCreateNetworkIdentityV3(TestNetwork): class TestCreateNetworkIdentityV2(TestNetwork): - project = identity_fakes_v2.FakeProject.create_one_project() # The new network created. _network = network_fakes.create_one_network( @@ -379,7 +400,8 @@ class TestCreateNetworkIdentityV2(TestNetwork): def test_create_with_project_identityv2(self): arglist = [ - "--project", self.project.name, + "--project", + self.project.name, self._network.name, ] verifylist = [ @@ -393,19 +415,23 @@ class TestCreateNetworkIdentityV2(TestNetwork): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.create_network.assert_called_once_with(**{ - 'admin_state_up': True, - 'name': self._network.name, - 'project_id': self.project.id, - }) + self.network.create_network.assert_called_once_with( + **{ + 'admin_state_up': True, + 'name': self._network.name, + 'project_id': self.project.id, + } + ) self.assertFalse(self.network.set_tags.called) self.assertEqual(set(self.columns), set(columns)) self.assertCountEqual(self.data, data) def test_create_with_domain_identityv2(self): arglist = [ - "--project", self.project.name, - "--project-domain", "domain-name", + "--project", + self.project.name, + "--project-domain", + "domain-name", self._network.name, ] verifylist = [ @@ -427,7 +453,6 @@ class TestCreateNetworkIdentityV2(TestNetwork): class TestDeleteNetwork(TestNetwork): - def setUp(self): super(TestDeleteNetwork, self).setUp() @@ -437,7 +462,8 @@ class TestDeleteNetwork(TestNetwork): self.network.delete_network = mock.Mock(return_value=None) self.network.find_network = network_fakes.get_networks( - networks=self._networks) + networks=self._networks + ) # Get the command object to test self.cmd = network.DeleteNetwork(self.app, self.namespace) @@ -499,8 +525,9 @@ class TestDeleteNetwork(TestNetwork): ] self.network.delete_network = mock.Mock(side_effect=ret_delete) - self.assertRaises(exceptions.CommandError, self.cmd.take_action, - parsed_args) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) # The second call of find_network() should fail. So delete_network() # was only called twice. @@ -512,7 +539,6 @@ class TestDeleteNetwork(TestNetwork): class TestListNetwork(TestNetwork): - # The networks going to be listed up. _network = network_fakes.create_networks(count=3) @@ -537,27 +563,31 @@ class TestListNetwork(TestNetwork): data = [] for net in _network: - data.append(( - net.id, - net.name, - format_columns.ListColumn(net.subnet_ids), - )) + data.append( + ( + net.id, + net.name, + format_columns.ListColumn(net.subnet_ids), + ) + ) data_long = [] for net in _network: - data_long.append(( - net.id, - net.name, - net.status, - net.project_id, - network.AdminStateColumn(net.is_admin_state_up), - net.is_shared, - format_columns.ListColumn(net.subnet_ids), - net.provider_network_type, - network.RouterExternalColumn(net.is_router_external), - format_columns.ListColumn(net.availability_zones), - format_columns.ListColumn(net.tags), - )) + data_long.append( + ( + net.id, + net.name, + net.status, + net.project_id, + network.AdminStateColumn(net.is_admin_state_up), + net.is_shared, + format_columns.ListColumn(net.subnet_ids), + net.provider_network_type, + network.RouterExternalColumn(net.is_router_external), + format_columns.ListColumn(net.availability_zones), + format_columns.ListColumn(net.tags), + ) + ) def setUp(self): super(TestListNetwork, self).setUp() @@ -567,12 +597,12 @@ class TestListNetwork(TestNetwork): self.network.networks = mock.Mock(return_value=self._network) - self._agent = \ - network_fakes.create_one_network_agent() + self._agent = network_fakes.create_one_network_agent() self.network.get_agent = mock.Mock(return_value=self._agent) self.network.dhcp_agent_hosting_networks = mock.Mock( - return_value=self._network) + return_value=self._network + ) # TestListTagMixin self._tag_list_resource_mock = self.network.networks @@ -654,7 +684,8 @@ class TestListNetwork(TestNetwork): def test_list_name(self): test_name = "fakename" arglist = [ - '--name', test_name, + '--name', + test_name, ] verifylist = [ ('external', False), @@ -664,9 +695,7 @@ class TestListNetwork(TestNetwork): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.networks.assert_called_once_with( - **{'name': test_name} - ) + self.network.networks.assert_called_once_with(**{'name': test_name}) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) @@ -692,11 +721,7 @@ class TestListNetwork(TestNetwork): arglist = [ '--disable', ] - verifylist = [ - ('long', False), - ('external', False), - ('disable', True) - ] + verifylist = [('long', False), ('external', False), ('disable', True)] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) @@ -710,7 +735,8 @@ class TestListNetwork(TestNetwork): project = identity_fakes_v3.FakeProject.create_one_project() self.projects_mock.get.return_value = project arglist = [ - '--project', project.id, + '--project', + project.id, ] verifylist = [ ('project', project.id), @@ -729,8 +755,10 @@ class TestListNetwork(TestNetwork): project = identity_fakes_v3.FakeProject.create_one_project() self.projects_mock.get.return_value = project arglist = [ - '--project', project.id, - '--project-domain', project.domain_id, + '--project', + project.id, + '--project-domain', + project.domain_id, ] verifylist = [ ('project', project.id), @@ -782,7 +810,8 @@ class TestListNetwork(TestNetwork): choices = ['ACTIVE', 'BUILD', 'DOWN', 'ERROR'] test_status = random.choice(choices) arglist = [ - '--status', test_status, + '--status', + test_status, ] verifylist = [ ('long', False), @@ -800,7 +829,8 @@ class TestListNetwork(TestNetwork): def test_network_list_provider_network_type(self): network_type = self._network[0].provider_network_type arglist = [ - '--provider-network-type', network_type, + '--provider-network-type', + network_type, ] verifylist = [ ('provider_network_type', network_type), @@ -809,8 +839,10 @@ class TestListNetwork(TestNetwork): columns, data = self.cmd.take_action(parsed_args) self.network.networks.assert_called_once_with( - **{'provider:network_type': network_type, - 'provider_network_type': network_type} + **{ + 'provider:network_type': network_type, + 'provider_network_type': network_type, + } ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) @@ -818,7 +850,8 @@ class TestListNetwork(TestNetwork): def test_network_list_provider_physical_network(self): physical_network = self._network[0].provider_physical_network arglist = [ - '--provider-physical-network', physical_network, + '--provider-physical-network', + physical_network, ] verifylist = [ ('physical_network', physical_network), @@ -827,8 +860,10 @@ class TestListNetwork(TestNetwork): columns, data = self.cmd.take_action(parsed_args) self.network.networks.assert_called_once_with( - **{'provider:physical_network': physical_network, - 'provider_physical_network': physical_network} + **{ + 'provider:physical_network': physical_network, + 'provider_physical_network': physical_network, + } ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) @@ -836,7 +871,8 @@ class TestListNetwork(TestNetwork): def test_network_list_provider_segment(self): segmentation_id = self._network[0].provider_segmentation_id arglist = [ - '--provider-segment', segmentation_id, + '--provider-segment', + segmentation_id, ] verifylist = [ ('segmentation_id', segmentation_id), @@ -845,16 +881,16 @@ class TestListNetwork(TestNetwork): columns, data = self.cmd.take_action(parsed_args) self.network.networks.assert_called_once_with( - **{'provider:segmentation_id': segmentation_id, - 'provider_segmentation_id': segmentation_id} + **{ + 'provider:segmentation_id': segmentation_id, + 'provider_segmentation_id': segmentation_id, + } ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) def test_network_list_dhcp_agent(self): - arglist = [ - '--agent', self._agent.id - ] + arglist = ['--agent', self._agent.id] verifylist = [ ('agent_id', self._agent.id), ] @@ -864,17 +900,22 @@ class TestListNetwork(TestNetwork): columns, data = self.cmd.take_action(parsed_args) self.network.dhcp_agent_hosting_networks.assert_called_once_with( - self._agent) + self._agent + ) self.assertEqual(self.columns, columns) self.assertCountEqual(list(data), list(self.data)) def test_list_with_tag_options(self): arglist = [ - '--tags', 'red,blue', - '--any-tags', 'red,green', - '--not-tags', 'orange,yellow', - '--not-any-tags', 'black,white', + '--tags', + 'red,blue', + '--any-tags', + 'red,green', + '--not-tags', + 'orange,yellow', + '--not-any-tags', + 'black,white', ] verifylist = [ ('tags', ['red', 'blue']), @@ -886,22 +927,23 @@ class TestListNetwork(TestNetwork): columns, data = self.cmd.take_action(parsed_args) self.network.networks.assert_called_once_with( - **{'tags': 'red,blue', - 'any_tags': 'red,green', - 'not_tags': 'orange,yellow', - 'not_any_tags': 'black,white'} + **{ + 'tags': 'red,blue', + 'any_tags': 'red,green', + 'not_tags': 'orange,yellow', + 'not_any_tags': 'black,white', + } ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) class TestSetNetwork(TestNetwork): - # The network to set. - _network = network_fakes.create_one_network( - {'tags': ['green', 'red']}) - qos_policy = (network_fakes.FakeNetworkQosPolicy. - create_one_qos_policy(attrs={'id': _network.qos_policy_id})) + _network = network_fakes.create_one_network({'tags': ['green', 'red']}) + qos_policy = network_fakes.FakeNetworkQosPolicy.create_one_qos_policy( + attrs={'id': _network.qos_policy_id} + ) def setUp(self): super(TestSetNetwork, self).setUp() @@ -919,17 +961,24 @@ class TestSetNetwork(TestNetwork): arglist = [ self._network.name, '--enable', - '--name', 'noob', + '--name', + 'noob', '--share', - '--description', self._network.description, - '--dns-domain', 'example.org.', + '--description', + self._network.description, + '--dns-domain', + 'example.org.', '--external', '--default', - '--provider-network-type', 'vlan', - '--provider-physical-network', 'physnet1', - '--provider-segment', '400', + '--provider-network-type', + 'vlan', + '--provider-physical-network', + 'physnet1', + '--provider-segment', + '400', '--enable-port-security', - '--qos-policy', self.qos_policy.name, + '--qos-policy', + self.qos_policy.name, ] verifylist = [ ('network', self._network.name), @@ -965,7 +1014,8 @@ class TestSetNetwork(TestNetwork): 'dns_domain': 'example.org.', } self.network.update_network.assert_called_once_with( - self._network, **attrs) + self._network, **attrs + ) self.assertIsNone(result) def test_set_that(self): @@ -997,12 +1047,17 @@ class TestSetNetwork(TestNetwork): 'qos_policy_id': None, } self.network.update_network.assert_called_once_with( - self._network, **attrs) + self._network, **attrs + ) self.assertIsNone(result) def test_set_nothing(self): - arglist = [self._network.name, ] - verifylist = [('network', self._network.name), ] + arglist = [ + self._network.name, + ] + verifylist = [ + ('network', self._network.name), + ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) @@ -1021,16 +1076,15 @@ class TestSetNetwork(TestNetwork): verifylist = [('no_tag', True)] expected_args = [] arglist.append(self._network.name) - verifylist.append( - ('network', self._network.name)) + verifylist.append(('network', self._network.name)) parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.assertFalse(self.network.update_network.called) self.network.set_tags.assert_called_once_with( - self._network, - tests_utils.CompareBySet(expected_args)) + self._network, tests_utils.CompareBySet(expected_args) + ) self.assertIsNone(result) def test_set_with_tags(self): @@ -1041,7 +1095,6 @@ class TestSetNetwork(TestNetwork): class TestShowNetwork(TestNetwork): - # The network to show. _network = network_fakes.create_one_network() columns = ( @@ -1116,8 +1169,13 @@ class TestShowNetwork(TestNetwork): arglist = [] verifylist = [] - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_show_all_options(self): arglist = [ @@ -1131,19 +1189,19 @@ class TestShowNetwork(TestNetwork): columns, data = self.cmd.take_action(parsed_args) self.network.find_network.assert_called_once_with( - self._network.name, ignore_missing=False) + self._network.name, ignore_missing=False + ) self.assertEqual(set(self.columns), set(columns)) self.assertCountEqual(self.data, data) class TestUnsetNetwork(TestNetwork): - # The network to set. - _network = network_fakes.create_one_network( - {'tags': ['green', 'red']}) - qos_policy = (network_fakes.FakeNetworkQosPolicy. - create_one_qos_policy(attrs={'id': _network.qos_policy_id})) + _network = network_fakes.create_one_network({'tags': ['green', 'red']}) + qos_policy = network_fakes.FakeNetworkQosPolicy.create_one_qos_policy( + attrs={'id': _network.qos_policy_id} + ) def setUp(self): super(TestUnsetNetwork, self).setUp() @@ -1158,8 +1216,12 @@ class TestUnsetNetwork(TestNetwork): self.cmd = network.UnsetNetwork(self.app, self.namespace) def test_unset_nothing(self): - arglist = [self._network.name, ] - verifylist = [('network', self._network.name), ] + arglist = [ + self._network.name, + ] + verifylist = [ + ('network', self._network.name), + ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) @@ -1178,16 +1240,15 @@ class TestUnsetNetwork(TestNetwork): verifylist = [('all_tag', True)] expected_args = [] arglist.append(self._network.name) - verifylist.append( - ('network', self._network.name)) + verifylist.append(('network', self._network.name)) parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.assertFalse(self.network.update_network.called) self.network.set_tags.assert_called_once_with( - self._network, - tests_utils.CompareBySet(expected_args)) + self._network, tests_utils.CompareBySet(expected_args) + ) self.assertIsNone(result) def test_unset_with_tags(self): diff --git a/openstackclient/tests/unit/network/v2/test_network_agent.py b/openstackclient/tests/unit/network/v2/test_network_agent.py index 15c4c5de9e..e3f1269c22 100644 --- a/openstackclient/tests/unit/network/v2/test_network_agent.py +++ b/openstackclient/tests/unit/network/v2/test_network_agent.py @@ -23,7 +23,6 @@ from openstackclient.tests.unit import utils as tests_utils class TestNetworkAgent(network_fakes.TestNetworkV2): - def setUp(self): super(TestNetworkAgent, self).setUp() @@ -32,7 +31,6 @@ class TestNetworkAgent(network_fakes.TestNetworkV2): class TestAddNetworkToAgent(TestNetworkAgent): - net = network_fakes.create_one_network() agent = network_fakes.create_one_network_agent() @@ -43,23 +41,23 @@ class TestAddNetworkToAgent(TestNetworkAgent): self.network.find_network = mock.Mock(return_value=self.net) self.network.name = self.network.find_network.name self.network.add_dhcp_agent_to_network = mock.Mock() - self.cmd = network_agent.AddNetworkToAgent( - self.app, self.namespace) + self.cmd = network_agent.AddNetworkToAgent(self.app, self.namespace) def test_show_no_options(self): arglist = [] verifylist = [] # Missing required args should bail here - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_add_network_to_dhcp_agent(self): - arglist = [ - '--dhcp', - self.agent.id, - self.net.id - ] + arglist = ['--dhcp', self.agent.id, self.net.id] verifylist = [ ('dhcp', True), ('agent_id', self.agent.id), @@ -70,11 +68,11 @@ class TestAddNetworkToAgent(TestNetworkAgent): self.cmd.take_action(parsed_args) self.network.add_dhcp_agent_to_network.assert_called_once_with( - self.agent, self.net) + self.agent, self.net + ) class TestAddRouterAgent(TestNetworkAgent): - _router = network_fakes.FakeRouter.create_one_router() _agent = network_fakes.create_one_network_agent() @@ -90,8 +88,13 @@ class TestAddRouterAgent(TestNetworkAgent): verifylist = [] # Missing agent ID will cause command to bail - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_add_router_required_options(self): arglist = [ @@ -109,12 +112,12 @@ class TestAddRouterAgent(TestNetworkAgent): result = self.cmd.take_action(parsed_args) self.network.add_router_to_agent.assert_called_with( - self._agent, self._router) + self._agent, self._router + ) self.assertIsNone(result) class TestDeleteNetworkAgent(TestNetworkAgent): - network_agents = network_fakes.create_network_agents(count=2) def setUp(self): @@ -136,7 +139,8 @@ class TestDeleteNetworkAgent(TestNetworkAgent): result = self.cmd.take_action(parsed_args) self.network.delete_agent.assert_called_once_with( - self.network_agents[0].id, ignore_missing=False) + self.network_agents[0].id, ignore_missing=False + ) self.assertIsNone(result) def test_multi_network_agents_delete(self): @@ -163,15 +167,15 @@ class TestDeleteNetworkAgent(TestNetworkAgent): 'unexist_network_agent', ] verifylist = [ - ('network_agent', - [self.network_agents[0].id, 'unexist_network_agent']), + ( + 'network_agent', + [self.network_agents[0].id, 'unexist_network_agent'], + ), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) delete_mock_result = [True, exceptions.CommandError] - self.network.delete_agent = ( - mock.Mock(side_effect=delete_mock_result) - ) + self.network.delete_agent = mock.Mock(side_effect=delete_mock_result) try: self.cmd.take_action(parsed_args) @@ -180,13 +184,14 @@ class TestDeleteNetworkAgent(TestNetworkAgent): self.assertEqual('1 of 2 network agents failed to delete.', str(e)) self.network.delete_agent.assert_any_call( - self.network_agents[0].id, ignore_missing=False) + self.network_agents[0].id, ignore_missing=False + ) self.network.delete_agent.assert_any_call( - 'unexist_network_agent', ignore_missing=False) + 'unexist_network_agent', ignore_missing=False + ) class TestListNetworkAgent(TestNetworkAgent): - network_agents = network_fakes.create_network_agents(count=3) columns = ( @@ -196,24 +201,25 @@ class TestListNetworkAgent(TestNetworkAgent): 'Availability Zone', 'Alive', 'State', - 'Binary' + 'Binary', ) data = [] for agent in network_agents: - data.append(( - agent.id, - agent.agent_type, - agent.host, - agent.availability_zone, - network_agent.AliveColumn(agent.is_alive), - network_agent.AdminStateColumn(agent.is_admin_state_up), - agent.binary, - )) + data.append( + ( + agent.id, + agent.agent_type, + agent.host, + agent.availability_zone, + network_agent.AliveColumn(agent.is_alive), + network_agent.AdminStateColumn(agent.is_admin_state_up), + agent.binary, + ) + ) def setUp(self): super(TestListNetworkAgent, self).setUp() - self.network.agents = mock.Mock( - return_value=self.network_agents) + self.network.agents = mock.Mock(return_value=self.network_agents) _testagent = network_fakes.create_one_network_agent() self.network.get_agent = mock.Mock(return_value=_testagent) @@ -221,15 +227,16 @@ class TestListNetworkAgent(TestNetworkAgent): self._testnetwork = network_fakes.create_one_network() self.network.find_network = mock.Mock(return_value=self._testnetwork) self.network.network_hosting_dhcp_agents = mock.Mock( - return_value=self.network_agents) + return_value=self.network_agents + ) self.network.get_agent = mock.Mock(return_value=_testagent) - self._testrouter = \ - network_fakes.FakeRouter.create_one_router() + self._testrouter = network_fakes.FakeRouter.create_one_router() self.network.find_router = mock.Mock(return_value=self._testrouter) self.network.routers_hosting_l3_agents = mock.Mock( - return_value=self.network_agents) + return_value=self.network_agents + ) # Get the command object to test self.cmd = network_agent.ListNetworkAgent(self.app, self.namespace) @@ -247,7 +254,8 @@ class TestListNetworkAgent(TestNetworkAgent): def test_network_agents_list_agent_type(self): arglist = [ - '--agent-type', 'dhcp', + '--agent-type', + 'dhcp', ] verifylist = [ ('agent_type', 'dhcp'), @@ -256,15 +264,18 @@ class TestListNetworkAgent(TestNetworkAgent): columns, data = self.cmd.take_action(parsed_args) - self.network.agents.assert_called_once_with(**{ - 'agent_type': 'DHCP agent', - }) + self.network.agents.assert_called_once_with( + **{ + 'agent_type': 'DHCP agent', + } + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) def test_network_agents_list_host(self): arglist = [ - '--host', self.network_agents[0].host, + '--host', + self.network_agents[0].host, ] verifylist = [ ('host', self.network_agents[0].host), @@ -273,15 +284,18 @@ class TestListNetworkAgent(TestNetworkAgent): columns, data = self.cmd.take_action(parsed_args) - self.network.agents.assert_called_once_with(**{ - 'host': self.network_agents[0].host, - }) + self.network.agents.assert_called_once_with( + **{ + 'host': self.network_agents[0].host, + } + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) def test_network_agents_list_networks(self): arglist = [ - '--network', self._testnetwork.id, + '--network', + self._testnetwork.id, ] verifylist = [ ('network', self._testnetwork.id), @@ -291,47 +305,46 @@ class TestListNetworkAgent(TestNetworkAgent): columns, data = self.cmd.take_action(parsed_args) self.network.network_hosting_dhcp_agents.assert_called_once_with( - self._testnetwork) + self._testnetwork + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) def test_network_agents_list_routers(self): arglist = [ - '--router', self._testrouter.id, - ] - verifylist = [ - ('router', self._testrouter.id), - ('long', False) + '--router', + self._testrouter.id, ] + verifylist = [('router', self._testrouter.id), ('long', False)] - attrs = {self._testrouter, } + attrs = { + self._testrouter, + } parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.routers_hosting_l3_agents.assert_called_once_with( - *attrs) + self.network.routers_hosting_l3_agents.assert_called_once_with(*attrs) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) def test_network_agents_list_routers_with_long_option(self): arglist = [ - '--router', self._testrouter.id, + '--router', + self._testrouter.id, '--long', ] - verifylist = [ - ('router', self._testrouter.id), - ('long', True) - ] + verifylist = [('router', self._testrouter.id), ('long', True)] - attrs = {self._testrouter, } + attrs = { + self._testrouter, + } parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.routers_hosting_l3_agents.assert_called_once_with( - *attrs) + self.network.routers_hosting_l3_agents.assert_called_once_with(*attrs) # Add a column 'HA State' and corresponding data. router_agent_columns = self.columns + ('HA State',) @@ -342,7 +355,6 @@ class TestListNetworkAgent(TestNetworkAgent): class TestRemoveNetworkFromAgent(TestNetworkAgent): - net = network_fakes.create_one_network() agent = network_fakes.create_one_network_agent() @@ -354,15 +366,21 @@ class TestRemoveNetworkFromAgent(TestNetworkAgent): self.network.name = self.network.find_network.name self.network.remove_dhcp_agent_from_network = mock.Mock() self.cmd = network_agent.RemoveNetworkFromAgent( - self.app, self.namespace) + self.app, self.namespace + ) def test_show_no_options(self): arglist = [] verifylist = [] # Missing required args should bail here - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_network_agents_list_routers_no_arg(self): arglist = [ @@ -371,15 +389,16 @@ class TestRemoveNetworkFromAgent(TestNetworkAgent): verifylist = [] # Missing required args should bail here - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_network_from_dhcp_agent(self): - arglist = [ - '--dhcp', - self.agent.id, - self.net.id - ] + arglist = ['--dhcp', self.agent.id, self.net.id] verifylist = [ ('dhcp', True), ('agent_id', self.agent.id), @@ -390,7 +409,8 @@ class TestRemoveNetworkFromAgent(TestNetworkAgent): self.cmd.take_action(parsed_args) self.network.remove_dhcp_agent_from_network.assert_called_once_with( - self.agent, self.net) + self.agent, self.net + ) class TestRemoveRouterAgent(TestNetworkAgent): @@ -400,8 +420,9 @@ class TestRemoveRouterAgent(TestNetworkAgent): def setUp(self): super(TestRemoveRouterAgent, self).setUp() self.network.remove_router_from_agent = mock.Mock() - self.cmd = network_agent.RemoveRouterFromAgent(self.app, - self.namespace) + self.cmd = network_agent.RemoveRouterFromAgent( + self.app, self.namespace + ) self.network.get_agent = mock.Mock(return_value=self._agent) self.network.find_router = mock.Mock(return_value=self._router) @@ -410,8 +431,13 @@ class TestRemoveRouterAgent(TestNetworkAgent): verifylist = [] # Missing agent ID will cause command to bail - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_remove_router_required_options(self): arglist = [ @@ -429,12 +455,12 @@ class TestRemoveRouterAgent(TestNetworkAgent): result = self.cmd.take_action(parsed_args) self.network.remove_router_from_agent.assert_called_with( - self._agent, self._router) + self._agent, self._router + ) self.assertIsNone(result) class TestSetNetworkAgent(TestNetworkAgent): - _network_agent = network_fakes.create_one_network_agent() def setUp(self): @@ -458,12 +484,14 @@ class TestSetNetworkAgent(TestNetworkAgent): attrs = {} self.network.update_agent.assert_called_once_with( - self._network_agent, **attrs) + self._network_agent, **attrs + ) self.assertIsNone(result) def test_set_all(self): arglist = [ - '--description', 'new_description', + '--description', + 'new_description', '--enable', self._network_agent.id, ] @@ -483,7 +511,8 @@ class TestSetNetworkAgent(TestNetworkAgent): 'is_admin_state_up': True, } self.network.update_agent.assert_called_once_with( - self._network_agent, **attrs) + self._network_agent, **attrs + ) self.assertIsNone(result) def test_set_with_disable(self): @@ -505,12 +534,12 @@ class TestSetNetworkAgent(TestNetworkAgent): 'is_admin_state_up': False, } self.network.update_agent.assert_called_once_with( - self._network_agent, **attrs) + self._network_agent, **attrs + ) self.assertIsNone(result) class TestShowNetworkAgent(TestNetworkAgent): - _network_agent = network_fakes.create_one_network_agent() columns = ( @@ -550,8 +579,7 @@ class TestShowNetworkAgent(TestNetworkAgent): def setUp(self): super(TestShowNetworkAgent, self).setUp() - self.network.get_agent = mock.Mock( - return_value=self._network_agent) + self.network.get_agent = mock.Mock(return_value=self._network_agent) # Get the command object to test self.cmd = network_agent.ShowNetworkAgent(self.app, self.namespace) @@ -561,8 +589,13 @@ class TestShowNetworkAgent(TestNetworkAgent): verifylist = [] # Missing required args should bail here - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_show_all_options(self): arglist = [ @@ -575,7 +608,6 @@ class TestShowNetworkAgent(TestNetworkAgent): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.get_agent.assert_called_once_with( - self._network_agent.id) + self.network.get_agent.assert_called_once_with(self._network_agent.id) self.assertEqual(set(self.columns), set(columns)) self.assertEqual(len(list(self.data)), len(list(data))) diff --git a/openstackclient/tests/unit/network/v2/test_network_auto_allocated_topology.py b/openstackclient/tests/unit/network/v2/test_network_auto_allocated_topology.py index a5dbcde196..fb0c4f8963 100644 --- a/openstackclient/tests/unit/network/v2/test_network_auto_allocated_topology.py +++ b/openstackclient/tests/unit/network/v2/test_network_auto_allocated_topology.py @@ -32,8 +32,7 @@ class TestCreateAutoAllocatedTopology(TestAutoAllocatedTopology): network_object = network_fakes.create_one_network() topology = network_fakes.create_one_topology( - attrs={'id': network_object.id, - 'project_id': project.id} + attrs={'id': network_object.id, 'project_id': project.id} ) columns = ( @@ -50,10 +49,11 @@ class TestCreateAutoAllocatedTopology(TestAutoAllocatedTopology): super(TestCreateAutoAllocatedTopology, self).setUp() self.cmd = network_auto_allocated_topology.CreateAutoAllocatedTopology( - self.app, - self.namespace) + self.app, self.namespace + ) self.network.get_auto_allocated_topology = mock.Mock( - return_value=self.topology) + return_value=self.topology + ) def test_create_no_options(self): arglist = [] @@ -69,7 +69,8 @@ class TestCreateAutoAllocatedTopology(TestAutoAllocatedTopology): def test_create_project_option(self): arglist = [ - '--project', self.project.id, + '--project', + self.project.id, ] verifylist = [ @@ -88,8 +89,10 @@ class TestCreateAutoAllocatedTopology(TestAutoAllocatedTopology): def test_create_project_domain_option(self): arglist = [ - '--project', self.project.id, - '--project-domain', self.project.domain_id, + '--project', + self.project.id, + '--project-domain', + self.project.domain_id, ] verifylist = [ @@ -130,8 +133,7 @@ class TestValidateAutoAllocatedTopology(TestAutoAllocatedTopology): network_object = network_fakes.create_one_network() topology = network_fakes.create_one_topology( - attrs={'id': network_object.id, - 'project_id': project.id} + attrs={'id': network_object.id, 'project_id': project.id} ) columns = ( @@ -148,10 +150,11 @@ class TestValidateAutoAllocatedTopology(TestAutoAllocatedTopology): super(TestValidateAutoAllocatedTopology, self).setUp() self.cmd = network_auto_allocated_topology.CreateAutoAllocatedTopology( - self.app, - self.namespace) + self.app, self.namespace + ) self.network.validate_auto_allocated_topology = mock.Mock( - return_value=self.topology) + return_value=self.topology + ) def test_show_dry_run_no_project(self): arglist = [ @@ -164,13 +167,13 @@ class TestValidateAutoAllocatedTopology(TestAutoAllocatedTopology): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.validate_auto_allocated_topology.assert_called_with( - None) + self.network.validate_auto_allocated_topology.assert_called_with(None) def test_show_dry_run_project_option(self): arglist = [ '--check-resources', - '--project', self.project.id, + '--project', + self.project.id, ] verifylist = [ ('check_resources', True), @@ -181,13 +184,16 @@ class TestValidateAutoAllocatedTopology(TestAutoAllocatedTopology): columns, data = self.cmd.take_action(parsed_args) self.network.validate_auto_allocated_topology.assert_called_with( - self.project.id) + self.project.id + ) def test_show_dry_run_project_domain_option(self): arglist = [ '--check-resources', - '--project', self.project.id, - '--project-domain', self.project.domain_id, + '--project', + self.project.id, + '--project-domain', + self.project.domain_id, ] verifylist = [ ('check_resources', True), @@ -199,7 +205,8 @@ class TestValidateAutoAllocatedTopology(TestAutoAllocatedTopology): columns, data = self.cmd.take_action(parsed_args) self.network.validate_auto_allocated_topology.assert_called_with( - self.project.id) + self.project.id + ) class TestDeleteAutoAllocatedTopology(TestAutoAllocatedTopology): @@ -207,18 +214,18 @@ class TestDeleteAutoAllocatedTopology(TestAutoAllocatedTopology): network_object = network_fakes.create_one_network() topology = network_fakes.create_one_topology( - attrs={'id': network_object.id, - 'project_id': project.id} + attrs={'id': network_object.id, 'project_id': project.id} ) def setUp(self): super(TestDeleteAutoAllocatedTopology, self).setUp() self.cmd = network_auto_allocated_topology.DeleteAutoAllocatedTopology( - self.app, - self.namespace) + self.app, self.namespace + ) self.network.delete_auto_allocated_topology = mock.Mock( - return_value=None) + return_value=None + ) def test_delete_no_project(self): arglist = [] @@ -228,13 +235,15 @@ class TestDeleteAutoAllocatedTopology(TestAutoAllocatedTopology): result = self.cmd.take_action(parsed_args) self.network.delete_auto_allocated_topology.assert_called_once_with( - None) + None + ) self.assertIsNone(result) def test_delete_project_arg(self): arglist = [ - '--project', self.project.id, + '--project', + self.project.id, ] verifylist = [ ('project', self.project.id), @@ -244,14 +253,17 @@ class TestDeleteAutoAllocatedTopology(TestAutoAllocatedTopology): result = self.cmd.take_action(parsed_args) self.network.delete_auto_allocated_topology.assert_called_once_with( - self.project.id) + self.project.id + ) self.assertIsNone(result) def test_delete_project_domain_arg(self): arglist = [ - '--project', self.project.id, - '--project-domain', self.project.domain_id, + '--project', + self.project.id, + '--project-domain', + self.project.domain_id, ] verifylist = [ ('project', self.project.id), @@ -262,6 +274,7 @@ class TestDeleteAutoAllocatedTopology(TestAutoAllocatedTopology): result = self.cmd.take_action(parsed_args) self.network.delete_auto_allocated_topology.assert_called_once_with( - self.project.id) + self.project.id + ) self.assertIsNone(result) diff --git a/openstackclient/tests/unit/network/v2/test_network_compute.py b/openstackclient/tests/unit/network/v2/test_network_compute.py index 89330fffe9..ffa82f5d2e 100644 --- a/openstackclient/tests/unit/network/v2/test_network_compute.py +++ b/openstackclient/tests/unit/network/v2/test_network_compute.py @@ -24,7 +24,6 @@ from openstackclient.tests.unit import utils as tests_utils # Tests for Nova network # class TestNetworkCompute(compute_fakes.TestComputev2): - def setUp(self): super(TestNetworkCompute, self).setUp() @@ -32,11 +31,8 @@ class TestNetworkCompute(compute_fakes.TestComputev2): self.compute = self.app.client_manager.compute -@mock.patch( - 'openstackclient.api.compute_v2.APIv2.network_create' -) +@mock.patch('openstackclient.api.compute_v2.APIv2.network_create') class TestCreateNetworkCompute(TestNetworkCompute): - # The network to create. _network = compute_fakes.FakeNetwork.create_one_network() @@ -153,7 +149,8 @@ class TestCreateNetworkCompute(TestNetworkCompute): def test_network_create_default_options(self, net_mock): net_mock.return_value = self._network arglist = [ - "--subnet", self._network['cidr'], + "--subnet", + self._network['cidr'], self._network['label'], ] verifylist = [ @@ -164,19 +161,18 @@ class TestCreateNetworkCompute(TestNetworkCompute): columns, data = self.cmd.take_action(parsed_args) - net_mock.assert_called_once_with(**{ - 'subnet': self._network['cidr'], - 'name': self._network['label'], - }) + net_mock.assert_called_once_with( + **{ + 'subnet': self._network['cidr'], + 'name': self._network['label'], + } + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) -@mock.patch( - 'openstackclient.api.compute_v2.APIv2.network_delete' -) +@mock.patch('openstackclient.api.compute_v2.APIv2.network_delete') class TestDeleteNetworkCompute(TestNetworkCompute): - def setUp(self): super(TestDeleteNetworkCompute, self).setUp() @@ -186,8 +182,9 @@ class TestDeleteNetworkCompute(TestNetworkCompute): self._networks = compute_fakes.FakeNetwork.create_networks(count=3) # Return value of utils.find_resource() - self.compute.api.network_find = \ - compute_fakes.FakeNetwork.get_networks(networks=self._networks) + self.compute.api.network_find = compute_fakes.FakeNetwork.get_networks( + networks=self._networks + ) # Get the command object to test self.cmd = network.DeleteNetwork(self.app, None) @@ -229,10 +226,10 @@ class TestDeleteNetworkCompute(TestNetworkCompute): def test_network_delete_multi_with_exception(self, net_mock): net_mock.return_value = mock.Mock(return_value=None) - net_mock.side_effect = ([ + net_mock.side_effect = [ mock.Mock(return_value=None), exceptions.CommandError, - ]) + ] arglist = [ self._networks[0]['id'], 'xxxx-yyyy-zzzz', @@ -254,11 +251,8 @@ class TestDeleteNetworkCompute(TestNetworkCompute): net_mock.assert_any_call('xxxx-yyyy-zzzz') -@mock.patch( - 'openstackclient.api.compute_v2.APIv2.network_list' -) +@mock.patch('openstackclient.api.compute_v2.APIv2.network_list') class TestListNetworkCompute(TestNetworkCompute): - # The networks going to be listed up. _networks = compute_fakes.FakeNetwork.create_networks(count=3) @@ -270,11 +264,13 @@ class TestListNetworkCompute(TestNetworkCompute): data = [] for net in _networks: - data.append(( - net['id'], - net['label'], - net['cidr'], - )) + data.append( + ( + net['id'], + net['label'], + net['cidr'], + ) + ) def setUp(self): super(TestListNetworkCompute, self).setUp() @@ -300,11 +296,8 @@ class TestListNetworkCompute(TestNetworkCompute): self.assertEqual(self.data, list(data)) -@mock.patch( - 'openstackclient.api.compute_v2.APIv2.network_find' -) +@mock.patch('openstackclient.api.compute_v2.APIv2.network_find') class TestShowNetworkCompute(TestNetworkCompute): - # The network to show. _network = compute_fakes.FakeNetwork.create_one_network() diff --git a/openstackclient/tests/unit/network/v2/test_network_flavor.py b/openstackclient/tests/unit/network/v2/test_network_flavor.py index 3149def6bb..35df3b77f3 100644 --- a/openstackclient/tests/unit/network/v2/test_network_flavor.py +++ b/openstackclient/tests/unit/network/v2/test_network_flavor.py @@ -25,7 +25,6 @@ from openstackclient.tests.unit import utils as tests_utils class TestNetworkFlavor(network_fakes.TestNetworkV2): - def setUp(self): super(TestNetworkFlavor, self).setUp() @@ -38,7 +37,6 @@ class TestNetworkFlavor(network_fakes.TestNetworkV2): class TestAddNetworkFlavorToProfile(TestNetworkFlavor): - network_flavor = network_fakes.create_one_network_flavor() service_profile = network_fakes.create_one_service_profile() @@ -46,25 +44,29 @@ class TestAddNetworkFlavorToProfile(TestNetworkFlavor): super(TestAddNetworkFlavorToProfile, self).setUp() self.network.find_flavor = mock.Mock(return_value=self.network_flavor) self.network.find_service_profile = mock.Mock( - return_value=self.service_profile) + return_value=self.service_profile + ) self.network.associate_flavor_with_service_profile = mock.Mock() self.cmd = network_flavor.AddNetworkFlavorToProfile( - self.app, self.namespace) + self.app, self.namespace + ) def test_show_no_options(self): arglist = [] verifylist = [] # Missing required args should bail here - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_add_flavor_to_service_profile(self): - arglist = [ - self.network_flavor.id, - self.service_profile.id - ] + arglist = [self.network_flavor.id, self.service_profile.id] verifylist = [ ('flavor', self.network_flavor.id), ('service_profile', self.service_profile.id), @@ -73,12 +75,12 @@ class TestAddNetworkFlavorToProfile(TestNetworkFlavor): parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.cmd.take_action(parsed_args) - self.network.associate_flavor_with_service_profile.\ - assert_called_once_with(self.network_flavor, self.service_profile) + self.network.associate_flavor_with_service_profile.assert_called_once_with( # noqa: E501 + self.network_flavor, self.service_profile + ) class TestCreateNetworkFlavor(TestNetworkFlavor): - project = identity_fakes_v3.FakeProject.create_one_project() domain = identity_fakes_v3.FakeDomain.create_one_domain() # The new network flavor created. @@ -103,7 +105,8 @@ class TestCreateNetworkFlavor(TestNetworkFlavor): def setUp(self): super(TestCreateNetworkFlavor, self).setUp() self.network.create_flavor = mock.Mock( - return_value=self.new_network_flavor) + return_value=self.new_network_flavor + ) # Get the command object to test self.cmd = network_flavor.CreateNetworkFlavor(self.app, self.namespace) @@ -116,12 +119,18 @@ class TestCreateNetworkFlavor(TestNetworkFlavor): verifylist = [] # Missing required args should bail here - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_create_default_options(self): arglist = [ - '--service-type', self.new_network_flavor.service_type, + '--service-type', + self.new_network_flavor.service_type, self.new_network_flavor.name, ] verifylist = [ @@ -130,22 +139,28 @@ class TestCreateNetworkFlavor(TestNetworkFlavor): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) - self.network.create_flavor.assert_called_once_with(**{ - 'service_type': self.new_network_flavor.service_type, - 'name': self.new_network_flavor.name, - }) + self.network.create_flavor.assert_called_once_with( + **{ + 'service_type': self.new_network_flavor.service_type, + 'name': self.new_network_flavor.name, + } + ) self.assertEqual(set(self.columns), set(columns)) self.assertEqual(set(self.data), set(data)) def test_create_all_options(self): arglist = [ - '--description', self.new_network_flavor.description, + '--description', + self.new_network_flavor.description, '--enable', - '--project', self.project.id, - '--project-domain', self.domain.name, - '--service-type', self.new_network_flavor.service_type, + '--project', + self.project.id, + '--project-domain', + self.domain.name, + '--service-type', + self.new_network_flavor.service_type, self.new_network_flavor.name, ] verifylist = [ @@ -158,22 +173,25 @@ class TestCreateNetworkFlavor(TestNetworkFlavor): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) - self.network.create_flavor.assert_called_once_with(**{ - 'description': self.new_network_flavor.description, - 'enabled': True, - 'project_id': self.project.id, - 'service_type': self.new_network_flavor.service_type, - 'name': self.new_network_flavor.name, - }) + self.network.create_flavor.assert_called_once_with( + **{ + 'description': self.new_network_flavor.description, + 'enabled': True, + 'project_id': self.project.id, + 'service_type': self.new_network_flavor.service_type, + 'name': self.new_network_flavor.name, + } + ) self.assertEqual(set(self.columns), set(columns)) self.assertEqual(set(self.data), set(data)) def test_create_disable(self): arglist = [ '--disable', - '--service-type', self.new_network_flavor.service_type, + '--service-type', + self.new_network_flavor.service_type, self.new_network_flavor.name, ] verifylist = [ @@ -185,17 +203,18 @@ class TestCreateNetworkFlavor(TestNetworkFlavor): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.create_flavor.assert_called_once_with(**{ - 'enabled': False, - 'service_type': self.new_network_flavor.service_type, - 'name': self.new_network_flavor.name, - }) + self.network.create_flavor.assert_called_once_with( + **{ + 'enabled': False, + 'service_type': self.new_network_flavor.service_type, + 'name': self.new_network_flavor.name, + } + ) self.assertEqual(set(self.columns), set(columns)) self.assertEqual(set(self.data), set(data)) class TestDeleteNetworkFlavor(TestNetworkFlavor): - # The network flavor to delete. _network_flavors = network_fakes.create_flavor(count=2) @@ -203,7 +222,8 @@ class TestDeleteNetworkFlavor(TestNetworkFlavor): super(TestDeleteNetworkFlavor, self).setUp() self.network.delete_flavor = mock.Mock(return_value=None) self.network.find_flavor = network_fakes.get_flavor( - network_flavors=self._network_flavors) + network_flavors=self._network_flavors + ) # Get the command object to test self.cmd = network_flavor.DeleteNetworkFlavor(self.app, self.namespace) @@ -220,9 +240,11 @@ class TestDeleteNetworkFlavor(TestNetworkFlavor): result = self.cmd.take_action(parsed_args) self.network.find_flavor.assert_called_once_with( - self._network_flavors[0].name, ignore_missing=False) + self._network_flavors[0].name, ignore_missing=False + ) self.network.delete_flavor.assert_called_once_with( - self._network_flavors[0]) + self._network_flavors[0] + ) self.assertIsNone(result) def test_multi_network_flavors_delete(self): @@ -250,15 +272,15 @@ class TestDeleteNetworkFlavor(TestNetworkFlavor): 'unexist_network_flavor', ] verifylist = [ - ('flavor', - [self._network_flavors[0].name, 'unexist_network_flavor']), + ( + 'flavor', + [self._network_flavors[0].name, 'unexist_network_flavor'], + ), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) find_mock_result = [self._network_flavors[0], exceptions.CommandError] - self.network.find_flavor = ( - mock.Mock(side_effect=find_mock_result) - ) + self.network.find_flavor = mock.Mock(side_effect=find_mock_result) try: self.cmd.take_action(parsed_args) @@ -267,16 +289,17 @@ class TestDeleteNetworkFlavor(TestNetworkFlavor): self.assertEqual('1 of 2 flavors failed to delete.', str(e)) self.network.find_flavor.assert_any_call( - self._network_flavors[0].name, ignore_missing=False) + self._network_flavors[0].name, ignore_missing=False + ) self.network.find_flavor.assert_any_call( - 'unexist_network_flavor', ignore_missing=False) + 'unexist_network_flavor', ignore_missing=False + ) self.network.delete_flavor.assert_called_once_with( self._network_flavors[0] ) class TestListNetworkFlavor(TestNetworkFlavor): - # The network flavors to list up. _network_flavors = network_fakes.create_flavor(count=2) columns = ( @@ -288,18 +311,19 @@ class TestListNetworkFlavor(TestNetworkFlavor): ) data = [] for flavor in _network_flavors: - data.append(( - flavor.id, - flavor.name, - flavor.is_enabled, - flavor.service_type, - flavor.description, - )) + data.append( + ( + flavor.id, + flavor.name, + flavor.is_enabled, + flavor.service_type, + flavor.description, + ) + ) def setUp(self): super(TestListNetworkFlavor, self).setUp() - self.network.flavors = mock.Mock( - return_value=self._network_flavors) + self.network.flavors = mock.Mock(return_value=self._network_flavors) # Get the command object to test self.cmd = network_flavor.ListNetworkFlavor(self.app, self.namespace) @@ -317,7 +341,6 @@ class TestListNetworkFlavor(TestNetworkFlavor): class TestRemoveNetworkFlavorFromProfile(TestNetworkFlavor): - network_flavor = network_fakes.create_one_network_flavor() service_profile = network_fakes.create_one_service_profile() @@ -325,25 +348,29 @@ class TestRemoveNetworkFlavorFromProfile(TestNetworkFlavor): super(TestRemoveNetworkFlavorFromProfile, self).setUp() self.network.find_flavor = mock.Mock(return_value=self.network_flavor) self.network.find_service_profile = mock.Mock( - return_value=self.service_profile) + return_value=self.service_profile + ) self.network.disassociate_flavor_from_service_profile = mock.Mock() self.cmd = network_flavor.RemoveNetworkFlavorFromProfile( - self.app, self.namespace) + self.app, self.namespace + ) def test_show_no_options(self): arglist = [] verifylist = [] # Missing required args should bail here - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_remove_flavor_from_service_profile(self): - arglist = [ - self.network_flavor.id, - self.service_profile.id - ] + arglist = [self.network_flavor.id, self.service_profile.id] verifylist = [ ('flavor', self.network_flavor.id), ('service_profile', self.service_profile.id), @@ -352,12 +379,12 @@ class TestRemoveNetworkFlavorFromProfile(TestNetworkFlavor): parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.cmd.take_action(parsed_args) - self.network.disassociate_flavor_from_service_profile.\ - assert_called_once_with(self.network_flavor, self.service_profile) + self.network.disassociate_flavor_from_service_profile.assert_called_once_with( # noqa: E501 + self.network_flavor, self.service_profile + ) class TestShowNetworkFlavor(TestNetworkFlavor): - # The network flavor to show. new_network_flavor = network_fakes.create_one_network_flavor() columns = ( @@ -380,7 +407,8 @@ class TestShowNetworkFlavor(TestNetworkFlavor): def setUp(self): super(TestShowNetworkFlavor, self).setUp() self.network.find_flavor = mock.Mock( - return_value=self.new_network_flavor) + return_value=self.new_network_flavor + ) # Get the command object to test self.cmd = network_flavor.ShowNetworkFlavor(self.app, self.namespace) @@ -390,8 +418,13 @@ class TestShowNetworkFlavor(TestNetworkFlavor): verifylist = [] # Missing required args should bail here - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_show_all_options(self): arglist = [ @@ -405,28 +438,30 @@ class TestShowNetworkFlavor(TestNetworkFlavor): columns, data = self.cmd.take_action(parsed_args) self.network.find_flavor.assert_called_once_with( - self.new_network_flavor.name, ignore_missing=False) + self.new_network_flavor.name, ignore_missing=False + ) self.assertEqual(set(self.columns), set(columns)) self.assertEqual(set(self.data), set(data)) class TestSetNetworkFlavor(TestNetworkFlavor): - # The network flavor to set. - new_network_flavor = ( - network_fakes.create_one_network_flavor()) + new_network_flavor = network_fakes.create_one_network_flavor() def setUp(self): super(TestSetNetworkFlavor, self).setUp() self.network.update_flavor = mock.Mock(return_value=None) self.network.find_flavor = mock.Mock( - return_value=self.new_network_flavor) + return_value=self.new_network_flavor + ) # Get the command object to test self.cmd = network_flavor.SetNetworkFlavor(self.app, self.namespace) def test_set_nothing(self): - arglist = [self.new_network_flavor.name, ] + arglist = [ + self.new_network_flavor.name, + ] verifylist = [ ('flavor', self.new_network_flavor.name), ] @@ -436,12 +471,14 @@ class TestSetNetworkFlavor(TestNetworkFlavor): attrs = {} self.network.update_flavor.assert_called_with( - self.new_network_flavor, **attrs) + self.new_network_flavor, **attrs + ) self.assertIsNone(result) def test_set_name_and_enable(self): arglist = [ - '--name', 'new_network_flavor', + '--name', + 'new_network_flavor', '--enable', self.new_network_flavor.name, ] @@ -458,7 +495,8 @@ class TestSetNetworkFlavor(TestNetworkFlavor): 'enabled': True, } self.network.update_flavor.assert_called_with( - self.new_network_flavor, **attrs) + self.new_network_flavor, **attrs + ) self.assertIsNone(result) def test_set_disable(self): @@ -477,5 +515,6 @@ class TestSetNetworkFlavor(TestNetworkFlavor): 'enabled': False, } self.network.update_flavor.assert_called_with( - self.new_network_flavor, **attrs) + self.new_network_flavor, **attrs + ) self.assertIsNone(result) diff --git a/openstackclient/tests/unit/network/v2/test_network_flavor_profile.py b/openstackclient/tests/unit/network/v2/test_network_flavor_profile.py index 5c2b9e2da9..8a2084d030 100644 --- a/openstackclient/tests/unit/network/v2/test_network_flavor_profile.py +++ b/openstackclient/tests/unit/network/v2/test_network_flavor_profile.py @@ -20,7 +20,6 @@ from openstackclient.tests.unit.network.v2 import fakes as network_fakes class TestFlavorProfile(network_fakes.TestNetworkV2): - def setUp(self): super(TestFlavorProfile, self).setUp() # Get the network client @@ -57,20 +56,27 @@ class TestCreateFlavorProfile(TestFlavorProfile): def setUp(self): super(TestCreateFlavorProfile, self).setUp() self.network.create_service_profile = mock.Mock( - return_value=self.new_flavor_profile) + return_value=self.new_flavor_profile + ) self.projects_mock.get.return_value = self.project # Get the command object to test - self.cmd = (network_flavor_profile.CreateNetworkFlavorProfile( - self.app, self.namespace)) + self.cmd = network_flavor_profile.CreateNetworkFlavorProfile( + self.app, self.namespace + ) def test_create_all_options(self): arglist = [ - "--description", self.new_flavor_profile.description, - "--project", self.new_flavor_profile.project_id, - '--project-domain', self.domain.name, + "--description", + self.new_flavor_profile.description, + "--project", + self.new_flavor_profile.project_id, + '--project-domain', + self.domain.name, "--enable", - "--driver", self.new_flavor_profile.driver, - "--metainfo", self.new_flavor_profile.meta_info, + "--driver", + self.new_flavor_profile.driver, + "--metainfo", + self.new_flavor_profile.meta_info, ] verifylist = [ @@ -79,29 +85,35 @@ class TestCreateFlavorProfile(TestFlavorProfile): ('project_domain', self.domain.name), ('enable', True), ('driver', self.new_flavor_profile.driver), - ('metainfo', self.new_flavor_profile.meta_info) + ('metainfo', self.new_flavor_profile.meta_info), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) self.network.create_service_profile.assert_called_once_with( - **{'description': self.new_flavor_profile.description, - 'project_id': self.project.id, - 'enabled': self.new_flavor_profile.is_enabled, - 'driver': self.new_flavor_profile.driver, - 'metainfo': self.new_flavor_profile.meta_info} + **{ + 'description': self.new_flavor_profile.description, + 'project_id': self.project.id, + 'enabled': self.new_flavor_profile.is_enabled, + 'driver': self.new_flavor_profile.driver, + 'metainfo': self.new_flavor_profile.meta_info, + } ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) def test_create_with_metainfo(self): arglist = [ - "--description", self.new_flavor_profile.description, - "--project", self.new_flavor_profile.project_id, - '--project-domain', self.domain.name, + "--description", + self.new_flavor_profile.description, + "--project", + self.new_flavor_profile.project_id, + '--project-domain', + self.domain.name, "--enable", - "--metainfo", self.new_flavor_profile.meta_info, + "--metainfo", + self.new_flavor_profile.meta_info, ] verifylist = [ @@ -109,28 +121,34 @@ class TestCreateFlavorProfile(TestFlavorProfile): ('project', self.new_flavor_profile.project_id), ('project_domain', self.domain.name), ('enable', True), - ('metainfo', self.new_flavor_profile.meta_info) + ('metainfo', self.new_flavor_profile.meta_info), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) self.network.create_service_profile.assert_called_once_with( - **{'description': self.new_flavor_profile.description, - 'project_id': self.project.id, - 'enabled': self.new_flavor_profile.is_enabled, - 'metainfo': self.new_flavor_profile.meta_info} + **{ + 'description': self.new_flavor_profile.description, + 'project_id': self.project.id, + 'enabled': self.new_flavor_profile.is_enabled, + 'metainfo': self.new_flavor_profile.meta_info, + } ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) def test_create_with_driver(self): arglist = [ - "--description", self.new_flavor_profile.description, - "--project", self.new_flavor_profile.project_id, - '--project-domain', self.domain.name, + "--description", + self.new_flavor_profile.description, + "--project", + self.new_flavor_profile.project_id, + '--project-domain', + self.domain.name, "--enable", - "--driver", self.new_flavor_profile.driver, + "--driver", + self.new_flavor_profile.driver, ] verifylist = [ @@ -142,23 +160,27 @@ class TestCreateFlavorProfile(TestFlavorProfile): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) self.network.create_service_profile.assert_called_once_with( - **{'description': self.new_flavor_profile.description, - 'project_id': self.project.id, - 'enabled': self.new_flavor_profile.is_enabled, - 'driver': self.new_flavor_profile.driver, - } + **{ + 'description': self.new_flavor_profile.description, + 'project_id': self.project.id, + 'enabled': self.new_flavor_profile.is_enabled, + 'driver': self.new_flavor_profile.driver, + } ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) def test_create_without_driver_and_metainfo(self): arglist = [ - "--description", self.new_flavor_profile.description, - "--project", self.new_flavor_profile.project_id, - '--project-domain', self.domain.name, + "--description", + self.new_flavor_profile.description, + "--project", + self.new_flavor_profile.project_id, + '--project-domain', + self.domain.name, "--enable", ] @@ -180,40 +202,42 @@ class TestCreateFlavorProfile(TestFlavorProfile): def test_create_disable(self): arglist = [ '--disable', - '--driver', self.new_flavor_profile.driver, + '--driver', + self.new_flavor_profile.driver, ] verifylist = [ ('disable', True), - ('driver', self.new_flavor_profile.driver) + ('driver', self.new_flavor_profile.driver), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.create_service_profile.assert_called_once_with(**{ - 'enabled': False, - 'driver': self.new_flavor_profile.driver, - }) + self.network.create_service_profile.assert_called_once_with( + **{ + 'enabled': False, + 'driver': self.new_flavor_profile.driver, + } + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) class TestDeleteFlavorProfile(TestFlavorProfile): - # The network flavor_profiles to delete. _network_flavor_profiles = network_fakes.create_service_profile(count=2) def setUp(self): super(TestDeleteFlavorProfile, self).setUp() self.network.delete_service_profile = mock.Mock(return_value=None) - self.network.find_service_profile = ( - network_fakes.get_service_profile( - flavor_profile=self._network_flavor_profiles) + self.network.find_service_profile = network_fakes.get_service_profile( + flavor_profile=self._network_flavor_profiles ) # Get the command object to test self.cmd = network_flavor_profile.DeleteNetworkFlavorProfile( - self.app, self.namespace) + self.app, self.namespace + ) def test_network_flavor_profile_delete(self): arglist = [ @@ -227,9 +251,11 @@ class TestDeleteFlavorProfile(TestFlavorProfile): result = self.cmd.take_action(parsed_args) self.network.find_service_profile.assert_called_once_with( - self._network_flavor_profiles[0].id, ignore_missing=False) + self._network_flavor_profiles[0].id, ignore_missing=False + ) self.network.delete_service_profile.assert_called_once_with( - self._network_flavor_profiles[0]) + self._network_flavor_profiles[0] + ) self.assertIsNone(result) def test_multi_network_flavor_profiles_delete(self): @@ -256,36 +282,44 @@ class TestDeleteFlavorProfile(TestFlavorProfile): 'unexist_network_flavor_profile', ] verifylist = [ - ('flavor_profile', - [self._network_flavor_profiles[0].id, - 'unexist_network_flavor_profile']), + ( + 'flavor_profile', + [ + self._network_flavor_profiles[0].id, + 'unexist_network_flavor_profile', + ], + ), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - find_mock_result = [self._network_flavor_profiles[0], - exceptions.CommandError] - self.network.find_service_profile = ( - mock.Mock(side_effect=find_mock_result) + find_mock_result = [ + self._network_flavor_profiles[0], + exceptions.CommandError, + ] + self.network.find_service_profile = mock.Mock( + side_effect=find_mock_result ) try: self.cmd.take_action(parsed_args) self.fail('CommandError should be raised.') except exceptions.CommandError as e: - self.assertEqual('1 of 2 flavor_profiles failed to delete.', - str(e)) + self.assertEqual( + '1 of 2 flavor_profiles failed to delete.', str(e) + ) self.network.find_service_profile.assert_any_call( - self._network_flavor_profiles[0].id, ignore_missing=False) + self._network_flavor_profiles[0].id, ignore_missing=False + ) self.network.find_service_profile.assert_any_call( - 'unexist_network_flavor_profile', ignore_missing=False) + 'unexist_network_flavor_profile', ignore_missing=False + ) self.network.delete_service_profile.assert_called_once_with( self._network_flavor_profiles[0] ) class TestListFlavorProfile(TestFlavorProfile): - # The network flavor profiles list _network_flavor_profiles = network_fakes.create_service_profile(count=2) @@ -298,22 +332,26 @@ class TestListFlavorProfile(TestFlavorProfile): ) data = [] for flavor_profile in _network_flavor_profiles: - data.append(( - flavor_profile.id, - flavor_profile.driver, - flavor_profile.is_enabled, - flavor_profile.meta_info, - flavor_profile.description, - )) + data.append( + ( + flavor_profile.id, + flavor_profile.driver, + flavor_profile.is_enabled, + flavor_profile.meta_info, + flavor_profile.description, + ) + ) def setUp(self): super(TestListFlavorProfile, self).setUp() self.network.service_profiles = mock.Mock( - return_value=self._network_flavor_profiles) + return_value=self._network_flavor_profiles + ) # Get the command object to test self.cmd = network_flavor_profile.ListNetworkFlavorProfile( - self.app, self.namespace) + self.app, self.namespace + ) def test_network_flavor_profile_list(self): arglist = [] @@ -328,7 +366,6 @@ class TestListFlavorProfile(TestFlavorProfile): class TestShowFlavorProfile(TestFlavorProfile): - # The network flavor profile to show. network_flavor_profile = network_fakes.create_one_service_profile() columns = ( @@ -351,11 +388,13 @@ class TestShowFlavorProfile(TestFlavorProfile): def setUp(self): super(TestShowFlavorProfile, self).setUp() self.network.find_service_profile = mock.Mock( - return_value=self.network_flavor_profile) + return_value=self.network_flavor_profile + ) # Get the command object to test self.cmd = network_flavor_profile.ShowNetworkFlavorProfile( - self.app, self.namespace) + self.app, self.namespace + ) def test_show_all_options(self): arglist = [ @@ -369,13 +408,13 @@ class TestShowFlavorProfile(TestFlavorProfile): columns, data = self.cmd.take_action(parsed_args) self.network.find_service_profile.assert_called_once_with( - self.network_flavor_profile.id, ignore_missing=False) + self.network_flavor_profile.id, ignore_missing=False + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) class TestSetFlavorProfile(TestFlavorProfile): - # The network flavor profile to set. network_flavor_profile = network_fakes.create_one_service_profile() @@ -383,11 +422,13 @@ class TestSetFlavorProfile(TestFlavorProfile): super(TestSetFlavorProfile, self).setUp() self.network.update_service_profile = mock.Mock(return_value=None) self.network.find_service_profile = mock.Mock( - return_value=self.network_flavor_profile) + return_value=self.network_flavor_profile + ) # Get the command object to test self.cmd = network_flavor_profile.SetNetworkFlavorProfile( - self.app, self.namespace) + self.app, self.namespace + ) def test_set_nothing(self): arglist = [self.network_flavor_profile.id] @@ -400,7 +441,8 @@ class TestSetFlavorProfile(TestFlavorProfile): attrs = {} self.network.update_service_profile.assert_called_with( - self.network_flavor_profile, **attrs) + self.network_flavor_profile, **attrs + ) self.assertIsNone(result) def test_set_enable(self): @@ -419,7 +461,8 @@ class TestSetFlavorProfile(TestFlavorProfile): 'enabled': True, } self.network.update_service_profile.assert_called_with( - self.network_flavor_profile, **attrs) + self.network_flavor_profile, **attrs + ) self.assertIsNone(result) def test_set_disable(self): @@ -438,5 +481,6 @@ class TestSetFlavorProfile(TestFlavorProfile): 'enabled': False, } self.network.update_service_profile.assert_called_with( - self.network_flavor_profile, **attrs) + self.network_flavor_profile, **attrs + ) self.assertIsNone(result) diff --git a/openstackclient/tests/unit/network/v2/test_network_meter.py b/openstackclient/tests/unit/network/v2/test_network_meter.py index 5cedf0f408..f49d0167e3 100644 --- a/openstackclient/tests/unit/network/v2/test_network_meter.py +++ b/openstackclient/tests/unit/network/v2/test_network_meter.py @@ -25,7 +25,6 @@ from openstackclient.tests.unit import utils as tests_utils class TestMeter(network_fakes.TestNetworkV2): - def setUp(self): super(TestMeter, self).setUp() self.network = self.app.client_manager.network @@ -37,10 +36,7 @@ class TestCreateMeter(TestMeter): project = identity_fakes_v3.FakeProject.create_one_project() domain = identity_fakes_v3.FakeDomain.create_one_domain() - new_meter = ( - network_fakes.FakeNetworkMeter. - create_one_meter() - ) + new_meter = network_fakes.FakeNetworkMeter.create_one_meter() columns = ( 'description', 'id', @@ -60,7 +56,8 @@ class TestCreateMeter(TestMeter): def setUp(self): super(TestCreateMeter, self).setUp() self.network.create_metering_label = mock.Mock( - return_value=self.new_meter) + return_value=self.new_meter + ) self.projects_mock.get.return_value = self.project self.cmd = network_meter.CreateMeter(self.app, self.namespace) @@ -68,8 +65,13 @@ class TestCreateMeter(TestMeter): arglist = [] verifylist = [] - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_create_default_options(self): arglist = [ @@ -81,7 +83,7 @@ class TestCreateMeter(TestMeter): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) self.network.create_metering_label.assert_called_once_with( **{'name': self.new_meter.name} @@ -91,9 +93,12 @@ class TestCreateMeter(TestMeter): def test_create_all_options(self): arglist = [ - "--description", self.new_meter.description, - "--project", self.new_meter.project_id, - "--project-domain", self.domain.name, + "--description", + self.new_meter.description, + "--project", + self.new_meter.project_id, + "--project-domain", + self.domain.name, "--share", self.new_meter.name, ] @@ -107,32 +112,31 @@ class TestCreateMeter(TestMeter): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) self.network.create_metering_label.assert_called_once_with( - **{'description': self.new_meter.description, - 'name': self.new_meter.name, - 'project_id': self.project.id, - 'shared': True, } + **{ + 'description': self.new_meter.description, + 'name': self.new_meter.name, + 'project_id': self.project.id, + 'shared': True, + } ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) class TestDeleteMeter(TestMeter): - def setUp(self): super(TestDeleteMeter, self).setUp() - self.meter_list = \ - network_fakes.FakeNetworkMeter.create_meter(count=2) + self.meter_list = network_fakes.FakeNetworkMeter.create_meter(count=2) self.network.delete_metering_label = mock.Mock(return_value=None) - self.network.find_metering_label = network_fakes \ - .FakeNetworkMeter.get_meter( - meter=self.meter_list - ) + self.network.find_metering_label = ( + network_fakes.FakeNetworkMeter.get_meter(meter=self.meter_list) + ) self.cmd = network_meter.DeleteMeter(self.app, self.namespace) @@ -196,8 +200,9 @@ class TestDeleteMeter(TestMeter): ] self.network.delete_metering_label = mock.Mock(side_effect=ret_delete) - self.assertRaises(exceptions.CommandError, self.cmd.take_action, - parsed_args) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) calls = [ call(self.meter_list[0]), @@ -207,9 +212,7 @@ class TestDeleteMeter(TestMeter): class TestListMeter(TestMeter): - - meter_list = \ - network_fakes.FakeNetworkMeter.create_meter(count=2) + meter_list = network_fakes.FakeNetworkMeter.create_meter(count=2) columns = ( 'ID', @@ -221,19 +224,19 @@ class TestListMeter(TestMeter): data = [] for meters in meter_list: - data.append(( - meters.id, - meters.name, - meters.description, - meters.shared, - )) + data.append( + ( + meters.id, + meters.name, + meters.description, + meters.shared, + ) + ) def setUp(self): super(TestListMeter, self).setUp() - self.network.metering_labels = mock.Mock( - return_value=self.meter_list - ) + self.network.metering_labels = mock.Mock(return_value=self.meter_list) self.cmd = network_meter.ListMeter(self.app, self.namespace) @@ -251,10 +254,7 @@ class TestListMeter(TestMeter): class TestShowMeter(TestMeter): - new_meter = ( - network_fakes.FakeNetworkMeter. - create_one_meter() - ) + new_meter = network_fakes.FakeNetworkMeter.create_one_meter() columns = ( 'description', 'id', @@ -276,15 +276,21 @@ class TestShowMeter(TestMeter): self.cmd = network_meter.ShowMeter(self.app, self.namespace) - self.network.find_metering_label = \ - mock.Mock(return_value=self.new_meter) + self.network.find_metering_label = mock.Mock( + return_value=self.new_meter + ) def test_show_no_options(self): arglist = [] verifylist = [] - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_meter_show_option(self): arglist = [ diff --git a/openstackclient/tests/unit/network/v2/test_network_meter_rule.py b/openstackclient/tests/unit/network/v2/test_network_meter_rule.py index e9224fa650..9109334550 100644 --- a/openstackclient/tests/unit/network/v2/test_network_meter_rule.py +++ b/openstackclient/tests/unit/network/v2/test_network_meter_rule.py @@ -36,10 +36,7 @@ class TestCreateMeterRule(TestMeterRule): project = identity_fakes_v3.FakeProject.create_one_project() domain = identity_fakes_v3.FakeDomain.create_one_domain() - new_rule = ( - network_fakes.FakeNetworkMeterRule. - create_one_rule() - ) + new_rule = network_fakes.FakeNetworkMeterRule.create_one_rule() columns = ( 'destination_ip_prefix', @@ -64,28 +61,34 @@ class TestCreateMeterRule(TestMeterRule): def setUp(self): super(TestCreateMeterRule, self).setUp() - fake_meter = network_fakes.FakeNetworkMeter.create_one_meter({ - 'id': self.new_rule.metering_label_id}) + fake_meter = network_fakes.FakeNetworkMeter.create_one_meter( + {'id': self.new_rule.metering_label_id} + ) self.network.create_metering_label_rule = mock.Mock( - return_value=self.new_rule) + return_value=self.new_rule + ) self.projects_mock.get.return_value = self.project - self.cmd = network_meter_rule.CreateMeterRule(self.app, - self.namespace) - self.network.find_metering_label = mock.Mock( - return_value=fake_meter) + self.cmd = network_meter_rule.CreateMeterRule(self.app, self.namespace) + self.network.find_metering_label = mock.Mock(return_value=fake_meter) def test_create_no_options(self): arglist = [] verifylist = [] - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_create_default_options(self): arglist = [ self.new_rule.metering_label_id, - "--remote-ip-prefix", self.new_rule.remote_ip_prefix, + "--remote-ip-prefix", + self.new_rule.remote_ip_prefix, ] verifylist = [ ('meter', self.new_rule.metering_label_id), @@ -93,12 +96,14 @@ class TestCreateMeterRule(TestMeterRule): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) self.network.create_metering_label_rule.assert_called_once_with( - **{'direction': 'ingress', - 'metering_label_id': self.new_rule.metering_label_id, - 'remote_ip_prefix': self.new_rule.remote_ip_prefix, } + **{ + 'direction': 'ingress', + 'metering_label_id': self.new_rule.metering_label_id, + 'remote_ip_prefix': self.new_rule.remote_ip_prefix, + } ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) @@ -108,7 +113,8 @@ class TestCreateMeterRule(TestMeterRule): "--ingress", "--include", self.new_rule.metering_label_id, - "--remote-ip-prefix", self.new_rule.remote_ip_prefix, + "--remote-ip-prefix", + self.new_rule.remote_ip_prefix, ] verifylist = [ ('ingress', True), @@ -118,13 +124,15 @@ class TestCreateMeterRule(TestMeterRule): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) self.network.create_metering_label_rule.assert_called_once_with( - **{'direction': self.new_rule.direction, - 'excluded': self.new_rule.excluded, - 'metering_label_id': self.new_rule.metering_label_id, - 'remote_ip_prefix': self.new_rule.remote_ip_prefix, } + **{ + 'direction': self.new_rule.direction, + 'excluded': self.new_rule.excluded, + 'metering_label_id': self.new_rule.metering_label_id, + 'remote_ip_prefix': self.new_rule.remote_ip_prefix, + } ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) @@ -133,19 +141,18 @@ class TestCreateMeterRule(TestMeterRule): class TestDeleteMeterRule(TestMeterRule): def setUp(self): super(TestDeleteMeterRule, self).setUp() - self.rule_list = \ - network_fakes.FakeNetworkMeterRule.create_meter_rule( - count=2 - ) + self.rule_list = network_fakes.FakeNetworkMeterRule.create_meter_rule( + count=2 + ) self.network.delete_metering_label_rule = mock.Mock(return_value=None) - self.network.find_metering_label_rule = network_fakes \ - .FakeNetworkMeterRule.get_meter_rule( + self.network.find_metering_label_rule = ( + network_fakes.FakeNetworkMeterRule.get_meter_rule( meter_rule=self.rule_list ) + ) - self.cmd = network_meter_rule.DeleteMeterRule(self.app, - self.namespace) + self.cmd = network_meter_rule.DeleteMeterRule(self.app, self.namespace) def test_delete_one_rule(self): arglist = [ @@ -211,8 +218,9 @@ class TestDeleteMeterRule(TestMeterRule): side_effect=ret_delete ) - self.assertRaises(exceptions.CommandError, self.cmd.take_action, - parsed_args) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) calls = [ call(self.rule_list[0]), @@ -222,10 +230,7 @@ class TestDeleteMeterRule(TestMeterRule): class TestListMeterRule(TestMeterRule): - rule_list = \ - network_fakes.FakeNetworkMeterRule.create_meter_rule( - count=2 - ) + rule_list = network_fakes.FakeNetworkMeterRule.create_meter_rule(count=2) columns = ( 'ID', @@ -233,20 +238,22 @@ class TestListMeterRule(TestMeterRule): 'Direction', 'Remote IP Prefix', 'Source IP Prefix', - 'Destination IP Prefix' + 'Destination IP Prefix', ) data = [] for rule in rule_list: - data.append(( - rule.id, - rule.excluded, - rule.direction, - rule.remote_ip_prefix, - rule.source_ip_prefix, - rule.destination_ip_prefix - )) + data.append( + ( + rule.id, + rule.excluded, + rule.direction, + rule.remote_ip_prefix, + rule.source_ip_prefix, + rule.destination_ip_prefix, + ) + ) def setUp(self): super(TestListMeterRule, self).setUp() @@ -255,8 +262,7 @@ class TestListMeterRule(TestMeterRule): return_value=self.rule_list ) - self.cmd = network_meter_rule.ListMeterRule(self.app, - self.namespace) + self.cmd = network_meter_rule.ListMeterRule(self.app, self.namespace) def test_rule_list(self): arglist = [] @@ -272,10 +278,7 @@ class TestListMeterRule(TestMeterRule): class TestShowMeterRule(TestMeterRule): - new_rule = ( - network_fakes.FakeNetworkMeterRule. - create_one_rule() - ) + new_rule = network_fakes.FakeNetworkMeterRule.create_one_rule() columns = ( 'destination_ip_prefix', @@ -302,18 +305,23 @@ class TestShowMeterRule(TestMeterRule): def setUp(self): super(TestShowMeterRule, self).setUp() - self.cmd = network_meter_rule.ShowMeterRule(self.app, - self.namespace) + self.cmd = network_meter_rule.ShowMeterRule(self.app, self.namespace) - self.network.find_metering_label_rule = \ - mock.Mock(return_value=self.new_rule) + self.network.find_metering_label_rule = mock.Mock( + return_value=self.new_rule + ) def test_show_no_options(self): arglist = [] verifylist = [] - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_label_rule_show_option(self): arglist = [ diff --git a/openstackclient/tests/unit/network/v2/test_network_qos_policy.py b/openstackclient/tests/unit/network/v2/test_network_qos_policy.py index ca21ccf702..213fc4c092 100644 --- a/openstackclient/tests/unit/network/v2/test_network_qos_policy.py +++ b/openstackclient/tests/unit/network/v2/test_network_qos_policy.py @@ -25,7 +25,6 @@ from openstackclient.tests.unit import utils as tests_utils class TestQosPolicy(network_fakes.TestNetworkV2): - def setUp(self): super(TestQosPolicy, self).setUp() # Get a shortcut to the network client @@ -35,16 +34,14 @@ class TestQosPolicy(network_fakes.TestNetworkV2): class TestCreateNetworkQosPolicy(TestQosPolicy): - project = identity_fakes_v3.FakeProject.create_one_project() # The new qos policy created. - new_qos_policy = ( - network_fakes.FakeNetworkQosPolicy.create_one_qos_policy( - attrs={ - 'project_id': project.id, - } - )) + new_qos_policy = network_fakes.FakeNetworkQosPolicy.create_one_qos_policy( + attrs={ + 'project_id': project.id, + } + ) columns = ( 'description', 'id', @@ -68,11 +65,13 @@ class TestCreateNetworkQosPolicy(TestQosPolicy): def setUp(self): super(TestCreateNetworkQosPolicy, self).setUp() self.network.create_qos_policy = mock.Mock( - return_value=self.new_qos_policy) + return_value=self.new_qos_policy + ) # Get the command object to test self.cmd = network_qos_policy.CreateNetworkQosPolicy( - self.app, self.namespace) + self.app, self.namespace + ) self.projects_mock.get.return_value = self.project @@ -81,8 +80,13 @@ class TestCreateNetworkQosPolicy(TestQosPolicy): verifylist = [] # Missing required args should bail here - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_create_default_options(self): arglist = [ @@ -94,20 +98,22 @@ class TestCreateNetworkQosPolicy(TestQosPolicy): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) - self.network.create_qos_policy.assert_called_once_with(**{ - 'name': self.new_qos_policy.name - }) + self.network.create_qos_policy.assert_called_once_with( + **{'name': self.new_qos_policy.name} + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) def test_create_all_options(self): arglist = [ '--share', - '--project', self.project.name, + '--project', + self.project.name, self.new_qos_policy.name, - '--description', 'QoS policy description', + '--description', + 'QoS policy description', '--default', ] verifylist = [ @@ -121,21 +127,20 @@ class TestCreateNetworkQosPolicy(TestQosPolicy): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.create_qos_policy.assert_called_once_with(**{ - 'shared': True, - 'project_id': self.project.id, - 'name': self.new_qos_policy.name, - 'description': 'QoS policy description', - 'is_default': True, - }) + self.network.create_qos_policy.assert_called_once_with( + **{ + 'shared': True, + 'project_id': self.project.id, + 'name': self.new_qos_policy.name, + 'description': 'QoS policy description', + 'is_default': True, + } + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) def test_create_no_default(self): - arglist = [ - self.new_qos_policy.name, - '--no-default' - ] + arglist = [self.new_qos_policy.name, '--no-default'] verifylist = [ ('project', None), ('name', self.new_qos_policy.name), @@ -143,33 +148,37 @@ class TestCreateNetworkQosPolicy(TestQosPolicy): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) - self.network.create_qos_policy.assert_called_once_with(**{ - 'name': self.new_qos_policy.name, - 'is_default': False, - }) + self.network.create_qos_policy.assert_called_once_with( + **{ + 'name': self.new_qos_policy.name, + 'is_default': False, + } + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) class TestDeleteNetworkQosPolicy(TestQosPolicy): - # The address scope to delete. - _qos_policies = ( - network_fakes.FakeNetworkQosPolicy.create_qos_policies(count=2)) + _qos_policies = network_fakes.FakeNetworkQosPolicy.create_qos_policies( + count=2 + ) def setUp(self): super(TestDeleteNetworkQosPolicy, self).setUp() self.network.delete_qos_policy = mock.Mock(return_value=None) self.network.find_qos_policy = ( network_fakes.FakeNetworkQosPolicy.get_qos_policies( - qos_policies=self._qos_policies) + qos_policies=self._qos_policies + ) ) # Get the command object to test self.cmd = network_qos_policy.DeleteNetworkQosPolicy( - self.app, self.namespace) + self.app, self.namespace + ) def test_qos_policy_delete(self): arglist = [ @@ -183,9 +192,11 @@ class TestDeleteNetworkQosPolicy(TestQosPolicy): result = self.cmd.take_action(parsed_args) self.network.find_qos_policy.assert_called_once_with( - self._qos_policies[0].name, ignore_missing=False) + self._qos_policies[0].name, ignore_missing=False + ) self.network.delete_qos_policy.assert_called_once_with( - self._qos_policies[0]) + self._qos_policies[0] + ) self.assertIsNone(result) def test_multi_qos_policies_delete(self): @@ -212,14 +223,13 @@ class TestDeleteNetworkQosPolicy(TestQosPolicy): 'unexist_qos_policy', ] verifylist = [ - ('policy', - [self._qos_policies[0].name, 'unexist_qos_policy']), + ('policy', [self._qos_policies[0].name, 'unexist_qos_policy']), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) find_mock_result = [self._qos_policies[0], exceptions.CommandError] - self.network.find_qos_policy = ( - mock.MagicMock(side_effect=find_mock_result) + self.network.find_qos_policy = mock.MagicMock( + side_effect=find_mock_result ) try: @@ -229,19 +239,21 @@ class TestDeleteNetworkQosPolicy(TestQosPolicy): self.assertEqual('1 of 2 QoS policies failed to delete.', str(e)) self.network.find_qos_policy.assert_any_call( - self._qos_policies[0].name, ignore_missing=False) + self._qos_policies[0].name, ignore_missing=False + ) self.network.find_qos_policy.assert_any_call( - 'unexist_qos_policy', ignore_missing=False) + 'unexist_qos_policy', ignore_missing=False + ) self.network.delete_qos_policy.assert_called_once_with( self._qos_policies[0] ) class TestListNetworkQosPolicy(TestQosPolicy): - # The QoS policies to list up. - qos_policies = ( - network_fakes.FakeNetworkQosPolicy.create_qos_policies(count=3)) + qos_policies = network_fakes.FakeNetworkQosPolicy.create_qos_policies( + count=3 + ) columns = ( 'ID', 'Name', @@ -251,21 +263,24 @@ class TestListNetworkQosPolicy(TestQosPolicy): ) data = [] for qos_policy in qos_policies: - data.append(( - qos_policy.id, - qos_policy.name, - qos_policy.shared, - qos_policy.is_default, - qos_policy.project_id, - )) + data.append( + ( + qos_policy.id, + qos_policy.name, + qos_policy.shared, + qos_policy.is_default, + qos_policy.project_id, + ) + ) def setUp(self): super(TestListNetworkQosPolicy, self).setUp() self.network.qos_policies = mock.Mock(return_value=self.qos_policies) # Get the command object to test - self.cmd = network_qos_policy.ListNetworkQosPolicy(self.app, - self.namespace) + self.cmd = network_qos_policy.ListNetworkQosPolicy( + self.app, self.namespace + ) def test_qos_policy_list(self): arglist = [] @@ -289,9 +304,7 @@ class TestListNetworkQosPolicy(TestQosPolicy): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.qos_policies.assert_called_once_with( - **{'shared': True} - ) + self.network.qos_policies.assert_called_once_with(**{'shared': True}) self.assertEqual(self.columns, columns) self.assertEqual(self.data, list(data)) @@ -305,9 +318,7 @@ class TestListNetworkQosPolicy(TestQosPolicy): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.qos_policies.assert_called_once_with( - **{'shared': False} - ) + self.network.qos_policies.assert_called_once_with(**{'shared': False}) self.assertEqual(self.columns, columns) self.assertEqual(self.data, list(data)) @@ -315,8 +326,10 @@ class TestListNetworkQosPolicy(TestQosPolicy): project = identity_fakes_v3.FakeProject.create_one_project() self.projects_mock.get.return_value = project arglist = [ - '--project', project.id, - '--project-domain', project.domain_id, + '--project', + project.id, + '--project-domain', + project.domain_id, ] verifylist = [ ('project', project.id), @@ -333,22 +346,23 @@ class TestListNetworkQosPolicy(TestQosPolicy): class TestSetNetworkQosPolicy(TestQosPolicy): - # The QoS policy to set. _qos_policy = network_fakes.FakeNetworkQosPolicy.create_one_qos_policy() def setUp(self): super(TestSetNetworkQosPolicy, self).setUp() self.network.update_qos_policy = mock.Mock(return_value=None) - self.network.find_qos_policy = mock.Mock( - return_value=self._qos_policy) + self.network.find_qos_policy = mock.Mock(return_value=self._qos_policy) # Get the command object to test - self.cmd = network_qos_policy.SetNetworkQosPolicy(self.app, - self.namespace) + self.cmd = network_qos_policy.SetNetworkQosPolicy( + self.app, self.namespace + ) def test_set_nothing(self): - arglist = [self._qos_policy.name, ] + arglist = [ + self._qos_policy.name, + ] verifylist = [ ('policy', self._qos_policy.name), ] @@ -358,14 +372,17 @@ class TestSetNetworkQosPolicy(TestQosPolicy): attrs = {} self.network.update_qos_policy.assert_called_with( - self._qos_policy, **attrs) + self._qos_policy, **attrs + ) self.assertIsNone(result) def test_set_name_share_description_default(self): arglist = [ - '--name', 'new_qos_policy', + '--name', + 'new_qos_policy', '--share', - '--description', 'QoS policy description', + '--description', + 'QoS policy description', '--default', self._qos_policy.name, ] @@ -386,7 +403,8 @@ class TestSetNetworkQosPolicy(TestQosPolicy): 'is_default': True, } self.network.update_qos_policy.assert_called_with( - self._qos_policy, **attrs) + self._qos_policy, **attrs + ) self.assertIsNone(result) def test_set_no_share_no_default(self): @@ -403,20 +421,16 @@ class TestSetNetworkQosPolicy(TestQosPolicy): parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) - attrs = { - 'shared': False, - 'is_default': False - } + attrs = {'shared': False, 'is_default': False} self.network.update_qos_policy.assert_called_with( - self._qos_policy, **attrs) + self._qos_policy, **attrs + ) self.assertIsNone(result) class TestShowNetworkQosPolicy(TestQosPolicy): - # The QoS policy to show. - _qos_policy = ( - network_fakes.FakeNetworkQosPolicy.create_one_qos_policy()) + _qos_policy = network_fakes.FakeNetworkQosPolicy.create_one_qos_policy() columns = ( 'description', 'id', @@ -441,16 +455,22 @@ class TestShowNetworkQosPolicy(TestQosPolicy): self.network.find_qos_policy = mock.Mock(return_value=self._qos_policy) # Get the command object to test - self.cmd = network_qos_policy.ShowNetworkQosPolicy(self.app, - self.namespace) + self.cmd = network_qos_policy.ShowNetworkQosPolicy( + self.app, self.namespace + ) def test_show_no_options(self): arglist = [] verifylist = [] # Missing required args should bail here - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_show_all_options(self): arglist = [ @@ -464,6 +484,7 @@ class TestShowNetworkQosPolicy(TestQosPolicy): columns, data = self.cmd.take_action(parsed_args) self.network.find_qos_policy.assert_called_once_with( - self._qos_policy.name, ignore_missing=False) + self._qos_policy.name, ignore_missing=False + ) self.assertEqual(self.columns, columns) self.assertEqual(list(self.data), list(data)) diff --git a/openstackclient/tests/unit/network/v2/test_network_qos_rule.py b/openstackclient/tests/unit/network/v2/test_network_qos_rule.py index c7de8160c5..0e7170526b 100644 --- a/openstackclient/tests/unit/network/v2/test_network_qos_rule.py +++ b/openstackclient/tests/unit/network/v2/test_network_qos_rule.py @@ -26,39 +26,62 @@ RULE_TYPE_BANDWIDTH_LIMIT = 'bandwidth-limit' RULE_TYPE_DSCP_MARKING = 'dscp-marking' RULE_TYPE_MINIMUM_BANDWIDTH = 'minimum-bandwidth' RULE_TYPE_MINIMUM_PACKET_RATE = 'minimum-packet-rate' -DSCP_VALID_MARKS = [0, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, - 34, 36, 38, 40, 46, 48, 56] +DSCP_VALID_MARKS = [ + 0, + 8, + 10, + 12, + 14, + 16, + 18, + 20, + 22, + 24, + 26, + 28, + 30, + 32, + 34, + 36, + 38, + 40, + 46, + 48, + 56, +] class TestNetworkQosRule(network_fakes.TestNetworkV2): - def setUp(self): super(TestNetworkQosRule, self).setUp() # Get a shortcut to the network client self.network = self.app.client_manager.network - self.qos_policy = (network_fakes.FakeNetworkQosPolicy. - create_one_qos_policy()) + self.qos_policy = ( + network_fakes.FakeNetworkQosPolicy.create_one_qos_policy() + ) self.network.find_qos_policy = mock.Mock(return_value=self.qos_policy) class TestCreateNetworkQosRuleMinimumBandwidth(TestNetworkQosRule): - def test_check_type_parameters(self): pass def setUp(self): super(TestCreateNetworkQosRuleMinimumBandwidth, self).setUp() - attrs = {'qos_policy_id': self.qos_policy.id, - 'type': RULE_TYPE_MINIMUM_BANDWIDTH} + attrs = { + 'qos_policy_id': self.qos_policy.id, + 'type': RULE_TYPE_MINIMUM_BANDWIDTH, + } self.new_rule = network_fakes.FakeNetworkQosRule.create_one_qos_rule( - attrs) + attrs + ) self.columns = ( 'direction', 'id', 'min_kbps', 'project_id', 'qos_policy_id', - 'type' + 'type', ) self.data = ( @@ -70,24 +93,33 @@ class TestCreateNetworkQosRuleMinimumBandwidth(TestNetworkQosRule): self.new_rule.type, ) self.network.create_qos_minimum_bandwidth_rule = mock.Mock( - return_value=self.new_rule) + return_value=self.new_rule + ) # Get the command object to test - self.cmd = network_qos_rule.CreateNetworkQosRule(self.app, - self.namespace) + self.cmd = network_qos_rule.CreateNetworkQosRule( + self.app, self.namespace + ) def test_create_no_options(self): arglist = [] verifylist = [] # Missing required args should bail here - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_create_default_options(self): arglist = [ - '--type', RULE_TYPE_MINIMUM_BANDWIDTH, - '--min-kbps', str(self.new_rule.min_kbps), + '--type', + RULE_TYPE_MINIMUM_BANDWIDTH, + '--min-kbps', + str(self.new_rule.min_kbps), '--egress', self.new_rule.qos_policy_id, ] @@ -100,20 +132,24 @@ class TestCreateNetworkQosRuleMinimumBandwidth(TestNetworkQosRule): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) self.network.create_qos_minimum_bandwidth_rule.assert_called_once_with( self.qos_policy.id, - **{'min_kbps': self.new_rule.min_kbps, - 'direction': self.new_rule.direction} + **{ + 'min_kbps': self.new_rule.min_kbps, + 'direction': self.new_rule.direction, + } ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) def test_create_wrong_options(self): arglist = [ - '--type', RULE_TYPE_MINIMUM_BANDWIDTH, - '--max-kbps', '10000', + '--type', + RULE_TYPE_MINIMUM_BANDWIDTH, + '--max-kbps', + '10000', self.new_rule.qos_policy_id, ] @@ -127,30 +163,34 @@ class TestCreateNetworkQosRuleMinimumBandwidth(TestNetworkQosRule): try: self.cmd.take_action(parsed_args) except exceptions.CommandError as e: - msg = ('Failed to create Network QoS rule: "Create" rule command ' - 'for type "minimum-bandwidth" requires arguments: ' - 'direction, min_kbps') + msg = ( + 'Failed to create Network QoS rule: "Create" rule command ' + 'for type "minimum-bandwidth" requires arguments: ' + 'direction, min_kbps' + ) self.assertEqual(msg, str(e)) class TestCreateNetworkQosRuleMinimumPacketRate(TestNetworkQosRule): - def test_check_type_parameters(self): pass def setUp(self): super(TestCreateNetworkQosRuleMinimumPacketRate, self).setUp() - attrs = {'qos_policy_id': self.qos_policy.id, - 'type': RULE_TYPE_MINIMUM_PACKET_RATE} + attrs = { + 'qos_policy_id': self.qos_policy.id, + 'type': RULE_TYPE_MINIMUM_PACKET_RATE, + } self.new_rule = network_fakes.FakeNetworkQosRule.create_one_qos_rule( - attrs) + attrs + ) self.columns = ( 'direction', 'id', 'min_kpps', 'project_id', 'qos_policy_id', - 'type' + 'type', ) self.data = ( @@ -162,24 +202,33 @@ class TestCreateNetworkQosRuleMinimumPacketRate(TestNetworkQosRule): self.new_rule.type, ) self.network.create_qos_minimum_packet_rate_rule = mock.Mock( - return_value=self.new_rule) + return_value=self.new_rule + ) # Get the command object to test - self.cmd = network_qos_rule.CreateNetworkQosRule(self.app, - self.namespace) + self.cmd = network_qos_rule.CreateNetworkQosRule( + self.app, self.namespace + ) def test_create_no_options(self): arglist = [] verifylist = [] # Missing required args should bail here - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_create_default_options(self): arglist = [ - '--type', RULE_TYPE_MINIMUM_PACKET_RATE, - '--min-kpps', str(self.new_rule.min_kpps), + '--type', + RULE_TYPE_MINIMUM_PACKET_RATE, + '--min-kpps', + str(self.new_rule.min_kpps), '--egress', self.new_rule.qos_policy_id, ] @@ -192,20 +241,24 @@ class TestCreateNetworkQosRuleMinimumPacketRate(TestNetworkQosRule): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) - self.network.create_qos_minimum_packet_rate_rule.\ - assert_called_once_with( - self.qos_policy.id, - **{'min_kpps': self.new_rule.min_kpps, - 'direction': self.new_rule.direction}) + self.network.create_qos_minimum_packet_rate_rule.assert_called_once_with( # noqa: E501 + self.qos_policy.id, + **{ + 'min_kpps': self.new_rule.min_kpps, + 'direction': self.new_rule.direction, + } + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) def test_create_wrong_options(self): arglist = [ - '--type', RULE_TYPE_MINIMUM_PACKET_RATE, - '--min-kbps', '10000', + '--type', + RULE_TYPE_MINIMUM_PACKET_RATE, + '--min-kbps', + '10000', self.new_rule.qos_policy_id, ] @@ -219,29 +272,33 @@ class TestCreateNetworkQosRuleMinimumPacketRate(TestNetworkQosRule): try: self.cmd.take_action(parsed_args) except exceptions.CommandError as e: - msg = ('Failed to create Network QoS rule: "Create" rule command ' - 'for type "minimum-packet-rate" requires arguments: ' - 'direction, min_kpps') + msg = ( + 'Failed to create Network QoS rule: "Create" rule command ' + 'for type "minimum-packet-rate" requires arguments: ' + 'direction, min_kpps' + ) self.assertEqual(msg, str(e)) class TestCreateNetworkQosRuleDSCPMarking(TestNetworkQosRule): - def test_check_type_parameters(self): pass def setUp(self): super(TestCreateNetworkQosRuleDSCPMarking, self).setUp() - attrs = {'qos_policy_id': self.qos_policy.id, - 'type': RULE_TYPE_DSCP_MARKING} + attrs = { + 'qos_policy_id': self.qos_policy.id, + 'type': RULE_TYPE_DSCP_MARKING, + } self.new_rule = network_fakes.FakeNetworkQosRule.create_one_qos_rule( - attrs) + attrs + ) self.columns = ( 'dscp_mark', 'id', 'project_id', 'qos_policy_id', - 'type' + 'type', ) self.data = ( @@ -252,24 +309,33 @@ class TestCreateNetworkQosRuleDSCPMarking(TestNetworkQosRule): self.new_rule.type, ) self.network.create_qos_dscp_marking_rule = mock.Mock( - return_value=self.new_rule) + return_value=self.new_rule + ) # Get the command object to test - self.cmd = network_qos_rule.CreateNetworkQosRule(self.app, - self.namespace) + self.cmd = network_qos_rule.CreateNetworkQosRule( + self.app, self.namespace + ) def test_create_no_options(self): arglist = [] verifylist = [] # Missing required args should bail here - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_create_default_options(self): arglist = [ - '--type', RULE_TYPE_DSCP_MARKING, - '--dscp-mark', str(self.new_rule.dscp_mark), + '--type', + RULE_TYPE_DSCP_MARKING, + '--dscp-mark', + str(self.new_rule.dscp_mark), self.new_rule.qos_policy_id, ] @@ -283,16 +349,17 @@ class TestCreateNetworkQosRuleDSCPMarking(TestNetworkQosRule): columns, data = self.cmd.take_action(parsed_args) self.network.create_qos_dscp_marking_rule.assert_called_once_with( - self.qos_policy.id, - **{'dscp_mark': self.new_rule.dscp_mark} + self.qos_policy.id, **{'dscp_mark': self.new_rule.dscp_mark} ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) def test_create_wrong_options(self): arglist = [ - '--type', RULE_TYPE_DSCP_MARKING, - '--max-kbps', '10000', + '--type', + RULE_TYPE_DSCP_MARKING, + '--max-kbps', + '10000', self.new_rule.qos_policy_id, ] @@ -306,22 +373,26 @@ class TestCreateNetworkQosRuleDSCPMarking(TestNetworkQosRule): try: self.cmd.take_action(parsed_args) except exceptions.CommandError as e: - msg = ('Failed to create Network QoS rule: "Create" rule command ' - 'for type "dscp-marking" requires arguments: dscp_mark') + msg = ( + 'Failed to create Network QoS rule: "Create" rule command ' + 'for type "dscp-marking" requires arguments: dscp_mark' + ) self.assertEqual(msg, str(e)) class TestCreateNetworkQosRuleBandwidtLimit(TestNetworkQosRule): - def test_check_type_parameters(self): pass def setUp(self): super(TestCreateNetworkQosRuleBandwidtLimit, self).setUp() - attrs = {'qos_policy_id': self.qos_policy.id, - 'type': RULE_TYPE_BANDWIDTH_LIMIT} + attrs = { + 'qos_policy_id': self.qos_policy.id, + 'type': RULE_TYPE_BANDWIDTH_LIMIT, + } self.new_rule = network_fakes.FakeNetworkQosRule.create_one_qos_rule( - attrs) + attrs + ) self.columns = ( 'direction', 'id', @@ -329,7 +400,7 @@ class TestCreateNetworkQosRuleBandwidtLimit(TestNetworkQosRule): 'max_kbps', 'project_id', 'qos_policy_id', - 'type' + 'type', ) self.data = ( @@ -342,24 +413,33 @@ class TestCreateNetworkQosRuleBandwidtLimit(TestNetworkQosRule): self.new_rule.type, ) self.network.create_qos_bandwidth_limit_rule = mock.Mock( - return_value=self.new_rule) + return_value=self.new_rule + ) # Get the command object to test - self.cmd = network_qos_rule.CreateNetworkQosRule(self.app, - self.namespace) + self.cmd = network_qos_rule.CreateNetworkQosRule( + self.app, self.namespace + ) def test_create_no_options(self): arglist = [] verifylist = [] # Missing required args should bail here - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_create_default_options(self): arglist = [ - '--type', RULE_TYPE_BANDWIDTH_LIMIT, - '--max-kbps', str(self.new_rule.max_kbps), + '--type', + RULE_TYPE_BANDWIDTH_LIMIT, + '--max-kbps', + str(self.new_rule.max_kbps), '--egress', self.new_rule.qos_policy_id, ] @@ -372,8 +452,11 @@ class TestCreateNetworkQosRuleBandwidtLimit(TestNetworkQosRule): ] rule = network_fakes.FakeNetworkQosRule.create_one_qos_rule( - {'qos_policy_id': self.qos_policy.id, - 'type': RULE_TYPE_BANDWIDTH_LIMIT}) + { + 'qos_policy_id': self.qos_policy.id, + 'type': RULE_TYPE_BANDWIDTH_LIMIT, + } + ) rule.max_burst_kbits = 0 expected_data = ( rule.direction, @@ -386,24 +469,29 @@ class TestCreateNetworkQosRuleBandwidtLimit(TestNetworkQosRule): ) with mock.patch.object( - self.network, "create_qos_bandwidth_limit_rule", - return_value=rule) as create_qos_bandwidth_limit_rule: + self.network, "create_qos_bandwidth_limit_rule", return_value=rule + ) as create_qos_bandwidth_limit_rule: parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) create_qos_bandwidth_limit_rule.assert_called_once_with( self.qos_policy.id, - **{'max_kbps': self.new_rule.max_kbps, - 'direction': self.new_rule.direction} + **{ + 'max_kbps': self.new_rule.max_kbps, + 'direction': self.new_rule.direction, + } ) self.assertEqual(self.columns, columns) self.assertEqual(expected_data, data) def test_create_all_options(self): arglist = [ - '--type', RULE_TYPE_BANDWIDTH_LIMIT, - '--max-kbps', str(self.new_rule.max_kbps), - '--max-burst-kbits', str(self.new_rule.max_burst_kbits), + '--type', + RULE_TYPE_BANDWIDTH_LIMIT, + '--max-kbps', + str(self.new_rule.max_kbps), + '--max-burst-kbits', + str(self.new_rule.max_burst_kbits), '--egress', self.new_rule.qos_policy_id, ] @@ -417,21 +505,25 @@ class TestCreateNetworkQosRuleBandwidtLimit(TestNetworkQosRule): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) self.network.create_qos_bandwidth_limit_rule.assert_called_once_with( self.qos_policy.id, - **{'max_kbps': self.new_rule.max_kbps, - 'max_burst_kbps': self.new_rule.max_burst_kbits, - 'direction': self.new_rule.direction} + **{ + 'max_kbps': self.new_rule.max_kbps, + 'max_burst_kbps': self.new_rule.max_burst_kbits, + 'direction': self.new_rule.direction, + } ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) def test_create_wrong_options(self): arglist = [ - '--type', RULE_TYPE_BANDWIDTH_LIMIT, - '--min-kbps', '10000', + '--type', + RULE_TYPE_BANDWIDTH_LIMIT, + '--min-kbps', + '10000', self.new_rule.qos_policy_id, ] @@ -445,30 +537,37 @@ class TestCreateNetworkQosRuleBandwidtLimit(TestNetworkQosRule): try: self.cmd.take_action(parsed_args) except exceptions.CommandError as e: - msg = ('Failed to create Network QoS rule: "Create" rule command ' - 'for type "bandwidth-limit" requires arguments: max_kbps') + msg = ( + 'Failed to create Network QoS rule: "Create" rule command ' + 'for type "bandwidth-limit" requires arguments: max_kbps' + ) self.assertEqual(msg, str(e)) class TestDeleteNetworkQosRuleMinimumBandwidth(TestNetworkQosRule): - def setUp(self): super(TestDeleteNetworkQosRuleMinimumBandwidth, self).setUp() - attrs = {'qos_policy_id': self.qos_policy.id, - 'type': RULE_TYPE_MINIMUM_BANDWIDTH} + attrs = { + 'qos_policy_id': self.qos_policy.id, + 'type': RULE_TYPE_MINIMUM_BANDWIDTH, + } self.new_rule = network_fakes.FakeNetworkQosRule.create_one_qos_rule( - attrs) + attrs + ) self.qos_policy.rules = [self.new_rule] self.network.delete_qos_minimum_bandwidth_rule = mock.Mock( - return_value=None) + return_value=None + ) self.network.find_qos_minimum_bandwidth_rule = ( network_fakes.FakeNetworkQosRule.get_qos_rules( - qos_rules=self.new_rule) + qos_rules=self.new_rule + ) ) # Get the command object to test - self.cmd = network_qos_rule.DeleteNetworkQosRule(self.app, - self.namespace) + self.cmd = network_qos_rule.DeleteNetworkQosRule( + self.app, self.namespace + ) def test_qos_policy_delete(self): arglist = [ @@ -483,9 +582,11 @@ class TestDeleteNetworkQosRuleMinimumBandwidth(TestNetworkQosRule): parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.network.find_qos_policy.assert_called_once_with( - self.qos_policy.id, ignore_missing=False) + self.qos_policy.id, ignore_missing=False + ) self.network.delete_qos_minimum_bandwidth_rule.assert_called_once_with( - self.new_rule.id, self.qos_policy.id) + self.new_rule.id, self.qos_policy.id + ) self.assertIsNone(result) def test_qos_policy_delete_error(self): @@ -498,36 +599,44 @@ class TestDeleteNetworkQosRuleMinimumBandwidth(TestNetworkQosRule): ('id', self.new_rule.id), ] - self.network.delete_qos_minimum_bandwidth_rule.side_effect = \ - Exception('Error message') + self.network.delete_qos_minimum_bandwidth_rule.side_effect = Exception( + 'Error message' + ) try: parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.cmd.take_action(parsed_args) except exceptions.CommandError as e: - msg = ('Failed to delete Network QoS rule ID "%(rule)s": %(e)s' % - {'rule': self.new_rule.id, 'e': 'Error message'}) + msg = 'Failed to delete Network QoS rule ID "%(rule)s": %(e)s' % { + 'rule': self.new_rule.id, + 'e': 'Error message', + } self.assertEqual(msg, str(e)) class TestDeleteNetworkQosRuleMinimumPacketRate(TestNetworkQosRule): - def setUp(self): super(TestDeleteNetworkQosRuleMinimumPacketRate, self).setUp() - attrs = {'qos_policy_id': self.qos_policy.id, - 'type': RULE_TYPE_MINIMUM_PACKET_RATE} + attrs = { + 'qos_policy_id': self.qos_policy.id, + 'type': RULE_TYPE_MINIMUM_PACKET_RATE, + } self.new_rule = network_fakes.FakeNetworkQosRule.create_one_qos_rule( - attrs) + attrs + ) self.qos_policy.rules = [self.new_rule] self.network.delete_qos_minimum_packet_rate_rule = mock.Mock( - return_value=None) + return_value=None + ) self.network.find_qos_minimum_packet_rate_rule = ( network_fakes.FakeNetworkQosRule.get_qos_rules( - qos_rules=self.new_rule) + qos_rules=self.new_rule + ) ) # Get the command object to test - self.cmd = network_qos_rule.DeleteNetworkQosRule(self.app, - self.namespace) + self.cmd = network_qos_rule.DeleteNetworkQosRule( + self.app, self.namespace + ) def test_qos_policy_delete(self): arglist = [ @@ -542,9 +651,11 @@ class TestDeleteNetworkQosRuleMinimumPacketRate(TestNetworkQosRule): parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.network.find_qos_policy.assert_called_once_with( - self.qos_policy.id, ignore_missing=False) - self.network.delete_qos_minimum_packet_rate_rule.\ - assert_called_once_with(self.new_rule.id, self.qos_policy.id) + self.qos_policy.id, ignore_missing=False + ) + self.network.delete_qos_minimum_packet_rate_rule.assert_called_once_with( # noqa: E501 + self.new_rule.id, self.qos_policy.id + ) self.assertIsNone(result) def test_qos_policy_delete_error(self): @@ -557,36 +668,44 @@ class TestDeleteNetworkQosRuleMinimumPacketRate(TestNetworkQosRule): ('id', self.new_rule.id), ] - self.network.delete_qos_minimum_packet_rate_rule.side_effect = \ + self.network.delete_qos_minimum_packet_rate_rule.side_effect = ( Exception('Error message') + ) try: parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.cmd.take_action(parsed_args) except exceptions.CommandError as e: - msg = ('Failed to delete Network QoS rule ID "%(rule)s": %(e)s' % - {'rule': self.new_rule.id, 'e': 'Error message'}) + msg = 'Failed to delete Network QoS rule ID "%(rule)s": %(e)s' % { + 'rule': self.new_rule.id, + 'e': 'Error message', + } self.assertEqual(msg, str(e)) class TestDeleteNetworkQosRuleDSCPMarking(TestNetworkQosRule): - def setUp(self): super(TestDeleteNetworkQosRuleDSCPMarking, self).setUp() - attrs = {'qos_policy_id': self.qos_policy.id, - 'type': RULE_TYPE_DSCP_MARKING} + attrs = { + 'qos_policy_id': self.qos_policy.id, + 'type': RULE_TYPE_DSCP_MARKING, + } self.new_rule = network_fakes.FakeNetworkQosRule.create_one_qos_rule( - attrs) + attrs + ) self.qos_policy.rules = [self.new_rule] self.network.delete_qos_dscp_marking_rule = mock.Mock( - return_value=None) + return_value=None + ) self.network.find_qos_dscp_marking_rule = ( network_fakes.FakeNetworkQosRule.get_qos_rules( - qos_rules=self.new_rule) + qos_rules=self.new_rule + ) ) # Get the command object to test - self.cmd = network_qos_rule.DeleteNetworkQosRule(self.app, - self.namespace) + self.cmd = network_qos_rule.DeleteNetworkQosRule( + self.app, self.namespace + ) def test_qos_policy_delete(self): arglist = [ @@ -601,9 +720,11 @@ class TestDeleteNetworkQosRuleDSCPMarking(TestNetworkQosRule): parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.network.find_qos_policy.assert_called_once_with( - self.qos_policy.id, ignore_missing=False) + self.qos_policy.id, ignore_missing=False + ) self.network.delete_qos_dscp_marking_rule.assert_called_once_with( - self.new_rule.id, self.qos_policy.id) + self.new_rule.id, self.qos_policy.id + ) self.assertIsNone(result) def test_qos_policy_delete_error(self): @@ -616,36 +737,44 @@ class TestDeleteNetworkQosRuleDSCPMarking(TestNetworkQosRule): ('id', self.new_rule.id), ] - self.network.delete_qos_dscp_marking_rule.side_effect = \ - Exception('Error message') + self.network.delete_qos_dscp_marking_rule.side_effect = Exception( + 'Error message' + ) try: parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.cmd.take_action(parsed_args) except exceptions.CommandError as e: - msg = ('Failed to delete Network QoS rule ID "%(rule)s": %(e)s' % - {'rule': self.new_rule.id, 'e': 'Error message'}) + msg = 'Failed to delete Network QoS rule ID "%(rule)s": %(e)s' % { + 'rule': self.new_rule.id, + 'e': 'Error message', + } self.assertEqual(msg, str(e)) class TestDeleteNetworkQosRuleBandwidthLimit(TestNetworkQosRule): - def setUp(self): super(TestDeleteNetworkQosRuleBandwidthLimit, self).setUp() - attrs = {'qos_policy_id': self.qos_policy.id, - 'type': RULE_TYPE_BANDWIDTH_LIMIT} + attrs = { + 'qos_policy_id': self.qos_policy.id, + 'type': RULE_TYPE_BANDWIDTH_LIMIT, + } self.new_rule = network_fakes.FakeNetworkQosRule.create_one_qos_rule( - attrs) + attrs + ) self.qos_policy.rules = [self.new_rule] self.network.delete_qos_bandwidth_limit_rule = mock.Mock( - return_value=None) + return_value=None + ) self.network.find_qos_bandwidth_limit_rule = ( network_fakes.FakeNetworkQosRule.get_qos_rules( - qos_rules=self.new_rule) + qos_rules=self.new_rule + ) ) # Get the command object to test - self.cmd = network_qos_rule.DeleteNetworkQosRule(self.app, - self.namespace) + self.cmd = network_qos_rule.DeleteNetworkQosRule( + self.app, self.namespace + ) def test_qos_policy_delete(self): arglist = [ @@ -660,9 +789,11 @@ class TestDeleteNetworkQosRuleBandwidthLimit(TestNetworkQosRule): parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.network.find_qos_policy.assert_called_once_with( - self.qos_policy.id, ignore_missing=False) + self.qos_policy.id, ignore_missing=False + ) self.network.delete_qos_bandwidth_limit_rule.assert_called_once_with( - self.new_rule.id, self.qos_policy.id) + self.new_rule.id, self.qos_policy.id + ) self.assertIsNone(result) def test_qos_policy_delete_error(self): @@ -675,36 +806,41 @@ class TestDeleteNetworkQosRuleBandwidthLimit(TestNetworkQosRule): ('id', self.new_rule.id), ] - self.network.delete_qos_bandwidth_limit_rule.side_effect = \ - Exception('Error message') + self.network.delete_qos_bandwidth_limit_rule.side_effect = Exception( + 'Error message' + ) try: parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.cmd.take_action(parsed_args) except exceptions.CommandError as e: - msg = ('Failed to delete Network QoS rule ID "%(rule)s": %(e)s' % - {'rule': self.new_rule.id, 'e': 'Error message'}) + msg = 'Failed to delete Network QoS rule ID "%(rule)s": %(e)s' % { + 'rule': self.new_rule.id, + 'e': 'Error message', + } self.assertEqual(msg, str(e)) class TestSetNetworkQosRuleMinimumBandwidth(TestNetworkQosRule): - def setUp(self): super(TestSetNetworkQosRuleMinimumBandwidth, self).setUp() - attrs = {'qos_policy_id': self.qos_policy.id, - 'type': RULE_TYPE_MINIMUM_BANDWIDTH} + attrs = { + 'qos_policy_id': self.qos_policy.id, + 'type': RULE_TYPE_MINIMUM_BANDWIDTH, + } self.new_rule = network_fakes.FakeNetworkQosRule.create_one_qos_rule( - attrs=attrs) + attrs=attrs + ) self.qos_policy.rules = [self.new_rule] self.network.update_qos_minimum_bandwidth_rule = mock.Mock( - return_value=None) + return_value=None + ) self.network.find_qos_minimum_bandwidth_rule = mock.Mock( - return_value=self.new_rule) - self.network.find_qos_policy = mock.Mock( - return_value=self.qos_policy) + return_value=self.new_rule + ) + self.network.find_qos_policy = mock.Mock(return_value=self.qos_policy) # Get the command object to test - self.cmd = (network_qos_rule.SetNetworkQosRule(self.app, - self.namespace)) + self.cmd = network_qos_rule.SetNetworkQosRule(self.app, self.namespace) def test_set_nothing(self): arglist = [ @@ -720,7 +856,8 @@ class TestSetNetworkQosRuleMinimumBandwidth(TestNetworkQosRule): result = self.cmd.take_action(parsed_args) self.network.update_qos_minimum_bandwidth_rule.assert_called_with( - self.new_rule, self.qos_policy.id) + self.new_rule, self.qos_policy.id + ) self.assertIsNone(result) def test_set_min_kbps(self): @@ -735,7 +872,8 @@ class TestSetNetworkQosRuleMinimumBandwidth(TestNetworkQosRule): self.new_rule.min_kbps = min_kbps arglist = [ - '--min-kbps', str(self.new_rule.min_kbps), + '--min-kbps', + str(self.new_rule.min_kbps), self.new_rule.qos_policy_id, self.new_rule.id, ] @@ -752,7 +890,8 @@ class TestSetNetworkQosRuleMinimumBandwidth(TestNetworkQosRule): 'min_kbps': self.new_rule.min_kbps, } self.network.update_qos_minimum_bandwidth_rule.assert_called_with( - self.new_rule, self.qos_policy.id, **attrs) + self.new_rule, self.qos_policy.id, **attrs + ) self.assertIsNone(result) if min_kbps: @@ -760,7 +899,8 @@ class TestSetNetworkQosRuleMinimumBandwidth(TestNetworkQosRule): def test_set_wrong_options(self): arglist = [ - '--max-kbps', str(10000), + '--max-kbps', + str(10000), self.new_rule.qos_policy_id, self.new_rule.id, ] @@ -774,31 +914,35 @@ class TestSetNetworkQosRuleMinimumBandwidth(TestNetworkQosRule): try: self.cmd.take_action(parsed_args) except exceptions.CommandError as e: - msg = ('Failed to set Network QoS rule ID "%(rule)s": Rule type ' - '"minimum-bandwidth" only requires arguments: direction, ' - 'min_kbps' % {'rule': self.new_rule.id}) + msg = ( + 'Failed to set Network QoS rule ID "%(rule)s": Rule type ' + '"minimum-bandwidth" only requires arguments: direction, ' + 'min_kbps' % {'rule': self.new_rule.id} + ) self.assertEqual(msg, str(e)) class TestSetNetworkQosRuleMinimumPacketRate(TestNetworkQosRule): - def setUp(self): super(TestSetNetworkQosRuleMinimumPacketRate, self).setUp() - attrs = {'qos_policy_id': self.qos_policy.id, - 'type': RULE_TYPE_MINIMUM_PACKET_RATE} + attrs = { + 'qos_policy_id': self.qos_policy.id, + 'type': RULE_TYPE_MINIMUM_PACKET_RATE, + } self.new_rule = network_fakes.FakeNetworkQosRule.create_one_qos_rule( - attrs=attrs) + attrs=attrs + ) self.qos_policy.rules = [self.new_rule] self.network.update_qos_minimum_packet_rate_rule = mock.Mock( - return_value=None) + return_value=None + ) self.network.find_qos_minimum_packet_rate_rule = mock.Mock( - return_value=self.new_rule) - self.network.find_qos_policy = mock.Mock( - return_value=self.qos_policy) + return_value=self.new_rule + ) + self.network.find_qos_policy = mock.Mock(return_value=self.qos_policy) # Get the command object to test - self.cmd = (network_qos_rule.SetNetworkQosRule(self.app, - self.namespace)) + self.cmd = network_qos_rule.SetNetworkQosRule(self.app, self.namespace) def test_set_nothing(self): arglist = [ @@ -814,7 +958,8 @@ class TestSetNetworkQosRuleMinimumPacketRate(TestNetworkQosRule): result = self.cmd.take_action(parsed_args) self.network.update_qos_minimum_packet_rate_rule.assert_called_with( - self.new_rule, self.qos_policy.id) + self.new_rule, self.qos_policy.id + ) self.assertIsNone(result) def test_set_min_kpps(self): @@ -829,7 +974,8 @@ class TestSetNetworkQosRuleMinimumPacketRate(TestNetworkQosRule): self.new_rule.min_kpps = min_kpps arglist = [ - '--min-kpps', str(self.new_rule.min_kpps), + '--min-kpps', + str(self.new_rule.min_kpps), self.new_rule.qos_policy_id, self.new_rule.id, ] @@ -846,7 +992,8 @@ class TestSetNetworkQosRuleMinimumPacketRate(TestNetworkQosRule): 'min_kpps': self.new_rule.min_kpps, } self.network.update_qos_minimum_packet_rate_rule.assert_called_with( - self.new_rule, self.qos_policy.id, **attrs) + self.new_rule, self.qos_policy.id, **attrs + ) self.assertIsNone(result) if min_kpps: @@ -854,7 +1001,8 @@ class TestSetNetworkQosRuleMinimumPacketRate(TestNetworkQosRule): def test_set_wrong_options(self): arglist = [ - '--min-kbps', str(10000), + '--min-kbps', + str(10000), self.new_rule.qos_policy_id, self.new_rule.id, ] @@ -868,31 +1016,35 @@ class TestSetNetworkQosRuleMinimumPacketRate(TestNetworkQosRule): try: self.cmd.take_action(parsed_args) except exceptions.CommandError as e: - msg = ('Failed to set Network QoS rule ID "%(rule)s": Rule type ' - '"minimum-packet-rate" only requires arguments: direction, ' - 'min_kpps' % {'rule': self.new_rule.id}) + msg = ( + 'Failed to set Network QoS rule ID "%(rule)s": Rule type ' + '"minimum-packet-rate" only requires arguments: direction, ' + 'min_kpps' % {'rule': self.new_rule.id} + ) self.assertEqual(msg, str(e)) class TestSetNetworkQosRuleDSCPMarking(TestNetworkQosRule): - def setUp(self): super(TestSetNetworkQosRuleDSCPMarking, self).setUp() - attrs = {'qos_policy_id': self.qos_policy.id, - 'type': RULE_TYPE_DSCP_MARKING} + attrs = { + 'qos_policy_id': self.qos_policy.id, + 'type': RULE_TYPE_DSCP_MARKING, + } self.new_rule = network_fakes.FakeNetworkQosRule.create_one_qos_rule( - attrs=attrs) + attrs=attrs + ) self.qos_policy.rules = [self.new_rule] self.network.update_qos_dscp_marking_rule = mock.Mock( - return_value=None) + return_value=None + ) self.network.find_qos_dscp_marking_rule = mock.Mock( - return_value=self.new_rule) - self.network.find_qos_policy = mock.Mock( - return_value=self.qos_policy) + return_value=self.new_rule + ) + self.network.find_qos_policy = mock.Mock(return_value=self.qos_policy) # Get the command object to test - self.cmd = (network_qos_rule.SetNetworkQosRule(self.app, - self.namespace)) + self.cmd = network_qos_rule.SetNetworkQosRule(self.app, self.namespace) def test_set_nothing(self): arglist = [ @@ -908,7 +1060,8 @@ class TestSetNetworkQosRuleDSCPMarking(TestNetworkQosRule): result = self.cmd.take_action(parsed_args) self.network.update_qos_dscp_marking_rule.assert_called_with( - self.new_rule, self.qos_policy.id) + self.new_rule, self.qos_policy.id + ) self.assertIsNone(result) def test_set_dscp_mark(self): @@ -923,7 +1076,8 @@ class TestSetNetworkQosRuleDSCPMarking(TestNetworkQosRule): self.new_rule.dscp_mark = dscp_mark arglist = [ - '--dscp-mark', str(self.new_rule.dscp_mark), + '--dscp-mark', + str(self.new_rule.dscp_mark), self.new_rule.qos_policy_id, self.new_rule.id, ] @@ -940,7 +1094,8 @@ class TestSetNetworkQosRuleDSCPMarking(TestNetworkQosRule): 'dscp_mark': self.new_rule.dscp_mark, } self.network.update_qos_dscp_marking_rule.assert_called_with( - self.new_rule, self.qos_policy.id, **attrs) + self.new_rule, self.qos_policy.id, **attrs + ) self.assertIsNone(result) if dscp_mark: @@ -948,7 +1103,8 @@ class TestSetNetworkQosRuleDSCPMarking(TestNetworkQosRule): def test_set_wrong_options(self): arglist = [ - '--max-kbps', str(10000), + '--max-kbps', + str(10000), self.new_rule.qos_policy_id, self.new_rule.id, ] @@ -962,31 +1118,35 @@ class TestSetNetworkQosRuleDSCPMarking(TestNetworkQosRule): try: self.cmd.take_action(parsed_args) except exceptions.CommandError as e: - msg = ('Failed to set Network QoS rule ID "%(rule)s": Rule type ' - '"dscp-marking" only requires arguments: dscp_mark' % - {'rule': self.new_rule.id}) + msg = ( + 'Failed to set Network QoS rule ID "%(rule)s": Rule type ' + '"dscp-marking" only requires arguments: dscp_mark' + % {'rule': self.new_rule.id} + ) self.assertEqual(msg, str(e)) class TestSetNetworkQosRuleBandwidthLimit(TestNetworkQosRule): - def setUp(self): super(TestSetNetworkQosRuleBandwidthLimit, self).setUp() - attrs = {'qos_policy_id': self.qos_policy.id, - 'type': RULE_TYPE_BANDWIDTH_LIMIT} + attrs = { + 'qos_policy_id': self.qos_policy.id, + 'type': RULE_TYPE_BANDWIDTH_LIMIT, + } self.new_rule = network_fakes.FakeNetworkQosRule.create_one_qos_rule( - attrs=attrs) + attrs=attrs + ) self.qos_policy.rules = [self.new_rule] self.network.update_qos_bandwidth_limit_rule = mock.Mock( - return_value=None) + return_value=None + ) self.network.find_qos_bandwidth_limit_rule = mock.Mock( - return_value=self.new_rule) - self.network.find_qos_policy = mock.Mock( - return_value=self.qos_policy) + return_value=self.new_rule + ) + self.network.find_qos_policy = mock.Mock(return_value=self.qos_policy) # Get the command object to test - self.cmd = (network_qos_rule.SetNetworkQosRule(self.app, - self.namespace)) + self.cmd = network_qos_rule.SetNetworkQosRule(self.app, self.namespace) def test_set_nothing(self): arglist = [ @@ -1002,7 +1162,8 @@ class TestSetNetworkQosRuleBandwidthLimit(TestNetworkQosRule): result = self.cmd.take_action(parsed_args) self.network.update_qos_bandwidth_limit_rule.assert_called_with( - self.new_rule, self.qos_policy.id) + self.new_rule, self.qos_policy.id + ) self.assertIsNone(result) def test_set_max_kbps(self): @@ -1016,12 +1177,12 @@ class TestSetNetworkQosRuleBandwidthLimit(TestNetworkQosRule): def _set_max_kbps(self, max_kbps=None): if max_kbps: - self.addCleanup(self._reset_max_kbps, - self.new_rule.max_kbps) + self.addCleanup(self._reset_max_kbps, self.new_rule.max_kbps) self.new_rule.max_kbps = max_kbps arglist = [ - '--max-kbps', str(self.new_rule.max_kbps), + '--max-kbps', + str(self.new_rule.max_kbps), self.new_rule.qos_policy_id, self.new_rule.id, ] @@ -1038,7 +1199,8 @@ class TestSetNetworkQosRuleBandwidthLimit(TestNetworkQosRule): 'max_kbps': self.new_rule.max_kbps, } self.network.update_qos_bandwidth_limit_rule.assert_called_with( - self.new_rule, self.qos_policy.id, **attrs) + self.new_rule, self.qos_policy.id, **attrs + ) self.assertIsNone(result) def test_set_max_burst_kbits(self): @@ -1052,12 +1214,14 @@ class TestSetNetworkQosRuleBandwidthLimit(TestNetworkQosRule): def _set_max_burst_kbits(self, max_burst_kbits=None): if max_burst_kbits: - self.addCleanup(self._reset_max_burst_kbits, - self.new_rule.max_burst_kbits) + self.addCleanup( + self._reset_max_burst_kbits, self.new_rule.max_burst_kbits + ) self.new_rule.max_burst_kbits = max_burst_kbits arglist = [ - '--max-burst-kbits', str(self.new_rule.max_burst_kbits), + '--max-burst-kbits', + str(self.new_rule.max_burst_kbits), self.new_rule.qos_policy_id, self.new_rule.id, ] @@ -1074,7 +1238,8 @@ class TestSetNetworkQosRuleBandwidthLimit(TestNetworkQosRule): 'max_burst_kbps': self.new_rule.max_burst_kbits, } self.network.update_qos_bandwidth_limit_rule.assert_called_with( - self.new_rule, self.qos_policy.id, **attrs) + self.new_rule, self.qos_policy.id, **attrs + ) self.assertIsNone(result) def test_set_direction_egress(self): @@ -1107,12 +1272,14 @@ class TestSetNetworkQosRuleBandwidthLimit(TestNetworkQosRule): 'direction': direction, } self.network.update_qos_bandwidth_limit_rule.assert_called_with( - self.new_rule, self.qos_policy.id, **attrs) + self.new_rule, self.qos_policy.id, **attrs + ) self.assertIsNone(result) def test_set_wrong_options(self): arglist = [ - '--min-kbps', str(10000), + '--min-kbps', + str(10000), self.new_rule.qos_policy_id, self.new_rule.id, ] @@ -1126,41 +1293,54 @@ class TestSetNetworkQosRuleBandwidthLimit(TestNetworkQosRule): try: self.cmd.take_action(parsed_args) except exceptions.CommandError as e: - msg = ('Failed to set Network QoS rule ID "%(rule)s": Rule type ' - '"bandwidth-limit" only requires arguments: direction, ' - 'max_burst_kbps, max_kbps' % {'rule': self.new_rule.id}) + msg = ( + 'Failed to set Network QoS rule ID "%(rule)s": Rule type ' + '"bandwidth-limit" only requires arguments: direction, ' + 'max_burst_kbps, max_kbps' % {'rule': self.new_rule.id} + ) self.assertEqual(msg, str(e)) class TestListNetworkQosRule(TestNetworkQosRule): - def setUp(self): super(TestListNetworkQosRule, self).setUp() - attrs = {'qos_policy_id': self.qos_policy.id, - 'type': RULE_TYPE_MINIMUM_BANDWIDTH} - self.new_rule_min_bw = (network_fakes.FakeNetworkQosRule. - create_one_qos_rule(attrs=attrs)) + attrs = { + 'qos_policy_id': self.qos_policy.id, + 'type': RULE_TYPE_MINIMUM_BANDWIDTH, + } + self.new_rule_min_bw = ( + network_fakes.FakeNetworkQosRule.create_one_qos_rule(attrs=attrs) + ) attrs['type'] = RULE_TYPE_MINIMUM_PACKET_RATE - self.new_rule_min_pps = (network_fakes.FakeNetworkQosRule. - create_one_qos_rule(attrs=attrs)) + self.new_rule_min_pps = ( + network_fakes.FakeNetworkQosRule.create_one_qos_rule(attrs=attrs) + ) attrs['type'] = RULE_TYPE_DSCP_MARKING - self.new_rule_dscp_mark = (network_fakes.FakeNetworkQosRule. - create_one_qos_rule(attrs=attrs)) + self.new_rule_dscp_mark = ( + network_fakes.FakeNetworkQosRule.create_one_qos_rule(attrs=attrs) + ) attrs['type'] = RULE_TYPE_BANDWIDTH_LIMIT - self.new_rule_max_bw = (network_fakes.FakeNetworkQosRule. - create_one_qos_rule(attrs=attrs)) - self.qos_policy.rules = [self.new_rule_min_bw, - self.new_rule_min_pps, - self.new_rule_dscp_mark, - self.new_rule_max_bw] + self.new_rule_max_bw = ( + network_fakes.FakeNetworkQosRule.create_one_qos_rule(attrs=attrs) + ) + self.qos_policy.rules = [ + self.new_rule_min_bw, + self.new_rule_min_pps, + self.new_rule_dscp_mark, + self.new_rule_max_bw, + ] self.network.find_qos_minimum_bandwidth_rule = mock.Mock( - return_value=self.new_rule_min_bw) + return_value=self.new_rule_min_bw + ) self.network.find_qos_minimum_packet_rate_rule = mock.Mock( - return_value=self.new_rule_min_pps) + return_value=self.new_rule_min_pps + ) self.network.find_qos_dscp_marking_rule = mock.Mock( - return_value=self.new_rule_dscp_mark) + return_value=self.new_rule_dscp_mark + ) self.network.find_qos_bandwidth_limit_rule = mock.Mock( - return_value=self.new_rule_max_bw) + return_value=self.new_rule_max_bw + ) self.columns = ( 'ID', 'QoS Policy ID', @@ -1174,25 +1354,28 @@ class TestListNetworkQosRule(TestNetworkQosRule): ) self.data = [] for index in range(len(self.qos_policy.rules)): - self.data.append(( - self.qos_policy.rules[index].id, - self.qos_policy.rules[index].qos_policy_id, - self.qos_policy.rules[index].type, - getattr(self.qos_policy.rules[index], 'max_kbps', ''), - getattr(self.qos_policy.rules[index], 'max_burst_kbps', ''), - getattr(self.qos_policy.rules[index], 'min_kbps', ''), - getattr(self.qos_policy.rules[index], 'min_kpps', ''), - getattr(self.qos_policy.rules[index], 'dscp_mark', ''), - getattr(self.qos_policy.rules[index], 'direction', ''), - )) + self.data.append( + ( + self.qos_policy.rules[index].id, + self.qos_policy.rules[index].qos_policy_id, + self.qos_policy.rules[index].type, + getattr(self.qos_policy.rules[index], 'max_kbps', ''), + getattr( + self.qos_policy.rules[index], 'max_burst_kbps', '' + ), + getattr(self.qos_policy.rules[index], 'min_kbps', ''), + getattr(self.qos_policy.rules[index], 'min_kpps', ''), + getattr(self.qos_policy.rules[index], 'dscp_mark', ''), + getattr(self.qos_policy.rules[index], 'direction', ''), + ) + ) # Get the command object to test - self.cmd = network_qos_rule.ListNetworkQosRule(self.app, - self.namespace) + self.cmd = network_qos_rule.ListNetworkQosRule( + self.app, self.namespace + ) def test_qos_rule_list(self): - arglist = [ - self.qos_policy.id - ] + arglist = [self.qos_policy.id] verifylist = [ ('qos_policy', self.qos_policy.id), ] @@ -1201,7 +1384,8 @@ class TestListNetworkQosRule(TestNetworkQosRule): columns, data = self.cmd.take_action(parsed_args) self.network.find_qos_policy.assert_called_once_with( - self.qos_policy.id, ignore_missing=False) + self.qos_policy.id, ignore_missing=False + ) self.assertEqual(self.columns, columns) list_data = list(data) self.assertEqual(len(self.data), len(list_data)) @@ -1210,13 +1394,15 @@ class TestListNetworkQosRule(TestNetworkQosRule): class TestShowNetworkQosRuleMinimumBandwidth(TestNetworkQosRule): - def setUp(self): super(TestShowNetworkQosRuleMinimumBandwidth, self).setUp() - attrs = {'qos_policy_id': self.qos_policy.id, - 'type': RULE_TYPE_MINIMUM_BANDWIDTH} + attrs = { + 'qos_policy_id': self.qos_policy.id, + 'type': RULE_TYPE_MINIMUM_BANDWIDTH, + } self.new_rule = network_fakes.FakeNetworkQosRule.create_one_qos_rule( - attrs) + attrs + ) self.qos_policy.rules = [self.new_rule] self.columns = ( 'direction', @@ -1224,7 +1410,7 @@ class TestShowNetworkQosRuleMinimumBandwidth(TestNetworkQosRule): 'min_kbps', 'project_id', 'qos_policy_id', - 'type' + 'type', ) self.data = ( self.new_rule.direction, @@ -1236,19 +1422,26 @@ class TestShowNetworkQosRuleMinimumBandwidth(TestNetworkQosRule): ) self.network.get_qos_minimum_bandwidth_rule = mock.Mock( - return_value=self.new_rule) + return_value=self.new_rule + ) # Get the command object to test - self.cmd = network_qos_rule.ShowNetworkQosRule(self.app, - self.namespace) + self.cmd = network_qos_rule.ShowNetworkQosRule( + self.app, self.namespace + ) def test_show_no_options(self): arglist = [] verifylist = [] # Missing required args should bail here - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_show_all_options(self): arglist = [ @@ -1264,19 +1457,22 @@ class TestShowNetworkQosRuleMinimumBandwidth(TestNetworkQosRule): columns, data = self.cmd.take_action(parsed_args) self.network.get_qos_minimum_bandwidth_rule.assert_called_once_with( - self.new_rule.id, self.qos_policy.id) + self.new_rule.id, self.qos_policy.id + ) self.assertEqual(self.columns, columns) self.assertEqual(list(self.data), list(data)) class TestShowNetworkQosRuleMinimumPacketRate(TestNetworkQosRule): - def setUp(self): super(TestShowNetworkQosRuleMinimumPacketRate, self).setUp() - attrs = {'qos_policy_id': self.qos_policy.id, - 'type': RULE_TYPE_MINIMUM_PACKET_RATE} + attrs = { + 'qos_policy_id': self.qos_policy.id, + 'type': RULE_TYPE_MINIMUM_PACKET_RATE, + } self.new_rule = network_fakes.FakeNetworkQosRule.create_one_qos_rule( - attrs) + attrs + ) self.qos_policy.rules = [self.new_rule] self.columns = ( 'direction', @@ -1284,7 +1480,7 @@ class TestShowNetworkQosRuleMinimumPacketRate(TestNetworkQosRule): 'min_kpps', 'project_id', 'qos_policy_id', - 'type' + 'type', ) self.data = ( self.new_rule.direction, @@ -1296,19 +1492,26 @@ class TestShowNetworkQosRuleMinimumPacketRate(TestNetworkQosRule): ) self.network.get_qos_minimum_packet_rate_rule = mock.Mock( - return_value=self.new_rule) + return_value=self.new_rule + ) # Get the command object to test - self.cmd = network_qos_rule.ShowNetworkQosRule(self.app, - self.namespace) + self.cmd = network_qos_rule.ShowNetworkQosRule( + self.app, self.namespace + ) def test_show_no_options(self): arglist = [] verifylist = [] # Missing required args should bail here - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_show_all_options(self): arglist = [ @@ -1324,26 +1527,29 @@ class TestShowNetworkQosRuleMinimumPacketRate(TestNetworkQosRule): columns, data = self.cmd.take_action(parsed_args) self.network.get_qos_minimum_packet_rate_rule.assert_called_once_with( - self.new_rule.id, self.qos_policy.id) + self.new_rule.id, self.qos_policy.id + ) self.assertEqual(self.columns, columns) self.assertEqual(list(self.data), list(data)) class TestShowNetworkQosDSCPMarking(TestNetworkQosRule): - def setUp(self): super(TestShowNetworkQosDSCPMarking, self).setUp() - attrs = {'qos_policy_id': self.qos_policy.id, - 'type': RULE_TYPE_DSCP_MARKING} + attrs = { + 'qos_policy_id': self.qos_policy.id, + 'type': RULE_TYPE_DSCP_MARKING, + } self.new_rule = network_fakes.FakeNetworkQosRule.create_one_qos_rule( - attrs) + attrs + ) self.qos_policy.rules = [self.new_rule] self.columns = ( 'dscp_mark', 'id', 'project_id', 'qos_policy_id', - 'type' + 'type', ) self.data = ( self.new_rule.dscp_mark, @@ -1354,19 +1560,26 @@ class TestShowNetworkQosDSCPMarking(TestNetworkQosRule): ) self.network.get_qos_dscp_marking_rule = mock.Mock( - return_value=self.new_rule) + return_value=self.new_rule + ) # Get the command object to test - self.cmd = network_qos_rule.ShowNetworkQosRule(self.app, - self.namespace) + self.cmd = network_qos_rule.ShowNetworkQosRule( + self.app, self.namespace + ) def test_show_no_options(self): arglist = [] verifylist = [] # Missing required args should bail here - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_show_all_options(self): arglist = [ @@ -1382,19 +1595,22 @@ class TestShowNetworkQosDSCPMarking(TestNetworkQosRule): columns, data = self.cmd.take_action(parsed_args) self.network.get_qos_dscp_marking_rule.assert_called_once_with( - self.new_rule.id, self.qos_policy.id) + self.new_rule.id, self.qos_policy.id + ) self.assertEqual(self.columns, columns) self.assertEqual(list(self.data), list(data)) class TestShowNetworkQosBandwidthLimit(TestNetworkQosRule): - def setUp(self): super(TestShowNetworkQosBandwidthLimit, self).setUp() - attrs = {'qos_policy_id': self.qos_policy.id, - 'type': RULE_TYPE_BANDWIDTH_LIMIT} + attrs = { + 'qos_policy_id': self.qos_policy.id, + 'type': RULE_TYPE_BANDWIDTH_LIMIT, + } self.new_rule = network_fakes.FakeNetworkQosRule.create_one_qos_rule( - attrs) + attrs + ) self.qos_policy.rules = [self.new_rule] self.columns = ( 'direction', @@ -1403,7 +1619,7 @@ class TestShowNetworkQosBandwidthLimit(TestNetworkQosRule): 'max_kbps', 'project_id', 'qos_policy_id', - 'type' + 'type', ) self.data = ( self.new_rule.direction, @@ -1416,19 +1632,26 @@ class TestShowNetworkQosBandwidthLimit(TestNetworkQosRule): ) self.network.get_qos_bandwidth_limit_rule = mock.Mock( - return_value=self.new_rule) + return_value=self.new_rule + ) # Get the command object to test - self.cmd = network_qos_rule.ShowNetworkQosRule(self.app, - self.namespace) + self.cmd = network_qos_rule.ShowNetworkQosRule( + self.app, self.namespace + ) def test_show_no_options(self): arglist = [] verifylist = [] # Missing required args should bail here - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_show_all_options(self): arglist = [ @@ -1444,6 +1667,7 @@ class TestShowNetworkQosBandwidthLimit(TestNetworkQosRule): columns, data = self.cmd.take_action(parsed_args) self.network.get_qos_bandwidth_limit_rule.assert_called_once_with( - self.new_rule.id, self.qos_policy.id) + self.new_rule.id, self.qos_policy.id + ) self.assertEqual(self.columns, columns) self.assertEqual(list(self.data), list(data)) diff --git a/openstackclient/tests/unit/network/v2/test_network_qos_rule_type.py b/openstackclient/tests/unit/network/v2/test_network_qos_rule_type.py index 3aae822e61..d468cafc41 100644 --- a/openstackclient/tests/unit/network/v2/test_network_qos_rule_type.py +++ b/openstackclient/tests/unit/network/v2/test_network_qos_rule_type.py @@ -21,7 +21,6 @@ from openstackclient.tests.unit import utils as tests_utils class TestNetworkQosRuleType(network_fakes.TestNetworkV2): - def setUp(self): super(TestNetworkQosRuleType, self).setUp() # Get a shortcut to the network client @@ -29,41 +28,37 @@ class TestNetworkQosRuleType(network_fakes.TestNetworkV2): class TestShowNetworkQosRuleType(TestNetworkQosRuleType): - - attrs = { - 'drivers': [{ - 'name': 'driver 1', - 'supported_parameters': [] - }] - } + attrs = {'drivers': [{'name': 'driver 1', 'supported_parameters': []}]} # The QoS policies to show. qos_rule_type = ( - network_fakes.FakeNetworkQosRuleType.create_one_qos_rule_type(attrs)) - columns = ( - 'drivers', - 'rule_type_name' + network_fakes.FakeNetworkQosRuleType.create_one_qos_rule_type(attrs) ) - data = [ - qos_rule_type.drivers, - qos_rule_type.type - ] + columns = ('drivers', 'rule_type_name') + data = [qos_rule_type.drivers, qos_rule_type.type] def setUp(self): super(TestShowNetworkQosRuleType, self).setUp() self.network.get_qos_rule_type = mock.Mock( - return_value=self.qos_rule_type) + return_value=self.qos_rule_type + ) # Get the command object to test - self.cmd = _qos_rule_type.ShowNetworkQosRuleType(self.app, - self.namespace) + self.cmd = _qos_rule_type.ShowNetworkQosRuleType( + self.app, self.namespace + ) def test_show_no_options(self): arglist = [] verifylist = [] # Missing required args should bail here - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_show_all_options(self): arglist = [ @@ -77,33 +72,32 @@ class TestShowNetworkQosRuleType(TestNetworkQosRuleType): columns, data = self.cmd.take_action(parsed_args) self.network.get_qos_rule_type.assert_called_once_with( - self.qos_rule_type.type) + self.qos_rule_type.type + ) self.assertEqual(self.columns, columns) self.assertEqual(list(self.data), list(data)) class TestListNetworkQosRuleType(TestNetworkQosRuleType): - # The QoS policies to list up. qos_rule_types = ( - network_fakes.FakeNetworkQosRuleType.create_qos_rule_types(count=3)) - columns = ( - 'Type', + network_fakes.FakeNetworkQosRuleType.create_qos_rule_types(count=3) ) + columns = ('Type',) data = [] for qos_rule_type in qos_rule_types: - data.append(( - qos_rule_type.type, - )) + data.append((qos_rule_type.type,)) def setUp(self): super(TestListNetworkQosRuleType, self).setUp() self.network.qos_rule_types = mock.Mock( - return_value=self.qos_rule_types) + return_value=self.qos_rule_types + ) # Get the command object to test - self.cmd = _qos_rule_type.ListNetworkQosRuleType(self.app, - self.namespace) + self.cmd = _qos_rule_type.ListNetworkQosRuleType( + self.app, self.namespace + ) def test_qos_rule_type_list(self): arglist = [] @@ -117,9 +111,7 @@ class TestListNetworkQosRuleType(TestNetworkQosRuleType): self.assertEqual(self.data, list(data)) def test_qos_rule_type_list_all_supported(self): - arglist = [ - '--all-supported' - ] + arglist = ['--all-supported'] verifylist = [ ('all_supported', True), ] @@ -134,9 +126,7 @@ class TestListNetworkQosRuleType(TestNetworkQosRuleType): self.assertEqual(self.data, list(data)) def test_qos_rule_type_list_all_rules(self): - arglist = [ - '--all-rules' - ] + arglist = ['--all-rules'] verifylist = [ ('all_rules', True), ] diff --git a/openstackclient/tests/unit/network/v2/test_network_rbac.py b/openstackclient/tests/unit/network/v2/test_network_rbac.py index 7ce252054d..49e444970f 100644 --- a/openstackclient/tests/unit/network/v2/test_network_rbac.py +++ b/openstackclient/tests/unit/network/v2/test_network_rbac.py @@ -24,7 +24,6 @@ from openstackclient.tests.unit import utils as tests_utils class TestNetworkRBAC(network_fakes.TestNetworkV2): - def setUp(self): super(TestNetworkRBAC, self).setUp() @@ -36,7 +35,6 @@ class TestNetworkRBAC(network_fakes.TestNetworkV2): @ddt.ddt class TestCreateNetworkRBAC(TestNetworkRBAC): - network_object = network_fakes.create_one_network() qos_object = network_fakes.FakeNetworkQosPolicy.create_one_qos_policy() sg_object = network_fakes.FakeNetworkSecGroup.create_one_security_group() @@ -45,9 +43,11 @@ class TestCreateNetworkRBAC(TestNetworkRBAC): ag_object = network_fakes.create_one_address_group() project = identity_fakes_v3.FakeProject.create_one_project() rbac_policy = network_fakes.create_one_network_rbac( - attrs={'project_id': project.id, - 'target_tenant': project.id, - 'object_id': network_object.id} + attrs={ + 'project_id': project.id, + 'target_tenant': project.id, + 'object_id': network_object.id, + } ) columns = ( @@ -75,24 +75,26 @@ class TestCreateNetworkRBAC(TestNetworkRBAC): self.cmd = network_rbac.CreateNetworkRBAC(self.app, self.namespace) self.network.create_rbac_policy = mock.Mock( - return_value=self.rbac_policy) - self.network.find_network = mock.Mock( - return_value=self.network_object) - self.network.find_qos_policy = mock.Mock( - return_value=self.qos_object) + return_value=self.rbac_policy + ) + self.network.find_network = mock.Mock(return_value=self.network_object) + self.network.find_qos_policy = mock.Mock(return_value=self.qos_object) self.network.find_security_group = mock.Mock( - return_value=self.sg_object) + return_value=self.sg_object + ) self.network.find_address_scope = mock.Mock( - return_value=self.as_object) - self.network.find_subnet_pool = mock.Mock( - return_value=self.snp_object) + return_value=self.as_object + ) + self.network.find_subnet_pool = mock.Mock(return_value=self.snp_object) self.network.find_address_group = mock.Mock( - return_value=self.ag_object) + return_value=self.ag_object + ) self.projects_mock.get.return_value = self.project def test_network_rbac_create_no_type(self): arglist = [ - '--action', self.rbac_policy.action, + '--action', + self.rbac_policy.action, self.rbac_policy.object_id, ] verifylist = [ @@ -100,12 +102,18 @@ class TestCreateNetworkRBAC(TestNetworkRBAC): ('rbac_policy', self.rbac_policy.id), ] - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_network_rbac_create_no_action(self): arglist = [ - '--type', self.rbac_policy.object_type, + '--type', + self.rbac_policy.object_type, self.rbac_policy.object_id, ] verifylist = [ @@ -113,14 +121,22 @@ class TestCreateNetworkRBAC(TestNetworkRBAC): ('rbac_policy', self.rbac_policy.id), ] - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_network_rbac_create_invalid_type(self): arglist = [ - '--action', self.rbac_policy.action, - '--type', 'invalid_type', - '--target-project', self.rbac_policy.target_project_id, + '--action', + self.rbac_policy.action, + '--type', + 'invalid_type', + '--target-project', + self.rbac_policy.target_project_id, self.rbac_policy.object_id, ] verifylist = [ @@ -130,14 +146,22 @@ class TestCreateNetworkRBAC(TestNetworkRBAC): ('rbac_policy', self.rbac_policy.id), ] - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_network_rbac_create_invalid_action(self): arglist = [ - '--type', self.rbac_policy.object_type, - '--action', 'invalid_action', - '--target-project', self.rbac_policy.target_project_id, + '--type', + self.rbac_policy.object_type, + '--action', + 'invalid_action', + '--target-project', + self.rbac_policy.target_project_id, self.rbac_policy.object_id, ] verifylist = [ @@ -147,14 +171,22 @@ class TestCreateNetworkRBAC(TestNetworkRBAC): ('rbac_policy', self.rbac_policy.id), ] - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_network_rbac_create(self): arglist = [ - '--type', self.rbac_policy.object_type, - '--action', self.rbac_policy.action, - '--target-project', self.rbac_policy.target_project_id, + '--type', + self.rbac_policy.object_type, + '--action', + self.rbac_policy.action, + '--target-project', + self.rbac_policy.target_project_id, self.rbac_policy.object_id, ] verifylist = [ @@ -168,19 +200,23 @@ class TestCreateNetworkRBAC(TestNetworkRBAC): # DisplayCommandBase.take_action() returns two tuples columns, data = self.cmd.take_action(parsed_args) - self.network.create_rbac_policy.assert_called_with(**{ - 'object_id': self.rbac_policy.object_id, - 'object_type': self.rbac_policy.object_type, - 'action': self.rbac_policy.action, - 'target_tenant': self.rbac_policy.target_project_id, - }) + self.network.create_rbac_policy.assert_called_with( + **{ + 'object_id': self.rbac_policy.object_id, + 'object_type': self.rbac_policy.object_type, + 'action': self.rbac_policy.action, + 'target_tenant': self.rbac_policy.target_project_id, + } + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, list(data)) def test_network_rbac_create_with_target_all_projects(self): arglist = [ - '--type', self.rbac_policy.object_type, - '--action', self.rbac_policy.action, + '--type', + self.rbac_policy.object_type, + '--action', + self.rbac_policy.action, '--target-all-projects', self.rbac_policy.object_id, ] @@ -194,21 +230,29 @@ class TestCreateNetworkRBAC(TestNetworkRBAC): columns, data = self.cmd.take_action(parsed_args) - self.network.create_rbac_policy.assert_called_with(**{ - 'object_id': self.rbac_policy.object_id, - 'object_type': self.rbac_policy.object_type, - 'action': self.rbac_policy.action, - 'target_tenant': '*', - }) + self.network.create_rbac_policy.assert_called_with( + **{ + 'object_id': self.rbac_policy.object_id, + 'object_type': self.rbac_policy.object_type, + 'action': self.rbac_policy.action, + 'target_tenant': '*', + } + ) def test_network_rbac_create_all_options(self): arglist = [ - '--type', self.rbac_policy.object_type, - '--action', self.rbac_policy.action, - '--target-project', self.rbac_policy.target_project_id, - '--project', self.rbac_policy.project_id, - '--project-domain', self.project.domain_id, - '--target-project-domain', self.project.domain_id, + '--type', + self.rbac_policy.object_type, + '--action', + self.rbac_policy.action, + '--target-project', + self.rbac_policy.target_project_id, + '--project', + self.rbac_policy.project_id, + '--project-domain', + self.project.domain_id, + '--target-project-domain', + self.project.domain_id, self.rbac_policy.object_id, ] verifylist = [ @@ -225,13 +269,15 @@ class TestCreateNetworkRBAC(TestNetworkRBAC): # DisplayCommandBase.take_action() returns two tuples columns, data = self.cmd.take_action(parsed_args) - self.network.create_rbac_policy.assert_called_with(**{ - 'object_id': self.rbac_policy.object_id, - 'object_type': self.rbac_policy.object_type, - 'action': self.rbac_policy.action, - 'target_tenant': self.rbac_policy.target_project_id, - 'project_id': self.rbac_policy.project_id, - }) + self.network.create_rbac_policy.assert_called_with( + **{ + 'object_id': self.rbac_policy.object_id, + 'object_type': self.rbac_policy.object_type, + 'action': self.rbac_policy.action, + 'target_tenant': self.rbac_policy.target_project_id, + 'project_id': self.rbac_policy.project_id, + } + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, list(data)) @@ -240,7 +286,7 @@ class TestCreateNetworkRBAC(TestNetworkRBAC): ('security_group', "sg_object"), ('subnetpool', "snp_object"), ('address_scope', "as_object"), - ('address_group', "ag_object") + ('address_group', "ag_object"), ) @ddt.unpack def test_network_rbac_create_object(self, obj_type, obj_fake_attr): @@ -249,9 +295,12 @@ class TestCreateNetworkRBAC(TestNetworkRBAC): self.rbac_policy.object_type = obj_type self.rbac_policy.object_id = obj_fake.id arglist = [ - '--type', obj_type, - '--action', self.rbac_policy.action, - '--target-project', self.rbac_policy.target_project_id, + '--type', + obj_type, + '--action', + self.rbac_policy.action, + '--target-project', + self.rbac_policy.target_project_id, obj_fake.name, ] verifylist = [ @@ -265,12 +314,14 @@ class TestCreateNetworkRBAC(TestNetworkRBAC): # DisplayCommandBase.take_action() returns two tuples columns, data = self.cmd.take_action(parsed_args) - self.network.create_rbac_policy.assert_called_with(**{ - 'object_id': obj_fake.id, - 'object_type': obj_type, - 'action': self.rbac_policy.action, - 'target_tenant': self.rbac_policy.target_project_id, - }) + self.network.create_rbac_policy.assert_called_with( + **{ + 'object_id': obj_fake.id, + 'object_type': obj_type, + 'action': self.rbac_policy.action, + 'target_tenant': self.rbac_policy.target_project_id, + } + ) self.data = [ self.rbac_policy.action, self.rbac_policy.id, @@ -284,15 +335,13 @@ class TestCreateNetworkRBAC(TestNetworkRBAC): class TestDeleteNetworkRBAC(TestNetworkRBAC): - rbac_policies = network_fakes.create_network_rbacs(count=2) def setUp(self): super(TestDeleteNetworkRBAC, self).setUp() self.network.delete_rbac_policy = mock.Mock(return_value=None) - self.network.find_rbac_policy = ( - network_fakes.get_network_rbacs( - rbac_policies=self.rbac_policies) + self.network.find_rbac_policy = network_fakes.get_network_rbacs( + rbac_policies=self.rbac_policies ) # Get the command object to test @@ -310,9 +359,11 @@ class TestDeleteNetworkRBAC(TestNetworkRBAC): result = self.cmd.take_action(parsed_args) self.network.find_rbac_policy.assert_called_once_with( - self.rbac_policies[0].id, ignore_missing=False) + self.rbac_policies[0].id, ignore_missing=False + ) self.network.delete_rbac_policy.assert_called_once_with( - self.rbac_policies[0]) + self.rbac_policies[0] + ) self.assertIsNone(result) def test_multi_network_rbacs_delete(self): @@ -340,15 +391,12 @@ class TestDeleteNetworkRBAC(TestNetworkRBAC): 'unexist_rbac_policy', ] verifylist = [ - ('rbac_policy', - [self.rbac_policies[0].id, 'unexist_rbac_policy']), + ('rbac_policy', [self.rbac_policies[0].id, 'unexist_rbac_policy']), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) find_mock_result = [self.rbac_policies[0], exceptions.CommandError] - self.network.find_rbac_policy = ( - mock.Mock(side_effect=find_mock_result) - ) + self.network.find_rbac_policy = mock.Mock(side_effect=find_mock_result) try: self.cmd.take_action(parsed_args) @@ -357,16 +405,17 @@ class TestDeleteNetworkRBAC(TestNetworkRBAC): self.assertEqual('1 of 2 RBAC policies failed to delete.', str(e)) self.network.find_rbac_policy.assert_any_call( - self.rbac_policies[0].id, ignore_missing=False) + self.rbac_policies[0].id, ignore_missing=False + ) self.network.find_rbac_policy.assert_any_call( - 'unexist_rbac_policy', ignore_missing=False) + 'unexist_rbac_policy', ignore_missing=False + ) self.network.delete_rbac_policy.assert_called_once_with( self.rbac_policies[0] ) class TestListNetworkRABC(TestNetworkRBAC): - # The network rbac policies going to be listed up. rbac_policies = network_fakes.create_network_rbacs(count=3) @@ -383,19 +432,23 @@ class TestListNetworkRABC(TestNetworkRBAC): ) data = [] for r in rbac_policies: - data.append(( - r.id, - r.object_type, - r.object_id, - )) + data.append( + ( + r.id, + r.object_type, + r.object_id, + ) + ) data_long = [] for r in rbac_policies: - data_long.append(( - r.id, - r.object_type, - r.object_id, - r.action, - )) + data_long.append( + ( + r.id, + r.object_type, + r.object_id, + r.action, + ) + ) def setUp(self): super(TestListNetworkRABC, self).setUp() @@ -422,33 +475,35 @@ class TestListNetworkRABC(TestNetworkRBAC): def test_network_rbac_list_type_opt(self): arglist = [ - '--type', self.rbac_policies[0].object_type, ] - verifylist = [ - ('type', self.rbac_policies[0].object_type)] + '--type', + self.rbac_policies[0].object_type, + ] + verifylist = [('type', self.rbac_policies[0].object_type)] parsed_args = self.check_parser(self.cmd, arglist, verifylist) # DisplayCommandBase.take_action() returns two tuples columns, data = self.cmd.take_action(parsed_args) - self.network.rbac_policies.assert_called_with(**{ - 'object_type': self.rbac_policies[0].object_type - }) + self.network.rbac_policies.assert_called_with( + **{'object_type': self.rbac_policies[0].object_type} + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, list(data)) def test_network_rbac_list_action_opt(self): arglist = [ - '--action', self.rbac_policies[0].action, ] - verifylist = [ - ('action', self.rbac_policies[0].action)] + '--action', + self.rbac_policies[0].action, + ] + verifylist = [('action', self.rbac_policies[0].action)] parsed_args = self.check_parser(self.cmd, arglist, verifylist) # DisplayCommandBase.take_action() returns two tuples columns, data = self.cmd.take_action(parsed_args) - self.network.rbac_policies.assert_called_with(**{ - 'action': self.rbac_policies[0].action - }) + self.network.rbac_policies.assert_called_with( + **{'action': self.rbac_policies[0].action} + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, list(data)) @@ -471,26 +526,29 @@ class TestListNetworkRABC(TestNetworkRBAC): def test_network_rbac_list_target_project_opt(self): arglist = [ - '--target-project', self.rbac_policies[0].target_project_id, ] + '--target-project', + self.rbac_policies[0].target_project_id, + ] verifylist = [ - ('target_project', self.rbac_policies[0].target_project_id)] + ('target_project', self.rbac_policies[0].target_project_id) + ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) # DisplayCommandBase.take_action() returns two tuples columns, data = self.cmd.take_action(parsed_args) - self.network.rbac_policies.assert_called_with(**{ - 'target_project_id': self.project.id - }) + self.network.rbac_policies.assert_called_with( + **{'target_project_id': self.project.id} + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, list(data)) class TestSetNetworkRBAC(TestNetworkRBAC): - project = identity_fakes_v3.FakeProject.create_one_project() rbac_policy = network_fakes.create_one_network_rbac( - attrs={'target_tenant': project.id}) + attrs={'target_tenant': project.id} + ) def setUp(self): super(TestSetNetworkRBAC, self).setUp() @@ -499,7 +557,8 @@ class TestSetNetworkRBAC(TestNetworkRBAC): self.cmd = network_rbac.SetNetworkRBAC(self.app, self.namespace) self.network.find_rbac_policy = mock.Mock( - return_value=self.rbac_policy) + return_value=self.rbac_policy + ) self.network.update_rbac_policy = mock.Mock(return_value=None) self.projects_mock.get.return_value = self.project @@ -518,12 +577,14 @@ class TestSetNetworkRBAC(TestNetworkRBAC): ) attrs = {} self.network.update_rbac_policy.assert_called_once_with( - self.rbac_policy, **attrs) + self.rbac_policy, **attrs + ) self.assertIsNone(result) def test_network_rbac_set(self): arglist = [ - '--target-project', self.project.id, + '--target-project', + self.project.id, self.rbac_policy.id, ] verifylist = [ @@ -538,12 +599,12 @@ class TestSetNetworkRBAC(TestNetworkRBAC): ) attrs = {'target_tenant': self.project.id} self.network.update_rbac_policy.assert_called_once_with( - self.rbac_policy, **attrs) + self.rbac_policy, **attrs + ) self.assertIsNone(result) class TestShowNetworkRBAC(TestNetworkRBAC): - rbac_policy = network_fakes.create_one_network_rbac() columns = ( @@ -571,14 +632,20 @@ class TestShowNetworkRBAC(TestNetworkRBAC): self.cmd = network_rbac.ShowNetworkRBAC(self.app, self.namespace) self.network.find_rbac_policy = mock.Mock( - return_value=self.rbac_policy) + return_value=self.rbac_policy + ) def test_show_no_options(self): arglist = [] verifylist = [] - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_network_rbac_show_all_options(self): arglist = [ diff --git a/openstackclient/tests/unit/network/v2/test_network_segment.py b/openstackclient/tests/unit/network/v2/test_network_segment.py index b41b619172..1f74048efc 100644 --- a/openstackclient/tests/unit/network/v2/test_network_segment.py +++ b/openstackclient/tests/unit/network/v2/test_network_segment.py @@ -22,7 +22,6 @@ from openstackclient.tests.unit import utils as tests_utils class TestNetworkSegment(network_fakes.TestNetworkV2): - def setUp(self): super(TestNetworkSegment, self).setUp() @@ -31,12 +30,13 @@ class TestNetworkSegment(network_fakes.TestNetworkV2): class TestCreateNetworkSegment(TestNetworkSegment): - # The network segment to create along with associated network. _network_segment = network_fakes.create_one_network_segment() - _network = network_fakes.create_one_network({ - 'id': _network_segment.network_id, - }) + _network = network_fakes.create_one_network( + { + 'id': _network_segment.network_id, + } + ) columns = ( 'description', @@ -68,28 +68,37 @@ class TestCreateNetworkSegment(TestNetworkSegment): # Get the command object to test self.cmd = network_segment.CreateNetworkSegment( - self.app, - self.namespace + self.app, self.namespace ) def test_create_no_options(self): # Missing required args should bail here - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, [], []) + self.assertRaises( + tests_utils.ParserException, self.check_parser, self.cmd, [], [] + ) def test_create_invalid_network_type(self): arglist = [ - '--network', self._network_segment.network_id, - '--network-type', 'foo', + '--network', + self._network_segment.network_id, + '--network-type', + 'foo', self._network_segment.name, ] - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, []) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + [], + ) def test_create_minimum_options(self): arglist = [ - '--network', self._network_segment.network_id, - '--network-type', self._network_segment.network_type, + '--network', + self._network_segment.network_id, + '--network-type', + self._network_segment.network_type, self._network_segment.name, ] verifylist = [ @@ -102,25 +111,31 @@ class TestCreateNetworkSegment(TestNetworkSegment): columns, data = self.cmd.take_action(parsed_args) self.network.find_network.assert_called_once_with( - self._network_segment.network_id, - ignore_missing=False + self._network_segment.network_id, ignore_missing=False + ) + self.network.create_segment.assert_called_once_with( + **{ + 'network_id': self._network_segment.network_id, + 'network_type': self._network_segment.network_type, + 'name': self._network_segment.name, + } ) - self.network.create_segment.assert_called_once_with(**{ - 'network_id': self._network_segment.network_id, - 'network_type': self._network_segment.network_type, - 'name': self._network_segment.name, - }) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) def test_create_all_options(self): arglist = [ - '--description', self._network_segment.description, - '--network', self._network_segment.network_id, - '--network-type', self._network_segment.network_type, - '--physical-network', self._network_segment.physical_network, - '--segment', str(self._network_segment.segmentation_id), + '--description', + self._network_segment.description, + '--network', + self._network_segment.network_id, + '--network-type', + self._network_segment.network_type, + '--physical-network', + self._network_segment.physical_network, + '--segment', + str(self._network_segment.segmentation_id), self._network_segment.name, ] verifylist = [ @@ -136,24 +151,24 @@ class TestCreateNetworkSegment(TestNetworkSegment): columns, data = self.cmd.take_action(parsed_args) self.network.find_network.assert_called_once_with( - self._network_segment.network_id, - ignore_missing=False + self._network_segment.network_id, ignore_missing=False + ) + self.network.create_segment.assert_called_once_with( + **{ + 'description': self._network_segment.description, + 'network_id': self._network_segment.network_id, + 'network_type': self._network_segment.network_type, + 'physical_network': self._network_segment.physical_network, + 'segmentation_id': self._network_segment.segmentation_id, + 'name': self._network_segment.name, + } ) - self.network.create_segment.assert_called_once_with(**{ - 'description': self._network_segment.description, - 'network_id': self._network_segment.network_id, - 'network_type': self._network_segment.network_type, - 'physical_network': self._network_segment.physical_network, - 'segmentation_id': self._network_segment.segmentation_id, - 'name': self._network_segment.name, - }) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) class TestDeleteNetworkSegment(TestNetworkSegment): - # The network segments to delete. _network_segments = network_fakes.create_network_segments() @@ -167,8 +182,7 @@ class TestDeleteNetworkSegment(TestNetworkSegment): # Get the command object to test self.cmd = network_segment.DeleteNetworkSegment( - self.app, - self.namespace + self.app, self.namespace ) def test_delete(self): @@ -205,33 +219,32 @@ class TestDeleteNetworkSegment(TestNetworkSegment): self.assertIsNone(result) def test_delete_multiple_with_exception(self): - arglist = [ - self._network_segments[0].id, - 'doesnotexist' - ] + arglist = [self._network_segments[0].id, 'doesnotexist'] verifylist = [ - ('network_segment', [self._network_segments[0].id, - 'doesnotexist']), + ( + 'network_segment', + [self._network_segments[0].id, 'doesnotexist'], + ), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - find_mock_result = [self._network_segments[0], - exceptions.CommandError] - self.network.find_segment = ( - mock.Mock(side_effect=find_mock_result) - ) + find_mock_result = [self._network_segments[0], exceptions.CommandError] + self.network.find_segment = mock.Mock(side_effect=find_mock_result) try: self.cmd.take_action(parsed_args) self.fail('CommandError should be raised.') except exceptions.CommandError as e: - self.assertEqual('1 of 2 network segments failed to delete.', - str(e)) + self.assertEqual( + '1 of 2 network segments failed to delete.', str(e) + ) self.network.find_segment.assert_any_call( - self._network_segments[0].id, ignore_missing=False) + self._network_segments[0].id, ignore_missing=False + ) self.network.find_segment.assert_any_call( - 'doesnotexist', ignore_missing=False) + 'doesnotexist', ignore_missing=False + ) self.network.delete_segment.assert_called_once_with( self._network_segments[0] ) @@ -248,30 +261,32 @@ class TestListNetworkSegment(TestNetworkSegment): 'Network Type', 'Segment', ) - columns_long = columns + ( - 'Physical Network', - ) + columns_long = columns + ('Physical Network',) data = [] for _network_segment in _network_segments: - data.append(( - _network_segment.id, - _network_segment.name, - _network_segment.network_id, - _network_segment.network_type, - _network_segment.segmentation_id, - )) + data.append( + ( + _network_segment.id, + _network_segment.name, + _network_segment.network_id, + _network_segment.network_type, + _network_segment.segmentation_id, + ) + ) data_long = [] for _network_segment in _network_segments: - data_long.append(( - _network_segment.id, - _network_segment.name, - _network_segment.network_id, - _network_segment.network_type, - _network_segment.segmentation_id, - _network_segment.physical_network, - )) + data_long.append( + ( + _network_segment.id, + _network_segment.name, + _network_segment.network_id, + _network_segment.network_type, + _network_segment.segmentation_id, + _network_segment.physical_network, + ) + ) def setUp(self): super(TestListNetworkSegment, self).setUp() @@ -317,10 +332,7 @@ class TestListNetworkSegment(TestNetworkSegment): '--network', self._network.id, ] - verifylist = [ - ('long', False), - ('network', self._network.id) - ] + verifylist = [('long', False), ('network', self._network.id)] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) @@ -333,7 +345,6 @@ class TestListNetworkSegment(TestNetworkSegment): class TestSetNetworkSegment(TestNetworkSegment): - # The network segment to show. _network_segment = network_fakes.create_one_network_segment() @@ -368,8 +379,10 @@ class TestSetNetworkSegment(TestNetworkSegment): def test_set_all_options(self): arglist = [ - '--description', 'new description', - '--name', 'new name', + '--description', + 'new description', + '--name', + 'new name', self._network_segment.id, ] verifylist = [ @@ -392,7 +405,6 @@ class TestSetNetworkSegment(TestNetworkSegment): class TestShowNetworkSegment(TestNetworkSegment): - # The network segment to show. _network_segment = network_fakes.create_one_network_segment() @@ -428,8 +440,9 @@ class TestShowNetworkSegment(TestNetworkSegment): def test_show_no_options(self): # Missing required args should bail here - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, [], []) + self.assertRaises( + tests_utils.ParserException, self.check_parser, self.cmd, [], [] + ) def test_show_all_options(self): arglist = [ @@ -443,8 +456,7 @@ class TestShowNetworkSegment(TestNetworkSegment): columns, data = self.cmd.take_action(parsed_args) self.network.find_segment.assert_called_once_with( - self._network_segment.id, - ignore_missing=False + self._network_segment.id, ignore_missing=False ) self.assertEqual(self.columns, columns) diff --git a/openstackclient/tests/unit/network/v2/test_network_segment_range.py b/openstackclient/tests/unit/network/v2/test_network_segment_range.py index 20d34bfcc9..582a957f05 100644 --- a/openstackclient/tests/unit/network/v2/test_network_segment_range.py +++ b/openstackclient/tests/unit/network/v2/test_network_segment_range.py @@ -25,21 +25,20 @@ from openstackclient.tests.unit import utils as tests_utils class TestAuxiliaryFunctions(tests_utils.TestCase): - def test__get_ranges(self): input_reference = [ ([1, 2, 3, 4, 5, 6, 7], ['1-7']), ([1, 2, 5, 4, 3, 6, 7], ['1-7']), ([1, 2, 4, 3, 7, 6], ['1-4', '6-7']), - ([1, 2, 4, 3, '13', 12, '7', '6'], ['1-4', '6-7', '12-13']) + ([1, 2, 4, 3, '13', 12, '7', '6'], ['1-4', '6-7', '12-13']), ] for input, reference in input_reference: - self.assertEqual(reference, - list(network_segment_range._get_ranges(input))) + self.assertEqual( + reference, list(network_segment_range._get_ranges(input)) + ) class TestNetworkSegmentRange(network_fakes.TestNetworkV2): - def setUp(self): super(TestNetworkSegmentRange, self).setUp() @@ -48,7 +47,6 @@ class TestNetworkSegmentRange(network_fakes.TestNetworkV2): class TestCreateNetworkSegmentRange(TestNetworkSegmentRange): - # The network segment range to create. _network_segment_range = network_fakes.create_one_network_segment_range() @@ -90,33 +88,46 @@ class TestCreateNetworkSegmentRange(TestNetworkSegmentRange): # Get the command object to test self.cmd = network_segment_range.CreateNetworkSegmentRange( - self.app, - self.namespace + self.app, self.namespace ) def test_create_no_options(self): # Missing required args should bail here - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, [], []) + self.assertRaises( + tests_utils.ParserException, self.check_parser, self.cmd, [], [] + ) def test_create_invalid_network_type(self): arglist = [ '--private', - '--project', self._network_segment_range.project_id, - '--network-type', 'foo', - '--minimum', str(self._network_segment_range.minimum), - '--maximum', str(self._network_segment_range.maximum), + '--project', + self._network_segment_range.project_id, + '--network-type', + 'foo', + '--minimum', + str(self._network_segment_range.minimum), + '--maximum', + str(self._network_segment_range.maximum), self._network_segment_range.name, ] - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, []) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + [], + ) def test_create_default_with_project_id(self): arglist = [ - '--project', self._network_segment_range.project_id, - '--network-type', 'vxlan', - '--minimum', str(self._network_segment_range.minimum), - '--maximum', str(self._network_segment_range.maximum), + '--project', + self._network_segment_range.project_id, + '--network-type', + 'vxlan', + '--minimum', + str(self._network_segment_range.minimum), + '--maximum', + str(self._network_segment_range.maximum), self._network_segment_range.name, ] verifylist = [ @@ -128,17 +139,21 @@ class TestCreateNetworkSegmentRange(TestNetworkSegmentRange): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.assertRaises(exceptions.CommandError, - self.cmd.take_action, - parsed_args) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_create_shared_with_project_id(self): arglist = [ '--shared', - '--project', self._network_segment_range.project_id, - '--network-type', 'vxlan', - '--minimum', str(self._network_segment_range.minimum), - '--maximum', str(self._network_segment_range.maximum), + '--project', + self._network_segment_range.project_id, + '--network-type', + 'vxlan', + '--minimum', + str(self._network_segment_range.minimum), + '--maximum', + str(self._network_segment_range.maximum), self._network_segment_range.name, ] verifylist = [ @@ -151,17 +166,21 @@ class TestCreateNetworkSegmentRange(TestNetworkSegmentRange): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.assertRaises(exceptions.CommandError, - self.cmd.take_action, - parsed_args) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_create_tunnel_with_physical_network(self): arglist = [ '--shared', - '--network-type', 'vxlan', - '--physical-network', self._network_segment_range.physical_network, - '--minimum', str(self._network_segment_range.minimum), - '--maximum', str(self._network_segment_range.maximum), + '--network-type', + 'vxlan', + '--physical-network', + self._network_segment_range.physical_network, + '--minimum', + str(self._network_segment_range.minimum), + '--maximum', + str(self._network_segment_range.maximum), self._network_segment_range.name, ] verifylist = [ @@ -174,15 +193,18 @@ class TestCreateNetworkSegmentRange(TestNetworkSegmentRange): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.assertRaises(exceptions.CommandError, - self.cmd.take_action, - parsed_args) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_create_minimum_options(self): arglist = [ - '--network-type', 'vxlan', - '--minimum', str(self._network_segment_range.minimum), - '--maximum', str(self._network_segment_range.maximum), + '--network-type', + 'vxlan', + '--minimum', + str(self._network_segment_range.minimum), + '--maximum', + str(self._network_segment_range.maximum), self._network_segment_range.name, ] verifylist = [ @@ -195,13 +217,15 @@ class TestCreateNetworkSegmentRange(TestNetworkSegmentRange): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.create_network_segment_range.assert_called_once_with(**{ - 'shared': True, - 'network_type': 'vxlan', - 'minimum': self._network_segment_range.minimum, - 'maximum': self._network_segment_range.maximum, - 'name': self._network_segment_range.name, - }) + self.network.create_network_segment_range.assert_called_once_with( + **{ + 'shared': True, + 'network_type': 'vxlan', + 'minimum': self._network_segment_range.minimum, + 'maximum': self._network_segment_range.maximum, + 'name': self._network_segment_range.name, + } + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) @@ -209,10 +233,14 @@ class TestCreateNetworkSegmentRange(TestNetworkSegmentRange): def test_create_private_minimum_options(self): arglist = [ '--private', - '--project', self._network_segment_range.project_id, - '--network-type', 'vxlan', - '--minimum', str(self._network_segment_range.minimum), - '--maximum', str(self._network_segment_range.maximum), + '--project', + self._network_segment_range.project_id, + '--network-type', + 'vxlan', + '--minimum', + str(self._network_segment_range.minimum), + '--maximum', + str(self._network_segment_range.maximum), self._network_segment_range.name, ] verifylist = [ @@ -227,14 +255,16 @@ class TestCreateNetworkSegmentRange(TestNetworkSegmentRange): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.create_network_segment_range.assert_called_once_with(**{ - 'shared': False, - 'project_id': mock.ANY, - 'network_type': 'vxlan', - 'minimum': self._network_segment_range.minimum, - 'maximum': self._network_segment_range.maximum, - 'name': self._network_segment_range.name, - }) + self.network.create_network_segment_range.assert_called_once_with( + **{ + 'shared': False, + 'project_id': mock.ANY, + 'network_type': 'vxlan', + 'minimum': self._network_segment_range.minimum, + 'maximum': self._network_segment_range.maximum, + 'name': self._network_segment_range.name, + } + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) @@ -242,9 +272,12 @@ class TestCreateNetworkSegmentRange(TestNetworkSegmentRange): def test_create_shared_minimum_options(self): arglist = [ '--shared', - '--network-type', 'vxlan', - '--minimum', str(self._network_segment_range.minimum), - '--maximum', str(self._network_segment_range.maximum), + '--network-type', + 'vxlan', + '--minimum', + str(self._network_segment_range.minimum), + '--maximum', + str(self._network_segment_range.maximum), self._network_segment_range.name, ] verifylist = [ @@ -258,13 +291,15 @@ class TestCreateNetworkSegmentRange(TestNetworkSegmentRange): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.create_network_segment_range.assert_called_once_with(**{ - 'shared': True, - 'network_type': 'vxlan', - 'minimum': self._network_segment_range.minimum, - 'maximum': self._network_segment_range.maximum, - 'name': self._network_segment_range.name, - }) + self.network.create_network_segment_range.assert_called_once_with( + **{ + 'shared': True, + 'network_type': 'vxlan', + 'minimum': self._network_segment_range.minimum, + 'maximum': self._network_segment_range.maximum, + 'name': self._network_segment_range.name, + } + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) @@ -272,11 +307,16 @@ class TestCreateNetworkSegmentRange(TestNetworkSegmentRange): def test_create_all_options(self): arglist = [ '--private', - '--project', self._network_segment_range.project_id, - '--network-type', self._network_segment_range.network_type, - '--physical-network', self._network_segment_range.physical_network, - '--minimum', str(self._network_segment_range.minimum), - '--maximum', str(self._network_segment_range.maximum), + '--project', + self._network_segment_range.project_id, + '--network-type', + self._network_segment_range.network_type, + '--physical-network', + self._network_segment_range.physical_network, + '--minimum', + str(self._network_segment_range.minimum), + '--maximum', + str(self._network_segment_range.maximum), self._network_segment_range.name, ] verifylist = [ @@ -292,22 +332,23 @@ class TestCreateNetworkSegmentRange(TestNetworkSegmentRange): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.create_network_segment_range.assert_called_once_with(**{ - 'shared': self._network_segment_range.shared, - 'project_id': mock.ANY, - 'network_type': self._network_segment_range.network_type, - 'physical_network': self._network_segment_range.physical_network, - 'minimum': self._network_segment_range.minimum, - 'maximum': self._network_segment_range.maximum, - 'name': self._network_segment_range.name, - }) + self.network.create_network_segment_range.assert_called_once_with( + **{ + 'shared': self._network_segment_range.shared, + 'project_id': mock.ANY, + 'network_type': self._network_segment_range.network_type, + 'physical_network': self._network_segment_range.physical_network, # noqa: E501 + 'minimum': self._network_segment_range.minimum, + 'maximum': self._network_segment_range.maximum, + 'name': self._network_segment_range.name, + } + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) class TestDeleteNetworkSegmentRange(TestNetworkSegmentRange): - # The network segment ranges to delete. _network_segment_ranges = network_fakes.create_network_segment_ranges() @@ -316,15 +357,15 @@ class TestDeleteNetworkSegmentRange(TestNetworkSegmentRange): self.network.find_extension = mock.Mock() self.network.delete_network_segment_range = mock.Mock( - return_value=None) + return_value=None + ) self.network.find_network_segment_range = mock.Mock( side_effect=self._network_segment_ranges ) # Get the command object to test self.cmd = network_segment_range.DeleteNetworkSegmentRange( - self.app, - self.namespace + self.app, self.namespace ) def test_delete(self): @@ -361,41 +402,46 @@ class TestDeleteNetworkSegmentRange(TestNetworkSegmentRange): self.assertIsNone(result) def test_delete_multiple_with_exception(self): - arglist = [ - self._network_segment_ranges[0].id, - 'doesnotexist' - ] + arglist = [self._network_segment_ranges[0].id, 'doesnotexist'] verifylist = [ - ('network_segment_range', - [self._network_segment_ranges[0].id, 'doesnotexist']), + ( + 'network_segment_range', + [self._network_segment_ranges[0].id, 'doesnotexist'], + ), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - find_mock_result = [self._network_segment_ranges[0], - exceptions.CommandError] - self.network.find_network_segment_range = ( - mock.Mock(side_effect=find_mock_result) + find_mock_result = [ + self._network_segment_ranges[0], + exceptions.CommandError, + ] + self.network.find_network_segment_range = mock.Mock( + side_effect=find_mock_result ) try: self.cmd.take_action(parsed_args) self.fail('CommandError should be raised.') except exceptions.CommandError as e: - self.assertEqual('1 of 2 network segment ranges failed to delete.', - str(e)) + self.assertEqual( + '1 of 2 network segment ranges failed to delete.', str(e) + ) self.network.find_network_segment_range.assert_any_call( - self._network_segment_ranges[0].id, ignore_missing=False) + self._network_segment_ranges[0].id, ignore_missing=False + ) self.network.find_network_segment_range.assert_any_call( - 'doesnotexist', ignore_missing=False) + 'doesnotexist', ignore_missing=False + ) self.network.delete_network_segment_range.assert_called_once_with( self._network_segment_ranges[0] ) class TestListNetworkSegmentRange(TestNetworkSegmentRange): - _network_segment_ranges = ( - network_fakes.create_network_segment_ranges(count=3)) + _network_segment_ranges = network_fakes.create_network_segment_ranges( + count=3 + ) columns = ( 'ID', @@ -406,7 +452,7 @@ class TestListNetworkSegmentRange(TestNetworkSegmentRange): 'Network Type', 'Physical Network', 'Minimum ID', - 'Maximum ID' + 'Maximum ID', ) columns_long = columns + ( 'Used', @@ -415,44 +461,50 @@ class TestListNetworkSegmentRange(TestNetworkSegmentRange): data = [] for _network_segment_range in _network_segment_ranges: - data.append(( - _network_segment_range.id, - _network_segment_range.name, - _network_segment_range.default, - _network_segment_range.shared, - _network_segment_range.project_id, - _network_segment_range.network_type, - _network_segment_range.physical_network, - _network_segment_range.minimum, - _network_segment_range.maximum, - )) + data.append( + ( + _network_segment_range.id, + _network_segment_range.name, + _network_segment_range.default, + _network_segment_range.shared, + _network_segment_range.project_id, + _network_segment_range.network_type, + _network_segment_range.physical_network, + _network_segment_range.minimum, + _network_segment_range.maximum, + ) + ) data_long = [] for _network_segment_range in _network_segment_ranges: - data_long.append(( - _network_segment_range.id, - _network_segment_range.name, - _network_segment_range.default, - _network_segment_range.shared, - _network_segment_range.project_id, - _network_segment_range.network_type, - _network_segment_range.physical_network, - _network_segment_range.minimum, - _network_segment_range.maximum, - {'3312e4ba67864b2eb53f3f41432f8efc': ['104', '106']}, - ['100-103', '105'], - )) + data_long.append( + ( + _network_segment_range.id, + _network_segment_range.name, + _network_segment_range.default, + _network_segment_range.shared, + _network_segment_range.project_id, + _network_segment_range.network_type, + _network_segment_range.physical_network, + _network_segment_range.minimum, + _network_segment_range.maximum, + {'3312e4ba67864b2eb53f3f41432f8efc': ['104', '106']}, + ['100-103', '105'], + ) + ) def setUp(self): super(TestListNetworkSegmentRange, self).setUp() # Get the command object to test self.cmd = network_segment_range.ListNetworkSegmentRange( - self.app, self.namespace) + self.app, self.namespace + ) self.network.find_extension = mock.Mock() self.network.network_segment_ranges = mock.Mock( - return_value=self._network_segment_ranges) + return_value=self._network_segment_ranges + ) def test_list_no_option(self): arglist = [] @@ -492,22 +544,29 @@ class TestListNetworkSegmentRange(TestNetworkSegmentRange): class TestSetNetworkSegmentRange(TestNetworkSegmentRange): - # The network segment range to set. _network_segment_range = network_fakes.create_one_network_segment_range() # The network segment range updated. minimum_updated = _network_segment_range.minimum - 5 maximum_updated = _network_segment_range.maximum + 5 - available_updated = (list(range(minimum_updated, 104)) + [105] + - list(range(107, maximum_updated + 1))) - _network_segment_range_updated = network_fakes.\ - create_one_network_segment_range( - attrs={'minimum': minimum_updated, - 'maximum': maximum_updated, - 'used': {104: '3312e4ba67864b2eb53f3f41432f8efc', - 106: '3312e4ba67864b2eb53f3f41432f8efc'}, - 'available': available_updated} + available_updated = ( + list(range(minimum_updated, 104)) + + [105] + + list(range(107, maximum_updated + 1)) + ) + _network_segment_range_updated = ( + network_fakes.create_one_network_segment_range( + attrs={ + 'minimum': minimum_updated, + 'maximum': maximum_updated, + 'used': { + 104: '3312e4ba67864b2eb53f3f41432f8efc', + 106: '3312e4ba67864b2eb53f3f41432f8efc', + }, + 'available': available_updated, + } ) + ) def setUp(self): super(TestSetNetworkSegmentRange, self).setUp() @@ -518,8 +577,9 @@ class TestSetNetworkSegmentRange(TestNetworkSegmentRange): ) # Get the command object to test - self.cmd = network_segment_range.SetNetworkSegmentRange(self.app, - self.namespace) + self.cmd = network_segment_range.SetNetworkSegmentRange( + self.app, self.namespace + ) def test_set_no_options(self): arglist = [ @@ -542,9 +602,12 @@ class TestSetNetworkSegmentRange(TestNetworkSegmentRange): def test_set_all_options(self): arglist = [ - '--name', 'new name', - '--minimum', str(self.minimum_updated), - '--maximum', str(self.maximum_updated), + '--name', + 'new name', + '--minimum', + str(self.minimum_updated), + '--maximum', + str(self.maximum_updated), self._network_segment_range.id, ] verifylist = [ @@ -572,7 +635,6 @@ class TestSetNetworkSegmentRange(TestNetworkSegmentRange): class TestShowNetworkSegmentRange(TestNetworkSegmentRange): - # The network segment range to show. _network_segment_range = network_fakes.create_one_network_segment_range() @@ -614,12 +676,14 @@ class TestShowNetworkSegmentRange(TestNetworkSegmentRange): # Get the command object to test self.cmd = network_segment_range.ShowNetworkSegmentRange( - self.app, self.namespace) + self.app, self.namespace + ) def test_show_no_options(self): # Missing required args should bail here - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, [], []) + self.assertRaises( + tests_utils.ParserException, self.check_parser, self.cmd, [], [] + ) def test_show_all_options(self): arglist = [ @@ -633,8 +697,7 @@ class TestShowNetworkSegmentRange(TestNetworkSegmentRange): columns, data = self.cmd.take_action(parsed_args) self.network.find_network_segment_range.assert_called_once_with( - self._network_segment_range.id, - ignore_missing=False + self._network_segment_range.id, ignore_missing=False ) self.assertEqual(self.columns, columns) diff --git a/openstackclient/tests/unit/network/v2/test_network_service_provider.py b/openstackclient/tests/unit/network/v2/test_network_service_provider.py index 5e4ddea6cf..944e693672 100644 --- a/openstackclient/tests/unit/network/v2/test_network_service_provider.py +++ b/openstackclient/tests/unit/network/v2/test_network_service_provider.py @@ -15,23 +15,24 @@ from unittest import mock -from openstackclient.network.v2 import network_service_provider \ - as service_provider +from openstackclient.network.v2 import ( + network_service_provider as service_provider, +) from openstackclient.tests.unit.network.v2 import fakes class TestNetworkServiceProvider(fakes.TestNetworkV2): - def setUp(self): super(TestNetworkServiceProvider, self).setUp() self.network = self.app.client_manager.network class TestListNetworkServiceProvider(TestNetworkServiceProvider): - provider_list = \ + provider_list = ( fakes.FakeNetworkServiceProvider.create_network_service_providers( count=2 ) + ) columns = ( 'Service Type', @@ -42,11 +43,13 @@ class TestListNetworkServiceProvider(TestNetworkServiceProvider): data = [] for provider in provider_list: - data.append(( - provider.service_type, - provider.name, - provider.is_default, - )) + data.append( + ( + provider.service_type, + provider.name, + provider.is_default, + ) + ) def setUp(self): super(TestListNetworkServiceProvider, self).setUp() @@ -54,9 +57,9 @@ class TestListNetworkServiceProvider(TestNetworkServiceProvider): return_value=self.provider_list ) - self.cmd = \ - service_provider.ListNetworkServiceProvider(self.app, - self.namespace) + self.cmd = service_provider.ListNetworkServiceProvider( + self.app, self.namespace + ) def test_network_service_provider_list(self): arglist = [] diff --git a/openstackclient/tests/unit/network/v2/test_network_trunk.py b/openstackclient/tests/unit/network/v2/test_network_trunk.py index fae70fb018..19a4f49745 100644 --- a/openstackclient/tests/unit/network/v2/test_network_trunk.py +++ b/openstackclient/tests/unit/network/v2/test_network_trunk.py @@ -29,7 +29,6 @@ from openstackclient.tests.unit import utils as tests_utils # Tests for Neutron trunks # class TestNetworkTrunk(network_fakes.TestNetworkV2): - def setUp(self): super().setUp() @@ -46,20 +45,23 @@ class TestCreateNetworkTrunk(TestNetworkTrunk): domain = identity_fakes_v3.FakeDomain.create_one_domain() trunk_networks = network_fakes.create_networks(count=2) parent_port = network_fakes.create_one_port( - attrs={'project_id': project.id, - 'network_id': trunk_networks[0]['id']}) + attrs={'project_id': project.id, 'network_id': trunk_networks[0]['id']} + ) sub_port = network_fakes.create_one_port( - attrs={'project_id': project.id, - 'network_id': trunk_networks[1]['id']}) + attrs={'project_id': project.id, 'network_id': trunk_networks[1]['id']} + ) new_trunk = network_fakes.create_one_trunk( - attrs={'project_id': project.id, - 'port_id': parent_port['id'], - 'sub_ports': { - 'port_id': sub_port['id'], - 'segmentation_id': 42, - 'segmentation_type': 'vlan'} - }) + attrs={ + 'project_id': project.id, + 'port_id': parent_port['id'], + 'sub_ports': { + 'port_id': sub_port['id'], + 'segmentation_id': 42, + 'segmentation_type': 'vlan', + }, + } + ) columns = ( 'description', @@ -70,7 +72,7 @@ class TestCreateNetworkTrunk(TestNetworkTrunk): 'project_id', 'status', 'sub_ports', - 'tags' + 'tags', ) data = ( new_trunk.description, @@ -88,7 +90,8 @@ class TestCreateNetworkTrunk(TestNetworkTrunk): super().setUp() self.network.create_trunk = mock.Mock(return_value=self.new_trunk) self.network.find_port = mock.Mock( - side_effect=[self.parent_port, self.sub_port]) + side_effect=[self.parent_port, self.sub_port] + ) # Get the command object to test self.cmd = network_trunk.CreateNetworkTrunk(self.app, self.namespace) @@ -100,12 +103,18 @@ class TestCreateNetworkTrunk(TestNetworkTrunk): arglist = [] verifylist = [] - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_create_default_options(self): arglist = [ - "--parent-port", self.new_trunk['port_id'], + "--parent-port", + self.new_trunk['port_id'], self.new_trunk['name'], ] verifylist = [ @@ -114,13 +123,15 @@ class TestCreateNetworkTrunk(TestNetworkTrunk): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) - self.network.create_trunk.assert_called_once_with(**{ - 'name': self.new_trunk['name'], - 'admin_state_up': self.new_trunk['admin_state_up'], - 'port_id': self.new_trunk['port_id'], - }) + self.network.create_trunk.assert_called_once_with( + **{ + 'name': self.new_trunk['name'], + 'admin_state_up': self.new_trunk['admin_state_up'], + 'port_id': self.new_trunk['port_id'], + } + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) @@ -129,37 +140,50 @@ class TestCreateNetworkTrunk(TestNetworkTrunk): subport = self.new_trunk.sub_ports[0] arglist = [ "--disable", - "--description", self.new_trunk.description, - "--parent-port", self.new_trunk.port_id, - "--subport", 'port=%(port)s,segmentation-type=%(seg_type)s,' - 'segmentation-id=%(seg_id)s' % { + "--description", + self.new_trunk.description, + "--parent-port", + self.new_trunk.port_id, + "--subport", + 'port=%(port)s,segmentation-type=%(seg_type)s,' + 'segmentation-id=%(seg_id)s' + % { 'seg_id': subport['segmentation_id'], 'seg_type': subport['segmentation_type'], - 'port': subport['port_id']}, + 'port': subport['port_id'], + }, self.new_trunk.name, ] verifylist = [ ('name', self.new_trunk.name), ('description', self.new_trunk.description), ('parent_port', self.new_trunk.port_id), - ('add_subports', [{ - 'port': subport['port_id'], - 'segmentation-id': str(subport['segmentation_id']), - 'segmentation-type': subport['segmentation_type']}]), + ( + 'add_subports', + [ + { + 'port': subport['port_id'], + 'segmentation-id': str(subport['segmentation_id']), + 'segmentation-type': subport['segmentation_type'], + } + ], + ), ('disable', True), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) - self.network.create_trunk.assert_called_once_with(**{ - 'name': self.new_trunk.name, - 'description': self.new_trunk.description, - 'admin_state_up': False, - 'port_id': self.new_trunk.port_id, - 'sub_ports': [subport], - }) + self.network.create_trunk.assert_called_once_with( + **{ + 'name': self.new_trunk.name, + 'description': self.new_trunk.description, + 'admin_state_up': False, + 'port_id': self.new_trunk.port_id, + 'sub_ports': [subport], + } + ) self.assertEqual(self.columns, columns) data_with_desc = list(self.data) data_with_desc[0] = self.new_trunk['description'] @@ -169,27 +193,38 @@ class TestCreateNetworkTrunk(TestNetworkTrunk): def test_create_trunk_with_subport_invalid_segmentation_id_fail(self): subport = self.new_trunk.sub_ports[0] arglist = [ - "--parent-port", self.new_trunk.port_id, - "--subport", "port=%(port)s,segmentation-type=%(seg_type)s," - "segmentation-id=boom" % { + "--parent-port", + self.new_trunk.port_id, + "--subport", + "port=%(port)s,segmentation-type=%(seg_type)s," + "segmentation-id=boom" + % { 'seg_type': subport['segmentation_type'], - 'port': subport['port_id']}, + 'port': subport['port_id'], + }, self.new_trunk.name, ] verifylist = [ ('name', self.new_trunk.name), ('parent_port', self.new_trunk.port_id), - ('add_subports', [{ - 'port': subport['port_id'], - 'segmentation-id': 'boom', - 'segmentation-type': subport['segmentation_type']}]), + ( + 'add_subports', + [ + { + 'port': subport['port_id'], + 'segmentation-id': 'boom', + 'segmentation-type': subport['segmentation_type'], + } + ], + ), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) with testtools.ExpectedException(exceptions.CommandError) as e: self.cmd.take_action(parsed_args) - self.assertEqual("Segmentation-id 'boom' is not an integer", - str(e)) + self.assertEqual( + "Segmentation-id 'boom' is not an integer", str(e) + ) def test_create_network_trunk_subports_without_optional_keys(self): subport = copy.copy(self.new_trunk.sub_ports[0]) @@ -197,26 +232,29 @@ class TestCreateNetworkTrunk(TestNetworkTrunk): subport.pop('segmentation_type') subport.pop('segmentation_id') arglist = [ - '--parent-port', self.new_trunk.port_id, - '--subport', 'port=%(port)s' % {'port': subport['port_id']}, + '--parent-port', + self.new_trunk.port_id, + '--subport', + 'port=%(port)s' % {'port': subport['port_id']}, self.new_trunk.name, ] verifylist = [ ('name', self.new_trunk.name), ('parent_port', self.new_trunk.port_id), - ('add_subports', [{ - 'port': subport['port_id']}]), + ('add_subports', [{'port': subport['port_id']}]), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) - self.network.create_trunk.assert_called_once_with(**{ - 'name': self.new_trunk.name, - 'admin_state_up': True, - 'port_id': self.new_trunk.port_id, - 'sub_ports': [subport], - }) + self.network.create_trunk.assert_called_once_with( + **{ + 'name': self.new_trunk.name, + 'admin_state_up': True, + 'port_id': self.new_trunk.port_id, + 'sub_ports': [subport], + } + ) self.assertEqual(self.columns, columns) data_with_desc = list(self.data) data_with_desc[0] = self.new_trunk['description'] @@ -226,19 +264,29 @@ class TestCreateNetworkTrunk(TestNetworkTrunk): def test_create_network_trunk_subports_without_required_key_fail(self): subport = self.new_trunk.sub_ports[0] arglist = [ - '--parent-port', self.new_trunk.port_id, - '--subport', 'segmentation-type=%(seg_type)s,' - 'segmentation-id=%(seg_id)s' % { + '--parent-port', + self.new_trunk.port_id, + '--subport', + 'segmentation-type=%(seg_type)s,' + 'segmentation-id=%(seg_id)s' + % { 'seg_id': subport['segmentation_id'], - 'seg_type': subport['segmentation_type']}, + 'seg_type': subport['segmentation_type'], + }, self.new_trunk.name, ] verifylist = [ ('name', self.new_trunk.name), ('parent_port', self.new_trunk.port_id), - ('add_subports', [{ - 'segmentation_id': str(subport['segmentation_id']), - 'segmentation_type': subport['segmentation_type']}]), + ( + 'add_subports', + [ + { + 'segmentation_id': str(subport['segmentation_id']), + 'segmentation_type': subport['segmentation_type'], + } + ], + ), ] with testtools.ExpectedException(argparse.ArgumentTypeError): @@ -251,28 +299,33 @@ class TestDeleteNetworkTrunk(TestNetworkTrunk): domain = identity_fakes_v3.FakeDomain.create_one_domain() trunk_networks = network_fakes.create_networks(count=2) parent_port = network_fakes.create_one_port( - attrs={'project_id': project.id, - 'network_id': trunk_networks[0]['id']}) + attrs={'project_id': project.id, 'network_id': trunk_networks[0]['id']} + ) sub_port = network_fakes.create_one_port( - attrs={'project_id': project.id, - 'network_id': trunk_networks[1]['id']}) + attrs={'project_id': project.id, 'network_id': trunk_networks[1]['id']} + ) new_trunks = network_fakes.create_trunks( - attrs={'project_id': project.id, - 'port_id': parent_port['id'], - 'sub_ports': { - 'port_id': sub_port['id'], - 'segmentation_id': 42, - 'segmentation_type': 'vlan'} - }) + attrs={ + 'project_id': project.id, + 'port_id': parent_port['id'], + 'sub_ports': { + 'port_id': sub_port['id'], + 'segmentation_id': 42, + 'segmentation_type': 'vlan', + }, + } + ) def setUp(self): super().setUp() self.network.find_trunk = mock.Mock( - side_effect=[self.new_trunks[0], self.new_trunks[1]]) + side_effect=[self.new_trunks[0], self.new_trunks[1]] + ) self.network.delete_trunk = mock.Mock(return_value=None) self.network.find_port = mock.Mock( - side_effect=[self.parent_port, self.sub_port]) + side_effect=[self.parent_port, self.sub_port] + ) self.projects_mock.get.return_value = self.project self.domains_mock.get.return_value = self.domain @@ -291,7 +344,8 @@ class TestDeleteNetworkTrunk(TestNetworkTrunk): result = self.cmd.take_action(parsed_args) self.network.delete_trunk.assert_called_once_with( - self.new_trunks[0].id) + self.new_trunks[0].id + ) self.assertIsNone(result) def test_delete_trunk_multiple(self): @@ -319,13 +373,13 @@ class TestDeleteNetworkTrunk(TestNetworkTrunk): 'unexist_trunk', ] verifylist = [ - ('trunk', - [self.new_trunks[0].name, 'unexist_trunk']), + ('trunk', [self.new_trunks[0].name, 'unexist_trunk']), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.network.find_trunk = mock.Mock( - side_effect=[self.new_trunks[0], exceptions.CommandError]) + side_effect=[self.new_trunks[0], exceptions.CommandError] + ) with testtools.ExpectedException(exceptions.CommandError) as e: self.cmd.take_action(parsed_args) self.assertEqual('1 of 2 trunks failed to delete.', str(e)) @@ -335,7 +389,6 @@ class TestDeleteNetworkTrunk(TestNetworkTrunk): class TestShowNetworkTrunk(TestNetworkTrunk): - project = identity_fakes_v3.FakeProject.create_one_project() domain = identity_fakes_v3.FakeDomain.create_one_domain() # The trunk to set. @@ -349,7 +402,7 @@ class TestShowNetworkTrunk(TestNetworkTrunk): 'project_id', 'status', 'sub_ports', - 'tags' + 'tags', ) data = ( new_trunk.description, @@ -378,8 +431,13 @@ class TestShowNetworkTrunk(TestNetworkTrunk): arglist = [] verifylist = [] - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_show_all_options(self): arglist = [ @@ -402,41 +460,32 @@ class TestListNetworkTrunk(TestNetworkTrunk): domain = identity_fakes_v3.FakeDomain.create_one_domain() # Create trunks to be listed. new_trunks = network_fakes.create_trunks( - {'created_at': '2001-01-01 00:00:00', - 'updated_at': '2001-01-01 00:00:00'}, count=3) + { + 'created_at': '2001-01-01 00:00:00', + 'updated_at': '2001-01-01 00:00:00', + }, + count=3, + ) - columns = ( - 'ID', - 'Name', - 'Parent Port', - 'Description' - ) - columns_long = columns + ( - 'Status', - 'State', - 'Created At', - 'Updated At' - ) + columns = ('ID', 'Name', 'Parent Port', 'Description') + columns_long = columns + ('Status', 'State', 'Created At', 'Updated At') data = [] for t in new_trunks: - data.append(( - t['id'], - t['name'], - t['port_id'], - t['description'] - )) + data.append((t['id'], t['name'], t['port_id'], t['description'])) data_long = [] for t in new_trunks: - data_long.append(( - t['id'], - t['name'], - t['port_id'], - t['description'], - t['status'], - network_trunk.AdminStateColumn(''), - '2001-01-01 00:00:00', - '2001-01-01 00:00:00', - )) + data_long.append( + ( + t['id'], + t['name'], + t['port_id'], + t['description'], + t['status'], + network_trunk.AdminStateColumn(''), + '2001-01-01 00:00:00', + '2001-01-01 00:00:00', + ) + ) def setUp(self): super().setUp() @@ -476,25 +525,27 @@ class TestListNetworkTrunk(TestNetworkTrunk): class TestSetNetworkTrunk(TestNetworkTrunk): - project = identity_fakes_v3.FakeProject.create_one_project() domain = identity_fakes_v3.FakeDomain.create_one_domain() trunk_networks = network_fakes.create_networks(count=2) parent_port = network_fakes.create_one_port( - attrs={'project_id': project.id, - 'network_id': trunk_networks[0]['id']}) + attrs={'project_id': project.id, 'network_id': trunk_networks[0]['id']} + ) sub_port = network_fakes.create_one_port( - attrs={'project_id': project.id, - 'network_id': trunk_networks[1]['id']}) + attrs={'project_id': project.id, 'network_id': trunk_networks[1]['id']} + ) # Create trunks to be listed. _trunk = network_fakes.create_one_trunk( - attrs={'project_id': project.id, - 'port_id': parent_port['id'], - 'sub_ports': { - 'port_id': sub_port['id'], - 'segmentation_id': 42, - 'segmentation_type': 'vlan'} - }) + attrs={ + 'project_id': project.id, + 'port_id': parent_port['id'], + 'sub_ports': { + 'port_id': sub_port['id'], + 'segmentation_id': 42, + 'segmentation_type': 'vlan', + }, + } + ) columns = ( 'admin_state_up', 'id', @@ -521,7 +572,8 @@ class TestSetNetworkTrunk(TestNetworkTrunk): self.network.add_trunk_subports = mock.Mock(return_value=self._trunk) self.network.find_trunk = mock.Mock(return_value=self._trunk) self.network.find_port = mock.Mock( - side_effect=[self.sub_port, self.sub_port]) + side_effect=[self.sub_port, self.sub_port] + ) self.projects_mock.get.return_value = self.project self.domains_mock.get.return_value = self.domain @@ -531,7 +583,8 @@ class TestSetNetworkTrunk(TestNetworkTrunk): def _test_set_network_trunk_attr(self, attr, value): arglist = [ - '--%s' % attr, value, + '--%s' % attr, + value, self._trunk[attr], ] verifylist = [ @@ -545,8 +598,7 @@ class TestSetNetworkTrunk(TestNetworkTrunk): attrs = { attr: value, } - self.network.update_trunk.assert_called_once_with( - self._trunk, **attrs) + self.network.update_trunk.assert_called_once_with(self._trunk, **attrs) self.assertIsNone(result) def test_set_network_trunk_name(self): @@ -571,8 +623,7 @@ class TestSetNetworkTrunk(TestNetworkTrunk): attrs = { 'admin_state_up': False, } - self.network.update_trunk.assert_called_once_with( - self._trunk, **attrs) + self.network.update_trunk.assert_called_once_with(self._trunk, **attrs) self.assertIsNone(result) def test_set_network_trunk_admin_state_up_enable(self): @@ -591,45 +642,57 @@ class TestSetNetworkTrunk(TestNetworkTrunk): attrs = { 'admin_state_up': True, } - self.network.update_trunk.assert_called_once_with( - self._trunk, **attrs) + self.network.update_trunk.assert_called_once_with(self._trunk, **attrs) self.assertIsNone(result) def test_set_network_trunk_nothing(self): - arglist = [self._trunk['name'], ] - verifylist = [('trunk', self._trunk['name']), ] + arglist = [ + self._trunk['name'], + ] + verifylist = [ + ('trunk', self._trunk['name']), + ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) attrs = {} - self.network.update_trunk.assert_called_once_with( - self._trunk, **attrs) + self.network.update_trunk.assert_called_once_with(self._trunk, **attrs) self.assertIsNone(result) def test_set_network_trunk_subports(self): subport = self._trunk['sub_ports'][0] arglist = [ - '--subport', 'port=%(port)s,segmentation-type=%(seg_type)s,' - 'segmentation-id=%(seg_id)s' % { + '--subport', + 'port=%(port)s,segmentation-type=%(seg_type)s,' + 'segmentation-id=%(seg_id)s' + % { 'seg_id': subport['segmentation_id'], 'seg_type': subport['segmentation_type'], - 'port': subport['port_id']}, + 'port': subport['port_id'], + }, self._trunk['name'], ] verifylist = [ ('trunk', self._trunk['name']), - ('set_subports', [{ - 'port': subport['port_id'], - 'segmentation-id': str(subport['segmentation_id']), - 'segmentation-type': subport['segmentation_type']}]), + ( + 'set_subports', + [ + { + 'port': subport['port_id'], + 'segmentation-id': str(subport['segmentation_id']), + 'segmentation-type': subport['segmentation_type'], + } + ], + ), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.network.add_trunk_subports.assert_called_once_with( - self._trunk, [subport]) + self._trunk, [subport] + ) self.assertIsNone(result) def test_set_network_trunk_subports_without_optional_keys(self): @@ -638,36 +701,46 @@ class TestSetNetworkTrunk(TestNetworkTrunk): subport.pop('segmentation_type') subport.pop('segmentation_id') arglist = [ - '--subport', 'port=%(port)s' % {'port': subport['port_id']}, + '--subport', + 'port=%(port)s' % {'port': subport['port_id']}, self._trunk['name'], ] verifylist = [ ('trunk', self._trunk['name']), - ('set_subports', [{ - 'port': subport['port_id']}]), + ('set_subports', [{'port': subport['port_id']}]), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.network.add_trunk_subports.assert_called_once_with( - self._trunk, [subport]) + self._trunk, [subport] + ) self.assertIsNone(result) def test_set_network_trunk_subports_without_required_key_fail(self): subport = self._trunk['sub_ports'][0] arglist = [ - '--subport', 'segmentation-type=%(seg_type)s,' - 'segmentation-id=%(seg_id)s' % { + '--subport', + 'segmentation-type=%(seg_type)s,' + 'segmentation-id=%(seg_id)s' + % { 'seg_id': subport['segmentation_id'], - 'seg_type': subport['segmentation_type']}, + 'seg_type': subport['segmentation_type'], + }, self._trunk['name'], ] verifylist = [ ('trunk', self._trunk['name']), - ('set_subports', [{ - 'segmentation-id': str(subport['segmentation_id']), - 'segmentation-type': subport['segmentation_type']}]), + ( + 'set_subports', + [ + { + 'segmentation-id': str(subport['segmentation_id']), + 'segmentation-type': subport['segmentation_type'], + } + ], + ), ] with testtools.ExpectedException(argparse.ArgumentTypeError): @@ -677,7 +750,8 @@ class TestSetNetworkTrunk(TestNetworkTrunk): def test_set_trunk_attrs_with_exception(self): arglist = [ - '--name', 'reallylongname', + '--name', + 'reallylongname', self._trunk['name'], ] verifylist = [ @@ -686,22 +760,22 @@ class TestSetNetworkTrunk(TestNetworkTrunk): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.network.update_trunk = ( - mock.Mock(side_effect=exceptions.CommandError) + self.network.update_trunk = mock.Mock( + side_effect=exceptions.CommandError ) with testtools.ExpectedException(exceptions.CommandError) as e: self.cmd.take_action(parsed_args) self.assertEqual( - "Failed to set trunk '%s': " % self._trunk['name'], - str(e)) + "Failed to set trunk '%s': " % self._trunk['name'], str(e) + ) attrs = {'name': 'reallylongname'} - self.network.update_trunk.assert_called_once_with( - self._trunk, **attrs) + self.network.update_trunk.assert_called_once_with(self._trunk, **attrs) self.network.add_trunk_subports.assert_not_called() def test_set_trunk_add_subport_with_exception(self): arglist = [ - '--subport', 'port=invalid_subport', + '--subport', + 'port=invalid_subport', self._trunk['name'], ] verifylist = [ @@ -710,24 +784,25 @@ class TestSetNetworkTrunk(TestNetworkTrunk): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.network.add_trunk_subports = ( - mock.Mock(side_effect=exceptions.CommandError) + self.network.add_trunk_subports = mock.Mock( + side_effect=exceptions.CommandError + ) + self.network.find_port = mock.Mock( + return_value={'id': 'invalid_subport'} ) - self.network.find_port = (mock.Mock( - return_value={'id': 'invalid_subport'})) with testtools.ExpectedException(exceptions.CommandError) as e: self.cmd.take_action(parsed_args) self.assertEqual( "Failed to add subports to trunk '%s': " % self._trunk['name'], - str(e)) - self.network.update_trunk.assert_called_once_with( - self._trunk) + str(e), + ) + self.network.update_trunk.assert_called_once_with(self._trunk) self.network.add_trunk_subports.assert_called_once_with( - self._trunk, [{'port_id': 'invalid_subport'}]) + self._trunk, [{'port_id': 'invalid_subport'}] + ) class TestListNetworkSubport(TestNetworkTrunk): - _trunk = network_fakes.create_one_trunk() _subports = _trunk['sub_ports'] @@ -738,25 +813,29 @@ class TestListNetworkSubport(TestNetworkTrunk): ) data = [] for s in _subports: - data.append(( - s['port_id'], - s['segmentation_type'], - s['segmentation_id'], - )) + data.append( + ( + s['port_id'], + s['segmentation_type'], + s['segmentation_id'], + ) + ) def setUp(self): super().setUp() self.network.find_trunk = mock.Mock(return_value=self._trunk) self.network.get_trunk_subports = mock.Mock( - return_value={network_trunk.SUB_PORTS: self._subports}) + return_value={network_trunk.SUB_PORTS: self._subports} + ) # Get the command object to test self.cmd = network_trunk.ListNetworkSubport(self.app, self.namespace) def test_subport_list(self): arglist = [ - '--trunk', self._trunk['name'], + '--trunk', + self._trunk['name'], ] verifylist = [ ('trunk', self._trunk['name']), @@ -774,19 +853,22 @@ class TestUnsetNetworkTrunk(TestNetworkTrunk): domain = identity_fakes_v3.FakeDomain.create_one_domain() trunk_networks = network_fakes.create_networks(count=2) parent_port = network_fakes.create_one_port( - attrs={'project_id': project.id, - 'network_id': trunk_networks[0]['id']}) + attrs={'project_id': project.id, 'network_id': trunk_networks[0]['id']} + ) sub_port = network_fakes.create_one_port( - attrs={'project_id': project.id, - 'network_id': trunk_networks[1]['id']}) + attrs={'project_id': project.id, 'network_id': trunk_networks[1]['id']} + ) _trunk = network_fakes.create_one_trunk( - attrs={'project_id': project.id, - 'port_id': parent_port['id'], - 'sub_ports': { - 'port_id': sub_port['id'], - 'segmentation_id': 42, - 'segmentation_type': 'vlan'} - }) + attrs={ + 'project_id': project.id, + 'port_id': parent_port['id'], + 'sub_ports': { + 'port_id': sub_port['id'], + 'segmentation_id': 42, + 'segmentation_type': 'vlan', + }, + } + ) columns = ( 'admin_state_up', @@ -812,7 +894,8 @@ class TestUnsetNetworkTrunk(TestNetworkTrunk): self.network.find_trunk = mock.Mock(return_value=self._trunk) self.network.find_port = mock.Mock( - side_effect=[self.sub_port, self.sub_port]) + side_effect=[self.sub_port, self.sub_port] + ) self.network.delete_trunk_subports = mock.Mock(return_value=None) # Get the command object to test @@ -821,7 +904,8 @@ class TestUnsetNetworkTrunk(TestNetworkTrunk): def test_unset_network_trunk_subport(self): subport = self._trunk['sub_ports'][0] arglist = [ - "--subport", subport['port_id'], + "--subport", + subport['port_id'], self._trunk['name'], ] @@ -835,8 +919,7 @@ class TestUnsetNetworkTrunk(TestNetworkTrunk): result = self.cmd.take_action(parsed_args) self.network.delete_trunk_subports.assert_called_once_with( - self._trunk, - [{'port_id': subport['port_id']}] + self._trunk, [{'port_id': subport['port_id']}] ) self.assertIsNone(result) @@ -847,5 +930,10 @@ class TestUnsetNetworkTrunk(TestNetworkTrunk): verifylist = [ ('trunk', self._trunk['name']), ] - self.assertRaises(tests_utils.ParserException, - self.check_parser, self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) diff --git a/openstackclient/tests/unit/network/v2/test_port.py b/openstackclient/tests/unit/network/v2/test_port.py index 04412c5a84..0f6bb9c34c 100644 --- a/openstackclient/tests/unit/network/v2/test_port.py +++ b/openstackclient/tests/unit/network/v2/test_port.py @@ -31,7 +31,6 @@ LIST_FIELDS_TO_RETRIEVE_LONG = ('security_group_ids', 'device_owner', 'tags') class TestPort(network_fakes.TestNetworkV2): - def setUp(self): super(TestPort, self).setUp() @@ -124,7 +123,6 @@ class TestPort(network_fakes.TestNetworkV2): class TestCreatePort(TestPort): - _port = network_fakes.create_one_port() columns, data = TestPort._get_common_cols_data(_port) @@ -133,9 +131,11 @@ class TestCreatePort(TestPort): self.network.create_port = mock.Mock(return_value=self._port) self.network.set_tags = mock.Mock(return_value=None) - fake_net = network_fakes.create_one_network({ - 'id': self._port.network_id, - }) + fake_net = network_fakes.create_one_network( + { + 'id': self._port.network_id, + } + ) self.network.find_network = mock.Mock(return_value=fake_net) self.fake_subnet = network_fakes.FakeSubnet.create_one_subnet() self.network.find_subnet = mock.Mock(return_value=self.fake_subnet) @@ -145,23 +145,29 @@ class TestCreatePort(TestPort): def test_create_default_options(self): arglist = [ - '--network', self._port.network_id, + '--network', + self._port.network_id, 'test-port', ] verifylist = [ - ('network', self._port.network_id,), + ( + 'network', + self._port.network_id, + ), ('enable', True), ('name', 'test-port'), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) - self.network.create_port.assert_called_once_with(**{ - 'admin_state_up': True, - 'network_id': self._port.network_id, - 'name': 'test-port', - }) + self.network.create_port.assert_called_once_with( + **{ + 'admin_state_up': True, + 'network_id': self._port.network_id, + 'name': 'test-port', + } + ) self.assertFalse(self.network.set_tags.called) self.assertEqual(set(self.columns), set(columns)) @@ -169,27 +175,36 @@ class TestCreatePort(TestPort): def test_create_full_options(self): arglist = [ - '--mac-address', 'aa:aa:aa:aa:aa:aa', - '--fixed-ip', 'subnet=%s,ip-address=10.0.0.2' - % self.fake_subnet.id, - '--description', self._port.description, - '--device', 'deviceid', - '--device-owner', 'fakeowner', + '--mac-address', + 'aa:aa:aa:aa:aa:aa', + '--fixed-ip', + 'subnet=%s,ip-address=10.0.0.2' % self.fake_subnet.id, + '--description', + self._port.description, + '--device', + 'deviceid', + '--device-owner', + 'fakeowner', '--disable', - '--vnic-type', 'macvtap', - '--binding-profile', 'foo=bar', - '--binding-profile', 'foo2=bar2', - '--network', self._port.network_id, - '--dns-domain', 'example.org', - '--dns-name', '8.8.8.8', + '--vnic-type', + 'macvtap', + '--binding-profile', + 'foo=bar', + '--binding-profile', + 'foo2=bar2', + '--network', + self._port.network_id, + '--dns-domain', + 'example.org', + '--dns-name', + '8.8.8.8', 'test-port', - ] verifylist = [ ('mac_address', 'aa:aa:aa:aa:aa:aa'), ( 'fixed_ip', - [{'subnet': self.fake_subnet.id, 'ip-address': '10.0.0.2'}] + [{'subnet': self.fake_subnet.id, 'ip-address': '10.0.0.2'}], ), ('description', self._port.description), ('device', 'deviceid'), @@ -204,56 +219,73 @@ class TestCreatePort(TestPort): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) - self.network.create_port.assert_called_once_with(**{ - 'mac_address': 'aa:aa:aa:aa:aa:aa', - 'fixed_ips': [{'subnet_id': self.fake_subnet.id, - 'ip_address': '10.0.0.2'}], - 'description': self._port.description, - 'device_id': 'deviceid', - 'device_owner': 'fakeowner', - 'admin_state_up': False, - 'binding:vnic_type': 'macvtap', - 'binding:profile': {'foo': 'bar', 'foo2': 'bar2'}, - 'network_id': self._port.network_id, - 'dns_domain': 'example.org', - 'dns_name': '8.8.8.8', - 'name': 'test-port', - }) + self.network.create_port.assert_called_once_with( + **{ + 'mac_address': 'aa:aa:aa:aa:aa:aa', + 'fixed_ips': [ + { + 'subnet_id': self.fake_subnet.id, + 'ip_address': '10.0.0.2', + } + ], + 'description': self._port.description, + 'device_id': 'deviceid', + 'device_owner': 'fakeowner', + 'admin_state_up': False, + 'binding:vnic_type': 'macvtap', + 'binding:profile': {'foo': 'bar', 'foo2': 'bar2'}, + 'network_id': self._port.network_id, + 'dns_domain': 'example.org', + 'dns_name': '8.8.8.8', + 'name': 'test-port', + } + ) self.assertEqual(set(self.columns), set(columns)) self.assertCountEqual(self.data, data) def test_create_invalid_json_binding_profile(self): arglist = [ - '--network', self._port.network_id, - '--binding-profile', '{"parent_name":"fake_parent"', + '--network', + self._port.network_id, + '--binding-profile', + '{"parent_name":"fake_parent"', 'test-port', ] - self.assertRaises(argparse.ArgumentTypeError, - self.check_parser, - self.cmd, - arglist, - None) + self.assertRaises( + argparse.ArgumentTypeError, + self.check_parser, + self.cmd, + arglist, + None, + ) def test_create_invalid_key_value_binding_profile(self): arglist = [ - '--network', self._port.network_id, - '--binding-profile', 'key', + '--network', + self._port.network_id, + '--binding-profile', + 'key', 'test-port', ] - self.assertRaises(argparse.ArgumentTypeError, - self.check_parser, - self.cmd, - arglist, - None) + self.assertRaises( + argparse.ArgumentTypeError, + self.check_parser, + self.cmd, + arglist, + None, + ) def test_create_json_binding_profile(self): arglist = [ - '--network', self._port.network_id, - '--binding-profile', '{"parent_name":"fake_parent"}', - '--binding-profile', '{"tag":42}', + '--network', + self._port.network_id, + '--binding-profile', + '{"parent_name":"fake_parent"}', + '--binding-profile', + '{"tag":42}', 'test-port', ] verifylist = [ @@ -264,14 +296,16 @@ class TestCreatePort(TestPort): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) - self.network.create_port.assert_called_once_with(**{ - 'admin_state_up': True, - 'network_id': self._port.network_id, - 'binding:profile': {'parent_name': 'fake_parent', 'tag': 42}, - 'name': 'test-port', - }) + self.network.create_port.assert_called_once_with( + **{ + 'admin_state_up': True, + 'network_id': self._port.network_id, + 'binding:profile': {'parent_name': 'fake_parent', 'tag': 42}, + 'name': 'test-port', + } + ) self.assertEqual(set(self.columns), set(columns)) self.assertCountEqual(self.data, data) @@ -280,53 +314,67 @@ class TestCreatePort(TestPort): secgroup = network_fakes.FakeSecurityGroup.create_one_security_group() self.network.find_security_group = mock.Mock(return_value=secgroup) arglist = [ - '--network', self._port.network_id, - '--security-group', secgroup.id, + '--network', + self._port.network_id, + '--security-group', + secgroup.id, 'test-port', ] verifylist = [ - ('network', self._port.network_id,), + ( + 'network', + self._port.network_id, + ), ('enable', True), ('security_group', [secgroup.id]), ('name', 'test-port'), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) - self.network.create_port.assert_called_once_with(**{ - 'admin_state_up': True, - 'network_id': self._port.network_id, - 'security_group_ids': [secgroup.id], - 'name': 'test-port', - }) + self.network.create_port.assert_called_once_with( + **{ + 'admin_state_up': True, + 'network_id': self._port.network_id, + 'security_group_ids': [secgroup.id], + 'name': 'test-port', + } + ) self.assertEqual(set(self.columns), set(columns)) self.assertCountEqual(self.data, data) def test_create_port_with_dns_name(self): arglist = [ - '--network', self._port.network_id, - '--dns-name', '8.8.8.8', + '--network', + self._port.network_id, + '--dns-name', + '8.8.8.8', 'test-port', ] verifylist = [ - ('network', self._port.network_id,), + ( + 'network', + self._port.network_id, + ), ('enable', True), ('dns_name', '8.8.8.8'), ('name', 'test-port'), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) - self.network.create_port.assert_called_once_with(**{ - 'admin_state_up': True, - 'network_id': self._port.network_id, - 'dns_name': '8.8.8.8', - 'name': 'test-port', - }) + self.network.create_port.assert_called_once_with( + **{ + 'admin_state_up': True, + 'network_id': self._port.network_id, + 'dns_name': '8.8.8.8', + 'name': 'test-port', + } + ) self.assertEqual(set(self.columns), set(columns)) self.assertCountEqual(self.data, data) @@ -336,34 +384,43 @@ class TestCreatePort(TestPort): sg_2 = network_fakes.FakeSecurityGroup.create_one_security_group() self.network.find_security_group = mock.Mock(side_effect=[sg_1, sg_2]) arglist = [ - '--network', self._port.network_id, - '--security-group', sg_1.id, - '--security-group', sg_2.id, + '--network', + self._port.network_id, + '--security-group', + sg_1.id, + '--security-group', + sg_2.id, 'test-port', ] verifylist = [ - ('network', self._port.network_id,), + ( + 'network', + self._port.network_id, + ), ('enable', True), ('security_group', [sg_1.id, sg_2.id]), ('name', 'test-port'), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) - self.network.create_port.assert_called_once_with(**{ - 'admin_state_up': True, - 'network_id': self._port.network_id, - 'security_group_ids': [sg_1.id, sg_2.id], - 'name': 'test-port', - }) + self.network.create_port.assert_called_once_with( + **{ + 'admin_state_up': True, + 'network_id': self._port.network_id, + 'security_group_ids': [sg_1.id, sg_2.id], + 'name': 'test-port', + } + ) self.assertEqual(set(self.columns), set(columns)) self.assertCountEqual(self.data, data) def test_create_with_no_security_groups(self): arglist = [ - '--network', self._port.network_id, + '--network', + self._port.network_id, '--no-security-group', 'test-port', ] @@ -375,21 +432,24 @@ class TestCreatePort(TestPort): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) - self.network.create_port.assert_called_once_with(**{ - 'admin_state_up': True, - 'network_id': self._port.network_id, - 'security_group_ids': [], - 'name': 'test-port', - }) + self.network.create_port.assert_called_once_with( + **{ + 'admin_state_up': True, + 'network_id': self._port.network_id, + 'security_group_ids': [], + 'name': 'test-port', + } + ) self.assertEqual(set(self.columns), set(columns)) self.assertCountEqual(self.data, data) def test_create_with_no_fixed_ips(self): arglist = [ - '--network', self._port.network_id, + '--network', + self._port.network_id, '--no-fixed-ip', 'test-port', ] @@ -401,55 +461,73 @@ class TestCreatePort(TestPort): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) - self.network.create_port.assert_called_once_with(**{ - 'admin_state_up': True, - 'network_id': self._port.network_id, - 'fixed_ips': [], - 'name': 'test-port', - }) + self.network.create_port.assert_called_once_with( + **{ + 'admin_state_up': True, + 'network_id': self._port.network_id, + 'fixed_ips': [], + 'name': 'test-port', + } + ) self.assertEqual(set(self.columns), set(columns)) self.assertCountEqual(self.data, data) def test_create_port_with_allowed_address_pair_ipaddr(self): - pairs = [{'ip_address': '192.168.1.123'}, - {'ip_address': '192.168.1.45'}] + pairs = [ + {'ip_address': '192.168.1.123'}, + {'ip_address': '192.168.1.45'}, + ] arglist = [ - '--network', self._port.network_id, - '--allowed-address', 'ip-address=192.168.1.123', - '--allowed-address', 'ip-address=192.168.1.45', + '--network', + self._port.network_id, + '--allowed-address', + 'ip-address=192.168.1.123', + '--allowed-address', + 'ip-address=192.168.1.45', 'test-port', ] verifylist = [ ('network', self._port.network_id), ('enable', True), - ('allowed_address_pairs', [{'ip-address': '192.168.1.123'}, - {'ip-address': '192.168.1.45'}]), + ( + 'allowed_address_pairs', + [ + {'ip-address': '192.168.1.123'}, + {'ip-address': '192.168.1.45'}, + ], + ), ('name', 'test-port'), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) - self.network.create_port.assert_called_once_with(**{ - 'admin_state_up': True, - 'network_id': self._port.network_id, - 'allowed_address_pairs': pairs, - 'name': 'test-port', - }) + self.network.create_port.assert_called_once_with( + **{ + 'admin_state_up': True, + 'network_id': self._port.network_id, + 'allowed_address_pairs': pairs, + 'name': 'test-port', + } + ) self.assertEqual(set(self.columns), set(columns)) self.assertCountEqual(self.data, data) def test_create_port_with_allowed_address_pair(self): - pairs = [{'ip_address': '192.168.1.123', - 'mac_address': 'aa:aa:aa:aa:aa:aa'}, - {'ip_address': '192.168.1.45', - 'mac_address': 'aa:aa:aa:aa:aa:b1'}] + pairs = [ + { + 'ip_address': '192.168.1.123', + 'mac_address': 'aa:aa:aa:aa:aa:aa', + }, + {'ip_address': '192.168.1.45', 'mac_address': 'aa:aa:aa:aa:aa:b1'}, + ] arglist = [ - '--network', self._port.network_id, + '--network', + self._port.network_id, '--allowed-address', 'ip-address=192.168.1.123,mac-address=aa:aa:aa:aa:aa:aa', '--allowed-address', @@ -459,22 +537,33 @@ class TestCreatePort(TestPort): verifylist = [ ('network', self._port.network_id), ('enable', True), - ('allowed_address_pairs', [{'ip-address': '192.168.1.123', - 'mac-address': 'aa:aa:aa:aa:aa:aa'}, - {'ip-address': '192.168.1.45', - 'mac-address': 'aa:aa:aa:aa:aa:b1'}]), + ( + 'allowed_address_pairs', + [ + { + 'ip-address': '192.168.1.123', + 'mac-address': 'aa:aa:aa:aa:aa:aa', + }, + { + 'ip-address': '192.168.1.45', + 'mac-address': 'aa:aa:aa:aa:aa:b1', + }, + ], + ), ('name', 'test-port'), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) - self.network.create_port.assert_called_once_with(**{ - 'admin_state_up': True, - 'network_id': self._port.network_id, - 'allowed_address_pairs': pairs, - 'name': 'test-port', - }) + self.network.create_port.assert_called_once_with( + **{ + 'admin_state_up': True, + 'network_id': self._port.network_id, + 'allowed_address_pairs': pairs, + 'name': 'test-port', + } + ) self.assertEqual(set(self.columns), set(columns)) self.assertCountEqual(self.data, data) @@ -483,38 +572,49 @@ class TestCreatePort(TestPort): qos_policy = network_fakes.FakeNetworkQosPolicy.create_one_qos_policy() self.network.find_qos_policy = mock.Mock(return_value=qos_policy) arglist = [ - '--network', self._port.network_id, - '--qos-policy', qos_policy.id, + '--network', + self._port.network_id, + '--qos-policy', + qos_policy.id, 'test-port', ] verifylist = [ - ('network', self._port.network_id,), + ( + 'network', + self._port.network_id, + ), ('enable', True), ('qos_policy', qos_policy.id), ('name', 'test-port'), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) - self.network.create_port.assert_called_once_with(**{ - 'admin_state_up': True, - 'network_id': self._port.network_id, - 'qos_policy_id': qos_policy.id, - 'name': 'test-port', - }) + self.network.create_port.assert_called_once_with( + **{ + 'admin_state_up': True, + 'network_id': self._port.network_id, + 'qos_policy_id': qos_policy.id, + 'name': 'test-port', + } + ) self.assertEqual(set(self.columns), set(columns)) self.assertCountEqual(self.data, data) def test_create_port_security_enabled(self): arglist = [ - '--network', self._port.network_id, + '--network', + self._port.network_id, '--enable-port-security', 'test-port', ] verifylist = [ - ('network', self._port.network_id,), + ( + 'network', + self._port.network_id, + ), ('enable', True), ('enable_port_security', True), ('name', 'test-port'), @@ -524,21 +624,27 @@ class TestCreatePort(TestPort): self.cmd.take_action(parsed_args) - self.network.create_port.assert_called_once_with(**{ - 'admin_state_up': True, - 'network_id': self._port.network_id, - 'port_security_enabled': True, - 'name': 'test-port', - }) + self.network.create_port.assert_called_once_with( + **{ + 'admin_state_up': True, + 'network_id': self._port.network_id, + 'port_security_enabled': True, + 'name': 'test-port', + } + ) def test_create_port_security_disabled(self): arglist = [ - '--network', self._port.network_id, + '--network', + self._port.network_id, '--disable-port-security', 'test-port', ] verifylist = [ - ('network', self._port.network_id,), + ( + 'network', + self._port.network_id, + ), ('enable', True), ('disable_port_security', True), ('name', 'test-port'), @@ -548,16 +654,19 @@ class TestCreatePort(TestPort): self.cmd.take_action(parsed_args) - self.network.create_port.assert_called_once_with(**{ - 'admin_state_up': True, - 'network_id': self._port.network_id, - 'port_security_enabled': False, - 'name': 'test-port', - }) + self.network.create_port.assert_called_once_with( + **{ + 'admin_state_up': True, + 'network_id': self._port.network_id, + 'port_security_enabled': False, + 'name': 'test-port', + } + ) def _test_create_with_tag(self, add_tags=True, add_tags_in_post=True): arglist = [ - '--network', self._port.network_id, + '--network', + self._port.network_id, 'test-port', ] if add_tags: @@ -565,7 +674,10 @@ class TestCreatePort(TestPort): else: arglist += ['--no-tag'] verifylist = [ - ('network', self._port.network_id,), + ( + 'network', + self._port.network_id, + ), ('enable', True), ('name', 'test-port'), ] @@ -577,7 +689,7 @@ class TestCreatePort(TestPort): self.network.find_extension = mock.Mock(return_value=add_tags_in_post) parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) args = { 'admin_state_up': True, @@ -598,18 +710,19 @@ class TestCreatePort(TestPort): # tags list which is used to call create_port(). create_port_call_kwargs = self.network.create_port.call_args[1] create_port_call_kwargs['tags'] = sorted( - create_port_call_kwargs['tags']) + create_port_call_kwargs['tags'] + ) self.assertDictEqual(args, create_port_call_kwargs) else: self.network.create_port.assert_called_once_with( admin_state_up=True, network_id=self._port.network_id, - name='test-port' + name='test-port', ) if add_tags: self.network.set_tags.assert_called_once_with( - self._port, - tests_utils.CompareBySet(['red', 'blue'])) + self._port, tests_utils.CompareBySet(['red', 'blue']) + ) else: self.assertFalse(self.network.set_tags.called) @@ -630,7 +743,8 @@ class TestCreatePort(TestPort): def _test_create_with_uplink_status_propagation(self, enable=True): arglist = [ - '--network', self._port.network_id, + '--network', + self._port.network_id, 'test-port', ] if enable: @@ -638,7 +752,10 @@ class TestCreatePort(TestPort): else: arglist += ['--disable-uplink-status-propagation'] verifylist = [ - ('network', self._port.network_id,), + ( + 'network', + self._port.network_id, + ), ('name', 'test-port'), ] if enable: @@ -647,14 +764,16 @@ class TestCreatePort(TestPort): verifylist.append(('disable_uplink_status_propagation', True)) parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) - self.network.create_port.assert_called_once_with(**{ - 'admin_state_up': True, - 'network_id': self._port.network_id, - 'propagate_uplink_status': enable, - 'name': 'test-port', - }) + self.network.create_port.assert_called_once_with( + **{ + 'admin_state_up': True, + 'network_id': self._port.network_id, + 'propagate_uplink_status': enable, + 'name': 'test-port', + } + ) self.assertEqual(set(self.columns), set(columns)) self.assertCountEqual(self.data, data) @@ -666,33 +785,53 @@ class TestCreatePort(TestPort): self._test_create_with_uplink_status_propagation(enable=False) def test_create_port_with_extra_dhcp_option(self): - extra_dhcp_options = [{'opt_name': 'classless-static-route', - 'opt_value': '169.254.169.254/32,22.2.0.2,' - '0.0.0.0/0,22.2.0.1', - 'ip_version': '4'}, - {'opt_name': 'dns-server', - 'opt_value': '240C::6666', - 'ip_version': '6'}] + extra_dhcp_options = [ + { + 'opt_name': 'classless-static-route', + 'opt_value': '169.254.169.254/32,22.2.0.2,' + '0.0.0.0/0,22.2.0.1', + 'ip_version': '4', + }, + { + 'opt_name': 'dns-server', + 'opt_value': '240C::6666', + 'ip_version': '6', + }, + ] arglist = [ - '--network', self._port.network_id, - '--extra-dhcp-option', 'name=classless-static-route,' - 'value=169.254.169.254/32,22.2.0.2,' - '0.0.0.0/0,22.2.0.1,' - 'ip-version=4', - '--extra-dhcp-option', 'name=dns-server,value=240C::6666,' - 'ip-version=6', + '--network', + self._port.network_id, + '--extra-dhcp-option', + 'name=classless-static-route,' + 'value=169.254.169.254/32,22.2.0.2,' + '0.0.0.0/0,22.2.0.1,' + 'ip-version=4', + '--extra-dhcp-option', + 'name=dns-server,value=240C::6666,' 'ip-version=6', 'test-port', ] verifylist = [ - ('network', self._port.network_id,), - ('extra_dhcp_options', [{'name': 'classless-static-route', - 'value': '169.254.169.254/32,22.2.0.2,' - '0.0.0.0/0,22.2.0.1', - 'ip-version': '4'}, - {'name': 'dns-server', - 'value': '240C::6666', - 'ip-version': '6'}]), + ( + 'network', + self._port.network_id, + ), + ( + 'extra_dhcp_options', + [ + { + 'name': 'classless-static-route', + 'value': '169.254.169.254/32,22.2.0.2,' + '0.0.0.0/0,22.2.0.1', + 'ip-version': '4', + }, + { + 'name': 'dns-server', + 'value': '240C::6666', + 'ip-version': '6', + }, + ], + ), ('name', 'test-port'), ] @@ -700,16 +839,19 @@ class TestCreatePort(TestPort): self.cmd.take_action(parsed_args) - self.network.create_port.assert_called_once_with(**{ - 'admin_state_up': True, - 'network_id': self._port.network_id, - 'extra_dhcp_opts': extra_dhcp_options, - 'name': 'test-port', - }) + self.network.create_port.assert_called_once_with( + **{ + 'admin_state_up': True, + 'network_id': self._port.network_id, + 'extra_dhcp_opts': extra_dhcp_options, + 'name': 'test-port', + } + ) def _test_create_with_numa_affinity_policy(self, policy=None): arglist = [ - '--network', self._port.network_id, + '--network', + self._port.network_id, 'test-port', ] if policy: @@ -717,7 +859,10 @@ class TestCreatePort(TestPort): numa_affinity_policy = None if not policy else policy verifylist = [ - ('network', self._port.network_id,), + ( + 'network', + self._port.network_id, + ), ('name', 'test-port'), ] if policy: @@ -725,7 +870,7 @@ class TestCreatePort(TestPort): parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) create_args = { 'admin_state_up': True, @@ -753,20 +898,28 @@ class TestCreatePort(TestPort): def test_create_with_device_profile(self): arglist = [ - '--network', self._port.network_id, - '--device-profile', 'cyborg_device_profile_1', + '--network', + self._port.network_id, + '--device-profile', + 'cyborg_device_profile_1', 'test-port', ] verifylist = [ - ('network', self._port.network_id,), - ('device_profile', self._port.device_profile,), + ( + 'network', + self._port.network_id, + ), + ( + 'device_profile', + self._port.device_profile, + ), ('name', 'test-port'), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) create_args = { 'admin_state_up': True, @@ -780,7 +933,6 @@ class TestCreatePort(TestPort): class TestDeletePort(TestPort): - # Ports to delete. _ports = network_fakes.create_ports(count=2) @@ -788,8 +940,7 @@ class TestDeletePort(TestPort): super(TestDeletePort, self).setUp() self.network.delete_port = mock.Mock(return_value=None) - self.network.find_port = network_fakes.get_ports( - ports=self._ports) + self.network.find_port = network_fakes.get_ports(ports=self._ports) # Get the command object to test self.cmd = port.DeletePort(self.app, self.namespace) @@ -804,7 +955,8 @@ class TestDeletePort(TestPort): result = self.cmd.take_action(parsed_args) self.network.find_port.assert_called_once_with( - self._ports[0].name, ignore_missing=False) + self._ports[0].name, ignore_missing=False + ) self.network.delete_port.assert_called_once_with(self._ports[0]) self.assertIsNone(result) @@ -833,15 +985,12 @@ class TestDeletePort(TestPort): 'unexist_port', ] verifylist = [ - ('port', - [self._ports[0].name, 'unexist_port']), + ('port', [self._ports[0].name, 'unexist_port']), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) find_mock_result = [self._ports[0], exceptions.CommandError] - self.network.find_port = ( - mock.Mock(side_effect=find_mock_result) - ) + self.network.find_port = mock.Mock(side_effect=find_mock_result) try: self.cmd.take_action(parsed_args) @@ -850,16 +999,15 @@ class TestDeletePort(TestPort): self.assertEqual('1 of 2 ports failed to delete.', str(e)) self.network.find_port.assert_any_call( - self._ports[0].name, ignore_missing=False) - self.network.find_port.assert_any_call( - 'unexist_port', ignore_missing=False) - self.network.delete_port.assert_called_once_with( - self._ports[0] + self._ports[0].name, ignore_missing=False ) + self.network.find_port.assert_any_call( + 'unexist_port', ignore_missing=False + ) + self.network.delete_port.assert_called_once_with(self._ports[0]) class TestListPort(TestPort): - _ports = network_fakes.create_ports(count=3) columns = ( @@ -883,26 +1031,30 @@ class TestListPort(TestPort): data = [] for prt in _ports: - data.append(( - prt.id, - prt.name, - prt.mac_address, - format_columns.ListDictColumn(prt.fixed_ips), - prt.status, - )) + data.append( + ( + prt.id, + prt.name, + prt.mac_address, + format_columns.ListDictColumn(prt.fixed_ips), + prt.status, + ) + ) data_long = [] for prt in _ports: - data_long.append(( - prt.id, - prt.name, - prt.mac_address, - format_columns.ListDictColumn(prt.fixed_ips), - prt.status, - format_columns.ListColumn(prt.security_group_ids), - prt.device_owner, - format_columns.ListColumn(prt.tags), - )) + data_long.append( + ( + prt.id, + prt.name, + prt.mac_address, + format_columns.ListDictColumn(prt.fixed_ips), + prt.status, + format_columns.ListColumn(prt.security_group_ids), + prt.device_owner, + format_columns.ListColumn(prt.tags), + ) + ) def setUp(self): super(TestListPort, self).setUp() @@ -910,12 +1062,16 @@ class TestListPort(TestPort): # Get the command object to test self.cmd = port.ListPort(self.app, self.namespace) self.network.ports = mock.Mock(return_value=self._ports) - fake_router = network_fakes.FakeRouter.create_one_router({ - 'id': 'fake-router-id', - }) - fake_network = network_fakes.create_one_network({ - 'id': 'fake-network-id', - }) + fake_router = network_fakes.FakeRouter.create_one_router( + { + 'id': 'fake-router-id', + } + ) + fake_network = network_fakes.create_one_network( + { + 'id': 'fake-network-id', + } + ) self.network.find_router = mock.Mock(return_value=fake_router) self.network.find_network = mock.Mock(return_value=fake_network) self.app.client_manager.compute = mock.Mock() @@ -929,27 +1085,29 @@ class TestListPort(TestPort): columns, data = self.cmd.take_action(parsed_args) self.network.ports.assert_called_once_with( - fields=LIST_FIELDS_TO_RETRIEVE) + fields=LIST_FIELDS_TO_RETRIEVE + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) def test_port_list_router_opt(self): arglist = [ - '--router', 'fake-router-name', + '--router', + 'fake-router-name', ] - verifylist = [ - ('router', 'fake-router-name') - ] + verifylist = [('router', 'fake-router-name')] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.ports.assert_called_once_with(**{ - 'device_id': 'fake-router-id', - 'fields': LIST_FIELDS_TO_RETRIEVE, - }) + self.network.ports.assert_called_once_with( + **{ + 'device_id': 'fake-router-id', + 'fields': LIST_FIELDS_TO_RETRIEVE, + } + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) @@ -959,7 +1117,8 @@ class TestListPort(TestPort): mock_find.return_value = fake_server arglist = [ - '--server', 'fake-server-name', + '--server', + 'fake-server-name', ] verifylist = [ ('server', 'fake-server-name'), @@ -968,160 +1127,173 @@ class TestListPort(TestPort): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) self.network.ports.assert_called_once_with( - device_id=fake_server.id, - fields=LIST_FIELDS_TO_RETRIEVE) + device_id=fake_server.id, fields=LIST_FIELDS_TO_RETRIEVE + ) mock_find.assert_called_once_with(mock.ANY, 'fake-server-name') self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) def test_port_list_device_id_opt(self): arglist = [ - '--device-id', self._ports[0].device_id, + '--device-id', + self._ports[0].device_id, ] - verifylist = [ - ('device_id', self._ports[0].device_id) - ] + verifylist = [('device_id', self._ports[0].device_id)] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.ports.assert_called_once_with(**{ - 'device_id': self._ports[0].device_id, - 'fields': LIST_FIELDS_TO_RETRIEVE, - }) + self.network.ports.assert_called_once_with( + **{ + 'device_id': self._ports[0].device_id, + 'fields': LIST_FIELDS_TO_RETRIEVE, + } + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) def test_port_list_device_owner_opt(self): arglist = [ - '--device-owner', self._ports[0].device_owner, + '--device-owner', + self._ports[0].device_owner, ] - verifylist = [ - ('device_owner', self._ports[0].device_owner) - ] + verifylist = [('device_owner', self._ports[0].device_owner)] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.ports.assert_called_once_with(**{ - 'device_owner': self._ports[0].device_owner, - 'fields': LIST_FIELDS_TO_RETRIEVE, - }) + self.network.ports.assert_called_once_with( + **{ + 'device_owner': self._ports[0].device_owner, + 'fields': LIST_FIELDS_TO_RETRIEVE, + } + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) def test_port_list_all_opt(self): arglist = [ - '--device-owner', self._ports[0].device_owner, - '--router', 'fake-router-name', - '--network', 'fake-network-name', - '--mac-address', self._ports[0].mac_address, + '--device-owner', + self._ports[0].device_owner, + '--router', + 'fake-router-name', + '--network', + 'fake-network-name', + '--mac-address', + self._ports[0].mac_address, ] verifylist = [ ('device_owner', self._ports[0].device_owner), ('router', 'fake-router-name'), ('network', 'fake-network-name'), - ('mac_address', self._ports[0].mac_address) + ('mac_address', self._ports[0].mac_address), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.ports.assert_called_once_with(**{ - 'device_owner': self._ports[0].device_owner, - 'device_id': 'fake-router-id', - 'network_id': 'fake-network-id', - 'mac_address': self._ports[0].mac_address, - 'fields': LIST_FIELDS_TO_RETRIEVE, - }) + self.network.ports.assert_called_once_with( + **{ + 'device_owner': self._ports[0].device_owner, + 'device_id': 'fake-router-id', + 'network_id': 'fake-network-id', + 'mac_address': self._ports[0].mac_address, + 'fields': LIST_FIELDS_TO_RETRIEVE, + } + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) def test_port_list_mac_address_opt(self): arglist = [ - '--mac-address', self._ports[0].mac_address, + '--mac-address', + self._ports[0].mac_address, ] - verifylist = [ - ('mac_address', self._ports[0].mac_address) - ] + verifylist = [('mac_address', self._ports[0].mac_address)] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.ports.assert_called_once_with(**{ - 'mac_address': self._ports[0].mac_address, - 'fields': LIST_FIELDS_TO_RETRIEVE, - }) + self.network.ports.assert_called_once_with( + **{ + 'mac_address': self._ports[0].mac_address, + 'fields': LIST_FIELDS_TO_RETRIEVE, + } + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) def test_port_list_fixed_ip_opt_ip_address(self): ip_address = self._ports[0].fixed_ips[0]['ip_address'] arglist = [ - '--fixed-ip', "ip-address=%s" % ip_address, - ] - verifylist = [ - ('fixed_ip', [{'ip-address': ip_address}]) + '--fixed-ip', + "ip-address=%s" % ip_address, ] + verifylist = [('fixed_ip', [{'ip-address': ip_address}])] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.ports.assert_called_once_with(**{ - 'fixed_ips': ['ip_address=%s' % ip_address], - 'fields': LIST_FIELDS_TO_RETRIEVE, - }) + self.network.ports.assert_called_once_with( + **{ + 'fixed_ips': ['ip_address=%s' % ip_address], + 'fields': LIST_FIELDS_TO_RETRIEVE, + } + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) def test_port_list_fixed_ip_opt_ip_address_substr(self): ip_address_ss = self._ports[0].fixed_ips[0]['ip_address'][:-1] arglist = [ - '--fixed-ip', "ip-substring=%s" % ip_address_ss, - ] - verifylist = [ - ('fixed_ip', [{'ip-substring': ip_address_ss}]) + '--fixed-ip', + "ip-substring=%s" % ip_address_ss, ] + verifylist = [('fixed_ip', [{'ip-substring': ip_address_ss}])] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.ports.assert_called_once_with(**{ - 'fixed_ips': ['ip_address_substr=%s' % ip_address_ss], - 'fields': LIST_FIELDS_TO_RETRIEVE, - }) + self.network.ports.assert_called_once_with( + **{ + 'fixed_ips': ['ip_address_substr=%s' % ip_address_ss], + 'fields': LIST_FIELDS_TO_RETRIEVE, + } + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) def test_port_list_fixed_ip_opt_subnet_id(self): subnet_id = self._ports[0].fixed_ips[0]['subnet_id'] arglist = [ - '--fixed-ip', "subnet=%s" % subnet_id, - ] - verifylist = [ - ('fixed_ip', [{'subnet': subnet_id}]) + '--fixed-ip', + "subnet=%s" % subnet_id, ] + verifylist = [('fixed_ip', [{'subnet': subnet_id}])] self.fake_subnet = network_fakes.FakeSubnet.create_one_subnet( - {'id': subnet_id}) + {'id': subnet_id} + ) self.network.find_subnet = mock.Mock(return_value=self.fake_subnet) parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.ports.assert_called_once_with(**{ - 'fixed_ips': ['subnet_id=%s' % subnet_id], - 'fields': LIST_FIELDS_TO_RETRIEVE, - }) + self.network.ports.assert_called_once_with( + **{ + 'fixed_ips': ['subnet_id=%s' % subnet_id], + 'fields': LIST_FIELDS_TO_RETRIEVE, + } + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) @@ -1129,25 +1301,29 @@ class TestListPort(TestPort): subnet_id = self._ports[0].fixed_ips[0]['subnet_id'] ip_address = self._ports[0].fixed_ips[0]['ip_address'] arglist = [ - '--fixed-ip', "subnet=%s,ip-address=%s" % (subnet_id, - ip_address) + '--fixed-ip', + "subnet=%s,ip-address=%s" % (subnet_id, ip_address), ] verifylist = [ - ('fixed_ip', [{'subnet': subnet_id, - 'ip-address': ip_address}]) + ('fixed_ip', [{'subnet': subnet_id, 'ip-address': ip_address}]) ] self.fake_subnet = network_fakes.FakeSubnet.create_one_subnet( - {'id': subnet_id}) + {'id': subnet_id} + ) self.network.find_subnet = mock.Mock(return_value=self.fake_subnet) parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.ports.assert_called_once_with(**{ - 'fixed_ips': ['subnet_id=%s' % subnet_id, - 'ip_address=%s' % ip_address], - 'fields': LIST_FIELDS_TO_RETRIEVE, - }) + self.network.ports.assert_called_once_with( + **{ + 'fixed_ips': [ + 'subnet_id=%s' % subnet_id, + 'ip_address=%s' % ip_address, + ], + 'fields': LIST_FIELDS_TO_RETRIEVE, + } + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) @@ -1155,27 +1331,34 @@ class TestListPort(TestPort): subnet_id = self._ports[0].fixed_ips[0]['subnet_id'] ip_address = self._ports[0].fixed_ips[0]['ip_address'] arglist = [ - '--fixed-ip', "subnet=%s" % subnet_id, - '--fixed-ip', "ip-address=%s" % ip_address, + '--fixed-ip', + "subnet=%s" % subnet_id, + '--fixed-ip', + "ip-address=%s" % ip_address, ] verifylist = [ - ('fixed_ip', [{'subnet': subnet_id}, - {'ip-address': ip_address}]) + ('fixed_ip', [{'subnet': subnet_id}, {'ip-address': ip_address}]) ] - self.fake_subnet = network_fakes.FakeSubnet.create_one_subnet({ - 'id': subnet_id, - 'fields': LIST_FIELDS_TO_RETRIEVE, - }) + self.fake_subnet = network_fakes.FakeSubnet.create_one_subnet( + { + 'id': subnet_id, + 'fields': LIST_FIELDS_TO_RETRIEVE, + } + ) self.network.find_subnet = mock.Mock(return_value=self.fake_subnet) parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.ports.assert_called_once_with(**{ - 'fixed_ips': ['subnet_id=%s' % subnet_id, - 'ip_address=%s' % ip_address], - 'fields': LIST_FIELDS_TO_RETRIEVE, - }) + self.network.ports.assert_called_once_with( + **{ + 'fixed_ips': [ + 'subnet_id=%s' % subnet_id, + 'ip_address=%s' % ip_address, + ], + 'fields': LIST_FIELDS_TO_RETRIEVE, + } + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) @@ -1193,13 +1376,15 @@ class TestListPort(TestPort): columns, data = self.cmd.take_action(parsed_args) self.network.ports.assert_called_once_with( - fields=LIST_FIELDS_TO_RETRIEVE + LIST_FIELDS_TO_RETRIEVE_LONG) + fields=LIST_FIELDS_TO_RETRIEVE + LIST_FIELDS_TO_RETRIEVE_LONG + ) self.assertEqual(self.columns_long, columns) self.assertCountEqual(self.data_long, list(data)) def test_port_list_host(self): arglist = [ - '--host', 'foobar', + '--host', + 'foobar', ] verifylist = [ ('host', 'foobar'), @@ -1220,7 +1405,8 @@ class TestListPort(TestPort): project = identity_fakes.FakeProject.create_one_project() self.projects_mock.get.return_value = project arglist = [ - '--project', project.id, + '--project', + project.id, ] verifylist = [ ('project', project.id), @@ -1241,8 +1427,10 @@ class TestListPort(TestPort): project = identity_fakes.FakeProject.create_one_project() self.projects_mock.get.return_value = project arglist = [ - '--project', project.id, - '--project-domain', project.domain_id, + '--project', + project.id, + '--project-domain', + project.domain_id, ] verifylist = [ ('project', project.id), @@ -1263,7 +1451,8 @@ class TestListPort(TestPort): def test_port_list_name(self): test_name = "fakename" arglist = [ - '--name', test_name, + '--name', + test_name, ] verifylist = [ ('name', test_name), @@ -1282,10 +1471,14 @@ class TestListPort(TestPort): def test_list_with_tag_options(self): arglist = [ - '--tags', 'red,blue', - '--any-tags', 'red,green', - '--not-tags', 'orange,yellow', - '--not-any-tags', 'black,white', + '--tags', + 'red,blue', + '--any-tags', + 'red,green', + '--not-tags', + 'orange,yellow', + '--not-any-tags', + 'black,white', ] verifylist = [ ('tags', ['red', 'blue']), @@ -1297,19 +1490,23 @@ class TestListPort(TestPort): columns, data = self.cmd.take_action(parsed_args) self.network.ports.assert_called_once_with( - **{'tags': 'red,blue', - 'any_tags': 'red,green', - 'not_tags': 'orange,yellow', - 'not_any_tags': 'black,white', - 'fields': LIST_FIELDS_TO_RETRIEVE} + **{ + 'tags': 'red,blue', + 'any_tags': 'red,green', + 'not_tags': 'orange,yellow', + 'not_any_tags': 'black,white', + 'fields': LIST_FIELDS_TO_RETRIEVE, + } ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) def test_port_list_security_group(self): arglist = [ - '--security-group', 'sg-id1', - '--security-group', 'sg-id2', + '--security-group', + 'sg-id1', + '--security-group', + 'sg-id2', ] verifylist = [ ('security_groups', ['sg-id1', 'sg-id2']), @@ -1328,7 +1525,6 @@ class TestListPort(TestPort): class TestSetPort(TestPort): - _port = network_fakes.create_one_port({'tags': ['green', 'red']}) def setUp(self): @@ -1358,10 +1554,12 @@ class TestSetPort(TestPort): def test_set_port_fixed_ip(self): _testport = network_fakes.create_one_port( - {'fixed_ips': [{'ip_address': '0.0.0.1'}]}) + {'fixed_ips': [{'ip_address': '0.0.0.1'}]} + ) self.network.find_port = mock.Mock(return_value=_testport) arglist = [ - '--fixed-ip', 'ip-address=10.0.0.12', + '--fixed-ip', + 'ip-address=10.0.0.12', _testport.name, ] verifylist = [ @@ -1382,16 +1580,18 @@ class TestSetPort(TestPort): def test_set_port_fixed_ip_clear(self): _testport = network_fakes.create_one_port( - {'fixed_ips': [{'ip_address': '0.0.0.1'}]}) + {'fixed_ips': [{'ip_address': '0.0.0.1'}]} + ) self.network.find_port = mock.Mock(return_value=_testport) arglist = [ - '--fixed-ip', 'ip-address=10.0.0.12', + '--fixed-ip', + 'ip-address=10.0.0.12', '--no-fixed-ip', _testport.name, ] verifylist = [ ('fixed_ip', [{'ip-address': '10.0.0.12'}]), - ('no_fixed_ip', True) + ('no_fixed_ip', True), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -1406,7 +1606,8 @@ class TestSetPort(TestPort): def test_set_port_dns_name(self): arglist = [ - '--dns-name', '8.8.8.8', + '--dns-name', + '8.8.8.8', self._port.name, ] verifylist = [ @@ -1425,32 +1626,35 @@ class TestSetPort(TestPort): def test_set_port_overwrite_binding_profile(self): _testport = network_fakes.create_one_port( - {'binding_profile': {'lok_i': 'visi_on'}}) + {'binding_profile': {'lok_i': 'visi_on'}} + ) self.network.find_port = mock.Mock(return_value=_testport) arglist = [ - '--binding-profile', 'lok_i=than_os', + '--binding-profile', + 'lok_i=than_os', '--no-binding-profile', _testport.name, ] verifylist = [ ('binding_profile', {'lok_i': 'than_os'}), - ('no_binding_profile', True) + ('no_binding_profile', True), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) attrs = { - 'binding:profile': - {'lok_i': 'than_os'}, + 'binding:profile': {'lok_i': 'than_os'}, } self.network.update_port.assert_called_once_with(_testport, **attrs) self.assertIsNone(result) def test_overwrite_mac_address(self): _testport = network_fakes.create_one_port( - {'mac_address': '11:22:33:44:55:66'}) + {'mac_address': '11:22:33:44:55:66'} + ) self.network.find_port = mock.Mock(return_value=_testport) arglist = [ - '--mac-address', '66:55:44:33:22:11', + '--mac-address', + '66:55:44:33:22:11', _testport.name, ] verifylist = [ @@ -1491,12 +1695,17 @@ class TestSetPort(TestPort): def test_set_port_that(self): arglist = [ - '--description', 'newDescription', + '--description', + 'newDescription', '--enable', - '--vnic-type', 'macvtap', - '--binding-profile', 'foo=bar', - '--host', 'binding-host-id-xxxx', - '--name', 'newName', + '--vnic-type', + 'macvtap', + '--binding-profile', + 'foo=bar', + '--host', + 'binding-host-id-xxxx', + '--name', + 'newName', self._port.name, ] verifylist = [ @@ -1525,30 +1734,38 @@ class TestSetPort(TestPort): def test_set_port_invalid_json_binding_profile(self): arglist = [ - '--binding-profile', '{"parent_name"}', + '--binding-profile', + '{"parent_name"}', 'test-port', ] - self.assertRaises(argparse.ArgumentTypeError, - self.check_parser, - self.cmd, - arglist, - None) + self.assertRaises( + argparse.ArgumentTypeError, + self.check_parser, + self.cmd, + arglist, + None, + ) def test_set_port_invalid_key_value_binding_profile(self): arglist = [ - '--binding-profile', 'key', + '--binding-profile', + 'key', 'test-port', ] - self.assertRaises(argparse.ArgumentTypeError, - self.check_parser, - self.cmd, - arglist, - None) + self.assertRaises( + argparse.ArgumentTypeError, + self.check_parser, + self.cmd, + arglist, + None, + ) def test_set_port_mixed_binding_profile(self): arglist = [ - '--binding-profile', 'foo=bar', - '--binding-profile', '{"foo2": "bar2"}', + '--binding-profile', + 'foo=bar', + '--binding-profile', + '{"foo2": "bar2"}', self._port.name, ] verifylist = [ @@ -1569,7 +1786,8 @@ class TestSetPort(TestPort): sg = network_fakes.FakeSecurityGroup.create_one_security_group() self.network.find_security_group = mock.Mock(return_value=sg) arglist = [ - '--security-group', sg.id, + '--security-group', + sg.id, self._port.name, ] verifylist = [ @@ -1591,11 +1809,14 @@ class TestSetPort(TestPort): sg_3 = network_fakes.FakeSecurityGroup.create_one_security_group() self.network.find_security_group = mock.Mock(side_effect=[sg_2, sg_3]) _testport = network_fakes.create_one_port( - {'security_group_ids': [sg_1.id]}) + {'security_group_ids': [sg_1.id]} + ) self.network.find_port = mock.Mock(return_value=_testport) arglist = [ - '--security-group', sg_2.id, - '--security-group', sg_3.id, + '--security-group', + sg_2.id, + '--security-group', + sg_3.id, _testport.name, ] verifylist = [ @@ -1633,17 +1854,19 @@ class TestSetPort(TestPort): sg1 = network_fakes.FakeSecurityGroup.create_one_security_group() sg2 = network_fakes.FakeSecurityGroup.create_one_security_group() _testport = network_fakes.create_one_port( - {'security_group_ids': [sg1.id]}) + {'security_group_ids': [sg1.id]} + ) self.network.find_port = mock.Mock(return_value=_testport) self.network.find_security_group = mock.Mock(return_value=sg2) arglist = [ - '--security-group', sg2.id, + '--security-group', + sg2.id, '--no-security-group', _testport.name, ] verifylist = [ ('security_group', [sg2.id]), - ('no_security_group', True) + ('no_security_group', True), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -1656,7 +1879,8 @@ class TestSetPort(TestPort): def test_set_port_allowed_address_pair(self): arglist = [ - '--allowed-address', 'ip-address=192.168.1.123', + '--allowed-address', + 'ip-address=192.168.1.123', self._port.name, ] verifylist = [ @@ -1675,10 +1899,12 @@ class TestSetPort(TestPort): def test_set_port_append_allowed_address_pair(self): _testport = network_fakes.create_one_port( - {'allowed_address_pairs': [{'ip_address': '192.168.1.123'}]}) + {'allowed_address_pairs': [{'ip_address': '192.168.1.123'}]} + ) self.network.find_port = mock.Mock(return_value=_testport) arglist = [ - '--allowed-address', 'ip-address=192.168.1.45', + '--allowed-address', + 'ip-address=192.168.1.45', _testport.name, ] verifylist = [ @@ -1690,18 +1916,22 @@ class TestSetPort(TestPort): result = self.cmd.take_action(parsed_args) attrs = { - 'allowed_address_pairs': [{'ip_address': '192.168.1.123'}, - {'ip_address': '192.168.1.45'}], + 'allowed_address_pairs': [ + {'ip_address': '192.168.1.123'}, + {'ip_address': '192.168.1.45'}, + ], } self.network.update_port.assert_called_once_with(_testport, **attrs) self.assertIsNone(result) def test_set_port_overwrite_allowed_address_pair(self): _testport = network_fakes.create_one_port( - {'allowed_address_pairs': [{'ip_address': '192.168.1.123'}]}) + {'allowed_address_pairs': [{'ip_address': '192.168.1.123'}]} + ) self.network.find_port = mock.Mock(return_value=_testport) arglist = [ - '--allowed-address', 'ip-address=192.168.1.45', + '--allowed-address', + 'ip-address=192.168.1.45', '--no-allowed-address', _testport.name, ] @@ -1741,12 +1971,12 @@ class TestSetPort(TestPort): def test_set_port_extra_dhcp_option(self): arglist = [ - '--extra-dhcp-option', 'name=foo,value=bar', + '--extra-dhcp-option', + 'name=foo,value=bar', self._port.name, ] verifylist = [ - ('extra_dhcp_options', [{'name': 'foo', - 'value': 'bar'}]), + ('extra_dhcp_options', [{'name': 'foo', 'value': 'bar'}]), ('port', self._port.name), ] @@ -1754,8 +1984,7 @@ class TestSetPort(TestPort): result = self.cmd.take_action(parsed_args) attrs = { - 'extra_dhcp_opts': [{'opt_name': 'foo', - 'opt_value': 'bar'}], + 'extra_dhcp_opts': [{'opt_name': 'foo', 'opt_value': 'bar'}], } self.network.update_port.assert_called_once_with(self._port, **attrs) self.assertIsNone(result) @@ -1767,16 +1996,22 @@ class TestSetPort(TestPort): ] verifylist = [ ('enable_port_security', True), - ('port', self._port.id,) + ( + 'port', + self._port.id, + ), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.cmd.take_action(parsed_args) - self.network.update_port.assert_called_once_with(self._port, **{ - 'port_security_enabled': True, - }) + self.network.update_port.assert_called_once_with( + self._port, + **{ + 'port_security_enabled': True, + } + ) def test_set_port_security_disabled(self): arglist = [ @@ -1785,25 +2020,31 @@ class TestSetPort(TestPort): ] verifylist = [ ('disable_port_security', True), - ('port', self._port.id,) + ( + 'port', + self._port.id, + ), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.cmd.take_action(parsed_args) - self.network.update_port.assert_called_once_with(self._port, **{ - 'port_security_enabled': False, - }) + self.network.update_port.assert_called_once_with( + self._port, + **{ + 'port_security_enabled': False, + } + ) def test_set_port_with_qos(self): qos_policy = network_fakes.FakeNetworkQosPolicy.create_one_qos_policy() self.network.find_qos_policy = mock.Mock(return_value=qos_policy) - _testport = network_fakes.create_one_port( - {'qos_policy_id': None}) + _testport = network_fakes.create_one_port({'qos_policy_id': None}) self.network.find_port = mock.Mock(return_value=_testport) arglist = [ - '--qos-policy', qos_policy.id, + '--qos-policy', + qos_policy.id, _testport.name, ] verifylist = [ @@ -1821,11 +2062,11 @@ class TestSetPort(TestPort): self.assertIsNone(result) def test_set_port_data_plane_status(self): - _testport = network_fakes.create_one_port( - {'data_plane_status': None}) + _testport = network_fakes.create_one_port({'data_plane_status': None}) self.network.find_port = mock.Mock(return_value=_testport) arglist = [ - '--data-plane-status', 'ACTIVE', + '--data-plane-status', + 'ACTIVE', _testport.name, ] verifylist = [ @@ -1845,14 +2086,17 @@ class TestSetPort(TestPort): def test_set_port_invalid_data_plane_status_value(self): arglist = [ - '--data-plane-status', 'Spider-Man', + '--data-plane-status', + 'Spider-Man', 'test-port', ] - self.assertRaises(tests_utils.ParserException, - self.check_parser, - self.cmd, - arglist, - None) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + None, + ) def _test_set_tags(self, with_tags=True): if with_tags: @@ -1864,16 +2108,15 @@ class TestSetPort(TestPort): verifylist = [('no_tag', True)] expected_args = [] arglist.append(self._port.name) - verifylist.append( - ('port', self._port.name)) + verifylist.append(('port', self._port.name)) parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.assertFalse(self.network.update_port.called) self.network.set_tags.assert_called_once_with( - self._port, - tests_utils.CompareBySet(expected_args)) + self._port, tests_utils.CompareBySet(expected_args) + ) self.assertIsNone(result) def test_set_with_tags(self): @@ -1889,7 +2132,10 @@ class TestSetPort(TestPort): ] verifylist = [ ('numa_policy_%s' % policy, True), - ('port', self._port.id,) + ( + 'port', + self._port.id, + ), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -1897,7 +2143,8 @@ class TestSetPort(TestPort): self.cmd.take_action(parsed_args) self.network.update_port.assert_called_once_with( - self._port, **{'numa_affinity_policy': policy}) + self._port, **{'numa_affinity_policy': policy} + ) def test_create_with_numa_affinity_policy_required(self): self._test_create_with_numa_affinity_policy('required') @@ -1910,7 +2157,6 @@ class TestSetPort(TestPort): class TestShowPort(TestPort): - # The port to show. _port = network_fakes.create_one_port() columns, data = TestPort._get_common_cols_data(_port) @@ -1927,8 +2173,13 @@ class TestShowPort(TestPort): arglist = [] verifylist = [] - self.assertRaises(tests_utils.ParserException, - self.check_parser, self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_show_all_options(self): arglist = [ @@ -1942,25 +2193,38 @@ class TestShowPort(TestPort): columns, data = self.cmd.take_action(parsed_args) self.network.find_port.assert_called_once_with( - self._port.name, ignore_missing=False) + self._port.name, ignore_missing=False + ) self.assertEqual(set(self.columns), set(columns)) self.assertCountEqual(self.data, data) class TestUnsetPort(TestPort): - def setUp(self): super(TestUnsetPort, self).setUp() self._testport = network_fakes.create_one_port( - {'fixed_ips': [{'subnet_id': '042eb10a-3a18-4658-ab-cf47c8d03152', - 'ip_address': '0.0.0.1'}, - {'subnet_id': '042eb10a-3a18-4658-ab-cf47c8d03152', - 'ip_address': '1.0.0.0'}], - 'binding:profile': {'batman': 'Joker', 'Superman': 'LexLuthor'}, - 'tags': ['green', 'red'], }) + { + 'fixed_ips': [ + { + 'subnet_id': '042eb10a-3a18-4658-ab-cf47c8d03152', + 'ip_address': '0.0.0.1', + }, + { + 'subnet_id': '042eb10a-3a18-4658-ab-cf47c8d03152', + 'ip_address': '1.0.0.0', + }, + ], + 'binding:profile': { + 'batman': 'Joker', + 'Superman': 'LexLuthor', + }, + 'tags': ['green', 'red'], + } + ) self.fake_subnet = network_fakes.FakeSubnet.create_one_subnet( - {'id': '042eb10a-3a18-4658-ab-cf47c8d03152'}) + {'id': '042eb10a-3a18-4658-ab-cf47c8d03152'} + ) self.network.find_subnet = mock.Mock(return_value=self.fake_subnet) self.network.find_port = mock.Mock(return_value=self._testport) self.network.update_port = mock.Mock(return_value=None) @@ -1972,39 +2236,52 @@ class TestUnsetPort(TestPort): arglist = [ '--fixed-ip', 'subnet=042eb10a-3a18-4658-ab-cf47c8d03152,ip-address=1.0.0.0', - '--binding-profile', 'Superman', + '--binding-profile', + 'Superman', '--qos-policy', '--host', self._testport.name, ] verifylist = [ - ('fixed_ip', [{ - 'subnet': '042eb10a-3a18-4658-ab-cf47c8d03152', - 'ip-address': '1.0.0.0'}]), + ( + 'fixed_ip', + [ + { + 'subnet': '042eb10a-3a18-4658-ab-cf47c8d03152', + 'ip-address': '1.0.0.0', + } + ], + ), ('binding_profile', ['Superman']), ('qos_policy', True), - ('host', True) + ('host', True), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) attrs = { - 'fixed_ips': [{ - 'subnet_id': '042eb10a-3a18-4658-ab-cf47c8d03152', - 'ip_address': '0.0.0.1'}], + 'fixed_ips': [ + { + 'subnet_id': '042eb10a-3a18-4658-ab-cf47c8d03152', + 'ip_address': '0.0.0.1', + } + ], 'binding:profile': {'batman': 'Joker'}, 'qos_policy_id': None, - 'binding:host_id': None + 'binding:host_id': None, } self.network.update_port.assert_called_once_with( - self._testport, **attrs) + self._testport, **attrs + ) self.assertIsNone(result) def test_unset_port_fixed_ip_not_existent(self): arglist = [ - '--fixed-ip', 'ip-address=1.0.0.1', - '--binding-profile', 'Superman', + '--fixed-ip', + 'ip-address=1.0.0.1', + '--binding-profile', + 'Superman', self._testport.name, ] verifylist = [ @@ -2013,14 +2290,16 @@ class TestUnsetPort(TestPort): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.assertRaises(exceptions.CommandError, - self.cmd.take_action, - parsed_args) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_unset_port_binding_profile_not_existent(self): arglist = [ - '--fixed-ip', 'ip-address=1.0.0.0', - '--binding-profile', 'Neo', + '--fixed-ip', + 'ip-address=1.0.0.0', + '--binding-profile', + 'Neo', self._testport.name, ] verifylist = [ @@ -2029,19 +2308,21 @@ class TestUnsetPort(TestPort): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.assertRaises(exceptions.CommandError, - self.cmd.take_action, - parsed_args) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_unset_security_group(self): _fake_sg1 = network_fakes.FakeSecurityGroup.create_one_security_group() _fake_sg2 = network_fakes.FakeSecurityGroup.create_one_security_group() _fake_port = network_fakes.create_one_port( - {'security_group_ids': [_fake_sg1.id, _fake_sg2.id]}) + {'security_group_ids': [_fake_sg1.id, _fake_sg2.id]} + ) self.network.find_port = mock.Mock(return_value=_fake_port) self.network.find_security_group = mock.Mock(return_value=_fake_sg2) arglist = [ - '--security-group', _fake_sg2.id, + '--security-group', + _fake_sg2.id, _fake_port.name, ] verifylist = [ @@ -2051,21 +2332,20 @@ class TestUnsetPort(TestPort): parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) - attrs = { - 'security_group_ids': [_fake_sg1.id] - } - self.network.update_port.assert_called_once_with( - _fake_port, **attrs) + attrs = {'security_group_ids': [_fake_sg1.id]} + self.network.update_port.assert_called_once_with(_fake_port, **attrs) self.assertIsNone(result) def test_unset_port_security_group_not_existent(self): _fake_sg1 = network_fakes.FakeSecurityGroup.create_one_security_group() _fake_sg2 = network_fakes.FakeSecurityGroup.create_one_security_group() _fake_port = network_fakes.create_one_port( - {'security_group_ids': [_fake_sg1.id]}) + {'security_group_ids': [_fake_sg1.id]} + ) self.network.find_security_group = mock.Mock(return_value=_fake_sg2) arglist = [ - '--security-group', _fake_sg2.id, + '--security-group', + _fake_sg2.id, _fake_port.name, ] verifylist = [ @@ -2073,16 +2353,18 @@ class TestUnsetPort(TestPort): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.assertRaises(exceptions.CommandError, - self.cmd.take_action, - parsed_args) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_unset_port_allowed_address_pair(self): _fake_port = network_fakes.create_one_port( - {'allowed_address_pairs': [{'ip_address': '192.168.1.123'}]}) + {'allowed_address_pairs': [{'ip_address': '192.168.1.123'}]} + ) self.network.find_port = mock.Mock(return_value=_fake_port) arglist = [ - '--allowed-address', 'ip-address=192.168.1.123', + '--allowed-address', + 'ip-address=192.168.1.123', _fake_port.name, ] verifylist = [ @@ -2101,10 +2383,12 @@ class TestUnsetPort(TestPort): def test_unset_port_allowed_address_pair_not_existent(self): _fake_port = network_fakes.create_one_port( - {'allowed_address_pairs': [{'ip_address': '192.168.1.123'}]}) + {'allowed_address_pairs': [{'ip_address': '192.168.1.123'}]} + ) self.network.find_port = mock.Mock(return_value=_fake_port) arglist = [ - '--allowed-address', 'ip-address=192.168.1.45', + '--allowed-address', + 'ip-address=192.168.1.45', _fake_port.name, ] verifylist = [ @@ -2112,13 +2396,14 @@ class TestUnsetPort(TestPort): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.assertRaises(exceptions.CommandError, - self.cmd.take_action, - parsed_args) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_unset_port_data_plane_status(self): _fake_port = network_fakes.create_one_port( - {'data_plane_status': 'ACTIVE'}) + {'data_plane_status': 'ACTIVE'} + ) self.network.find_port = mock.Mock(return_value=_fake_port) arglist = [ '--data-plane-status', @@ -2149,16 +2434,15 @@ class TestUnsetPort(TestPort): verifylist = [('all_tag', True)] expected_args = [] arglist.append(self._testport.name) - verifylist.append( - ('port', self._testport.name)) + verifylist.append(('port', self._testport.name)) parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.assertFalse(self.network.update_port.called) self.network.set_tags.assert_called_once_with( - self._testport, - tests_utils.CompareBySet(expected_args)) + self._testport, tests_utils.CompareBySet(expected_args) + ) self.assertIsNone(result) def test_unset_with_tags(self): @@ -2169,7 +2453,8 @@ class TestUnsetPort(TestPort): def test_unset_numa_affinity_policy(self): _fake_port = network_fakes.create_one_port( - {'numa_affinity_policy': 'required'}) + {'numa_affinity_policy': 'required'} + ) self.network.find_port = mock.Mock(return_value=_fake_port) arglist = [ '--numa-policy', diff --git a/openstackclient/tests/unit/network/v2/test_router.py b/openstackclient/tests/unit/network/v2/test_router.py index fb9673cd71..da7267af24 100644 --- a/openstackclient/tests/unit/network/v2/test_router.py +++ b/openstackclient/tests/unit/network/v2/test_router.py @@ -24,7 +24,6 @@ from openstackclient.tests.unit import utils as tests_utils class TestRouter(network_fakes.TestNetworkV2): - def setUp(self): super(TestRouter, self).setUp() @@ -34,11 +33,12 @@ class TestRouter(network_fakes.TestNetworkV2): class TestAddPortToRouter(TestRouter): - '''Add port to Router ''' + '''Add port to Router''' _port = network_fakes.create_one_port() _router = network_fakes.FakeRouter.create_one_router( - attrs={'port': _port.id}) + attrs={'port': _port.id} + ) def setUp(self): super(TestAddPortToRouter, self).setUp() @@ -51,8 +51,13 @@ class TestAddPortToRouter(TestRouter): arglist = [] verifylist = [] - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_add_port_required_options(self): arglist = [ @@ -68,16 +73,21 @@ class TestAddPortToRouter(TestRouter): result = self.cmd.take_action(parsed_args) self.network.add_interface_to_router.assert_called_with( - self._router, **{'port_id': self._router.port, }) + self._router, + **{ + 'port_id': self._router.port, + } + ) self.assertIsNone(result) class TestAddSubnetToRouter(TestRouter): - '''Add subnet to Router ''' + '''Add subnet to Router''' _subnet = network_fakes.FakeSubnet.create_one_subnet() _router = network_fakes.FakeRouter.create_one_router( - attrs={'subnet': _subnet.id}) + attrs={'subnet': _subnet.id} + ) def setUp(self): super(TestAddSubnetToRouter, self).setUp() @@ -90,8 +100,13 @@ class TestAddSubnetToRouter(TestRouter): arglist = [] verifylist = [] - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_add_subnet_required_options(self): arglist = [ @@ -106,13 +121,13 @@ class TestAddSubnetToRouter(TestRouter): result = self.cmd.take_action(parsed_args) self.network.add_interface_to_router.assert_called_with( - self._router, **{'subnet_id': self._router.subnet}) + self._router, **{'subnet_id': self._router.subnet} + ) self.assertIsNone(result) class TestCreateRouter(TestRouter): - # The new router created. new_router = network_fakes.FakeRouter.create_one_router() @@ -160,8 +175,13 @@ class TestCreateRouter(TestRouter): arglist = [] verifylist = [] - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) self.assertFalse(self.network.set_tags.called) def test_create_default_options(self): @@ -176,12 +196,14 @@ class TestCreateRouter(TestRouter): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) - self.network.create_router.assert_called_once_with(**{ - 'admin_state_up': True, - 'name': self.new_router.name, - }) + self.network.create_router.assert_called_once_with( + **{ + 'admin_state_up': True, + 'name': self.new_router.name, + } + ) self.assertFalse(self.network.set_tags.called) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, data) @@ -193,9 +215,11 @@ class TestCreateRouter(TestRouter): self.network.find_subnet = mock.Mock(return_value=_subnet) arglist = [ self.new_router.name, - '--external-gateway', _network.name, + '--external-gateway', + _network.name, '--enable-snat', - '--fixed-ip', 'ip-address=2001:db8::1' + '--fixed-ip', + 'ip-address=2001:db8::1', ] verifylist = [ ('name', self.new_router.name), @@ -208,17 +232,19 @@ class TestCreateRouter(TestRouter): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) - self.network.create_router.assert_called_once_with(**{ - 'admin_state_up': True, - 'name': self.new_router.name, - 'external_gateway_info': { - 'network_id': _network.id, - 'enable_snat': True, - 'external_fixed_ips': [{'ip_address': '2001:db8::1'}], - }, - }) + self.network.create_router.assert_called_once_with( + **{ + 'admin_state_up': True, + 'name': self.new_router.name, + 'external_gateway_info': { + 'network_id': _network.id, + 'enable_snat': True, + 'external_fixed_ips': [{'ip_address': '2001:db8::1'}], + }, + } + ) self.assertFalse(self.network.set_tags.called) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, data) @@ -237,13 +263,15 @@ class TestCreateRouter(TestRouter): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) - self.network.create_router.assert_called_once_with(**{ - 'admin_state_up': True, - 'name': self.new_router.name, - 'ha': ha, - }) + self.network.create_router.assert_called_once_with( + **{ + 'admin_state_up': True, + 'name': self.new_router.name, + 'ha': ha, + } + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, data) @@ -266,13 +294,15 @@ class TestCreateRouter(TestRouter): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) - self.network.create_router.assert_called_once_with(**{ - 'admin_state_up': True, - 'name': self.new_router.name, - 'distributed': distributed, - }) + self.network.create_router.assert_called_once_with( + **{ + 'admin_state_up': True, + 'name': self.new_router.name, + 'distributed': distributed, + } + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, data) @@ -285,24 +315,28 @@ class TestCreateRouter(TestRouter): def test_create_with_AZ_hints(self): arglist = [ self.new_router.name, - '--availability-zone-hint', 'fake-az', - '--availability-zone-hint', 'fake-az2', + '--availability-zone-hint', + 'fake-az', + '--availability-zone-hint', + 'fake-az2', ] verifylist = [ ('name', self.new_router.name), ('availability_zone_hints', ['fake-az', 'fake-az2']), ('enable', True), ('distributed', False), - ('ha', False) + ('ha', False), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) - self.network.create_router.assert_called_once_with(**{ - 'admin_state_up': True, - 'name': self.new_router.name, - 'availability_zone_hints': ['fake-az', 'fake-az2'], - }) + columns, data = self.cmd.take_action(parsed_args) + self.network.create_router.assert_called_once_with( + **{ + 'admin_state_up': True, + 'name': self.new_router.name, + 'availability_zone_hints': ['fake-az', 'fake-az2'], + } + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, data) @@ -325,16 +359,15 @@ class TestCreateRouter(TestRouter): verifylist.append(('no_tag', True)) parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) self.network.create_router.assert_called_once_with( - name=self.new_router.name, - admin_state_up=True + name=self.new_router.name, admin_state_up=True ) if add_tags: self.network.set_tags.assert_called_once_with( - self.new_router, - tests_utils.CompareBySet(['red', 'blue'])) + self.new_router, tests_utils.CompareBySet(['red', 'blue']) + ) else: self.assertFalse(self.network.set_tags.called) self.assertEqual(self.columns, columns) @@ -348,7 +381,6 @@ class TestCreateRouter(TestRouter): class TestDeleteRouter(TestRouter): - # The routers to delete. _routers = network_fakes.FakeRouter.create_routers(count=2) @@ -357,8 +389,9 @@ class TestDeleteRouter(TestRouter): self.network.delete_router = mock.Mock(return_value=None) - self.network.find_router = ( - network_fakes.FakeRouter.get_routers(self._routers)) + self.network.find_router = network_fakes.FakeRouter.get_routers( + self._routers + ) # Get the command object to test self.cmd = router.DeleteRouter(self.app, self.namespace) @@ -401,15 +434,12 @@ class TestDeleteRouter(TestRouter): 'unexist_router', ] verifylist = [ - ('router', - [self._routers[0].name, 'unexist_router']), + ('router', [self._routers[0].name, 'unexist_router']), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) find_mock_result = [self._routers[0], exceptions.CommandError] - self.network.find_router = ( - mock.Mock(side_effect=find_mock_result) - ) + self.network.find_router = mock.Mock(side_effect=find_mock_result) try: self.cmd.take_action(parsed_args) @@ -418,16 +448,15 @@ class TestDeleteRouter(TestRouter): self.assertEqual('1 of 2 routers failed to delete.', str(e)) self.network.find_router.assert_any_call( - self._routers[0].name, ignore_missing=False) - self.network.find_router.assert_any_call( - 'unexist_router', ignore_missing=False) - self.network.delete_router.assert_called_once_with( - self._routers[0] + self._routers[0].name, ignore_missing=False ) + self.network.find_router.assert_any_call( + 'unexist_router', ignore_missing=False + ) + self.network.delete_router.assert_called_once_with(self._routers[0]) class TestListRouter(TestRouter): - # The routers going to be listed up. routers = network_fakes.FakeRouter.create_routers(count=3) _extensions = network_fakes.FakeExtension.create_one_extension() @@ -455,23 +484,27 @@ class TestListRouter(TestRouter): data = [] for r in routers: - data.append(( - r.id, - r.name, - r.status, - router.AdminStateColumn(r.admin_state_up), - r.project_id, - r.distributed, - r.ha, - )) + data.append( + ( + r.id, + r.name, + r.status, + router.AdminStateColumn(r.admin_state_up), + r.project_id, + r.distributed, + r.ha, + ) + ) router_agent_data = [] for r in routers: - router_agent_data.append(( - r.id, - r.name, - r.external_gateway_info, - )) + router_agent_data.append( + ( + r.id, + r.name, + r.external_gateway_info, + ) + ) agents_columns = ( 'ID', @@ -483,7 +516,8 @@ class TestListRouter(TestRouter): for i in range(0, len(routers)): r = routers[i] data_long.append( - data[i] + ( + data[i] + + ( router.RoutesColumn(r.routes), router.RouterInfoColumn(r.external_gateway_info), format_columns.ListColumn(r.availability_zones), @@ -494,7 +528,8 @@ class TestListRouter(TestRouter): for i in range(0, len(routers)): r = routers[i] data_long_no_az.append( - data[i] + ( + data[i] + + ( router.RoutesColumn(r.routes), router.RouterInfoColumn(r.external_gateway_info), format_columns.ListColumn(r.tags), @@ -508,7 +543,8 @@ class TestListRouter(TestRouter): self.cmd = router.ListRouter(self.app, self.namespace) self.network.agent_hosted_routers = mock.Mock( - return_value=self.routers) + return_value=self.routers + ) self.network.routers = mock.Mock(return_value=self.routers) self.network.find_extension = mock.Mock(return_value=self._extensions) self.network.find_router = mock.Mock(return_value=self.routers[0]) @@ -533,10 +569,9 @@ class TestListRouter(TestRouter): self.assertCountEqual(self.data, list(data)) def test_router_list_no_ha_no_distributed(self): - _routers = network_fakes.FakeRouter.create_routers({ - 'ha': None, - 'distributed': None}, - count=3) + _routers = network_fakes.FakeRouter.create_routers( + {'ha': None, 'distributed': None}, count=3 + ) arglist = [] verifylist = [ @@ -544,8 +579,7 @@ class TestListRouter(TestRouter): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - with mock.patch.object( - self.network, "routers", return_value=_routers): + with mock.patch.object(self.network, "routers", return_value=_routers): columns, data = self.cmd.take_action(parsed_args) self.assertNotIn("is_distributed", columns) @@ -593,7 +627,8 @@ class TestListRouter(TestRouter): def test_list_name(self): test_name = "fakename" arglist = [ - '--name', test_name, + '--name', + test_name, ] verifylist = [ ('long', False), @@ -602,9 +637,7 @@ class TestListRouter(TestRouter): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.routers.assert_called_once_with( - **{'name': test_name} - ) + self.network.routers.assert_called_once_with(**{'name': test_name}) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) @@ -629,10 +662,7 @@ class TestListRouter(TestRouter): arglist = [ '--disable', ] - verifylist = [ - ('long', False), - ('disable', True) - ] + verifylist = [('long', False), ('disable', True)] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) @@ -647,7 +677,8 @@ class TestListRouter(TestRouter): project = identity_fakes_v3.FakeProject.create_one_project() self.projects_mock.get.return_value = project arglist = [ - '--project', project.id, + '--project', + project.id, ] verifylist = [ ('project', project.id), @@ -665,8 +696,10 @@ class TestListRouter(TestRouter): project = identity_fakes_v3.FakeProject.create_one_project() self.projects_mock.get.return_value = project arglist = [ - '--project', project.id, - '--project-domain', project.domain_id, + '--project', + project.id, + '--project-domain', + project.domain_id, ] verifylist = [ ('project', project.id), @@ -688,33 +721,44 @@ class TestListRouter(TestRouter): verifylist = [] # Missing required router ID should bail here - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_router_list_agents(self): arglist = [ - '--agent', self._testagent.id, + '--agent', + self._testagent.id, ] verifylist = [ ('agent', self._testagent.id), ] - attrs = {self._testagent.id, } + attrs = { + self._testagent.id, + } parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.agent_hosted_routers( - *attrs) + self.network.agent_hosted_routers(*attrs) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) def test_list_with_tag_options(self): arglist = [ - '--tags', 'red,blue', - '--any-tags', 'red,green', - '--not-tags', 'orange,yellow', - '--not-any-tags', 'black,white', + '--tags', + 'red,blue', + '--any-tags', + 'red,green', + '--not-tags', + 'orange,yellow', + '--not-any-tags', + 'black,white', ] verifylist = [ ('tags', ['red', 'blue']), @@ -726,21 +770,24 @@ class TestListRouter(TestRouter): columns, data = self.cmd.take_action(parsed_args) self.network.routers.assert_called_once_with( - **{'tags': 'red,blue', - 'any_tags': 'red,green', - 'not_tags': 'orange,yellow', - 'not_any_tags': 'black,white'} + **{ + 'tags': 'red,blue', + 'any_tags': 'red,green', + 'not_tags': 'orange,yellow', + 'not_any_tags': 'black,white', + } ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) class TestRemovePortFromRouter(TestRouter): - '''Remove port from a Router ''' + '''Remove port from a Router''' _port = network_fakes.create_one_port() _router = network_fakes.FakeRouter.create_one_router( - attrs={'port': _port.id}) + attrs={'port': _port.id} + ) def setUp(self): super(TestRemovePortFromRouter, self).setUp() @@ -753,8 +800,13 @@ class TestRemovePortFromRouter(TestRouter): arglist = [] verifylist = [] - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_remove_port_required_options(self): arglist = [ @@ -770,16 +822,18 @@ class TestRemovePortFromRouter(TestRouter): result = self.cmd.take_action(parsed_args) self.network.remove_interface_from_router.assert_called_with( - self._router, **{'port_id': self._router.port}) + self._router, **{'port_id': self._router.port} + ) self.assertIsNone(result) class TestRemoveSubnetFromRouter(TestRouter): - '''Remove subnet from Router ''' + '''Remove subnet from Router''' _subnet = network_fakes.FakeSubnet.create_one_subnet() _router = network_fakes.FakeRouter.create_one_router( - attrs={'subnet': _subnet.id}) + attrs={'subnet': _subnet.id} + ) def setUp(self): super(TestRemoveSubnetFromRouter, self).setUp() @@ -792,8 +846,13 @@ class TestRemoveSubnetFromRouter(TestRouter): arglist = [] verifylist = [] - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_remove_subnet_required_options(self): arglist = [ @@ -808,18 +867,19 @@ class TestRemoveSubnetFromRouter(TestRouter): result = self.cmd.take_action(parsed_args) self.network.remove_interface_from_router.assert_called_with( - self._router, **{'subnet_id': self._router.subnet}) + self._router, **{'subnet_id': self._router.subnet} + ) self.assertIsNone(result) class TestAddExtraRoutesToRouter(TestRouter): - _router = network_fakes.FakeRouter.create_one_router() def setUp(self): super(TestAddExtraRoutesToRouter, self).setUp() self.network.add_extra_routes_to_router = mock.Mock( - return_value=self._router) + return_value=self._router + ) self.cmd = router.AddExtraRoutesToRouter(self.app, self.namespace) self.network.find_router = mock.Mock(return_value=self._router) @@ -835,13 +895,15 @@ class TestAddExtraRoutesToRouter(TestRouter): result = self.cmd.take_action(parsed_args) self.network.add_extra_routes_to_router.assert_called_with( - self._router, body={'router': {'routes': []}}) + self._router, body={'router': {'routes': []}} + ) self.assertEqual(2, len(result)) def test_add_one_extra_route(self): arglist = [ self._router.id, - '--route', 'destination=dst1,gateway=gw1', + '--route', + 'destination=dst1,gateway=gw1', ] verifylist = [ ('router', self._router.id), @@ -852,44 +914,61 @@ class TestAddExtraRoutesToRouter(TestRouter): result = self.cmd.take_action(parsed_args) self.network.add_extra_routes_to_router.assert_called_with( - self._router, body={'router': {'routes': [ - {'destination': 'dst1', 'nexthop': 'gw1'}, - ]}}) + self._router, + body={ + 'router': { + 'routes': [ + {'destination': 'dst1', 'nexthop': 'gw1'}, + ] + } + }, + ) self.assertEqual(2, len(result)) def test_add_multiple_extra_routes(self): arglist = [ self._router.id, - '--route', 'destination=dst1,gateway=gw1', - '--route', 'destination=dst2,gateway=gw2', + '--route', + 'destination=dst1,gateway=gw1', + '--route', + 'destination=dst2,gateway=gw2', ] verifylist = [ ('router', self._router.id), - ('routes', [ - {'destination': 'dst1', 'gateway': 'gw1'}, - {'destination': 'dst2', 'gateway': 'gw2'}, - ]), + ( + 'routes', + [ + {'destination': 'dst1', 'gateway': 'gw1'}, + {'destination': 'dst2', 'gateway': 'gw2'}, + ], + ), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.network.add_extra_routes_to_router.assert_called_with( - self._router, body={'router': {'routes': [ - {'destination': 'dst1', 'nexthop': 'gw1'}, - {'destination': 'dst2', 'nexthop': 'gw2'}, - ]}}) + self._router, + body={ + 'router': { + 'routes': [ + {'destination': 'dst1', 'nexthop': 'gw1'}, + {'destination': 'dst2', 'nexthop': 'gw2'}, + ] + } + }, + ) self.assertEqual(2, len(result)) class TestRemoveExtraRoutesFromRouter(TestRouter): - _router = network_fakes.FakeRouter.create_one_router() def setUp(self): super(TestRemoveExtraRoutesFromRouter, self).setUp() self.network.remove_extra_routes_from_router = mock.Mock( - return_value=self._router) + return_value=self._router + ) self.cmd = router.RemoveExtraRoutesFromRouter(self.app, self.namespace) self.network.find_router = mock.Mock(return_value=self._router) @@ -905,13 +984,15 @@ class TestRemoveExtraRoutesFromRouter(TestRouter): result = self.cmd.take_action(parsed_args) self.network.remove_extra_routes_from_router.assert_called_with( - self._router, body={'router': {'routes': []}}) + self._router, body={'router': {'routes': []}} + ) self.assertEqual(2, len(result)) def test_remove_one_extra_route(self): arglist = [ self._router.id, - '--route', 'destination=dst1,gateway=gw1', + '--route', + 'destination=dst1,gateway=gw1', ] verifylist = [ ('router', self._router.id), @@ -922,45 +1003,60 @@ class TestRemoveExtraRoutesFromRouter(TestRouter): result = self.cmd.take_action(parsed_args) self.network.remove_extra_routes_from_router.assert_called_with( - self._router, body={'router': {'routes': [ - {'destination': 'dst1', 'nexthop': 'gw1'}, - ]}}) + self._router, + body={ + 'router': { + 'routes': [ + {'destination': 'dst1', 'nexthop': 'gw1'}, + ] + } + }, + ) self.assertEqual(2, len(result)) def test_remove_multiple_extra_routes(self): arglist = [ self._router.id, - '--route', 'destination=dst1,gateway=gw1', - '--route', 'destination=dst2,gateway=gw2', + '--route', + 'destination=dst1,gateway=gw1', + '--route', + 'destination=dst2,gateway=gw2', ] verifylist = [ ('router', self._router.id), - ('routes', [ - {'destination': 'dst1', 'gateway': 'gw1'}, - {'destination': 'dst2', 'gateway': 'gw2'}, - ]), + ( + 'routes', + [ + {'destination': 'dst1', 'gateway': 'gw1'}, + {'destination': 'dst2', 'gateway': 'gw2'}, + ], + ), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.network.remove_extra_routes_from_router.assert_called_with( - self._router, body={'router': {'routes': [ - {'destination': 'dst1', 'nexthop': 'gw1'}, - {'destination': 'dst2', 'nexthop': 'gw2'}, - ]}}) + self._router, + body={ + 'router': { + 'routes': [ + {'destination': 'dst1', 'nexthop': 'gw1'}, + {'destination': 'dst2', 'nexthop': 'gw2'}, + ] + } + }, + ) self.assertEqual(2, len(result)) class TestSetRouter(TestRouter): - # The router to set. _default_route = {'destination': '10.20.20.0/24', 'nexthop': '10.20.30.1'} _network = network_fakes.create_one_network() _subnet = network_fakes.FakeSubnet.create_one_subnet() _router = network_fakes.FakeRouter.create_one_router( - attrs={'routes': [_default_route], - 'tags': ['green', 'red']} + attrs={'routes': [_default_route], 'tags': ['green', 'red']} ) def setUp(self): @@ -979,9 +1075,11 @@ class TestSetRouter(TestRouter): self._router.name, '--enable', '--distributed', - '--name', 'noob', + '--name', + 'noob', '--no-ha', - '--description', 'router', + '--description', + 'router', ] verifylist = [ ('router', self._router.name), @@ -1003,7 +1101,8 @@ class TestSetRouter(TestRouter): 'description': 'router', } self.network.update_router.assert_called_once_with( - self._router, **attrs) + self._router, **attrs + ) self.assertIsNone(result) def test_set_that(self): @@ -1029,7 +1128,8 @@ class TestSetRouter(TestRouter): 'ha': True, } self.network.update_router.assert_called_once_with( - self._router, **attrs) + self._router, **attrs + ) self.assertIsNone(result) def test_set_distributed_centralized(self): @@ -1044,29 +1144,35 @@ class TestSetRouter(TestRouter): ('distributed', False), ] - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_set_route(self): arglist = [ self._router.name, - '--route', 'destination=10.20.30.0/24,gateway=10.20.30.1', + '--route', + 'destination=10.20.30.0/24,gateway=10.20.30.1', ] verifylist = [ ('router', self._router.name), - ('routes', [{'destination': '10.20.30.0/24', - 'gateway': '10.20.30.1'}]), + ( + 'routes', + [{'destination': '10.20.30.0/24', 'gateway': '10.20.30.1'}], + ), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) - routes = [{'destination': '10.20.30.0/24', - 'nexthop': '10.20.30.1'}] - attrs = { - 'routes': routes + self._router.routes - } + routes = [{'destination': '10.20.30.0/24', 'nexthop': '10.20.30.1'}] + attrs = {'routes': routes + self._router.routes} self.network.update_router.assert_called_once_with( - self._router, **attrs) + self._router, **attrs + ) self.assertIsNone(result) def test_set_no_route(self): @@ -1086,33 +1192,39 @@ class TestSetRouter(TestRouter): 'routes': [], } self.network.update_router.assert_called_once_with( - self._router, **attrs) + self._router, **attrs + ) self.assertIsNone(result) def test_set_route_overwrite_route(self): _testrouter = network_fakes.FakeRouter.create_one_router( - {'routes': [{"destination": "10.0.0.2", - "nexthop": "1.1.1.1"}]}) + {'routes': [{"destination": "10.0.0.2", "nexthop": "1.1.1.1"}]} + ) self.network.find_router = mock.Mock(return_value=_testrouter) arglist = [ _testrouter.name, - '--route', 'destination=10.20.30.0/24,gateway=10.20.30.1', + '--route', + 'destination=10.20.30.0/24,gateway=10.20.30.1', '--no-route', ] verifylist = [ ('router', _testrouter.name), - ('routes', [{'destination': '10.20.30.0/24', - 'gateway': '10.20.30.1'}]), + ( + 'routes', + [{'destination': '10.20.30.0/24', 'gateway': '10.20.30.1'}], + ), ('no_route', True), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) attrs = { - 'routes': [{'destination': '10.20.30.0/24', - 'nexthop': '10.20.30.1'}] + 'routes': [ + {'destination': '10.20.30.0/24', 'nexthop': '10.20.30.1'} + ] } self.network.update_router.assert_called_once_with( - _testrouter, **attrs) + _testrouter, **attrs + ) self.assertIsNone(result) def test_set_nothing(self): @@ -1132,7 +1244,8 @@ class TestSetRouter(TestRouter): def test_wrong_gateway_params(self): arglist = [ - "--fixed-ip", "subnet='abc'", + "--fixed-ip", + "subnet='abc'", self._router.id, ] verifylist = [ @@ -1140,12 +1253,14 @@ class TestSetRouter(TestRouter): ('router', self._router.id), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.assertRaises(exceptions.CommandError, - self.cmd.take_action, parsed_args) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_set_gateway_network_only(self): arglist = [ - "--external-gateway", self._network.id, + "--external-gateway", + self._network.id, self._router.id, ] verifylist = [ @@ -1156,14 +1271,17 @@ class TestSetRouter(TestRouter): result = self.cmd.take_action(parsed_args) self.network.update_router.assert_called_with( - self._router, **{'external_gateway_info': { - 'network_id': self._network.id}}) + self._router, + **{'external_gateway_info': {'network_id': self._network.id}} + ) self.assertIsNone(result) def test_set_gateway_options_subnet_only(self): arglist = [ - "--external-gateway", self._network.id, - "--fixed-ip", "subnet='abc'", + "--external-gateway", + self._network.id, + "--fixed-ip", + "subnet='abc'", self._router.id, '--enable-snat', ] @@ -1177,17 +1295,27 @@ class TestSetRouter(TestRouter): result = self.cmd.take_action(parsed_args) self.network.update_router.assert_called_with( - self._router, **{'external_gateway_info': { - 'network_id': self._network.id, - 'external_fixed_ips': [{ - 'subnet_id': self._subnet.id, }], - 'enable_snat': True, }}) + self._router, + **{ + 'external_gateway_info': { + 'network_id': self._network.id, + 'external_fixed_ips': [ + { + 'subnet_id': self._subnet.id, + } + ], + 'enable_snat': True, + } + } + ) self.assertIsNone(result) def test_set_gateway_option_ipaddress_only(self): arglist = [ - "--external-gateway", self._network.id, - "--fixed-ip", "ip-address=10.0.1.1", + "--external-gateway", + self._network.id, + "--fixed-ip", + "ip-address=10.0.1.1", self._router.id, '--enable-snat', ] @@ -1201,37 +1329,54 @@ class TestSetRouter(TestRouter): result = self.cmd.take_action(parsed_args) self.network.update_router.assert_called_with( - self._router, **{'external_gateway_info': { - 'network_id': self._network.id, - 'external_fixed_ips': [{ - 'ip_address': "10.0.1.1", }], - 'enable_snat': True, }}) + self._router, + **{ + 'external_gateway_info': { + 'network_id': self._network.id, + 'external_fixed_ips': [ + { + 'ip_address': "10.0.1.1", + } + ], + 'enable_snat': True, + } + } + ) self.assertIsNone(result) def test_set_gateway_options_subnet_ipaddress(self): arglist = [ - "--external-gateway", self._network.id, - "--fixed-ip", "subnet='abc',ip-address=10.0.1.1", + "--external-gateway", + self._network.id, + "--fixed-ip", + "subnet='abc',ip-address=10.0.1.1", self._router.id, '--enable-snat', ] verifylist = [ ('router', self._router.id), ('external_gateway', self._network.id), - ('fixed_ip', [{'subnet': "'abc'", - 'ip-address': "10.0.1.1"}]), + ('fixed_ip', [{'subnet': "'abc'", 'ip-address': "10.0.1.1"}]), ('enable_snat', True), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.network.update_router.assert_called_with( - self._router, **{'external_gateway_info': { - 'network_id': self._network.id, - 'external_fixed_ips': [{ - 'subnet_id': self._subnet.id, - 'ip_address': "10.0.1.1", }], - 'enable_snat': True, }}) + self._router, + **{ + 'external_gateway_info': { + 'network_id': self._network.id, + 'external_fixed_ips': [ + { + 'subnet_id': self._subnet.id, + 'ip_address': "10.0.1.1", + } + ], + 'enable_snat': True, + } + } + ) self.assertIsNone(result) def _test_set_tags(self, with_tags=True): @@ -1244,16 +1389,15 @@ class TestSetRouter(TestRouter): verifylist = [('no_tag', True)] expected_args = [] arglist.append(self._router.name) - verifylist.append( - ('router', self._router.name)) + verifylist.append(('router', self._router.name)) parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.assertFalse(self.network.update_router.called) self.network.set_tags.assert_called_once_with( - self._router, - tests_utils.CompareBySet(expected_args)) + self._router, tests_utils.CompareBySet(expected_args) + ) self.assertIsNone(result) def test_set_with_tags(self): @@ -1266,8 +1410,10 @@ class TestSetRouter(TestRouter): qos_policy = network_fakes.FakeNetworkQosPolicy.create_one_qos_policy() self.network.find_qos_policy = mock.Mock(return_value=qos_policy) arglist = [ - "--external-gateway", self._network.id, - "--qos-policy", qos_policy.id, + "--external-gateway", + self._network.id, + "--qos-policy", + qos_policy.id, self._router.id, ] verifylist = [ @@ -1279,14 +1425,20 @@ class TestSetRouter(TestRouter): result = self.cmd.take_action(parsed_args) self.network.update_router.assert_called_with( - self._router, **{'external_gateway_info': { - 'network_id': self._network.id, - 'qos_policy_id': qos_policy.id, }}) + self._router, + **{ + 'external_gateway_info': { + 'network_id': self._network.id, + 'qos_policy_id': qos_policy.id, + } + } + ) self.assertIsNone(result) def test_unset_gateway_ip_qos(self): arglist = [ - "--external-gateway", self._network.id, + "--external-gateway", + self._network.id, "--no-qos-policy", self._router.id, ] @@ -1299,17 +1451,24 @@ class TestSetRouter(TestRouter): result = self.cmd.take_action(parsed_args) self.network.update_router.assert_called_with( - self._router, **{'external_gateway_info': { - 'network_id': self._network.id, - 'qos_policy_id': None, }}) + self._router, + **{ + 'external_gateway_info': { + 'network_id': self._network.id, + 'qos_policy_id': None, + } + } + ) self.assertIsNone(result) def test_set_unset_gateway_ip_qos(self): qos_policy = network_fakes.FakeNetworkQosPolicy.create_one_qos_policy() self.network.find_qos_policy = mock.Mock(return_value=qos_policy) arglist = [ - "--external-gateway", self._network.id, - "--qos-policy", qos_policy.id, + "--external-gateway", + self._network.id, + "--qos-policy", + qos_policy.id, "--no-qos-policy", self._router.id, ] @@ -1320,8 +1479,13 @@ class TestSetRouter(TestRouter): ('no_qos_policy', True), ] - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_set_gateway_ip_qos_no_gateway(self): qos_policy = network_fakes.FakeNetworkQosPolicy.create_one_qos_policy() @@ -1329,7 +1493,8 @@ class TestSetRouter(TestRouter): router = network_fakes.FakeRouter.create_one_router() self.network.find_router = mock.Mock(return_value=router) arglist = [ - "--qos-policy", qos_policy.id, + "--qos-policy", + qos_policy.id, router.id, ] verifylist = [ @@ -1338,8 +1503,9 @@ class TestSetRouter(TestRouter): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.assertRaises(exceptions.CommandError, - self.cmd.take_action, parsed_args) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_unset_gateway_ip_qos_no_gateway(self): qos_policy = network_fakes.FakeNetworkQosPolicy.create_one_qos_policy() @@ -1355,23 +1521,28 @@ class TestSetRouter(TestRouter): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.assertRaises(exceptions.CommandError, - self.cmd.take_action, parsed_args) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) class TestShowRouter(TestRouter): - # The router to set. _router = network_fakes.FakeRouter.create_one_router() - _port = network_fakes.create_one_port({ - 'device_owner': 'network:router_interface', - 'device_id': _router.id - }) - setattr(_router, - 'interfaces_info', - [{'port_id': _port.id, - 'ip_address': _port.fixed_ips[0]['ip_address'], - 'subnet_id': _port.fixed_ips[0]['subnet_id']}]) + _port = network_fakes.create_one_port( + {'device_owner': 'network:router_interface', 'device_id': _router.id} + ) + setattr( + _router, + 'interfaces_info', + [ + { + 'port_id': _port.id, + 'ip_address': _port.fixed_ips[0]['ip_address'], + 'subnet_id': _port.fixed_ips[0]['subnet_id'], + } + ], + ) columns = ( 'admin_state_up', @@ -1419,8 +1590,13 @@ class TestShowRouter(TestRouter): arglist = [] verifylist = [] - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_show_all_options(self): arglist = [ @@ -1434,17 +1610,16 @@ class TestShowRouter(TestRouter): columns, data = self.cmd.take_action(parsed_args) self.network.find_router.assert_called_once_with( - self._router.name, ignore_missing=False) - self.network.ports.assert_called_with(**{ - 'device_id': self._router.id - }) + self._router.name, ignore_missing=False + ) + self.network.ports.assert_called_with(**{'device_id': self._router.id}) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, data) def test_show_no_ha_no_distributed(self): - _router = network_fakes.FakeRouter.create_one_router({ - 'ha': None, - 'distributed': None}) + _router = network_fakes.FakeRouter.create_one_router( + {'ha': None, 'distributed': None} + ) arglist = [ _router.name, @@ -1455,7 +1630,8 @@ class TestShowRouter(TestRouter): parsed_args = self.check_parser(self.cmd, arglist, verifylist) with mock.patch.object( - self.network, "find_router", return_value=_router): + self.network, "find_router", return_value=_router + ): columns, data = self.cmd.take_action(parsed_args) self.assertNotIn("is_distributed", columns) @@ -1473,7 +1649,8 @@ class TestShowRouter(TestRouter): parsed_args = self.check_parser(self.cmd, arglist, verifylist) with mock.patch.object( - self.network, "find_router", return_value=_router): + self.network, "find_router", return_value=_router + ): columns, data = self.cmd.take_action(parsed_args) self.assertIn("routes", columns) @@ -1481,22 +1658,31 @@ class TestShowRouter(TestRouter): class TestUnsetRouter(TestRouter): - def setUp(self): super(TestUnsetRouter, self).setUp() self.fake_network = network_fakes.create_one_network() self.fake_qos_policy = ( - network_fakes.FakeNetworkQosPolicy.create_one_qos_policy()) + network_fakes.FakeNetworkQosPolicy.create_one_qos_policy() + ) self._testrouter = network_fakes.FakeRouter.create_one_router( - {'routes': [{"destination": "192.168.101.1/24", - "nexthop": "172.24.4.3"}, - {"destination": "192.168.101.2/24", - "nexthop": "172.24.4.3"}], - 'tags': ['green', 'red'], - 'external_gateway_info': { - 'network_id': self.fake_network.id, - 'qos_policy_id': self.fake_qos_policy.id - }}) + { + 'routes': [ + { + "destination": "192.168.101.1/24", + "nexthop": "172.24.4.3", + }, + { + "destination": "192.168.101.2/24", + "nexthop": "172.24.4.3", + }, + ], + 'tags': ['green', 'red'], + 'external_gateway_info': { + 'network_id': self.fake_network.id, + 'qos_policy_id': self.fake_qos_policy.id, + }, + } + ) self.fake_subnet = network_fakes.FakeSubnet.create_one_subnet() self.network.find_router = mock.Mock(return_value=self._testrouter) self.network.update_router = mock.Mock(return_value=None) @@ -1506,38 +1692,47 @@ class TestUnsetRouter(TestRouter): def test_unset_router_params(self): arglist = [ - '--route', 'destination=192.168.101.1/24,gateway=172.24.4.3', + '--route', + 'destination=192.168.101.1/24,gateway=172.24.4.3', self._testrouter.name, ] verifylist = [ - ('routes', [ - {"destination": "192.168.101.1/24", "gateway": "172.24.4.3"}]), + ( + 'routes', + [{"destination": "192.168.101.1/24", "gateway": "172.24.4.3"}], + ), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) attrs = { - 'routes': [{"destination": "192.168.101.2/24", - "nexthop": "172.24.4.3"}], + 'routes': [ + {"destination": "192.168.101.2/24", "nexthop": "172.24.4.3"} + ], } self.network.update_router.assert_called_once_with( - self._testrouter, **attrs) + self._testrouter, **attrs + ) self.assertIsNone(result) def test_unset_router_wrong_routes(self): arglist = [ - '--route', 'destination=192.168.101.1/24,gateway=172.24.4.2', + '--route', + 'destination=192.168.101.1/24,gateway=172.24.4.2', self._testrouter.name, ] verifylist = [ - ('routes', [ - {"destination": "192.168.101.1/24", "gateway": "172.24.4.2"}]), + ( + 'routes', + [{"destination": "192.168.101.1/24", "gateway": "172.24.4.2"}], + ), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.assertRaises(exceptions.CommandError, - self.cmd.take_action, parsed_args) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_unset_router_external_gateway(self): arglist = [ @@ -1549,7 +1744,8 @@ class TestUnsetRouter(TestRouter): result = self.cmd.take_action(parsed_args) attrs = {'external_gateway_info': {}} self.network.update_router.assert_called_once_with( - self._testrouter, **attrs) + self._testrouter, **attrs + ) self.assertIsNone(result) def _test_unset_tags(self, with_tags=True): @@ -1562,16 +1758,15 @@ class TestUnsetRouter(TestRouter): verifylist = [('all_tag', True)] expected_args = [] arglist.append(self._testrouter.name) - verifylist.append( - ('router', self._testrouter.name)) + verifylist.append(('router', self._testrouter.name)) parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.assertFalse(self.network.update_router.called) self.network.set_tags.assert_called_once_with( - self._testrouter, - tests_utils.CompareBySet(expected_args)) + self._testrouter, tests_utils.CompareBySet(expected_args) + ) self.assertIsNone(result) def test_unset_with_tags(self): @@ -1585,15 +1780,18 @@ class TestUnsetRouter(TestRouter): '--qos-policy', self._testrouter.name, ] - verifylist = [ - ('qos_policy', True) - ] + verifylist = [('qos_policy', True)] parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) - attrs = {'external_gateway_info': {"network_id": self.fake_network.id, - "qos_policy_id": None}} + attrs = { + 'external_gateway_info': { + "network_id": self.fake_network.id, + "qos_policy_id": None, + } + } self.network.update_router.assert_called_once_with( - self._testrouter, **attrs) + self._testrouter, **attrs + ) self.assertIsNone(result) def test_unset_gateway_ip_qos_no_network(self): @@ -1610,14 +1808,16 @@ class TestUnsetRouter(TestRouter): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.assertRaises(exceptions.CommandError, - self.cmd.take_action, parsed_args) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_unset_gateway_ip_qos_no_qos(self): qos_policy = network_fakes.FakeNetworkQosPolicy.create_one_qos_policy() self.network.find_qos_policy = mock.Mock(return_value=qos_policy) router = network_fakes.FakeRouter.create_one_router( - {"external_gateway_info": {"network_id": "fake-id"}}) + {"external_gateway_info": {"network_id": "fake-id"}} + ) self.network.find_router = mock.Mock(return_value=router) arglist = [ "--qos-policy", @@ -1628,5 +1828,6 @@ class TestUnsetRouter(TestRouter): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.assertRaises(exceptions.CommandError, - self.cmd.take_action, parsed_args) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) diff --git a/openstackclient/tests/unit/network/v2/test_security_group_compute.py b/openstackclient/tests/unit/network/v2/test_security_group_compute.py index 4f1ddce590..22e8b71b71 100644 --- a/openstackclient/tests/unit/network/v2/test_security_group_compute.py +++ b/openstackclient/tests/unit/network/v2/test_security_group_compute.py @@ -23,7 +23,6 @@ from openstackclient.tests.unit import utils as tests_utils class TestSecurityGroupCompute(compute_fakes.TestComputev2): - def setUp(self): super(TestSecurityGroupCompute, self).setUp() @@ -31,17 +30,15 @@ class TestSecurityGroupCompute(compute_fakes.TestComputev2): self.compute = self.app.client_manager.compute -@mock.patch( - 'openstackclient.api.compute_v2.APIv2.security_group_create' -) +@mock.patch('openstackclient.api.compute_v2.APIv2.security_group_create') class TestCreateSecurityGroupCompute(TestSecurityGroupCompute): - project = identity_fakes.FakeProject.create_one_project() domain = identity_fakes.FakeDomain.create_one_domain() # The security group to be shown. - _security_group = \ + _security_group = ( compute_fakes.FakeSecurityGroup.create_one_security_group() + ) columns = ( 'description', @@ -68,8 +65,9 @@ class TestCreateSecurityGroupCompute(TestSecurityGroupCompute): self.cmd = security_group.CreateSecurityGroup(self.app, None) def test_security_group_create_no_options(self, sg_mock): - self.assertRaises(tests_utils.ParserException, - self.check_parser, self.cmd, [], []) + self.assertRaises( + tests_utils.ParserException, self.check_parser, self.cmd, [], [] + ) def test_security_group_create_min_options(self, sg_mock): sg_mock.return_value = self._security_group @@ -93,7 +91,8 @@ class TestCreateSecurityGroupCompute(TestSecurityGroupCompute): def test_security_group_create_all_options(self, sg_mock): sg_mock.return_value = self._security_group arglist = [ - '--description', self._security_group['description'], + '--description', + self._security_group['description'], self._security_group['name'], ] verifylist = [ @@ -112,14 +111,10 @@ class TestCreateSecurityGroupCompute(TestSecurityGroupCompute): self.assertCountEqual(self.data, data) -@mock.patch( - 'openstackclient.api.compute_v2.APIv2.security_group_delete' -) +@mock.patch('openstackclient.api.compute_v2.APIv2.security_group_delete') class TestDeleteSecurityGroupCompute(TestSecurityGroupCompute): - # The security groups to be deleted. - _security_groups = \ - compute_fakes.FakeSecurityGroup.create_security_groups() + _security_groups = compute_fakes.FakeSecurityGroup.create_security_groups() def setUp(self): super(TestDeleteSecurityGroupCompute, self).setUp() @@ -128,7 +123,8 @@ class TestDeleteSecurityGroupCompute(TestSecurityGroupCompute): self.compute.api.security_group_find = ( compute_fakes.FakeSecurityGroup.get_security_groups( - self._security_groups) + self._security_groups + ) ) # Get the command object to test @@ -173,17 +169,19 @@ class TestDeleteSecurityGroupCompute(TestSecurityGroupCompute): def test_security_group_multi_delete_with_exception(self, sg_mock): sg_mock.return_value = mock.Mock(return_value=None) - sg_mock.side_effect = ([ + sg_mock.side_effect = [ mock.Mock(return_value=None), exceptions.CommandError, - ]) + ] arglist = [ self._security_groups[0]['id'], 'unexist_security_group', ] verifylist = [ - ('group', - [self._security_groups[0]['id'], 'unexist_security_group']), + ( + 'group', + [self._security_groups[0]['id'], 'unexist_security_group'], + ), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -197,14 +195,12 @@ class TestDeleteSecurityGroupCompute(TestSecurityGroupCompute): sg_mock.assert_any_call('unexist_security_group') -@mock.patch( - 'openstackclient.api.compute_v2.APIv2.security_group_list' -) +@mock.patch('openstackclient.api.compute_v2.APIv2.security_group_list') class TestListSecurityGroupCompute(TestSecurityGroupCompute): - # The security group to be listed. - _security_groups = \ - compute_fakes.FakeSecurityGroup.create_security_groups(count=3) + _security_groups = compute_fakes.FakeSecurityGroup.create_security_groups( + count=3 + ) columns = ( 'ID', @@ -220,19 +216,23 @@ class TestListSecurityGroupCompute(TestSecurityGroupCompute): data = [] for grp in _security_groups: - data.append(( - grp['id'], - grp['name'], - grp['description'], - )) + data.append( + ( + grp['id'], + grp['name'], + grp['description'], + ) + ) data_all_projects = [] for grp in _security_groups: - data_all_projects.append(( - grp['id'], - grp['name'], - grp['description'], - grp['tenant_id'], - )) + data_all_projects.append( + ( + grp['id'], + grp['name'], + grp['description'], + grp['tenant_id'], + ) + ) def setUp(self): super(TestListSecurityGroupCompute, self).setUp() @@ -275,14 +275,12 @@ class TestListSecurityGroupCompute(TestSecurityGroupCompute): self.assertCountEqual(self.data_all_projects, list(data)) -@mock.patch( - 'openstackclient.api.compute_v2.APIv2.security_group_set' -) +@mock.patch('openstackclient.api.compute_v2.APIv2.security_group_set') class TestSetSecurityGroupCompute(TestSecurityGroupCompute): - # The security group to be set. - _security_group = \ + _security_group = ( compute_fakes.FakeSecurityGroup.create_one_security_group() + ) def setUp(self): super(TestSetSecurityGroupCompute, self).setUp() @@ -290,14 +288,16 @@ class TestSetSecurityGroupCompute(TestSecurityGroupCompute): self.app.client_manager.network_endpoint_enabled = False self.compute.api.security_group_find = mock.Mock( - return_value=self._security_group) + return_value=self._security_group + ) # Get the command object to test self.cmd = security_group.SetSecurityGroup(self.app, None) def test_security_group_set_no_options(self, sg_mock): - self.assertRaises(tests_utils.ParserException, - self.check_parser, self.cmd, [], []) + self.assertRaises( + tests_utils.ParserException, self.check_parser, self.cmd, [], [] + ) def test_security_group_set_no_updates(self, sg_mock): sg_mock.return_value = mock.Mock(return_value=None) @@ -323,8 +323,10 @@ class TestSetSecurityGroupCompute(TestSecurityGroupCompute): new_name = 'new-' + self._security_group['name'] new_description = 'new-' + self._security_group['description'] arglist = [ - '--name', new_name, - '--description', new_description, + '--name', + new_name, + '--description', + new_description, self._security_group['name'], ] verifylist = [ @@ -337,27 +339,24 @@ class TestSetSecurityGroupCompute(TestSecurityGroupCompute): result = self.cmd.take_action(parsed_args) sg_mock.assert_called_once_with( - self._security_group, - new_name, - new_description + self._security_group, new_name, new_description ) self.assertIsNone(result) -@mock.patch( - 'openstackclient.api.compute_v2.APIv2.security_group_find' -) +@mock.patch('openstackclient.api.compute_v2.APIv2.security_group_find') class TestShowSecurityGroupCompute(TestSecurityGroupCompute): - # The security group rule to be shown with the group. - _security_group_rule = \ + _security_group_rule = ( compute_fakes.FakeSecurityGroupRule.create_one_security_group_rule() + ) # The security group to be shown. - _security_group = \ + _security_group = ( compute_fakes.FakeSecurityGroup.create_one_security_group( attrs={'rules': [_security_group_rule]} ) + ) columns = ( 'description', @@ -384,8 +383,9 @@ class TestShowSecurityGroupCompute(TestSecurityGroupCompute): self.cmd = security_group.ShowSecurityGroup(self.app, None) def test_security_group_show_no_options(self, sg_mock): - self.assertRaises(tests_utils.ParserException, - self.check_parser, self.cmd, [], []) + self.assertRaises( + tests_utils.ParserException, self.check_parser, self.cmd, [], [] + ) def test_security_group_show_all_options(self, sg_mock): sg_mock.return_value = self._security_group diff --git a/openstackclient/tests/unit/network/v2/test_security_group_network.py b/openstackclient/tests/unit/network/v2/test_security_group_network.py index 95262bf1ed..f55a39988a 100644 --- a/openstackclient/tests/unit/network/v2/test_security_group_network.py +++ b/openstackclient/tests/unit/network/v2/test_security_group_network.py @@ -23,7 +23,6 @@ from openstackclient.tests.unit import utils as tests_utils class TestSecurityGroupNetwork(network_fakes.TestNetworkV2): - def setUp(self): super(TestSecurityGroupNetwork, self).setUp() @@ -36,12 +35,12 @@ class TestSecurityGroupNetwork(network_fakes.TestNetworkV2): class TestCreateSecurityGroupNetwork(TestSecurityGroupNetwork): - project = identity_fakes.FakeProject.create_one_project() domain = identity_fakes.FakeDomain.create_one_domain() # The security group to be created. _security_group = ( - network_fakes.FakeSecurityGroup.create_one_security_group()) + network_fakes.FakeSecurityGroup.create_one_security_group() + ) columns = ( 'description', @@ -67,7 +66,8 @@ class TestCreateSecurityGroupNetwork(TestSecurityGroupNetwork): super(TestCreateSecurityGroupNetwork, self).setUp() self.network.create_security_group = mock.Mock( - return_value=self._security_group) + return_value=self._security_group + ) self.projects_mock.get.return_value = self.project self.domains_mock.get.return_value = self.domain @@ -77,8 +77,9 @@ class TestCreateSecurityGroupNetwork(TestSecurityGroupNetwork): self.cmd = security_group.CreateSecurityGroup(self.app, self.namespace) def test_create_no_options(self): - self.assertRaises(tests_utils.ParserException, - self.check_parser, self.cmd, [], []) + self.assertRaises( + tests_utils.ParserException, self.check_parser, self.cmd, [], [] + ) def test_create_min_options(self): arglist = [ @@ -91,18 +92,23 @@ class TestCreateSecurityGroupNetwork(TestSecurityGroupNetwork): columns, data = self.cmd.take_action(parsed_args) - self.network.create_security_group.assert_called_once_with(**{ - 'description': self._security_group.name, - 'name': self._security_group.name, - }) + self.network.create_security_group.assert_called_once_with( + **{ + 'description': self._security_group.name, + 'name': self._security_group.name, + } + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, data) def test_create_all_options(self): arglist = [ - '--description', self._security_group.description, - '--project', self.project.name, - '--project-domain', self.domain.name, + '--description', + self._security_group.description, + '--project', + self.project.name, + '--project-domain', + self.domain.name, '--stateful', self._security_group.name, ] @@ -117,12 +123,14 @@ class TestCreateSecurityGroupNetwork(TestSecurityGroupNetwork): columns, data = self.cmd.take_action(parsed_args) - self.network.create_security_group.assert_called_once_with(**{ - 'description': self._security_group.description, - 'stateful': self._security_group.stateful, - 'name': self._security_group.name, - 'project_id': self.project.id, - }) + self.network.create_security_group.assert_called_once_with( + **{ + 'description': self._security_group.description, + 'stateful': self._security_group.stateful, + 'name': self._security_group.name, + 'project_id': self.project.id, + } + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, data) @@ -142,16 +150,18 @@ class TestCreateSecurityGroupNetwork(TestSecurityGroupNetwork): verifylist.append(('no_tag', True)) parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) - self.network.create_security_group.assert_called_once_with(**{ - 'description': self._security_group.name, - 'name': self._security_group.name, - }) + self.network.create_security_group.assert_called_once_with( + **{ + 'description': self._security_group.name, + 'name': self._security_group.name, + } + ) if add_tags: self.network.set_tags.assert_called_once_with( - self._security_group, - tests_utils.CompareBySet(['red', 'blue'])) + self._security_group, tests_utils.CompareBySet(['red', 'blue']) + ) else: self.assertFalse(self.network.set_tags.called) self.assertEqual(self.columns, columns) @@ -165,10 +175,8 @@ class TestCreateSecurityGroupNetwork(TestSecurityGroupNetwork): class TestDeleteSecurityGroupNetwork(TestSecurityGroupNetwork): - # The security groups to be deleted. - _security_groups = \ - network_fakes.FakeSecurityGroup.create_security_groups() + _security_groups = network_fakes.FakeSecurityGroup.create_security_groups() def setUp(self): super(TestDeleteSecurityGroupNetwork, self).setUp() @@ -177,7 +185,8 @@ class TestDeleteSecurityGroupNetwork(TestSecurityGroupNetwork): self.network.find_security_group = ( network_fakes.FakeSecurityGroup.get_security_groups( - self._security_groups) + self._security_groups + ) ) # Get the command object to test @@ -195,7 +204,8 @@ class TestDeleteSecurityGroupNetwork(TestSecurityGroupNetwork): result = self.cmd.take_action(parsed_args) self.network.delete_security_group.assert_called_once_with( - self._security_groups[0]) + self._security_groups[0] + ) self.assertIsNone(result) def test_multi_security_groups_delete(self): @@ -223,14 +233,16 @@ class TestDeleteSecurityGroupNetwork(TestSecurityGroupNetwork): 'unexist_security_group', ] verifylist = [ - ('group', - [self._security_groups[0].name, 'unexist_security_group']), + ( + 'group', + [self._security_groups[0].name, 'unexist_security_group'], + ), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) find_mock_result = [self._security_groups[0], exceptions.CommandError] - self.network.find_security_group = ( - mock.Mock(side_effect=find_mock_result) + self.network.find_security_group = mock.Mock( + side_effect=find_mock_result ) try: @@ -240,19 +252,21 @@ class TestDeleteSecurityGroupNetwork(TestSecurityGroupNetwork): self.assertEqual('1 of 2 groups failed to delete.', str(e)) self.network.find_security_group.assert_any_call( - self._security_groups[0].name, ignore_missing=False) + self._security_groups[0].name, ignore_missing=False + ) self.network.find_security_group.assert_any_call( - 'unexist_security_group', ignore_missing=False) + 'unexist_security_group', ignore_missing=False + ) self.network.delete_security_group.assert_called_once_with( self._security_groups[0] ) class TestListSecurityGroupNetwork(TestSecurityGroupNetwork): - # The security group to be listed. - _security_groups = \ - network_fakes.FakeSecurityGroup.create_security_groups(count=3) + _security_groups = network_fakes.FakeSecurityGroup.create_security_groups( + count=3 + ) columns = ( 'ID', @@ -264,19 +278,22 @@ class TestListSecurityGroupNetwork(TestSecurityGroupNetwork): data = [] for grp in _security_groups: - data.append(( - grp.id, - grp.name, - grp.description, - grp.project_id, - grp.tags, - )) + data.append( + ( + grp.id, + grp.name, + grp.description, + grp.project_id, + grp.tags, + ) + ) def setUp(self): super(TestListSecurityGroupNetwork, self).setUp() self.network.security_groups = mock.Mock( - return_value=self._security_groups) + return_value=self._security_groups + ) # Get the command object to test self.cmd = security_group.ListSecurityGroup(self.app, self.namespace) @@ -291,7 +308,8 @@ class TestListSecurityGroupNetwork(TestSecurityGroupNetwork): columns, data = self.cmd.take_action(parsed_args) self.network.security_groups.assert_called_once_with( - fields=security_group.ListSecurityGroup.FIELDS_TO_RETRIEVE) + fields=security_group.ListSecurityGroup.FIELDS_TO_RETRIEVE + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) @@ -307,7 +325,8 @@ class TestListSecurityGroupNetwork(TestSecurityGroupNetwork): columns, data = self.cmd.take_action(parsed_args) self.network.security_groups.assert_called_once_with( - fields=security_group.ListSecurityGroup.FIELDS_TO_RETRIEVE) + fields=security_group.ListSecurityGroup.FIELDS_TO_RETRIEVE + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) @@ -315,7 +334,8 @@ class TestListSecurityGroupNetwork(TestSecurityGroupNetwork): project = identity_fakes.FakeProject.create_one_project() self.projects_mock.get.return_value = project arglist = [ - '--project', project.id, + '--project', + project.id, ] verifylist = [ ('project', project.id), @@ -325,7 +345,8 @@ class TestListSecurityGroupNetwork(TestSecurityGroupNetwork): columns, data = self.cmd.take_action(parsed_args) filters = { 'project_id': project.id, - 'fields': security_group.ListSecurityGroup.FIELDS_TO_RETRIEVE} + 'fields': security_group.ListSecurityGroup.FIELDS_TO_RETRIEVE, + } self.network.security_groups.assert_called_once_with(**filters) self.assertEqual(self.columns, columns) @@ -335,8 +356,10 @@ class TestListSecurityGroupNetwork(TestSecurityGroupNetwork): project = identity_fakes.FakeProject.create_one_project() self.projects_mock.get.return_value = project arglist = [ - '--project', project.id, - '--project-domain', project.domain_id, + '--project', + project.id, + '--project-domain', + project.domain_id, ] verifylist = [ ('project', project.id), @@ -347,7 +370,8 @@ class TestListSecurityGroupNetwork(TestSecurityGroupNetwork): columns, data = self.cmd.take_action(parsed_args) filters = { 'project_id': project.id, - 'fields': security_group.ListSecurityGroup.FIELDS_TO_RETRIEVE} + 'fields': security_group.ListSecurityGroup.FIELDS_TO_RETRIEVE, + } self.network.security_groups.assert_called_once_with(**filters) self.assertEqual(self.columns, columns) @@ -355,10 +379,14 @@ class TestListSecurityGroupNetwork(TestSecurityGroupNetwork): def test_list_with_tag_options(self): arglist = [ - '--tags', 'red,blue', - '--any-tags', 'red,green', - '--not-tags', 'orange,yellow', - '--not-any-tags', 'black,white', + '--tags', + 'red,blue', + '--any-tags', + 'red,green', + '--not-tags', + 'orange,yellow', + '--not-any-tags', + 'black,white', ] verifylist = [ ('tags', ['red', 'blue']), @@ -370,22 +398,25 @@ class TestListSecurityGroupNetwork(TestSecurityGroupNetwork): columns, data = self.cmd.take_action(parsed_args) self.network.security_groups.assert_called_once_with( - **{'tags': 'red,blue', - 'any_tags': 'red,green', - 'not_tags': 'orange,yellow', - 'not_any_tags': 'black,white', - 'fields': security_group.ListSecurityGroup.FIELDS_TO_RETRIEVE} + **{ + 'tags': 'red,blue', + 'any_tags': 'red,green', + 'not_tags': 'orange,yellow', + 'not_any_tags': 'black,white', + 'fields': security_group.ListSecurityGroup.FIELDS_TO_RETRIEVE, + } ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, list(data)) class TestSetSecurityGroupNetwork(TestSecurityGroupNetwork): - # The security group to be set. _security_group = ( network_fakes.FakeSecurityGroup.create_one_security_group( - attrs={'tags': ['green', 'red']})) + attrs={'tags': ['green', 'red']} + ) + ) def setUp(self): super(TestSetSecurityGroupNetwork, self).setUp() @@ -393,15 +424,17 @@ class TestSetSecurityGroupNetwork(TestSecurityGroupNetwork): self.network.update_security_group = mock.Mock(return_value=None) self.network.find_security_group = mock.Mock( - return_value=self._security_group) + return_value=self._security_group + ) self.network.set_tags = mock.Mock(return_value=None) # Get the command object to test self.cmd = security_group.SetSecurityGroup(self.app, self.namespace) def test_set_no_options(self): - self.assertRaises(tests_utils.ParserException, - self.check_parser, self.cmd, [], []) + self.assertRaises( + tests_utils.ParserException, self.check_parser, self.cmd, [], [] + ) def test_set_no_updates(self): arglist = [ @@ -415,8 +448,7 @@ class TestSetSecurityGroupNetwork(TestSecurityGroupNetwork): result = self.cmd.take_action(parsed_args) self.network.update_security_group.assert_called_once_with( - self._security_group, - **{} + self._security_group, **{} ) self.assertIsNone(result) @@ -424,8 +456,10 @@ class TestSetSecurityGroupNetwork(TestSecurityGroupNetwork): new_name = 'new-' + self._security_group.name new_description = 'new-' + self._security_group.description arglist = [ - '--name', new_name, - '--description', new_description, + '--name', + new_name, + '--description', + new_description, '--stateful', self._security_group.name, ] @@ -445,8 +479,7 @@ class TestSetSecurityGroupNetwork(TestSecurityGroupNetwork): 'stateful': True, } self.network.update_security_group.assert_called_once_with( - self._security_group, - **attrs + self._security_group, **attrs ) self.assertIsNone(result) @@ -460,16 +493,15 @@ class TestSetSecurityGroupNetwork(TestSecurityGroupNetwork): verifylist = [('no_tag', True)] expected_args = [] arglist.append(self._security_group.name) - verifylist.append( - ('group', self._security_group.name)) + verifylist.append(('group', self._security_group.name)) parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.assertTrue(self.network.update_security_group.called) self.network.set_tags.assert_called_once_with( - self._security_group, - tests_utils.CompareBySet(expected_args)) + self._security_group, tests_utils.CompareBySet(expected_args) + ) self.assertIsNone(result) def test_set_with_tags(self): @@ -480,16 +512,17 @@ class TestSetSecurityGroupNetwork(TestSecurityGroupNetwork): class TestShowSecurityGroupNetwork(TestSecurityGroupNetwork): - # The security group rule to be shown with the group. - _security_group_rule = \ + _security_group_rule = ( network_fakes.FakeSecurityGroupRule.create_one_security_group_rule() + ) # The security group to be shown. - _security_group = \ + _security_group = ( network_fakes.FakeSecurityGroup.create_one_security_group( attrs={'security_group_rules': [_security_group_rule._info]} ) + ) columns = ( 'description', @@ -507,7 +540,8 @@ class TestShowSecurityGroupNetwork(TestSecurityGroupNetwork): _security_group.name, _security_group.project_id, security_group.NetworkSecurityGroupRulesColumn( - [_security_group_rule._info]), + [_security_group_rule._info] + ), _security_group.stateful, _security_group.tags, ) @@ -516,14 +550,16 @@ class TestShowSecurityGroupNetwork(TestSecurityGroupNetwork): super(TestShowSecurityGroupNetwork, self).setUp() self.network.find_security_group = mock.Mock( - return_value=self._security_group) + return_value=self._security_group + ) # Get the command object to test self.cmd = security_group.ShowSecurityGroup(self.app, self.namespace) def test_show_no_options(self): - self.assertRaises(tests_utils.ParserException, - self.check_parser, self.cmd, [], []) + self.assertRaises( + tests_utils.ParserException, self.check_parser, self.cmd, [], [] + ) def test_show_all_options(self): arglist = [ @@ -537,17 +573,19 @@ class TestShowSecurityGroupNetwork(TestSecurityGroupNetwork): columns, data = self.cmd.take_action(parsed_args) self.network.find_security_group.assert_called_once_with( - self._security_group.id, ignore_missing=False) + self._security_group.id, ignore_missing=False + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, data) class TestUnsetSecurityGroupNetwork(TestSecurityGroupNetwork): - # The security group to be unset. _security_group = ( network_fakes.FakeSecurityGroup.create_one_security_group( - attrs={'tags': ['green', 'red']})) + attrs={'tags': ['green', 'red']} + ) + ) def setUp(self): super(TestUnsetSecurityGroupNetwork, self).setUp() @@ -555,15 +593,17 @@ class TestUnsetSecurityGroupNetwork(TestSecurityGroupNetwork): self.network.update_security_group = mock.Mock(return_value=None) self.network.find_security_group = mock.Mock( - return_value=self._security_group) + return_value=self._security_group + ) self.network.set_tags = mock.Mock(return_value=None) # Get the command object to test self.cmd = security_group.UnsetSecurityGroup(self.app, self.namespace) def test_set_no_options(self): - self.assertRaises(tests_utils.ParserException, - self.check_parser, self.cmd, [], []) + self.assertRaises( + tests_utils.ParserException, self.check_parser, self.cmd, [], [] + ) def test_set_no_updates(self): arglist = [ @@ -590,16 +630,15 @@ class TestUnsetSecurityGroupNetwork(TestSecurityGroupNetwork): verifylist = [('all_tag', True)] expected_args = [] arglist.append(self._security_group.name) - verifylist.append( - ('group', self._security_group.name)) + verifylist.append(('group', self._security_group.name)) parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.assertFalse(self.network.update_security_group.called) self.network.set_tags.assert_called_once_with( - self._security_group, - tests_utils.CompareBySet(expected_args)) + self._security_group, tests_utils.CompareBySet(expected_args) + ) self.assertIsNone(result) def test_unset_with_tags(self): diff --git a/openstackclient/tests/unit/network/v2/test_security_group_rule_compute.py b/openstackclient/tests/unit/network/v2/test_security_group_rule_compute.py index b7e38afb18..ea4adce0a0 100644 --- a/openstackclient/tests/unit/network/v2/test_security_group_rule_compute.py +++ b/openstackclient/tests/unit/network/v2/test_security_group_rule_compute.py @@ -24,7 +24,6 @@ from openstackclient.tests.unit import utils as tests_utils class TestSecurityGroupRuleCompute(compute_fakes.TestComputev2): - def setUp(self): super(TestSecurityGroupRuleCompute, self).setUp() @@ -32,11 +31,8 @@ class TestSecurityGroupRuleCompute(compute_fakes.TestComputev2): self.compute = self.app.client_manager.compute -@mock.patch( - 'openstackclient.api.compute_v2.APIv2.security_group_rule_create' -) +@mock.patch('openstackclient.api.compute_v2.APIv2.security_group_rule_create') class TestCreateSecurityGroupRuleCompute(TestSecurityGroupRuleCompute): - project = identity_fakes.FakeProject.create_one_project() domain = identity_fakes.FakeDomain.create_one_domain() @@ -44,16 +40,22 @@ class TestCreateSecurityGroupRuleCompute(TestSecurityGroupRuleCompute): _security_group_rule = None # The security group that will contain the rule created. - _security_group = \ + _security_group = ( compute_fakes.FakeSecurityGroup.create_one_security_group() + ) def _setup_security_group_rule(self, attrs=None): - self._security_group_rule = \ + self._security_group_rule = ( compute_fakes.FakeSecurityGroupRule.create_one_security_group_rule( - attrs) - expected_columns, expected_data = \ - security_group_rule._format_security_group_rule_show( - self._security_group_rule) + attrs + ) + ) + ( + expected_columns, + expected_data, + ) = security_group_rule._format_security_group_rule_show( + self._security_group_rule + ) return expected_columns, expected_data def setUp(self): @@ -69,60 +71,100 @@ class TestCreateSecurityGroupRuleCompute(TestSecurityGroupRuleCompute): self.cmd = security_group_rule.CreateSecurityGroupRule(self.app, None) def test_security_group_rule_create_no_options(self, sgr_mock): - self.assertRaises(tests_utils.ParserException, - self.check_parser, self.cmd, [], []) + self.assertRaises( + tests_utils.ParserException, self.check_parser, self.cmd, [], [] + ) def test_security_group_rule_create_all_remote_options(self, sgr_mock): arglist = [ - '--remote-ip', '10.10.0.0/24', - '--remote-group', self._security_group['id'], + '--remote-ip', + '10.10.0.0/24', + '--remote-group', + self._security_group['id'], self._security_group['id'], ] - self.assertRaises(tests_utils.ParserException, - self.check_parser, self.cmd, arglist, []) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + [], + ) def test_security_group_rule_create_bad_protocol(self, sgr_mock): arglist = [ - '--protocol', 'foo', + '--protocol', + 'foo', self._security_group['id'], ] - self.assertRaises(tests_utils.ParserException, - self.check_parser, self.cmd, arglist, []) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + [], + ) def test_security_group_rule_create_all_protocol_options(self, sgr_mock): arglist = [ - '--protocol', 'tcp', - '--proto', 'tcp', + '--protocol', + 'tcp', + '--proto', + 'tcp', self._security_group['id'], ] - self.assertRaises(tests_utils.ParserException, - self.check_parser, self.cmd, arglist, []) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + [], + ) def test_security_group_rule_create_network_options(self, sgr_mock): arglist = [ '--ingress', - '--ethertype', 'IPv4', - '--icmp-type', '3', - '--icmp-code', '11', - '--project', self.project.name, - '--project-domain', self.domain.name, + '--ethertype', + 'IPv4', + '--icmp-type', + '3', + '--icmp-code', + '11', + '--project', + self.project.name, + '--project-domain', + self.domain.name, self._security_group['id'], ] - self.assertRaises(tests_utils.ParserException, - self.check_parser, self.cmd, arglist, []) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + [], + ) def test_security_group_rule_create_default_rule(self, sgr_mock): expected_columns, expected_data = self._setup_security_group_rule() sgr_mock.return_value = self._security_group_rule - dst_port = str(self._security_group_rule['from_port']) + ':' + \ - str(self._security_group_rule['to_port']) + dst_port = ( + str(self._security_group_rule['from_port']) + + ':' + + str(self._security_group_rule['to_port']) + ) arglist = [ - '--dst-port', dst_port, + '--dst-port', + dst_port, self._security_group['id'], ] verifylist = [ - ('dst_port', (self._security_group_rule['from_port'], - self._security_group_rule['to_port'])), + ( + 'dst_port', + ( + self._security_group_rule['from_port'], + self._security_group_rule['to_port'], + ), + ), ('group', self._security_group['id']), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -143,20 +185,29 @@ class TestCreateSecurityGroupRuleCompute(TestSecurityGroupRuleCompute): self.assertEqual(expected_data, data) def test_security_group_rule_create_remote_group(self, sgr_mock): - expected_columns, expected_data = self._setup_security_group_rule({ - 'from_port': 22, - 'to_port': 22, - 'group': {'name': self._security_group['name']}, - }) + expected_columns, expected_data = self._setup_security_group_rule( + { + 'from_port': 22, + 'to_port': 22, + 'group': {'name': self._security_group['name']}, + } + ) sgr_mock.return_value = self._security_group_rule arglist = [ - '--dst-port', str(self._security_group_rule['from_port']), - '--remote-group', self._security_group['name'], + '--dst-port', + str(self._security_group_rule['from_port']), + '--remote-group', + self._security_group['name'], self._security_group['id'], ] verifylist = [ - ('dst_port', (self._security_group_rule['from_port'], - self._security_group_rule['to_port'])), + ( + 'dst_port', + ( + self._security_group_rule['from_port'], + self._security_group_rule['to_port'], + ), + ), ('remote_group', self._security_group['name']), ('group', self._security_group['id']), ] @@ -178,16 +229,20 @@ class TestCreateSecurityGroupRuleCompute(TestSecurityGroupRuleCompute): self.assertEqual(expected_data, data) def test_security_group_rule_create_remote_ip(self, sgr_mock): - expected_columns, expected_data = self._setup_security_group_rule({ - 'ip_protocol': 'icmp', - 'from_port': -1, - 'to_port': -1, - 'ip_range': {'cidr': '10.0.2.0/24'}, - }) + expected_columns, expected_data = self._setup_security_group_rule( + { + 'ip_protocol': 'icmp', + 'from_port': -1, + 'to_port': -1, + 'ip_range': {'cidr': '10.0.2.0/24'}, + } + ) sgr_mock.return_value = self._security_group_rule arglist = [ - '--protocol', self._security_group_rule['ip_protocol'], - '--remote-ip', self._security_group_rule['ip_range']['cidr'], + '--protocol', + self._security_group_rule['ip_protocol'], + '--remote-ip', + self._security_group_rule['ip_range']['cidr'], self._security_group['id'], ] verifylist = [ @@ -213,16 +268,20 @@ class TestCreateSecurityGroupRuleCompute(TestSecurityGroupRuleCompute): self.assertEqual(expected_data, data) def test_security_group_rule_create_proto_option(self, sgr_mock): - expected_columns, expected_data = self._setup_security_group_rule({ - 'ip_protocol': 'icmp', - 'from_port': -1, - 'to_port': -1, - 'ip_range': {'cidr': '10.0.2.0/24'}, - }) + expected_columns, expected_data = self._setup_security_group_rule( + { + 'ip_protocol': 'icmp', + 'from_port': -1, + 'to_port': -1, + 'ip_range': {'cidr': '10.0.2.0/24'}, + } + ) sgr_mock.return_value = self._security_group_rule arglist = [ - '--proto', self._security_group_rule['ip_protocol'], - '--remote-ip', self._security_group_rule['ip_range']['cidr'], + '--proto', + self._security_group_rule['ip_protocol'], + '--remote-ip', + self._security_group_rule['ip_range']['cidr'], self._security_group['id'], ] verifylist = [ @@ -249,15 +308,14 @@ class TestCreateSecurityGroupRuleCompute(TestSecurityGroupRuleCompute): self.assertEqual(expected_data, data) -@mock.patch( - 'openstackclient.api.compute_v2.APIv2.security_group_rule_delete' -) +@mock.patch('openstackclient.api.compute_v2.APIv2.security_group_rule_delete') class TestDeleteSecurityGroupRuleCompute(TestSecurityGroupRuleCompute): - # The security group rule to be deleted. - _security_group_rules = \ + _security_group_rules = ( compute_fakes.FakeSecurityGroupRule.create_security_group_rules( - count=2) + count=2 + ) + ) def setUp(self): super(TestDeleteSecurityGroupRuleCompute, self).setUp() @@ -278,8 +336,7 @@ class TestDeleteSecurityGroupRuleCompute(TestSecurityGroupRuleCompute): result = self.cmd.take_action(parsed_args) - sgr_mock.assert_called_once_with( - self._security_group_rules[0]['id']) + sgr_mock.assert_called_once_with(self._security_group_rules[0]['id']) self.assertIsNone(result) def test_security_group_rule_delete_multi(self, sgr_mock): @@ -307,8 +364,7 @@ class TestDeleteSecurityGroupRuleCompute(TestSecurityGroupRuleCompute): 'unexist_rule', ] verifylist = [ - ('rule', - [self._security_group_rules[0]['id'], 'unexist_rule']), + ('rule', [self._security_group_rules[0]['id'], 'unexist_rule']), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -321,36 +377,40 @@ class TestDeleteSecurityGroupRuleCompute(TestSecurityGroupRuleCompute): except exceptions.CommandError as e: self.assertEqual('1 of 2 rules failed to delete.', str(e)) - sgr_mock.assert_any_call( - self._security_group_rules[0]['id']) - sgr_mock.assert_any_call( - 'unexist_rule') + sgr_mock.assert_any_call(self._security_group_rules[0]['id']) + sgr_mock.assert_any_call('unexist_rule') class TestListSecurityGroupRuleCompute(TestSecurityGroupRuleCompute): - # The security group to hold the rules. - _security_group = \ + _security_group = ( compute_fakes.FakeSecurityGroup.create_one_security_group() + ) # The security group rule to be listed. - _security_group_rule_tcp = \ - compute_fakes.FakeSecurityGroupRule.create_one_security_group_rule({ - 'ip_protocol': 'tcp', - 'ethertype': 'IPv4', - 'from_port': 80, - 'to_port': 80, - 'group': {'name': _security_group['name']}, - }) - _security_group_rule_icmp = \ - compute_fakes.FakeSecurityGroupRule.create_one_security_group_rule({ - 'ip_protocol': 'icmp', - 'ethertype': 'IPv4', - 'from_port': -1, - 'to_port': -1, - 'ip_range': {'cidr': '10.0.2.0/24'}, - 'group': {'name': _security_group['name']}, - }) + _security_group_rule_tcp = ( + compute_fakes.FakeSecurityGroupRule.create_one_security_group_rule( + { + 'ip_protocol': 'tcp', + 'ethertype': 'IPv4', + 'from_port': 80, + 'to_port': 80, + 'group': {'name': _security_group['name']}, + } + ) + ) + _security_group_rule_icmp = ( + compute_fakes.FakeSecurityGroupRule.create_one_security_group_rule( + { + 'ip_protocol': 'icmp', + 'ethertype': 'IPv4', + 'from_port': -1, + 'to_port': -1, + 'ip_range': {'cidr': '10.0.2.0/24'}, + 'group': {'name': _security_group['name']}, + } + ) + ) _security_group['rules'] = [ _security_group_rule_tcp, _security_group_rule_icmp, @@ -365,8 +425,9 @@ class TestListSecurityGroupRuleCompute(TestSecurityGroupRuleCompute): 'Direction', 'Remote Security Group', ) - expected_columns_no_group = \ - expected_columns_with_group + ('Security Group',) + expected_columns_no_group = expected_columns_with_group + ( + 'Security Group', + ) expected_data_with_group = [] expected_data_no_group = [] @@ -382,8 +443,9 @@ class TestListSecurityGroupRuleCompute(TestSecurityGroupRuleCompute): rule['port_range'], rule['remote_security_group'], ) - expected_rule_no_group = expected_rule_with_group + \ - (_security_group_rule['parent_group_id'],) + expected_rule_no_group = expected_rule_with_group + ( + _security_group_rule['parent_group_id'], + ) expected_data_with_group.append(expected_rule_with_group) expected_data_no_group.append(expected_rule_no_group) @@ -462,14 +524,14 @@ class TestListSecurityGroupRuleCompute(TestSecurityGroupRuleCompute): class TestShowSecurityGroupRuleCompute(TestSecurityGroupRuleCompute): - # The security group rule to be shown. - _security_group_rule = \ + _security_group_rule = ( compute_fakes.FakeSecurityGroupRule.create_one_security_group_rule() + ) - columns, data = \ - security_group_rule._format_security_group_rule_show( - _security_group_rule) + columns, data = security_group_rule._format_security_group_rule_show( + _security_group_rule + ) def setUp(self): super(TestShowSecurityGroupRuleCompute, self).setUp() @@ -487,8 +549,9 @@ class TestShowSecurityGroupRuleCompute(TestSecurityGroupRuleCompute): self.cmd = security_group_rule.ShowSecurityGroupRule(self.app, None) def test_security_group_rule_show_no_options(self): - self.assertRaises(tests_utils.ParserException, - self.check_parser, self.cmd, [], []) + self.assertRaises( + tests_utils.ParserException, self.check_parser, self.cmd, [], [] + ) def test_security_group_rule_show_all_options(self): arglist = [ diff --git a/openstackclient/tests/unit/network/v2/test_security_group_rule_network.py b/openstackclient/tests/unit/network/v2/test_security_group_rule_network.py index 3c90f2814c..070851f56c 100644 --- a/openstackclient/tests/unit/network/v2/test_security_group_rule_network.py +++ b/openstackclient/tests/unit/network/v2/test_security_group_rule_network.py @@ -23,7 +23,6 @@ from openstackclient.tests.unit import utils as tests_utils class TestSecurityGroupRuleNetwork(network_fakes.TestNetworkV2): - def setUp(self): super(TestSecurityGroupRuleNetwork, self).setUp() @@ -36,15 +35,15 @@ class TestSecurityGroupRuleNetwork(network_fakes.TestNetworkV2): class TestCreateSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): - project = identity_fakes.FakeProject.create_one_project() domain = identity_fakes.FakeDomain.create_one_domain() # The security group rule to be created. _security_group_rule = None # The security group that will contain the rule created. - _security_group = \ + _security_group = ( network_fakes.FakeSecurityGroup.create_one_security_group() + ) # The address group to be used in security group rules _address_group = network_fakes.create_one_address_group() @@ -67,11 +66,14 @@ class TestCreateSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): expected_data = None def _setup_security_group_rule(self, attrs=None): - self._security_group_rule = \ + self._security_group_rule = ( network_fakes.FakeSecurityGroupRule.create_one_security_group_rule( - attrs) + attrs + ) + ) self.network.create_security_group_rule = mock.Mock( - return_value=self._security_group_rule) + return_value=self._security_group_rule + ) self.expected_data = ( self._security_group_rule.description, self._security_group_rule.direction, @@ -91,43 +93,62 @@ class TestCreateSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): super(TestCreateSecurityGroupRuleNetwork, self).setUp() self.network.find_security_group = mock.Mock( - return_value=self._security_group) + return_value=self._security_group + ) self.network.find_address_group = mock.Mock( - return_value=self._address_group) + return_value=self._address_group + ) self.projects_mock.get.return_value = self.project self.domains_mock.get.return_value = self.domain # Get the command object to test self.cmd = security_group_rule.CreateSecurityGroupRule( - self.app, self.namespace) + self.app, self.namespace + ) def test_create_no_options(self): - self.assertRaises(tests_utils.ParserException, - self.check_parser, self.cmd, [], []) + self.assertRaises( + tests_utils.ParserException, self.check_parser, self.cmd, [], [] + ) def test_create_all_remote_options(self): arglist = [ - '--remote-ip', '10.10.0.0/24', - '--remote-group', self._security_group.id, - '--remote-address-group', self._address_group.id, + '--remote-ip', + '10.10.0.0/24', + '--remote-group', + self._security_group.id, + '--remote-address-group', + self._address_group.id, self._security_group.id, ] - self.assertRaises(tests_utils.ParserException, - self.check_parser, self.cmd, arglist, []) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + [], + ) def test_create_bad_ethertype(self): arglist = [ - '--ethertype', 'foo', + '--ethertype', + 'foo', self._security_group.id, ] - self.assertRaises(tests_utils.ParserException, - self.check_parser, self.cmd, arglist, []) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + [], + ) def test_lowercase_ethertype(self): arglist = [ - '--ethertype', 'ipv4', + '--ethertype', + 'ipv4', self._security_group.id, ] parsed_args = self.check_parser(self.cmd, arglist, []) @@ -135,7 +156,8 @@ class TestCreateSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): def test_lowercase_v6_ethertype(self): arglist = [ - '--ethertype', 'ipv6', + '--ethertype', + 'ipv6', self._security_group.id, ] parsed_args = self.check_parser(self.cmd, arglist, []) @@ -143,7 +165,8 @@ class TestCreateSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): def test_proper_case_ethertype(self): arglist = [ - '--ethertype', 'IPv6', + '--ethertype', + 'IPv6', self._security_group.id, ] parsed_args = self.check_parser(self.cmd, arglist, []) @@ -151,18 +174,28 @@ class TestCreateSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): def test_create_all_protocol_options(self): arglist = [ - '--protocol', 'tcp', - '--proto', 'tcp', + '--protocol', + 'tcp', + '--proto', + 'tcp', self._security_group.id, ] - self.assertRaises(tests_utils.ParserException, - self.check_parser, self.cmd, arglist, []) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + [], + ) def test_create_all_port_range_options(self): arglist = [ - '--dst-port', '80:80', - '--icmp-type', '3', - '--icmp-code', '1', + '--dst-port', + '80:80', + '--icmp-type', + '3', + '--icmp-code', + '1', self._security_group.id, ] verifylist = [ @@ -172,49 +205,65 @@ class TestCreateSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): ('group', self._security_group.id), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.assertRaises(exceptions.CommandError, self.cmd.take_action, - parsed_args) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_create_default_rule(self): - self._setup_security_group_rule({ - 'protocol': 'tcp', - 'port_range_max': 443, - 'port_range_min': 443, - }) + self._setup_security_group_rule( + { + 'protocol': 'tcp', + 'port_range_max': 443, + 'port_range_min': 443, + } + ) arglist = [ - '--protocol', 'tcp', - '--dst-port', str(self._security_group_rule.port_range_min), + '--protocol', + 'tcp', + '--dst-port', + str(self._security_group_rule.port_range_min), self._security_group.id, ] verifylist = [ - ('dst_port', (self._security_group_rule.port_range_min, - self._security_group_rule.port_range_max)), + ( + 'dst_port', + ( + self._security_group_rule.port_range_min, + self._security_group_rule.port_range_max, + ), + ), ('group', self._security_group.id), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.create_security_group_rule.assert_called_once_with(**{ - 'direction': self._security_group_rule.direction, - 'ethertype': self._security_group_rule.ether_type, - 'port_range_max': self._security_group_rule.port_range_max, - 'port_range_min': self._security_group_rule.port_range_min, - 'protocol': self._security_group_rule.protocol, - 'remote_ip_prefix': self._security_group_rule.remote_ip_prefix, - 'security_group_id': self._security_group.id, - }) + self.network.create_security_group_rule.assert_called_once_with( + **{ + 'direction': self._security_group_rule.direction, + 'ethertype': self._security_group_rule.ether_type, + 'port_range_max': self._security_group_rule.port_range_max, + 'port_range_min': self._security_group_rule.port_range_min, + 'protocol': self._security_group_rule.protocol, + 'remote_ip_prefix': self._security_group_rule.remote_ip_prefix, + 'security_group_id': self._security_group.id, + } + ) self.assertEqual(self.expected_columns, columns) self.assertEqual(self.expected_data, data) def test_create_proto_option(self): - self._setup_security_group_rule({ - 'protocol': 'icmp', - 'remote_ip_prefix': '10.0.2.0/24', - }) + self._setup_security_group_rule( + { + 'protocol': 'icmp', + 'remote_ip_prefix': '10.0.2.0/24', + } + ) arglist = [ - '--proto', self._security_group_rule.protocol, - '--remote-ip', self._security_group_rule.remote_ip_prefix, + '--proto', + self._security_group_rule.protocol, + '--remote-ip', + self._security_group_rule.remote_ip_prefix, self._security_group.id, ] verifylist = [ @@ -227,24 +276,30 @@ class TestCreateSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): columns, data = self.cmd.take_action(parsed_args) - self.network.create_security_group_rule.assert_called_once_with(**{ - 'direction': self._security_group_rule.direction, - 'ethertype': self._security_group_rule.ether_type, - 'protocol': self._security_group_rule.protocol, - 'remote_ip_prefix': self._security_group_rule.remote_ip_prefix, - 'security_group_id': self._security_group.id, - }) + self.network.create_security_group_rule.assert_called_once_with( + **{ + 'direction': self._security_group_rule.direction, + 'ethertype': self._security_group_rule.ether_type, + 'protocol': self._security_group_rule.protocol, + 'remote_ip_prefix': self._security_group_rule.remote_ip_prefix, + 'security_group_id': self._security_group.id, + } + ) self.assertEqual(self.expected_columns, columns) self.assertEqual(self.expected_data, data) def test_create_protocol_any(self): - self._setup_security_group_rule({ - 'protocol': None, - 'remote_ip_prefix': '10.0.2.0/24', - }) + self._setup_security_group_rule( + { + 'protocol': None, + 'remote_ip_prefix': '10.0.2.0/24', + } + ) arglist = [ - '--proto', 'any', - '--remote-ip', self._security_group_rule.remote_ip_prefix, + '--proto', + 'any', + '--remote-ip', + self._security_group_rule.remote_ip_prefix, self._security_group.id, ] verifylist = [ @@ -257,24 +312,30 @@ class TestCreateSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): columns, data = self.cmd.take_action(parsed_args) - self.network.create_security_group_rule.assert_called_once_with(**{ - 'direction': self._security_group_rule.direction, - 'ethertype': self._security_group_rule.ether_type, - 'protocol': self._security_group_rule.protocol, - 'remote_ip_prefix': self._security_group_rule.remote_ip_prefix, - 'security_group_id': self._security_group.id, - }) + self.network.create_security_group_rule.assert_called_once_with( + **{ + 'direction': self._security_group_rule.direction, + 'ethertype': self._security_group_rule.ether_type, + 'protocol': self._security_group_rule.protocol, + 'remote_ip_prefix': self._security_group_rule.remote_ip_prefix, + 'security_group_id': self._security_group.id, + } + ) self.assertEqual(self.expected_columns, columns) self.assertEqual(self.expected_data, data) def test_create_remote_address_group(self): - self._setup_security_group_rule({ - 'protocol': 'icmp', - 'remote_address_group_id': self._address_group.id, - }) + self._setup_security_group_rule( + { + 'protocol': 'icmp', + 'remote_address_group_id': self._address_group.id, + } + ) arglist = [ - '--protocol', 'icmp', - '--remote-address-group', self._address_group.name, + '--protocol', + 'icmp', + '--remote-address-group', + self._address_group.name, self._security_group.id, ] verifylist = [ @@ -285,32 +346,44 @@ class TestCreateSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): columns, data = self.cmd.take_action(parsed_args) - self.network.create_security_group_rule.assert_called_once_with(**{ - 'direction': self._security_group_rule.direction, - 'ethertype': self._security_group_rule.ether_type, - 'protocol': self._security_group_rule.protocol, - 'remote_address_group_id': self._address_group.id, - 'security_group_id': self._security_group.id, - }) + self.network.create_security_group_rule.assert_called_once_with( + **{ + 'direction': self._security_group_rule.direction, + 'ethertype': self._security_group_rule.ether_type, + 'protocol': self._security_group_rule.protocol, + 'remote_address_group_id': self._address_group.id, + 'security_group_id': self._security_group.id, + } + ) self.assertEqual(self.expected_columns, columns) self.assertEqual(self.expected_data, data) def test_create_remote_group(self): - self._setup_security_group_rule({ - 'protocol': 'tcp', - 'port_range_max': 22, - 'port_range_min': 22, - }) + self._setup_security_group_rule( + { + 'protocol': 'tcp', + 'port_range_max': 22, + 'port_range_min': 22, + } + ) arglist = [ - '--protocol', 'tcp', - '--dst-port', str(self._security_group_rule.port_range_min), + '--protocol', + 'tcp', + '--dst-port', + str(self._security_group_rule.port_range_min), '--ingress', - '--remote-group', self._security_group.name, + '--remote-group', + self._security_group.name, self._security_group.id, ] verifylist = [ - ('dst_port', (self._security_group_rule.port_range_min, - self._security_group_rule.port_range_max)), + ( + 'dst_port', + ( + self._security_group_rule.port_range_min, + self._security_group_rule.port_range_max, + ), + ), ('ingress', True), ('remote_group', self._security_group.name), ('group', self._security_group.id), @@ -319,25 +392,30 @@ class TestCreateSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): columns, data = self.cmd.take_action(parsed_args) - self.network.create_security_group_rule.assert_called_once_with(**{ - 'direction': self._security_group_rule.direction, - 'ethertype': self._security_group_rule.ether_type, - 'port_range_max': self._security_group_rule.port_range_max, - 'port_range_min': self._security_group_rule.port_range_min, - 'protocol': self._security_group_rule.protocol, - 'remote_group_id': self._security_group.id, - 'security_group_id': self._security_group.id, - }) + self.network.create_security_group_rule.assert_called_once_with( + **{ + 'direction': self._security_group_rule.direction, + 'ethertype': self._security_group_rule.ether_type, + 'port_range_max': self._security_group_rule.port_range_max, + 'port_range_min': self._security_group_rule.port_range_min, + 'protocol': self._security_group_rule.protocol, + 'remote_group_id': self._security_group.id, + 'security_group_id': self._security_group.id, + } + ) self.assertEqual(self.expected_columns, columns) self.assertEqual(self.expected_data, data) def test_create_source_group(self): - self._setup_security_group_rule({ - 'remote_group_id': self._security_group.id, - }) + self._setup_security_group_rule( + { + 'remote_group_id': self._security_group.id, + } + ) arglist = [ '--ingress', - '--remote-group', self._security_group.name, + '--remote-group', + self._security_group.name, self._security_group.id, ] verifylist = [ @@ -349,24 +427,30 @@ class TestCreateSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): columns, data = self.cmd.take_action(parsed_args) - self.network.create_security_group_rule.assert_called_once_with(**{ - 'direction': self._security_group_rule.direction, - 'ethertype': self._security_group_rule.ether_type, - 'protocol': self._security_group_rule.protocol, - 'remote_group_id': self._security_group_rule.remote_group_id, - 'security_group_id': self._security_group.id, - }) + self.network.create_security_group_rule.assert_called_once_with( + **{ + 'direction': self._security_group_rule.direction, + 'ethertype': self._security_group_rule.ether_type, + 'protocol': self._security_group_rule.protocol, + 'remote_group_id': self._security_group_rule.remote_group_id, + 'security_group_id': self._security_group.id, + } + ) self.assertEqual(self.expected_columns, columns) self.assertEqual(self.expected_data, data) def test_create_source_ip(self): - self._setup_security_group_rule({ - 'protocol': 'icmp', - 'remote_ip_prefix': '10.0.2.0/24', - }) + self._setup_security_group_rule( + { + 'protocol': 'icmp', + 'remote_ip_prefix': '10.0.2.0/24', + } + ) arglist = [ - '--protocol', self._security_group_rule.protocol, - '--remote-ip', self._security_group_rule.remote_ip_prefix, + '--protocol', + self._security_group_rule.protocol, + '--remote-ip', + self._security_group_rule.remote_ip_prefix, self._security_group.id, ] verifylist = [ @@ -378,24 +462,30 @@ class TestCreateSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): columns, data = self.cmd.take_action(parsed_args) - self.network.create_security_group_rule.assert_called_once_with(**{ - 'direction': self._security_group_rule.direction, - 'ethertype': self._security_group_rule.ether_type, - 'protocol': self._security_group_rule.protocol, - 'remote_ip_prefix': self._security_group_rule.remote_ip_prefix, - 'security_group_id': self._security_group.id, - }) + self.network.create_security_group_rule.assert_called_once_with( + **{ + 'direction': self._security_group_rule.direction, + 'ethertype': self._security_group_rule.ether_type, + 'protocol': self._security_group_rule.protocol, + 'remote_ip_prefix': self._security_group_rule.remote_ip_prefix, + 'security_group_id': self._security_group.id, + } + ) self.assertEqual(self.expected_columns, columns) self.assertEqual(self.expected_data, data) def test_create_remote_ip(self): - self._setup_security_group_rule({ - 'protocol': 'icmp', - 'remote_ip_prefix': '10.0.2.0/24', - }) + self._setup_security_group_rule( + { + 'protocol': 'icmp', + 'remote_ip_prefix': '10.0.2.0/24', + } + ) arglist = [ - '--protocol', self._security_group_rule.protocol, - '--remote-ip', self._security_group_rule.remote_ip_prefix, + '--protocol', + self._security_group_rule.protocol, + '--remote-ip', + self._security_group_rule.remote_ip_prefix, self._security_group.id, ] verifylist = [ @@ -407,38 +497,52 @@ class TestCreateSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): columns, data = self.cmd.take_action(parsed_args) - self.network.create_security_group_rule.assert_called_once_with(**{ - 'direction': self._security_group_rule.direction, - 'ethertype': self._security_group_rule.ether_type, - 'protocol': self._security_group_rule.protocol, - 'remote_ip_prefix': self._security_group_rule.remote_ip_prefix, - 'security_group_id': self._security_group.id, - }) + self.network.create_security_group_rule.assert_called_once_with( + **{ + 'direction': self._security_group_rule.direction, + 'ethertype': self._security_group_rule.ether_type, + 'protocol': self._security_group_rule.protocol, + 'remote_ip_prefix': self._security_group_rule.remote_ip_prefix, + 'security_group_id': self._security_group.id, + } + ) self.assertEqual(self.expected_columns, columns) self.assertEqual(self.expected_data, data) def test_create_network_options(self): - self._setup_security_group_rule({ - 'direction': 'egress', - 'ether_type': 'IPv6', - 'port_range_max': 443, - 'port_range_min': 443, - 'protocol': '6', - 'remote_group_id': None, - 'remote_ip_prefix': '::/0', - }) + self._setup_security_group_rule( + { + 'direction': 'egress', + 'ether_type': 'IPv6', + 'port_range_max': 443, + 'port_range_min': 443, + 'protocol': '6', + 'remote_group_id': None, + 'remote_ip_prefix': '::/0', + } + ) arglist = [ - '--dst-port', str(self._security_group_rule.port_range_min), + '--dst-port', + str(self._security_group_rule.port_range_min), '--egress', - '--ethertype', self._security_group_rule.ether_type, - '--project', self.project.name, - '--project-domain', self.domain.name, - '--protocol', self._security_group_rule.protocol, + '--ethertype', + self._security_group_rule.ether_type, + '--project', + self.project.name, + '--project-domain', + self.domain.name, + '--protocol', + self._security_group_rule.protocol, self._security_group.id, ] verifylist = [ - ('dst_port', (self._security_group_rule.port_range_min, - self._security_group_rule.port_range_max)), + ( + 'dst_port', + ( + self._security_group_rule.port_range_min, + self._security_group_rule.port_range_max, + ), + ), ('egress', True), ('ethertype', self._security_group_rule.ether_type), ('project', self.project.name), @@ -450,23 +554,27 @@ class TestCreateSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): columns, data = self.cmd.take_action(parsed_args) - self.network.create_security_group_rule.assert_called_once_with(**{ - 'direction': self._security_group_rule.direction, - 'ethertype': self._security_group_rule.ether_type, - 'port_range_max': self._security_group_rule.port_range_max, - 'port_range_min': self._security_group_rule.port_range_min, - 'protocol': self._security_group_rule.protocol, - 'remote_ip_prefix': self._security_group_rule.remote_ip_prefix, - 'security_group_id': self._security_group.id, - 'project_id': self.project.id, - }) + self.network.create_security_group_rule.assert_called_once_with( + **{ + 'direction': self._security_group_rule.direction, + 'ethertype': self._security_group_rule.ether_type, + 'port_range_max': self._security_group_rule.port_range_max, + 'port_range_min': self._security_group_rule.port_range_min, + 'protocol': self._security_group_rule.protocol, + 'remote_ip_prefix': self._security_group_rule.remote_ip_prefix, + 'security_group_id': self._security_group.id, + 'project_id': self.project.id, + } + ) self.assertEqual(self.expected_columns, columns) self.assertEqual(self.expected_data, data) def test_create_tcp_with_icmp_type(self): arglist = [ - '--protocol', 'tcp', - '--icmp-type', '15', + '--protocol', + 'tcp', + '--icmp-type', + '15', self._security_group.id, ] verifylist = [ @@ -475,13 +583,16 @@ class TestCreateSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): ('group', self._security_group.id), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.assertRaises(exceptions.CommandError, self.cmd.take_action, - parsed_args) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_create_icmp_code(self): arglist = [ - '--protocol', '1', - '--icmp-code', '1', + '--protocol', + '1', + '--icmp-code', + '1', self._security_group.id, ] verifylist = [ @@ -490,20 +601,26 @@ class TestCreateSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): ('group', self._security_group.id), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.assertRaises(exceptions.CommandError, self.cmd.take_action, - parsed_args) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_create_icmp_code_zero(self): - self._setup_security_group_rule({ - 'port_range_min': 15, - 'port_range_max': 0, - 'protocol': 'icmp', - 'remote_ip_prefix': '0.0.0.0/0', - }) + self._setup_security_group_rule( + { + 'port_range_min': 15, + 'port_range_max': 0, + 'protocol': 'icmp', + 'remote_ip_prefix': '0.0.0.0/0', + } + ) arglist = [ - '--protocol', self._security_group_rule.protocol, - '--icmp-type', str(self._security_group_rule.port_range_min), - '--icmp-code', str(self._security_group_rule.port_range_max), + '--protocol', + self._security_group_rule.protocol, + '--icmp-type', + str(self._security_group_rule.port_range_min), + '--icmp-code', + str(self._security_group_rule.port_range_max), self._security_group.id, ] verifylist = [ @@ -518,16 +635,21 @@ class TestCreateSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): self.assertEqual(self.expected_data, data) def test_create_icmp_code_greater_than_zero(self): - self._setup_security_group_rule({ - 'port_range_min': 15, - 'port_range_max': 18, - 'protocol': 'icmp', - 'remote_ip_prefix': '0.0.0.0/0', - }) + self._setup_security_group_rule( + { + 'port_range_min': 15, + 'port_range_max': 18, + 'protocol': 'icmp', + 'remote_ip_prefix': '0.0.0.0/0', + } + ) arglist = [ - '--protocol', self._security_group_rule.protocol, - '--icmp-type', str(self._security_group_rule.port_range_min), - '--icmp-code', str(self._security_group_rule.port_range_max), + '--protocol', + self._security_group_rule.protocol, + '--icmp-type', + str(self._security_group_rule.port_range_min), + '--icmp-code', + str(self._security_group_rule.port_range_max), self._security_group.id, ] verifylist = [ @@ -542,16 +664,21 @@ class TestCreateSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): self.assertEqual(self.expected_data, data) def test_create_icmp_code_negative_value(self): - self._setup_security_group_rule({ - 'port_range_min': 15, - 'port_range_max': None, - 'protocol': 'icmp', - 'remote_ip_prefix': '0.0.0.0/0', - }) + self._setup_security_group_rule( + { + 'port_range_min': 15, + 'port_range_max': None, + 'protocol': 'icmp', + 'remote_ip_prefix': '0.0.0.0/0', + } + ) arglist = [ - '--protocol', self._security_group_rule.protocol, - '--icmp-type', str(self._security_group_rule.port_range_min), - '--icmp-code', '-2', + '--protocol', + self._security_group_rule.protocol, + '--icmp-type', + str(self._security_group_rule.port_range_min), + '--icmp-code', + '-2', self._security_group.id, ] verifylist = [ @@ -566,14 +693,18 @@ class TestCreateSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): self.assertEqual(self.expected_data, data) def test_create_icmp_type(self): - self._setup_security_group_rule({ - 'port_range_min': 15, - 'protocol': 'icmp', - 'remote_ip_prefix': '0.0.0.0/0', - }) + self._setup_security_group_rule( + { + 'port_range_min': 15, + 'protocol': 'icmp', + 'remote_ip_prefix': '0.0.0.0/0', + } + ) arglist = [ - '--icmp-type', str(self._security_group_rule.port_range_min), - '--protocol', self._security_group_rule.protocol, + '--icmp-type', + str(self._security_group_rule.port_range_min), + '--protocol', + self._security_group_rule.protocol, self._security_group.id, ] verifylist = [ @@ -587,26 +718,32 @@ class TestCreateSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): columns, data = self.cmd.take_action(parsed_args) - self.network.create_security_group_rule.assert_called_once_with(**{ - 'direction': self._security_group_rule.direction, - 'ethertype': self._security_group_rule.ether_type, - 'port_range_min': self._security_group_rule.port_range_min, - 'protocol': self._security_group_rule.protocol, - 'remote_ip_prefix': self._security_group_rule.remote_ip_prefix, - 'security_group_id': self._security_group.id, - }) + self.network.create_security_group_rule.assert_called_once_with( + **{ + 'direction': self._security_group_rule.direction, + 'ethertype': self._security_group_rule.ether_type, + 'port_range_min': self._security_group_rule.port_range_min, + 'protocol': self._security_group_rule.protocol, + 'remote_ip_prefix': self._security_group_rule.remote_ip_prefix, + 'security_group_id': self._security_group.id, + } + ) self.assertEqual(self.expected_columns, columns) self.assertEqual(self.expected_data, data) def test_create_icmp_type_zero(self): - self._setup_security_group_rule({ - 'port_range_min': 0, - 'protocol': 'icmp', - 'remote_ip_prefix': '0.0.0.0/0', - }) + self._setup_security_group_rule( + { + 'port_range_min': 0, + 'protocol': 'icmp', + 'remote_ip_prefix': '0.0.0.0/0', + } + ) arglist = [ - '--icmp-type', str(self._security_group_rule.port_range_min), - '--protocol', self._security_group_rule.protocol, + '--icmp-type', + str(self._security_group_rule.port_range_min), + '--protocol', + self._security_group_rule.protocol, self._security_group.id, ] verifylist = [ @@ -620,26 +757,32 @@ class TestCreateSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): columns, data = self.cmd.take_action(parsed_args) - self.network.create_security_group_rule.assert_called_once_with(**{ - 'direction': self._security_group_rule.direction, - 'ethertype': self._security_group_rule.ether_type, - 'port_range_min': self._security_group_rule.port_range_min, - 'protocol': self._security_group_rule.protocol, - 'remote_ip_prefix': self._security_group_rule.remote_ip_prefix, - 'security_group_id': self._security_group.id, - }) + self.network.create_security_group_rule.assert_called_once_with( + **{ + 'direction': self._security_group_rule.direction, + 'ethertype': self._security_group_rule.ether_type, + 'port_range_min': self._security_group_rule.port_range_min, + 'protocol': self._security_group_rule.protocol, + 'remote_ip_prefix': self._security_group_rule.remote_ip_prefix, + 'security_group_id': self._security_group.id, + } + ) self.assertEqual(self.expected_columns, columns) self.assertEqual(self.expected_data, data) def test_create_icmp_type_greater_than_zero(self): - self._setup_security_group_rule({ - 'port_range_min': 13, # timestamp - 'protocol': 'icmp', - 'remote_ip_prefix': '0.0.0.0/0', - }) + self._setup_security_group_rule( + { + 'port_range_min': 13, # timestamp + 'protocol': 'icmp', + 'remote_ip_prefix': '0.0.0.0/0', + } + ) arglist = [ - '--icmp-type', str(self._security_group_rule.port_range_min), - '--protocol', self._security_group_rule.protocol, + '--icmp-type', + str(self._security_group_rule.port_range_min), + '--protocol', + self._security_group_rule.protocol, self._security_group.id, ] verifylist = [ @@ -653,26 +796,32 @@ class TestCreateSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): columns, data = self.cmd.take_action(parsed_args) - self.network.create_security_group_rule.assert_called_once_with(**{ - 'direction': self._security_group_rule.direction, - 'ethertype': self._security_group_rule.ether_type, - 'port_range_min': self._security_group_rule.port_range_min, - 'protocol': self._security_group_rule.protocol, - 'remote_ip_prefix': self._security_group_rule.remote_ip_prefix, - 'security_group_id': self._security_group.id, - }) + self.network.create_security_group_rule.assert_called_once_with( + **{ + 'direction': self._security_group_rule.direction, + 'ethertype': self._security_group_rule.ether_type, + 'port_range_min': self._security_group_rule.port_range_min, + 'protocol': self._security_group_rule.protocol, + 'remote_ip_prefix': self._security_group_rule.remote_ip_prefix, + 'security_group_id': self._security_group.id, + } + ) self.assertEqual(self.expected_columns, columns) self.assertEqual(self.expected_data, data) def test_create_icmp_type_negative_value(self): - self._setup_security_group_rule({ - 'port_range_min': None, # timestamp - 'protocol': 'icmp', - 'remote_ip_prefix': '0.0.0.0/0', - }) + self._setup_security_group_rule( + { + 'port_range_min': None, # timestamp + 'protocol': 'icmp', + 'remote_ip_prefix': '0.0.0.0/0', + } + ) arglist = [ - '--icmp-type', '-13', - '--protocol', self._security_group_rule.protocol, + '--icmp-type', + '-13', + '--protocol', + self._security_group_rule.protocol, self._security_group.id, ] verifylist = [ @@ -686,28 +835,35 @@ class TestCreateSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): columns, data = self.cmd.take_action(parsed_args) - self.network.create_security_group_rule.assert_called_once_with(**{ - 'direction': self._security_group_rule.direction, - 'ethertype': self._security_group_rule.ether_type, - 'protocol': self._security_group_rule.protocol, - 'remote_ip_prefix': self._security_group_rule.remote_ip_prefix, - 'security_group_id': self._security_group.id, - }) + self.network.create_security_group_rule.assert_called_once_with( + **{ + 'direction': self._security_group_rule.direction, + 'ethertype': self._security_group_rule.ether_type, + 'protocol': self._security_group_rule.protocol, + 'remote_ip_prefix': self._security_group_rule.remote_ip_prefix, + 'security_group_id': self._security_group.id, + } + ) self.assertEqual(self.expected_columns, columns) self.assertEqual(self.expected_data, data) def test_create_ipv6_icmp_type_code(self): - self._setup_security_group_rule({ - 'ether_type': 'IPv6', - 'port_range_min': 139, - 'port_range_max': 2, - 'protocol': 'ipv6-icmp', - 'remote_ip_prefix': '::/0', - }) + self._setup_security_group_rule( + { + 'ether_type': 'IPv6', + 'port_range_min': 139, + 'port_range_max': 2, + 'protocol': 'ipv6-icmp', + 'remote_ip_prefix': '::/0', + } + ) arglist = [ - '--icmp-type', str(self._security_group_rule.port_range_min), - '--icmp-code', str(self._security_group_rule.port_range_max), - '--protocol', self._security_group_rule.protocol, + '--icmp-type', + str(self._security_group_rule.port_range_min), + '--icmp-code', + str(self._security_group_rule.port_range_max), + '--protocol', + self._security_group_rule.protocol, self._security_group.id, ] verifylist = [ @@ -721,28 +877,34 @@ class TestCreateSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): columns, data = self.cmd.take_action(parsed_args) - self.network.create_security_group_rule.assert_called_once_with(**{ - 'direction': self._security_group_rule.direction, - 'ethertype': self._security_group_rule.ether_type, - 'port_range_min': self._security_group_rule.port_range_min, - 'port_range_max': self._security_group_rule.port_range_max, - 'protocol': self._security_group_rule.protocol, - 'remote_ip_prefix': self._security_group_rule.remote_ip_prefix, - 'security_group_id': self._security_group.id, - }) + self.network.create_security_group_rule.assert_called_once_with( + **{ + 'direction': self._security_group_rule.direction, + 'ethertype': self._security_group_rule.ether_type, + 'port_range_min': self._security_group_rule.port_range_min, + 'port_range_max': self._security_group_rule.port_range_max, + 'protocol': self._security_group_rule.protocol, + 'remote_ip_prefix': self._security_group_rule.remote_ip_prefix, + 'security_group_id': self._security_group.id, + } + ) self.assertEqual(self.expected_columns, columns) self.assertEqual(self.expected_data, data) def test_create_icmpv6_type(self): - self._setup_security_group_rule({ - 'ether_type': 'IPv6', - 'port_range_min': 139, - 'protocol': 'icmpv6', - 'remote_ip_prefix': '::/0', - }) + self._setup_security_group_rule( + { + 'ether_type': 'IPv6', + 'port_range_min': 139, + 'protocol': 'icmpv6', + 'remote_ip_prefix': '::/0', + } + ) arglist = [ - '--icmp-type', str(self._security_group_rule.port_range_min), - '--protocol', self._security_group_rule.protocol, + '--icmp-type', + str(self._security_group_rule.port_range_min), + '--protocol', + self._security_group_rule.protocol, self._security_group.id, ] verifylist = [ @@ -756,23 +918,28 @@ class TestCreateSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): columns, data = self.cmd.take_action(parsed_args) - self.network.create_security_group_rule.assert_called_once_with(**{ - 'direction': self._security_group_rule.direction, - 'ethertype': self._security_group_rule.ether_type, - 'port_range_min': self._security_group_rule.port_range_min, - 'protocol': self._security_group_rule.protocol, - 'remote_ip_prefix': self._security_group_rule.remote_ip_prefix, - 'security_group_id': self._security_group.id, - }) + self.network.create_security_group_rule.assert_called_once_with( + **{ + 'direction': self._security_group_rule.direction, + 'ethertype': self._security_group_rule.ether_type, + 'port_range_min': self._security_group_rule.port_range_min, + 'protocol': self._security_group_rule.protocol, + 'remote_ip_prefix': self._security_group_rule.remote_ip_prefix, + 'security_group_id': self._security_group.id, + } + ) self.assertEqual(self.expected_columns, columns) self.assertEqual(self.expected_data, data) def test_create_with_description(self): - self._setup_security_group_rule({ - 'description': 'Setting SGR', - }) + self._setup_security_group_rule( + { + 'description': 'Setting SGR', + } + ) arglist = [ - '--description', self._security_group_rule.description, + '--description', + self._security_group_rule.description, self._security_group.id, ] verifylist = [ @@ -781,26 +948,29 @@ class TestCreateSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) - self.network.create_security_group_rule.assert_called_once_with(**{ - 'description': self._security_group_rule.description, - 'direction': self._security_group_rule.direction, - 'ethertype': self._security_group_rule.ether_type, - 'protocol': self._security_group_rule.protocol, - 'remote_ip_prefix': self._security_group_rule.remote_ip_prefix, - 'security_group_id': self._security_group.id, - }) + self.network.create_security_group_rule.assert_called_once_with( + **{ + 'description': self._security_group_rule.description, + 'direction': self._security_group_rule.direction, + 'ethertype': self._security_group_rule.ether_type, + 'protocol': self._security_group_rule.protocol, + 'remote_ip_prefix': self._security_group_rule.remote_ip_prefix, + 'security_group_id': self._security_group.id, + } + ) self.assertEqual(self.expected_columns, columns) self.assertEqual(self.expected_data, data) class TestDeleteSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): - # The security group rules to be deleted. - _security_group_rules = \ + _security_group_rules = ( network_fakes.FakeSecurityGroupRule.create_security_group_rules( - count=2) + count=2 + ) + ) def setUp(self): super(TestDeleteSecurityGroupRuleNetwork, self).setUp() @@ -809,12 +979,14 @@ class TestDeleteSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): self.network.find_security_group_rule = ( network_fakes.FakeSecurityGroupRule.get_security_group_rules( - self._security_group_rules) + self._security_group_rules + ) ) # Get the command object to test self.cmd = security_group_rule.DeleteSecurityGroupRule( - self.app, self.namespace) + self.app, self.namespace + ) def test_security_group_rule_delete(self): arglist = [ @@ -828,7 +1000,8 @@ class TestDeleteSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): result = self.cmd.take_action(parsed_args) self.network.delete_security_group_rule.assert_called_once_with( - self._security_group_rules[0]) + self._security_group_rules[0] + ) self.assertIsNone(result) def test_multi_security_group_rules_delete(self): @@ -856,15 +1029,16 @@ class TestDeleteSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): 'unexist_rule', ] verifylist = [ - ('rule', - [self._security_group_rules[0].id, 'unexist_rule']), + ('rule', [self._security_group_rules[0].id, 'unexist_rule']), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) find_mock_result = [ - self._security_group_rules[0], exceptions.CommandError] - self.network.find_security_group_rule = ( - mock.Mock(side_effect=find_mock_result) + self._security_group_rules[0], + exceptions.CommandError, + ] + self.network.find_security_group_rule = mock.Mock( + side_effect=find_mock_result ) try: @@ -874,38 +1048,50 @@ class TestDeleteSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): self.assertEqual('1 of 2 rules failed to delete.', str(e)) self.network.find_security_group_rule.assert_any_call( - self._security_group_rules[0].id, ignore_missing=False) + self._security_group_rules[0].id, ignore_missing=False + ) self.network.find_security_group_rule.assert_any_call( - 'unexist_rule', ignore_missing=False) + 'unexist_rule', ignore_missing=False + ) self.network.delete_security_group_rule.assert_called_once_with( self._security_group_rules[0] ) class TestListSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): - # The security group to hold the rules. - _security_group = \ + _security_group = ( network_fakes.FakeSecurityGroup.create_one_security_group() + ) # The security group rule to be listed. - _security_group_rule_tcp = \ - network_fakes.FakeSecurityGroupRule.create_one_security_group_rule({ - 'protocol': 'tcp', - 'port_range_max': 80, - 'port_range_min': 80, - 'security_group_id': _security_group.id, - }) - _security_group_rule_icmp = \ - network_fakes.FakeSecurityGroupRule.create_one_security_group_rule({ - 'protocol': 'icmp', - 'remote_ip_prefix': '10.0.2.0/24', - 'security_group_id': _security_group.id, - }) - _security_group.security_group_rules = [_security_group_rule_tcp._info, - _security_group_rule_icmp._info] - _security_group_rules = [_security_group_rule_tcp, - _security_group_rule_icmp] + _security_group_rule_tcp = ( + network_fakes.FakeSecurityGroupRule.create_one_security_group_rule( + { + 'protocol': 'tcp', + 'port_range_max': 80, + 'port_range_min': 80, + 'security_group_id': _security_group.id, + } + ) + ) + _security_group_rule_icmp = ( + network_fakes.FakeSecurityGroupRule.create_one_security_group_rule( + { + 'protocol': 'icmp', + 'remote_ip_prefix': '10.0.2.0/24', + 'security_group_id': _security_group.id, + } + ) + ) + _security_group.security_group_rules = [ + _security_group_rule_tcp._info, + _security_group_rule_icmp._info, + ] + _security_group_rules = [ + _security_group_rule_tcp, + _security_group_rule_icmp, + ] expected_columns_with_group = ( 'ID', @@ -932,41 +1118,50 @@ class TestListSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): expected_data_with_group = [] expected_data_no_group = [] for _security_group_rule in _security_group_rules: - expected_data_with_group.append(( - _security_group_rule.id, - _security_group_rule.protocol, - _security_group_rule.ether_type, - _security_group_rule.remote_ip_prefix, - security_group_rule._format_network_port_range( - _security_group_rule), - _security_group_rule.direction, - _security_group_rule.remote_group_id, - _security_group_rule.remote_address_group_id, - )) - expected_data_no_group.append(( - _security_group_rule.id, - _security_group_rule.protocol, - _security_group_rule.ether_type, - _security_group_rule.remote_ip_prefix, - security_group_rule._format_network_port_range( - _security_group_rule), - _security_group_rule.direction, - _security_group_rule.remote_group_id, - _security_group_rule.remote_address_group_id, - _security_group_rule.security_group_id, - )) + expected_data_with_group.append( + ( + _security_group_rule.id, + _security_group_rule.protocol, + _security_group_rule.ether_type, + _security_group_rule.remote_ip_prefix, + security_group_rule._format_network_port_range( + _security_group_rule + ), + _security_group_rule.direction, + _security_group_rule.remote_group_id, + _security_group_rule.remote_address_group_id, + ) + ) + expected_data_no_group.append( + ( + _security_group_rule.id, + _security_group_rule.protocol, + _security_group_rule.ether_type, + _security_group_rule.remote_ip_prefix, + security_group_rule._format_network_port_range( + _security_group_rule + ), + _security_group_rule.direction, + _security_group_rule.remote_group_id, + _security_group_rule.remote_address_group_id, + _security_group_rule.security_group_id, + ) + ) def setUp(self): super(TestListSecurityGroupRuleNetwork, self).setUp() self.network.find_security_group = mock.Mock( - return_value=self._security_group) + return_value=self._security_group + ) self.network.security_group_rules = mock.Mock( - return_value=self._security_group_rules) + return_value=self._security_group_rules + ) # Get the command object to test self.cmd = security_group_rule.ListSecurityGroupRule( - self.app, self.namespace) + self.app, self.namespace + ) def test_list_default(self): self._security_group_rule_tcp.port_range_min = 80 @@ -990,9 +1185,11 @@ class TestListSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): columns, data = self.cmd.take_action(parsed_args) - self.network.security_group_rules.assert_called_once_with(**{ - 'security_group_id': self._security_group.id, - }) + self.network.security_group_rules.assert_called_once_with( + **{ + 'security_group_id': self._security_group.id, + } + ) self.assertEqual(self.expected_columns_with_group, columns) self.assertEqual(self.expected_data_with_group, list(data)) @@ -1015,7 +1212,8 @@ class TestListSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): def test_list_with_protocol(self): self._security_group_rule_tcp.port_range_min = 80 arglist = [ - '--protocol', 'tcp', + '--protocol', + 'tcp', ] verifylist = [ ('protocol', 'tcp'), @@ -1024,9 +1222,11 @@ class TestListSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): columns, data = self.cmd.take_action(parsed_args) - self.network.security_group_rules.assert_called_once_with(**{ - 'protocol': 'tcp', - }) + self.network.security_group_rules.assert_called_once_with( + **{ + 'protocol': 'tcp', + } + ) self.assertEqual(self.expected_columns_no_group, columns) self.assertEqual(self.expected_data_no_group, list(data)) @@ -1042,9 +1242,11 @@ class TestListSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): columns, data = self.cmd.take_action(parsed_args) - self.network.security_group_rules.assert_called_once_with(**{ - 'direction': 'ingress', - }) + self.network.security_group_rules.assert_called_once_with( + **{ + 'direction': 'ingress', + } + ) self.assertEqual(self.expected_columns_no_group, columns) self.assertEqual(self.expected_data_no_group, list(data)) @@ -1060,18 +1262,20 @@ class TestListSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): columns, data = self.cmd.take_action(parsed_args) - self.network.security_group_rules.assert_called_once_with(**{ - 'direction': 'egress', - }) + self.network.security_group_rules.assert_called_once_with( + **{ + 'direction': 'egress', + } + ) self.assertEqual(self.expected_columns_no_group, columns) self.assertEqual(self.expected_data_no_group, list(data)) class TestShowSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): - # The security group rule to be shown. - _security_group_rule = \ + _security_group_rule = ( network_fakes.FakeSecurityGroupRule.create_one_security_group_rule() + ) columns = ( 'description', @@ -1107,15 +1311,18 @@ class TestShowSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): super(TestShowSecurityGroupRuleNetwork, self).setUp() self.network.find_security_group_rule = mock.Mock( - return_value=self._security_group_rule) + return_value=self._security_group_rule + ) # Get the command object to test self.cmd = security_group_rule.ShowSecurityGroupRule( - self.app, self.namespace) + self.app, self.namespace + ) def test_show_no_options(self): - self.assertRaises(tests_utils.ParserException, - self.check_parser, self.cmd, [], []) + self.assertRaises( + tests_utils.ParserException, self.check_parser, self.cmd, [], [] + ) def test_show_all_options(self): arglist = [ @@ -1129,6 +1336,7 @@ class TestShowSecurityGroupRuleNetwork(TestSecurityGroupRuleNetwork): columns, data = self.cmd.take_action(parsed_args) self.network.find_security_group_rule.assert_called_once_with( - self._security_group_rule.id, ignore_missing=False) + self._security_group_rule.id, ignore_missing=False + ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) diff --git a/openstackclient/tests/unit/network/v2/test_subnet.py b/openstackclient/tests/unit/network/v2/test_subnet.py index 7aaa583df8..45677f8121 100644 --- a/openstackclient/tests/unit/network/v2/test_subnet.py +++ b/openstackclient/tests/unit/network/v2/test_subnet.py @@ -24,7 +24,6 @@ from openstackclient.tests.unit import utils as tests_utils class TestSubnet(network_fakes.TestNetworkV2): - def setUp(self): super(TestSubnet, self).setUp() @@ -37,7 +36,6 @@ class TestSubnet(network_fakes.TestNetworkV2): class TestCreateSubnet(TestSubnet): - def _init_subnet_variables(self): self.project = identity_fakes_v3.FakeProject.create_one_project() self.domain = identity_fakes_v3.FakeDomain.create_one_domain() @@ -49,22 +47,24 @@ class TestCreateSubnet(TestSubnet): ) # Subnet pool to be used to create a subnet from a pool - self._subnet_pool = \ + self._subnet_pool = ( network_fakes.FakeSubnetPool.create_one_subnet_pool() + ) # An IPv4 subnet to be created using a specific subnet pool self._subnet_from_pool = network_fakes.FakeSubnet.create_one_subnet( attrs={ 'project_id': self.project.id, 'subnetpool_id': self._subnet_pool.id, - 'dns_nameservers': ['8.8.8.8', - '8.8.4.4'], - 'host_routes': [{'destination': '10.20.20.0/24', - 'nexthop': '10.20.20.1'}, - {'destination': '10.30.30.0/24', - 'nexthop': '10.30.30.1'}], - 'service_types': ['network:router_gateway', - 'network:floatingip_agent_gateway'], + 'dns_nameservers': ['8.8.8.8', '8.8.4.4'], + 'host_routes': [ + {'destination': '10.20.20.0/24', 'nexthop': '10.20.20.1'}, + {'destination': '10.30.30.0/24', 'nexthop': '10.30.30.1'}, + ], + 'service_types': [ + 'network:router_gateway', + 'network:floatingip_agent_gateway', + ], } ) @@ -74,23 +74,39 @@ class TestCreateSubnet(TestSubnet): 'project_id': self.project.id, 'cidr': 'fe80:0:0:a00a::/64', 'enable_dhcp': True, - 'dns_nameservers': ['fe80:27ff:a00a:f00f::ffff', - 'fe80:37ff:a00a:f00f::ffff'], - 'allocation_pools': [{'start': 'fe80::a00a:0:c0de:0:100', - 'end': 'fe80::a00a:0:c0de:0:f000'}, - {'start': 'fe80::a00a:0:c0de:1:100', - 'end': 'fe80::a00a:0:c0de:1:f000'}], - 'host_routes': [{'destination': 'fe80:27ff:a00a:f00f::/64', - 'nexthop': 'fe80:27ff:a00a:f00f::1'}, - {'destination': 'fe80:37ff:a00a:f00f::/64', - 'nexthop': 'fe80:37ff:a00a:f00f::1'}], + 'dns_nameservers': [ + 'fe80:27ff:a00a:f00f::ffff', + 'fe80:37ff:a00a:f00f::ffff', + ], + 'allocation_pools': [ + { + 'start': 'fe80::a00a:0:c0de:0:100', + 'end': 'fe80::a00a:0:c0de:0:f000', + }, + { + 'start': 'fe80::a00a:0:c0de:1:100', + 'end': 'fe80::a00a:0:c0de:1:f000', + }, + ], + 'host_routes': [ + { + 'destination': 'fe80:27ff:a00a:f00f::/64', + 'nexthop': 'fe80:27ff:a00a:f00f::1', + }, + { + 'destination': 'fe80:37ff:a00a:f00f::/64', + 'nexthop': 'fe80:37ff:a00a:f00f::1', + }, + ], 'ip_version': 6, 'gateway_ip': 'fe80::a00a:0:c0de:0:1', 'ipv6_address_mode': 'slaac', 'ipv6_ra_mode': 'slaac', 'subnetpool_id': 'None', - 'service_types': ['network:router_gateway', - 'network:floatingip_agent_gateway'], + 'service_types': [ + 'network:router_gateway', + 'network:floatingip_agent_gateway', + ], } ) @@ -102,12 +118,11 @@ class TestCreateSubnet(TestSubnet): ) # The network segment to be returned from find_segment - self._network_segment = \ - network_fakes.create_one_network_segment( - attrs={ - 'network_id': self._subnet.network_id, - } - ) + self._network_segment = network_fakes.create_one_network_segment( + attrs={ + 'network_id': self._subnet.network_id, + } + ) self.columns = ( 'allocation_pools', @@ -153,7 +168,8 @@ class TestCreateSubnet(TestSubnet): self.data_subnet_pool = ( subnet_v2.AllocationPoolsColumn( - self._subnet_from_pool.allocation_pools), + self._subnet_from_pool.allocation_pools + ), self._subnet_from_pool.cidr, self._subnet_from_pool.description, format_columns.ListColumn(self._subnet_from_pool.dns_nameservers), @@ -175,7 +191,8 @@ class TestCreateSubnet(TestSubnet): self.data_ipv6 = ( subnet_v2.AllocationPoolsColumn( - self._subnet_ipv6.allocation_pools), + self._subnet_ipv6.allocation_pools + ), self._subnet_ipv6.cidr, self._subnet_ipv6.description, format_columns.ListColumn(self._subnet_ipv6.dns_nameservers), @@ -222,8 +239,13 @@ class TestCreateSubnet(TestSubnet): # Testing that a call without the required argument will fail and # throw a "ParserExecption" - self.assertRaises(tests_utils.ParserException, - self.check_parser, self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) self.assertFalse(self.network.create_subnet.called) self.assertFalse(self.network.set_tags.called) @@ -232,8 +254,10 @@ class TestCreateSubnet(TestSubnet): self._network.id = self._subnet.network_id arglist = [ - "--subnet-range", self._subnet.cidr, - "--network", self._subnet.network_id, + "--subnet-range", + self._subnet.cidr, + "--network", + self._subnet.network_id, self._subnet.name, ] verifylist = [ @@ -247,12 +271,14 @@ class TestCreateSubnet(TestSubnet): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.create_subnet.assert_called_once_with(**{ - 'cidr': self._subnet.cidr, - 'ip_version': self._subnet.ip_version, - 'name': self._subnet.name, - 'network_id': self._subnet.network_id, - }) + self.network.create_subnet.assert_called_once_with( + **{ + 'cidr': self._subnet.cidr, + 'ip_version': self._subnet.ip_version, + 'name': self._subnet.name, + 'network_id': self._subnet.network_id, + } + ) self.assertFalse(self.network.set_tags.called) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, data) @@ -265,11 +291,16 @@ class TestCreateSubnet(TestSubnet): arglist = [ self._subnet_from_pool.name, - "--subnet-pool", self._subnet_from_pool.subnetpool_id, - "--prefix-length", '24', - "--network", self._subnet_from_pool.network_id, - "--ip-version", str(self._subnet_from_pool.ip_version), - "--gateway", self._subnet_from_pool.gateway_ip, + "--subnet-pool", + self._subnet_from_pool.subnetpool_id, + "--prefix-length", + '24', + "--network", + self._subnet_from_pool.network_id, + "--ip-version", + str(self._subnet_from_pool.ip_version), + "--gateway", + self._subnet_from_pool.gateway_ip, "--dhcp", ] @@ -279,8 +310,12 @@ class TestCreateSubnet(TestSubnet): for host_route in self._subnet_from_pool.host_routes: arglist.append('--host-route') - value = 'gateway=' + host_route.get('nexthop', '') + \ - ',destination=' + host_route.get('destination', '') + value = ( + 'gateway=' + + host_route.get('nexthop', '') + + ',destination=' + + host_route.get('destination', '') + ) arglist.append(value) for service_type in self._subnet_from_pool.service_types: @@ -295,8 +330,12 @@ class TestCreateSubnet(TestSubnet): ('gateway', self._subnet_from_pool.gateway_ip), ('dns_nameservers', self._subnet_from_pool.dns_nameservers), ('dhcp', self._subnet_from_pool.enable_dhcp), - ('host_routes', subnet_v2.convert_entries_to_gateway( - self._subnet_from_pool.host_routes)), + ( + 'host_routes', + subnet_v2.convert_entries_to_gateway( + self._subnet_from_pool.host_routes + ), + ), ('subnet_pool', self._subnet_from_pool.subnetpool_id), ('service_types', self._subnet_from_pool.service_types), ] @@ -304,18 +343,20 @@ class TestCreateSubnet(TestSubnet): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.create_subnet.assert_called_once_with(**{ - 'dns_nameservers': self._subnet_from_pool.dns_nameservers, - 'enable_dhcp': self._subnet_from_pool.enable_dhcp, - 'gateway_ip': self._subnet_from_pool.gateway_ip, - 'host_routes': self._subnet_from_pool.host_routes, - 'ip_version': self._subnet_from_pool.ip_version, - 'name': self._subnet_from_pool.name, - 'network_id': self._subnet_from_pool.network_id, - 'prefixlen': '24', - 'subnetpool_id': self._subnet_from_pool.subnetpool_id, - 'service_types': self._subnet_from_pool.service_types, - }) + self.network.create_subnet.assert_called_once_with( + **{ + 'dns_nameservers': self._subnet_from_pool.dns_nameservers, + 'enable_dhcp': self._subnet_from_pool.enable_dhcp, + 'gateway_ip': self._subnet_from_pool.gateway_ip, + 'host_routes': self._subnet_from_pool.host_routes, + 'ip_version': self._subnet_from_pool.ip_version, + 'name': self._subnet_from_pool.name, + 'network_id': self._subnet_from_pool.network_id, + 'prefixlen': '24', + 'subnetpool_id': self._subnet_from_pool.subnetpool_id, + 'service_types': self._subnet_from_pool.service_types, + } + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data_subnet_pool, data) @@ -326,12 +367,18 @@ class TestCreateSubnet(TestSubnet): arglist = [ self._subnet_ipv6.name, - "--subnet-range", self._subnet_ipv6.cidr, - "--network", self._subnet_ipv6.network_id, - "--ip-version", str(self._subnet_ipv6.ip_version), - "--ipv6-ra-mode", self._subnet_ipv6.ipv6_ra_mode, - "--ipv6-address-mode", self._subnet_ipv6.ipv6_address_mode, - "--gateway", self._subnet_ipv6.gateway_ip, + "--subnet-range", + self._subnet_ipv6.cidr, + "--network", + self._subnet_ipv6.network_id, + "--ip-version", + str(self._subnet_ipv6.ip_version), + "--ipv6-ra-mode", + self._subnet_ipv6.ipv6_ra_mode, + "--ipv6-address-mode", + self._subnet_ipv6.ipv6_address_mode, + "--gateway", + self._subnet_ipv6.gateway_ip, "--dhcp", ] @@ -341,14 +388,22 @@ class TestCreateSubnet(TestSubnet): for host_route in self._subnet_ipv6.host_routes: arglist.append('--host-route') - value = 'gateway=' + host_route.get('nexthop', '') + \ - ',destination=' + host_route.get('destination', '') + value = ( + 'gateway=' + + host_route.get('nexthop', '') + + ',destination=' + + host_route.get('destination', '') + ) arglist.append(value) for pool in self._subnet_ipv6.allocation_pools: arglist.append('--allocation-pool') - value = 'start=' + pool.get('start', '') + \ - ',end=' + pool.get('end', '') + value = ( + 'start=' + + pool.get('start', '') + + ',end=' + + pool.get('end', '') + ) arglist.append(value) for service_type in self._subnet_ipv6.service_types: @@ -365,8 +420,12 @@ class TestCreateSubnet(TestSubnet): ('gateway', self._subnet_ipv6.gateway_ip), ('dns_nameservers', self._subnet_ipv6.dns_nameservers), ('dhcp', self._subnet_ipv6.enable_dhcp), - ('host_routes', subnet_v2.convert_entries_to_gateway( - self._subnet_ipv6.host_routes)), + ( + 'host_routes', + subnet_v2.convert_entries_to_gateway( + self._subnet_ipv6.host_routes + ), + ), ('allocation_pools', self._subnet_ipv6.allocation_pools), ('service_types', self._subnet_ipv6.service_types), ] @@ -374,20 +433,22 @@ class TestCreateSubnet(TestSubnet): parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.create_subnet.assert_called_once_with(**{ - 'cidr': self._subnet_ipv6.cidr, - 'dns_nameservers': self._subnet_ipv6.dns_nameservers, - 'enable_dhcp': self._subnet_ipv6.enable_dhcp, - 'gateway_ip': self._subnet_ipv6.gateway_ip, - 'host_routes': self._subnet_ipv6.host_routes, - 'ip_version': self._subnet_ipv6.ip_version, - 'ipv6_address_mode': self._subnet_ipv6.ipv6_address_mode, - 'ipv6_ra_mode': self._subnet_ipv6.ipv6_ra_mode, - 'name': self._subnet_ipv6.name, - 'network_id': self._subnet_ipv6.network_id, - 'allocation_pools': self._subnet_ipv6.allocation_pools, - 'service_types': self._subnet_ipv6.service_types, - }) + self.network.create_subnet.assert_called_once_with( + **{ + 'cidr': self._subnet_ipv6.cidr, + 'dns_nameservers': self._subnet_ipv6.dns_nameservers, + 'enable_dhcp': self._subnet_ipv6.enable_dhcp, + 'gateway_ip': self._subnet_ipv6.gateway_ip, + 'host_routes': self._subnet_ipv6.host_routes, + 'ip_version': self._subnet_ipv6.ip_version, + 'ipv6_address_mode': self._subnet_ipv6.ipv6_address_mode, + 'ipv6_ra_mode': self._subnet_ipv6.ipv6_ra_mode, + 'name': self._subnet_ipv6.name, + 'network_id': self._subnet_ipv6.network_id, + 'allocation_pools': self._subnet_ipv6.allocation_pools, + 'service_types': self._subnet_ipv6.service_types, + } + ) self.assertFalse(self.network.set_tags.called) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data_ipv6, data) @@ -397,9 +458,12 @@ class TestCreateSubnet(TestSubnet): self._network.id = self._subnet.network_id arglist = [ - "--subnet-range", self._subnet.cidr, - "--network-segment", self._network_segment.id, - "--network", self._subnet.network_id, + "--subnet-range", + self._subnet.cidr, + "--network-segment", + self._network_segment.id, + "--network", + self._subnet.network_id, self._subnet.name, ] verifylist = [ @@ -409,19 +473,20 @@ class TestCreateSubnet(TestSubnet): ('network', self._subnet.network_id), ('ip_version', self._subnet.ip_version), ('gateway', 'auto'), - ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.create_subnet.assert_called_once_with(**{ - 'cidr': self._subnet.cidr, - 'ip_version': self._subnet.ip_version, - 'name': self._subnet.name, - 'network_id': self._subnet.network_id, - 'segment_id': self._network_segment.id, - }) + self.network.create_subnet.assert_called_once_with( + **{ + 'cidr': self._subnet.cidr, + 'ip_version': self._subnet.ip_version, + 'name': self._subnet.name, + 'network_id': self._subnet.network_id, + 'segment_id': self._network_segment.id, + } + ) self.assertFalse(self.network.set_tags.called) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, data) @@ -431,9 +496,12 @@ class TestCreateSubnet(TestSubnet): self._network.id = self._subnet.network_id arglist = [ - "--subnet-range", self._subnet.cidr, - "--network", self._subnet.network_id, - "--description", self._subnet.description, + "--subnet-range", + self._subnet.cidr, + "--network", + self._subnet.network_id, + "--description", + self._subnet.description, self._subnet.name, ] verifylist = [ @@ -443,27 +511,30 @@ class TestCreateSubnet(TestSubnet): ('network', self._subnet.network_id), ('ip_version', self._subnet.ip_version), ('gateway', 'auto'), - ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - self.network.create_subnet.assert_called_once_with(**{ - 'cidr': self._subnet.cidr, - 'ip_version': self._subnet.ip_version, - 'name': self._subnet.name, - 'network_id': self._subnet.network_id, - 'description': self._subnet.description, - }) + self.network.create_subnet.assert_called_once_with( + **{ + 'cidr': self._subnet.cidr, + 'ip_version': self._subnet.ip_version, + 'name': self._subnet.name, + 'network_id': self._subnet.network_id, + 'description': self._subnet.description, + } + ) self.assertFalse(self.network.set_tags.called) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, data) def _test_create_with_dns(self, publish_dns=True): arglist = [ - "--subnet-range", self._subnet.cidr, - "--network", self._subnet.network_id, + "--subnet-range", + self._subnet.cidr, + "--network", + self._subnet.network_id, self._subnet.name, ] if publish_dns: @@ -480,7 +551,7 @@ class TestCreateSubnet(TestSubnet): verifylist.append(('dns_publish_fixed_ip', publish_dns)) parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) self.network.create_subnet.assert_called_once_with( cidr=self._subnet.cidr, @@ -500,8 +571,10 @@ class TestCreateSubnet(TestSubnet): def _test_create_with_tag(self, add_tags=True): arglist = [ - "--subnet-range", self._subnet.cidr, - "--network", self._subnet.network_id, + "--subnet-range", + self._subnet.cidr, + "--network", + self._subnet.network_id, self._subnet.name, ] if add_tags: @@ -521,17 +594,18 @@ class TestCreateSubnet(TestSubnet): verifylist.append(('no_tag', True)) parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) self.network.create_subnet.assert_called_once_with( cidr=self._subnet.cidr, ip_version=self._subnet.ip_version, name=self._subnet.name, - network_id=self._subnet.network_id) + network_id=self._subnet.network_id, + ) if add_tags: self.network.set_tags.assert_called_once_with( - self._subnet, - tests_utils.CompareBySet(['red', 'blue'])) + self._subnet, tests_utils.CompareBySet(['red', 'blue']) + ) else: self.assertFalse(self.network.set_tags.called) self.assertEqual(self.columns, columns) @@ -545,7 +619,6 @@ class TestCreateSubnet(TestSubnet): class TestDeleteSubnet(TestSubnet): - # The subnets to delete. _subnets = network_fakes.FakeSubnet.create_subnets(count=2) @@ -554,8 +627,9 @@ class TestDeleteSubnet(TestSubnet): self.network.delete_subnet = mock.Mock(return_value=None) - self.network.find_subnet = ( - network_fakes.FakeSubnet.get_subnets(self._subnets)) + self.network.find_subnet = network_fakes.FakeSubnet.get_subnets( + self._subnets + ) # Get the command object to test self.cmd = subnet_v2.DeleteSubnet(self.app, self.namespace) @@ -598,15 +672,12 @@ class TestDeleteSubnet(TestSubnet): 'unexist_subnet', ] verifylist = [ - ('subnet', - [self._subnets[0].name, 'unexist_subnet']), + ('subnet', [self._subnets[0].name, 'unexist_subnet']), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) find_mock_result = [self._subnets[0], exceptions.CommandError] - self.network.find_subnet = ( - mock.Mock(side_effect=find_mock_result) - ) + self.network.find_subnet = mock.Mock(side_effect=find_mock_result) try: self.cmd.take_action(parsed_args) @@ -615,12 +686,12 @@ class TestDeleteSubnet(TestSubnet): self.assertEqual('1 of 2 subnets failed to delete.', str(e)) self.network.find_subnet.assert_any_call( - self._subnets[0].name, ignore_missing=False) - self.network.find_subnet.assert_any_call( - 'unexist_subnet', ignore_missing=False) - self.network.delete_subnet.assert_called_once_with( - self._subnets[0] + self._subnets[0].name, ignore_missing=False ) + self.network.find_subnet.assert_any_call( + 'unexist_subnet', ignore_missing=False + ) + self.network.delete_subnet.assert_called_once_with(self._subnets[0]) class TestListSubnet(TestSubnet): @@ -647,30 +718,34 @@ class TestListSubnet(TestSubnet): data = [] for subnet in _subnet: - data.append(( - subnet.id, - subnet.name, - subnet.network_id, - subnet.cidr, - )) + data.append( + ( + subnet.id, + subnet.name, + subnet.network_id, + subnet.cidr, + ) + ) data_long = [] for subnet in _subnet: - data_long.append(( - subnet.id, - subnet.name, - subnet.network_id, - subnet.cidr, - subnet.project_id, - subnet.enable_dhcp, - format_columns.ListColumn(subnet.dns_nameservers), - subnet_v2.AllocationPoolsColumn(subnet.allocation_pools), - subnet_v2.HostRoutesColumn(subnet.host_routes), - subnet.ip_version, - subnet.gateway_ip, - format_columns.ListColumn(subnet.service_types), - format_columns.ListColumn(subnet.tags), - )) + data_long.append( + ( + subnet.id, + subnet.name, + subnet.network_id, + subnet.cidr, + subnet.project_id, + subnet.enable_dhcp, + format_columns.ListColumn(subnet.dns_nameservers), + subnet_v2.AllocationPoolsColumn(subnet.allocation_pools), + subnet_v2.HostRoutesColumn(subnet.host_routes), + subnet.ip_version, + subnet.gateway_ip, + format_columns.ListColumn(subnet.service_types), + format_columns.ListColumn(subnet.tags), + ) + ) def setUp(self): super(TestListSubnet, self).setUp() @@ -710,7 +785,8 @@ class TestListSubnet(TestSubnet): def test_subnet_list_ip_version(self): arglist = [ - '--ip-version', str(4), + '--ip-version', + str(4), ] verifylist = [ ('ip_version', 4), @@ -758,7 +834,8 @@ class TestListSubnet(TestSubnet): def test_subnet_list_service_type(self): arglist = [ - '--service-type', 'network:router_gateway', + '--service-type', + 'network:router_gateway', ] verifylist = [ ('service_types', ['network:router_gateway']), @@ -775,7 +852,8 @@ class TestListSubnet(TestSubnet): project = identity_fakes_v3.FakeProject.create_one_project() self.projects_mock.get.return_value = project arglist = [ - '--project', project.id, + '--project', + project.id, ] verifylist = [ ('project', project.id), @@ -791,18 +869,26 @@ class TestListSubnet(TestSubnet): def test_subnet_list_service_type_multiple(self): arglist = [ - '--service-type', 'network:router_gateway', - '--service-type', 'network:floatingip_agent_gateway', + '--service-type', + 'network:router_gateway', + '--service-type', + 'network:floatingip_agent_gateway', ] verifylist = [ - ('service_types', ['network:router_gateway', - 'network:floatingip_agent_gateway']), + ( + 'service_types', + ['network:router_gateway', 'network:floatingip_agent_gateway'], + ), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) - filters = {'service_types': ['network:router_gateway', - 'network:floatingip_agent_gateway']} + filters = { + 'service_types': [ + 'network:router_gateway', + 'network:floatingip_agent_gateway', + ] + } self.network.subnets.assert_called_once_with(**filters) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) @@ -811,8 +897,10 @@ class TestListSubnet(TestSubnet): project = identity_fakes_v3.FakeProject.create_one_project() self.projects_mock.get.return_value = project arglist = [ - '--project', project.id, - '--project-domain', project.domain_id, + '--project', + project.id, + '--project-domain', + project.domain_id, ] verifylist = [ ('project', project.id), @@ -831,7 +919,8 @@ class TestListSubnet(TestSubnet): network = network_fakes.create_one_network() self.network.find_network = mock.Mock(return_value=network) arglist = [ - '--network', network.id, + '--network', + network.id, ] verifylist = [ ('network', network.id), @@ -849,7 +938,8 @@ class TestListSubnet(TestSubnet): subnet = network_fakes.FakeSubnet.create_one_subnet() self.network.find_network = mock.Mock(return_value=subnet) arglist = [ - '--gateway', subnet.gateway_ip, + '--gateway', + subnet.gateway_ip, ] verifylist = [ ('gateway', subnet.gateway_ip), @@ -867,7 +957,8 @@ class TestListSubnet(TestSubnet): subnet = network_fakes.FakeSubnet.create_one_subnet() self.network.find_network = mock.Mock(return_value=subnet) arglist = [ - '--name', subnet.name, + '--name', + subnet.name, ] verifylist = [ ('name', subnet.name), @@ -885,7 +976,8 @@ class TestListSubnet(TestSubnet): subnet = network_fakes.FakeSubnet.create_one_subnet() self.network.find_network = mock.Mock(return_value=subnet) arglist = [ - '--subnet-range', subnet.cidr, + '--subnet-range', + subnet.cidr, ] verifylist = [ ('subnet_range', subnet.cidr), @@ -902,11 +994,13 @@ class TestListSubnet(TestSubnet): def test_subnet_list_subnetpool_by_name(self): subnet_pool = network_fakes.FakeSubnetPool.create_one_subnet_pool() subnet = network_fakes.FakeSubnet.create_one_subnet( - {'subnetpool_id': subnet_pool.id}) + {'subnetpool_id': subnet_pool.id} + ) self.network.find_network = mock.Mock(return_value=subnet) self.network.find_subnet_pool = mock.Mock(return_value=subnet_pool) arglist = [ - '--subnet-pool', subnet_pool.name, + '--subnet-pool', + subnet_pool.name, ] verifylist = [ ('subnet_pool', subnet_pool.name), @@ -923,11 +1017,13 @@ class TestListSubnet(TestSubnet): def test_subnet_list_subnetpool_by_id(self): subnet_pool = network_fakes.FakeSubnetPool.create_one_subnet_pool() subnet = network_fakes.FakeSubnet.create_one_subnet( - {'subnetpool_id': subnet_pool.id}) + {'subnetpool_id': subnet_pool.id} + ) self.network.find_network = mock.Mock(return_value=subnet) self.network.find_subnet_pool = mock.Mock(return_value=subnet_pool) arglist = [ - '--subnet-pool', subnet_pool.id, + '--subnet-pool', + subnet_pool.id, ] verifylist = [ ('subnet_pool', subnet_pool.id), @@ -943,10 +1039,14 @@ class TestListSubnet(TestSubnet): def test_list_with_tag_options(self): arglist = [ - '--tags', 'red,blue', - '--any-tags', 'red,green', - '--not-tags', 'orange,yellow', - '--not-any-tags', 'black,white', + '--tags', + 'red,blue', + '--any-tags', + 'red,green', + '--not-tags', + 'orange,yellow', + '--not-any-tags', + 'black,white', ] verifylist = [ ('tags', ['red', 'blue']), @@ -958,19 +1058,21 @@ class TestListSubnet(TestSubnet): columns, data = self.cmd.take_action(parsed_args) self.network.subnets.assert_called_once_with( - **{'tags': 'red,blue', - 'any_tags': 'red,green', - 'not_tags': 'orange,yellow', - 'not_any_tags': 'black,white'} + **{ + 'tags': 'red,blue', + 'any_tags': 'red,green', + 'not_tags': 'orange,yellow', + 'not_any_tags': 'black,white', + } ) self.assertEqual(self.columns, columns) self.assertEqual(self.data, list(data)) class TestSetSubnet(TestSubnet): - _subnet = network_fakes.FakeSubnet.create_one_subnet( - {'tags': ['green', 'red']}) + {'tags': ['green', 'red']} + ) def setUp(self): super(TestSetSubnet, self).setUp() @@ -981,9 +1083,11 @@ class TestSetSubnet(TestSubnet): def test_set_this(self): arglist = [ - "--name", "new_subnet", + "--name", + "new_subnet", "--dhcp", - "--gateway", self._subnet.gateway_ip, + "--gateway", + self._subnet.gateway_ip, self._subnet.name, ] verifylist = [ @@ -1005,9 +1109,11 @@ class TestSetSubnet(TestSubnet): def test_set_that(self): arglist = [ - "--name", "new_subnet", + "--name", + "new_subnet", "--no-dhcp", - "--gateway", "none", + "--gateway", + "none", self._subnet.name, ] verifylist = [ @@ -1028,7 +1134,9 @@ class TestSetSubnet(TestSubnet): self.assertIsNone(result) def test_set_nothing(self): - arglist = [self._subnet.name, ] + arglist = [ + self._subnet.name, + ] verifylist = [('subnet', self._subnet.name)] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -1040,12 +1148,17 @@ class TestSetSubnet(TestSubnet): def test_append_options(self): _testsubnet = network_fakes.FakeSubnet.create_one_subnet( - {'dns_nameservers': ["10.0.0.1"], - 'service_types': ["network:router_gateway"]}) + { + 'dns_nameservers': ["10.0.0.1"], + 'service_types': ["network:router_gateway"], + } + ) self.network.find_subnet = mock.Mock(return_value=_testsubnet) arglist = [ - '--dns-nameserver', '10.0.0.2', - '--service-type', 'network:floatingip_agent_gateway', + '--dns-nameserver', + '10.0.0.2', + '--service-type', + 'network:floatingip_agent_gateway', _testsubnet.name, ] verifylist = [ @@ -1056,18 +1169,23 @@ class TestSetSubnet(TestSubnet): result = self.cmd.take_action(parsed_args) attrs = { 'dns_nameservers': ['10.0.0.2', '10.0.0.1'], - 'service_types': ['network:floatingip_agent_gateway', - 'network:router_gateway'], + 'service_types': [ + 'network:floatingip_agent_gateway', + 'network:router_gateway', + ], } self.network.update_subnet.assert_called_once_with( - _testsubnet, **attrs) + _testsubnet, **attrs + ) self.assertIsNone(result) def test_set_non_append_options(self): arglist = [ - "--description", "new_description", + "--description", + "new_description", "--dhcp", - "--gateway", self._subnet.gateway_ip, + "--gateway", + self._subnet.gateway_ip, self._subnet.name, ] verifylist = [ @@ -1089,26 +1207,35 @@ class TestSetSubnet(TestSubnet): def test_overwrite_options(self): _testsubnet = network_fakes.FakeSubnet.create_one_subnet( - {'host_routes': [{'destination': '10.20.20.0/24', - 'nexthop': '10.20.20.1'}], - 'allocation_pools': [{'start': '8.8.8.200', - 'end': '8.8.8.250'}], - 'dns_nameservers': ["10.0.0.1"], }) + { + 'host_routes': [ + {'destination': '10.20.20.0/24', 'nexthop': '10.20.20.1'} + ], + 'allocation_pools': [ + {'start': '8.8.8.200', 'end': '8.8.8.250'} + ], + 'dns_nameservers': ["10.0.0.1"], + } + ) self.network.find_subnet = mock.Mock(return_value=_testsubnet) arglist = [ - '--host-route', 'destination=10.30.30.30/24,gateway=10.30.30.1', + '--host-route', + 'destination=10.30.30.30/24,gateway=10.30.30.1', '--no-host-route', - '--allocation-pool', 'start=8.8.8.100,end=8.8.8.150', + '--allocation-pool', + 'start=8.8.8.100,end=8.8.8.150', '--no-allocation-pool', - '--dns-nameserver', '10.1.10.1', + '--dns-nameserver', + '10.1.10.1', '--no-dns-nameservers', _testsubnet.name, ] verifylist = [ - ('host_routes', [{ - "destination": "10.30.30.30/24", "gateway": "10.30.30.1"}]), - ('allocation_pools', [{ - 'start': '8.8.8.100', 'end': '8.8.8.150'}]), + ( + 'host_routes', + [{"destination": "10.30.30.30/24", "gateway": "10.30.30.1"}], + ), + ('allocation_pools', [{'start': '8.8.8.100', 'end': '8.8.8.150'}]), ('dns_nameservers', ['10.1.10.1']), ('no_dns_nameservers', True), ('no_host_route', True), @@ -1117,22 +1244,29 @@ class TestSetSubnet(TestSubnet): parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) attrs = { - 'host_routes': [{ - "destination": "10.30.30.30/24", "nexthop": "10.30.30.1"}], + 'host_routes': [ + {"destination": "10.30.30.30/24", "nexthop": "10.30.30.1"} + ], 'allocation_pools': [{'start': '8.8.8.100', 'end': '8.8.8.150'}], 'dns_nameservers': ["10.1.10.1"], } self.network.update_subnet.assert_called_once_with( - _testsubnet, **attrs) + _testsubnet, **attrs + ) self.assertIsNone(result) def test_clear_options(self): _testsubnet = network_fakes.FakeSubnet.create_one_subnet( - {'host_routes': [{'destination': '10.20.20.0/24', - 'nexthop': '10.20.20.1'}], - 'allocation_pools': [{'start': '8.8.8.200', - 'end': '8.8.8.250'}], - 'dns_nameservers': ['10.0.0.1'], }) + { + 'host_routes': [ + {'destination': '10.20.20.0/24', 'nexthop': '10.20.20.1'} + ], + 'allocation_pools': [ + {'start': '8.8.8.200', 'end': '8.8.8.250'} + ], + 'dns_nameservers': ['10.0.0.1'], + } + ) self.network.find_subnet = mock.Mock(return_value=_testsubnet) arglist = [ '--no-host-route', @@ -1153,7 +1287,8 @@ class TestSetSubnet(TestSubnet): 'dns_nameservers': [], } self.network.update_subnet.assert_called_once_with( - _testsubnet, **attrs) + _testsubnet, **attrs + ) self.assertIsNone(result) def _test_set_tags(self, with_tags=True): @@ -1166,16 +1301,15 @@ class TestSetSubnet(TestSubnet): verifylist = [('no_tag', True)] expected_args = [] arglist.append(self._subnet.name) - verifylist.append( - ('subnet', self._subnet.name)) + verifylist.append(('subnet', self._subnet.name)) parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.assertFalse(self.network.update_subnet.called) self.network.set_tags.assert_called_once_with( - self._subnet, - tests_utils.CompareBySet(expected_args)) + self._subnet, tests_utils.CompareBySet(expected_args) + ) self.assertIsNone(result) def test_set_with_tags(self): @@ -1187,15 +1321,21 @@ class TestSetSubnet(TestSubnet): def test_set_segment(self): _net = network_fakes.create_one_network() _segment = network_fakes.create_one_network_segment( - attrs={'network_id': _net.id}) + attrs={'network_id': _net.id} + ) _subnet = network_fakes.FakeSubnet.create_one_subnet( - {'host_routes': [{'destination': '10.20.20.0/24', - 'nexthop': '10.20.20.1'}], - 'allocation_pools': [{'start': '8.8.8.200', - 'end': '8.8.8.250'}], - 'dns_nameservers': ["10.0.0.1"], - 'network_id': _net.id, - 'segment_id': None}) + { + 'host_routes': [ + {'destination': '10.20.20.0/24', 'nexthop': '10.20.20.1'} + ], + 'allocation_pools': [ + {'start': '8.8.8.200', 'end': '8.8.8.250'} + ], + 'dns_nameservers': ["10.0.0.1"], + 'network_id': _net.id, + 'segment_id': None, + } + ) self.network.find_subnet = mock.Mock(return_value=_subnet) self.network.find_segment = mock.Mock(return_value=_segment) arglist = ['--network-segment', _segment.id, _subnet.name] @@ -1268,8 +1408,13 @@ class TestShowSubnet(TestSubnet): # Testing that a call without the required argument will fail and # throw a "ParserExecption" - self.assertRaises(tests_utils.ParserException, - self.check_parser, self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_show_all_options(self): arglist = [ @@ -1283,31 +1428,35 @@ class TestShowSubnet(TestSubnet): columns, data = self.cmd.take_action(parsed_args) self.network.find_subnet.assert_called_once_with( - self._subnet.name, ignore_missing=False) + self._subnet.name, ignore_missing=False + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, data) class TestUnsetSubnet(TestSubnet): - def setUp(self): super(TestUnsetSubnet, self).setUp() self._testsubnet = network_fakes.FakeSubnet.create_one_subnet( - {'dns_nameservers': ['8.8.8.8', - '8.8.8.4'], - 'host_routes': [{'destination': '10.20.20.0/24', - 'nexthop': '10.20.20.1'}, - {'destination': '10.30.30.30/24', - 'nexthop': '10.30.30.1'}], - 'allocation_pools': [{'start': '8.8.8.100', - 'end': '8.8.8.150'}, - {'start': '8.8.8.160', - 'end': '8.8.8.170'}], - 'service_types': ['network:router_gateway', - 'network:floatingip_agent_gateway'], - 'gateway_ip': 'fe80::a00a:0:c0de:0:1', - 'tags': ['green', 'red'], }) + { + 'dns_nameservers': ['8.8.8.8', '8.8.8.4'], + 'host_routes': [ + {'destination': '10.20.20.0/24', 'nexthop': '10.20.20.1'}, + {'destination': '10.30.30.30/24', 'nexthop': '10.30.30.1'}, + ], + 'allocation_pools': [ + {'start': '8.8.8.100', 'end': '8.8.8.150'}, + {'start': '8.8.8.160', 'end': '8.8.8.170'}, + ], + 'service_types': [ + 'network:router_gateway', + 'network:floatingip_agent_gateway', + ], + 'gateway_ip': 'fe80::a00a:0:c0de:0:1', + 'tags': ['green', 'red'], + } + ) self.network.find_subnet = mock.Mock(return_value=self._testsubnet) self.network.update_subnet = mock.Mock(return_value=None) self.network.set_tags = mock.Mock(return_value=None) @@ -1316,19 +1465,24 @@ class TestUnsetSubnet(TestSubnet): def test_unset_subnet_params(self): arglist = [ - '--dns-nameserver', '8.8.8.8', - '--host-route', 'destination=10.30.30.30/24,gateway=10.30.30.1', - '--allocation-pool', 'start=8.8.8.100,end=8.8.8.150', - '--service-type', 'network:router_gateway', + '--dns-nameserver', + '8.8.8.8', + '--host-route', + 'destination=10.30.30.30/24,gateway=10.30.30.1', + '--allocation-pool', + 'start=8.8.8.100,end=8.8.8.150', + '--service-type', + 'network:router_gateway', '--gateway', self._testsubnet.name, ] verifylist = [ ('dns_nameservers', ['8.8.8.8']), - ('host_routes', [{ - "destination": "10.30.30.30/24", "gateway": "10.30.30.1"}]), - ('allocation_pools', [{ - 'start': '8.8.8.100', 'end': '8.8.8.150'}]), + ( + 'host_routes', + [{"destination": "10.30.30.30/24", "gateway": "10.30.30.1"}], + ), + ('allocation_pools', [{'start': '8.8.8.100', 'end': '8.8.8.150'}]), ('service_types', ['network:router_gateway']), ('gateway', True), ] @@ -1338,93 +1492,116 @@ class TestUnsetSubnet(TestSubnet): attrs = { 'dns_nameservers': ['8.8.8.4'], - 'host_routes': [{ - "destination": "10.20.20.0/24", "nexthop": "10.20.20.1"}], + 'host_routes': [ + {"destination": "10.20.20.0/24", "nexthop": "10.20.20.1"} + ], 'allocation_pools': [{'start': '8.8.8.160', 'end': '8.8.8.170'}], 'service_types': ['network:floatingip_agent_gateway'], 'gateway_ip': None, } self.network.update_subnet.assert_called_once_with( - self._testsubnet, **attrs) + self._testsubnet, **attrs + ) self.assertIsNone(result) def test_unset_subnet_wrong_host_routes(self): arglist = [ - '--dns-nameserver', '8.8.8.8', - '--host-route', 'destination=10.30.30.30/24,gateway=10.30.30.2', - '--allocation-pool', 'start=8.8.8.100,end=8.8.8.150', + '--dns-nameserver', + '8.8.8.8', + '--host-route', + 'destination=10.30.30.30/24,gateway=10.30.30.2', + '--allocation-pool', + 'start=8.8.8.100,end=8.8.8.150', self._testsubnet.name, ] verifylist = [ ('dns_nameservers', ['8.8.8.8']), - ('host_routes', [{ - "destination": "10.30.30.30/24", "gateway": "10.30.30.2"}]), - ('allocation_pools', [{ - 'start': '8.8.8.100', 'end': '8.8.8.150'}]), + ( + 'host_routes', + [{"destination": "10.30.30.30/24", "gateway": "10.30.30.2"}], + ), + ('allocation_pools', [{'start': '8.8.8.100', 'end': '8.8.8.150'}]), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.assertRaises(exceptions.CommandError, - self.cmd.take_action, parsed_args) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_unset_subnet_wrong_allocation_pool(self): arglist = [ - '--dns-nameserver', '8.8.8.8', - '--host-route', 'destination=10.30.30.30/24,gateway=10.30.30.1', - '--allocation-pool', 'start=8.8.8.100,end=8.8.8.156', + '--dns-nameserver', + '8.8.8.8', + '--host-route', + 'destination=10.30.30.30/24,gateway=10.30.30.1', + '--allocation-pool', + 'start=8.8.8.100,end=8.8.8.156', self._testsubnet.name, ] verifylist = [ ('dns_nameservers', ['8.8.8.8']), - ('host_routes', [{ - "destination": "10.30.30.30/24", "gateway": "10.30.30.1"}]), - ('allocation_pools', [{ - 'start': '8.8.8.100', 'end': '8.8.8.156'}]), + ( + 'host_routes', + [{"destination": "10.30.30.30/24", "gateway": "10.30.30.1"}], + ), + ('allocation_pools', [{'start': '8.8.8.100', 'end': '8.8.8.156'}]), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.assertRaises(exceptions.CommandError, - self.cmd.take_action, parsed_args) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_unset_subnet_wrong_dns_nameservers(self): arglist = [ - '--dns-nameserver', '8.8.8.1', - '--host-route', 'destination=10.30.30.30/24,gateway=10.30.30.1', - '--allocation-pool', 'start=8.8.8.100,end=8.8.8.150', + '--dns-nameserver', + '8.8.8.1', + '--host-route', + 'destination=10.30.30.30/24,gateway=10.30.30.1', + '--allocation-pool', + 'start=8.8.8.100,end=8.8.8.150', self._testsubnet.name, ] verifylist = [ ('dns_nameservers', ['8.8.8.1']), - ('host_routes', [{ - "destination": "10.30.30.30/24", "gateway": "10.30.30.1"}]), - ('allocation_pools', [{ - 'start': '8.8.8.100', 'end': '8.8.8.150'}]), + ( + 'host_routes', + [{"destination": "10.30.30.30/24", "gateway": "10.30.30.1"}], + ), + ('allocation_pools', [{'start': '8.8.8.100', 'end': '8.8.8.150'}]), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.assertRaises(exceptions.CommandError, - self.cmd.take_action, parsed_args) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def test_unset_subnet_wrong_service_type(self): arglist = [ - '--dns-nameserver', '8.8.8.8', - '--host-route', 'destination=10.30.30.30/24,gateway=10.30.30.1', - '--allocation-pool', 'start=8.8.8.100,end=8.8.8.150', - '--service-type', 'network:dhcp', + '--dns-nameserver', + '8.8.8.8', + '--host-route', + 'destination=10.30.30.30/24,gateway=10.30.30.1', + '--allocation-pool', + 'start=8.8.8.100,end=8.8.8.150', + '--service-type', + 'network:dhcp', self._testsubnet.name, ] verifylist = [ ('dns_nameservers', ['8.8.8.8']), - ('host_routes', [{ - "destination": "10.30.30.30/24", "gateway": "10.30.30.1"}]), - ('allocation_pools', [{ - 'start': '8.8.8.100', 'end': '8.8.8.150'}]), + ( + 'host_routes', + [{"destination": "10.30.30.30/24", "gateway": "10.30.30.1"}], + ), + ('allocation_pools', [{'start': '8.8.8.100', 'end': '8.8.8.150'}]), ('service_types', ['network:dhcp']), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.assertRaises(exceptions.CommandError, - self.cmd.take_action, parsed_args) + self.assertRaises( + exceptions.CommandError, self.cmd.take_action, parsed_args + ) def _test_unset_tags(self, with_tags=True): if with_tags: @@ -1436,16 +1613,15 @@ class TestUnsetSubnet(TestSubnet): verifylist = [('all_tag', True)] expected_args = [] arglist.append(self._testsubnet.name) - verifylist.append( - ('subnet', self._testsubnet.name)) + verifylist.append(('subnet', self._testsubnet.name)) parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.assertFalse(self.network.update_subnet.called) self.network.set_tags.assert_called_once_with( - self._testsubnet, - tests_utils.CompareBySet(expected_args)) + self._testsubnet, tests_utils.CompareBySet(expected_args) + ) self.assertIsNone(result) def test_unset_with_tags(self): diff --git a/openstackclient/tests/unit/network/v2/test_subnet_pool.py b/openstackclient/tests/unit/network/v2/test_subnet_pool.py index b24906b58b..9a4532f606 100644 --- a/openstackclient/tests/unit/network/v2/test_subnet_pool.py +++ b/openstackclient/tests/unit/network/v2/test_subnet_pool.py @@ -25,7 +25,6 @@ from openstackclient.tests.unit import utils as tests_utils class TestSubnetPool(network_fakes.TestNetworkV2): - def setUp(self): super(TestSubnetPool, self).setUp() @@ -38,7 +37,6 @@ class TestSubnetPool(network_fakes.TestNetworkV2): class TestCreateSubnetPool(TestSubnetPool): - project = identity_fakes_v3.FakeProject.create_one_project() domain = identity_fakes_v3.FakeDomain.create_one_domain() # The new subnet pool to create. @@ -83,14 +81,16 @@ class TestCreateSubnetPool(TestSubnetPool): super(TestCreateSubnetPool, self).setUp() self.network.create_subnet_pool = mock.Mock( - return_value=self._subnet_pool) + return_value=self._subnet_pool + ) self.network.set_tags = mock.Mock(return_value=None) # Get the command object to test self.cmd = subnet_pool.CreateSubnetPool(self.app, self.namespace) self.network.find_address_scope = mock.Mock( - return_value=self._address_scope) + return_value=self._address_scope + ) self.projects_mock.get.return_value = self.project self.domains_mock.get.return_value = self.domain @@ -99,8 +99,13 @@ class TestCreateSubnetPool(TestSubnetPool): arglist = [] verifylist = [] - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) self.assertFalse(self.network.set_tags.called) def test_create_no_pool_prefix(self): @@ -111,12 +116,18 @@ class TestCreateSubnetPool(TestSubnetPool): verifylist = [ ('name', self._subnet_pool.name), ] - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_create_default_options(self): arglist = [ - '--pool-prefix', '10.0.10.0/24', + '--pool-prefix', + '10.0.10.0/24', self._subnet_pool.name, ] verifylist = [ @@ -125,27 +136,35 @@ class TestCreateSubnetPool(TestSubnetPool): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) - self.network.create_subnet_pool.assert_called_once_with(**{ - 'prefixes': ['10.0.10.0/24'], - 'name': self._subnet_pool.name, - }) + self.network.create_subnet_pool.assert_called_once_with( + **{ + 'prefixes': ['10.0.10.0/24'], + 'name': self._subnet_pool.name, + } + ) self.assertFalse(self.network.set_tags.called) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, data) def test_create_prefixlen_options(self): arglist = [ - '--default-prefix-length', self._subnet_pool.default_prefixlen, - '--max-prefix-length', self._subnet_pool.max_prefixlen, - '--min-prefix-length', self._subnet_pool.min_prefixlen, - '--pool-prefix', '10.0.10.0/24', + '--default-prefix-length', + self._subnet_pool.default_prefixlen, + '--max-prefix-length', + self._subnet_pool.max_prefixlen, + '--min-prefix-length', + self._subnet_pool.min_prefixlen, + '--pool-prefix', + '10.0.10.0/24', self._subnet_pool.name, ] verifylist = [ - ('default_prefix_length', - int(self._subnet_pool.default_prefixlen)), + ( + 'default_prefix_length', + int(self._subnet_pool.default_prefixlen), + ), ('max_prefix_length', int(self._subnet_pool.max_prefixlen)), ('min_prefix_length', int(self._subnet_pool.min_prefixlen)), ('name', self._subnet_pool.name), @@ -153,36 +172,47 @@ class TestCreateSubnetPool(TestSubnetPool): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) - self.network.create_subnet_pool.assert_called_once_with(**{ - 'default_prefixlen': int(self._subnet_pool.default_prefixlen), - 'max_prefixlen': int(self._subnet_pool.max_prefixlen), - 'min_prefixlen': int(self._subnet_pool.min_prefixlen), - 'prefixes': ['10.0.10.0/24'], - 'name': self._subnet_pool.name, - }) + self.network.create_subnet_pool.assert_called_once_with( + **{ + 'default_prefixlen': int(self._subnet_pool.default_prefixlen), + 'max_prefixlen': int(self._subnet_pool.max_prefixlen), + 'min_prefixlen': int(self._subnet_pool.min_prefixlen), + 'prefixes': ['10.0.10.0/24'], + 'name': self._subnet_pool.name, + } + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, data) def test_create_len_negative(self): arglist = [ self._subnet_pool.name, - '--min-prefix-length', '-16', + '--min-prefix-length', + '-16', ] verifylist = [ ('subnet_pool', self._subnet_pool.name), ('min_prefix_length', '-16'), ] - self.assertRaises(argparse.ArgumentTypeError, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + argparse.ArgumentTypeError, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_create_project_domain(self): arglist = [ - '--pool-prefix', '10.0.10.0/24', - "--project", self.project.name, - "--project-domain", self.domain.name, + '--pool-prefix', + '10.0.10.0/24', + "--project", + self.project.name, + "--project-domain", + self.domain.name, self._subnet_pool.name, ] verifylist = [ @@ -193,20 +223,24 @@ class TestCreateSubnetPool(TestSubnetPool): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) - self.network.create_subnet_pool.assert_called_once_with(**{ - 'prefixes': ['10.0.10.0/24'], - 'project_id': self.project.id, - 'name': self._subnet_pool.name, - }) + self.network.create_subnet_pool.assert_called_once_with( + **{ + 'prefixes': ['10.0.10.0/24'], + 'project_id': self.project.id, + 'name': self._subnet_pool.name, + } + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, data) def test_create_address_scope_option(self): arglist = [ - '--pool-prefix', '10.0.10.0/24', - '--address-scope', self._address_scope.id, + '--pool-prefix', + '10.0.10.0/24', + '--address-scope', + self._address_scope.id, self._subnet_pool.name, ] verifylist = [ @@ -216,19 +250,22 @@ class TestCreateSubnetPool(TestSubnetPool): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) - self.network.create_subnet_pool.assert_called_once_with(**{ - 'prefixes': ['10.0.10.0/24'], - 'address_scope_id': self._address_scope.id, - 'name': self._subnet_pool.name, - }) + self.network.create_subnet_pool.assert_called_once_with( + **{ + 'prefixes': ['10.0.10.0/24'], + 'address_scope_id': self._address_scope.id, + 'name': self._subnet_pool.name, + } + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, data) def test_create_default_and_shared_options(self): arglist = [ - '--pool-prefix', '10.0.10.0/24', + '--pool-prefix', + '10.0.10.0/24', '--default', '--share', self._subnet_pool.name, @@ -241,21 +278,25 @@ class TestCreateSubnetPool(TestSubnetPool): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) - self.network.create_subnet_pool.assert_called_once_with(**{ - 'is_default': True, - 'name': self._subnet_pool.name, - 'prefixes': ['10.0.10.0/24'], - 'shared': True, - }) + self.network.create_subnet_pool.assert_called_once_with( + **{ + 'is_default': True, + 'name': self._subnet_pool.name, + 'prefixes': ['10.0.10.0/24'], + 'shared': True, + } + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, data) def test_create_with_description(self): arglist = [ - '--pool-prefix', '10.0.10.0/24', - '--description', self._subnet_pool.description, + '--pool-prefix', + '10.0.10.0/24', + '--description', + self._subnet_pool.description, self._subnet_pool.name, ] verifylist = [ @@ -265,20 +306,24 @@ class TestCreateSubnetPool(TestSubnetPool): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) - self.network.create_subnet_pool.assert_called_once_with(**{ - 'name': self._subnet_pool.name, - 'prefixes': ['10.0.10.0/24'], - 'description': self._subnet_pool.description, - }) + self.network.create_subnet_pool.assert_called_once_with( + **{ + 'name': self._subnet_pool.name, + 'prefixes': ['10.0.10.0/24'], + 'description': self._subnet_pool.description, + } + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, data) def test_create_with_default_quota(self): arglist = [ - '--pool-prefix', '10.0.10.0/24', - '--default-quota', '10', + '--pool-prefix', + '10.0.10.0/24', + '--default-quota', + '10', self._subnet_pool.name, ] verifylist = [ @@ -287,18 +332,21 @@ class TestCreateSubnetPool(TestSubnetPool): ('name', self._subnet_pool.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) - self.network.create_subnet_pool.assert_called_once_with(**{ - 'name': self._subnet_pool.name, - 'prefixes': ['10.0.10.0/24'], - 'default_quota': 10, - }) + columns, data = self.cmd.take_action(parsed_args) + self.network.create_subnet_pool.assert_called_once_with( + **{ + 'name': self._subnet_pool.name, + 'prefixes': ['10.0.10.0/24'], + 'default_quota': 10, + } + ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, data) def _test_create_with_tag(self, add_tags=True): arglist = [ - '--pool-prefix', '10.0.10.0/24', + '--pool-prefix', + '10.0.10.0/24', self._subnet_pool.name, ] if add_tags: @@ -315,16 +363,15 @@ class TestCreateSubnetPool(TestSubnetPool): verifylist.append(('no_tag', True)) parsed_args = self.check_parser(self.cmd, arglist, verifylist) - columns, data = (self.cmd.take_action(parsed_args)) + columns, data = self.cmd.take_action(parsed_args) self.network.create_subnet_pool.assert_called_once_with( - prefixes=['10.0.10.0/24'], - name=self._subnet_pool.name + prefixes=['10.0.10.0/24'], name=self._subnet_pool.name ) if add_tags: self.network.set_tags.assert_called_once_with( - self._subnet_pool, - tests_utils.CompareBySet(['red', 'blue'])) + self._subnet_pool, tests_utils.CompareBySet(['red', 'blue']) + ) else: self.assertFalse(self.network.set_tags.called) self.assertEqual(self.columns, columns) @@ -338,7 +385,6 @@ class TestCreateSubnetPool(TestSubnetPool): class TestDeleteSubnetPool(TestSubnetPool): - # The subnet pools to delete. _subnet_pools = network_fakes.FakeSubnetPool.create_subnet_pools(count=2) @@ -366,7 +412,8 @@ class TestDeleteSubnetPool(TestSubnetPool): result = self.cmd.take_action(parsed_args) self.network.delete_subnet_pool.assert_called_once_with( - self._subnet_pools[0]) + self._subnet_pools[0] + ) self.assertIsNone(result) def test_multi_subnet_pools_delete(self): @@ -394,15 +441,15 @@ class TestDeleteSubnetPool(TestSubnetPool): 'unexist_subnet_pool', ] verifylist = [ - ('subnet_pool', - [self._subnet_pools[0].name, 'unexist_subnet_pool']), + ( + 'subnet_pool', + [self._subnet_pools[0].name, 'unexist_subnet_pool'], + ), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) find_mock_result = [self._subnet_pools[0], exceptions.CommandError] - self.network.find_subnet_pool = ( - mock.Mock(side_effect=find_mock_result) - ) + self.network.find_subnet_pool = mock.Mock(side_effect=find_mock_result) try: self.cmd.take_action(parsed_args) @@ -411,9 +458,11 @@ class TestDeleteSubnetPool(TestSubnetPool): self.assertEqual('1 of 2 subnet pools failed to delete.', str(e)) self.network.find_subnet_pool.assert_any_call( - self._subnet_pools[0].name, ignore_missing=False) + self._subnet_pools[0].name, ignore_missing=False + ) self.network.find_subnet_pool.assert_any_call( - 'unexist_subnet_pool', ignore_missing=False) + 'unexist_subnet_pool', ignore_missing=False + ) self.network.delete_subnet_pool.assert_called_once_with( self._subnet_pools[0] ) @@ -438,24 +487,28 @@ class TestListSubnetPool(TestSubnetPool): data = [] for pool in _subnet_pools: - data.append(( - pool.id, - pool.name, - format_columns.ListColumn(pool.prefixes), - )) + data.append( + ( + pool.id, + pool.name, + format_columns.ListColumn(pool.prefixes), + ) + ) data_long = [] for pool in _subnet_pools: - data_long.append(( - pool.id, - pool.name, - format_columns.ListColumn(pool.prefixes), - pool.default_prefixlen, - pool.address_scope_id, - pool.is_default, - pool.shared, - format_columns.ListColumn(pool.tags), - )) + data_long.append( + ( + pool.id, + pool.name, + format_columns.ListColumn(pool.prefixes), + pool.default_prefixlen, + pool.address_scope_id, + pool.is_default, + pool.shared, + format_columns.ListColumn(pool.tags), + ) + ) def setUp(self): super(TestListSubnetPool, self).setUp() @@ -561,7 +614,8 @@ class TestListSubnetPool(TestSubnetPool): project = identity_fakes_v3.FakeProject.create_one_project() self.projects_mock.get.return_value = project arglist = [ - '--project', project.id, + '--project', + project.id, ] verifylist = [ ('project', project.id), @@ -579,8 +633,10 @@ class TestListSubnetPool(TestSubnetPool): project = identity_fakes_v3.FakeProject.create_one_project() self.projects_mock.get.return_value = project arglist = [ - '--project', project.id, - '--project-domain', project.domain_id, + '--project', + project.id, + '--project-domain', + project.domain_id, ] verifylist = [ ('project', project.id), @@ -599,7 +655,8 @@ class TestListSubnetPool(TestSubnetPool): subnet_pool = network_fakes.FakeSubnetPool.create_one_subnet_pool() self.network.find_network = mock.Mock(return_value=subnet_pool) arglist = [ - '--name', subnet_pool.name, + '--name', + subnet_pool.name, ] verifylist = [ ('name', subnet_pool.name), @@ -617,7 +674,8 @@ class TestListSubnetPool(TestSubnetPool): addr_scope = network_fakes.create_one_address_scope() self.network.find_address_scope = mock.Mock(return_value=addr_scope) arglist = [ - '--address-scope', addr_scope.id, + '--address-scope', + addr_scope.id, ] verifylist = [ ('address_scope', addr_scope.id), @@ -633,10 +691,14 @@ class TestListSubnetPool(TestSubnetPool): def test_list_with_tag_options(self): arglist = [ - '--tags', 'red,blue', - '--any-tags', 'red,green', - '--not-tags', 'orange,yellow', - '--not-any-tags', 'black,white', + '--tags', + 'red,blue', + '--any-tags', + 'red,green', + '--not-tags', + 'orange,yellow', + '--not-any-tags', + 'black,white', ] verifylist = [ ('tags', ['red', 'blue']), @@ -648,21 +710,21 @@ class TestListSubnetPool(TestSubnetPool): columns, data = self.cmd.take_action(parsed_args) self.network.subnet_pools.assert_called_once_with( - **{'tags': 'red,blue', - 'any_tags': 'red,green', - 'not_tags': 'orange,yellow', - 'not_any_tags': 'black,white'} + **{ + 'tags': 'red,blue', + 'any_tags': 'red,green', + 'not_tags': 'orange,yellow', + 'not_any_tags': 'black,white', + } ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, list(data)) class TestSetSubnetPool(TestSubnetPool): - # The subnet_pool to set. _subnet_pool = network_fakes.FakeSubnetPool.create_one_subnet_pool( - {'default_quota': 10, - 'tags': ['green', 'red']} + {'default_quota': 10, 'tags': ['green', 'red']} ) _address_scope = network_fakes.create_one_address_scope() @@ -674,19 +736,24 @@ class TestSetSubnetPool(TestSubnetPool): self.network.set_tags = mock.Mock(return_value=None) self.network.find_subnet_pool = mock.Mock( - return_value=self._subnet_pool) + return_value=self._subnet_pool + ) self.network.find_address_scope = mock.Mock( - return_value=self._address_scope) + return_value=self._address_scope + ) # Get the command object to test self.cmd = subnet_pool.SetSubnetPool(self.app, self.namespace) def test_set_this(self): arglist = [ - '--name', 'noob', - '--default-prefix-length', '8', - '--min-prefix-length', '8', + '--name', + 'noob', + '--default-prefix-length', + '8', + '--min-prefix-length', + '8', self._subnet_pool.name, ] verifylist = [ @@ -705,14 +772,18 @@ class TestSetSubnetPool(TestSubnetPool): 'min_prefixlen': 8, } self.network.update_subnet_pool.assert_called_once_with( - self._subnet_pool, **attrs) + self._subnet_pool, **attrs + ) self.assertIsNone(result) def test_set_that(self): arglist = [ - '--pool-prefix', '10.0.1.0/24', - '--pool-prefix', '10.0.2.0/24', - '--max-prefix-length', '16', + '--pool-prefix', + '10.0.1.0/24', + '--pool-prefix', + '10.0.2.0/24', + '--max-prefix-length', + '16', self._subnet_pool.name, ] verifylist = [ @@ -731,12 +802,17 @@ class TestSetSubnetPool(TestSubnetPool): 'max_prefixlen': 16, } self.network.update_subnet_pool.assert_called_once_with( - self._subnet_pool, **attrs) + self._subnet_pool, **attrs + ) self.assertIsNone(result) def test_set_nothing(self): - arglist = [self._subnet_pool.name, ] - verifylist = [('subnet_pool', self._subnet_pool.name), ] + arglist = [ + self._subnet_pool.name, + ] + verifylist = [ + ('subnet_pool', self._subnet_pool.name), + ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) @@ -747,7 +823,8 @@ class TestSetSubnetPool(TestSubnetPool): def test_set_len_negative(self): arglist = [ - '--max-prefix-length', '-16', + '--max-prefix-length', + '-16', self._subnet_pool.name, ] verifylist = [ @@ -755,12 +832,18 @@ class TestSetSubnetPool(TestSubnetPool): ('subnet_pool', self._subnet_pool.name), ] - self.assertRaises(argparse.ArgumentTypeError, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + argparse.ArgumentTypeError, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_set_address_scope(self): arglist = [ - '--address-scope', self._address_scope.id, + '--address-scope', + self._address_scope.id, self._subnet_pool.name, ] verifylist = [ @@ -775,7 +858,8 @@ class TestSetSubnetPool(TestSubnetPool): 'address_scope_id': self._address_scope.id, } self.network.update_subnet_pool.assert_called_once_with( - self._subnet_pool, **attrs) + self._subnet_pool, **attrs + ) self.assertIsNone(result) def test_set_no_address_scope(self): @@ -795,12 +879,14 @@ class TestSetSubnetPool(TestSubnetPool): 'address_scope_id': None, } self.network.update_subnet_pool.assert_called_once_with( - self._subnet_pool, **attrs) + self._subnet_pool, **attrs + ) self.assertIsNone(result) def test_set_no_address_scope_conflict(self): arglist = [ - '--address-scope', self._address_scope.id, + '--address-scope', + self._address_scope.id, '--no-address-scope', self._subnet_pool.name, ] @@ -811,8 +897,13 @@ class TestSetSubnetPool(TestSubnetPool): ] # Exclusive arguments will conflict here. - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_set_default(self): arglist = [ @@ -827,11 +918,10 @@ class TestSetSubnetPool(TestSubnetPool): result = self.cmd.take_action(parsed_args) - attrs = { - 'is_default': True - } + attrs = {'is_default': True} self.network.update_subnet_pool.assert_called_once_with( - self._subnet_pool, **attrs) + self._subnet_pool, **attrs + ) self.assertIsNone(result) def test_set_no_default(self): @@ -851,7 +941,8 @@ class TestSetSubnetPool(TestSubnetPool): 'is_default': False, } self.network.update_subnet_pool.assert_called_once_with( - self._subnet_pool, **attrs) + self._subnet_pool, **attrs + ) self.assertIsNone(result) def test_set_no_default_conflict(self): @@ -867,12 +958,18 @@ class TestSetSubnetPool(TestSubnetPool): ] # Exclusive arguments will conflict here. - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_set_description(self): arglist = [ - '--description', 'new_description', + '--description', + 'new_description', self._subnet_pool.name, ] verifylist = [ @@ -887,12 +984,14 @@ class TestSetSubnetPool(TestSubnetPool): 'description': "new_description", } self.network.update_subnet_pool.assert_called_once_with( - self._subnet_pool, **attrs) + self._subnet_pool, **attrs + ) self.assertIsNone(result) def test_set_with_default_quota(self): arglist = [ - '--default-quota', '20', + '--default-quota', + '20', self._subnet_pool.name, ] verifylist = [ @@ -903,7 +1002,9 @@ class TestSetSubnetPool(TestSubnetPool): result = self.cmd.take_action(parsed_args) self.network.update_subnet_pool.assert_called_once_with( self._subnet_pool, - **{'default_quota': 20, } + **{ + 'default_quota': 20, + } ) self.assertIsNone(result) @@ -917,16 +1018,15 @@ class TestSetSubnetPool(TestSubnetPool): verifylist = [('no_tag', True)] expected_args = [] arglist.append(self._subnet_pool.name) - verifylist.append( - ('subnet_pool', self._subnet_pool.name)) + verifylist.append(('subnet_pool', self._subnet_pool.name)) parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.assertFalse(self.network.update_subnet_pool.called) self.network.set_tags.assert_called_once_with( - self._subnet_pool, - tests_utils.CompareBySet(expected_args)) + self._subnet_pool, tests_utils.CompareBySet(expected_args) + ) self.assertIsNone(result) def test_set_with_tags(self): @@ -937,7 +1037,6 @@ class TestSetSubnetPool(TestSubnetPool): class TestShowSubnetPool(TestSubnetPool): - # The subnet_pool to set. _subnet_pool = network_fakes.FakeSubnetPool.create_one_subnet_pool() @@ -989,8 +1088,13 @@ class TestShowSubnetPool(TestSubnetPool): arglist = [] verifylist = [] - self.assertRaises(tests_utils.ParserException, self.check_parser, - self.cmd, arglist, verifylist) + self.assertRaises( + tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist, + ) def test_show_all_options(self): arglist = [ @@ -1004,21 +1108,21 @@ class TestShowSubnetPool(TestSubnetPool): columns, data = self.cmd.take_action(parsed_args) self.network.find_subnet_pool.assert_called_once_with( - self._subnet_pool.name, - ignore_missing=False + self._subnet_pool.name, ignore_missing=False ) self.assertEqual(self.columns, columns) self.assertCountEqual(self.data, data) class TestUnsetSubnetPool(TestSubnetPool): - def setUp(self): super(TestUnsetSubnetPool, self).setUp() self._subnetpool = network_fakes.FakeSubnetPool.create_one_subnet_pool( - {'tags': ['green', 'red']}) + {'tags': ['green', 'red']} + ) self.network.find_subnet_pool = mock.Mock( - return_value=self._subnetpool) + return_value=self._subnetpool + ) self.network.update_subnet_pool = mock.Mock(return_value=None) self.network.set_tags = mock.Mock(return_value=None) # Get the command object to test @@ -1034,16 +1138,15 @@ class TestUnsetSubnetPool(TestSubnetPool): verifylist = [('all_tag', True)] expected_args = [] arglist.append(self._subnetpool.name) - verifylist.append( - ('subnet_pool', self._subnetpool.name)) + verifylist.append(('subnet_pool', self._subnetpool.name)) parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.assertFalse(self.network.update_subnet_pool.called) self.network.set_tags.assert_called_once_with( - self._subnetpool, - tests_utils.CompareBySet(expected_args)) + self._subnetpool, tests_utils.CompareBySet(expected_args) + ) self.assertIsNone(result) def test_unset_with_tags(self): diff --git a/tox.ini b/tox.ini index 9dad40f6e7..f77028afa3 100644 --- a/tox.ini +++ b/tox.ini @@ -127,10 +127,10 @@ commands = [flake8] show-source = True -# H203: Use assertIs(Not)None to check for None -enable-extensions = H203 exclude = .venv,.git,.tox,dist,doc,*lib/python*,*egg,build,tools,releasenotes +# E203 Black will put spaces after colons in list comprehensions +# H301 Black will put commas after imports that can't fit on one line # W503 and W504 are disabled since they're not very useful -ignore = W503,W504 +ignore = E203,H301,W503,W504 import-order-style = pep8 application_import_names = openstackclient