mirror of
https://opendev.org/x/pyghmi
synced 2025-08-01 17:07:37 +00:00
Add NTP support to TSMA
The TSMA code for SR635/SR655 now supports manipulating NTP configuration. Change-Id: I75885b6a1ea8ed7e751143fc7827b59d53101c12
This commit is contained in:
@@ -292,6 +292,8 @@ class OEMHandler(generic.OEMHandler):
|
||||
return ntpres['data'][0] == '\x01'
|
||||
elif self.is_fpc:
|
||||
return self.smmhandler.get_ntp_enabled(self._fpc_variant)
|
||||
elif self.has_tsma:
|
||||
return self.tsmahandler.get_ntp_enabled()
|
||||
return None
|
||||
|
||||
def get_ntp_servers(self):
|
||||
@@ -303,6 +305,8 @@ class OEMHandler(generic.OEMHandler):
|
||||
return srvs
|
||||
if self.is_fpc:
|
||||
return self.smmhandler.get_ntp_servers()
|
||||
if self.has_tsma:
|
||||
return self.tsmahandler.get_ntp_servers()
|
||||
return None
|
||||
|
||||
def set_ntp_enabled(self, enabled):
|
||||
@@ -317,6 +321,8 @@ class OEMHandler(generic.OEMHandler):
|
||||
if self.is_fpc:
|
||||
self.smmhandler.set_ntp_enabled(enabled)
|
||||
return True
|
||||
if self.has_tsma:
|
||||
self.tsmahandler.set_ntp_enabled(enabled)
|
||||
return None
|
||||
|
||||
def set_ntp_server(self, server, index=0):
|
||||
@@ -333,6 +339,10 @@ class OEMHandler(generic.OEMHandler):
|
||||
'SMM supports indexes 0 through 2')
|
||||
self.smmhandler.set_ntp_server(server, index)
|
||||
return True
|
||||
elif self.has_tsma:
|
||||
if not (0 <= index <= 1):
|
||||
raise pygexc.InvalidParameterValue("Index must be 0 or 1")
|
||||
return self.tsmahandler.set_ntp_server(server, index)
|
||||
return None
|
||||
|
||||
def set_user_access(self, uid, channel, callback, link_auth, ipmi_msg,
|
||||
|
@@ -143,6 +143,57 @@ class TsmHandler(generic.OEMHandler):
|
||||
self.tsm, self.username, self.password,
|
||||
verifycallback=self._certverify)
|
||||
|
||||
def get_ntp_enabled(self):
|
||||
wc = self.wc
|
||||
rsp, status = wc.grab_json_response_with_status(
|
||||
'/api/settings/date-time')
|
||||
if status != 200:
|
||||
raise Exception(repr(rsp))
|
||||
return rsp.get('ntp_auto_date', 0) > 0
|
||||
|
||||
def set_ntp_enabled(self, enabled):
|
||||
wc = self.wc
|
||||
rsp, status = wc.grab_json_response_with_status(
|
||||
'/api/settings/date-time')
|
||||
if status != 200:
|
||||
raise Exception(repr(rsp))
|
||||
rsp['ntp_auto_date'] = 1 if enabled else 0
|
||||
rsp, status = wc.grab_json_response_with_status(
|
||||
'/api/settings/date-time', rsp, method='PUT')
|
||||
if status != 200:
|
||||
raise Exception(repr(rsp))
|
||||
|
||||
def get_ntp_servers(self):
|
||||
wc = self.wc
|
||||
rsp, status = wc.grab_json_response_with_status(
|
||||
'/api/settings/date-time')
|
||||
if status != 200:
|
||||
raise Exception(repr(rsp))
|
||||
srvs = []
|
||||
pntp = rsp.get('primary_ntp', None)
|
||||
if pntp:
|
||||
srvs.append(pntp)
|
||||
pntp = rsp.get('secondary_ntp', None)
|
||||
if pntp:
|
||||
srvs.append(pntp)
|
||||
return srvs
|
||||
|
||||
def set_ntp_server(self, server, index=0):
|
||||
wc = self.wc
|
||||
rsp, status = wc.grab_json_response_with_status(
|
||||
'/api/settings/date-time')
|
||||
if status != 200:
|
||||
raise Exception(repr(rsp))
|
||||
if index == 0:
|
||||
rsp['primary_ntp'] = server
|
||||
elif index == 1:
|
||||
rsp['secondary_ntp'] = server
|
||||
rsp['ntp_auto_date'] = 1
|
||||
rsp, status = wc.grab_json_response_with_status(
|
||||
'/api/settings/date-time', rsp, method='PUT')
|
||||
if status != 200:
|
||||
raise Exception(repr(rsp))
|
||||
|
||||
def get_firmware_inventory(self, components, raisebypass=True):
|
||||
wc = self.wc
|
||||
fwinf, status = wc.grab_json_response_with_status(
|
||||
|
Reference in New Issue
Block a user