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
Esempio n. 6
0
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
Esempio n. 7
0
            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))
Esempio n. 8
0
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
Esempio n. 9
0
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