osism 0.20250331.0__tar.gz → 0.20250407.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.
Files changed (95) hide show
  1. osism-0.20250407.0/ChangeLog +7 -0
  2. {osism-0.20250331.0 → osism-0.20250407.0}/Containerfile +1 -1
  3. {osism-0.20250331.0 → osism-0.20250407.0}/Dockerfile +1 -1
  4. {osism-0.20250331.0/osism.egg-info → osism-0.20250407.0}/PKG-INFO +3 -3
  5. {osism-0.20250331.0 → osism-0.20250407.0}/Pipfile +1 -1
  6. {osism-0.20250331.0 → osism-0.20250407.0}/Pipfile.lock +4 -4
  7. {osism-0.20250331.0 → osism-0.20250407.0}/osism/commands/manage.py +2 -2
  8. {osism-0.20250331.0 → osism-0.20250407.0}/osism/commands/netbox.py +17 -14
  9. {osism-0.20250331.0 → osism-0.20250407.0}/osism/core/enums.py +14 -1
  10. {osism-0.20250331.0 → osism-0.20250407.0}/osism/services/listener.py +28 -67
  11. osism-0.20250407.0/osism/tasks/conductor.py +419 -0
  12. osism-0.20250407.0/osism/tasks/netbox.py +154 -0
  13. osism-0.20250407.0/osism/tasks/openstack.py +239 -0
  14. {osism-0.20250331.0 → osism-0.20250407.0/osism.egg-info}/PKG-INFO +3 -3
  15. {osism-0.20250331.0 → osism-0.20250407.0}/osism.egg-info/SOURCES.txt +0 -2
  16. osism-0.20250407.0/osism.egg-info/pbr.json +1 -0
  17. {osism-0.20250331.0 → osism-0.20250407.0}/osism.egg-info/requires.txt +2 -2
  18. osism-0.20250407.0/requirements.openstack-image-manager.txt +1 -0
  19. {osism-0.20250331.0 → osism-0.20250407.0}/requirements.txt +1 -1
  20. {osism-0.20250331.0 → osism-0.20250407.0}/requirements.yml +1 -1
  21. osism-0.20250331.0/ChangeLog +0 -7
  22. osism-0.20250331.0/osism/actions/manage_device.py +0 -120
  23. osism-0.20250331.0/osism/actions/manage_interface.py +0 -13
  24. osism-0.20250331.0/osism/tasks/conductor.py +0 -108
  25. osism-0.20250331.0/osism/tasks/netbox.py +0 -150
  26. osism-0.20250331.0/osism/tasks/openstack.py +0 -299
  27. osism-0.20250331.0/osism.egg-info/pbr.json +0 -1
  28. osism-0.20250331.0/requirements.openstack-image-manager.txt +0 -1
  29. {osism-0.20250331.0 → osism-0.20250407.0}/.flake8 +0 -0
  30. {osism-0.20250331.0 → osism-0.20250407.0}/.github/renovate.json +0 -0
  31. {osism-0.20250331.0 → osism-0.20250407.0}/.github/workflows/publish.yml +0 -0
  32. {osism-0.20250331.0 → osism-0.20250407.0}/.hadolint.yaml +0 -0
  33. {osism-0.20250331.0 → osism-0.20250407.0}/.zuul.yaml +0 -0
  34. {osism-0.20250331.0 → osism-0.20250407.0}/AUTHORS +0 -0
  35. {osism-0.20250331.0 → osism-0.20250407.0}/LICENSE +0 -0
  36. {osism-0.20250331.0 → osism-0.20250407.0}/README.md +0 -0
  37. {osism-0.20250331.0 → osism-0.20250407.0}/files/change.sh +0 -0
  38. {osism-0.20250331.0 → osism-0.20250407.0}/files/cleanup-ansible-collections.sh +0 -0
  39. {osism-0.20250331.0 → osism-0.20250407.0}/files/clustershell/clush.conf +0 -0
  40. {osism-0.20250331.0 → osism-0.20250407.0}/files/clustershell/groups.conf +0 -0
  41. {osism-0.20250331.0 → osism-0.20250407.0}/files/data/SCS-Spec.MandatoryFlavors.verbose.yaml +0 -0
  42. {osism-0.20250331.0 → osism-0.20250407.0}/files/netbox-manager/settings.toml +0 -0
  43. {osism-0.20250331.0 → osism-0.20250407.0}/files/run-ansible-console.sh +0 -0
  44. {osism-0.20250331.0 → osism-0.20250407.0}/osism/__init__.py +0 -0
  45. {osism-0.20250331.0 → osism-0.20250407.0}/osism/__main__.py +0 -0
  46. {osism-0.20250331.0 → osism-0.20250407.0}/osism/actions/__init__.py +0 -0
  47. {osism-0.20250331.0 → osism-0.20250407.0}/osism/api.py +0 -0
  48. {osism-0.20250331.0 → osism-0.20250407.0}/osism/commands/__init__.py +0 -0
  49. {osism-0.20250331.0 → osism-0.20250407.0}/osism/commands/apply.py +0 -0
  50. {osism-0.20250331.0 → osism-0.20250407.0}/osism/commands/compose.py +0 -0
  51. {osism-0.20250331.0 → osism-0.20250407.0}/osism/commands/compute.py +0 -0
  52. {osism-0.20250331.0 → osism-0.20250407.0}/osism/commands/configuration.py +0 -0
  53. {osism-0.20250331.0 → osism-0.20250407.0}/osism/commands/console.py +0 -0
  54. {osism-0.20250331.0 → osism-0.20250407.0}/osism/commands/container.py +0 -0
  55. {osism-0.20250331.0 → osism-0.20250407.0}/osism/commands/get.py +0 -0
  56. {osism-0.20250331.0 → osism-0.20250407.0}/osism/commands/log.py +0 -0
  57. {osism-0.20250331.0 → osism-0.20250407.0}/osism/commands/noset.py +0 -0
  58. {osism-0.20250331.0 → osism-0.20250407.0}/osism/commands/reconciler.py +0 -0
  59. {osism-0.20250331.0 → osism-0.20250407.0}/osism/commands/server.py +0 -0
  60. {osism-0.20250331.0 → osism-0.20250407.0}/osism/commands/service.py +0 -0
  61. {osism-0.20250331.0 → osism-0.20250407.0}/osism/commands/set.py +0 -0
  62. {osism-0.20250331.0 → osism-0.20250407.0}/osism/commands/status.py +0 -0
  63. {osism-0.20250331.0 → osism-0.20250407.0}/osism/commands/sync.py +0 -0
  64. {osism-0.20250331.0 → osism-0.20250407.0}/osism/commands/task.py +0 -0
  65. {osism-0.20250331.0 → osism-0.20250407.0}/osism/commands/validate.py +0 -0
  66. {osism-0.20250331.0 → osism-0.20250407.0}/osism/commands/vault.py +0 -0
  67. {osism-0.20250331.0 → osism-0.20250407.0}/osism/commands/volume.py +0 -0
  68. {osism-0.20250331.0 → osism-0.20250407.0}/osism/commands/wait.py +0 -0
  69. {osism-0.20250331.0 → osism-0.20250407.0}/osism/commands/worker.py +0 -0
  70. {osism-0.20250331.0 → osism-0.20250407.0}/osism/core/__init__.py +0 -0
  71. {osism-0.20250331.0 → osism-0.20250407.0}/osism/core/playbooks.py +0 -0
  72. {osism-0.20250331.0 → osism-0.20250407.0}/osism/data/__init__.py +0 -0
  73. {osism-0.20250331.0 → osism-0.20250407.0}/osism/main.py +0 -0
  74. {osism-0.20250331.0 → osism-0.20250407.0}/osism/plugins/__init__.py +0 -0
  75. {osism-0.20250331.0 → osism-0.20250407.0}/osism/services/__init__.py +0 -0
  76. {osism-0.20250331.0 → osism-0.20250407.0}/osism/settings.py +0 -0
  77. {osism-0.20250331.0 → osism-0.20250407.0}/osism/tasks/__init__.py +0 -0
  78. {osism-0.20250331.0 → osism-0.20250407.0}/osism/tasks/ansible.py +0 -0
  79. {osism-0.20250331.0 → osism-0.20250407.0}/osism/tasks/ceph.py +0 -0
  80. {osism-0.20250331.0 → osism-0.20250407.0}/osism/tasks/kolla.py +0 -0
  81. {osism-0.20250331.0 → osism-0.20250407.0}/osism/tasks/kubernetes.py +0 -0
  82. {osism-0.20250331.0 → osism-0.20250407.0}/osism/tasks/reconciler.py +0 -0
  83. {osism-0.20250331.0 → osism-0.20250407.0}/osism/utils/__init__.py +0 -0
  84. {osism-0.20250331.0 → osism-0.20250407.0}/osism.egg-info/dependency_links.txt +0 -0
  85. {osism-0.20250331.0 → osism-0.20250407.0}/osism.egg-info/entry_points.txt +0 -0
  86. {osism-0.20250331.0 → osism-0.20250407.0}/osism.egg-info/not-zip-safe +0 -0
  87. {osism-0.20250331.0 → osism-0.20250407.0}/osism.egg-info/top_level.txt +0 -0
  88. {osism-0.20250331.0 → osism-0.20250407.0}/playbooks/build.yml +0 -0
  89. {osism-0.20250331.0 → osism-0.20250407.0}/playbooks/pre.yml +0 -0
  90. {osism-0.20250331.0 → osism-0.20250407.0}/playbooks/test-setup.yml +0 -0
  91. {osism-0.20250331.0 → osism-0.20250407.0}/requirements.ansible.txt +0 -0
  92. {osism-0.20250331.0 → osism-0.20250407.0}/requirements.netbox-manager.txt +0 -0
  93. {osism-0.20250331.0 → osism-0.20250407.0}/requirements.openstack-flavor-manager.txt +0 -0
  94. {osism-0.20250331.0 → osism-0.20250407.0}/setup.cfg +0 -0
  95. {osism-0.20250331.0 → osism-0.20250407.0}/setup.py +0 -0
