orchestrator-lso 1.0.2__tar.gz → 1.0.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/.bumpversion.cfg +1 -1
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/.github/workflows/run-unit-tests.yaml +7 -1
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/Dockerfile.example +1 -1
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/PKG-INFO +21 -18
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/README.md +15 -13
- orchestrator_lso-1.0.3/docs/LSO_banner.jpg +0 -0
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/docs/source/_static/custom.css +2 -2
- orchestrator_lso-1.0.3/docs/source/_static/lso_logo.png +0 -0
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/docs/source/conf.py +3 -2
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/lso/__init__.py +1 -1
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/pyproject.toml +5 -4
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/test/conftest.py +1 -1
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/.github/dependabot.yml +0 -0
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/.github/styles/config/vocabularies/Sphinx/accept.txt +0 -0
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/.github/styles/config/vocabularies/jargon/accept.txt +0 -0
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/.github/workflows/publish-package.yaml +0 -0
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/.github/workflows/run-linting-tests.yaml +0 -0
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/.github/workflows/sphinx.yaml +0 -0
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/.gitignore +0 -0
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/.vale.ini +0 -0
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/LICENSE +0 -0
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/config.json.example +0 -0
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/docs/Makefile +0 -0
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/docs/source/index.rst +0 -0
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/docs/source/module/config.rst +0 -0
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/docs/source/module/playbook.rst +0 -0
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/docs/source/module/routes/default.rst +0 -0
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/docs/source/module/routes/index.rst +0 -0
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/docs/source/module/routes/playbook.rst +0 -0
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/docs/source/modules.rst +0 -0
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/lso/app.py +0 -0
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/lso/config.py +0 -0
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/lso/environment.py +0 -0
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/lso/playbook.py +0 -0
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/lso/routes/__init__.py +0 -0
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/lso/routes/default.py +0 -0
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/lso/routes/playbook.py +0 -0
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/setup.py +0 -0
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/test/__init__.py +0 -0
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/test/routes/__init__.py +0 -0
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/test/routes/test_default.py +0 -0
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/test/routes/test_playbook.py +0 -0
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/test/test-playbook.yaml +0 -0
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/test/test_ansible.py +0 -0
- {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/test/test_config.py +0 -0
|
@@ -25,6 +25,12 @@ jobs:
|
|
|
25
25
|
env:
|
|
26
26
|
FLIT_ROOT_INSTALL: 1
|
|
27
27
|
- name: Run Unit tests
|
|
28
|
-
run: pytest
|
|
28
|
+
run: pytest --cov-branch --cov=lso --cov-report=xml
|
|
29
29
|
env:
|
|
30
30
|
SETTINGS_FILENAME: dummy.json
|
|
31
|
+
- name: "Upload coverage to Codecov"
|
|
32
|
+
uses: codecov/codecov-action@v3
|
|
33
|
+
with:
|
|
34
|
+
token: ${{ secrets.CODECOV_TOKEN }}
|
|
35
|
+
fail_ci_if_error: true
|
|
36
|
+
files: ./coverage.xml
|
|
@@ -11,7 +11,7 @@ COPY ./ansible-galaxy-requirements.yaml ./ansible-galaxy-requirements.yaml
|
|
|
11
11
|
RUN apk add --update --no-cache gcc libc-dev libffi-dev openssh
|
|
12
12
|
|
|
13
13
|
# Install the LSO python package, and additional requirements
|
|
14
|
-
RUN pip install orchestrator-lso=="1.0.
|
|
14
|
+
RUN pip install orchestrator-lso=="1.0.3"
|
|
15
15
|
RUN pip install -r requirements.txt
|
|
16
16
|
|
|
17
17
|
# Install required Ansible Galaxy roles and collections
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: orchestrator-lso
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.3
|
|
4
4
|
Summary: LSO, an API for remotely running Ansible playbooks.
|
|
5
5
|
Author-email: GÉANT Orchestration and Automation Team <goat@geant.org>
|
|
6
6
|
Requires-Python: >=3.11,<3.13
|
|
@@ -25,12 +25,12 @@ Classifier: License :: OSI Approved :: Apache Software License
|
|
|
25
25
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
26
26
|
Classifier: Programming Language :: Python :: 3.11
|
|
27
27
|
Classifier: Programming Language :: Python :: 3.12
|
|
28
|
-
Requires-Dist: ansible-runner~=2.
|
|
29
|
-
Requires-Dist: ansible~=
|
|
30
|
-
Requires-Dist: fastapi~=0.
|
|
28
|
+
Requires-Dist: ansible-runner~=2.4.0
|
|
29
|
+
Requires-Dist: ansible~=10.1.0
|
|
30
|
+
Requires-Dist: fastapi~=0.112.1
|
|
31
31
|
Requires-Dist: httpx~=0.27.0
|
|
32
32
|
Requires-Dist: jsonschema~=4.21.1
|
|
33
|
-
Requires-Dist: uvicorn[standard]~=0.
|
|
33
|
+
Requires-Dist: uvicorn[standard]~=0.30.6
|
|
34
34
|
Requires-Dist: requests~=2.31.0
|
|
35
35
|
Requires-Dist: types-setuptools ; extra == "dev"
|
|
36
36
|
Requires-Dist: types-requests ; extra == "dev"
|
|
@@ -42,6 +42,7 @@ Requires-Dist: sphinx ; extra == "doc"
|
|
|
42
42
|
Requires-Dist: sphinx-rtd-theme ; extra == "doc"
|
|
43
43
|
Requires-Dist: docutils ; extra == "doc"
|
|
44
44
|
Requires-Dist: pytest ; extra == "test"
|
|
45
|
+
Requires-Dist: pytest-cov ; extra == "test"
|
|
45
46
|
Requires-Dist: Faker ; extra == "test"
|
|
46
47
|
Requires-Dist: responses ; extra == "test"
|
|
47
48
|
Requires-Dist: mypy ; extra == "test"
|
|
@@ -54,7 +55,10 @@ Provides-Extra: dev
|
|
|
54
55
|
Provides-Extra: doc
|
|
55
56
|
Provides-Extra: test
|
|
56
57
|
|
|
57
|
-
|
|
58
|
+

|
|
59
|
+
[](https://pypi.org/project/orchestrator-lso)
|
|
60
|
+
[](https://pepy.tech/project/orchestrator-lso)
|
|
61
|
+
[](https://codecov.io/github/workfloworchestrator/lso)
|
|
58
62
|
|
|
59
63
|
LSO: an API that allows for remotely executing Ansible playbooks.
|
|
60
64
|
|
|
@@ -75,18 +79,17 @@ To run LSO as a Docker container, build an image using the `Dockerfile.example`
|
|
|
75
79
|
Use the Docker image to then spin up an environment. An example Docker compose file is presented below:
|
|
76
80
|
|
|
77
81
|
```yaml
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
- "~/.ssh/id_ed25519:/root/.ssh/id_ed25519:ro"
|
|
82
|
+
services:
|
|
83
|
+
lso:
|
|
84
|
+
image: my-lso:latest
|
|
85
|
+
environment:
|
|
86
|
+
SETTINGS_FILENAME: /app/config.json
|
|
87
|
+
ANSIBLE_ROLES_PATH: /app/lso/ansible_roles
|
|
88
|
+
volumes:
|
|
89
|
+
- "/home/user/config.json:/app/config.json:ro"
|
|
90
|
+
- "/home/user/ansible_inventory:/opt/ansible_inventory:ro"
|
|
91
|
+
- "~/.ssh/id_ed25519.pub:/root/.ssh/id_ed25519.pub:ro"
|
|
92
|
+
- "~/.ssh/id_ed25519:/root/.ssh/id_ed25519:ro"
|
|
90
93
|
```
|
|
91
94
|
|
|
92
95
|
This will expose the API on port 8000. The container requires some more files to be mounted:
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+

|
|
2
|
+
[](https://pypi.org/project/orchestrator-lso)
|
|
3
|
+
[](https://pepy.tech/project/orchestrator-lso)
|
|
4
|
+
[](https://codecov.io/github/workfloworchestrator/lso)
|
|
2
5
|
|
|
3
6
|
LSO: an API that allows for remotely executing Ansible playbooks.
|
|
4
7
|
|
|
@@ -19,18 +22,17 @@ To run LSO as a Docker container, build an image using the `Dockerfile.example`
|
|
|
19
22
|
Use the Docker image to then spin up an environment. An example Docker compose file is presented below:
|
|
20
23
|
|
|
21
24
|
```yaml
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
- "~/.ssh/id_ed25519:/root/.ssh/id_ed25519:ro"
|
|
25
|
+
services:
|
|
26
|
+
lso:
|
|
27
|
+
image: my-lso:latest
|
|
28
|
+
environment:
|
|
29
|
+
SETTINGS_FILENAME: /app/config.json
|
|
30
|
+
ANSIBLE_ROLES_PATH: /app/lso/ansible_roles
|
|
31
|
+
volumes:
|
|
32
|
+
- "/home/user/config.json:/app/config.json:ro"
|
|
33
|
+
- "/home/user/ansible_inventory:/opt/ansible_inventory:ro"
|
|
34
|
+
- "~/.ssh/id_ed25519.pub:/root/.ssh/id_ed25519.pub:ro"
|
|
35
|
+
- "~/.ssh/id_ed25519:/root/.ssh/id_ed25519:ro"
|
|
34
36
|
```
|
|
35
37
|
|
|
36
38
|
This will expose the API on port 8000. The container requires some more files to be mounted:
|
|
Binary file
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
.wy-menu > p > span {
|
|
2
|
-
color: rgb(
|
|
2
|
+
color: rgb(254 122 54);
|
|
3
3
|
}
|
|
4
4
|
|
|
5
5
|
section > dl > .sig-object {
|
|
6
6
|
background: #e5e8e8 !important;
|
|
7
|
-
color: rgb(
|
|
7
|
+
color: rgb(254 122 54) !important;
|
|
8
8
|
border-top: 3px solid rgb(167 179 180) !important;
|
|
9
9
|
}
|
|
10
10
|
|
|
Binary file
|
|
@@ -47,7 +47,7 @@ def setup(app):
|
|
|
47
47
|
# -- Project information -----------------------------------------------------
|
|
48
48
|
|
|
49
49
|
project = "Lightweight Service Orchestrator"
|
|
50
|
-
copyright = "2023, GÉANT Vereniging"
|
|
50
|
+
copyright = "2023-2024, GÉANT Vereniging"
|
|
51
51
|
author = "GÉANT Orchestration & Automation Team"
|
|
52
52
|
|
|
53
53
|
# -- General configuration ---------------------------------------------------
|
|
@@ -66,8 +66,9 @@ exclude_patterns = []
|
|
|
66
66
|
|
|
67
67
|
html_theme = "sphinx_rtd_theme"
|
|
68
68
|
html_static_path = ["_static"]
|
|
69
|
-
html_theme_options = {"style_nav_header_background": "rgb(
|
|
69
|
+
html_theme_options = {"style_nav_header_background": "rgb(40 2 116)", "logo_only": True}
|
|
70
70
|
html_css_files = ["custom.css"]
|
|
71
|
+
html_logo = "_static/lso_logo.png"
|
|
71
72
|
|
|
72
73
|
|
|
73
74
|
# Both the class' and the ``__init__`` method's docstring are concatenated and inserted.
|
|
@@ -29,12 +29,12 @@ classifiers = [
|
|
|
29
29
|
"Programming Language :: Python :: 3.12",
|
|
30
30
|
]
|
|
31
31
|
dependencies = [
|
|
32
|
-
"ansible-runner~=2.
|
|
33
|
-
"ansible~=
|
|
34
|
-
"fastapi~=0.
|
|
32
|
+
"ansible-runner~=2.4.0",
|
|
33
|
+
"ansible~=10.1.0",
|
|
34
|
+
"fastapi~=0.112.1",
|
|
35
35
|
"httpx~=0.27.0",
|
|
36
36
|
"jsonschema~=4.21.1",
|
|
37
|
-
"uvicorn[standard]~=0.
|
|
37
|
+
"uvicorn[standard]~=0.30.6",
|
|
38
38
|
"requests~=2.31.0"
|
|
39
39
|
]
|
|
40
40
|
|
|
@@ -48,6 +48,7 @@ Source = "https://github.com/workfloworchestrator/lso"
|
|
|
48
48
|
[project.optional-dependencies]
|
|
49
49
|
test = [
|
|
50
50
|
"pytest",
|
|
51
|
+
"pytest-cov",
|
|
51
52
|
"Faker",
|
|
52
53
|
"responses",
|
|
53
54
|
"mypy",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|