September 19th, 2012 10:00

Hello Tim,

Can you confirm if "Collecting System Inventory on Restart" or CSIOR is Enabled on the iDRAC? This ensures that inventory is performed during POST so that the iDRAC database is kept in sync with the actual server settings.

You can check the value in Ctrl-E during POST or remotely using the following command:-

winrm enumerate "cimv2/root/dcim/DCIM_LCEnumeration" -r:https://[IPADDRESS]:443/wsman -u:[USERNAME] -p:[PASSWORD] -SkipCNcheck -SkipCAcheck -SkipRevocationCheck -encoding:utf-8 -a:basic

DCIM_LCEnumeration

 AttributeName = Collect System Inventory on Restart

 Caption

 CurrentValue = Disabled

 DefaultValue = Disabled

 Description

 ElementName = LC.emb.1

 InstanceID = DCIM_LCEnumeration:CCR5

 IsOrderedList

 IsReadOnly = false

 PendingValue

 PossibleValues = Enabled

 PossibleValues = Disabled

 PossibleValuesDescription

Best regards,

Ganesh

8 Posts

September 19th, 2012 11:00

Thank you for your suggestions, but on all the systems that parameter is in Disabled state. I will try to switch it on.

8 Posts

September 19th, 2012 11:00

Thank you for your suggestions, but on all the systems that parameter is in Disabled state. I will try to switch it on.

8 Posts

September 19th, 2012 11:00

DCIM_LCEnumeration

   AttributeName = Collect System Inventory on Restart

   Caption = null

   CurrentValue = Disabled

   DefaultValue = Disabled

   Description = null

   ElementName = LC.emb.1

   InstanceID = DCIM_LCEnumeration:CCR5

   IsOrderedList = null

   IsReadOnly = false

   PendingValue = null

   PossibleValues = Enabled, Disabled

   PossibleValuesDescription = null

September 19th, 2012 12:00

Hello Tim,

All 11G servers ship with CSIOR disabled by default whereas it is default enabled on the new 12G servers.

Enabling CSIOR remotely requires the following steps:-

- SetAttribute() on DCIM_LCService

- CreateTargetedConfigJob() on DCIM_LCService

- Check the job ID returned in the previous call - Get on DCIM_LifecycleJob

- Enumerate CSIOR again and check current value

Once you set the value, you need to reboot the server so that CSIOR can run and reinventory the system. Once that is completed, the iDRAC will have the up to date server inventory.

Applying this across multiple systems will be easier using a tool such as Recite which can be found here:-

 http://dell.to/recite-wsman

Here's a simple Recite script to do the above steps:-

--- START ---

# New value for CSIOR

$csior=Enabled

# Enumerate the DCIM_LCEnumeration class

GetLCEnumerations

# Get current value of CSIOR

Context AttributeName="Collect System Inventory on Restart" Find CurrentValue $cid

# If it is already set to the required value, go to End

If $cid=$csior Goto End

# Set value as required

SetLCAttribute AttributeName="Collect System Inventory on Restart" AttributeValue=$csior

# Create job to commit value

CreateLCConfigJob RebootIfRequired=true

# Get the job ID returned

Find InstanceID $jid

# Poll job until it goes into the COMPLETED state

Until JobStatus=COMPLETED GetLifecycleJob InstanceID=$jid

# Delete job on completion

DeleteJobQueue JobID=$jid

# Check value got set

GetLCEnumerations

Context AttributeName="Collect System Inventory on Restart" Find CurrentValue=$csior

:End

--- END ---

Please let us know if you need any further help with this issue.

Best regards,

Ganesh

8 Posts

September 19th, 2012 23:00

I run the script with my credentials and have set the value into Enabled state.

DCIM_LCEnumeration

   AttributeName = Collect System Inventory on Restart

   Caption = null

   CurrentValue = Enabled

   DefaultValue = Disabled

   Description = null

   ElementName = LC.emb.1

   InstanceID = DCIM_LCEnumeration:CCR5

   IsOrderedList = null

   IsReadOnly = false

   PendingValue = null

   PossibleValues = Enabled, Disabled

   PossibleValuesDescription = null

It didn't help, so I perform a manual cold reboot from iDRAC console manager, and it helps!

