dell / iDRAC-Redfish-Scripting

Python and PowerShell scripting for Dell EMC PowerEdge iDRAC REST API with DMTF Redfish
GNU General Public License v2.0
609 stars 279 forks source link

Invoke-InstallFromRepositoryOemREDFISH.psm1 -RebootNeeded False Hangs script? #161

Closed jahedges-tp closed 3 years ago

jahedges-tp commented 3 years ago

Hey Tex,

If I use the switch noted in the title (default btw) the script is stuck waiting for completed on job status, but if we're specifying no reboot is needed and BIOS update is scheduled, this could go on for a long time.

My thought: If no reboot is specified we should only check that job was created/scheduled and nothing more.

As always, thanks for this awesome repo, I have deployed so many machines much more effectively.

texroemer commented 3 years ago

Hi @jahedges-tp

Thanks for pointing out this bug, cmdlet has been fixed (example below) and new version uploaded.

PS C:\> Invoke-InstallFromRepositoryOemREDFISH -idrac_ip 192.168.0.120 -idrac_username root -idrac_password calvin -install_from_repository y -ShareName /nfs/repo_R640 -ShareType NFS -network_share_IPAddress 192.168.0.130 -RebootNeeded False                                                                                                                                                                                                                                              - INFO, arguments and values passed in for Action 'DellSoftwareInstallationService.InstallFromRepository'

Name                           Value
----                           -----
ShareType                      NFS
ShareName                      /nfs/repo_R640
RebootNeeded                   False
IPAddress                      192.168.0.130

- PASS, POST command passed for OEM Action 'InstallFromRepository', status code 202 returned
- PASS, repository job ID 'JID_152295424501' successfully created, cmdlet will loop checking the job status until marked completed

- INFO, repository package successfully downloaded. If firmware version difference detected for any device, update job ID will get created

- INFO, repository job ID JID_152295424501 not marked completed, current status: Package successfully downloaded.
- INFO, repository job ID JID_152295424501 not marked completed, current status: Package successfully downloaded.

- PASS, JID_152295424501 job ID marked as completed!

- Detailed final job status results:

@odata.context          : /redfish/v1/$metadata#DellJob.DellJob
@odata.id               : /redfish/v1/Managers/iDRAC.Embedded.1/Oem/Dell/Jobs/JID_152295424501
@odata.type             : #DellJob.v1_1_0.DellJob
ActualRunningStartTime  :
ActualRunningStopTime   :
CompletionTime          : 2021-03-08T12:52:50
Description             : Job Instance
EndTime                 :
Id                      : JID_152295424501
JobState                : Completed
JobType                 : RepositoryUpdate
Message                 : Job completed successfully.
MessageArgs             : {NA}
MessageArgs@odata.count : 1
MessageId               : RED001
Name                    : Repository Update
PercentComplete         : 100
StartTime               : 2021-03-08T12:52:22
TargetSettingsURI       :

- INFO, 'RebootNeeded' argument set to False or missing, no reboot executed. Check overall Job Queue for status of update jobs using 'get_job_queue' argument. If any job ID(s) are marked as scheduled, these will execute on next server manual reboot.

PS C:\>