canonical-ubuntu-qa team mailing list archive
-
canonical-ubuntu-qa team
-
Mailing list archive
-
Message #03893
Re: [Merge] ~andersson123/autopkgtest-cloud:stop-tests-from-webpage into autopkgtest-cloud:master
Diff comments:
> diff --git a/charms/focal/autopkgtest-web/webcontrol/browse.cgi b/charms/focal/autopkgtest-web/webcontrol/browse.cgi
> index 309fb82..651e6e7 100755
> --- a/charms/focal/autopkgtest-web/webcontrol/browse.cgi
> +++ b/charms/focal/autopkgtest-web/webcontrol/browse.cgi
> @@ -256,6 +256,49 @@ def success_count_for_release_and_arch(db, release, arch, src_versions):
> return count
>
>
> +# THIS CAN BE REFACTORED AFTER THE AUTO-QUEUE-CLEANUP MP IS MERGED!!!
> +# AMQP_CONNECT IS NOW SHARED FUNCTION IN HELPERS/UTILS.PY
> +def amqp_connect() -> amqp.Connection:
> + """Connect to AMQP server"""
> + cp = configparser.ConfigParser()
> + cp.read(os.path.expanduser("~ubuntu/autopkgtest-cloud.conf"))
> + amqp_uri = cp["amqp"]["uri"]
> + parts = urllib.parse.urlsplit(amqp_uri, allow_fragments=False)
> + amqp_con = amqp.Connection(
> + parts.hostname, userid=parts.username, password=parts.password
> + )
> + return amqp_con
> +
> +
> +def submit_message_to_stop_running_queue(message: dict):
> + """
> + Submits a dictionary as an amqp message to the WRITER_EXCHANGE_NAME exchange
> +
> + :param message: Dictionary to be converted to an amqp.Message and placed into the queue
> + """
> + amqp_con = amqp_connect()
> + complete_amqp = amqp_con.channel()
> + complete_amqp.access_request(
> + "/complete", active=True, read=False, write=True
> + )
> + complete_amqp.exchange_declare(
> + STOP_RUNNING_EXCHANGE_NAME, "fanout", durable=True, auto_delete=False
> + )
> + complete_amqp.basic_publish(
> + amqp.Message(json.dumps(message), delivery_mode=2),
> + STOP_RUNNING_EXCHANGE_NAME,
> + "",
> + )
> +
> +
> +def is_valid_uuid(test_uuid: str, uuid_version: int) -> bool:
missing docstring!
> + try:
> + validate_uuid = uuid.UUID(test_uuid, version=uuid_version)
> + except Exception as _:
> + return False
> + return validate_uuid.hex == test_uuid
> +
> +
> @app.route("/")
> def index_root():
> flask.session.permanent = True
> diff --git a/charms/focal/autopkgtest-web/webcontrol/helpers/utils.py b/charms/focal/autopkgtest-web/webcontrol/helpers/utils.py
> index 4e26eb8..4a0c8d6 100644
> --- a/charms/focal/autopkgtest-web/webcontrol/helpers/utils.py
> +++ b/charms/focal/autopkgtest-web/webcontrol/helpers/utils.py
> @@ -14,12 +14,45 @@ import typing
>
> # introduced in python3.7, we use 3.8
> from dataclasses import dataclass
> +from html import escape as _escape
>
> import distro_info
> +from flask import Flask
> +from flask_openid import OpenID
> +from werkzeug.middleware.proxy_fix import ProxyFix
>
> sqlite3.paramstyle = "named"
>
>
> +def get_admin_nicks() -> typing.List[str]:
missing docstring!
> + admin_nicks_path = "/home/ubuntu/.config/autopkgtest-web/admin-nicks"
> + try:
> + return pathlib.Path(admin_nicks_path).read_text().split(",")
> + except FileNotFoundError as _:
> + return []
> +
> +
> +def initialise_app(app_name: str) -> typing.Tuple[str, Flask, str, OpenID]:
missing docstring!
> + PATH = os.path.join(
> + os.path.sep,
> + os.getenv("XDG_RUNTIME_DIR", "/run"),
> + "autopkgtest_webcontrol",
> + )
> + os.makedirs(PATH, exist_ok=True)
> + app = Flask(app_name)
> + app.wsgi_app = ProxyFix(app.wsgi_app, x_proto=1)
> + # keep secret persistent between CGI invocations
> + secret_path = os.path.join(PATH, "secret_key")
> + setup_key(app, secret_path)
> + oid = OpenID(app, os.path.join(PATH, "openid"), safe_roots=[])
> + return PATH, app, secret_path, oid
> +
> +
> +def maybe_escape(value: str) -> str:
> + """Escape the value if it is True-ish"""
> + return _escape(value) if value else value
> +
> +
> @dataclass
> class SqliteWriterConfig:
> writer_exchange_name = "sqlite-write-me.fanout"
--
https://code.launchpad.net/~andersson123/autopkgtest-cloud/+git/autopkgtest-cloud/+merge/461654
Your team Canonical's Ubuntu QA is requested to review the proposed merge of ~andersson123/autopkgtest-cloud:stop-tests-from-webpage into autopkgtest-cloud:master.
References