Commit Graph

90 Commits

Author SHA1 Message Date
Sagar Nanda 1488d904e2 Set iDRACCard attributes as nullable
The iDRACCard attribute GroupID is empty for 15th Generation servers,
e.g., Dell EMC PowerEdge R750 and R650, which triggered the error
"attribute GroupID is not nullable".

A similar error message has been observed when processing the
iDRACCardInteger attributes LowerBound and UpperBound read
from a PowerEdge XE2420 server.

This change sets those attributes as nullable.

Change-Id: If34d96fab4249f466f63b3740d1ff5eb68012462
2021-12-15 13:05:14 +00:00
Aija Jauntēva d26664e7f9 Fix virtual disks sharing same physical disks
`StartingLBA` needs to be passed when creating virtual disks
sharing same physicial disks. Otherwise, only the first virtual
disk creation succeeds and iDRAC job has status "Completed
with Errors".

Change-Id: I985a714636fb2036cca038ffa281c1b1e01ffd52
2021-09-21 08:29:24 -04:00
Monica Pardhi 9ebc4afc84 Fix for H755 RAID controller when convert to JBOD
When converting Dell EMC PERC H755 RAID controller physical
disks to non-RAID mode, RAID-0 virtual disks get created
for each physical disk and disks moved to 'Online' state.

This is different from other controllers supporting non-RAID
conversion and takes up physical disks that cannot be
later used for user intended RAID configuration. This change
excludes H755 RAID controller's physical disks when converting
to non-RAID mode and leaves disks in 'Ready' state.

Change-Id: Id6de320c8e8a9ca21fac277718c405c657f58a3a
2021-09-20 11:45:00 +00:00
Zuul bad642bb13 Merge "Provide last system inventory time" 2020-09-25 15:09:04 +00:00
Yogesh Ramachandra a4c819e304 Provide last system inventory time
This change provides the time system inventory was last performed
by the iDRAC. That is done during system restart and referred to as
Collect System Inventory on Restart (CSIOR). The value is represented
in yyyymmddHHMMSS format.

Change-Id: I73ff5eb517528afe56b5cf45a74fa5d5519db186
Closes-Bug: #1894938
2020-09-25 09:28:56 -05:00
Mudit d341ab4b3c Add video enumeration to InventoryManagement
Change-Id: Ia14ae67fea9d69ba27ebd43f6043b817f6cc5eff
Closes-Bug: #1894940
2020-09-25 07:54:27 -04:00
Zuul e902ced872 Merge "Remove deprecated change phys disk state results" 2020-04-28 15:55:00 +00:00
Christopher Dearborn fef6ffa789 Remove deprecated change phys disk state results
Remove the deprecated is_reboot_required and commit_required_ids keys
from the results returned by the change_physical_disk_state method.

Change-Id: I0899597d2aa82d8075ce1c6be33968d992b17c84
2020-04-28 09:56:41 -04:00
Sean McGinnis 1f2b0ed263
Use unittest.mock instead of third party mock
Now that we no longer support py27, we can use the standard library
unittest.mock module instead of the third party mock lib.

Change-Id: I1e30d77b7ca98c08ec8c42a18df863b202525418
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
2020-04-28 07:46:23 -05:00
Rachit7194 05ff2ec7a3 Fix for read-only and unchanged attributes
This patch fixes the set_settings() in which if
any attribute is read-only and unchanged, it will be
considered as readonly attribute and not unchanged attribute.

Change-Id: I530f1c2f1b8d91f996b91fa0a5f0535ddcfa76e6
2020-04-24 16:51:42 -04:00
mpardhi23 c3bb9606aa Add the ability to manage RAID settings
This patch adds the ability to get and set the settings for RAID
settings.

Change-Id: Ifc63ca7d9a30378e75b160739b709a1264ffe550
2020-04-02 15:21:05 -04:00
Rachit7194 719a7d81f8 Added ``bus`` attribute to PhysicalDisks for NVMe drives
This patch adds `bus` attribute to PhysicalDisks so clients
can determine the PCI bus ID of NVMe drives.

