mirror of
https://github.com/xcat2/confluent.git
synced 2024-11-23 01:53:28 +00:00
Reduce bad default login tries
For an SD530 XCC, we would incur 4 attempts at default: -To pre-config enable SMM, we try once -Due to pyghmi auto-degrade, try again as oper -Then during the actual config phase, try again -Again, try again as oper Now with pyghmi opt-out, we will force to try only as admin, eliminating the second try. The SD530 code will now mark that the default creds failed so that the config phase will know to skip that.
This commit is contained in:
parent
cc5a5c9972
commit
ad828e609d
@ -32,10 +32,21 @@ DEFAULT_PASS = 'PASSW0RD'
|
||||
|
||||
class NodeHandler(generic.NodeHandler):
|
||||
|
||||
def _get_ipmicmd(self, user=DEFAULT_USER, password=DEFAULT_PASS):
|
||||
return ipmicommand.Command(self.ipaddr, user, password)
|
||||
def _get_ipmicmd(self, user=None, password=None):
|
||||
priv = None
|
||||
if user is None or password is None:
|
||||
if self.trieddefault:
|
||||
raise pygexc.IpmiException()
|
||||
priv = 4 # manually indicate priv to avoid double-attempt
|
||||
if user is None:
|
||||
user = DEFAULT_USER
|
||||
if password is None:
|
||||
password = DEFAULT_PASS
|
||||
return ipmicommand.Command(self.ipaddr, user, password,
|
||||
privlevel=priv, keepalive=False)
|
||||
|
||||
def __init__(self, info, configmanager):
|
||||
self.trieddefault = None
|
||||
super(NodeHandler, self).__init__(info, configmanager)
|
||||
|
||||
def probe(self):
|
||||
|
@ -33,6 +33,7 @@ class NodeHandler(immhandler.NodeHandler):
|
||||
ff = self.info.get('attributes', {}).get('enclosure-form-factor', '')
|
||||
if ff not in ('dense-computing', [u'dense-computing']):
|
||||
return
|
||||
self.trieddefault = None # Reset state on a preconfig attempt
|
||||
# attempt to enable SMM
|
||||
#it's normal to get a 'not supported' (193) for systems without an SMM
|
||||
ipmicmd = None
|
||||
@ -44,6 +45,7 @@ class NodeHandler(immhandler.NodeHandler):
|
||||
'Incorrect password' not in str(e)):
|
||||
# raise an issue if anything other than to be expected
|
||||
raise
|
||||
self.trieddefault = True
|
||||
#TODO: decide how to clean out if important
|
||||
#as it stands, this can step on itself
|
||||
#if ipmicmd:
|
||||
|
@ -171,6 +171,7 @@ class IpmiCommandWrapper(ipmicommand.Command):
|
||||
self.node = node
|
||||
self._inhealth = False
|
||||
self._lasthealth = None
|
||||
kwargs['keepalive'] = False
|
||||
self._attribwatcher = cfm.watch_attributes(
|
||||
(node,), ('secret.hardwaremanagementuser', 'collective.manager',
|
||||
'secret.hardwaremanagementpassword', 'secret.ipmikg',
|
||||
|
Loading…
Reference in New Issue
Block a user