orchestrator-lso 2.0.0__tar.gz → 2.0.1__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 (47) hide show
  1. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/.bumpversion.cfg +1 -1
  2. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/Dockerfile.example +1 -1
  3. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/PKG-INFO +4 -4
  4. orchestrator_lso-2.0.1/docs/source/index.rst +34 -0
  5. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/lso/__init__.py +4 -2
  6. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/pyproject.toml +3 -3
  7. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/test/routes/test_playbook.py +1 -1
  8. orchestrator_lso-2.0.0/docs/source/index.rst +0 -10
  9. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/.github/dependabot.yml +0 -0
  10. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/.github/styles/config/vocabularies/Sphinx/accept.txt +0 -0
  11. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/.github/styles/config/vocabularies/jargon/accept.txt +0 -0
  12. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/.github/workflows/publish-package.yaml +0 -0
  13. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/.github/workflows/run-linting-tests.yaml +0 -0
  14. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/.github/workflows/run-unit-tests.yaml +0 -0
  15. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/.github/workflows/sphinx.yaml +0 -0
  16. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/.gitignore +0 -0
  17. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/.vale.ini +0 -0
  18. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/LICENSE +0 -0
  19. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/README.md +0 -0
  20. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/docs/LSO_banner.jpg +0 -0
  21. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/docs/Makefile +0 -0
  22. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/docs/source/_static/custom.css +0 -0
  23. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/docs/source/_static/lso_logo.png +0 -0
  24. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/docs/source/conf.py +0 -0
  25. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/docs/source/module/config.rst +0 -0
  26. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/docs/source/module/playbook.rst +0 -0
  27. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/docs/source/module/routes/default.rst +0 -0
  28. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/docs/source/module/routes/index.rst +0 -0
  29. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/docs/source/module/routes/playbook.rst +0 -0
  30. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/docs/source/modules.rst +0 -0
  31. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/env.example +0 -0
  32. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/lso/app.py +0 -0
  33. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/lso/config.py +0 -0
  34. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/lso/environment.py +0 -0
  35. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/lso/playbook.py +0 -0
  36. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/lso/routes/__init__.py +0 -0
  37. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/lso/routes/default.py +0 -0
  38. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/lso/routes/playbook.py +0 -0
  39. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/lso/tasks.py +0 -0
  40. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/lso/worker.py +0 -0
  41. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/setup.py +0 -0
  42. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/test/__init__.py +0 -0
  43. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/test/conftest.py +0 -0
  44. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/test/routes/__init__.py +0 -0
  45. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/test/routes/test_default.py +0 -0
  46. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/test/test-playbook.yaml +0 -0
  47. {orchestrator_lso-2.0.0 → orchestrator_lso-2.0.1}/test/test_ansible.py +0 -0
@@ -1,5 +1,5 @@
1
1
  [bumpversion]
2
- current_version = 2.0.0
2
+ current_version = 2.0.1
3
3
  commit = False
4
4
  tag = False
5
5
  parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)(rc(?P<build>\d+))?
@@ -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=="2.0.0"
14
+ RUN pip install orchestrator-lso=="2.0.1"
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.3
2
2
  Name: orchestrator-lso
3
- Version: 2.0.0
3
+ Version: 2.0.1
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
@@ -28,10 +28,10 @@ Classifier: Programming Language :: Python :: 3.12
28
28
  Requires-Dist: ansible-runner==2.4.0
29
29
  Requires-Dist: ansible==10.6.0
30
30
  Requires-Dist: fastapi==0.115.5
31
- Requires-Dist: httpx==0.27.2
32
- Requires-Dist: uvicorn[standard]==0.32.0
31
+ Requires-Dist: httpx==0.28.0
32
+ Requires-Dist: uvicorn[standard]==0.32.1
33
33
  Requires-Dist: requests==2.32.3
34
- Requires-Dist: pydantic-settings==2.5.2
34
+ Requires-Dist: pydantic-settings==2.6.1
35
35
  Requires-Dist: celery==5.4.0