Change-Id: I9b6b88826b9902a059e1bf537e51d9f97c9389ba
2020-02-14 01:54:22 -05:00
Rachit7194 01e7ca19ce Fix parsing for virtual disk RAIDStatus attribute
This patch changes the parsing of virtual disks so
that if the DCIM_VirutalDiskView.RAIDStatus attribute
is not present then DCIM_VirutalDiskView.RaidStatus
will be used instead.
This is needed due to the attribute being renamed in
LCC version 4.0.0

Change-Id: I4ca1b7f6df47ce808920b5e24ad0be6b76963917
2020-01-30 00:12:51 -05:00
Rachit7194 8394938d2f Fix for clear_foreign_config() unsupported on some controllers
iDRAC driver fails to clear foreign drives on some controllers
and returns  message_id ``STOR058`` which means controllers does
not support clear_foreign_config operation.

Change-Id: I7df2d30242e7a490dfdce04d7f6ce98c68e9f0ed
2019-09-12 10:52:35 -04:00
mpardhi23 ceef78a938 Take Lifecycle Controller out of recovery mode
This patch is to check if a node is in recovery mode and take it
out of recovery mode by setting LifecycleControllerState attribute
value to 'Enabled'.

Modified list_lifecycle_settings() method to use
utils.list_settings() for retrieving lifecycle settings.

Change-Id: I4287f317b2413b70cd00fd4cf8aa69bff6ae5e2f
2019-06-17 04:52:24 -04:00
Zuul a34705b1bb Merge "Add realtime support to drive conversion" 2019-05-10 17:40:28 +00:00
Christopher Dearborn ff312640d8 Add realtime support to drive conversion
This patch updates change_physical_disk_state() so that it returns the
actual results of drive conversion on each controller.  This allows the
caller to use the returned information for realtime drive conversion.

This patch also deprecates returning the is_reboot_required and
commit_required_ids keys in the dictionary.

Change-Id: I10f4a44660e70f0cd8efd0ca9e8e96cb46751a61
2019-05-09 14:38:12 -04:00
mpardhi23 8eec25c00d clear_foreign_config() succeeds if no foreign disk
When clear_foreign_config() does not detect a foreign disk, instead
of failing and raising an exception, it succeeds and returns a value
which informs the caller nothing further needs to be done.

Change-Id: I4cea95659db11747b1c8708e1dbe7cac53c0eaf9
2019-05-02 04:12:23 -04:00
Christopher Dearborn caff41164f Consider a BOSS card a RAID controller
This fixes the is_raid_controller method so that it returns true
for a BOSS controller in addition to normal RAID controllers.

Change-Id: Iedd3179b8b2b6e3815709cc1acfd6a3059e42399
2019-04-23 09:42:58 -04:00
mpardhi23 6857a6d000 Implement ResetConfig and ClearForeignConfig functionality
For raid deletion, existing delete_virtual_disk functionality is not
freeing up foreign drives and spares, so have added ResetConfig and
ClearForeignConfig functionality for freeing up foreign drives and
spares.

Change-Id: I76390dc4fcf8de2fe5aa3d660f77edcef4a4dec1
2019-04-16 04:38:19 +00:00
Zuul 45569a427f Merge "Add a real-time option when commit RAID creation/deletion in python-dracclient." 2019-01-31 17:05:07 +00:00
digambar 9069b1e416 Add a real-time option when commit RAID creation/deletion
in python-dracclient.

Change-Id: I3ada0e51235941620c9f27796da9790a182fb0e4
2019-01-31 10:32:00 +00:00
Zuul 82480155bf Merge "Fixes problem in is_boss_controller function" 2019-01-24 12:31:03 +00:00
David Paterson 5ec4f3dc1f Fixes problem in is_boss_controller function
We need to make sure we check model name of controller
starts with "BOSS"

