示例#1
0
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 rook version
            rook_version = get_rook_version()
            config._metadata['Rook Version'] = rook_version

            # add csi versions
            csi_versions = get_csi_versions()
            config._metadata['csi-provisioner'] = csi_versions.get(
                'csi-provisioner')
            config._metadata['cephfsplugin'] = csi_versions.get(
                'csi-cephfsplugin')
            config._metadata['rbdplugin'] = csi_versions.get('csi-rbdplugin')
        except (FileNotFoundError, CommandFailed):
            pass
示例#2
0
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!"
            )
示例#3
0
文件: ocscilib.py 项目: jhutar/ocs-ci
def pytest_configure(config):
    """
    Load config files, and initialize ocs-ci library.

    Args:
        config (pytest.config): Pytest config object

    """
    if not config.getoption("--help"):
        process_cluster_cli_params(config)
        # 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']

        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 rook version
            rook_version = get_rook_version()
            config._metadata['Rook Version'] = rook_version

            # add csi versions
            csi_versions = get_csi_versions()
            config._metadata['csi-provisioner'] = csi_versions.get(
                'csi-provisioner')
            config._metadata['cephfsplugin'] = csi_versions.get('cephfsplugin')
            config._metadata['rbdplugin'] = csi_versions.get('rbdplugin')
        except (FileNotFoundError, CommandFailed):
            pass
示例#4
0
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!")
示例#5
0
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