36
36
  Requires-Dist: redis==5.2.0
37
37
  Requires-Dist: types-setuptools ; extra == "dev"
@@ -0,0 +1,34 @@
1
+ Lightweight Service Orchestrator (LSO) Documentation
2
+ =====================================================
3
+
4
+ Introduction
5
+ ------------
6
+
7
+ The Lightweight Service Orchestrator (LSO) is a simple tool designed to run Ansible playbooks remotely.
8
+ It provides a straightforward way to send instructions, like inventory and variables, to Ansible through
9
+ a REST API, making automation easier and more flexible.
10
+
11
+ Why LSO?
12
+ --------
13
+
14
+ LSO was built to solve a common problem: running Ansible playbooks from a remote machine without setting
15
+ up a complicated system. Many tools, like AWX, are powerful but require complex setups, like Kubernetes,
16
+ and are tied to specific ecosystems.
17
+
18
+ We wanted a lightweight, easy-to-use solution that works without extra layers. That’s why we created LSO.
19
+
20
+ What LSO Does
21
+ -------------
22
+
23
+ LSO is a small FastAPI server that receives requests from remote services and uses `ansible-runner` to execute playbooks.
24
+
25
+ It:
26
+ - Accepts the playbook name, inventory details, and extra variables as input.
27
+ - Runs the playbook on Ansible using this information.
28
+ - Sends the results back, including the output and execution status.
29
+
30
+ .. toctree::
31
+ :maxdepth: 1
32
+ :caption: Contents:
33
+
34
+ modules
@@ -13,7 +13,7 @@
13
13
 
14
14
  """LSO, an API for remotely running Ansible playbooks."""
15
15
 
16
- __version__ = "2.0.0"
16
+ __version__ = "2.0.1"
17
17
 
18
18
  import logging
19
19
 
@@ -24,6 +24,8 @@ from lso import environment
24
24
  from lso.routes.default import router as default_router
25
25
  from lso.routes.playbook import router as playbook_router
26
26
 
27
+ logger = logging.getLogger(__name__)
28
+
27
29
 
28
30
  def create_app() -> FastAPI:
29
31
  """Initialise the :term:`LSO` app."""
@@ -38,6 +40,6 @@ def create_app() -> FastAPI:
38
40
 
39
41
  environment.setup_logging()
40
42
 
41
- logging.info("FastAPI app initialized")
43
+ logger.info("FastAPI app initialized")
42
44
 
43
45
  return app
@@ -32,10 +32,10 @@ dependencies = [
32
32
  "ansible-runner==2.4.0",
33
33
  "ansible==10.6.0",
34
34
  "fastapi==0.115.5",
35
- "httpx==0.27.2",
36
- "uvicorn[standard]==0.32.0",
35
+ "httpx==0.28.0",
36
+ "uvicorn[standard]==0.32.1",
37
37
  "requests==2.32.3",
38
- "pydantic-settings==2.5.2",
38
+ "pydantic-settings==2.6.1",
39
39
  "celery==5.4.0",
40
40
  "redis==5.2.0",
41
41
  ]
@@ -122,7 +122,7 @@ def test_playbook_endpoint_invalid_hosts(client: TestClient, mocked_ansible_runn
122
122
  response = rv.json()
123
123
 
124
124
  assert isinstance(response, dict)
125
- assert 'Invalid "hosts" entry for "all" group' in re.sub("\n", " ", "".join(response["detail"]))
125
+ assert 'Invalid "hosts" entry for "all" group' in re.sub(r"\n", " ", "".join(response["detail"]))
126
126
  responses.assert_call_count(TEST_CALLBACK_URL, 0)
127
127
 
128
128
 
@@ -1,10 +0,0 @@
1
- Lightweight Service Orchestrator
2
- ================================
3
-
4
- Code documentation for LSO (Lightweight Service Orchestrator).
5
-
6
- .. toctree::
7
- :maxdepth: 1
8
- :caption: Contents:
9
-
10
- modules