2
0
mirror of https://github.com/xcat2/confluent.git synced 2026-01-12 02:52:30 +00:00

Provide API to query update readyness

This commit is contained in:
Jarrod Johnson
2025-03-19 15:31:51 -04:00
parent ef68259745
commit 29915acaeb
3 changed files with 24 additions and 0 deletions

View File

@@ -490,6 +490,10 @@ def _init_core():
'pluginattrs': ['hardwaremanagement.method'],
'default': 'ipmi',
}),
'updatestatus': PluginCollection({
'pluginattrs': ['hardwaremanagement.method'],
'default': 'ipmi',
}),
'updates': {
'active': PluginCollection({
'pluginattrs': ['hardwaremanagement.method'],

View File

@@ -572,6 +572,8 @@ class IpmiHandler(object):
self.handle_configuration()
elif self.element[:3] == ['inventory', 'firmware', 'updates']:
self.handle_update()
elif self.element[:3] == ['inventory', 'firmware', 'updatestatus']:
self.handle_update_status()
elif self.element[0] == 'inventory':
self.handle_inventory()
elif self.element == ['media', 'attach']:
@@ -978,6 +980,14 @@ class IpmiHandler(object):
if errorneeded:
self.output.put(errorneeded)
def handle_update_status(self):
activeupdates = firmwaremanager.list_updates([self.node], None, [])
if activeupdates:
self.output.put(msg.KeyValueData({'status': 'active'}, self.node))
else:
status = self.ipmicmd.get_update_status()
self.output.put(msg.KeyValueData({'status': status}, self.node))
def handle_inventory(self):
if self.element[1] == 'firmware':
if len(self.element) == 3:

View File

@@ -431,6 +431,8 @@ class IpmiHandler(object):
self.handle_configuration()
elif self.element[:3] == ['inventory', 'firmware', 'updates']:
self.handle_update()
elif self.element[:3] == ['inventory', 'firmware', 'updatestatus']:
self.handle_update_status()
elif self.element[0] == 'inventory':
self.handle_inventory()
elif self.element == ['media', 'attach']:
@@ -835,6 +837,14 @@ class IpmiHandler(object):
if errorneeded:
self.output.put(errorneeded)
def handle_update_status(self):
activeupdates = firmwaremanager.list_updates([self.node], None, [])
if activeupdates:
self.output.put(msg.KeyValueData({'status': 'active'}, self.node))
else:
status = self.ipmicmd.get_update_status()
self.output.put(msg.KeyValueData({'status': status}, self.node))
def handle_inventory(self):
if self.element[1] == 'firmware':
if len(self.element) == 3: