osism 0.20250326.0__tar.gz → 0.20250331.0__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.
- osism-0.20250331.0/.hadolint.yaml +4 -0
- osism-0.20250331.0/ChangeLog +7 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/Containerfile +15 -18
- {osism-0.20250326.0 → osism-0.20250331.0}/Dockerfile +15 -18
- {osism-0.20250326.0/osism.egg-info → osism-0.20250331.0}/PKG-INFO +3 -3
- {osism-0.20250326.0 → osism-0.20250331.0}/Pipfile +2 -2
- {osism-0.20250326.0 → osism-0.20250331.0}/Pipfile.lock +74 -74
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/api.py +5 -10
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/commands/netbox.py +0 -6
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/commands/wait.py +5 -12
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/core/enums.py +1 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/tasks/__init__.py +13 -41
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/tasks/conductor.py +0 -12
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/tasks/netbox.py +6 -27
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/tasks/openstack.py +18 -37
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/tasks/reconciler.py +11 -26
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/utils/__init__.py +11 -0
- {osism-0.20250326.0 → osism-0.20250331.0/osism.egg-info}/PKG-INFO +3 -3
- osism-0.20250331.0/osism.egg-info/pbr.json +1 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism.egg-info/requires.txt +2 -2
- {osism-0.20250326.0 → osism-0.20250331.0}/playbooks/build.yml +0 -11
- {osism-0.20250326.0 → osism-0.20250331.0}/requirements.txt +2 -2
- {osism-0.20250326.0 → osism-0.20250331.0}/requirements.yml +1 -1
- osism-0.20250326.0/.hadolint.yaml +0 -3
- osism-0.20250326.0/ChangeLog +0 -7
- osism-0.20250326.0/osism.egg-info/pbr.json +0 -1
- {osism-0.20250326.0 → osism-0.20250331.0}/.flake8 +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/.github/renovate.json +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/.github/workflows/publish.yml +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/.zuul.yaml +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/AUTHORS +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/LICENSE +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/README.md +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/files/change.sh +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/files/cleanup-ansible-collections.sh +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/files/clustershell/clush.conf +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/files/clustershell/groups.conf +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/files/data/SCS-Spec.MandatoryFlavors.verbose.yaml +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/files/netbox-manager/settings.toml +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/files/run-ansible-console.sh +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/__init__.py +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/__main__.py +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/actions/__init__.py +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/actions/manage_device.py +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/actions/manage_interface.py +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/commands/__init__.py +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/commands/apply.py +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/commands/compose.py +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/commands/compute.py +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/commands/configuration.py +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/commands/console.py +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/commands/container.py +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/commands/get.py +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/commands/log.py +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/commands/manage.py +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/commands/noset.py +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/commands/reconciler.py +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/commands/server.py +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/commands/service.py +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/commands/set.py +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/commands/status.py +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/commands/sync.py +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/commands/task.py +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/commands/validate.py +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/commands/vault.py +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/commands/volume.py +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/commands/worker.py +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/core/__init__.py +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/core/playbooks.py +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/data/__init__.py +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/main.py +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/plugins/__init__.py +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/services/__init__.py +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/services/listener.py +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/settings.py +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/tasks/ansible.py +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/tasks/ceph.py +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/tasks/kolla.py +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism/tasks/kubernetes.py +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism.egg-info/SOURCES.txt +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism.egg-info/dependency_links.txt +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism.egg-info/entry_points.txt +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism.egg-info/not-zip-safe +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/osism.egg-info/top_level.txt +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/playbooks/pre.yml +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/playbooks/test-setup.yml +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/requirements.ansible.txt +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/requirements.netbox-manager.txt +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/requirements.openstack-flavor-manager.txt +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/requirements.openstack-image-manager.txt +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/setup.cfg +0 -0
- {osism-0.20250326.0 → osism-0.20250331.0}/setup.py +0 -0
@@ -1,11 +1,12 @@
|
|
1
1
|
ARG PYTHON_VERSION=3.13.2
|
2
|
+
ARG ALPINE_VERSION=3.21
|
2
3
|
|
3
|
-
FROM python:${PYTHON_VERSION}-
|
4
|
+
FROM python:${PYTHON_VERSION}-alpine${ALPINE_VERSION}
|
4
5
|
|
5
6
|
ENV PYTHONWARNINGS="ignore::UserWarning"
|
6
7
|
|
7
8
|
COPY . /src
|
8
|
-
COPY --from=ghcr.io/astral-sh/uv:0.6.
|
9
|
+
COPY --from=ghcr.io/astral-sh/uv:0.6.11 /uv /usr/local/bin/uv
|
9
10
|
|
10
11
|
COPY files/data /data
|
11
12
|
COPY files/change.sh /change.sh
|
@@ -18,6 +19,8 @@ COPY files/clustershell/groups.conf /etc/clustershell/groups.conf
|
|
18
19
|
|
19
20
|
COPY files/netbox-manager/settings.toml /usr/local/config/settings.toml
|
20
21
|
|
22
|
+
RUN apk add --no-cache bash
|
23
|
+
|
21
24
|
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
22
25
|
|
23
26
|
RUN <<EOF
|
@@ -25,17 +28,18 @@ set -e
|
|
25
28
|
set -x
|
26
29
|
|
27
30
|
# install required packages
|
28
|
-
|
29
|
-
|
31
|
+
apk add --no-cache --virtual .build-deps \
|
32
|
+
build-base \
|
33
|
+
gcc \
|
34
|
+
linux-headers \
|
35
|
+
musl-dev \
|
36
|
+
openldap-dev
|
37
|
+
apk add --no-cache \
|
30
38
|
git \
|
31
39
|
less \
|
32
40
|
openssh-client \
|
33
41
|
procps \
|
34
|
-
tini
|
35
|
-
build-essential \
|
36
|
-
gcc \
|
37
|
-
libldap2-dev \
|
38
|
-
libsasl2-dev
|
42
|
+
tini
|
39
43
|
|
40
44
|
# install python packages
|
41
45
|
uv pip install --no-cache --system -r /src/requirements.txt
|
@@ -82,19 +86,12 @@ rm -rf /tests/.git
|
|
82
86
|
ln -s /ansible/inventory/clustershell /etc/clustershell/groups.d
|
83
87
|
|
84
88
|
# cleanup
|
85
|
-
|
86
|
-
build-essential \
|
87
|
-
gcc \
|
88
|
-
libldap2-dev \
|
89
|
-
libsasl2-dev
|
90
|
-
apt-get autoremove -y
|
91
|
-
apt-get clean
|
89
|
+
apk del .build-deps
|
92
90
|
rm -rf \
|
93
91
|
/src \
|
94
92
|
/tmp/* \
|
95
93
|
/usr/share/doc/* \
|
96
94
|
/usr/share/man/* \
|
97
|
-
/var/lib/apt/lists/* \
|
98
95
|
/var/tmp/*
|
99
96
|
|
100
97
|
uv pip install --no-cache --system pyclean==3.0.0
|
@@ -102,4 +99,4 @@ pyclean /usr
|
|
102
99
|
uv pip uninstall --system pyclean
|
103
100
|
EOF
|
104
101
|
|
105
|
-
ENTRYPOINT ["/
|
102
|
+
ENTRYPOINT ["/sbin/tini", "--"]
|
@@ -1,11 +1,12 @@
|
|
1
1
|
ARG PYTHON_VERSION=3.13.2
|
2
|
+
ARG ALPINE_VERSION=3.21
|
2
3
|
|
3
|
-
FROM python:${PYTHON_VERSION}-
|
4
|
+
FROM python:${PYTHON_VERSION}-alpine${ALPINE_VERSION}
|
4
5
|
|
5
6
|
ENV PYTHONWARNINGS="ignore::UserWarning"
|
6
7
|
|
7
8
|
COPY . /src
|
8
|
-
COPY --from=ghcr.io/astral-sh/uv:0.6.
|
9
|
+
COPY --from=ghcr.io/astral-sh/uv:0.6.11 /uv /usr/local/bin/uv
|
9
10
|
|
10
11
|
COPY files/data /data
|
11
12
|
COPY files/change.sh /change.sh
|
@@ -18,6 +19,8 @@ COPY files/clustershell/groups.conf /etc/clustershell/groups.conf
|
|
18
19
|
|
19
20
|
COPY files/netbox-manager/settings.toml /usr/local/config/settings.toml
|
20
21
|
|
22
|
+
RUN apk add --no-cache bash
|
23
|
+
|
21
24
|
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
22
25
|
|
23
26
|
RUN <<EOF
|
@@ -25,17 +28,18 @@ set -e
|
|
25
28
|
set -x
|
26
29
|
|
27
30
|
# install required packages
|
28
|
-
|
29
|
-
|
31
|
+
apk add --no-cache --virtual .build-deps \
|
32
|
+
build-base \
|
33
|
+
gcc \
|
34
|
+
linux-headers \
|
35
|
+
musl-dev \
|
36
|
+
openldap-dev
|
37
|
+
apk add --no-cache \
|
30
38
|
git \
|
31
39
|
less \
|
32
40
|
openssh-client \
|
33
41
|
procps \
|
34
|
-
tini
|
35
|
-
build-essential \
|
36
|
-
gcc \
|
37
|
-
libldap2-dev \
|
38
|
-
libsasl2-dev
|
42
|
+
tini
|
39
43
|
|
40
44
|
# install python packages
|
41
45
|
uv pip install --no-cache --system -r /src/requirements.txt
|
@@ -82,19 +86,12 @@ rm -rf /tests/.git
|
|
82
86
|
ln -s /ansible/inventory/clustershell /etc/clustershell/groups.d
|
83
87
|
|
84
88
|
# cleanup
|
85
|
-
|
86
|
-
build-essential \
|
87
|
-
gcc \
|
88
|
-
libldap2-dev \
|
89
|
-
libsasl2-dev
|
90
|
-
apt-get autoremove -y
|
91
|
-
apt-get clean
|
89
|
+
apk del .build-deps
|
92
90
|
rm -rf \
|
93
91
|
/src \
|
94
92
|
/tmp/* \
|
95
93
|
/usr/share/doc/* \
|
96
94
|
/usr/share/man/* \
|
97
|
-
/var/lib/apt/lists/* \
|
98
95
|
/var/tmp/*
|
99
96
|
|
100
97
|
uv pip install --no-cache --system pyclean==3.0.0
|
@@ -102,4 +99,4 @@ pyclean /usr
|
|
102
99
|
uv pip uninstall --system pyclean
|
103
100
|
EOF
|
104
101
|
|
105
|
-
ENTRYPOINT ["/
|
102
|
+
ENTRYPOINT ["/sbin/tini", "--"]
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: osism
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.20250331.0
|
4
4
|
Summary: OSISM manager interface
|
5
5
|
Home-page: https://github.com/osism/python-osism
|
6
6
|
Author: OSISM GmbH
|
@@ -36,7 +36,7 @@ Requires-Dist: flower==2.0.1
|
|
36
36
|
Requires-Dist: hiredis==3.1.0
|
37
37
|
Requires-Dist: jc==1.25.4
|
38
38
|
Requires-Dist: keystoneauth1==5.10.0
|
39
|
-
Requires-Dist: kombu==5.5.
|
39
|
+
Requires-Dist: kombu==5.5.2
|
40
40
|
Requires-Dist: kubernetes==32.0.1
|
41
41
|
Requires-Dist: loguru==0.7.3
|
42
42
|
Requires-Dist: netmiko==4.5.0
|
@@ -47,7 +47,7 @@ Requires-Dist: pottery==3.0.1
|
|
47
47
|
Requires-Dist: prompt-toolkit==3.0.50
|
48
48
|
Requires-Dist: pydantic==1.10.21
|
49
49
|
Requires-Dist: pynetbox==7.4.1
|
50
|
-
Requires-Dist: pytest-testinfra==10.
|
50
|
+
Requires-Dist: pytest-testinfra==10.2.2
|
51
51
|
Requires-Dist: python-dateutil==2.9.0.post0
|
52
52
|
Requires-Dist: setuptools==78.1.0
|
53
53
|
Requires-Dist: sqlmodel==0.0.24
|
@@ -20,7 +20,7 @@ hiredis = "==3.1.0"
|
|
20
20
|
huey = "==2.5.3"
|
21
21
|
jc = "==1.25.4"
|
22
22
|
keystoneauth1 = "==5.10.0"
|
23
|
-
kombu = "==5.5.
|
23
|
+
kombu = "==5.5.2"
|
24
24
|
kubernetes = "==32.0.1"
|
25
25
|
loguru = "==0.7.3"
|
26
26
|
netmiko = "==4.5.0"
|
@@ -31,7 +31,7 @@ pottery = "==3.0.1"
|
|
31
31
|
prompt-toolkit = "==3.0.50"
|
32
32
|
pydantic = "==1.10.21"
|
33
33
|
pynetbox = "==7.4.1"
|
34
|
-
pytest-testinfra = "==10.
|
34
|
+
pytest-testinfra = "==10.2.2"
|
35
35
|
python-dateutil = "==2.9.0.post0"
|
36
36
|
setuptools = "==78.1.0"
|
37
37
|
sqlmodel = "==0.0.24"
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"_meta": {
|
3
3
|
"hash": {
|
4
|
-
"sha256": "
|
4
|
+
"sha256": "a555c650c015f3d1360c7f3efce49c7258588d7772da512995bef5c8da60a26f"
|
5
5
|
},
|
6
6
|
"pipfile-spec": 6,
|
7
7
|
"requires": {},
|
@@ -786,12 +786,12 @@
|
|
786
786
|
},
|
787
787
|
"kombu": {
|
788
788
|
"hashes": [
|
789
|
-
"sha256:
|
790
|
-
"sha256:
|
789
|
+
"sha256:2dd27ec84fd843a4e0a7187424313f87514b344812cb98c25daddafbb6a7ff0e",
|
790
|
+
"sha256:40f3674ed19603b8a771b6c74de126dbf8879755a0337caac6602faa82d539cd"
|
791
791
|
],
|
792
792
|
"index": "pypi",
|
793
793
|
"markers": "python_version >= '3.8'",
|
794
|
-
"version": "==5.5.
|
794
|
+
"version": "==5.5.2"
|
795
795
|
},
|
796
796
|
"kubernetes": {
|
797
797
|
"hashes": [
|
@@ -1175,11 +1175,11 @@
|
|
1175
1175
|
},
|
1176
1176
|
"pyasn1-modules": {
|
1177
1177
|
"hashes": [
|
1178
|
-
"sha256:
|
1179
|
-
"sha256:
|
1178
|
+
"sha256:29253a9207ce32b64c3ac6600edc75368f98473906e8fd1043bd6b5b1de2c14a",
|
1179
|
+
"sha256:677091de870a80aae844b1ca6134f54652fa2c8c5a52aa396440ac3106e941e6"
|
1180
1180
|
],
|
1181
1181
|
"markers": "python_version >= '3.8'",
|
1182
|
-
"version": "==0.4.
|
1182
|
+
"version": "==0.4.2"
|
1183
1183
|
},
|
1184
1184
|
"pycparser": {
|
1185
1185
|
"hashes": [
|
@@ -1309,12 +1309,12 @@
|
|
1309
1309
|
},
|
1310
1310
|
"pytest-testinfra": {
|
1311
1311
|
"hashes": [
|
1312
|
-
"sha256:
|
1313
|
-
"sha256:
|
1312
|
+
"sha256:537fd5eb88da618c1f461248aa20594cf8d44512e8519b239837e83875e1e9cd",
|
1313
|
+
"sha256:b785602b0aa868c858e4ef121a8cc0d13a81c04b74ec0364d70969540f8e7c31"
|
1314
1314
|
],
|
1315
1315
|
"index": "pypi",
|
1316
1316
|
"markers": "python_version >= '3.9'",
|
1317
|
-
"version": "==10.
|
1317
|
+
"version": "==10.2.2"
|
1318
1318
|
},
|
1319
1319
|
"python-daemon": {
|
1320
1320
|
"hashes": [
|
@@ -1433,11 +1433,11 @@
|
|
1433
1433
|
},
|
1434
1434
|
"rich": {
|
1435
1435
|
"hashes": [
|
1436
|
-
"sha256:
|
1437
|
-
"sha256:
|
1436
|
+
"sha256:1c9491e1951aac09caffd42f448ee3d04e58923ffe14993f6e83068dc395d7e0",
|
1437
|
+
"sha256:82f1bc23a6a21ebca4ae0c45af9bdbc492ed20231dcb63f297d6d1021a9d5725"
|
1438
1438
|
],
|
1439
1439
|
"markers": "python_full_version >= '3.8.0'",
|
1440
|
-
"version": "==
|
1440
|
+
"version": "==14.0.0"
|
1441
1441
|
},
|
1442
1442
|
"rsa": {
|
1443
1443
|
"hashes": [
|
@@ -1489,66 +1489,66 @@
|
|
1489
1489
|
},
|
1490
1490
|
"sqlalchemy": {
|
1491
1491
|
"hashes": [
|
1492
|
-
"sha256:
|
1493
|
-
"sha256:
|
1494
|
-
"sha256:
|
1495
|
-
"sha256:
|
1496
|
-
"sha256:
|
1497
|
-
"sha256:
|
1498
|
-
"sha256:
|
1499
|
-
"sha256:
|
1500
|
-
"sha256:
|
1501
|
-
"sha256:
|
1502
|
-
"sha256:
|
1503
|
-
"sha256:
|
1504
|
-
"sha256:
|
1505
|
-
"sha256:
|
1506
|
-
"sha256:
|
1507
|
-
"sha256:
|
1508
|
-
"sha256:
|
1509
|
-
"sha256:
|
1510
|
-
"sha256:
|
1511
|
-
"sha256:
|
1512
|
-
"sha256:
|
1513
|
-
"sha256:
|
1514
|
-
"sha256:
|
1515
|
-
"sha256:
|
1516
|
-
"sha256:
|
1517
|
-
"sha256:
|
1518
|
-
"sha256:
|
1519
|
-
"sha256:
|
1520
|
-
"sha256:
|
1521
|
-
"sha256:
|
1522
|
-
"sha256:
|
1523
|
-
"sha256:
|
1524
|
-
"sha256:
|
1525
|
-
"sha256:
|
1526
|
-
"sha256:
|
1527
|
-
"sha256:
|
1528
|
-
"sha256:
|
1529
|
-
"sha256:
|
1530
|
-
"sha256:
|
1531
|
-
"sha256:
|
1532
|
-
"sha256:
|
1533
|
-
"sha256:
|
1534
|
-
"sha256:
|
1535
|
-
"sha256:
|
1536
|
-
"sha256:
|
1537
|
-
"sha256:
|
1538
|
-
"sha256:
|
1539
|
-
"sha256:
|
1540
|
-
"sha256:
|
1541
|
-
"sha256:
|
1542
|
-
"sha256:
|
1543
|
-
"sha256:
|
1544
|
-
"sha256:
|
1545
|
-
"sha256:
|
1546
|
-
"sha256:
|
1547
|
-
"sha256:
|
1548
|
-
"sha256:
|
1492
|
+
"sha256:00a494ea6f42a44c326477b5bee4e0fc75f6a80c01570a32b57e89cf0fbef85a",
|
1493
|
+
"sha256:0bb933a650323e476a2e4fbef8997a10d0003d4da996aad3fd7873e962fdde4d",
|
1494
|
+
"sha256:110179728e442dae85dd39591beb74072ae4ad55a44eda2acc6ec98ead80d5f2",
|
1495
|
+
"sha256:15d08d5ef1b779af6a0909b97be6c1fd4298057504eb6461be88bd1696cb438e",
|
1496
|
+
"sha256:16d325ea898f74b26ffcd1cf8c593b0beed8714f0317df2bed0d8d1de05a8f26",
|
1497
|
+
"sha256:1abb387710283fc5983d8a1209d9696a4eae9db8d7ac94b402981fe2fe2e39ad",
|
1498
|
+
"sha256:1ffdf9c91428e59744f8e6f98190516f8e1d05eec90e936eb08b257332c5e870",
|
1499
|
+
"sha256:2be94d75ee06548d2fc591a3513422b873490efb124048f50556369a834853b0",
|
1500
|
+
"sha256:2cbafc8d39ff1abdfdda96435f38fab141892dc759a2165947d1a8fffa7ef596",
|
1501
|
+
"sha256:2ee5f9999a5b0e9689bed96e60ee53c3384f1a05c2dd8068cc2e8361b0df5b7a",
|
1502
|
+
"sha256:32587e2e1e359276957e6fe5dad089758bc042a971a8a09ae8ecf7a8fe23d07a",
|
1503
|
+
"sha256:35904d63412db21088739510216e9349e335f142ce4a04b69e2528020ee19ed4",
|
1504
|
+
"sha256:37a5c21ab099a83d669ebb251fddf8f5cee4d75ea40a5a1653d9c43d60e20867",
|
1505
|
+
"sha256:37f7a0f506cf78c80450ed1e816978643d3969f99c4ac6b01104a6fe95c5490a",
|
1506
|
+
"sha256:46628ebcec4f23a1584fb52f2abe12ddb00f3bb3b7b337618b80fc1b51177aff",
|
1507
|
+
"sha256:4a4c5a2905a9ccdc67a8963e24abd2f7afcd4348829412483695c59e0af9a705",
|
1508
|
+
"sha256:4aeb939bcac234b88e2d25d5381655e8353fe06b4e50b1c55ecffe56951d18c2",
|
1509
|
+
"sha256:50f5885bbed261fc97e2e66c5156244f9704083a674b8d17f24c72217d29baf5",
|
1510
|
+
"sha256:519624685a51525ddaa7d8ba8265a1540442a2ec71476f0e75241eb8263d6f51",
|
1511
|
+
"sha256:5434223b795be5c5ef8244e5ac98056e290d3a99bdcc539b916e282b160dda00",
|
1512
|
+
"sha256:55028d7a3ebdf7ace492fab9895cbc5270153f75442a0472d8516e03159ab364",
|
1513
|
+
"sha256:5654d1ac34e922b6c5711631f2da497d3a7bffd6f9f87ac23b35feea56098011",
|
1514
|
+
"sha256:574aea2c54d8f1dd1699449f332c7d9b71c339e04ae50163a3eb5ce4c4325ee4",
|
1515
|
+
"sha256:5cfa124eda500ba4b0d3afc3e91ea27ed4754e727c7f025f293a22f512bcd4c9",
|
1516
|
+
"sha256:5ea9181284754d37db15156eb7be09c86e16e50fbe77610e9e7bee09291771a1",
|
1517
|
+
"sha256:641ee2e0834812d657862f3a7de95e0048bdcb6c55496f39c6fa3d435f6ac6ad",
|
1518
|
+
"sha256:650490653b110905c10adac69408380688cefc1f536a137d0d69aca1069dc1d1",
|
1519
|
+
"sha256:6959738971b4745eea16f818a2cd086fb35081383b078272c35ece2b07012716",
|
1520
|
+
"sha256:6cfedff6878b0e0d1d0a50666a817ecd85051d12d56b43d9d425455e608b5ba0",
|
1521
|
+
"sha256:7e0505719939e52a7b0c65d20e84a6044eb3712bb6f239c6b1db77ba8e173a37",
|
1522
|
+
"sha256:8b6b28d303b9d57c17a5164eb1fd2d5119bb6ff4413d5894e74873280483eeb5",
|
1523
|
+
"sha256:8bb131ffd2165fae48162c7bbd0d97c84ab961deea9b8bab16366543deeab625",
|
1524
|
+
"sha256:915866fd50dd868fdcc18d61d8258db1bf9ed7fbd6dfec960ba43365952f3b01",
|
1525
|
+
"sha256:9408fd453d5f8990405cc9def9af46bfbe3183e6110401b407c2d073c3388f47",
|
1526
|
+
"sha256:957f8d85d5e834397ef78a6109550aeb0d27a53b5032f7a57f2451e1adc37e98",
|
1527
|
+
"sha256:9c7a80ed86d6aaacb8160a1caef6680d4ddd03c944d985aecee940d168c411d1",
|
1528
|
+
"sha256:9d3b31d0a1c44b74d3ae27a3de422dfccd2b8f0b75e51ecb2faa2bf65ab1ba0d",
|
1529
|
+
"sha256:a669cbe5be3c63f75bcbee0b266779706f1a54bcb1000f302685b87d1b8c1500",
|
1530
|
+
"sha256:a8aae085ea549a1eddbc9298b113cffb75e514eadbb542133dd2b99b5fb3b6af",
|
1531
|
+
"sha256:ae9597cab738e7cc823f04a704fb754a9249f0b6695a6aeb63b74055cd417a96",
|
1532
|
+
"sha256:afe63b208153f3a7a2d1a5b9df452b0673082588933e54e7c8aac457cf35e758",
|
1533
|
+
"sha256:b5a5bbe29c10c5bfd63893747a1bf6f8049df607638c786252cb9243b86b6706",
|
1534
|
+
"sha256:baf7cee56bd552385c1ee39af360772fbfc2f43be005c78d1140204ad6148438",
|
1535
|
+
"sha256:bb19e30fdae77d357ce92192a3504579abe48a66877f476880238a962e5b96db",
|
1536
|
+
"sha256:bece9527f5a98466d67fb5d34dc560c4da964240d8b09024bb21c1246545e04e",
|
1537
|
+
"sha256:c0cae71e20e3c02c52f6b9e9722bca70e4a90a466d59477822739dc31ac18b4b",
|
1538
|
+
"sha256:c268b5100cfeaa222c40f55e169d484efa1384b44bf9ca415eae6d556f02cb08",
|
1539
|
+
"sha256:c7b927155112ac858357ccf9d255dd8c044fd9ad2dc6ce4c4149527c901fa4c3",
|
1540
|
+
"sha256:c884de19528e0fcd9dc34ee94c810581dd6e74aef75437ff17e696c2bfefae3e",
|
1541
|
+
"sha256:cd2f75598ae70bcfca9117d9e51a3b06fe29edd972fdd7fd57cc97b4dbf3b08a",
|
1542
|
+
"sha256:cf0e99cdb600eabcd1d65cdba0d3c91418fee21c4aa1d28db47d095b1064a7d8",
|
1543
|
+
"sha256:d827099289c64589418ebbcaead0145cd19f4e3e8a93919a0100247af245fa00",
|
1544
|
+
"sha256:e8040680eaacdce4d635f12c55c714f3d4c7f57da2bc47a01229d115bd319191",
|
1545
|
+
"sha256:f0fda83e113bb0fb27dc003685f32a5dcb99c9c4f41f4fa0838ac35265c23b5c",
|
1546
|
+
"sha256:f1ea21bef99c703f44444ad29c2c1b6bd55d202750b6de8e06a955380f4725d7",
|
1547
|
+
"sha256:f6bacab7514de6146a1976bc56e1545bee247242fab030b89e5f70336fc0003e",
|
1548
|
+
"sha256:fe147fcd85aaed53ce90645c91ed5fca0cc88a797314c70dfd9d35925bd5d106"
|
1549
1549
|
],
|
1550
1550
|
"markers": "python_version >= '3.7'",
|
1551
|
-
"version": "==2.0.
|
1551
|
+
"version": "==2.0.40"
|
1552
1552
|
},
|
1553
1553
|
"sqlmodel": {
|
1554
1554
|
"hashes": [
|
@@ -1618,11 +1618,11 @@
|
|
1618
1618
|
},
|
1619
1619
|
"tzdata": {
|
1620
1620
|
"hashes": [
|
1621
|
-
"sha256:
|
1622
|
-
"sha256:
|
1621
|
+
"sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8",
|
1622
|
+
"sha256:b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9"
|
1623
1623
|
],
|
1624
1624
|
"markers": "python_version >= '2'",
|
1625
|
-
"version": "==2025.
|
1625
|
+
"version": "==2025.2"
|
1626
1626
|
},
|
1627
1627
|
"urllib3": {
|
1628
1628
|
"hashes": [
|
@@ -11,7 +11,7 @@ import pynetbox
|
|
11
11
|
from starlette.middleware.cors import CORSMiddleware
|
12
12
|
|
13
13
|
from osism.tasks import reconciler
|
14
|
-
from osism import settings
|
14
|
+
from osism import settings, utils
|
15
15
|
from osism.services.listener import BaremetalEvents
|
16
16
|
|
17
17
|
|
@@ -75,16 +75,13 @@ app.add_middleware(CORSMiddleware)
|
|
75
75
|
dictConfig(LogConfig().dict())
|
76
76
|
logger = logging.getLogger("api")
|
77
77
|
|
78
|
-
nb = None
|
79
78
|
baremetal_events = BaremetalEvents()
|
80
79
|
|
81
80
|
|
82
81
|
@app.on_event("startup")
|
83
82
|
async def startup_event():
|
84
|
-
global nb
|
85
|
-
|
86
83
|
if settings.NETBOX_URL and settings.NETBOX_TOKEN:
|
87
|
-
nb = pynetbox.api(settings.NETBOX_URL, token=settings.NETBOX_TOKEN)
|
84
|
+
utils.nb = pynetbox.api(settings.NETBOX_URL, token=settings.NETBOX_TOKEN)
|
88
85
|
|
89
86
|
if settings.IGNORE_SSL_ERRORS:
|
90
87
|
import requests
|
@@ -92,7 +89,7 @@ async def startup_event():
|
|
92
89
|
requests.packages.urllib3.disable_warnings()
|
93
90
|
session = requests.Session()
|
94
91
|
session.verify = False
|
95
|
-
nb.http_session = session
|
92
|
+
utils.nb.http_session = session
|
96
93
|
|
97
94
|
|
98
95
|
@app.get("/")
|
@@ -125,9 +122,7 @@ async def webhook(
|
|
125
122
|
content_length: int = Header(...),
|
126
123
|
x_hook_signature: str = Header(None),
|
127
124
|
):
|
128
|
-
|
129
|
-
|
130
|
-
if nb:
|
125
|
+
if utils.nb:
|
131
126
|
data = webhook_input.data
|
132
127
|
url = data["url"]
|
133
128
|
name = data["name"]
|
@@ -146,7 +141,7 @@ async def webhook(
|
|
146
141
|
device_type = "interface"
|
147
142
|
|
148
143
|
device_id = data["device"]["id"]
|
149
|
-
device = nb.dcim.devices.get(id=device_id)
|
144
|
+
device = utils.nb.dcim.devices.get(id=device_id)
|
150
145
|
tags = [str(x) for x in device.tags]
|
151
146
|
custom_fields = device.custom_fields
|
152
147
|
|
@@ -2,16 +2,10 @@
|
|
2
2
|
|
3
3
|
from cliff.command import Command
|
4
4
|
from loguru import logger
|
5
|
-
from redis import Redis
|
6
5
|
|
7
|
-
from osism import settings
|
8
6
|
from osism.tasks import conductor, netbox, reconciler, openstack, handle_task
|
9
7
|
|
10
8
|
|
11
|
-
redis = Redis(host=settings.REDIS_HOST, port=settings.REDIS_PORT, db=settings.REDIS_DB)
|
12
|
-
redis.ping()
|
13
|
-
|
14
|
-
|
15
9
|
class Ironic(Command):
|
16
10
|
def get_parser(self, prog_name):
|
17
11
|
parser = super(Ironic, self).get_parser(prog_name)
|
@@ -6,8 +6,7 @@ from celery import Celery
|
|
6
6
|
from celery.result import AsyncResult
|
7
7
|
from cliff.command import Command
|
8
8
|
from loguru import logger
|
9
|
-
from
|
10
|
-
from osism import settings
|
9
|
+
from osism import utils
|
11
10
|
from osism.tasks import Config
|
12
11
|
|
13
12
|
|
@@ -119,18 +118,12 @@ class Run(Command):
|
|
119
118
|
print(f"{task_id} = STARTED")
|
120
119
|
|
121
120
|
if live:
|
122
|
-
redis
|
123
|
-
host=settings.REDIS_HOST,
|
124
|
-
port=settings.REDIS_PORT,
|
125
|
-
db=settings.REDIS_DB,
|
126
|
-
socket_keepalive=True,
|
127
|
-
)
|
128
|
-
redis.ping()
|
121
|
+
utils.redis.ping()
|
129
122
|
|
130
123
|
last_id = 0
|
131
124
|
while_True = True
|
132
125
|
while while_True:
|
133
|
-
data = redis.xread(
|
126
|
+
data = utils.redis.xread(
|
134
127
|
{str(task_id): last_id}, count=1, block=1000
|
135
128
|
)
|
136
129
|
if data:
|
@@ -143,7 +136,7 @@ class Run(Command):
|
|
143
136
|
logger.debug(
|
144
137
|
f"Processing message {last_id} of type {message_type}"
|
145
138
|
)
|
146
|
-
redis.xdel(str(task_id), last_id)
|
139
|
+
utils.redis.xdel(str(task_id), last_id)
|
147
140
|
|
148
141
|
if message_type == "stdout":
|
149
142
|
print(message_content, end="")
|
@@ -153,7 +146,7 @@ class Run(Command):
|
|
153
146
|
message_type == "action"
|
154
147
|
and message_content == "quit"
|
155
148
|
):
|
156
|
-
redis.close()
|
149
|
+
utils.redis.close()
|
157
150
|
if len(task_ids) == 1:
|
158
151
|
return rc
|
159
152
|
else:
|
@@ -107,6 +107,7 @@ VALIDATE_PLAYBOOKS = {
|
|
107
107
|
"ntp": {"environment": "generic", "runtime": "osism-ansible"},
|
108
108
|
"system-encoding": {"environment": "generic", "runtime": "osism-ansible"},
|
109
109
|
"ulimits": {"environment": "generic", "runtime": "osism-ansible"},
|
110
|
+
"stress": {"environment": "generic", "runtime": "osism-ansible"},
|
110
111
|
}
|
111
112
|
|
112
113
|
MAP_ROLE2ROLE = {
|