Diff comments:

> diff --git a/charms/focal/autopkgtest-web/webcontrol/browse.cgi 
> b/charms/focal/autopkgtest-web/webcontrol/browse.cgi
> index 810163d..ec6e0a4 100755
> --- a/charms/focal/autopkgtest-web/webcontrol/browse.cgi
> +++ b/charms/focal/autopkgtest-web/webcontrol/browse.cgi
> @@ -315,6 +327,138 @@ def package_overview(package, _=None):
>      )
>  
>  
> +@app.route("/user/<user>")
> +def user_overview(user):
> +    """
> +    This endpoint provides a "per-user" view for autopkgtest-cloud.
> +    It shows a page, much like the package/release/arch pages,
> +    except all of the queued, running and historical results are
> +    only shown if they were requested by the user provided.
> +    """
> +    results = []
> +    # get previous results!
> +    #################### FIXME: Need to only look at results in last X 
> amount of time
> +    for row in db_con.execute(
> +        "SELECT test_id, run_id, version, triggers, "
> +        "duration, exitcode, requester, env, uuid FROM result "
> +        "WHERE requester=? "
> +        "ORDER BY run_id DESC "
> +        "LIMIT 100 ",
> +        (user,),
> +    ):
> +        test_id = row[0]
> +        version = row[2]
> +        triggers = row[3]
> +        additional_params = row[
> +            7
> +        ]  # string of comma separated env variables e.g. 
> all-proposed=1,test-name=mytest
> +        code = human_exitcode(row[5])
> +        package, release, arch = get_package_release_arch(test_id)
> +        url = os.path.join(
> +            swift_container_url % release,
> +            release,
> +            arch,
> +            srchash(package),
> +            package,
> +            row[1],
> +        )
> +        # Maybe this should also not show for multiple of the exact same 
> test? idk.
> +        show_retry = code != "pass"
> +        all_proposed = (
> +            additional_params is not None
> +            and "all-proposed=1" in additional_params
> +        )
> +        # package, release, and arch needs to be embedded here
> +        results.append(
> +            (
> +                version,
> +                triggers,
> +                additional_params,
> +                human_date(row[1]),
> +                human_sec(int(row[4])),
> +                user,
> +                code,
> +                url,
> +                show_retry,
> +                all_proposed,
> +                row[7],
> +                package,
> +                release,
> +                arch,
> +            )
> +        )
> +
> +    # add queued tests for this user
> +    (_, _, queues_info) = get_queues_info()
> +    for _, queue in queues_info.items():
> +        for release, queue_by_arch in queue.items():
> +            for arch, queue_items in queue_by_arch.items():
> +                if queue_items[0] == 0:
> +                    continue
> +                requests = queue_items[1]
> +                for req in requests:
> +                    try:

I need to check and see if this try except is actually necessary.

> +                        req_info = json.loads(req[req.find("{") :])
> +                    except Exception as _:
> +                        continue
> +                    package = req.split("{")[0].replace("\n", "")
> +                    if req_info.get("requester", "") == user:
> +                        results.insert(
> +                            0,
> +                            (
> +                                "N/A",
> +                                req_info.get("triggers"),
> +                                "N/A",
> +                                human_date(req_info.get("submit-time")),
> +                                "N/A",
> +                                user,
> +                                "queued",
> +                                "",
> +                                False,
> +                                "",
> +                                req_info.get("uuid", ""),
> +                                package,
> +                                release,
> +                                arch,
> +                            ),
> +                        )
> +
> +    # add running tests from this user
> +    for package, running_hash in get_running_jobs().items():
> +        # this isn't actually the release! AAAAAAA! hehehe
> +        for _, running in running_hash.items():
> +            for release, vals in running.items():
> +                for arch, list_of_running_items in vals.items():
> +                    if len(list_of_running_items) < 1:
> +                        continue
> +                    info_dict = list_of_running_items[0]
> +                    if info_dict.get("requester", "") == user:
> +                        results.insert(
> +                            0,
> +                            (
> +                                "N/A",
> +                                info_dict.get("triggers"),
> +                                "N/A",
> +                                human_date(info_dict.get("submit-time")),
> +                                human_sec(int(list_of_running_items[1])),
> +                                user,
> +                                "running",
> +                                "",
> +                                False,
> +                                "",
> +                                info_dict.get("uuid", "-"),
> +                                package,
> +                                release,  # AMEND ME!!!!!!!!!!!
> +                                arch,
> +                            ),
> +                        )
> +
> +    return render(
> +        "browse-user.html",
> +        package_results=results,
> +    )
> +
> +
>  # backwards-compatible path with debci that specifies the source hash
>  @app.route("/packages/<_>/<package>/<release>/<arch>")
>  @app.route("/packages/<package>/<release>/<arch>")


-- 
https://code.launchpad.net/~andersson123/autopkgtest-cloud/+git/autopkgtest-cloud/+merge/462713
Your team Canonical's Ubuntu QA is requested to review the proposed merge of 
~andersson123/autopkgtest-cloud:user-specific-page into 
autopkgtest-cloud:master.


-- 
Mailing list: https://launchpad.net/~canonical-ubuntu-qa
Post to     : canonical-ubuntu-qa@lists.launchpad.net
Unsubscribe : https://launchpad.net/~canonical-ubuntu-qa
More help   : https://help.launchpad.net/ListHelp

Reply via email to