Пример #1
0
    def dispatch_request(self, **kwargs):
        board = kwargs["board"]
        job = kwargs["job"]
        kernel = kwargs["kernel"]

        body_title = ("Details for Tree «%s» - %s" % (job, kernel))
        page_title = "%s tests: %s - %s" % (board, job, kernel)
        page_title = "%s — %s" % (self.PAGE_TITLE, page_title)

        DISTINCT_LAB_NAMES_URL = "{:s}/distinct/lab_name/".format(
            app.config.get("TEST_SUITE_API_ENDPOINT"))

        payload = {
            "board": board,
            "job": job,
            "kernel": kernel,
        }

        data, status, headers = backend.request_get(
            backend.create_url(DISTINCT_LAB_NAMES_URL),
            params=payload,
            timeout=60 * 5)

        if status == 200:
            json_data = backend.extract_gzip_data(data, headers)

            return render_template("tests-board-job-kernel.html",
                                   body_title=body_title,
                                   page_title=page_title,
                                   board=board,
                                   job=job,
                                   kernel=kernel,
                                   lab_names=json_data["result"])
        else:
            abort(status)
Пример #2
0
def _get_build_results(date_range=1):
    """Retrieve build resulsts from the backend.

    By default retrieve only 1 day of data.

    :param date_range: The number of days of data to retrieve.
    :type date_range: integer
    :return The status code (integer) and the data from the backend (json).
    """
    results = []
    params = [("date_range", date_range), ("sort", "created_on"),
              ("sort_order", -1)]
    data, status, headers = backend.request_get(BUILD_URL, params=params)

    if status == 200:
        read_data = data

        if "content-encoding" in headers:
            if "gzip" in headers["content-encoding"]:
                in_buffer = io.BytesIO()
                in_buffer.write(data)
                in_buffer.seek(io.SEEK_SET)

                with gzip.GzipFile(mode="rb", fileobj=in_buffer) as g_data:
                    read_data = g_data.read()

        if read_data:
            json_data = None
            json_data = json.loads(read_data, encoding="utf_8")
            read_data = data = None

            if json_data:
                results = json_data.get("result", [])

    return status, results
Пример #3
0
def _get_boot_data(req_params):
    """Get the boot data from the backend.

    :param req_params: The parameters for the request. They will be added to
    the default ones.
    :type req_params: dict
    :return: The response from the backend as a dictionary.
    """
    results = []

    default_params = [
        ("date_range", 1),
        ("sort", "created_on"),
        ("sort_order", -1)
    ]

    if req_params:
        default_params.extend(req_params)

    data, status, headers = backend.request_get(
        BACKEND_BOOT_URL, params=default_params, timeout=60*60)

    if status == 200:
        results = backend.extract_gzip_data(data, headers)

    return results
Пример #4
0
def _get_boot_data(req_params):
    """Get the boot data from the backend.

    :param req_params: The parameters for the request. They will be added to
    the default ones.
    :type req_params: dict
    :return: The response from the backend as a dictionary.
    """
    results = []

    default_params = [
        ("date_range", 1),
        ("sort", "created_on"),
        ("sort_order", -1)
    ]

    if req_params:
        default_params.extend(req_params)

    data, status, headers = backend.request_get(
        BACKEND_BOOT_URL, params=default_params, timeout=60*60)

    if status == 200:
        results = backend.extract_gzip_data(data, headers)

    return results
Пример #5
0
def _get_build_results(date_range=1):
    """Retrieve build resulsts from the backend.

    By default retrieve only 1 day of data.

    :param date_range: The number of days of data to retrieve.
    :type date_range: integer
    :return The status code (integer) and the data from the backend (json).
    """
    results = []
    params = [
        ("date_range", date_range),
        ("sort", "created_on"),
        ("sort_order", -1)
    ]
    data, status, headers = backend.request_get(BUILD_URL, params=params)

    if status == 200:
        read_data = data

        if "content-encoding" in headers:
            if "gzip" in headers["content-encoding"]:
                in_buffer = io.BytesIO()
                in_buffer.write(data)
                in_buffer.seek(io.SEEK_SET)

                with gzip.GzipFile(mode="rb", fileobj=in_buffer) as g_data:
                    read_data = g_data.read()

        if read_data:
            json_data = None
            json_data = json.loads(read_data, encoding="utf_8")
            read_data = data = None

            if json_data:
                results = json_data.get("result", [])

    return status, results
Пример #6
0
def _get_soc_data(req_params):
    """Retrieve the SoC data from the backend.

    :param req_params: The parameters for the request. They will be added to
    the default ones.
    :type req_params: dict
    :return: The results from the backend.
    """
    results = []
    params = [
        ("date_range", 1),
        (
            "field",
            (
                "build_id",
                "created_on",
                "git_branch",
                "git_commit",
                "git_url",
                "job",
                "job_id",
                "kernel",
                "mach"
            )
        ),
        ("sort", "created_on"),
        ("sort_order", -1)
    ]
    if req_params:
        params.extend(req_params)

    data, status, headers = backend.request_get(
        BACKEND_BOOT_URL, params=params, timeout=60*60)

    if status == 200:
        results = backend.extract_gzip_data(data, headers)

    return results
Пример #7
0
def _get_soc_data(req_params):
    """Retrieve the SoC data from the backend.

    :param req_params: The parameters for the request. They will be added to
    the default ones.
    :type req_params: dict
    :return: The results from the backend.
    """
    results = []
    params = [
        ("date_range", 1),
        (
            "field",
            (
                "build_id",
                "created_on",
                "git_branch",
                "git_commit",
                "git_url",
                "job",
                "job_id",
                "kernel",
                "mach"
            )
        ),
        ("sort", "created_on"),
        ("sort_order", -1)
    ]
    if req_params:
        params.extend(req_params)

    data, status, headers = backend.request_get(
        BACKEND_BOOT_URL, params=params, timeout=60*60)

    if status == 200:
        results = backend.extract_gzip_data(data, headers)

    return results
Пример #8
0
    def dispatch_request(self, **kwargs):
        board = kwargs["board"]
        job = kwargs["job"]
        kernel = kwargs["kernel"]

        body_title = (
            "Details for Tree «%s» - %s" % (job, kernel))
        page_title = "%s tests: %s - %s" % (board, job, kernel)
        page_title = "%s — %s" % (self.PAGE_TITLE, page_title)

        DISTINCT_LAB_NAMES_URL = "{:s}/distinct/lab_name/".format(
            app.config.get("TEST_GROUP_API_ENDPOINT"))

        payload = {
            "board": board,
            "job": job,
            "kernel": kernel,
        }

        data, status, headers = backend.request_get(
            backend.create_url(DISTINCT_LAB_NAMES_URL),
            params=payload, timeout=60*5)

        if status == 200:
            json_data = backend.extract_gzip_data(data, headers)

            return render_template(
                "tests-board-job-kernel.html",
                body_title=body_title,
                page_title=page_title,
                board=board,
                job=job,
                kernel=kernel,
                lab_names=json_data["result"]
            )
        else:
            abort(status)