September 20th, 2012 07:00

Hello Tim,

Glad you got it working. Yes, just turning on CSIOR is not sufficient. The server needs to be rebooted in order to collect inventory and update the iDRAC database.

Rebooting the host can be done via WS-Man. You can do this using Recite as well:-

RequestStateChange RequestedState=11

Best regards,

Ganesh

8 Posts

September 20th, 2012 08:00

Hi, Ganesh,

I have one more question. For example, I want to change "ProcC1E" state to Disabled with Recite help. So I wrote a script following your example above:

.........

GetBIOSEnumerations

Context AttributeName="ProcC1E" Find CurrentValue $cid

If $cid=$csior Goto End

## Am I right with the target name? I am not sure:

SetBIOSAttribute Target=BIOS.Setup.1-1 AttributeName="ProcC1E" AttributeValue=$csior

## What are reboot types which I can use?

CreateBIOSConfigJob Target=BIOS.Setup.1-1 RebootJobType=3

Find InstanceID $jid

Until JobStatus=COMPLETED GetLifecycleJob InstanceID=$jid

DeleteJobQueue JobID=$jid

GetBIOSEnumerations

Context AttributeName="ProcC1E" Find CurrentValue=$csior

:End

Unfortunately, the job is freezing and the attribute didn't change:

=====

DCIM_LifecycleJob

 InstanceID = JID_001348144480

 JobStartTime = NULL

 JobStatus = Ready For Execution

 JobUntilTime = TIME_NA

 Message = NA

 MessageID = NA

 Name = ConfigBIOS:BIOS.Setup.1-1

 PercentComplete = NA

 Until: JobStatus != COMPLETED  [['Ready For Execution']]

============

Where is my mistake?

Thanks,

Tim

8 Posts

September 20th, 2012 11:00

Thank you for the details! This is a new verion of the script:

$csior=Disabled

GetBIOSEnumerations

Context AttributeName=ProcC1E Find CurrentValue $cid

If $cid=$csior Goto End

SetBIOSAttribute Target=BIOS.Setup.1-1 AttributeName=ProcC1E AttributeValue=$csior

CreateBIOSConfigJob Target=BIOS.Setup.1-1 RebootJobType=3 ScheduledStartTime=TIME_NOW

Find InstanceID $jid

Until JobStatus=Completed GetLifecycleJob InstanceID=$jid

DeleteJobQueue JobID=$jid

Until Status=Ready GetRSStatus

GetBIOSEnumerations

Context AttributeName=ProcC1E Find CurrentValue $csior

:End

 

Is it seems to be correct?

September 20th, 2012 11:00

Hey Tim,

RebootJobTypes are documented in the MOFs as well as profiles. Both are accessible from http://delltechcenter.com/lc.

From DCIM_BIOSService.mof, you see the following:

[IN, Description( "Input Parameter represents the type of Reboot " "1 - PowerCycle " "2 - Graceful Reboot without forced shutdown " "3 - Graceful Reboot with forced shutdown. ")] uint16 RebootJobType,
The reason your job isn't running is because you haven't specified when to run it when you create it. You need to specify the ScheduledStartTime in the CreateBIOSConfigJob() call. TIME_NOW usually works best.
[IN, Description( "Start Time of job in datetime format:yyyymmddhhmmss. " "The string \"TIME_NOW\" means immediate.")] string ScheduledStartTime,
Next, JobStatus = COMPLETED only for LCService jobs. It needs to be Completed (case sensitive) for all other jobs. This is fixed in the latest versions of LC though.
Lastly, LC settings like CSIOR are committed almost immediately, whereas BIOS settings need the server to reboot and apply settings. Next, CSIOR needs to run in order to pick up the new settings. Further, on 11G, you need to wait until the iDRAC database is refreshed with this new inventory information. This last step can be achieved by polling the RSStatus. This can be done using Recite as follows:-
Until Status=Ready GetRSStatus
Hope this helps.
Best regards,
Ganesh

September 20th, 2012 12:00

Looks good, except the GetRSStatus check should happen before you delete the job.

Best regards,

Ganesh

8 Posts

September 21st, 2012 06:00

Yep, it works finally. Thanks a lot for assitance!

No Events found!

Top