mirror of
https://github.com/xcat2/confluent.git
synced 2025-01-15 12:17:47 +00:00
Implement redfish resilient discovery for TSM
TSM redfish stack has an issue where it refuses to recognize any non-redfish password change. Use redfish to change. Regretably, it takes about 10 seconds for that change to propogate to the practical API, so we have a discovery delay now.
This commit is contained in:
parent
9828ea5898
commit
99f533b4cb
@ -16,6 +16,7 @@ import confluent.discovery.handlers.generic as generic
|
||||
import confluent.exceptions as exc
|
||||
import confluent.netutil as netutil
|
||||
import confluent.util as util
|
||||
import eventlet
|
||||
import eventlet.support.greendns
|
||||
import json
|
||||
try:
|
||||
@ -85,7 +86,22 @@ class NodeHandler(generic.NodeHandler):
|
||||
'username': self.DEFAULT_USER
|
||||
}
|
||||
if authmode == 2:
|
||||
rsp, status = wc.grab_json_response_with_status('/api/reset-pass', passchange)
|
||||
passchange = {
|
||||
'Password': self.targpass,
|
||||
}
|
||||
rwc = webclient.SecureHTTPConnection(
|
||||
self.ipaddr, 443,
|
||||
verifycallback=self.validate_cert)
|
||||
rwc.set_basic_credentials(authdata['username'],
|
||||
authdata['password'])
|
||||
rwc.set_header('If-Match', '*')
|
||||
rwc.set_header('Content-Type', 'application/json')
|
||||
rsp, status = rwc.grab_json_response_with_status(
|
||||
'/redfish/v1/AccountService/Accounts/1',
|
||||
passchange, method='PATCH')
|
||||
if status >= 200 and status < 300:
|
||||
authdata['password'] = self.targpass
|
||||
eventlet.sleep(10)
|
||||
else:
|
||||
rsp, status = wc.grab_json_response_with_status('/api/reset-pass', urlencode(passchange))
|
||||
authdata['password'] = self.targpass
|
||||
|
Loading…
x
Reference in New Issue
Block a user