Skip to content

Commit 5682630

Browse files
committed
add code to create_volume_connector
1 parent 1823657 commit 5682630

File tree

1 file changed

+20
-2
lines changed
  • python/understack-workflows/understack_workflows/oslo_event

1 file changed

+20
-2
lines changed

python/understack-workflows/understack_workflows/oslo_event/ironic_node.py

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ def from_event_dict(cls, data: dict) -> Self:
2727

2828
payload_data = payload.get("ironic_object.data")
2929
if payload_data is None:
30-
raise Exception("Invalid event. No 'ironic_object.data' in payload")
30+
raise ValueError("Invalid event. No 'ironic_object.data' in payload")
3131

3232
return cls(
3333
owner=payload_data["owner"],
@@ -41,12 +41,13 @@ def from_event_dict(cls, data: dict) -> Self:
4141
def handle_provision_end(conn: Connection, _: Nautobot, event_data: dict) -> int:
4242
"""Operates on an Ironic Node provisioning END event."""
4343
# Check if the project is configured with tags.
44-
4544
event = IronicProvisionSetEvent.from_event_dict(event_data)
45+
logger.info("Checking if project %s is tagged with UNDERSTACK_SVM", event.lessee)
4646
if not is_project_svm_enabled(conn, event.lessee):
4747
return 0
4848

4949
# Check if the server instance has an appropriate property.
50+
logger.info("Looking up Nova instance %s", event.instance_uuid)
5051
server = conn.get_server_by_id(event.instance_uuid)
5152

5253
if not server:
@@ -62,4 +63,21 @@ def handle_provision_end(conn: Connection, _: Nautobot, event_data: dict) -> int
6263

6364
save_output("node_uuid", str(event.node_uuid))
6465
save_output("instance_uuid", str(event.instance_uuid))
66+
67+
create_volume_connector(conn, event)
6568
return 0
69+
70+
71+
def create_volume_connector(conn: Connection, event: IronicProvisionSetEvent):
72+
logger.info("Creating baremetal volume connector.")
73+
connector = conn.baremetal.create_volume_connector( # pyright: ignore
74+
node_uuid=event.node_uuid,
75+
type="iqn",
76+
connector_id=instance_nqn(event.instance_uuid),
77+
)
78+
logger.debug("Created connector: %s", connector)
79+
return connector
80+
81+
82+
def instance_nqn(instance_id: UUID):
83+
return f"nqn.2014-08.org.nvmexpress:uuid:{instance_id}"

0 commit comments

Comments
 (0)