If you are going to perform configuration tasks with SDK (like configuring NIC, BIOS, etc.), you need to create a Liason Share. SDK will save the configuration tasks into a temporary Server Configuration Profile in the Liason share and initiate an import request to iDRAC to import the temporary file. Once the task is complete, the SDK will remove the temporary file. iDRAC can only import the Server Configuration Profile from a NFS folder or a Windows Network Share. Hence, the Liason Share must be an exported share folder accessible to iDRAC whereas it must be mounted locally on the host where SDK is being used.
If you export /LinShare_Ansible from host 192.168.1.21, and mounting it onto /mnt path on the machine where SDK is hosted, then create a share object as follows:
# Credentials to access the LinShare_Ansible share on 192.168.1.21
creds = UserCredentials(<user>, <password>)
FileOnShare(remote = '192.168.1.21:/LinShare_Ansible',
mount_point = '/mnt/LinShare_Ansible'
isFolder = True, creds)
and register it with idrac as follows:
idrac.config_mgr.set_liason_share(myshare)
On Windows, you can create the folder, by specifying a unassiged drive as the mount_point
# Credentials to access the WinShare_Ansible share on 192.168.1.21
creds = UserCredentials('<domain>\\<user>', <password>)
FileOnShare(remote = '\\\\192.168.1.21\\WinShare_Ansible',
mount_point = 'Z:\\'
isFolder = True, creds)
Note: Since python uses '' character as an escape character, windows folders will take an extra '' character.
When iDRAC does not have access to internet, Firmware Updates Tasks requires firmware to be downloaded from ftp.dell.com or downloads.dell.com to a local share. Also for performance reasons, it would be better to have the firmware downloaded to iDRAC from a local share rather than from an internet site. However, the this would require large storage areas to download the firmware updates.
SDK provides an optimal solution for this through an UpdateManager API. The Update Manager requires a share accessible to iDRACs in the network, which is also locally mounted onto the machine where SDK will run.
Here are the sequence of steps to perform update tasks:
- Create a share similar to Liason share and configure it with Update Manager
updshare = FileOnShare(remote ='\\\\192.168.0.120\\NFS',
mount_point='Z:\\', isFolder=True,
creds = UserCredentials("<user>", "<password>"))
UpdateManager.configure(updshare)
2. Download the catalog 'ftp://ftp.dell.com/Catalog.xml.gz' to the Update Share and extract it. This master catalog, released at a periodic cadence contains the location of the latest firmware, drivers and application updates for all components of all supported PowerEdge systems.
UpdateManager.get_instance().update_catalog()
3. Now we want to create a cache of the firmware updates from ftp.dell.com. We need this to perform firmware updates locally. While the downloaded Catalog contains the latest firmware, drivers and application updates for all components of all supported PowerEdge systems, the deployed environments may not necessarily cover the entire PowerEdge portfolio. Hence, it would be optimal to create a local cache more representative of the deployed environment.
To create a local cache, prepare a list of representative systems. You can use one of the following methods to create the cache:
- Create a cache of all firmware belonging to PowerEdge model
# Add all components belonging to a Model to Cache.
catscope = UpdateManager.get_instance().get_cache_catalog()
for ipaddr in [list of representative iDRACs]:
idrac = sd.get_driver(sd.driver_enum.iDRAC, ipaddr, creds_for_ipaddr)
catscope.add_model_to_scope(idrac.SystemIDInHex)
catscope.save()
b. Create a cache of the firmware of the components present in the representative systems
# Add firmware for only those components present in representative systems
catscope = UpdateManager.get_instance().get_cache_catalog()
for ipaddr in [list of representative iDRACs]:
idrac = sd.get_driver(sd.driver_enum.iDRAC, ipaddr, creds_for_ipaddr)
catscope.add_to_scope(idrac.SystemIDInHex, idrac.update_mgr.get_swidentity())
catscope.save()
c. Optionally, if you want to create a cache of only certain component updates (like BIOS and iDRAC updates), then you can follow this steps:
# Add firmware for only those components present in representative systems
catscope = UpdateManager.get_instance().get_cache_catalog()
for ipaddr in [list of representative iDRACs]:
idrac = sd.get_driver(sd.driver_enum.iDRAC, ipaddr, creds_for_ipaddr)
catscope.add_to_scope(idrac.SystemIDInHex, idrac.update_mgr.get_swidentity(), 'iDRAC', 'BIOS')
catscope.save()
After saving the catalog with requisite firmware records, we need to now download the firmware updates as follows:
UpdateManager.get_instance().update_cache()
Now we are ready to perform firmware updates on the devices.
You have to first initialize the SDK Infrastructure as follows:
from omsdk.sdkinfra import sdkinfra
sd = sdkinfra()
sd.importPath()
The above two lines initializes the SDK Infrastructure and loads the drivers present in the path <python_lib>omdrivers
You can instantiate the iDRAC as follows:
idrac = sd.find_driver(ipaddr, creds)
idrac = sd.get_driver(sd.driver_enum.iDRAC, ipaddr, creds)
if the ipaddress is resolved to an iDRAC, then an object instance of iDRACEntity object is returned. Otherwise None object is returned.
You need to disconnect the connection to iDRAC. While iDRAC would salvage connections, if you don't disconnect it can potentially cause the iDRAC to slow down.
idrac.disconnect()
Reconnect is an convenience function to reconnect to the device Tears down the connection and recreates one.
idrac.reconnect(pOptions)
You can setup the liason share as follows:
FileOnShare(remote = '192.168.1.120:/Share', mount_point = '/mnt/Share',
isFolder = True, creds)
idrac.config_mgr.set_liason_share(myshare)
.. attribute:: idrac.AssetTag Asset Tag of the system.
.. attribute:: idrac.CMCIPAddress If the server is a blade, then the IP Address of Chassis Management Controller containing the blade
.. attribute:: idrac.Model Model of the server
.. attribute:: idrac.PowerCap Power Cap configured for the server
.. attribute:: idrac.PowerState Powered state of the server
.. attribute:: idrac.ServerGeneration Generation of the server
.. attribute:: idrac.ServiceTag Service Tag of the server
.. attribute:: idrac.SystemID System ID of the Server. This ID is used internally to identify model of the server.
.. attribute:: idrac.SystemIDInHex System ID of the server in Hexadecimal Number. This ID is used in querying the firmware updates for a given server model.
.. attribute:: idrac.config_mgr.DriverPackInfo Driver Packs available on the server.
.. attribute:: idrac.config_mgr.HostMacInfo Host MAC Info required for OS Deployment
.. attribute:: idrac.config_mgr.LCReady Ready state of Lifecycle Controller. Jobs can be scheduled only if Lifecycle Controller is in ready state
.. attribute:: idrac.config_mgr.LCStatus Status of the Lifecycle Controller.
.. attribute:: idrac.config_mgr.ServerStatus Status of the Server
CSIOR is an option in iDRAC which enables collecting of system inventory on reboot. This option is required for DellEMC 1xMany Consoles to be able to perform configuration tasks on the iDRAC.
.. function:: idrac.config_mgr.disable_csior() Disables CSIOR
.. function:: idrac.config_mgr.enable_csior() Enables CSIOR
Auto Discovery is method where iDRAC can report its presence to a Provisioning Server configured in the DNS/DHCP. The APIs provided will alter the settings for autodiscovery
.. function:: idrac.config_mgr.reinitiate_dhs() iDRAC will reinitate discovery handshare with the provisioning server
.. function:: idrac.config_mgr.clear_provisioning_server() This API will clear Provisioning server details from the iDRAC. When rebooted, iDRAC will once again fetch information from DNS/DHCP
Configures the location of the server.
.. function:: idrac.config_mgr.configure_location(datacenter, loc_room, loc_aisle, loc_rack, loc_rack_slot, loc_chassis) :param str datacenter: Datacenter name :param str loc_room: Room name :param str loc_aisle: Aisle name :param str loc_rack: Rack name :param str loc_rack_slot: Rack slot :param str loc_chassis: Chassis Name :return: JSON object providing return status of the operation Return Values: Success: if location information is configured successfully Failed: if the location information could not be configured or there was some internal error
.. function:: idrac.config_mgr.configure_idrac_dnsname(dnsname) Configures DNS Name of iDRAc
.. function:: idrac.config_mgr.configure_idrac_ipv4(enable_ipv4, dhcp_enabled) Enables IPv4 Configuration for iDRAC NIC
.. function:: idrac.config_mgr.configure_idrac_ipv4dns(dnsarray, dnsFromDHCP) Configures IPv4 DNS Settings for iDRAC NIC
.. function:: idrac.config_mgr.configure_idrac_ipv4static(ipv4_address, ipv4_netmask, ipv4_gateway, dnsarray, dnsFromDHCP) Configures IPv4 Static Settings for iDRAC NIC
.. function:: idrac.config_mgr.configure_idrac_ipv6dns(dnsarray, dnsFromDHCP) Configures IPv6 DNS Settings for iDRAC NIC
.. function:: idrac.config_mgr.configure_idrac_ipv6static(ipv6_address, ipv6_prefixlen, ipv6_gateway, dnsarray, dnsFromDHCP) Configures IPv6 Static Settings for iDRAC NIC
.. function:: idrac.config_mgr.configure_idrac_nic(idrac_nic, failover, auto_negotiate, idrac_nic_speed, auto_dedicated_nic) Configures iDRAC NIC Failover and Speed Settings
.. function:: idrac.config_mgr.configure_time_zone(tz, dst_offset, tz_offset) Configures Time Zone settings
.. function:: idrac.config_mgr.configure_tls(tls_protocol, ssl_bits) Configures TLS Settings
.. function:: idrac.config_mgr.disable_snmp() Disable SNMP for iDRAC
.. function:: idrac.config_mgr.enable_snmp(community, snmp_port, trap_port, trap_format) Configure SNMP Community Name, SNMP Port, SNMP Trap Port and the SNMP Trap Formats
.. function:: idrac.config_mgr.disable_syslog() Disable Syslog for iDRAC
.. function:: idrac.config_mgr.enable_syslog(syslog_port, powerlog_interval, server1, server2, server3) Configure SysLog Port, Power Log Port Interval and syslog remote servers
Provides APIs for configuring the SNMP Trap Destinations. When an event occurs in iDRAC, iDRAC generates an SNMP Trap to all these destinations User can also disable a SNMP Trap Destination, in which case, the entry is still retained in iDRAC, but traps are not sent to this entry.
.. attribute:: idrac.config_mgr.SNMPTrapDestination Returns a JSON containing list of all "SNMP Trap Destinations". Each "SNMP Trap Destination" entry contains the IPAddress/Hostname of the "SNMP Trap Destination", an optional username for SNMPv3 Traps and whether the entry is Enabled/Disabled. The JSON also returns an internal slot index in the Trap Destination table, where the entry can be found. This corresponds to row in the "SNMP Trap Destination" table in iDRAC Console. A maximum of 16 "SNMP Trap Destination" can be configured with iDRAC. A sample return value from the function returning two "SNMP Trap Destination" entries is given below.
[
{
"Destination": "192.168.1.100",
"SNMPv3Username": null,
"_slot": 1,
"State": "Enabled"
},
{
"Destination": "192.168.1.102",
"SNMPv3Username": null,
"_slot": 2,
"State": "Disabled"
},
]
.. function:: idrac.config_mgr.add_trap_destination(trap_dest_host[, username = None]) Inserts an "SNMP Trap Destination" entry into an empty slot inside the "SNMP Trap Destination" Table. :param IpAddress trap_dest_host: "SNMP Trap Destination" host (can be IPv4 or IPv6 address or hostname) :param str username: SNMPv3 User Name to which the SNMP Trap is generated. :return: JSON reverting status of the call, optional message if the call failed. Return Values: Success : if the entry was added successfully Failed : if entry was already present or no empty slot was found or if there was some internal errors.
.. function:: idrac.config_mgr.disable_trap_destination(trap_dest_host) Disables the "SNMP Trap Destination" entry. SNMP Traps will not be forwarded to this host until the entry is again enabled. Arguments: trap_dest_host : SNMP Trap Destination host (can be IPv4 or IPv6 address or hostname) Return Values: Success : if the entry was enabled successfully Failed : if entry could not be found or, there was some internal errors.
.. function:: idrac.config_mgr.enable_trap_destination(trap_dest_host) Enables the "SNMP Trap Destination" entry. iDRAC will start generating SNMP Traps to this host. Arguments: trap_dest_host : "SNMP Trap Destination" host (can be IPv4 or IPv6 address or hostname) Return Values: Success : if the entry was enabled successfully Failed : if entry could not be found or, there was some internal errors.
.. function:: idrac.config_mgr.remove_trap_destination(trap_dest_host) Removes the "SNMP Trap Destination" entry. iDRAC will stop generating SNMP Traps to this host. User cannot enable this entry in future. Arguments: trap_dest_host : "SNMP Trap Destination" host (can be IPv4 or IPv6 address or hostname) Return Values: Success : if the entry was enabled successfully Failed : if entry could not be found or, there was some internal errors.
Provides APIs for configuring the Email Alert Destinations. When an event occurs in iDRAC, iDRAC can be configured to generate an Alert to registered Email Addresses. User can also disable a Email Alert Destination, in which case, the entry is still retained in iDRAC, but alerts are not sent to this entry. User can enable Email Alerts or customize the message to be sent on events.
.. attribute:: idrac.config_mgr.RegisteredEmailAlert Returns a JSON containing list of all registered Email Addresses. Each Email Address contains the email address of the Email Alert Destination, an optional message to be used for Email Alerts and whether the entry is Enabled/Disabled. The JSON also returns an internal slot index in the Email Alert table, where the entry can be found. This corresponds to row in the Email Alert entry table in iDRAC Console. A maximum of 4 Email addresses can be configured with iDRAC.
[
{
"Address": "[email protected]",
"CustomMsg": null,
"Enable": "Enabled",
"_slot": 1
}
]
.. function:: idrac.config_mgr.add_email_alert(email_id[, custom_msg = ""]) Inserts an Email Alert entry into an empty slot inside the Email Address Table. Arguments: email_id : Email address to which the Alert need to be sent custom_msg : Custom Message Return Values: Success : if the entry was added successfully Failed : if entry could not be created due to an existing entry, no empty slot or there was some internal errors.
.. function:: idrac.config_mgr.disable_email_alert(email_id) Disables the Email Alert entry. Email Alerts will not be generated to this email address until the entry is again enabled. Arguments: email_id : Email address to which the Alert need to be sent Return Values: Success : if the entry was enabled successfully Failed : if entry could not be found, or there was some internal errors.
.. function:: idrac.config_mgr.enable_email_alert(email_id) Enables the Email Alert entry. iDRAC will start generating Email Alerts to this email address. Arguments: email_id : Email address to which the Alert need to be sent Return Values: Success : if the entry was enabled successfully Failed : if entry could not be found, or there was some internal errors.
.. function:: idrac.config_mgr.remove_email_alert(email_id) Removes the Email Alert entry. iDRAC will stop generating Email Alert this email address. Arguments: email_id : Email address to which the Alert need to be sent Return Values: Success : if the entry was enabled successfully Failed : if entry could not be found, or there was some internal errors.
.. function:: idrac.config_mgr.change_email_alert(email_id, custom_msg = "") Changes the custom_message for this email entry Arguments: email_id : Email address to which the Alert need to be sent custom_msg : Custom Message Return Values: Success : if the custom message has been changed properly. Failed : if entry could not be found, or there was some internal errors.
bios_reset_to_defaults() change_bios_password(passtype, old_password, new_password)
blink_led(ledenum, duration)
blink_drive(target) unblink_drive(target)
.. function:: idrac.config_mgr.boot_to_network_iso(network_iso_image) OS Deplpyment task
.. function:: idrac.config_mgr.boot_to_disk() OS Deplpyment task
.. function:: idrac.config_mgr.boot_to_pxe() OS Deplpyment task
.. function:: idrac.config_mgr.boot_to_iso() OS Deplpyment task
.. function:: idrac.config_mgr.detach_iso() OS Deplpyment task
.. function:: idrac.config_mgr.detach_iso_from_vflash() OS Deplpyment task
.. function:: idrac.config_mgr.disconnect_network_iso() OS Deplpyment task
.. function:: idrac.config_mgr.connect_network_iso() OS Deplpyment task
.. function:: idrac.config_mgr.download_iso() OS Deplpyment task
.. function:: idrac.config_mgr.download_iso_flash() OS Deplpyment task
.. function:: idrac.config_mgr.change_power(penum) Change Power
.. function:: idrac.config_mgr.power_boot(power_boot_enum) Power boot
.. function:: idrac.config_mgr.reboot_after_config(reboot_type) Reboot after configuring a job
.. function:: idrac.config_mgr.create_raid(vd_name, span_depth, span_length, raid_type, n_disks) Creates a RAID Disk
.. function:: idrac.config_mgr.scp_import(scp_share_path) Import Server Configuration Profile to iDRAC. This API waits for iDRAC to complete the import of Server Configuration Profile. Certain changes like RAID creation, would require the server to be rebooted after importing the Server Configuration Profile. :param omsdk.sdkfile.FileOnShare scp_share_path: Location from where the Server Configuration Profile is imported :return: JSON object returning the status of the command Return Values: Success : If the Server Configuration profile is successful Failed: If the Server Configuration Profile could not be imported.
.. function:: idrac.config_mgr.scp_import_async(scp_share_path) Import Server Configuration Profile to iDRAC. This API returns immediately and returns the job id assocated with the import operation. Until the operation is complete, iDRAC will not be accepting other jobs. Certain changes like RAID creation, would require the server to be rebooted after iDRAC successfully imported the Server Configuration Profile. :param omsdk.sdkfile.FileOnShare scp_share_path: Location where the Server Configuration Profile is stored :return: JSON object returning the status of the command Return Values: Success : If the Server Configuration profile is successful. return_value['Job']['JobId'] has the Job ID associated with the import Failed: If the Server Configuration Profile could not be imported.
.. function:: idrac.config_mgr.scp_export(scp_share_path) Export Server Configuration Profile to share. This API waits for iDRAC to complete the export of Server Configuration Profile to a given share. :param omsdk.sdkfile.FileOnShare scp_share_path: Location where the Server Configuration Profile will be exported :return: JSON object returning the status of the command Return Values: Success : If the Server Configuration profile is successful Failed: If the Server Configuration Profile could not be imported.
.. function:: idrac.config_mgr.scp_export_async(scp_share_path) Export Server Configuration Profile to share. This API returns immediately and returns the job id assocated with the import operation. Until the operation is complete, iDRAC will not be accepting other jobs. :param omsdk.sdkfile.FileOnShare scp_share_path: Location where the Server Configuration Profile will be exported :return: JSON object returning the status of the command Return Values: Success : If the Server Configuration profile is successful. return_value['Job']['JobId'] has the Job ID associated with the export Failed: If the Server Configuration Profile could not be exported.
.. function:: idrac.config_mgr.sp_import(sp_share_path) Import Server Profile to iDRAC. This API waits for iDRAC to complete the import of Server Profile. Certain changes like RAID creation, would require the server to be rebooted after importing the Server Profile. :param omsdk.sdkfile.FileOnShare sp_share_path: Location from where the Server Profile is imported :return: JSON object returning the status of the command Return Values: Success : If the Server profile is successful Failed: If the Server Profile could not be imported.
.. function:: idrac.config_mgr.sp_import_async(sp_share_path) Import Server Profile to iDRAC. This API returns immediately and returns the job id assocated with the import operation. Until the operation is complete, iDRAC will not be accepting other jobs. Certain changes like RAID creation, would require the server to be rebooted after iDRAC successfully imported the Server Profile. :param omsdk.sdkfile.FileOnShare sp_share_path: Location where the Server Profile is stored :return: JSON object returning the status of the command Return Values: Success : If the Server profile is successful. return_value['Job']['JobId'] has the Job ID associated with the import Failed: If the Server Profile could not be imported.
.. function:: idrac.config_mgr.sp_export(sp_share_path) Export Server Profile to share. This API waits for iDRAC to complete the export of Server Profile to a given share. :param omsdk.sdkfile.FileOnShare sp_share_path: Location where the Server Profile will be exported :return: JSON object returning the status of the command Return Values: Success : If the Server profile is successful Failed: If the Server Profile could not be imported.
.. function:: idrac.config_mgr.sp_export_async(sp_share_path) Export Server Profile to share. This API returns immediately and returns the job id assocated with the import operation. Until the operation is complete, iDRAC will not be accepting other jobs. :param omsdk.sdkfile.FileOnShare sp_share_path: Location where the Server Profile will be exported :return: JSON object returning the status of the command Return Values: Success : If the Server profile is successful. return_value['Job']['JobId'] has the Job ID associated with the export Failed: If the Server Profile could not be exported.
.. function:: idrac.config_mgr.wait_till_lc_ready(timeout) Wait for timeout or till LC is ready.
.. function:: idrac.config_mgr.lc_status() Retrieve the status of server and Lifecycle Controller
.. function:: idrac.job_mgr.get_jobs() Get Jobs
.. function:: idrac.job_mgr.get_job_details(jobid) Get Details of a given job id
.. function:: idrac.job_mgr.get_job_status(jobid) Get Job status
.. function:: idrac.job_mgr.queue_jobs(job_list, schtime) Queue a list of jobs
.. function:: idrac.job_mgr.job_wait(jobid, track_jobid, show_progress) Wait for a job to complete
.. function:: idrac.job_mgr.delete_job(jobid) Delete the given job id
.. function:: idrac.job_mgr.delete_all_jobs() Delete all jobs
.. function:: idrac.log_mgr.clear_logs() Clear LC Logs
.. function:: idrac.log_mgr.clear_sel_logs() Clear SEL Logs
.. function:: idrac.log_mgr.get_logs() Get LC Logs
.. function:: idrac.log_mgr.get_logs_for_job(jobid) Get LC Logs for a given job. Requires Liason Share to be configure.
.. function:: idrac.log_mgr.get_logs_for_last_job() Get LC Logs for the last job. Requires Liason Share to be configure.
.. function:: idrac.log_mgr.get_sel_logs() Get SEL Logs
.. function:: idrac.log_mgr.lclog_export(myshare) Export LC Logs to Share
.. function:: idrac.log_mgr.lclog_export_async(myshare) Export LC Logs to Share asynchronously.
.. attribute:: idrac.license_mgr.LicensableDevices
.. function:: idrac.license_mgr.import_license(license_file, component, options) Import License for a given component from a local share.
.. function:: idrac.license_mgr.import_license_share(license_share_path, component, options) Import License from a remote share
.. function:: idrac.license_mgr.export_license(folder) Export license to a local folder
.. function:: idrac.license_mgr.export_license_share(license_share_path) Export license to a remote share
.. function:: idrac.license_mgr.delete_license(entitlementId, component, options) Delete a given license
.. function:: idrac.license_mgr.replace_license(license_file, entitlementId, component, options) Replace an existing license with the new one.
.. function:: idrac.update_mgr.get_swidentity() Get Software/Firmware Inventory
.. function:: idrac.update_mgr.save_invcollector_file(invcol_output_file) Save Inventory Collector Output file
.. function:: idrac.update_mgr.update_from_repo(myshare, catalog, apply_update, reboot_needed) Update from Repository and wait till the job is complete
.. function:: idrac.update_mgr.update_from_repo_async(myshare, catalog, apply_update, reboot_needed) Update from Repository and wait till the job is complete
.. function:: idrac.update_mgr.update_get_repolist() Get the Update Repo List
Provides APIs for listing, adding, modifying and removing Users local to iDRAC.
.. attribute:: idrac.user_mgr.Users Returns a JSON object containing list of all local users. For more details about the properties and values, refer to iDRAC Attribute Registry Guide You can create upto 16 local users. A sample response from the API is as follows:
[
{
"AuthenticationProtocol": "SHA",
"Enable": "Enabled",
"IpmiLanPrivilege": "Administrator",
"IpmiSerialPrivilege": "Administrator",
"PrivacyProtocol": "AES",
"Privilege": "511",
"ProtocolEnable": "Disabled",
"Slot": 2,
"SolEnable": "Enabled",
"UserName": "root"
},
{
"AuthenticationProtocol": "SHA",
"Enable": "Enabled",
"IpmiLanPrivilege": "Operator",
"IpmiSerialPrivilege": "User",
"PrivacyProtocol": "AES",
"Privilege": "511",
"ProtocolEnable": "Enabled",
"Slot": 5,
"SolEnable": "Enabled",
"UserName": "vaidees"
}
]
.. function:: idrac.user_mgr.create_user(username, password, user_privilege, others) This function creates a idrac local user. :param str username: Name of the local user :param str password: Password for the given user :param UserPrivilegeEnum: Privileges that need to be assiged to the user. User can be assigned as an Administrator, Operator, ReadOnly privileges or NoPrivilege at all. :param JSON others: Provides options for other capabilities (Serial On LAN, Protocol, IPMI LAN Privilege and IPMI over Serial privileges) :return: JSON Returns a json indicating whether the user was created successfully or not.
.. function:: idrac.user_mgr.change_password(username, old_password, new_password) This function creates a idrac local user. :param str username: Name of the local user :param str old_password: Old password for the given user :param str new_password: New password for the given user :return: JSON Returns a json indicating whether the password has been modified or not
.. function:: idrac.user_mgr.change_privilege(username, user_privilege, others) This function creates a idrac local user. :param str username: Name of the local user :param str user_privilege: New privileges that should be applied to user :param str others: Other privileges :return: JSON Returns a json indicating whether the privileges has been modified or not
.. function:: idrac.user_mgr.disable_user(username) This function disable a idrac local user. :param str username: Name of the local user :return: JSON Returns a json indicating whether user is disabled or not
.. function:: idrac.user_mgr.enable_user(username) This function enable a idrac local user. :param str username: Name of the local user :return: JSON Returns a json indicating whether user is enabled or not
.. function:: idrac.user_mgr.delete_user(username) This function delete a idrac local user. :param str username: Name of the local user :return: JSON Returns a json indicating whether user is deleted or not
Following are commands to perform miscellaneous tasks
.. function:: idrac.config_mgr.lc_wipe() Wipes out all the configuration and data. Useful command if you want to wipe content of physical disks before decommissioning the server.
.. function:: idrac.config_mgr.reset_idrac(force) Reset iDRAC
.. function:: idrac.config_mgr.reset_to_factory(preserve_config, force) Reset iDRAC to factory defaults
.. function:: idrac.config_mgr.export_tsr(tsr_store_path) Export Technical Service Report
.. function:: idrac.config_mgr.export_tsr_async(tsr_store_path) Export Technical Service Report
.. function:: idrac.config_mgr.factory_export(factory_details_path) Export Factory Details
.. function:: idrac.config_mgr.factory_export_async(factory_details_path) Export Factory Details
.. function:: idrac.config_mgr.inventory_export(inventory_details_path) Export iDRAC Inventory
.. function:: idrac.config_mgr.inventory_export_async(inventory_details_path) Export iDRAC Inventory Async
.. function:: idrac.config_mgr.configure_part_update(part_fw_update, part_config_update) Configure Part Firmware Updates