From 7bf3a477f34d85c21b4e048d4577006ea279b1d5 Mon Sep 17 00:00:00 2001 From: Eric Barrett Date: Fri, 29 Mar 2019 08:59:40 -0400 Subject: [PATCH] Enable Flake8 E12X Errors Flake8 currently ignores the following Errors: E121: continuation line under-indented for hanging indent E123: closing bracket doesn't match indentation of opening bracket E124: closing bracket doesn't match visual indentation E125: continuation line with same indent as next logical line E126: continuation line over-indented for hanging indent E127: continuation line over-indented for visual indent E128: continuation line under-indented for visual indent Enable them for more consistent formatting of code Change-Id: I415d4824a1f335ba3fceb488b0ae60b9861a036a Story: 2004515 Task: 30076 Signed-off-by: Eric Barrett --- .../ceph-manager/ceph_manager/exception.py | 8 +-- .../ceph-manager/ceph_manager/monitor.py | 6 +- ceph/ceph/files/ceph-manage-journal.py | 36 +++++----- ceph/ceph/files/osd-wait-status.py | 8 +-- logging/logmgmt/logmgmt/logmgmt/logmgmt.py | 14 ++-- logging/logmgmt/logmgmt/setup.py | 13 ++-- .../hostdata-collectors/scripts/buddyinfo.py | 6 +- .../storage_topology/exec/storage_topology.py | 2 +- .../vm_topology/exec/vm_topology.py | 70 +++++++++---------- tox.ini | 10 +-- .../platform_util/license/license.py | 16 ++--- 11 files changed, 90 insertions(+), 99 deletions(-) diff --git a/ceph/ceph-manager/ceph-manager/ceph_manager/exception.py b/ceph/ceph-manager/ceph-manager/ceph_manager/exception.py index a098a1dd8..8fc7c80e4 100644 --- a/ceph/ceph-manager/ceph-manager/ceph_manager/exception.py +++ b/ceph/ceph-manager/ceph-manager/ceph_manager/exception.py @@ -33,13 +33,13 @@ class CephManagerException(Exception): class CephPoolSetQuotaFailure(CephManagerException): message = _("Error seting the OSD pool " - "quota %(name)s for %(pool)s to %(value)s") \ - + ": %(reason)s" + "quota %(name)s for %(pool)s to " + "%(value)s") + ": %(reason)s" class CephPoolGetQuotaFailure(CephManagerException): - message = _("Error geting the OSD pool quota for %(pool)s") \ - + ": %(reason)s" + message = _("Error geting the OSD pool quota for " + "%(pool)s") + ": %(reason)s" class CephPoolCreateFailure(CephManagerException): diff --git a/ceph/ceph-manager/ceph-manager/ceph_manager/monitor.py b/ceph/ceph-manager/ceph-manager/ceph_manager/monitor.py index 11e8c8b86..aef26b22e 100644 --- a/ceph/ceph-manager/ceph-manager/ceph_manager/monitor.py +++ b/ceph/ceph-manager/ceph-manager/ceph_manager/monitor.py @@ -140,9 +140,9 @@ class HandleUpgradesMixin(object): # unsurpress require_jewel_osds in case upgrade # is aborting if (state in [ - constants.UPGRADE_ABORTING, - constants.UPGRADE_ABORT_COMPLETING, - constants.UPGRADE_ABORTING_ROLLBACK]): + constants.UPGRADE_ABORTING, + constants.UPGRADE_ABORT_COMPLETING, + constants.UPGRADE_ABORTING_ROLLBACK]): self.wait_for_upgrade_complete = False return health diff --git a/ceph/ceph/files/ceph-manage-journal.py b/ceph/ceph/files/ceph-manage-journal.py index 4a4c71611..27b445dbf 100644 --- a/ceph/ceph/files/ceph-manage-journal.py +++ b/ceph/ceph/files/ceph-manage-journal.py @@ -99,7 +99,7 @@ def is_partitioning_correct(disk_path, partition_sizes): str(size) + "[\\.0]*MiB") if not re.search(regex, output, re.MULTILINE): print("Journal partition %(node)s size is not %(size)s, " - "zapping disk" % {"node": partition_node, "size": size}) + "zapping disk" % {"node": partition_node, "size": size}) return False partition_index += 1 @@ -124,14 +124,14 @@ def create_partitions(disk_path, partition_sizes): links = [] if os.path.isdir(DISK_BY_PARTUUID): links = [os.path.join(DISK_BY_PARTUUID, l) for l in os.listdir(DISK_BY_PARTUUID) - if os.path.islink(os.path.join(DISK_BY_PARTUUID, l))] + if os.path.islink(os.path.join(DISK_BY_PARTUUID, l))] # Erase all partitions on current node by creating a new GPT table _, err, ret = command(["parted", "-s", disk_node, "mktable", "gpt"]) if ret: print("Error erasing partition table of %(node)s\n" - "Return code: %(ret)s reason: %(reason)s" % - {"node": disk_node, "ret": ret, "reason": err}) + "Return code: %(ret)s reason: %(reason)s" % + {"node": disk_node, "ret": ret, "reason": err}) exit(1) # Erase old symlinks @@ -152,20 +152,20 @@ def create_partitions(disk_path, partition_sizes): "end": used_space_mib + size, "reason": err} print("Created partition from start=%(start)s MiB to end=%(end)s MiB" - " on %(disk_node)s" % parms) + " on %(disk_node)s" % parms) if ret: print("Failed to create partition with " - "start=%(start)s, end=%(end)s " - "on %(disk_node)s reason: %(reason)s" % parms) + "start=%(start)s, end=%(end)s " + "on %(disk_node)s reason: %(reason)s" % parms) exit(1) # Set partition type to ceph journal # noncritical operation, it makes 'ceph-disk list' output correct info cmd = ['sgdisk', '--change-name={num}:ceph journal'.format(num=num), '--typecode={num}:{uuid}'.format( - num=num, - uuid=JOURNAL_UUID, - ), + num=num, + uuid=JOURNAL_UUID, + ), disk_node] _, err, ret = command(cmd) if ret: @@ -263,11 +263,11 @@ def fix_location(mount_point, journal_path, osdid): "reason": err} if not ret: print("Prepared new journal partition: %(journal_node)s " - "for osd id: %(osdid)s" % params) + "for osd id: %(osdid)s" % params) else: print("Error initializing journal node: " - "%(journal_node)s for osd id: %(osdid)s " - "ceph-osd return code: %(ret)s reason: %(reason)s" % params) + "%(journal_node)s for osd id: %(osdid)s " + "ceph-osd return code: %(ret)s reason: %(reason)s" % params) ######## @@ -308,8 +308,8 @@ def main(argv): create_partitions(partitions['disk_path'], partitions['journals']) else: print("Partition table for %s is correct, " - "no need to repartition" % - device_path_to_device_node(partitions['disk_path'])) + "no need to repartition" % + device_path_to_device_node(partitions['disk_path'])) elif location: # we need to have the data partition mounted & we can let it mounted mount_point = mount_data_partition(location['data_path'], @@ -319,13 +319,13 @@ def main(argv): location['journal_path'], location['osdid']): print("Fixing journal location for " - "OSD id: %(id)s" % {"node": location['data_path'], - "id": location['osdid']}) + "OSD id: %(id)s" % {"node": location['data_path'], + "id": location['osdid']}) fix_location(mount_point, location['journal_path'], location['osdid']) else: print("Journal location for %s is correct," - "no need to change it" % location['data_path']) + "no need to change it" % location['data_path']) main(sys.argv[1:]) diff --git a/ceph/ceph/files/osd-wait-status.py b/ceph/ceph/files/osd-wait-status.py index d7fd080c5..3ff8e91c5 100644 --- a/ceph/ceph/files/osd-wait-status.py +++ b/ceph/ceph/files/osd-wait-status.py @@ -75,8 +75,8 @@ def get_osd_tree(): 'osd', 'tree', '--format', 'json'] try: p = subprocess.Popen(command, - stdout=subprocess.PIPE, - stderr=subprocess.PIPE) + stdout=subprocess.PIPE, + stderr=subprocess.PIPE) output, error = p.communicate() if p.returncode != 0: raise OsdException( @@ -100,7 +100,7 @@ def get_osd_tree(): def osd_match_status(target_osd, target_status, - reverse_logic): + reverse_logic): LOG.info(('Match status: ' 'target_osd={}, ' 'target status={}, ' @@ -237,7 +237,7 @@ if __name__ == "__main__": LOG.warn( ('Retry error: {}. ' 'Elapsed time: {:.02f} seconds'.format( - e, time.time() - start))) + e, time.time() - start))) except OsdException as e: LOG.warn( ('OSD wait error: {}. ' diff --git a/logging/logmgmt/logmgmt/logmgmt/logmgmt.py b/logging/logmgmt/logmgmt/logmgmt/logmgmt.py index bd0aa008e..3553700e5 100644 --- a/logging/logmgmt/logmgmt/logmgmt/logmgmt.py +++ b/logging/logmgmt/logmgmt/logmgmt/logmgmt.py @@ -90,9 +90,9 @@ class LogMgmtDaemon(): # Use python's log rotation, rather than logrotate handler = logging.handlers.RotatingFileHandler( - LOG_FILE, - maxBytes=LOG_FILE_MAX_BYTES, - backupCount=LOG_FILE_BACKUP_COUNT) + LOG_FILE, + maxBytes=LOG_FILE_MAX_BYTES, + backupCount=LOG_FILE_BACKUP_COUNT) my_logger = logging.getLogger() my_logger.setLevel(level) @@ -147,10 +147,10 @@ class LogMgmtDaemon(): continue # Ignore some files - if '/var/log/puppet' in fname \ - or '/var/log/dmesg' in fname \ - or '/var/log/rabbitmq' in fname \ - or '/var/log/lastlog' in fname: + if ('/var/log/puppet' in fname + or '/var/log/dmesg' in fname + or '/var/log/rabbitmq' in fname + or '/var/log/lastlog' in fname): continue if os.path.exists(fname): diff --git a/logging/logmgmt/logmgmt/setup.py b/logging/logmgmt/logmgmt/setup.py index 34db8fb92..deab3ddcd 100644 --- a/logging/logmgmt/logmgmt/setup.py +++ b/logging/logmgmt/logmgmt/setup.py @@ -10,10 +10,9 @@ SPDX-License-Identifier: Apache-2.0 import setuptools setuptools.setup(name='logmgmt', - version='1.0.0', - description='logmgmt', - license='Apache-2.0', - packages=['logmgmt'], - entry_points={ - } -) + version='1.0.0', + description='logmgmt', + license='Apache-2.0', + packages=['logmgmt'], + entry_points={} + ) diff --git a/tools/engtools/hostdata-collectors/scripts/buddyinfo.py b/tools/engtools/hostdata-collectors/scripts/buddyinfo.py index 11ae079b5..ab91a352d 100644 --- a/tools/engtools/hostdata-collectors/scripts/buddyinfo.py +++ b/tools/engtools/hostdata-collectors/scripts/buddyinfo.py @@ -88,9 +88,9 @@ class BuddyInfo(object): ret_string += " Zone: %s\n" % zoneinfo.get("zone") ret_string += " Free KiB in zone: %.2f\n" % (sum(zoneinfo.get("usage")) / (1024.0)) ret_string += '\t{0:{align}{width}} {1:{align}{width}} {2:{align}{width}}\n'.format( - "Fragment size", "Free fragments", "Total available KiB", - width=width, - align="<") + "Fragment size", "Free fragments", "Total available KiB", + width=width, + align="<") for idx in range(len(zoneinfo.get("sz_fragment"))): ret_string += '\t{order:{align}{width}} {nr:{align}{width}} {usage:{align}{width}}\n'.format( width=width, diff --git a/tools/storage-topology/storage-topology/storage_topology/exec/storage_topology.py b/tools/storage-topology/storage-topology/storage_topology/exec/storage_topology.py index d52e8c97f..b56885eb0 100644 --- a/tools/storage-topology/storage-topology/storage_topology/exec/storage_topology.py +++ b/tools/storage-topology/storage-topology/storage_topology/exec/storage_topology.py @@ -410,7 +410,7 @@ def main(): ts = datetime.datetime.now() if show['debug']: print("%s: %s options: view:%s System api version: %s" - % (prog, ts.isoformat(), show, api_version)) + % (prog, ts.isoformat(), show, api_version)) cgts_client_creds = get_system_creds() if not cgts_client_creds['os_username']: diff --git a/tools/vm-topology/vm-topology/vm_topology/exec/vm_topology.py b/tools/vm-topology/vm-topology/vm_topology/exec/vm_topology.py index 787492765..48d57a3e9 100644 --- a/tools/vm-topology/vm-topology/vm_topology/exec/vm_topology.py +++ b/tools/vm-topology/vm-topology/vm_topology/exec/vm_topology.py @@ -312,14 +312,14 @@ def parse_arguments(debug, show): default_config_files=[NOVACONF], prog=os.path.basename(sys.argv[0]), description=( - 'Tool to summarize server resouce usage and vcpu placement' - 'related attributes for nova and libvirt.'), + 'Tool to summarize server resouce usage and vcpu placement' + 'related attributes for nova and libvirt.'), # NOTE: oslo_config implementation of _CachedArgumentParser does not # configure argparse formatter_class. The resulting epilog text is # automatically text-wrapped which is not desired. Manually adding # newlines does not work either. The epilog text is disabled for now. #epilog=help_text_epilog(), - ) + ) # Configure logging to appropriate level level = logging.INFO @@ -496,7 +496,7 @@ def range_to_list(csv_range=None): if not csv_range: return [] ranges = [(lambda L: range(L[0], L[-1] + 1))([int(x) for x in r.split('-')]) - for r in csv_range.split(',')] + for r in csv_range.split(',')] return [y for x in ranges for y in x] @@ -874,7 +874,7 @@ def print_all_tables(tenants=None, 'Avail Zone', 'Hosts', 'Metadata', - ], caching=False) + ], caching=False) pt.align = 'l' for name, A in sorted(aggregates.items()): pt.add_row( @@ -882,7 +882,7 @@ def print_all_tables(tenants=None, str(A.availability_zone), ", ".join([str(x) for x in A.hosts]), str(A.metadata) - ]) + ]) print(pt) # Print list of compute host hypervisors, showing per numa details @@ -906,7 +906,7 @@ def print_all_tables(tenants=None, 'A:mem_2M', 'A:mem_1G', 'Aggregate', - ]) + ]) pt.align = 'l' for C in ['servers', 'pcpus', 'U:dedicated', 'U:shared', 'memory', 'U:memory', 'A:mem_4K', 'A:mem_2M', 'A:mem_1G']: @@ -965,7 +965,7 @@ def print_all_tables(tenants=None, cell['memory_avail_1G'], textwrap.fill(", ".join([str(x) for x in A]), width=75), - ]) + ]) else: pt.add_row( ['', # host @@ -983,7 +983,7 @@ def print_all_tables(tenants=None, cell['memory_avail_2M'], cell['memory_avail_1G'], '', # agg - ]) + ]) first = False if len(computes_cell[host_name]) < 1: @@ -1005,7 +1005,7 @@ def print_all_tables(tenants=None, '-', # memory_avail_2M '-', # memory_avail_1G ", ".join([str(x) for x in A]), - ]) + ]) # Add row with statistics Y = statistics @@ -1025,7 +1025,7 @@ def print_all_tables(tenants=None, '-', # memory_avail_2M '-', # memory_avail_1G '-', # agg - ]) + ]) print(pt) # Print list of compute hosts topology @@ -1133,7 +1133,7 @@ def print_all_tables(tenants=None, 'thread_id', 'sibling_id', 'affinity' - ]) + ]) pt.align = 'r' pt.align['affinity'] = 'l' for i in cpu_ids: @@ -1144,7 +1144,7 @@ def print_all_tables(tenants=None, topology_idx[i]['t'], list_to_range(siblings[i]) or '-', '0x%x' % (1 << i) - ]) + ]) print(pt) print() @@ -1167,7 +1167,7 @@ def print_all_tables(tenants=None, 'memory', 'instance_topology', 'in_libvirt', - ]) + ]) pt.align = 'l' for C in ['vcpus', 'memory']: pt.align[C] = 'r' @@ -1175,10 +1175,10 @@ def print_all_tables(tenants=None, pt.align[C] = 'c' for _, S in sorted(servers.items(), key=lambda k_v4: (natural_keys(k_v4[1].host), - k_v4[1].server_group, - k_v4[1].instance_name) + k_v4[1].server_group, + k_v4[1].instance_name) if (k_v4[1].host is not None) else 'None' - ): + ): if S.server_group is not None and S.server_group: match = re_server_group.search(S.server_group) if match: @@ -1241,7 +1241,7 @@ def print_all_tables(tenants=None, flavor_ram, S.topology, 'yes' if in_libvirt else 'NO', - ]) + ]) print(pt) # Print each libvirt domain info @@ -1260,7 +1260,7 @@ def print_all_tables(tenants=None, 'nodelist', 'cpulist', 'in_nova', - ]) + ]) pt.align = 'l' for C in ['id', 'vcpus', 'memory', 'nodelist']: pt.align[C] = 'r' @@ -1282,7 +1282,7 @@ def print_all_tables(tenants=None, list_to_range(S['nodelist']) or '-', list_to_range(S['cpulist']) or '-', 'yes' if in_nova else 'NO', - ]) + ]) print(pt) # Print list of in-progress migrations @@ -1299,7 +1299,7 @@ def print_all_tables(tenants=None, 'S:flavor[PKey]', 'D:flavor[PKey]', 'created_at', - ]) + ]) pt.align = 'l' for _, M in sorted(migrations.items(), key=lambda k_v6: (k_v6[0])): @@ -1313,7 +1313,7 @@ def print_all_tables(tenants=None, M.new_instance_type_id, M.old_instance_type_id, M.created_at, - ]) + ]) print(pt) # Print flavors for instances currently in use @@ -1332,7 +1332,7 @@ def print_all_tables(tenants=None, 'rxtx_factor', 'is_public', 'extra_specs', - ]) + ]) pt.align = 'l' for C in ['id', 'vcpus', 'ram', 'disk', 'ephemeral', 'swap', 'rxtx_factor']: @@ -1351,7 +1351,7 @@ def print_all_tables(tenants=None, F.rxtx_factor, F.is_public, pp.pformat(extra_specs[F.id]), - ]) + ]) print(pt) # Print images for instances currently in use @@ -1367,7 +1367,7 @@ def print_all_tables(tenants=None, 'size(MB)', 'status', 'properties', - ]) + ]) pt.align = 'l' for C in ['id', 'min_disk', 'min_ram', 'status']: pt.align[C] = 'r' @@ -1382,7 +1382,7 @@ def print_all_tables(tenants=None, '%.2f' % (I.size / 1024.0 / 1024.0), I.status, I.properties, - ]) + ]) print(pt) # Print server groups for instances currently in use (exclude members data) @@ -1395,7 +1395,7 @@ def print_all_tables(tenants=None, 'Name', 'Policies', 'Metadata', - ]) + ]) pt.align = 'l' for _, S in sorted(server_groups.items(), key=lambda k_v9: (k_v9[0])): @@ -1407,7 +1407,7 @@ def print_all_tables(tenants=None, S.name, str(S.policies), str(S.metadata), - ]) + ]) print(pt) @@ -1420,7 +1420,7 @@ def _get_host_id(tenant_id=None, host_name=None): def start_process(): logger.debug('Starting: %s, %d' - % (multiprocessing.current_process().name, os.getpid())) + % (multiprocessing.current_process().name, os.getpid())) def get_info_and_display(show=None): @@ -1505,7 +1505,7 @@ def get_info_and_display(show=None): q = select([S.name, S.region_name, S.deleted_at] - ).where(S.deleted_at is None) + ).where(S.deleted_at is None) result = conn.execute(q) for row in result: field = 'region_name' @@ -1522,7 +1522,7 @@ def get_info_and_display(show=None): q = select([S.name, S.region_name, S.deleted_at] - ).where(S.deleted_at is None) + ).where(S.deleted_at is None) result = conn.execute(q) for row in result: name = str(row['name']) @@ -1680,7 +1680,7 @@ def get_info_and_display(show=None): 'image_id': image_id, 'image_name': image_name, 'vars': vars(V), - } + } del volumes_ # Get list of migrations, sort-by id which puts them in time order. @@ -1828,12 +1828,12 @@ def get_info_and_display(show=None): max(1, min(multiprocessing.cpu_count(), int(0.6 * (avail_MiB - 100.0) / process_MiB) + ) ) ) ) - ) logger.debug('WORKERS: avail=%.2f MiB, process=%.2f MiB, pool_size=%d' - % (avail_MiB, process_MiB, pool_size)) + % (avail_MiB, process_MiB, pool_size)) # Create pool of workers that connect to libvirt hypervisor. try: @@ -1956,7 +1956,7 @@ def get_info_and_display(show=None): q = select([CN.hypervisor_hostname, CN.numa_topology, CN.deleted] - ).where(CN.deleted == 0) + ).where(CN.deleted == 0) result = conn.execute(q) for row in result: host = row['hypervisor_hostname'] diff --git a/tox.ini b/tox.ini index 02ac476e0..4eff9802a 100644 --- a/tox.ini +++ b/tox.ini @@ -37,13 +37,6 @@ commands = [flake8] # E series are pep8 -# E121 continuation line under-indented for hanging indent -# E123 closing bracket does not match indentation of opening bracket's line -# E124 closing bracket does not match visual indentation -# E125 continuation line with same indent as next logical line -# E126 continuation line over-indented for hanging indent -# E127 continuation line over-indented for visual indent -# E128 continuation line under-indented for visual indent # E265 block comment should start with '# ' # E266 too many leading '#' for block comment # E302 expected 2 blank lines, found 1 @@ -76,8 +69,7 @@ commands = # B301 Python 3 does not include `.iter*` methods on dictionaries. # F series # F401 'module' imported but unused -ignore = E121,E123,E124,E125,E126,E127,E128,E265,E266, - E302,E303,E305,E402,E501,E722 +ignore = E265,E266,E302,E303,E305,E402,E501,E722 H101,H102,H104,H201,H238,H237,H306,H401,H404,H405, W191,W291,W391,W503, B001,B007,B009,B010,B301, diff --git a/utilities/platform-util/platform-util/platform_util/license/license.py b/utilities/platform-util/platform-util/platform_util/license/license.py index 8ab705b76..57c47204b 100644 --- a/utilities/platform-util/platform-util/platform_util/license/license.py +++ b/utilities/platform-util/platform-util/platform_util/license/license.py @@ -38,7 +38,7 @@ def get_licenses_info(): features = sm_common.flex_lm_license_get_feature_list() if features.value: feature_list = [feature for feature in features.value.split(',') - if feature.startswith(constants.FEATURE_PREFIX)] + if feature.startswith(constants.FEATURE_PREFIX)] sm_common.flex_lm_license_free(features) lc_attrs_list = [] @@ -66,14 +66,14 @@ def get_licenses_info(): name = constants.LICENSE_MAP.get(feature) if process_license and name: lc_attrs = dict(name=name, status=status, - expiry_date=expiry_date) + expiry_date=expiry_date) else: lc_attrs = dict() if lc_attrs: license_name = lc_attrs.get('name') if (not any(lc.get('name') == license_name - for lc in lc_attrs_list)): + for lc in lc_attrs_list)): # Get the list of license attributes for all valid # licenses and installed expired/invalid licenses lc_attrs_list.append(lc_attrs) @@ -85,8 +85,8 @@ def get_licenses_info(): # not-installed licenses for license_name in licenses: lc_attrs = dict(name=license_name, - status=constants.NOT_INSTALLED, - expiry_date='-') + status=constants.NOT_INSTALLED, + expiry_date='-') lc_attrs_list.append(lc_attrs) # Return the list of license attributes @@ -145,7 +145,7 @@ def verify_feature_license(feature_name, feature_version=None): # Return license attributes of a valid license lc_attrs = dict(name=license_name, status=constants.INSTALLED, - expiry_date=expire_date_text.value) + expiry_date=expire_date_text.value) return lc_attrs @@ -162,7 +162,7 @@ def verify_license(license_file): features = sm_common.flex_lm_license_get_feature_list() if features.value: feature_list = [feature for feature in features.value.split(',') - if feature.startswith(constants.FEATURE_PREFIX)] + if feature.startswith(constants.FEATURE_PREFIX)] sm_common.flex_lm_license_free(features) # Validate license of each feature in the license file @@ -173,7 +173,7 @@ def verify_license(license_file): if system_mode == sysinv_constants.SYSTEM_MODE_SIMPLEX: product_license = constants.AIO_SIMPLEX_SYSTEM_LICENSES elif (system_mode == sysinv_constants.SYSTEM_MODE_DUPLEX or - system_mode == sysinv_constants.SYSTEM_MODE_DUPLEX_DIRECT): + system_mode == sysinv_constants.SYSTEM_MODE_DUPLEX_DIRECT): product_license = constants.AIO_SYSTEM_LICENSES elif system_type == sysinv_constants.TIS_STD_BUILD: product_license = constants.STD_SYSTEM_LICENSES