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.
Files changed (45) hide show
  1. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/.bumpversion.cfg +1 -1
  2. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/.github/workflows/run-unit-tests.yaml +7 -1
  3. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/Dockerfile.example +1 -1
  4. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/PKG-INFO +21 -18
  5. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/README.md +15 -13
  6. orchestrator_lso-1.0.3/docs/LSO_banner.jpg +0 -0
  7. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/docs/source/_static/custom.css +2 -2
  8. orchestrator_lso-1.0.3/docs/source/_static/lso_logo.png +0 -0
  9. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/docs/source/conf.py +3 -2
  10. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/lso/__init__.py +1 -1
  11. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/pyproject.toml +5 -4
  12. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/test/conftest.py +1 -1
  13. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/.github/dependabot.yml +0 -0
  14. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/.github/styles/config/vocabularies/Sphinx/accept.txt +0 -0
  15. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/.github/styles/config/vocabularies/jargon/accept.txt +0 -0
  16. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/.github/workflows/publish-package.yaml +0 -0
  17. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/.github/workflows/run-linting-tests.yaml +0 -0
  18. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/.github/workflows/sphinx.yaml +0 -0
  19. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/.gitignore +0 -0
  20. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/.vale.ini +0 -0
  21. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/LICENSE +0 -0
  22. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/config.json.example +0 -0
  23. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/docs/Makefile +0 -0
  24. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/docs/source/index.rst +0 -0
  25. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/docs/source/module/config.rst +0 -0
  26. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/docs/source/module/playbook.rst +0 -0
  27. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/docs/source/module/routes/default.rst +0 -0
  28. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/docs/source/module/routes/index.rst +0 -0
  29. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/docs/source/module/routes/playbook.rst +0 -0
  30. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/docs/source/modules.rst +0 -0
  31. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/lso/app.py +0 -0
  32. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/lso/config.py +0 -0
  33. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/lso/environment.py +0 -0
  34. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/lso/playbook.py +0 -0
  35. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/lso/routes/__init__.py +0 -0
  36. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/lso/routes/default.py +0 -0
  37. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/lso/routes/playbook.py +0 -0
  38. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/setup.py +0 -0
  39. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/test/__init__.py +0 -0
  40. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/test/routes/__init__.py +0 -0
  41. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/test/routes/test_default.py +0 -0
  42. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/test/routes/test_playbook.py +0 -0
  43. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/test/test-playbook.yaml +0 -0
  44. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/test/test_ansible.py +0 -0
  45. {orchestrator_lso-1.0.2 → orchestrator_lso-1.0.3}/test/test_config.py +0 -0
@@ -1,5 +1,5 @@
1
1
  [bumpversion]
2
- current_version = 1.0.2
2
+ current_version = 1.0.3
3
3
  commit = False
4
4
  tag = False
5
5
  parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)(rc(?P<build>\d+))?
@@ -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.2"
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.2
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.3.4
29
- Requires-Dist: ansible~=9.3.0
30
- Requires-Dist: fastapi~=0.110.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.28.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
- # Lightweight Service Orchestrator
58
+ ![Lightweight Service Orchestrator](./docs/LSO_banner.jpg)
59
+ [![Supported python versions](https://img.shields.io/pypi/pyversions/orchestrator-lso.svg?color=%2334D058)](https://pypi.org/project/orchestrator-lso)
60
+ [![Downloads](https://static.pepy.tech/badge/orchestrator-lso/month)](https://pepy.tech/project/orchestrator-lso)
61
+ [![codecov](https://codecov.io/github/workfloworchestrator/lso/graph/badge.svg?token=NVFHBBU3AR)](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
- version: "3.5"
79
- services:
80
- lso:
81
- image: my-lso:latest
82
- environment:
83
- SETTINGS_FILENAME: /app/config.json
84
- ANSIBLE_ROLES_PATH: /app/lso/ansible_roles
85
- volumes:
86
- - "/home/user/config.json:/app/config.json:ro"
87
- - "/home/user/ansible_inventory:/opt/ansible_inventory:ro"
88
- - "~/.ssh/id_ed25519.pub:/root/.ssh/id_ed25519.pub:ro"
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
- # Lightweight Service Orchestrator
1
+ ![Lightweight Service Orchestrator](./docs/LSO_banner.jpg)
2
+ [![Supported python versions](https://img.shields.io/pypi/pyversions/orchestrator-lso.svg?color=%2334D058)](https://pypi.org/project/orchestrator-lso)
3
+ [![Downloads](https://static.pepy.tech/badge/orchestrator-lso/month)](https://pepy.tech/project/orchestrator-lso)
4
+ [![codecov](https://codecov.io/github/workfloworchestrator/lso/graph/badge.svg?token=NVFHBBU3AR)](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
- version: "3.5"
23
- services:
24
- lso:
25
- image: my-lso:latest
26
- environment:
27
- SETTINGS_FILENAME: /app/config.json
28
- ANSIBLE_ROLES_PATH: /app/lso/ansible_roles
29
- volumes:
30
- - "/home/user/config.json:/app/config.json:ro"
31
- - "/home/user/ansible_inventory:/opt/ansible_inventory:ro"
32
- - "~/.ssh/id_ed25519.pub:/root/.ssh/id_ed25519.pub:ro"
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:
@@ -1,10 +1,10 @@
1
1
  .wy-menu > p > span {
2
- color: rgb(237 21 86);
2
+ color: rgb(254 122 54);
3
3
  }
4
4
 
5
5
  section > dl > .sig-object {
6
6
  background: #e5e8e8 !important;
7
- color: rgb(237 21 86) !important;
7
+ color: rgb(254 122 54) !important;
8
8
  border-top: 3px solid rgb(167 179 180) !important;
9
9
  }
10
10
 
@@ -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(0 63 95)"}
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.
@@ -13,7 +13,7 @@
13
13
 
14
14
  """LSO, an API for remotely running Ansible playbooks."""
15
15
 
16
- __version__ = "1.0.2"
16
+ __version__ = "1.0.3"
17
17
 
18
18
  import logging
19
19
 
@@ -29,12 +29,12 @@ classifiers = [
29
29
  "Programming Language :: Python :: 3.12",
30
30
  ]
31
31
  dependencies = [
32
- "ansible-runner~=2.3.4",
33
- "ansible~=9.3.0",
34
- "fastapi~=0.110.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.28.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",
@@ -26,7 +26,7 @@ from fastapi.testclient import TestClient
26
26
  import lso
27
27
 
28
28
 
29
- @pytest.fixture()
29
+ @pytest.fixture
30
30
  def mocked_ansible_runner_run() -> Callable:
31
31
  class Runner:
32
32
  def __init__(self) -> None: