Skip to content

Commit 6139ca4

Browse files
authored
Do not create flavors during netbox/ironic sync (#1312)
Nova is not used for baremetal provisioning. Therefore flavor creation for baremetal nodes is not required. Signed-off-by: Jan Horstmann <[email protected]>
1 parent 754bbe7 commit 6139ca4

File tree

2 files changed

+0
-101
lines changed

2 files changed

+0
-101
lines changed

osism/tasks/conductor.py

Lines changed: 0 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -198,11 +198,6 @@ def deep_compare(a, b, updates):
198198
logger.info(
199199
f"Cleaning up baremetal node not found in netbox: {node['Name']}"
200200
)
201-
flavor_name = "osism-" + node["Name"]
202-
flavor = openstack.compute_flavor_get(flavor_name)
203-
if flavor:
204-
logger.info(f"Deleting flavor {flavor_name}")
205-
openstack.compute_flavor_delete(flavor)
206201
for port in openstack.baremetal_port_list(
207202
details=False, attributes=dict(node_uuid=node["UUID"])
208203
):
@@ -271,19 +266,6 @@ def deep_compare(a, b, updates):
271266
for interface in node_interfaces
272267
if interface.enabled and not interface.mgmt_only and interface.mac_address
273268
]
274-
flavor_attributes = {
275-
"ram": 1,
276-
"disk": 0,
277-
"vcpus": 1,
278-
"is_public": False,
279-
"extra_specs": {
280-
"resources:CUSTOM_"
281-
+ device.name.upper().replace("-", "_").replace(".", "_"): "1",
282-
"resources:VCPU": "0",
283-
"resources:MEMORY_MB": "0",
284-
"resources:DISK_GB": "0",
285-
},
286-
}
287269

288270
lock = Redlock(
289271
key=f"lock_osism_tasks_conductor_sync_netbox_with_ironic-{device.name}",
@@ -413,48 +395,6 @@ def deep_compare(a, b, updates):
413395
logger.info(
414396
f"Validation of management interface failed for baremetal node for {device.name}\nReason: {node_validation['management'].reason}"
415397
)
416-
417-
flavor_name = "osism-" + device.name
418-
flavor = openstack.compute_flavor_get(flavor_name)
419-
if not flavor:
420-
logger.info(f"Creating flavor for {flavor_name}")
421-
flavor = openstack.compute_flavor_create(
422-
flavor_name, flavor_attributes
423-
)
424-
else:
425-
flavor_updates = {}
426-
deep_compare(flavor_attributes, flavor, flavor_updates)
427-
flavor_updates_extra_specs = flavor_updates.pop("extra_specs", None)
428-
if flavor_updates:
429-
logger.info(
430-
f"Updating flavor for {device.name} with {flavor_updates}"
431-
)
432-
openstack.compute_flavor_delete(flavor)
433-
flavor = openstack.compute_flavor_create(
434-
flavor_name, flavor_attributes
435-
)
436-
elif flavor_updates_extra_specs:
437-
logger.info(
438-
f"Updating flavor extra_specs for {device.name} with {flavor_updates_extra_specs}"
439-
)
440-
openstack.compute_flavor_update_extra_specs(
441-
flavor, flavor_updates_extra_specs
442-
)
443-
flavor = openstack.compute_flavor_get(flavor_name)
444-
for extra_specs_key in flavor["extra_specs"].keys():
445-
if (
446-
extra_specs_key
447-
not in flavor_attributes["extra_specs"].keys()
448-
):
449-
logger.info(
450-
f"Deleting flavor extra_specs property {extra_specs_key} for {device.name}"
451-
)
452-
flavor = (
453-
openstack.compute_flavor_delete_extra_specs_property(
454-
flavor, extra_specs_key
455-
)
456-
)
457-
458398
except Exception as exc:
459399
logger.info(
460400
f"Could not fully synchronize device {device.name} with ironic: {exc}"

osism/tasks/openstack.py

Lines changed: 0 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -136,47 +136,6 @@ def baremetal_port_delete(self, port_or_id):
136136
return result
137137

138138

139-
@app.task(bind=True, name="osism.tasks.openstack.compute_flavor_get")
140-
def compute_flavor_get(self, name_or_id):
141-
conn = utils.get_openstack_connection()
142-
result = conn.compute.find_flavor(
143-
name_or_id, ignore_missing=True, get_extra_specs=True
144-
)
145-
return result
146-
147-
148-
@app.task(bind=True, name="osism.tasks.openstack.compute_flavor_create")
149-
def compute_flavor_create(self, name, attributes=None):
150-
if attributes is None:
151-
attributes = {}
152-
attributes.update({"name": name})
153-
extra_specs = attributes.pop("extra_specs", None)
154-
conn = utils.get_openstack_connection()
155-
flavor = conn.compute.create_flavor(**attributes)
156-
if extra_specs:
157-
flavor = conn.compute.create_flavor_extra_specs(flavor, extra_specs)
158-
return flavor
159-
160-
161-
@app.task(bind=True, name="osism.tasks.openstack.compute_flavor_delete")
162-
def compute_flavor_delete(self, flavor):
163-
conn = utils.get_openstack_connection()
164-
conn.compute.delete_flavor(flavor, ignore_missing=True)
165-
166-
167-
@app.task(bind=True, name="osism.tasks.openstack.compute_flavor_update_extra_specs")
168-
def compute_flavor_update_extra_specs(self, flavor, extra_specs={}):
169-
conn = utils.get_openstack_connection()
170-
for key, value in extra_specs.items():
171-
conn.compute.update_flavor_extra_specs_property(flavor, key, value)
172-
173-
174-
@app.task(bind=True, name="osism.tasks.openstack.compute_flavor_delete_extra_specs")
175-
def compute_flavor_delete_extra_specs_property(self, flavor, prop):
176-
conn = utils.get_openstack_connection()
177-
conn.compute.delete_flavor_extra_specs_property(flavor, prop)
178-
179-
180139
@app.task(bind=True, name="osism.tasks.openstack.image_manager")
181140
def image_manager(
182141
self,

0 commit comments

Comments
 (0)