← Back to team overview

canonical-ubuntu-qa team mailing list archive

[Merge] ~andersson123/autopkgtest-cloud:add-arch-diagram-for-integration-tests into autopkgtest-cloud:master

 

Tim Andersson has proposed merging ~andersson123/autopkgtest-cloud:add-arch-diagram-for-integration-tests into autopkgtest-cloud:master.

Requested reviews:
  Canonical's Ubuntu QA (canonical-ubuntu-qa)

For more details, see:
https://code.launchpad.net/~andersson123/autopkgtest-cloud/+git/autopkgtest-cloud/+merge/458732
-- 
Your team Canonical's Ubuntu QA is requested to review the proposed merge of ~andersson123/autopkgtest-cloud:add-arch-diagram-for-integration-tests into autopkgtest-cloud:master.
diff --git a/docs/architecture.rst b/docs/architecture.rst
index 6cfd711..31e436f 100644
--- a/docs/architecture.rst
+++ b/docs/architecture.rst
@@ -166,3 +166,74 @@ from outside of Swift to be able to read the actual test results. This,
 however, still requires knowing the test result URL to proceed, similarly to
 usual test result fetching, just this time using the special
 `<https://autopkgtest.ubuntu.com/private-result/>`_ webfront.
+
+Integration tests architecture
+------------------------------
+
+.. graphviz::
+    :caption: The architecture of the integration tests for the autopkgtest-cloud environment.
+
+    digraph integration_tests {
+        graph [nodesep=1, ranksep=2];
+        graph [fontname = "Courier New"];
+        node [fontname = "Courier New"];
+        edge [fontname = "Courier New"];
+        node [shape=Mrecord]
+        subgraph cluster_cloud {
+            node [shape=Mrecord]
+            subgraph cluster_integration_cloud {
+                node [shape=Mrecord]
+                cfg_file [label="{config-file-checker|Checks config files exist\nChecks config files have correct keys present\nChecks swift creds are functional}"]
+                test_run_autopkgtest [label="{test-run-autopkgtest|Runs tests on every architecture\nRuns test against ppa\nChecks results available in swift\nChecks results accessible via webpage}"]
+                label="integration-tests"
+            }
+            systemd_cloud [label="{systemd|Triggers tests at midnight}"]
+            passkey1 [label="{/home/ubuntu/integration-key|Authentication string for posting results}"]
+            label = "autopkgtest-cloud"
+            "passkey1" -> "cfg_file"
+            "passkey1" -> "test_run_autopkgtest"
+            "systemd_cloud" -> "cfg_file"
+            "systemd_cloud" -> "test_run_autopkgtest"
+        }
+        subgraph cluster_web {
+            node [shape=Mrecord]
+            subgraph cluster_endpoints {
+                node [shape=Mrecord]
+                post_endpoint [label="{/post-integration-results|Checks the posted json has correct format\nChecks posted json has correct values\nChecks the passkey posted matches the one on disk}"]
+                get_endpoint [label="{/integration-test-results.json|Endpoint returning the integration test results}"]
+                label = "integration-endpoints"
+            }
+            subgraph cluster_integration_tests {
+                node [shape=Mrecord]
+                endpoint_checker [label="{endpoint-checker|Checks all endpoints of autopkgtest-web\nare functional}"]
+                cfg_files [label="{config-file-checker|Checks config files exist\nChecks config files have correct keys present\nChecks swift creds are functional}"]
+                label = "integration-tests"
+            }
+            passkey2 [label="{/home/ubuntu/integration-key|Authentication string for posting results}"]
+            systemd_web [label="{systemd|Triggers tests at midnight}"]
+            integration_results [label="/run/autopkgtest_webcontrol/integration-test-results.json"]
+            label="autopkgtest-web"
+            "passkey2" -> "cfg_files"
+            "passkey2" -> "endpoint_checker"
+            "cfg_files" -> "post_endpoint":n [style=dashed]
+            "post_endpoint" -> "integration_results":w
+            "systemd_web" -> "cfg_files"
+            "systemd_web" -> "endpoint_checker"
+            "integration_results":e -> "get_endpoint"
+            "endpoint_checker" -> "post_endpoint":n [style=dashed]
+            "post_endpoint":w -> "passkey2"
+        }
+        "cfg_file":s -> "post_endpoint":n [style=dashed]
+        "test_run_autopkgtest":s -> "post_endpoint":n [style=dashed]
+        subgraph cluster_external {
+            node [shape=Mrecord]
+            users [label="{users|Debugging}"]
+            jenkins [label="{jenkins|Email notifications}"]
+            etc [label="{etc|Other stuff}"]
+            label="external"
+        }
+        "get_endpoint" -> "jenkins" [style=dashed]
+        "get_endpoint" -> "users" [style=dashed]
+        "get_endpoint" -> "etc" [style=dashed]
+        legend [label="{Legend|Dashed lines represent HTTP requests\nOther lines represent any other operation}"]
+    }

Follow ups