diff --git a/.gitignore b/.gitignore index 4415f9ba..2acc68dd 100644 --- a/.gitignore +++ b/.gitignore @@ -38,6 +38,7 @@ htmlcov/ nosetests.xml coverage.xml .testrepository/ +.stestr # Translations *.mo diff --git a/proliantutils/hpssa/disk_allocator.py b/proliantutils/hpssa/disk_allocator.py index 66db4604..2c840115 100644 --- a/proliantutils/hpssa/disk_allocator.py +++ b/proliantutils/hpssa/disk_allocator.py @@ -96,8 +96,8 @@ def allocate_disks(logical_disk, server, raid_config): if share_physical_disks: sharable_disk_wwns = [] for sharable_logical_disk in raid_config['logical_disks']: - if (sharable_logical_disk.get('share_physical_disks', False) and - 'root_device_hint' in sharable_logical_disk): + if (sharable_logical_disk.get('share_physical_disks', False) + and 'root_device_hint' in sharable_logical_disk): wwn = sharable_logical_disk['root_device_hint']['wwn'] sharable_disk_wwns.append(wwn) diff --git a/proliantutils/hpssa/manager.py b/proliantutils/hpssa/manager.py index 35a111a5..abf12c56 100644 --- a/proliantutils/hpssa/manager.py +++ b/proliantutils/hpssa/manager.py @@ -67,8 +67,8 @@ def validate(raid_config): elif 'physical_disks' in logical_disk: no_of_disks_specified = len(logical_disk['physical_disks']) - if (no_of_disks_specified and - no_of_disks_specified < min_disks_reqd): + if (no_of_disks_specified + and no_of_disks_specified < min_disks_reqd): msg = ("RAID level %(raid_level)s requires at least %(number)s " "disks." % {'raid_level': raid_level, 'number': min_disks_reqd}) @@ -145,8 +145,8 @@ def create_configuration(raid_config): sorted((x for x in raid_config['logical_disks'] if x['size_gb'] != "MAX"), reverse=True, - key=lambda x: x['size_gb']) + - [x for x in raid_config['logical_disks'] if x['size_gb'] == "MAX"]) + key=lambda x: x['size_gb']) + + [x for x in raid_config['logical_disks'] if x['size_gb'] == "MAX"]) if any(logical_disk['share_physical_disks'] for logical_disk in logical_disks_sorted @@ -235,8 +235,8 @@ def _sort_shared_logical_disks(logical_disks): disks. :returns: the logical disks sorted based the above conditions. """ - is_shared = (lambda x: True if ('share_physical_disks' in x and - x['share_physical_disks']) else False) + is_shared = (lambda x: True if ('share_physical_disks' in x + and x['share_physical_disks']) else False) num_of_disks = (lambda x: x['number_of_physical_disks'] if 'number_of_physical_disks' in x else constants.RAID_LEVEL_MIN_DISKS[x['raid_level']]) @@ -291,9 +291,9 @@ def _sort_shared_logical_disks(logical_disks): # first, followed by shared logical disks with RAID 1, and finally by the # shared logical disks sorted based on number of disks and RAID 1+0 # condition. - logical_disks_sorted = (logical_disks_nonshared + - logical_disks_shared_raid1 + - logical_disks_shared) + logical_disks_sorted = (logical_disks_nonshared + + logical_disks_shared_raid1 + + logical_disks_shared) return logical_disks_sorted diff --git a/proliantutils/hpssa/objects.py b/proliantutils/hpssa/objects.py index f59c2aa5..8f26177c 100644 --- a/proliantutils/hpssa/objects.py +++ b/proliantutils/hpssa/objects.py @@ -76,7 +76,7 @@ def _get_dict(lines, start_index, indentation, deep): # Check for multi-level returns if current_line_indentation < indentation: - return info, i-1 + return info, i - 1 if current_line_indentation == indentation: current_item = current_line.lstrip(' ') @@ -85,12 +85,13 @@ def _get_dict(lines, start_index, indentation, deep): continue if i < len(lines) - 1: - next_line_indentation = _get_indentation(lines[i+1]) + next_line_indentation = _get_indentation(lines[i + 1]) else: next_line_indentation = current_line_indentation if next_line_indentation > current_line_indentation: - ret_dict, i = _get_dict(lines, i, current_line_indentation, deep+1) + ret_dict, i = _get_dict(lines, i, + current_line_indentation, deep + 1) for key in ret_dict.keys(): if key in info[current_item]: info[current_item][key].update(ret_dict[key]) @@ -554,7 +555,7 @@ class RaidArray(object): # TODO(rameshg87): This always returns in MB, but confirm with # HPSSA folks. - match = re.search('Max: (\d+)', stdout) + match = re.search(r"Max: (\d+)", stdout) if not match: return False @@ -580,9 +581,8 @@ class LogicalDrive(object): # TODO(rameshg87): Reduce the disk size by 1 to make sure Ironic # has enough space to write a config drive. Remove this when # Ironic doesn't need it. - self.size_gb = int(strutils.string_to_bytes(size, - return_int=True) / - (1024*1024*1024)) - 1 + self.size_gb = int(strutils.string_to_bytes( + size, return_int=True) / (1024 * 1024 * 1024)) - 1 except KeyError: msg = ("Can't get 'Size' parameter from ssacli output for logical " "disk '%(logical_disk)s' of RAID array '%(array)s' in " @@ -649,9 +649,8 @@ class PhysicalDrive(object): # It requires space to be stripped. try: size = self.properties['Size'].replace(' ', '') - self.size_gb = int(strutils.string_to_bytes(size, - return_int=True) / - (1024*1024*1024)) + self.size_gb = int(strutils.string_to_bytes( + size, return_int=True) / (1024 * 1024 * 1024)) except KeyError: msg = ("Can't get 'Size' parameter from ssacli output for " "physical disk '%(physical_disk)s' of controller " diff --git a/proliantutils/ilo/client.py b/proliantutils/ilo/client.py index 53ce56de..1aa4f709 100644 --- a/proliantutils/ilo/client.py +++ b/proliantutils/ilo/client.py @@ -69,7 +69,7 @@ SUPPORTED_RIS_METHODS = [ 'set_vm_status', 'update_firmware', 'update_persistent_boot', - ] +] SUPPORTED_REDFISH_METHODS = [ 'create_raid_configuration', diff --git a/proliantutils/ilo/common.py b/proliantutils/ilo/common.py index 65af9b77..c26b3e5b 100644 --- a/proliantutils/ilo/common.py +++ b/proliantutils/ilo/common.py @@ -239,14 +239,14 @@ def get_supported_boot_modes(supported_boot_mode_constant): """ boot_mode_bios = 'false' boot_mode_uefi = 'false' - if (supported_boot_mode_constant == - constants.SUPPORTED_BOOT_MODE_LEGACY_BIOS_ONLY): + if (supported_boot_mode_constant + == constants.SUPPORTED_BOOT_MODE_LEGACY_BIOS_ONLY): boot_mode_bios = 'true' - elif (supported_boot_mode_constant == - constants.SUPPORTED_BOOT_MODE_UEFI_ONLY): + elif (supported_boot_mode_constant + == constants.SUPPORTED_BOOT_MODE_UEFI_ONLY): boot_mode_uefi = 'true' - elif (supported_boot_mode_constant == - constants.SUPPORTED_BOOT_MODE_LEGACY_BIOS_AND_UEFI): + elif (supported_boot_mode_constant + == constants.SUPPORTED_BOOT_MODE_LEGACY_BIOS_AND_UEFI): boot_mode_bios = 'true' boot_mode_uefi = 'true' diff --git a/proliantutils/ilo/firmware_controller.py b/proliantutils/ilo/firmware_controller.py index 3fd09f25..fe2df57b 100644 --- a/proliantutils/ilo/firmware_controller.py +++ b/proliantutils/ilo/firmware_controller.py @@ -135,24 +135,24 @@ class FirmwareImageUploader(FirmwareImageControllerBase): firmware = open(filename, 'rb').read() # generate boundary - boundary = b('------hpiLO3t' + - str(random.randint(100000, 1000000)) + 'z') + boundary = b('------hpiLO3t' + + str(random.randint(100000, 1000000)) + 'z') while boundary in firmware: - boundary = b('------hpiLO3t' + - str(random.randint(100000, 1000000)) + 'z') + boundary = b('------hpiLO3t' + + str(random.randint(100000, 1000000)) + 'z') # generate body parts parts = [ # body1 - b("--") + boundary + - b("""\r\nContent-Disposition: form-data; """ - """name="fileType"\r\n\r\n"""), + b("--") + boundary + + b("""\r\nContent-Disposition: form-data; """ + """name="fileType"\r\n\r\n"""), # body2 - b("\r\n--") + boundary + - b('''\r\nContent-Disposition: form-data; name="fwimgfile"; ''' - '''filename="''') + - b(filename) + - b('''"\r\nContent-Type: application/octet-stream\r\n\r\n'''), + b("\r\n--") + boundary + + b('''\r\nContent-Disposition: form-data; name="fwimgfile"; ''' + '''filename="''') + + b(filename) + + b('''"\r\nContent-Type: application/octet-stream\r\n\r\n'''), # firmware image firmware, # body3 @@ -234,8 +234,8 @@ class FirmwareImageUploader(FirmwareImageControllerBase): return ssl.wrap_socket(sock, ssl_version=sslversion) except socket.sslerror: e = sys.exc_info()[1] - msg = (getattr(e, 'reason', None) or - getattr(e, 'message', None)) + msg = (getattr(e, 'reason', None) + or getattr(e, 'message', None)) # Some older iLO s don't support TLSv1, retry with SSLv3 if ('wrong version number' in msg) and ( sslversion == ssl.PROTOCOL_TLSv1): @@ -411,8 +411,8 @@ def _get_firmware_file_in_new_path(searching_path): file_name, file_ext_with_dot = common.get_filename_and_extension_of( firmware_file_path) new_firmware_file_path = os.path.join( - tempfile.gettempdir(), str(uuid.uuid4()) + '_' + - file_name + file_ext_with_dot) + tempfile.gettempdir(), str(uuid.uuid4()) + + '_' + file_name + file_ext_with_dot) # create a hard link to the raw firmware file os.link(firmware_file_path, new_firmware_file_path) diff --git a/proliantutils/ilo/ribcl.py b/proliantutils/ilo/ribcl.py index 497fcc6d..6ca237d3 100644 --- a/proliantutils/ilo/ribcl.py +++ b/proliantutils/ilo/ribcl.py @@ -316,8 +316,8 @@ class RIBCLOperations(operations.IloOperations): "message: '%(message)s'"), {'message': msg}) raise exception.IloClientInternalError(msg, status) - if (status in exception.IloLoginFailError.statuses or - msg in exception.IloLoginFailError.messages): + if (status in exception.IloLoginFailError.statuses + or msg in exception.IloLoginFailError.messages): LOG.debug(self._("Got invalid response with " "message: '%(message)s'"), {'message': msg}) diff --git a/proliantutils/ilo/ris.py b/proliantutils/ilo/ris.py index 34df0aac..68373967 100755 --- a/proliantutils/ilo/ris.py +++ b/proliantutils/ilo/ris.py @@ -113,8 +113,8 @@ class RISOperations(rest.RestConnectorBase, operations.IloOperations): yield 200, None, item, memberuri # else walk the member links - elif ('links' in thecollection and - 'Member' in thecollection['links']): + elif ('links' in thecollection + and 'Member' in thecollection['links']): # iterate members for memberuri in thecollection['links']['Member']: # for each member return the resource indicated by the @@ -123,8 +123,8 @@ class RISOperations(rest.RestConnectorBase, operations.IloOperations): yield status, headers, member, memberuri['href'] # page forward if there are more pages in the collection - if ('links' in thecollection and - 'NextPage' in thecollection['links']): + if ('links' in thecollection + and 'NextPage' in thecollection['links']): next_link_uri = (collection_uri + '?page=' + str( thecollection['links']['NextPage']['page'])) status, headers, thecollection = self._rest_get(next_link_uri) @@ -159,8 +159,8 @@ class RISOperations(rest.RestConnectorBase, operations.IloOperations): """ messages = [] if isinstance(extended_error, dict): - if ('Type' in extended_error and - extended_error['Type'].startswith('ExtendedError.')): + if ('Type' in extended_error + and extended_error['Type'].startswith('ExtendedError.')): for msg in extended_error['Messages']: message_id = msg['MessageID'] x = message_id.split('.') @@ -176,12 +176,12 @@ class RISOperations(rest.RestConnectorBase, operations.IloOperations): msg_str = message_id + ': ' + msg_dict['Message'] for argn in range(0, msg_dict['NumberOfArgs']): - subst = '%' + str(argn+1) + subst = '%' + str(argn + 1) m = str(msg['MessageArgs'][argn]) msg_str = msg_str.replace(subst, m) - if ('Resolution' in msg_dict and - msg_dict['Resolution'] != 'None'): + if ('Resolution' in msg_dict + and msg_dict['Resolution'] != 'None'): msg_str += ' ' + msg_dict['Resolution'] messages.append(msg_str) @@ -216,8 +216,8 @@ class RISOperations(rest.RestConnectorBase, operations.IloOperations): """Check if the bios resource exists.""" system = self._get_host_details() - if ('links' in system['Oem']['Hp'] and - 'BIOS' in system['Oem']['Hp']['links']): + if ('links' in system['Oem']['Hp'] + and 'BIOS' in system['Oem']['Hp']['links']): # Get the BIOS URI and Settings bios_uri = system['Oem']['Hp']['links']['BIOS']['href'] status, headers, bios_settings = self._rest_get(bios_uri) @@ -251,8 +251,8 @@ class RISOperations(rest.RestConnectorBase, operations.IloOperations): """ system = self._get_host_details() - if ('links' in system['Oem']['Hp'] and - 'PCIDevices' in system['Oem']['Hp']['links']): + if ('links' in system['Oem']['Hp'] + and 'PCIDevices' in system['Oem']['Hp']['links']): # Get the PCI URI and Settings pci_uri = system['Oem']['Hp']['links']['PCIDevices']['href'] status, headers, pci_device_list = self._rest_get(pci_uri) @@ -288,8 +288,8 @@ class RISOperations(rest.RestConnectorBase, operations.IloOperations): :returns the tuple of SmartStorage URI, Headers and settings. """ system = self._get_host_details() - if ('links' in system['Oem']['Hp'] and - 'SmartStorage' in system['Oem']['Hp']['links']): + if ('links' in system['Oem']['Hp'] + and 'SmartStorage' in system['Oem']['Hp']['links']): # Get the SmartStorage URI and Settings storage_uri = system['Oem']['Hp']['links']['SmartStorage']['href'] status, headers, storage_settings = self._rest_get(storage_uri) @@ -315,8 +315,8 @@ class RISOperations(rest.RestConnectorBase, operations.IloOperations): # Do not raise exception if there is no ArrayControllers # as Storage can be zero at any point and if we raise # exception it might fail get_server_capabilities(). - if ('links' in storage_settings and - 'ArrayControllers' in storage_settings['links']): + if ('links' in storage_settings + and 'ArrayControllers' in storage_settings['links']): # Get the ArrayCOntrollers URI and Settings array_uri = storage_settings['links']['ArrayControllers']['href'] status, headers, array_settings = self._rest_get(array_uri) @@ -338,8 +338,8 @@ class RISOperations(rest.RestConnectorBase, operations.IloOperations): # Do not raise exception if there is no ArrayControllers # as Storage can be zero at any point and if we raise # exception it might fail get_server_capabilities(). - if ('links' in array_settings and - 'Member' in array_settings['links']): + if ('links' in array_settings + and 'Member' in array_settings['links']): array_uri_links = array_settings['links']['Member'] return array_uri_links @@ -399,13 +399,13 @@ class RISOperations(rest.RestConnectorBase, operations.IloOperations): _, _, member_settings = ( self._rest_get(array_link['href'])) - if ('links' in member_settings and - drive_name in member_settings['links']): + if ('links' in member_settings + and drive_name in member_settings['links']): disk_uri = member_settings['links'][drive_name]['href'] headers, disk_member_uri, disk_mem = ( self._rest_get(disk_uri)) - if ('links' in disk_mem and - 'Member' in disk_mem['links']): + if ('links' in disk_mem + and 'Member' in disk_mem['links']): for disk_link in disk_mem['links']['Member']: diskdrive_uri = disk_link['href'] _, _, disk_details = ( @@ -471,9 +471,8 @@ class RISOperations(rest.RestConnectorBase, operations.IloOperations): def _validate_if_patch_supported(self, headers, uri): """Check if the PATCH Operation is allowed on the resource.""" if not self._operation_allowed(headers, 'PATCH'): - msg = ('PATCH Operation not supported on the resource ' - '"%s"' % uri) - raise exception.IloError(msg) + msg = ('PATCH Operation not supported on the resource "%s"' % uri) + raise exception.IloError(msg) def _get_bios_setting(self, bios_property): """Retrieves bios settings of the server.""" @@ -712,8 +711,8 @@ class RISOperations(rest.RestConnectorBase, operations.IloOperations): """Change secure boot settings on the server.""" system = self._get_host_details() # find the BIOS URI - if ('links' not in system['Oem']['Hp'] or - 'SecureBoot' not in system['Oem']['Hp']['links']): + if ('links' not in system['Oem']['Hp'] + or 'SecureBoot' not in system['Oem']['Hp']['links']): msg = (' "SecureBoot" resource or feature is not ' 'supported on this system') raise exception.IloCommandNotSupportedError(msg) @@ -735,7 +734,7 @@ class RISOperations(rest.RestConnectorBase, operations.IloOperations): # Change the bios setting as a workaround to enable secure boot # Can be removed when fixed for Gen9 snap2 val = self._get_bios_setting('CustomPostMessage') - val = val.rstrip() if val.endswith(" ") else val+" " + val = val.rstrip() if val.endswith(" ") else val + " " self._change_bios_setting({'CustomPostMessage': val}) def _is_boot_mode_uefi(self): @@ -771,8 +770,8 @@ class RISOperations(rest.RestConnectorBase, operations.IloOperations): """ system = self._get_host_details() - if ('links' not in system['Oem']['Hp'] or - 'SecureBoot' not in system['Oem']['Hp']['links']): + if ('links' not in system['Oem']['Hp'] + or 'SecureBoot' not in system['Oem']['Hp']['links']): msg = ('"SecureBoot" resource or feature is not supported' ' on this system') raise exception.IloCommandNotSupportedError(msg) @@ -1134,8 +1133,8 @@ class RISOperations(rest.RestConnectorBase, operations.IloOperations): """ system = self._get_host_details() bios_uefi_class_val = 0 # value for bios_only boot mode - if ('Bios' in system['Oem']['Hp'] and - 'UefiClass' in system['Oem']['Hp']['Bios']): + if ('Bios' in system['Oem']['Hp'] + and 'UefiClass' in system['Oem']['Hp']['Bios']): bios_uefi_class_val = (system['Oem']['Hp'] ['Bios']['UefiClass']) return mappings.GET_SUPPORTED_BOOT_MODE_RIS_MAP.get( @@ -1361,7 +1360,7 @@ class RISOperations(rest.RestConnectorBase, operations.IloOperations): msg = self._get_extended_error(response) raise exception.IloError(msg) - def _get_vm_device_status(self, device='FLOPPY'): + def _get_vm_device_status(self, device='FLOPPY'): """Returns the given virtual media device status and device URI :param device: virtual media device to be queried @@ -1375,14 +1374,14 @@ class RISOperations(rest.RestConnectorBase, operations.IloOperations): # Check if the input is valid if device not in valid_devices: - raise exception.IloInvalidInputError( - "Invalid device. Valid devices: FLOPPY or CDROM.") + raise exception.IloInvalidInputError( + "Invalid device. Valid devices: FLOPPY or CDROM.") manager, uri = self._get_ilo_details() try: vmedia_uri = manager['links']['VirtualMedia']['href'] except KeyError: - msg = ('"VirtualMedia" section in Manager/links does not exist') + msg = '"VirtualMedia" section in Manager/links does not exist' raise exception.IloCommandNotSupportedError(msg) for status, hds, vmed, memberuri in self._get_collection(vmedia_uri): @@ -1447,8 +1446,8 @@ class RISOperations(rest.RestConnectorBase, operations.IloOperations): response_data['DEVICE'] = device # FLOPPY cannot be a boot device - if ((response_data['BOOT_OPTION'] == 'BOOT_ONCE') and - (response_data['DEVICE'] == 'FLOPPY')): + if ((response_data['BOOT_OPTION'] == 'BOOT_ONCE') + and (response_data['DEVICE'] == 'FLOPPY')): response_data['BOOT_OPTION'] = 'NO_BOOT' return response_data @@ -1623,9 +1622,9 @@ class RISOperations(rest.RestConnectorBase, operations.IloOperations): if 'HP iLO Virtual USB CD' in boot_string: return 'CDROM' - elif ('NIC' in boot_string or - 'PXE' in boot_string or - "iSCSI" in boot_string): + elif ('NIC' in boot_string + or 'PXE' in boot_string + or "iSCSI" in boot_string): return 'NETWORK' elif common.isDisk(boot_string): @@ -1657,7 +1656,7 @@ class RISOperations(rest.RestConnectorBase, operations.IloOperations): systems_uri = "/rest/v1/Systems/1" # Need to set this option first if device is 'UefiTarget' - if new_device is 'UefiTarget': + if new_device == 'UefiTarget': system = self._get_host_details() uefi_devices = ( system['Boot']['UefiTargetBootSourceOverrideSupported']) diff --git a/proliantutils/ilo/snmp/snmp_cpqdisk_sizes.py b/proliantutils/ilo/snmp/snmp_cpqdisk_sizes.py index 56bf4ea5..82942b1a 100755 --- a/proliantutils/ilo/snmp/snmp_cpqdisk_sizes.py +++ b/proliantutils/ilo/snmp/snmp_cpqdisk_sizes.py @@ -32,6 +32,7 @@ class MibBuilder(builder.MibBuilder): # cause permission problems when opening files at relative path defaultMiscMibs = '' + cpq_mibs_path = os.path.dirname(os.path.abspath(__file__)) cpq_mibs_path = os.path.join(cpq_mibs_path, "cpqdisk_mibs") mBuilder = MibBuilder() @@ -145,12 +146,10 @@ def _parse_mibs(iLOIP, snmp_credentials): raise exception.IloSNMPInvalidInputFailure(msg) else: if errorStatus: - msg = ('Parsing MIBs failed. %s at %s' % ( - errorStatus.prettyPrint(), - errorIndex and varBinds[-1][int(errorIndex)-1] - or '?' - ) - ) + msg = ('Parsing MIBs failed. %s at %s' + % (errorStatus.prettyPrint(), + errorIndex and varBinds[-1][int(errorIndex) - 1] + or '?')) LOG.error(msg) raise exception.IloSNMPInvalidInputFailure(msg) else: @@ -224,5 +223,5 @@ def get_local_gb(iLOIP, snmp_credentials): for key in disk_sizes[uuid]: if int(disk_sizes[uuid][key]) > max_size: max_size = int(disk_sizes[uuid][key]) - max_size_gb = max_size/1024 + max_size_gb = max_size / 1024 return max_size_gb diff --git a/proliantutils/redfish/redfish.py b/proliantutils/redfish/redfish.py index 18903d27..b9bd54bf 100644 --- a/proliantutils/redfish/redfish.py +++ b/proliantutils/redfish/redfish.py @@ -696,7 +696,7 @@ class RedfishOperations(operations.IloOperations): common_storage.has_rotational(sushy_system)), ('has_nvme_ssd', common_storage.has_nvme_ssd(sushy_system)) - ] + ] all_key_to_value_expression_tuples += ( [('logical_raid_level_' + x, True) diff --git a/proliantutils/redfish/resources/manager/virtual_media.py b/proliantutils/redfish/resources/manager/virtual_media.py index 721ca159..da9b0d4b 100644 --- a/proliantutils/redfish/resources/manager/virtual_media.py +++ b/proliantutils/redfish/resources/manager/virtual_media.py @@ -100,9 +100,9 @@ class VirtualMedia(virtual_media.VirtualMedia): "Oem": { "Hpe": { "BootOnNextServerReset": boot_on_next_reset - } } } + } self._conn.patch(self.path, data=data) diff --git a/proliantutils/redfish/resources/system/bios.py b/proliantutils/redfish/resources/system/bios.py index 5983e87b..0d84937a 100644 --- a/proliantutils/redfish/resources/system/bios.py +++ b/proliantutils/redfish/resources/system/bios.py @@ -191,8 +191,8 @@ class BIOSBootSettings(base.ResourceBase): preferred_boot_device = self.persistent_boot_config_order[0] for boot_source in self.boot_sources: if ((boot_source.get("StructuredBootString") is not None) and ( - preferred_boot_device == - boot_source.get("StructuredBootString"))): + preferred_boot_device + == boot_source.get("StructuredBootString"))): boot_string = boot_source["BootString"] break else: @@ -221,8 +221,8 @@ class BIOSBootSettings(base.ResourceBase): raise exception.IloError(msg) for boot_source in boot_sources: - if (mac.upper() in boot_source['UEFIDevicePath'] and - 'iSCSI' in boot_source['UEFIDevicePath']): + if (mac.upper() in boot_source['UEFIDevicePath'] + and 'iSCSI' in boot_source['UEFIDevicePath']): return boot_source['StructuredBootString'] else: msg = ('MAC provided "%s" is Invalid' % mac) diff --git a/proliantutils/redfish/resources/system/ethernet_interface.py b/proliantutils/redfish/resources/system/ethernet_interface.py index 59fff9e5..7b4d111a 100644 --- a/proliantutils/redfish/resources/system/ethernet_interface.py +++ b/proliantutils/redfish/resources/system/ethernet_interface.py @@ -49,10 +49,9 @@ class EthernetInterfaceCollection(base.ResourceCollectionBase): mac_dict = {} for eth in self.get_members(): if eth.mac_address is not None: - if (eth.status is not None and - eth.status.health == sys_cons.HEALTH_OK - and eth.status.state == - sys_cons.HEALTH_STATE_ENABLED): + if (eth.status is not None + and eth.status.health == sys_cons.HEALTH_OK + and eth.status.state == sys_cons.HEALTH_STATE_ENABLED): mac_dict.update( {'Port ' + eth.identity: eth.mac_address}) return mac_dict diff --git a/proliantutils/redfish/resources/system/memory.py b/proliantutils/redfish/resources/system/memory.py index 2c036dcf..4e32882f 100644 --- a/proliantutils/redfish/resources/system/memory.py +++ b/proliantutils/redfish/resources/system/memory.py @@ -55,8 +55,8 @@ class MemoryCollection(base.ResourceCollectionBase): if mem.memory_type == sys_cons.MEMORY_TYPE_NVDIMM_N: persistent_memory = True nvdimm_n = True - if (mem.memory_device_type == - sys_cons.MEMORY_DEVICE_TYPE_LOGICAL): + if (mem.memory_device_type + == sys_cons.MEMORY_DEVICE_TYPE_LOGICAL): logical_nvdimm_n = True break diff --git a/proliantutils/redfish/resources/system/storage/storage.py b/proliantutils/redfish/resources/system/storage/storage.py index 67dffa68..601df716 100644 --- a/proliantutils/redfish/resources/system/storage/storage.py +++ b/proliantutils/redfish/resources/system/storage/storage.py @@ -96,8 +96,8 @@ class Storage(base.ResourceBase): def has_nvme_ssd(self): """Return True if the drive is SSD and protocol is NVMe""" for member in self._drives_list(): - if (member.media_type == constants.MEDIA_TYPE_SSD and - member.protocol == constants.PROTOCOL_NVMe): + if (member.media_type == constants.MEDIA_TYPE_SSD + and member.protocol == constants.PROTOCOL_NVMe): return True return False diff --git a/proliantutils/redfish/resources/system/system.py b/proliantutils/redfish/resources/system/system.py index 82cd6552..101d77ca 100644 --- a/proliantutils/redfish/resources/system/system.py +++ b/proliantutils/redfish/resources/system/system.py @@ -315,7 +315,7 @@ class HPESystem(system.System): try: ssc_obj = self.get_smart_storage_config(config_id) ssc_obj.delete_raid() - except exception.IloLogicalDriveNotFoundError as e: + except exception.IloLogicalDriveNotFoundError: ld_exc_count += 1 except sushy.exceptions.SushyError as e: any_exceptions.append((config_id, str(e))) @@ -534,7 +534,7 @@ class HPESystem(system.System): if ssc_obj: result = ssc_obj.read_raid(controller=controller) config['logical_disks'].extend(result['logical_disks']) - except exception.IloLogicalDriveNotFoundError as e: + except exception.IloLogicalDriveNotFoundError: ld_exc_count += 1 except sushy.exceptions.SushyError as e: any_exceptions.append((controller, str(e))) diff --git a/proliantutils/redfish/resources/update_service.py b/proliantutils/redfish/resources/update_service.py index e9e2fad8..733d9d15 100644 --- a/proliantutils/redfish/resources/update_service.py +++ b/proliantutils/redfish/resources/update_service.py @@ -55,7 +55,7 @@ class HPEUpdateService(base.ResourceBase): resource=self._path)) return fw_update_action - def flash_firmware(self, redfish_inst, file_url): + def flash_firmware(self, redfish_inst, file_url): """Perform firmware flashing on a redfish system :param file_url: url to firmware bits. diff --git a/proliantutils/redfish/utils.py b/proliantutils/redfish/utils.py index 76205c86..3d10635d 100644 --- a/proliantutils/redfish/utils.py +++ b/proliantutils/redfish/utils.py @@ -53,37 +53,34 @@ def get_subresource_path_by(resource, subresource_path): if '@odata.id' not in body: raise exception.MissingAttributeError( - attribute='/'.join(subresource_path)+'/@odata.id', + attribute='/'.join(subresource_path) + '/@odata.id', resource=resource.path) return body['@odata.id'] def get_supported_boot_mode(supported_boot_mode): - """Return bios and uefi support. + """Return bios and uefi support. - :param supported_boot_mode: Supported boot modes - :return: A tuple of 'true'/'false' based on bios and uefi - support respectively. - """ - boot_mode_bios = 'false' - boot_mode_uefi = 'false' - if (supported_boot_mode == - sys_cons.SUPPORTED_LEGACY_BIOS_ONLY): - boot_mode_bios = 'true' - elif (supported_boot_mode == - sys_cons.SUPPORTED_UEFI_ONLY): - boot_mode_uefi = 'true' - elif (supported_boot_mode == - sys_cons.SUPPORTED_LEGACY_BIOS_AND_UEFI): - boot_mode_bios = 'true' - boot_mode_uefi = 'true' + :param supported_boot_mode: Supported boot modes + :return: A tuple of 'true'/'false' based on bios and uefi + support respectively. + """ + boot_mode_bios = 'false' + boot_mode_uefi = 'false' + if (supported_boot_mode == sys_cons.SUPPORTED_LEGACY_BIOS_ONLY): + boot_mode_bios = 'true' + elif (supported_boot_mode == sys_cons.SUPPORTED_UEFI_ONLY): + boot_mode_uefi = 'true' + elif (supported_boot_mode == sys_cons.SUPPORTED_LEGACY_BIOS_AND_UEFI): + boot_mode_bios = 'true' + boot_mode_uefi = 'true' - return SupportedBootModes(boot_mode_bios=boot_mode_bios, - boot_mode_uefi=boot_mode_uefi) + return SupportedBootModes(boot_mode_bios=boot_mode_bios, + boot_mode_uefi=boot_mode_uefi) -def get_allowed_operations(resource, subresouce_path): +def get_allowed_operations(resource, subresource_path): """Helper function to get the HTTP allowed methods. :param resource: ResourceBase instance from which the path is loaded. @@ -91,7 +88,7 @@ def get_allowed_operations(resource, subresouce_path): Either a string, or a list of strings in case of a nested field. :returns: A list of allowed HTTP methods. """ - uri = get_subresource_path_by(resource, subresouce_path) + uri = get_subresource_path_by(resource, subresource_path) response = resource._conn.get(path=uri) return response.headers['Allow'] diff --git a/proliantutils/sum/sum_controller.py b/proliantutils/sum/sum_controller.py index 5f05cd3c..46f5d169 100644 --- a/proliantutils/sum/sum_controller.py +++ b/proliantutils/sum/sum_controller.py @@ -48,7 +48,7 @@ EXIT_CODE_TO_STRING = { 3: ("The smart component was not installed. Node is already " "up-to-date."), 253: "The installation of the component failed." - } +} def _execute_sum(sum_file_path, mount_point, components=None): @@ -129,8 +129,8 @@ def _parse_sum_ouput(exit_code): with open(OUTPUT_FILES[0], 'r') as f: output_data = f.read() - ret_data = output_data[(output_data.find('Deployed Components:') + - len('Deployed Components:')): + ret_data = output_data[(output_data.find('Deployed Components:') + + len('Deployed Components:')): output_data.find('Exit status:')] failed = 0 diff --git a/proliantutils/tests/hpssa/test_manager.py b/proliantutils/tests/hpssa/test_manager.py index ce3adb78..63575812 100644 --- a/proliantutils/tests/hpssa/test_manager.py +++ b/proliantutils/tests/hpssa/test_manager.py @@ -50,14 +50,14 @@ class ManagerTestCases(testtools.TestCase): "type=logicaldrive", "drives=%s" % ld2_drives, "raid=5", - "size=%d" % (100*1024), + "size=%d" % (100 * 1024), process_input='y') # Verify that we created the 50GB disk the last. controller_exec_cmd_mock.assert_called_with("create", "type=logicaldrive", "drives=%s" % ld1_drives, "raid=1", - "size=%d" % (50*1024), + "size=%d" % (50 * 1024), process_input='y') ld1_ret = [x for x in current_config['logical_disks'] @@ -148,14 +148,14 @@ class ManagerTestCases(testtools.TestCase): "type=logicaldrive", mock.ANY, "raid=5", - "size=%d" % (100*1024), + "size=%d" % (100 * 1024), process_input='y') # Verify that we created the 50GB disk the last. controller_exec_cmd_mock.assert_called_with("create", "type=logicaldrive", mock.ANY, "raid=1", - "size=%d" % (50*1024), + "size=%d" % (50 * 1024), process_input='y') ld1_ret = [x for x in current_config['logical_disks'] @@ -551,7 +551,8 @@ class ManagerTestCases(testtools.TestCase): 'Summary': ('Drives overwritten with zeros because ' 'sanitize erase is not supported on the ' 'controller.') - }} + } + } ret = manager.erase_devices() self.assertEqual(expt_ret, ret) diff --git a/proliantutils/tests/ilo/ris_sample_outputs.py b/proliantutils/tests/ilo/ris_sample_outputs.py index 3f48c826..d4d91b18 100755 --- a/proliantutils/tests/ilo/ris_sample_outputs.py +++ b/proliantutils/tests/ilo/ris_sample_outputs.py @@ -18,7 +18,7 @@ MODULE = "RIS" HTTP_BOOT_URL = { "UefiShellStartupUrl": "http://10.10.1.30:8081/startup.nsh" - } +} RESPONSE_BODY_FOR_REST_OP = """ { @@ -374,14 +374,12 @@ REST_GET_SECURE_BOOT = { "SecureBootCurrentState": False, "SecureBootEnable": True, "Type": "HpSecureBoot.0.9.5", - "links": - { - "self": - { - "href": "/rest/v1/Systems/1/SecureBoot" - } + "links": { + "self": { + "href": "/rest/v1/Systems/1/SecureBoot" } } +} REST_FAILURE_OUTPUT = { 'Type': 'ExtendedError.1.0.0', diff --git a/proliantutils/tests/ilo/snmp/test_snmp_cpqdisk_sizes.py b/proliantutils/tests/ilo/snmp/test_snmp_cpqdisk_sizes.py index 49361536..986760cb 100644 --- a/proliantutils/tests/ilo/snmp/test_snmp_cpqdisk_sizes.py +++ b/proliantutils/tests/ilo/snmp/test_snmp_cpqdisk_sizes.py @@ -44,7 +44,7 @@ class SnmpTestCase(unittest.TestCase): {'cpqDaPhyDrvSize': '286102'}} get_disk_mock.return_value = disk_snmp_data actual_size = snmp.get_local_gb(iLOIp, snmp_credentials) - expected_size = (572316/1024) + expected_size = (572316 / 1024) self.assertEqual(actual_size, expected_size) get_disk_mock.assert_called_once_with(iLOIp, snmp_credentials) diff --git a/proliantutils/tests/ilo/test_client.py b/proliantutils/tests/ilo/test_client.py index 306b2a3a..8ff69b78 100644 --- a/proliantutils/tests/ilo/test_client.py +++ b/proliantutils/tests/ilo/test_client.py @@ -135,7 +135,7 @@ class IloClientInitTestCase(testtools.TestCase): ribcl_obj_mock.get_product_name.return_value = 'product' c = client.IloClient.cls("1.2.3.4", "admin", "Admin", - timeout=120, port=4430, + timeout=120, port=4430, bios_password='foo', cacert='/somewhere') @@ -157,7 +157,7 @@ class IloClientInitTestCase(testtools.TestCase): ribcl_obj_mock.get_product_name.return_value = 'product' c = client.IloClient.cls("FE80::9AF2:B3FF:FEEE:F884%eth0", "admin", - "Admin", timeout=120, port=4430, + "Admin", timeout=120, port=4430, bios_password='foo', cacert='/somewhere') @@ -182,7 +182,7 @@ class IloClientInitTestCase(testtools.TestCase): ribcl_obj_mock.get_product_name.return_value = 'product' c = client.IloClient.cls("2001:0db8:85a3::8a2e:0370:7334", "admin", - "Admin", timeout=120, port=4430, + "Admin", timeout=120, port=4430, bios_password='foo', cacert='/somewhere') @@ -208,7 +208,7 @@ class IloClientInitTestCase(testtools.TestCase): ribcl_obj_mock.get_product_name.return_value = 'ProLiant DL180 Gen10' c = client.IloClient.cls("1.2.3.4", "admin", "Admin", - timeout=120, port=4430, + timeout=120, port=4430, bios_password='foo', cacert='/somewhere') @@ -235,7 +235,7 @@ class IloClientInitTestCase(testtools.TestCase): exception.IloError('RIBCL is disabled')) c = client.IloClient.cls("1.2.3.4", "admin", "Admin", - timeout=120, port=4430, + timeout=120, port=4430, bios_password='foo', cacert='/somewhere') @@ -258,7 +258,7 @@ class IloClientInitTestCase(testtools.TestCase): self, redfish_mock, ribcl_mock): c = client.IloClient.cls("1.2.3.4", "admin", "Admin", - timeout=120, port=4430, + timeout=120, port=4430, bios_password='foo', cacert='/somewhere', use_redfish_only=True) ribcl_mock.assert_called_once_with( @@ -290,7 +290,7 @@ class IloClientInitTestCase(testtools.TestCase): 'snmp_inspection': 'true'} c = client.IloClient.cls("1.2.3.4", "admin", "Admin", - timeout=120, port=4430, + timeout=120, port=4430, bios_password='foo', cacert='/somewhere', snmp_credentials=snmp_credentials) @@ -321,7 +321,7 @@ class IloClientInitTestCase(testtools.TestCase): self.assertRaises(exception.IloInvalidInputError, client.IloClient.cls, "1.2.3.4", "admin", "Admin", - timeout=120, port=4430, + timeout=120, port=4430, bios_password='foo', cacert='/somewhere', snmp_credentials=snmp_credentials) @@ -1411,8 +1411,8 @@ class IloRedfishClientTestCase(testtools.TestCase): if redfish_method_name not in ('unset_iscsi_boot_info', 'set_iscsi_boot_info'): self.assertTrue(eval( - 'self.redfish_mock.return_value.' + - redfish_method_name).called) + 'self.redfish_mock.return_value.' + + redfish_method_name).called) validate_method_calls.no_test_cases += 1 except TypeError: missed_ops.append(redfish_method_name) diff --git a/proliantutils/tests/ilo/test_firmware_controller.py b/proliantutils/tests/ilo/test_firmware_controller.py index 38ad1ebf..6ff09fab 100644 --- a/proliantutils/tests/ilo/test_firmware_controller.py +++ b/proliantutils/tests/ilo/test_firmware_controller.py @@ -338,9 +338,9 @@ def setup_fixture_create_fw_file_extracts_for(format): fw_files_dir = temp_dir elif format == 'rpm': fw_files_dir = os.path.join( - temp_dir + - '/please_remove_rpm_file_extracts/usr/lib/i386-linux-gnu/' + - 'hp-firmware-iloX-xxxx' + temp_dir + + '/please_remove_rpm_file_extracts/usr/lib/i386-linux-gnu/' + + 'hp-firmware-iloX-xxxx' ) else: fw_files_dir = temp_dir diff --git a/proliantutils/tests/ilo/test_ribcl.py b/proliantutils/tests/ilo/test_ribcl.py index ad18c663..386166ed 100644 --- a/proliantutils/tests/ilo/test_ribcl.py +++ b/proliantutils/tests/ilo/test_ribcl.py @@ -236,14 +236,14 @@ class IloRibclTestCase(unittest.TestCase): self.assertRaises( exception.IloCommandNotSupportedError, self.ilo.get_http_boot_url - ) + ) def test_set_http_boot_url(self): self.assertRaises( exception.IloCommandNotSupportedError, self.ilo.set_http_boot_url, 'http://10.10.1.30:8081/startup.nsh' - ) + ) @mock.patch.object(ribcl.RIBCLOperations, '_request_ilo') def test_reset_server(self, request_ilo_mock): @@ -830,7 +830,7 @@ class IloRibclTestCase(unittest.TestCase): root_xml_string = constants.UPDATE_ILO_FIRMWARE_INPUT_XML % ( self.ilo.password, self.ilo.login, 12345, 'raw_fw_file.bin') - root_xml_string = re.sub('\n\s*', '', root_xml_string) + root_xml_string = re.sub(r"\n\s*", '', root_xml_string) ((ribcl_obj, xml_elem), the_ext_header_dict) = ( _request_ilo_mock.call_args) @@ -864,7 +864,7 @@ class IloRibclTestCase(unittest.TestCase): root_xml_string = constants.UPDATE_NONILO_FIRMWARE_INPUT_XML % ( self.ilo.password, self.ilo.login, 12345, 'raw_fw_file.bin') - root_xml_string = re.sub('\n\s*', '', root_xml_string) + root_xml_string = re.sub(r"\n\s*", '', root_xml_string) ((ribcl_obj, xml_elem), the_ext_header_dict) = ( _request_ilo_mock.call_args) @@ -1091,5 +1091,6 @@ class IloRibclTestCaseBeforeRisSupport(unittest.TestCase): 'ProLiant DL380 G7', self.ilo.get_bios_settings_result) + if __name__ == '__main__': unittest.main() diff --git a/proliantutils/tests/ilo/test_ris.py b/proliantutils/tests/ilo/test_ris.py index f7799069..4c1e96db 100755 --- a/proliantutils/tests/ilo/test_ris.py +++ b/proliantutils/tests/ilo/test_ris.py @@ -76,7 +76,7 @@ class IloRisTestCase(testtools.TestCase): _uefi_boot_mode_mock.assert_called_once_with() self.assertEqual( 'http://10.10.1.30:8081/startup.nsh', result['UefiShellStartupUrl'] - ) + ) @mock.patch.object(ris.RISOperations, '_change_bios_setting') @mock.patch.object(ris.RISOperations, '_is_boot_mode_uefi') @@ -87,7 +87,7 @@ class IloRisTestCase(testtools.TestCase): _uefi_boot_mode_mock.assert_called_once_with() change_bios_setting_mock.assert_called_once_with({ "UefiShellStartupUrl": "http://10.10.1.30:8081/startup.nsh" - }) + }) @mock.patch.object(ris.RISOperations, '_is_boot_mode_uefi') def test_get_http_boot_url_bios(self, _uefi_boot_mode_mock): @@ -1807,7 +1807,7 @@ class TestRISOperationsPrivateMethods(testtools.TestCase): '12:44:6a:3b:04:11', '13:44:6a:3b:04:13'] self.assertRaisesRegex( exception.InvalidInputError, - "Given macs: \['12:44:6A:3B:04:15'\] not found in the system", + r"Given macs: \['12:44:6A:3B:04:15'\] not found in the system", self.client._validate_macs, ['12:44:6A:3B:04:15']) @mock.patch.object(ris.RISOperations, '_get_collection') @@ -1883,7 +1883,7 @@ class TestRISOperationsPrivateMethods(testtools.TestCase): validate_macs_mock.side_effect = exception.InvalidInputError(msg) self.assertRaisesRegex( exception.InvalidInputError, - "Given macs: \['12:44:6A:3B:04:15'\] not found in the system", + r"Given macs: \['12:44:6A:3B:04:15'\] not found in the system", self.client._change_iscsi_settings, {}, ['12:44:6A:3B:04:15']) @mock.patch.object(ris.RISOperations, '_check_iscsi_rest_patch_allowed') diff --git a/proliantutils/tests/redfish/resources/system/test_system.py b/proliantutils/tests/redfish/resources/system/test_system.py index 3aec6997..5458e591 100644 --- a/proliantutils/tests/redfish/resources/system/test_system.py +++ b/proliantutils/tests/redfish/resources/system/test_system.py @@ -1175,7 +1175,6 @@ class HPESystemTestCase(testtools.TestCase): '12:44:6a:3b:04:11', '13:44:6a:3b:04:13'] self.assertRaisesRegex( exception.InvalidInputError, - "Given macs: \['14:23:AD:3B:4C:78'\] " - "not found in the system", + r"Given macs: \['14:23:AD:3B:4C:78'\] not found in the system", self.sys_inst.validate_macs, ['12:44:6a:3b:04:11', '14:23:AD:3B:4C:78']) diff --git a/proliantutils/tests/redfish/test_redfish.py b/proliantutils/tests/redfish/test_redfish.py index 941ab859..612347d2 100644 --- a/proliantutils/tests/redfish/test_redfish.py +++ b/proliantutils/tests/redfish/test_redfish.py @@ -1340,7 +1340,7 @@ class RedfishOperationsTestCase(testtools.TestCase): exception.InvalidInputError(msg)) self.assertRaisesRegex( exception.InvalidInputError, - "Given macs: \['12:44:6A:3B:04:15'\] not found in the system", + r"Given macs: \['12:44:6A:3B:04:15'\] not found in the system", self.rf_client._change_iscsi_target_settings, {}, ['12:44:6A:3B:04:15']) diff --git a/proliantutils/tests/sum/test_sum_controller.py b/proliantutils/tests/sum/test_sum_controller.py index fe81e09f..770b4d04 100644 --- a/proliantutils/tests/sum/test_sum_controller.py +++ b/proliantutils/tests/sum/test_sum_controller.py @@ -61,7 +61,7 @@ class SUMFirmwareUpdateTest(testtools.TestCase): 'Summary': ("The smart component was installed successfully." " Status of updated components: Total: 2 Success: 2 " "Failed: 0.") - } + } stdout = sum_controller._execute_sum("hpsum", "/tmp/hpsum", components=None) @@ -103,7 +103,7 @@ class SUMFirmwareUpdateTest(testtools.TestCase): 'Summary': ("The installation of the component failed. Status " "of updated components: Total: 2 Success: 1 " "Failed: 1.") - } + } value = ("hpsum_service_x64 started successfully. Sending Shutdown " "request to engine. Successfully shutdown the service.") execute_mock.side_effect = processutils.ProcessExecutionError( diff --git a/proliantutils/utils.py b/proliantutils/utils.py index 76579d98..af7e758c 100644 --- a/proliantutils/utils.py +++ b/proliantutils/utils.py @@ -58,7 +58,7 @@ def process_firmware_image(compact_firmware_file, ilo_object): # to be on a http store, and hence requires the upload to happen for the # firmware file. to_upload = False - m = re.search('Gen(\d+)', ilo_object.model) + m = re.search(r"Gen(\d+)", ilo_object.model) if int(m.group(1)) > 8: to_upload = True @@ -136,24 +136,24 @@ def verify_image_checksum(image_location, expected_checksum): def validate_href(image_href): - """Validate HTTP image reference. + """Validate HTTP image reference. - :param image_href: Image reference. - :raises: exception.ImageRefValidationFailed if HEAD request failed or - returned response code not equal to 200. - :returns: Response to HEAD request. - """ - try: - response = requests.head(image_href) - if response.status_code != http_client.OK: - raise exception.ImageRefValidationFailed( - image_href=image_href, - reason=("Got HTTP code %s instead of 200 in response to " - "HEAD request." % response.status_code)) - except requests.RequestException as e: - raise exception.ImageRefValidationFailed(image_href=image_href, - reason=e) - return response + :param image_href: Image reference. + :raises: exception.ImageRefValidationFailed if HEAD request failed or + returned response code not equal to 200. + :returns: Response to HEAD request. + """ + try: + response = requests.head(image_href) + if response.status_code != http_client.OK: + raise exception.ImageRefValidationFailed( + image_href=image_href, + reason=("Got HTTP code %s instead of 200 in response to " + "HEAD request." % response.status_code)) + except requests.RequestException as e: + raise exception.ImageRefValidationFailed(image_href=image_href, + reason=e) + return response def apply_bios_properties_filter(settings, filter_to_be_applied): diff --git a/tox.ini b/tox.ini index 3eee2f68..516bb4f1 100644 --- a/tox.ini +++ b/tox.ini @@ -16,7 +16,7 @@ commands = stestr run {posargs} [testenv:pep8] deps = - hacking!=0.13.0,<0.14,>=0.12.0 + hacking>=3.0.0,<3.1.0 commands = flake8 proliantutils @@ -35,6 +35,10 @@ commands = coverage html -d ./cover --omit='*tests*' [flake8] +# [C901] function is too complex. +# [E731] do not assign a lambda expression, use a def +# [W503] Line break occurred before a binary operator. Conflicts with W504. +ignore = C901,E731,W503 # Exclude MIB directories from flake8/pep8 tests as these are # autogenerated files. exclude = ./proliantutils/ilo/snmp/cpqdisk_mibs