From d8f69a0e21566956849b76794e1f77cd154d4b6d Mon Sep 17 00:00:00 2001 From: Paul Larson Date: Fri, 20 Oct 2023 12:29:49 -0500 Subject: [PATCH 1/4] remove old pmr merge hooks --- agent/.pmr-merge-hook | 8 -------- device-connectors/.pmr-merge-hook | 10 ---------- 2 files changed, 18 deletions(-) delete mode 100755 agent/.pmr-merge-hook delete mode 100755 device-connectors/.pmr-merge-hook diff --git a/agent/.pmr-merge-hook b/agent/.pmr-merge-hook deleted file mode 100755 index 394df162..00000000 --- a/agent/.pmr-merge-hook +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -set -e - -rm -rf tfenv -virtualenv -q -p python3 tfenv -. tfenv/bin/activate -./setup.py test diff --git a/device-connectors/.pmr-merge-hook b/device-connectors/.pmr-merge-hook deleted file mode 100755 index 828e4a23..00000000 --- a/device-connectors/.pmr-merge-hook +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -# This hook is executed for all incoming merge requests -set -e - -rm -rf env -virtualenv -p python3 env -. env/bin/activate -pip install -r test_requirements.txt -./setup.py flake8 -rm -rf env From 2f52876041580dab95ad224e066db0b363088dce Mon Sep 17 00:00:00 2001 From: Paul Larson Date: Fri, 20 Oct 2023 12:30:38 -0500 Subject: [PATCH 2/4] Consolidate renovate.json --- cli/renovate.json | 6 ------ device-connectors/renovate.json | 6 ------ agent/renovate.json => renovate.json | 0 server/renovate.json | 6 ------ 4 files changed, 18 deletions(-) delete mode 100644 cli/renovate.json delete mode 100644 device-connectors/renovate.json rename agent/renovate.json => renovate.json (100%) delete mode 100644 server/renovate.json diff --git a/cli/renovate.json b/cli/renovate.json deleted file mode 100644 index 39a2b6e9..00000000 --- a/cli/renovate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "$schema": "https://docs.renovatebot.com/renovate-schema.json", - "extends": [ - "config:base" - ] -} diff --git a/device-connectors/renovate.json b/device-connectors/renovate.json deleted file mode 100644 index 39a2b6e9..00000000 --- a/device-connectors/renovate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "$schema": "https://docs.renovatebot.com/renovate-schema.json", - "extends": [ - "config:base" - ] -} diff --git a/agent/renovate.json b/renovate.json similarity index 100% rename from agent/renovate.json rename to renovate.json diff --git a/server/renovate.json b/server/renovate.json deleted file mode 100644 index 39a2b6e9..00000000 --- a/server/renovate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "$schema": "https://docs.renovatebot.com/renovate-schema.json", - "extends": [ - "config:base" - ] -} From a815857c469ff8e8b6aa93fe4a1850c4faf7a62e Mon Sep 17 00:00:00 2001 From: Paul Larson Date: Mon, 23 Oct 2023 10:52:39 -0500 Subject: [PATCH 3/4] Consolidate .gitignore --- server/.gitignore => .gitignore | 25 ++++++++++++++++--------- agent/.gitignore | 12 ------------ cli/.gitignore | 6 ------ device-connectors/.gitignore | 11 ----------- 4 files changed, 16 insertions(+), 38 deletions(-) rename server/.gitignore => .gitignore (64%) delete mode 100644 agent/.gitignore delete mode 100644 cli/.gitignore delete mode 100644 device-connectors/.gitignore diff --git a/server/.gitignore b/.gitignore similarity index 64% rename from server/.gitignore rename to .gitignore index 0994438d..36c124db 100644 --- a/server/.gitignore +++ b/.gitignore @@ -1,14 +1,21 @@ -__pycache__ -*.pyc -*.egg-info -env -venv build dist -.tox +env +venv + +docs/.sphinx/warnings.txt +docs/.sphinx/.wordlist.dic +docs/.sphinx/.doctrees/ + .coverage +.swp +.tox +.vscode + +*.py[cod] +*.egg* +*.bak *.charm + _build -docs/.sphinx/warnings.txt -docs/.sphinx/.wordlist.dic -docs/.sphinx/.doctrees/ \ No newline at end of file +__pycache__ diff --git a/agent/.gitignore b/agent/.gitignore deleted file mode 100644 index da344c16..00000000 --- a/agent/.gitignore +++ /dev/null @@ -1,12 +0,0 @@ -*~ -.coverage -.vscode/ -build/ -env/ -__pycache__/ -*.py[cod] -*$py.class -*.conf -*.egg* -*.bak -.swp diff --git a/cli/.gitignore b/cli/.gitignore deleted file mode 100644 index ca62b051..00000000 --- a/cli/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -env/ -dist/ -build/ -testflinger_cli.egg-info/ -**/__pycache__/ -.coverage diff --git a/device-connectors/.gitignore b/device-connectors/.gitignore deleted file mode 100644 index 8de9a2f1..00000000 --- a/device-connectors/.gitignore +++ /dev/null @@ -1,11 +0,0 @@ -__pycache__ -*.pyc -*.egg* -*.swp -env -venv -build -dist -.tox -.coverage -.vscode From 6d3ee206b9f8162cb1b608fb7b9478b74e351247 Mon Sep 17 00:00:00 2001 From: Paul Larson Date: Mon, 23 Oct 2023 12:28:23 -0500 Subject: [PATCH 4/4] Add a README to the monorepo base directory --- README.md | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 00000000..43b38984 --- /dev/null +++ b/README.md @@ -0,0 +1,38 @@ +# What is Testflinger? + +Testflinger is a system for orchestrating the time-sharing of access to a pool of target machines. + +Each Testflinger system consists of: + +- a web service (called just Testflinger) that provides an API to request jobs by placing them on a queue +- per machine agents that wait for jobs to placed on queues they can service and then process them + +Jobs can be either fully automated scripts that can attempt to complete within the allocated time or interactive shell sessions. + +The Testflinger system is particular useful for sharing finite machine resources between different consumers in a predictable fashion. + +Typically this has been used for managing a test lab where CI/CD test runs and also exploratory testing by human operators is desired. + +# Documentation + +You can find more information and documentation on the [Testflinger Documentation Page](https://testflinger.readthedocs.io/en/latest/). + +# Content of this repository + +A full deployment of testflinger consists of the following components: + +- `Testflinger Server`: The API server, and Web UI +- `Testflinger Agent`: Requests and processes jobs from associated queues on the server on behalf of a device +- `Testflinger Device Connectors`: Handles provisioning and other device-specific details for each type of device +- `Testflinger CLI`: The command-line tool for submitting jobs, checking status of jobs, and retreiving results + +This monorepo is organized in a way that is consistant with the components described above: + +```bash +└── providers + ├── server + ├── agent + ├── device-connectors + ├── cli + └── docs +