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
`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
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
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
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
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>
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
This patch adds `bus` attribute to PhysicalDisks so clients
can determine the PCI bus ID of NVMe drives.
Change-Id: I9b6b88826b9902a059e1bf537e51d9f97c9389ba
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
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
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
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
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
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
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
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>
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>
Adds the ability to delete jobs from the iDRAC job queue.
Change-Id: I0e34cc850b968533782af45ef6e61206a3f04949
Co-Authored-By: Richard G. Pioso <richard.pioso@dell.com>
Adds APIs that support listing and setting NIC attributes
by name.
Change-Id: Ie836a3603b6bb49e3f296c10147d58ae745c3f6b
Co-Authored-By: Richard G. Pioso <richard.pioso@dell.com>
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
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
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
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>
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
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