Change-Id: I0b8608bad4ffc1f6c5bcf5ae36d9c0c76478260b
2019-01-21 17:20:01 -06:00
Rachit7194 e177d47521 Remove deprecated commit_required parameter from python-dracclient
Change-Id: Ic37afe82d6b98433ee60142ed3ee429c48de727d
2019-01-08 05:12:02 -05:00
David Paterson bef7a0a8ce Add change_physical_disk_state function to client
Build a list of controllers which had disks converted
to or from RAID/JBOD and inidicate if a reboot is required.

The following steps allow the caller to retrieve a list of
controllers that have disks comverted to the specified
RAID status:
- Examine all disks in the system and filter out any that
are not attached to a RAID/BOSS controller.
- Inspect the controllers' disks to see if there are
disks that need to be converted. If a disk is already in
the desired status the disk is ignored, otherwise
it is converted. This function also handles failed or
unknown disk status appropriately and will raise exception(s)
where needed.
- Finally a dict is returned containing a list of controller
IDs for controllers whom had any of their disks converted,
and whether a reboot is required.

Typically the caller would then create a config job for the
list of controllers returned to finalize the RAID
configuration and reboot the node if necessary.

Change-Id: I5229f7699c9ca1d5b72a54b4ddcea6313b440836
Co-Authored-By: Christopher Dearborn <Christopher.Dearborn@dell.com>
2018-10-19 18:43:44 -04:00
Zuul f823194b2e Merge "Adds ability to reset iDRAC" 2018-10-05 16:26:55 +00:00
Mark Beierl 88023841ef Adds ability to reset iDRAC
Adds new function to reset the iDRAC and wait for it
to become operational again.

Change-Id: Ia8dc0b97e02fc5f2c4d39b6b6d90456c1cfc5b7a
Co-Authored-By: Christopher Dearborn <christopher.dearborn@dell.com>
2018-09-27 20:03:05 -04:00
digambar 1baaadf7f2 Add UUID to System object in python-dracclient
Change-Id: I322d07f425470c585db950ef27cd4b9364eff71c
2018-09-27 05:09:41 -05:00
Zuul 63e193a1c5 Merge "Fix CPU count returned by introspection in Ironic iDRAC driver" 2018-09-06 17:17:56 +00:00
jainprasuk1996 92e4ba4c2b Fix CPU count returned by introspection in Ironic iDRAC driver
Change-Id: Id8ff61f7f2fb2c24af64f38f6cf34e5b6d66182c
2018-09-06 06:49:16 -05:00
Zuul 01858e0d41 Merge "Add support for NIC configuration" 2018-08-11 12:57:23 +00:00
Zuul 589ee04c83 Merge "Added is_jbod_capable method to raid resource" 2018-08-11 12:50:53 +00:00
Zuul ee12ec65e7 Merge "Delete Job API" 2018-08-11 12:50:53 +00:00
digambar 0960fba23a Add ability to retrieve system properties
Change-Id: I7ae6efb913895c86aab838481b6025c8a17a42ee
2018-08-10 05:34:28 -05:00
Mark Beierl 96fa6965db Delete Job API
Adds the ability to delete jobs from the iDRAC job queue.

Change-Id: I0e34cc850b968533782af45ef6e61206a3f04949
Co-Authored-By: Richard G. Pioso <richard.pioso@dell.com>
2018-08-08 09:21:28 -04:00
Zuul e68dacb1d6 Merge "Add ability to schedule jobs" 2018-08-01 19:54:27 +00:00
Mark Beierl 8836c0dedf Add support for NIC configuration
Adds APIs that support listing and setting NIC attributes
by name.

Change-Id: Ie836a3603b6bb49e3f296c10147d58ae745c3f6b
Co-Authored-By: Richard G. Pioso <richard.pioso@dell.com>
2018-07-27 15:48:07 -04:00
Christopher Dearborn 0de8b41768 Filter out non-ASCII characters on invalid UTF8
When an enumerate is done, it is possible that the iDRAC may return
invalid UTF8 that contains non-ASCII characters.  This causes an
XMLSyntaxError to be thrown.  This fix detects that situation and
filters out all non-ASCII characters to bypass the error.