@@ -0,0 +1,7 @@
1
+ CHANGES
2
+ =======
3
+
4
+ v0.20250407.0
5
+ -------------
6
+
7
+ * chore(deps): update dependency openstack-image-manager to v0.20250407.0 (#1271)
@@ -6,7 +6,7 @@ FROM python:${PYTHON_VERSION}-alpine${ALPINE_VERSION}
6
6
  ENV PYTHONWARNINGS="ignore::UserWarning"
7
7
 
8
8
  COPY . /src
9
- COPY --from=ghcr.io/astral-sh/uv:0.6.11 /uv /usr/local/bin/uv
9
+ COPY --from=ghcr.io/astral-sh/uv:0.6.12 /uv /usr/local/bin/uv
10
10
 
11
11
  COPY files/data /data
12
12
  COPY files/change.sh /change.sh
@@ -6,7 +6,7 @@ FROM python:${PYTHON_VERSION}-alpine${ALPINE_VERSION}
6
6
  ENV PYTHONWARNINGS="ignore::UserWarning"
7
7
 
8
8
  COPY . /src
9
- COPY --from=ghcr.io/astral-sh/uv:0.6.11 /uv /usr/local/bin/uv
9
+ COPY --from=ghcr.io/astral-sh/uv:0.6.12 /uv /usr/local/bin/uv
10
10
 
11
11
  COPY files/data /data
12
12
  COPY files/change.sh /change.sh
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: osism
3
- Version: 0.20250331.0
3
+ Version: 0.20250407.0
4
4
  Summary: OSISM manager interface
5
5
  Home-page: https://github.com/osism/python-osism
6
6
  Author: OSISM GmbH
@@ -26,7 +26,7 @@ Requires-Dist: GitPython==3.1.44
26
26
  Requires-Dist: Jinja2==3.1.6
27
27
  Requires-Dist: PyYAML==6.0.2
28
28
  Requires-Dist: ara==1.7.2
29
- Requires-Dist: celery[redis]==5.4.0
29
+ Requires-Dist: celery[redis]==5.5.0
30
30
  Requires-Dist: cliff==4.9.1
31
31
  Requires-Dist: deepdiff==8.4.2
32
32
  Requires-Dist: docker==7.1.0
@@ -60,7 +60,7 @@ Provides-Extra: ansible
60
60
  Requires-Dist: ansible-runner==2.4.1; extra == "ansible"
61
61
  Requires-Dist: ansible-core==2.18.4; extra == "ansible"
62
62
  Provides-Extra: openstack-image-manager
63
- Requires-Dist: openstack-image-manager==0.20250314.0; extra == "openstack-image-manager"
63
+ Requires-Dist: openstack-image-manager==0.20250407.0; extra == "openstack-image-manager"
64
64
  Dynamic: author
65
65
  Dynamic: author-email
66
66
  Dynamic: classifier
@@ -10,7 +10,7 @@ Jinja2 = "==3.1.6"
10
10
  PyYAML = "==6.0.2"
11
11
  ansible-runner = "==2.4.1"
12
12
  ara = "==1.7.2"
13
- celery = {version = "==5.4.0", extras = ["redis"]}
13
+ celery = {version = "==5.5.0", extras = ["redis"]}
14
14
  cliff = "==4.9.1"
15
15
  deepdiff = "==8.4.2"
16
16
  docker = "==7.1.0"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "_meta": {
3
3
  "hash": {
4
- "sha256": "a555c650c015f3d1360c7f3efce49c7258588d7772da512995bef5c8da60a26f"
4
+ "sha256": "35c9c01c094735503a1f921d8635b84c0d0555c5a14233741739c2c78fe91a76"
5
5
  },
6
6
  "pipfile-spec": 6,
7
7
  "requires": {},
@@ -126,11 +126,11 @@
126
126
  "redis"
127
127
  ],
128
128
  "hashes": [
129
- "sha256:369631eb580cf8c51a82721ec538684994f8277637edde2dfc0dacd73ed97f64",
130
- "sha256:504a19140e8d3029d5acad88330c541d4c3f64c789d85f94756762d8bca7e706"
129
+ "sha256:10d49f9926d16237310109b0e6e1e2f7a2133b84e684bb36534d7663e66919bb",
130
+ "sha256:f4170c6e5952281318448a899d9e9a15b9cbd007e002091766900dc8f71b9394"
131
131
  ],
132
132
  "markers": "python_version >= '3.8'",
133
- "version": "==5.4.0"
133
+ "version": "==5.5.0"
134
134
  },
