mirror of
https://opendev.org/x/pyghmi
synced 2025-03-09 21:56:48 +00:00
Set referer in IMM web
IMM web has now started rejecting http without referer. Provide a reasonable referer for that situation. Change-Id: Id6d537252646122005a78a92c8a0122f28d379ae
This commit is contained in:
parent
1a60269df7
commit
d5fddf022b
@ -55,6 +55,8 @@ class IMMClient(object):
|
||||
def __init__(self, ipmicmd):
|
||||
self.ipmicmd = weakref.proxy(ipmicmd)
|
||||
self.imm = ipmicmd.bmc
|
||||
self.adp_referer = 'https://{0}/designs/imm/index-console.php'.format(
|
||||
self.imm)
|
||||
self.username = ipmicmd.ipmi_session.userid
|
||||
self.password = ipmicmd.ipmi_session.password
|
||||
self._wc = None # The webclient shall be initiated on demand
|
||||
@ -203,7 +205,8 @@ class IMMClient(object):
|
||||
adapterdata = self.get_cached_data('lenovo_cached_adapters')
|
||||
if not adapterdata:
|
||||
if self.wc:
|
||||
adapterdata = self.wc.grab_json_response(self.ADP_URL)
|
||||
adapterdata = self.wc.grab_json_response(
|
||||
self.ADP_URL, referer=self.adp_referer)
|
||||
if adapterdata:
|
||||
self.datacache['lenovo_cached_adapters'] = (
|
||||
adapterdata, util._monotonic_time())
|
||||
@ -293,7 +296,8 @@ class IMMClient(object):
|
||||
adapterdata = self.get_cached_data('lenovo_cached_adapters')
|
||||
if not adapterdata:
|
||||
if self.wc:
|
||||
adapterdata = self.wc.grab_json_response(self.ADP_URL)
|
||||
adapterdata = self.wc.grab_json_response(
|
||||
self.ADP_URL, referer=self.adp_referer)
|
||||
if adapterdata:
|
||||
self.datacache['lenovo_cached_adapters'] = (
|
||||
adapterdata, util._monotonic_time())
|
||||
|
@ -112,11 +112,11 @@ class SecureHTTPConnection(httplib.HTTPConnection, object):
|
||||
self.cookies[k] = c[k].value
|
||||
return rsp
|
||||
|
||||
def grab_json_response(self, url, data=None):
|
||||
def grab_json_response(self, url, data=None, referer=None):
|
||||
if data:
|
||||
self.request('POST', url, data)
|
||||
self.request('POST', url, data, referer=referer)
|
||||
else:
|
||||
self.request('GET', url)
|
||||
self.request('GET', url, referer=referer)
|
||||
rsp = self.getresponse()
|
||||
if rsp.status == 200:
|
||||
return json.loads(rsp.read())
|
||||
@ -152,7 +152,7 @@ class SecureHTTPConnection(httplib.HTTPConnection, object):
|
||||
rsp.read())
|
||||
return rsp.read()
|
||||
|
||||
def request(self, method, url, body=None, headers=None):
|
||||
def request(self, method, url, body=None, headers=None, referer=None):
|
||||
if headers is None:
|
||||
headers = self.stdheaders.copy()
|
||||
if method == 'GET' and 'Content-Type' in headers:
|
||||
@ -162,5 +162,7 @@ class SecureHTTPConnection(httplib.HTTPConnection, object):
|
||||
for ckey in self.cookies:
|
||||
cookies.append('{0}={1}'.format(ckey, self.cookies[ckey]))
|
||||
headers['Cookie'] = '; '.join(cookies)
|
||||
if referer:
|
||||
headers['Referer'] = referer
|
||||
return super(SecureHTTPConnection, self).request(method, url, body,
|
||||
headers)
|
||||
|
Loading…
x
Reference in New Issue
Block a user