mirror of
https://github.com/xcat2/confluent.git
synced 2025-02-16 18:49:04 +00:00
Revert the strategy to manually track sessions for pyghmi
Since pyghmi now handles this automatically and in fact removes the facility used to manually track this and it is much more robust than this strategy.
This commit is contained in:
parent
49b3aed3e3
commit
17603a59fd
@ -1,6 +1,8 @@
|
||||
import collections
|
||||
import eventlet
|
||||
import eventlet.event
|
||||
import eventlet.greenpool as greenpool
|
||||
import eventlet.queue
|
||||
import os
|
||||
import pyghmi.ipmi.console as console
|
||||
import pyghmi.ipmi.command as ipmicommand
|
||||
@ -13,7 +15,6 @@ chainpulled = False
|
||||
tmptimeout = None
|
||||
ipmiq = collections.deque([])
|
||||
ipmiwaiters = collections.deque([])
|
||||
ipmisessions = {}
|
||||
|
||||
|
||||
def wait_on_ipmi():
|
||||
@ -108,12 +109,7 @@ class Console(object):
|
||||
def connect(self,callback):
|
||||
global _ipmithread
|
||||
global pullchain
|
||||
global ipmisessions
|
||||
global chainpulled
|
||||
try:
|
||||
ipmisession = ipmisessions[(self.bmc, self.port)]
|
||||
except KeyError:
|
||||
ipmisession = None
|
||||
if _ipmithread is None:
|
||||
pullchain = os.pipe()
|
||||
_ipmithread = eventlet.spawn(_ipmi_evtloop)
|
||||
@ -124,16 +120,12 @@ class Console(object):
|
||||
'password': self.password,
|
||||
'kg': self.kg,
|
||||
'force': True,
|
||||
'ipmisession': ipmisession,
|
||||
'iohandler': callback}, self.got_consobject))
|
||||
if not chainpulled:
|
||||
chainpulled = True
|
||||
os.write(pullchain[1],'1')
|
||||
while self.solconnection is None:
|
||||
wait_on_ipmi()
|
||||
if ipmisession is None:
|
||||
ipmisessions[(self.bmc, self.port)] = \
|
||||
self.solconnection.ipmi_session
|
||||
|
||||
def got_consobject(self, solconnection):
|
||||
self.solconnection = solconnection
|
||||
@ -183,16 +175,19 @@ class IpmiIterator(object):
|
||||
'hardwaremanagement.manager'])
|
||||
cfg.decrypt = crypt
|
||||
for node in nodes:
|
||||
IpmiHandler(operator, node, element, configdata).handle_request()
|
||||
print IpmiHandler(operator, node, element, configdata).handle_request()
|
||||
#eventlet.spawn(perform_request,
|
||||
# (operator, node, element, configdata, self.resultqueue))
|
||||
|
||||
def __iter__(self):
|
||||
return self
|
||||
|
||||
def next(self):
|
||||
pass
|
||||
|
||||
|
||||
|
||||
def perform_request(operator, node, element, configdata, queue):
|
||||
IpmiHandler(operator, node, element, configdata).handle_request()
|
||||
|
||||
|
||||
class IpmiHandler(object):
|
||||
@ -202,7 +197,6 @@ class IpmiHandler(object):
|
||||
def __init__(self, operation, node, element, cfd):
|
||||
global chainpulled
|
||||
global _ipmithread
|
||||
global ipmisessions
|
||||
global pullchain
|
||||
if _ipmithread is None:
|
||||
pullchain = os.pipe()
|
||||
@ -215,25 +209,18 @@ class IpmiHandler(object):
|
||||
self.op = operation
|
||||
connparams = get_conn_params(node, self.cfg)
|
||||
self.ipmicmd = None
|
||||
try:
|
||||
ipmisession = ipmisessions[(connparams['bmc'], connparams['port'])]
|
||||
except KeyError:
|
||||
ipmisession = None
|
||||
ipmiq.append((ipmicommand.Command,{'bmc': connparams['bmc'],
|
||||
'userid': connparams['username'],
|
||||
'password': connparams['passphrase'],
|
||||
'kg': connparams['kg'],
|
||||
'port': connparams['port'],
|
||||
'onlogon': self.logged,
|
||||
'ipmisession': ipmisession},
|
||||
'onlogon': self.logged},
|
||||
self.got_ipmicmd))
|
||||
if not chainpulled:
|
||||
chainpulled = True
|
||||
os.write(pullchain[1],'1')
|
||||
while self.ipmicmd == None:
|
||||
wait_on_ipmi()
|
||||
if ipmisession is None:
|
||||
ipmisessions[(connparams['bmc'], connparams['port'])] = self.ipmicmd.ipmi_session
|
||||
|
||||
def got_ipmicmd(self, ipmicmd):
|
||||
self.ipmicmd = ipmicmd
|
||||
@ -262,8 +249,7 @@ class IpmiHandler(object):
|
||||
wait_on_ipmi()
|
||||
if self.element == 'power/state':
|
||||
if 'read' == self.op:
|
||||
rsp = self.call_ipmicmd(self.ipmicmd.get_power)
|
||||
print(rsp)
|
||||
return self.call_ipmicmd(self.ipmicmd.get_power)
|
||||
|
||||
def create(nodes, element, configmanager):
|
||||
if element == '_console/session':
|
||||
|
Loading…
x
Reference in New Issue
Block a user