135
135
  "certifi": {
136
136
  "hashes": [
@@ -12,7 +12,7 @@ import requests
12
12
  from osism.data import TEMPLATE_IMAGE_CLUSTERAPI, TEMPLATE_IMAGE_OCTAVIA
13
13
  from osism.tasks import openstack, handle_task
14
14
 
15
- SUPPORTED_CLUSTERAPI_K8S_IMAGES = ["1.29", "1.30", "1.31"]
15
+ SUPPORTED_CLUSTERAPI_K8S_IMAGES = ["1.30", "1.31", "1.32"]
16
16
 
17
17
 
18
18
  class ImageClusterapi(Command):
@@ -51,7 +51,7 @@ class ImageClusterapi(Command):
51
51
  parser.add_argument(
52
52
  "--filter",
53
53
  type=str,
54
- help="Filter the version to be managed (e.g. 1.31)",
54
+ help="Filter the version to be managed (e.g. 1.32)",
55
55
  default=None,
56
56
  )
57
57
  return parser
@@ -3,29 +3,33 @@
3
3
  from cliff.command import Command
4
4
  from loguru import logger
5
5
 
6
- from osism.tasks import conductor, netbox, reconciler, openstack, handle_task
6
+ from osism.tasks import conductor, netbox, reconciler, handle_task
7
7
 
8
8
 
9
9
  class Ironic(Command):
10
10
  def get_parser(self, prog_name):
11
11
  parser = super(Ironic, self).get_parser(prog_name)
12
+ parser.add_argument(
13
+ "--no-wait",
14
+ help="Do not wait until the sync has been completed",
15
+ action="store_true",
16
+ )
17
+ parser.add_argument(
18
+ "--force-update",
19
+ help="Force update of baremetal nodes (Used to update non-comparable items like passwords)",
20
+ action="store_true",
21
+ )
12
22
  return parser
13
23
 
14
24
  def take_action(self, parsed_args):
15
- # Get Ironic parameters from the conductor
16
- task = conductor.get_ironic_parameters.delay()
17
- task.wait(timeout=None, interval=0.5)
18
- ironic_parameters = task.get()
25
+ wait = not parsed_args.no_wait
19
26
 
20
- # Add all unregistered systems from the Netbox in Ironic
21
- netbox.get_devices_not_yet_registered_in_ironic.apply_async(
22
- (), link=openstack.baremetal_create_nodes.s(ironic_parameters)
27
+ task = conductor.sync_netbox_with_ironic.delay(
28
+ force_update=parsed_args.force_update
23
29
  )
24
-
25
- # Synchronize the current status in Ironic with the Netbox
26
- # openstack.baremetal_node_list.apply_async((), link=netbox.synchronize_device_state.s())
27
-
28
- # Remove systems from Ironic that are no longer present in the Netbox
30
+ if wait:
31
+ logger.info(f"Task {task.task_id} is running. Wait. No more output.")
32
+ task.wait(timeout=None, interval=0.5)
29
33
 
30
34
 
31
35
  class Sync(Command):
@@ -33,7 +37,6 @@ class Sync(Command):
33
37
  parser = super(Sync, self).get_parser(prog_name)
34
38
  parser.add_argument(
35
39
  "--no-wait",
36
- default=False,
37
40
  help="Do not wait until the sync has been completed",
38
41
  action="store_true",
39
42
  )
@@ -188,7 +188,7 @@ MAP_ROLE2ROLE = {
188
188
  [
189
189
  "common",
190
190
  [
191
- ["loadbalancer", ["opensearch", "mariadb-ng"]],
191
+ ["loadbalancer", ["letsencrypt", "opensearch", "mariadb-ng"]],
192
192
  ["openvswitch", ["ovn"]],
193
193
  "memcached",
194
194
  "redis",
@@ -199,6 +199,19 @@ MAP_ROLE2ROLE = {
199
199
  "collection-kubernetes": [
200
200
  ["kubernetes", ["kubeconfig", ["copy-kubeconfig"]]],
201
201
  ],
202
+ "collection-openstack-core": [
203
+ "horizon",
204
+ [
205
+ "keystone",
206
+ [
207
+ "glance",
208
+ "cinder",
209
+ ["neutron", ["octavia"]],
210
+ "designate",
211
+ ["placement", ["nova"]],
212
+ ],
213
+ ],
214
+ ],
202
215
  "collection-openstack": [
203
216
  "horizon",
204
217
  [
@@ -11,8 +11,7 @@ from loguru import logger
11
11
  import json
12
12
  import requests
13
13
 
14
- from osism import utils
15
- from osism.tasks import netbox, openstack
14
+ from osism.tasks import netbox
16
15
  from osism import settings
17
16
 
18
17
  EXCHANGE_NAME = "ironic"
@@ -40,16 +39,13 @@ class BaremetalEvents:
40
39
  },
41
40
  "maintenance_set": {"end": self.node_maintenance_set_end},
42
41
  "provision_set": {
42
+ "start": self.node_provision_set_start,
43
43
  "end": self.node_provision_set_end,
44
44
  "success": self.node_provision_set_success,
45
45
  },
46
46
  "delete": {"end": self.node_delete_end},
47
47
  "create": {"end": self.node_create_end},
48
48
  },
49
- "port": {
50
- "create": {"end": self.port_create_end},
51
- "update": {"end": self.port_update_end},
52
- },
53
49
  }
54
50
  }
55
51
 
@@ -78,7 +74,7 @@ class BaremetalEvents:
78
74
  logger.info(
79
75
  f"baremetal.node.power_set.end ## {name} ## {object_data['power_state']}"
80
76
  )
81
- netbox.set_state.delay(name, object_data["power_state"], "power")
77
+ netbox.set_power_state.delay(name, object_data["power_state"])
82
78
 
83
79
  def node_power_state_corrected_success(self, payload: dict[Any, Any]) -> None:
84
80
  object_data = self.get_object_data(payload)
@@ -86,7 +82,7 @@ class BaremetalEvents:
86
82
  logger.info(
87
83
  f"baremetal.node.power_state_corrected.success ## {name} ## {object_data['power_state']}"
88
84
  )
89
- netbox.set_state.delay(name, object_data["power_state"], "power")
85
+ netbox.set_power_state.delay(name, object_data["power_state"])
90
86
 
91
87
  def node_maintenance_set_end(self, payload: dict[Any, Any]) -> None:
92
88
  object_data = self.get_object_data(payload)
@@ -94,7 +90,7 @@ class BaremetalEvents:
94
90
  logger.info(
95
91
  f"baremetal.node.maintenance_set.end ## {name} ## {object_data['maintenance']}"
96
92
  )
97
- netbox.set_maintenance.delay(name, object_data["maintenance"])
93
+ netbox.set_maintenance.delay(name, state=object_data["maintenance"])
98
94
 
99
95
  def node_provision_set_success(self, payload: dict[Any, Any]) -> None:
100
96
  # A provision status was successfully set, update it in the netbox
@@ -103,80 +99,37 @@ class BaremetalEvents:
103
99
  logger.info(
104
100
  f"baremetal.node.provision_set.success ## {name} ## {object_data['provision_state']}"
105
101
  )
106
- netbox.set_state.delay(name, object_data["provision_state"], "provision")
102
+ netbox.set_provision_state.delay(name, object_data["provision_state"])
107
103
 
108
- def node_provision_set_end(self, payload: dict[Any, Any]) -> None:
104
+ def node_provision_set_start(self, payload: dict[Any, Any]) -> None:
109
105
  object_data = self.get_object_data(payload)
110
106
  name = object_data["name"]
111
107
  logger.info(
112
- f"baremetal.node.provision_set.end ## {name} ## {object_data['provision_state']}"
113
- )
114
- netbox.set_state.delay(name, object_data["provision_state"], "provision")
115
-
116
- if (
117
- object_data["previous_provision_state"] == "inspect wait"
118
- and object_data["event"] == "done"
119
- ):
120
- netbox.set_state.delay(name, "introspected", "introspection")
121
- openstack.baremetal_set_node_provision_state.delay(name, "provide")
122
-
123
- def port_create_end(self, payload: dict[Any, Any]) -> None:
124
- object_data = self.get_object_data(payload)
125
- name = object_data["name"]
126
- logger.info(f"baremetal.port.create.end ## {object_data['uuid']}")
127
-
128
- mac_address = object_data["address"]
129
- interface_a = utils.nb.dcim.interfaces.get(mac_address=mac_address)
130
- device_a = interface_a.device
131
-
132
- task = openstack.baremetal_get_network_interface_name.delay(
133
- device_a.name, mac_address
134
- )
135
- task.wait(timeout=None, interval=0.5)
136
- network_interface_name = task.get()
137
-
138
- netbox.update_network_interface_name.delay(
139
- object_data["address"], network_interface_name
108
+ f"baremetal.node.provision_set.start ## {name} ## {object_data['provision_state']}"
140
109
  )
110
+ netbox.set_provision_state.delay(name, object_data["provision_state"])
141
111
 
142
- def port_update_end(self, payload: dict[Any, Any]) -> None:
112
+ def node_provision_set_end(self, payload: dict[Any, Any]) -> None:
143
113
  object_data = self.get_object_data(payload)
144
114
  name = object_data["name"]
145
- logger.info(f"baremetal.port.update.end ## {object_data['uuid']}")
146
-
147
- mac_address = object_data["address"]
148
- interface_a = utils.nb.dcim.interfaces.get(mac_address=mac_address)
149
- device_a = interface_a.device
150
-
151
- task = openstack.baremetal_get_network_interface_name.delay(
152
- device_a.name, mac_address
153
- )
154
- task.wait(timeout=None, interval=0.5)
155
- network_interface_name = task.get()
156
-
157
- netbox.update_network_interface_name.delay(
158
- object_data["address"], network_interface_name
115
+ logger.info(
116
+ f"baremetal.node.provision_set.end ## {name} ## {object_data['provision_state']}"
159
117
  )
118
+ netbox.set_provision_state.delay(name, object_data["provision_state"])
160
119
 
161
120
  def node_delete_end(self, payload: dict[Any, Any]) -> None:
162
121
  object_data = self.get_object_data(payload)
163
122
  name = object_data["name"]
164
123
  logger.info(f"baremetal.node.delete.end ## {name}")
165
-
166
- netbox.set_state.delay(name, "unregistered", "ironic")
167
- netbox.set_state.delay(name, None, "provision")
168
- netbox.set_state.delay(name, None, "power")
169
- netbox.set_state.delay(name, None, "introspection")
170
- netbox.set_state.delay(name, None, "deployment")
171
-
172
- # remove internal flavor
173
- openstack.baremetal_delete_internal_flavor.delay(name)
124
+ netbox.set_provision_state.delay(name, None)
125
+ netbox.set_power_state.delay(name, None)
174
126
 
175
127
  def node_create_end(self, payload: dict[Any, Any]) -> None:
176
128
  object_data = self.get_object_data(payload)
177
129
  name = object_data["name"]
178
130
  logger.info(f"baremetal.node.create.end ## {name}")
179
- netbox.set_state.delay(name, "registered", "ironic")
131
+ netbox.set_provision_state.delay(name, object_data["provision_state"])
132
+ netbox.set_power_state.delay(name, object_data["power_state"])
180
133
 
181
134
 
182
135
  class NotificationsDump(ConsumerMixin):
@@ -207,7 +160,17 @@ class NotificationsDump(ConsumerMixin):
207
160
 
208
161
  def on_message(self, body, message):
209
162
  data = json.loads(body["oslo.message"])
210
- # logger.info(data)
163
+ logger.debug(
164
+ data["event_type"]
165
+ + ": "
166
+ + str(
167
+ {
168
+ k: v
169
+ for k, v in data["payload"]["ironic_object.data"].items()
170
+ if k in ["provision_state", "power_state"]
171
+ }
172
+ )
173
+ )
211
174
 
212
175
  if self.osism_api_session:
213
176
  tries = 1
@@ -268,8 +231,6 @@ class NotificationsDump(ConsumerMixin):
268
231
  handler = self.baremetal_events.get_handler(data["event_type"])
269
232
  handler(data["payload"])
270
233
 
271
- logger.info(self.baremetal_events.get_object_data(data["payload"]))
272
-
273
234
 
274
235
  def main():
275
236
  while True: