def gather_version_info_for_report(config): """ This function gather all version related info used for report. Args: config (pytest.config): Pytest config object """ gather_version_completed = False try: # add cluster version clusterversion = get_cluster_version() config._metadata['Cluster Version'] = clusterversion # add ceph version ceph_version = get_ceph_version() config._metadata['Ceph Version'] = ceph_version # add csi versions csi_versions = get_csi_versions() config._metadata['cephfsplugin'] = csi_versions.get('csi-cephfsplugin') config._metadata['rbdplugin'] = csi_versions.get('csi-rbdplugin') # add ocs operator version if ocsci_config.REPORTING['us_ds'] == 'DS': config._metadata['OCS operator'] = ( get_ocs_build_number() ) mods = {} mods = get_version_info( namespace=ocsci_config.ENV_DATA['cluster_namespace'] ) skip_list = ['ocs-operator'] for key, val in mods.items(): if key not in skip_list: config._metadata[key] = val.rsplit('/')[-1] gather_version_completed = True except ResourceNotFoundError as ex: log.error( "Problem ocurred when looking for some resource! Error: %s", ex ) except FileNotFoundError as ex: log.error("File not found! Error: %s", ex) except CommandFailed as ex: log.error("Failed to execute command! Error: %s", ex) except Exception as ex: log.error("Failed to gather version info! Error: %s", ex) finally: if not gather_version_completed: log.warning( "Failed to gather version details! The report of version might" "not be complete!" )
def gather_version_info_for_report(config): """ This function gather all version related info used for report. Args: config (pytest.config): Pytest config object """ gather_version_completed = False try: # add cluster version clusterversion = get_cluster_version() config._metadata["Cluster Version"] = clusterversion # add ceph version if not ocsci_config.ENV_DATA["mcg_only_deployment"]: ceph_version = get_ceph_version() config._metadata["Ceph Version"] = ceph_version # add csi versions csi_versions = get_csi_versions() config._metadata["cephfsplugin"] = csi_versions.get( "csi-cephfsplugin") config._metadata["rbdplugin"] = csi_versions.get("csi-rbdplugin") # add ocs operator version config._metadata["OCS operator"] = get_ocs_build_number() mods = {} mods = get_version_info( namespace=ocsci_config.ENV_DATA["cluster_namespace"]) skip_list = ["ocs-operator"] for key, val in mods.items(): if key not in skip_list: config._metadata[key] = val.rsplit("/")[-1] gather_version_completed = True except ResourceNotFoundError: log.exception("Problem occurred when looking for some resource!") except FileNotFoundError: log.exception("File not found!") except CommandFailed: log.exception("Failed to execute command!") except Exception: log.exception("Failed to gather version info!") finally: if not gather_version_completed: log.warning( "Failed to gather version details! The report of version might" "not be complete!")
def pytest_configure(config): """ Load config files, and initialize ocs-ci library. Args: config (pytest.config): Pytest config object """ if not (config.getoption("--help") or config.getoption("collectonly")): process_cluster_cli_params(config) config_file = os.path.expanduser( os.path.join( ocsci_config.RUN['log_dir'], f"run-{ocsci_config.RUN['run_id']}-config.yaml", )) dump_config_to_file(config_file) log.info(f"Dump of the consolidated config file is located here: " f"{config_file}") # Add OCS related versions to the html report and remove extraneous metadata markers_arg = config.getoption('-m') if ocsci_config.RUN['cli_params'].get('teardown') or ( "deployment" in markers_arg and ocsci_config.RUN['cli_params'].get('deploy')): log.info( "Skiping versions collecting because: Deploy or destroy of " "cluster is performed.") return print("Collecting Cluster versions") # remove extraneous metadata del config._metadata['Python'] del config._metadata['Packages'] del config._metadata['Plugins'] del config._metadata['Platform'] config._metadata['Test Run Name'] = get_testrun_name() try: # add cluster version clusterversion = get_cluster_version() config._metadata['Cluster Version'] = clusterversion # add ceph version ceph_version = get_ceph_version() config._metadata['Ceph Version'] = ceph_version # add csi versions csi_versions = get_csi_versions() config._metadata['cephfsplugin'] = csi_versions.get( 'csi-cephfsplugin') config._metadata['rbdplugin'] = csi_versions.get('csi-rbdplugin') # add ocs operator version ocs_catalog = CatalogSource( resource_name=OPERATOR_CATALOG_SOURCE_NAME, namespace="openshift-marketplace") if ocsci_config.REPORTING['us_ds'] == 'DS': config._metadata['OCS operator'] = ( ocs_catalog.get_image_name()) mods = get_version_info( namespace=ocsci_config.ENV_DATA['cluster_namespace']) skip_list = ['ocs-operator'] for key, val in mods.items(): if key not in skip_list: config._metadata[key] = val.rsplit('/')[-1] except (FileNotFoundError, CommandFailed): pass