async def parse_adviser_trigger_message(adviser_trigger: Dict[str, Any],
                                        openshift: OpenShift,
                                        **kwargs) -> None:
    """Parse adviser trigger message."""
    await wait_for_limit(
        openshift, workflow_namespace=Configuration.THOTH_BACKEND_NAMESPACE)
    workflow_id = openshift.schedule_adviser(
        application_stack=adviser_trigger["application_stack"],
        recommendation_type=adviser_trigger["recommendation_type"],
        count=adviser_trigger["count"],
        limit=adviser_trigger["limit"],
        runtime_environment=adviser_trigger["runtime_environment"],
        library_usage=adviser_trigger["library_usage"],
        origin=adviser_trigger["origin"],
        dev=adviser_trigger["dev"],
        debug=adviser_trigger["debug"],
        job_id=adviser_trigger["job_id"],
        github_event_type=adviser_trigger["github_event_type"],
        github_check_run_id=adviser_trigger["github_check_run_id"],
        github_installation_id=adviser_trigger["github_installation_id"],
        github_base_repo_url=adviser_trigger["github_base_repo_url"],
        re_run_adviser_id=adviser_trigger["re_run_adviser_id"],
        source_type=adviser_trigger["source_type"],
    )
    _LOGGER.debug(f"Scheduled adviser workflow {workflow_id}")
    adviser_trigger_success.inc()
async def _re_schedule_adviser(openshift: OpenShift,
                               parameters: Dict[str, Any]) -> int:
    """Re-Schedule Adviser."""
    re_run_adviser_id = parameters["adviser_id"]
    application_stack = parameters["application_stack"]
    recommendation_type = parameters["recommendation_type"]
    runtime_environment = parameters["runtime_environment"]
    origin = parameters["origin"]
    github_event_type = parameters["github_event_type"]
    github_check_run_id = parameters["github_check_run_id"]
    github_installation_id = parameters["github_installation_id"]
    github_base_repo_url = parameters["github_base_repo_url"]
    source_type = parameters["source_type"]

    try:
        await wait_for_limit(
            openshift,
            workflow_namespace=Configuration.THOTH_BACKEND_NAMESPACE)
        analysis_id = openshift.schedule_adviser(
            application_stack=application_stack,
            recommendation_type=recommendation_type,
            runtime_environment=runtime_environment,
            origin=origin,
            github_event_type=github_event_type,
            github_check_run_id=github_check_run_id,
            github_installation_id=github_installation_id,
            github_base_repo_url=github_base_repo_url,
            re_run_adviser_id=re_run_adviser_id,
            source_type=source_type,
        )

        _LOGGER.info(
            "Re Scheduled Adviser for `failed` adviser run %r, analysis is %r",
            re_run_adviser_id,
            analysis_id,
        )
        is_scheduled = 1
    except Exception as e:
        _LOGGER.exception(
            f"Failed to schedule Adviser for `failed` adviser run {re_run_adviser_id}: {e}"
        )
        is_scheduled = 0

    return is_scheduled
Example #3
0
async def parse_adviser_trigger_message(adviser_trigger: Dict[str, Any],
                                        openshift: OpenShift,
                                        **kwargs) -> None:
    """Parse adviser trigger message."""
    await wait_for_limit(
        openshift, workflow_namespace=Configuration.THOTH_BACKEND_NAMESPACE)
    workflow_id = openshift.schedule_adviser(
        recommendation_type=adviser_trigger["recommendation_type"],
        count=adviser_trigger["count"],
        limit=adviser_trigger["limit"],
        origin=adviser_trigger["origin"],
        authenticated=adviser_trigger.get("authenticated", False),
        dev=adviser_trigger["dev"],
        debug=adviser_trigger["debug"],
        job_id=adviser_trigger["job_id"],
        re_run_adviser_id=adviser_trigger["re_run_adviser_id"],
        source_type=adviser_trigger["source_type"],
        kebechet_metadata=adviser_trigger.get("kebechet_metadata"),
        stack_info=adviser_trigger.get("stack_info"),
        justification=adviser_trigger.get("justification"),
    )
    _LOGGER.debug(f"Scheduled adviser workflow {workflow_id}")
    adviser_trigger_success.inc()