def add_parameter(): """Add update volume parameter""" parameter_info = {} argget = utils.create_common_parameter_list(example_string=''' Example: "python lenovo_update_raid_volume.py -i 10.10.10.10 -u USERID -p PASSW0RD --name Volume0 --readpolicy ReadAhead --writepolicy AlwaysWriteBack" ''') add_helpmessage(argget) args = argget.parse_args() parameter_info = utils.parse_parameter(args) parameter_info["raidid"] = args.raidid parameter_info["name"] = args.name parameter_info["readpolicy"] = args.readpolicy parameter_info["writepolicy"] = args.writepolicy parameter_info["iopolicy"] = args.iopolicy parameter_info["accesspolicy"] = args.accesspolicy parameter_info["drivecachepolicy"] = args.drivecachepolicy return parameter_info
def add_parameter(): """Add create volume parameter""" parameter_info = {} argget = utils.create_common_parameter_list(example_string=''' Example: "python lenovo_create_raid_volume.py -i 10.10.10.10 -u USERID -p PASSW0RD --name volume1 --raidtype RAID10 --capacityMB 500000" ''') add_helpmessage(argget) args = argget.parse_args() parameter_info = utils.parse_parameter(args) parameter_info["raidid"] = args.raidid parameter_info["name"] = args.name parameter_info["raidtype"] = args.raidtype parameter_info["capacityMB"] = args.capacityMB parameter_info["readpolicy"] = args.readpolicy parameter_info["writepolicy"] = args.writepolicy parameter_info["iopolicy"] = args.iopolicy parameter_info["accesspolicy"] = args.accesspolicy parameter_info["drivecachepolicy"] = args.drivecachepolicy return parameter_info
def add_parameter(): """Add set serial interfaces attribute parameter""" argget = utils.create_common_parameter_list() argget.add_argument('--interfaceid', type=str, default='1', help='Serial interface instance id. (default instance id is 1)') argget.add_argument('--bitrate', type=str, default='', help='This property indicates the transmit and receive speed of the serial connection. Support: [9600, 19200, 38400, 57600, 115200]') argget.add_argument('--stopbits', type=str, default='', help='This property indicates the stop bits for the serial connection. Support:["1","2"].') argget.add_argument('--parity', type=str, default='', help='This property indicates parity information for a serial connection. Support: ["None", "Even", "Odd"]') argget.add_argument('--enabled', type=str, default='', help='This property indicates if this interface is enabled. Support:(0:false,1:true)') args = argget.parse_args() parameter_info = utils.parse_parameter(args) # Parse the added parameters try: parameter_info['bitrate'] = args.bitrate parameter_info['stopbits'] = args.stopbits parameter_info['parity'] = args.parity parameter_info['interfaceid'] = args.interfaceid parameter_info['enabled'] = args.enabled except: pass return parameter_info
def add_parameter(): """Add mount media iso parameter""" argget = utils.create_common_parameter_list(example_string=''' Example of HTTP/NFS: "python mount_virtual_media.py -i 10.10.10.10 -u USERID -p PASSW0RD --fsprotocol HTTP --fsip 10.10.10.11 --fsdir /fspath/ --image isoname.img" ''') add_helpmessage(argget) args = argget.parse_args() parameter_info = utils.parse_parameter(args) config_file = args.config config_ini_info = utils.read_config(config_file) # Add FileServerCfg parameter to config_ini_info cfg = configparser.ConfigParser() if os.path.exists(config_file): cfg.read(config_file) config_ini_info["fsprotocol"] = cfg.get('FileServerCfg', 'FSprotocol') config_ini_info["fsip"] = cfg.get('FileServerCfg', 'FSip') config_ini_info["fsport"] = cfg.get('FileServerCfg', 'FSport') config_ini_info["fsusername"] = cfg.get('FileServerCfg', 'FSusername') config_ini_info["fspassword"] = cfg.get('FileServerCfg', 'FSpassword') config_ini_info["fsdir"] = cfg.get('FileServerCfg', 'FSdir') # Gets the parameters specified on the command line parameter_info['image'] = args.image parameter_info['writeprotocol'] = args.writeprotocol # Parse the added parameters parameter_info['fsprotocol'] = args.fsprotocol parameter_info['fsport'] = args.fsport parameter_info['fsusername'] = args.fsusername parameter_info['fspassword'] = args.fspassword parameter_info['fsip'] = args.fsip parameter_info['fsdir'] = args.fsdir # The parameters in the configuration file are used when the user does not specify parameters for key in parameter_info: if not parameter_info[key]: if key in config_ini_info: parameter_info[key] = config_ini_info[key] return parameter_info
def add_parameter(): """Add update firmware parameter""" argget = utils.create_common_parameter_list() add_helpmessage(argget) args = argget.parse_args() # Get the configuration file name if the user specified config_file = args.config # Get the common parameter from the configuration files config_ini_info = utils.read_config(config_file) # Add FileServerCfg parameter to config_ini_info cfg = configparser.ConfigParser() if os.path.exists(config_file): cfg.read(config_file) config_ini_info["fsprotocol"] = cfg.get('FileServerCfg', 'FSprotocol') config_ini_info["fsip"] = cfg.get('FileServerCfg', 'FSip') config_ini_info["fsport"] = cfg.get('FileServerCfg', 'FSport') config_ini_info["fsusername"] = cfg.get('FileServerCfg', 'FSusername') config_ini_info["fspassword"] = cfg.get('FileServerCfg', 'FSpassword') config_ini_info["fsdir"] = cfg.get('FileServerCfg', 'FSdir') # Get the user specify parameter from the command line parameter_info = utils.parse_parameter(args) parameter_info["image"] = args.image parameter_info["targets"] = args.targets parameter_info['fsprotocol'] = args.fsprotocol parameter_info['fsip'] = args.fsip parameter_info['fsport'] = args.fsport parameter_info['fsusername'] = args.fsusername parameter_info['fspassword'] = args.fspassword parameter_info['fsdir'] = args.fsdir # The parameters in the configuration file are used when the user does not specify parameters for key in parameter_info: if not parameter_info[key]: if key in config_ini_info: parameter_info[key] = config_ini_info[key] return parameter_info
def add_parameter(): """Add update user password parameter""" argget = utils.create_common_parameter_list( description_string= "This tool can be used to set BMC user global setting include password policy and web inactivity session timeout." ) add_helpmessage(argget) args = argget.parse_args() parameter_info = utils.parse_parameter(args) globalsetting_dict = {} if args.PasswordChangeOnFirstAccess is not None: globalsetting_dict["PasswordChangeOnFirstAccess"] = bool( args.PasswordChangeOnFirstAccess) if args.PasswordChangeOnNextLogin is not None: globalsetting_dict["PasswordChangeOnNextLogin"] = bool( args.PasswordChangeOnNextLogin) if args.PasswordExpirationPeriodDays is not None: globalsetting_dict["PasswordExpirationPeriodDays"] = int( args.PasswordExpirationPeriodDays) if args.PasswordExpirationWarningPeriod is not None: globalsetting_dict["PasswordExpirationWarningPeriod"] = int( args.PasswordExpirationWarningPeriod) if args.MinimumPasswordLength is not None: globalsetting_dict["PasswordLength"] = int(args.MinimumPasswordLength) if args.MinimumPasswordReuseCycle is not None: globalsetting_dict["MinimumPasswordReuseCycle"] = int( args.MinimumPasswordReuseCycle) if args.MinimumPasswordChangeInterval is not None: globalsetting_dict["MinimumPasswordChangeIntervalHours"] = int( args.MinimumPasswordChangeInterval) if args.LockThreshold is not None: globalsetting_dict["AccountLockoutThreshold"] = int(args.LockThreshold) if args.LockDuration is not None: globalsetting_dict["AccountLockoutDuration"] = int( args.LockDuration ) * 60 # convert minute value to second value in redfish API parameter_info["globalsetting_dict"] = globalsetting_dict return parameter_info
REDFISH_OBJ.logout() return result result['ret'] = True result['entries'] = system_details # Logout of the current session try: REDFISH_OBJ.logout() except: pass return result if __name__ == '__main__': # Get parameters from config.ini and/or command line argget = utils.create_common_parameter_list() args = argget.parse_args() parameter_info = utils.parse_parameter(args) # Get connection info from the parameters user specified ip = parameter_info['ip'] login_account = parameter_info["user"] login_password = parameter_info["passwd"] system_id = parameter_info['sysid'] # Get system info and check result result = get_system_inventory(ip, login_account, login_password, system_id) if result['ret'] is True: del result['ret'] sys.stdout.write( json.dumps(result['entries'], sort_keys=True, indent=2))
def add_parameter(): # Common parameter handling common_str = "This tool can be used to add alert recipient setting. \ Example: 'python lenovo_add_alert_recipient.py -i 10.10.10.10 -u USERID -p PASSW0RD \ --RecipientName example --Address 10.10.10.10:514 --Enabledstate 1 --AlertType Syslog \ --CriticalEvents All --WarningEvents All --SystemEvents SuccessfulRemoteLogin SystemPowerSwitch" argget = utils.create_common_parameter_list(description_string=common_str) add_helpmessage(argget) args = argget.parse_args() parameter_info = utils.parse_parameter(args) all_critical_events = ['CriticalTemperatureThresholdExceeded', 'CriticalVoltageThresholdExceeded', 'CriticalPowerFailure', \ 'HardDiskDriveFailure', 'FanFailure','CPUFailure', 'MemoryFailure', 'HardwareIncompatibility', \ 'PowerRedundancyFailure', 'AllOtherCriticalEvents'] all_warning_events = ['PowerRedundancyWarning', 'WarningTemperatureThresholdExceeded', 'WarningVoltageThresholdExceeded', \ 'WarningPowerThresholdExceeded', 'NoncriticalFanevents','CPUinDegradedState', 'MemoryWarning', 'AllOtherWarningEvents'] all_system_events = ['SuccessfulRemoteLogin', 'OperatingSystemTimeout', 'AllOtherEvents', \ 'SystemPowerSwitch', 'OperatingSystemBootFailure','OperatingSystemLoaderWatchdogTimeout', \ 'PredictedFailure', 'EventLog75PercentFull', 'NetworkChange', 'AllAuditEvents'] # Create recipient setting based on the arguments specified. setting_dict = {} setting_dict["RecipientSettings"] = {} setting_dict["RecipientSettings"]["EnabledAlerts"] = {} setting_dict["RecipientSettings"]["EnabledAlerts"]["CriticalEvents"] = {} setting_dict["RecipientSettings"]["EnabledAlerts"]["WarningEvents"] = {} setting_dict["RecipientSettings"]["EnabledAlerts"]["SystemEvents"] = {} setting_dict["Id"] = '' if args.Id is not None: setting_dict["Id"] = str(args.Id) setting_dict["RecipientSettings"]["Enabledstate"] = True if args.Enabledstate is not None: setting_dict["RecipientSettings"]["Enabledstate"] = bool( args.Enabledstate) if args.RecipientName is not None: setting_dict["RecipientSettings"]["RecipientName"] = args.RecipientName setting_dict["RecipientSettings"]["IncludeEventLog"] = False if args.IncludeEventLog is not None and args.AlertType == "Email": setting_dict["RecipientSettings"]["IncludeEventLog"] = bool( args.IncludeEventLog) # Address is key info, all the alerts will be sent to this address. # For Syslog, here is ip:port, like 10.10.10.10:514. # For Email, here is Email address. if args.Address is not None: setting_dict["RecipientSettings"]["Address"] = args.Address if args.AlertType is not None: setting_dict["RecipientSettings"]["AlertType"] = args.AlertType setting_dict["RecipientSettings"]["EnabledAlerts"]["CriticalEvents"][ "Enabled"] = False setting_dict["RecipientSettings"]["EnabledAlerts"]["CriticalEvents"][ "AcceptedEvents"] = [] if len(args.CriticalEvents) > 0: setting_dict["RecipientSettings"]["EnabledAlerts"]["CriticalEvents"][ "Enabled"] = True if 'all' in args.CriticalEvents or 'All' in args.CriticalEvents: setting_dict["RecipientSettings"]["EnabledAlerts"][ "CriticalEvents"]["AcceptedEvents"] = all_critical_events else: setting_dict["RecipientSettings"]["EnabledAlerts"][ "CriticalEvents"]["AcceptedEvents"] = args.CriticalEvents setting_dict["RecipientSettings"]["EnabledAlerts"]["WarningEvents"][ "Enabled"] = False setting_dict["RecipientSettings"]["EnabledAlerts"]["WarningEvents"][ "AcceptedEvents"] = [] if len(args.WarningEvents) > 0: setting_dict["RecipientSettings"]["EnabledAlerts"]["WarningEvents"][ "Enabled"] = True if 'all' in args.WarningEvents or 'All' in args.WarningEvents: setting_dict["RecipientSettings"]["EnabledAlerts"][ "WarningEvents"]["AcceptedEvents"] = all_warning_events else: setting_dict["RecipientSettings"]["EnabledAlerts"][ "WarningEvents"]["AcceptedEvents"] = args.WarningEvents setting_dict["RecipientSettings"]["EnabledAlerts"]["SystemEvents"][ "Enabled"] = False setting_dict["RecipientSettings"]["EnabledAlerts"]["SystemEvents"][ "AcceptedEvents"] = [] if len(args.SystemEvents) > 0: setting_dict["RecipientSettings"]["EnabledAlerts"]["SystemEvents"][ "Enabled"] = True if 'all' in args.SystemEvents or 'All' in args.SystemEvents: setting_dict["RecipientSettings"]["EnabledAlerts"]["SystemEvents"][ "AcceptedEvents"] = all_system_events else: setting_dict["RecipientSettings"]["EnabledAlerts"]["SystemEvents"][ "AcceptedEvents"] = args.SystemEvents parameter_info["recipient_setting_dict"] = setting_dict return parameter_info
def add_parameter(): """Add parameter""" argget = utils.create_common_parameter_list() args = argget.parse_args() parameter_info = utils.parse_parameter(args) return parameter_info
def add_parameter(): """Add update user password parameter""" argget = utils.create_common_parameter_list(description_string="This tool can be used to get BMC user global setting include password policy and web inactivity session timeout.") args = argget.parse_args() parameter_info = utils.parse_parameter(args) return parameter_info