def __init__(self, parent=None, loading_from_scp=False): if PY2: super(SystemConfiguration, self).__init__("SystemConfiguration", None, parent) else: super().__init__("SystemConfiguration", None, parent) self.LifecycleController = LifecycleController( parent=self, loading_from_scp=loading_from_scp) self.System = System(parent=self, loading_from_scp=loading_from_scp) self.iDRAC = iDRAC(parent=self, loading_from_scp=loading_from_scp) self.FCHBA = ArrayType(FCHBA, parent=self, index_helper=FQDDHelper(), loading_from_scp=loading_from_scp) self.NIC = ArrayType(NetworkInterface, parent=self, index_helper=FQDDHelper(), loading_from_scp=loading_from_scp) self.BIOS = BIOS(parent=self, loading_from_scp=loading_from_scp) self.Controller = ArrayType(Controller, parent=self, index_helper=FQDDHelper(), loading_from_scp=loading_from_scp) self._ignore_attribs('ServiceTag', 'Model', 'TimeStamp') self.commit(loading_from_scp)
class Storage: def __init__(self, loading_from_scp=True): self.Controller = ArrayType(Controller, parent=None, index_helper=FQDDHelper(), loading_from_scp=loading_from_scp) self.inited = False @property def ControllerCount(self): return self.Controller.Length def Controller_load(self, component, array, ctree, ejson, entity): return self.my_load(component, array, ctree, ejson, entity) def Enclosure_load(self, component, array, ctree, ejson, entity): return self.my_load(component, array, ctree, ejson, entity) def PhysicalDisk_load(self, component, array, ctree, ejson, entity): d = self.my_load(component, array, ctree, ejson, entity) def VirtualDisk_load(self, component, array, ctree, ejson, entity): return self.my_load(component, array, ctree, ejson, entity) def my_load(self, component, array, ctree, ejson, entity): if not component in ctree: return False count = 0 for count in range(1, len(ejson[component]) + 1): comp = ejson[component][count - 1] for field in ['EncryptionMode']: if field in comp: del comp[field] for field in ['BlockSize', 'FreeSize', 'Size']: if field in comp: try: comp[field] = int(float(comp[field])) except Exception as ex: print(str(ex)) entry = array.flexible_new(index=count, **comp) if comp['FQDD'] not in ctree[component]: continue if isinstance(ctree[component], list): # leaf node continue subctree = ctree[component][comp['FQDD']] for subcomp in subctree: if subcomp in entry.__dict__: self._load_comp(subcomp, entry, subctree, ejson, entity) return True def _load_comp(self, comp, entry, ctree, ejson, entity): func = getattr(self, comp + '_load') return func(comp, entry.__dict__[comp], ctree, ejson, entity) def load(self, ctree, entity): ejson = entity.get_json_device() logger.debug(ejson) self._load_comp('Controller', self, ctree, ejson, entity) self.Controller.commit() self.inited = True
def __init__(self, parent=None, loading_from_scp=False): if PY2: super(Enclosure, self).__init__("Component", None, parent) else: super().__init__("Component", None, parent) # readonly attribute populated by iDRAC self.RAIDEffectiveSASAddress = StringField("", parent=self, modifyAllowed=False, deleteAllowed=False) # readonly attribute populated by iDRAC self.RAIDEnclosureCurrentCfgMode = EnumTypeField( None, RAIDEnclosureCurrentCfgModeTypes, parent=self, modifyAllowed=False, deleteAllowed=False) self.RAIDEnclosureRequestedCfgMode = EnumTypeField( RAIDEnclosureRequestedCfgModeTypes.T_None, RAIDEnclosureRequestedCfgModeTypes, parent=self) self.PhysicalDisk = ArrayType(PhysicalDisk, parent=self, index_helper=FQDDHelper(), loading_from_scp=loading_from_scp) self.commit(loading_from_scp)
def __init__(self, parent=None, loading_from_scp=False): if PY2: super(Controller, self).__init__("Component", None, parent) else: super().__init__("Component", None, parent) # readonly attribute populated by iDRAC self.BackplaneType = EnumTypeField(None, BackplaneTypeTypes, parent=self, modifyAllowed=False, deleteAllowed=False) # readonly attribute populated by iDRAC self.CurrentControllerMode = EnumTypeField(None, CurrentControllerModeTypes, parent=self, modifyAllowed=False, deleteAllowed=False) # readonly attribute self.EncryptionMode = EnumTypeField(None, EncryptionModeTypes, parent=self, modifyAllowed=False, deleteAllowed=False) # readonly attribute self.KeyID = StringField("", parent=self, modifyAllowed=False, deleteAllowed=False) # readonly attribute self.NewControllerKey = StringField("", parent=self, modifyAllowed=False, deleteAllowed=False) # readonly attribute self.OldControllerKey = StringField("", parent=self, modifyAllowed=False, deleteAllowed=False) # readonly attribute populated by iDRAC self.RAIDAssetTag = StringField("", parent=self, modifyAllowed=False, deleteAllowed=False) self.RAIDControllerBootMode = EnumTypeField( None, RAIDControllerBootModeTypes, parent=self) self.RAIDEnhancedAutoImportForeignConfig = EnumTypeField( None, RAIDEnhancedAutoImportForeignConfigTypes, parent=self) # readonly attribute populated by iDRAC self.RAIDMaxCapableSpeed = EnumTypeField(None, RAIDMaxCapableSpeedTypes, parent=self, modifyAllowed=False, deleteAllowed=False) # readonly attribute populated by iDRAC self.RAIDNegotiatedSpeed = EnumTypeField( RAIDNegotiatedSpeedTypes.T_None, RAIDNegotiatedSpeedTypes, parent=self, modifyAllowed=False, deleteAllowed=False) # readonly attribute populated by iDRAC self.RAIDSupportedRAIDLevels = EnumTypeField( None, RAIDSupportedRAIDLevelsTypes, parent=self, modifyAllowed=False, deleteAllowed=False) self.RAIDbatteryLearnMode = EnumTypeField( RAIDbatteryLearnModeTypes.T_None, RAIDbatteryLearnModeTypes, parent=self) self.RAIDbgiRate = IntRangeField(100, 1, 100, parent=self) self.RAIDccMode = EnumTypeField(None, RAIDccModeTypes, parent=self) self.RAIDccRate = IntRangeField(100, 1, 100, parent=self) self.RAIDcopybackMode = EnumTypeField(None, RAIDcopybackModeTypes, parent=self) self.RAIDforeignConfig = EnumTypeField(None, RAIDforeignConfigTypes, parent=self) self.RAIDloadBalancedMode = EnumTypeField( RAIDloadBalancedModeTypes.Automatic, RAIDloadBalancedModeTypes, parent=self) # readonly attribute populated by iDRAC self.RAIDmaxPDsInSpan = IntField(None, parent=self, modifyAllowed=False, deleteAllowed=False) # readonly attribute populated by iDRAC self.RAIDmaxSpansInVD = IntField(None, parent=self, modifyAllowed=False, deleteAllowed=False) # readonly attribute populated by iDRAC self.RAIDmaxSupportedVD = IntField(None, parent=self, modifyAllowed=False, deleteAllowed=False) self.RAIDprMode = EnumTypeField(None, RAIDprModeTypes, parent=self) # readonly attribute populated by iDRAC self.RAIDprRate = IntRangeField(30, 1, 100, parent=self, modifyAllowed=False, deleteAllowed=False) self.RAIDrebuildRate = IntRangeField(100, 1, 100, parent=self) self.RAIDreconstructRate = IntRangeField(100, 1, 100, parent=self) self.RAIDrekey = EnumTypeField(RAIDrekeyTypes.T_False, RAIDrekeyTypes, parent=self) self.RAIDremovecontrollerKey = EnumTypeField( RAIDremovecontrollerKeyTypes.T_False, RAIDremovecontrollerKeyTypes, parent=self) self.RAIDresetConfig = EnumTypeField(RAIDresetConfigTypes.T_False, RAIDresetConfigTypes, parent=self, rebootRequired=True) # readonly attribute populated by iDRAC self.RAIDspinDownIdleTime = IntRangeField(30, 1, 65535, parent=self, modifyAllowed=False, deleteAllowed=False) # readonly attribute populated by iDRAC self.RAIDsupportedDiskProt = EnumTypeField(None, RAIDsupportedDiskProtTypes, parent=self, modifyAllowed=False, deleteAllowed=False) self.Enclosure = ArrayType(Enclosure, parent=self, index_helper=FQDDHelper(), loading_from_scp=loading_from_scp) self.VirtualDisk = ArrayType(VirtualDisk, parent=self, index_helper=FQDDHelper(), loading_from_scp=loading_from_scp) self.PhysicalDisk = ArrayType(PhysicalDisk, parent=self, index_helper=FQDDHelper(), loading_from_scp=loading_from_scp) self.commit(loading_from_scp)
def __init__(self, loading_from_scp=True): self.Controller = ArrayType(Controller, parent=None, index_helper=FQDDHelper(), loading_from_scp=loading_from_scp) self.inited = False