See the following bug for further details:
https://bugs.launchpad.net/python-dracclient/+bug/1779412

Closes-Bug: #1779412
Change-Id: I5003785dee922920dcdd95c8d7e2a26e0bf97a7d
2018-07-09 17:40:52 -04:00
Mark Beierl dcf4e2d280 Add ability to schedule jobs
Adds an optional start time to allow configuration changes
to be scheduled for a future time.

Co-Authored-By: Christopher Dearborn <christopher.dearborn@dell.com>
Co-Authored-By: Richard G. Pioso <richard.pioso@dell.com>
Change-Id: Ia1f02fd2f8a25efa8bb924bd9d50394cbf5d2034
2018-07-06 15:27:46 -04:00
David Paterson 1d203354a2 Added is_jbod_capable method to raid resource
Some RAID controllers support JBOD (passthrough) mode, while others do not.
This method determines if the passed RAID controller supports JBOD mode.
Note: that the controller must have at least one disk in the non-RAID or ready
state, or this method will be unable to determine if the RAID controller
supports JBOD mode, and an exception will be thrown.

Co-Authored-By: Christopher Dearborn <Christopher.Dearborn@dell.com>
Change-Id: I62d8f92197faf6a6b4fe8a72da5c1a6a79d2af82
2018-06-29 11:20:09 -04:00
Christopher Dearborn 413bfce123 Adds support for Dell BOSS card RAID1 creation
The Dell BOSS card requires that 0 be passed for the RAID 1 size_gb for
the RAID creation to be successful.  This change causes the code to
treat a size of 0 as valid so the BOSS RAID 1 can be created.

Change-Id: Id149f6250318e6162a168d002671faa2b3a7989b
Task: #22082
Story: #2002536
Co-Authored-By: Digambar Patil <digambarpat@gmail.com>
2018-06-19 14:34:16 -04:00
Zuul a8ef5bfb6a Merge "Added support for PCIe drives" 2018-03-26 17:38:20 +00:00
Christopher Dearborn 521240195e Added support for PCIe drives
This patch adds support for PCIe drives.

Change-Id: Ib0a2f0f71d98c9945c1333db2f06584088e4e385
2018-03-23 13:39:43 -04:00
Zuul 7626bcc857 Merge "Add ability to set iDRAC card settings" 2018-02-19 12:03:36 +00:00
Zuul 0c168ee6ec Merge "Separate reboot required from commit required" 2018-02-19 11:58:45 +00:00
Christopher Dearborn b327b0811f Add ability to set iDRAC card settings
This patch adds the ability to set iDRAC card settings.

Change-Id: I117e5ed0af1469dc316a30abcfa384d3c773ed1f
2018-02-08 10:13:35 -05:00
Christopher Dearborn 72ea2323e5 Separate reboot required from commit required
This patch separates indicators for reboot required and commit required.
It does this by adding two new keys (is_reboot_required and
is_commit_required) to the dictionary returned by set/create/modify
operations while continuing to return the commit_required key for
backwards compatibility.

The commit_required key should be considered deprecated at this time and
it will be removed in a future patch.

The is_reboot_required key has an enumerated value that can have three
possible values: true, optional, and false.  This allows the return of
optional for RAID operations that can return this value.

Change-Id: I70e52868f10bfafb30bbb38b85888bc4ec8e65ae
Closes-Bug: 1732549
2018-01-22 09:36:53 -05:00
Christopher Dearborn aca79f0e8c Allow invoke without checking the return value
Some versions of firmware for at least 13G hardware can return a
failure return value and a message indicating success on certain
invoke calls.  This patch modifies invoke so that it can be used to
execute the invoke command and return the result without raising an
exception if the return value indicates a failure.  This allows the
caller to inspect the returned message to determine success or failure.

Change-Id: I85a1d234d17ae601ed984109c8aa668aaf86eae2
2018-01-11 16:00:38 -05:00
Jenkins 5e9b27ee97 Merge "Report bus in controllers" 2017-10-10 16:21:53 +00:00