/// <summary> /// Method removes DPC from powered on servers /// </summary> private static void RemoveAllBladeDpc() { for (int bladeIndex = 0; bladeIndex < ConfigLoaded.Population; bladeIndex++) { byte bladeId = (byte)(bladeIndex + 1); if (ChassisState.BladePower[bladeIndex].GetCachedBladePowerState().BladePowerState == 0x01) // PowerState.On { // Spec 1.86 adds optimization there by current state of PsuAlert // does not need to be queried to disable PsuAlert psuAlert = WcsBladeFacade.GetPsuAlert(bladeId); if (psuAlert.CompletionCode == 0x00) { BmcPsuAlertAction bmcAction = BmcPsuAlertAction.DpcOnly; if (psuAlert.BmcProchotEnabled) { bmcAction = BmcPsuAlertAction.ProcHotAndDpc; } // disable DPC. WcsBladeFacade.ActivatePsuAlert(bladeId, psuAlert.AutoProchotEnabled, bmcAction, true); } } } }
/// <summary> /// Get Psu Alert /// </summary> public virtual PsuAlert GetPsuAlert() { GetPsuAlertResponse psuAlert = (GetPsuAlertResponse)this.IpmiSendReceive( new GetPsuAlertRequest(), typeof(GetPsuAlertResponse)); PsuAlert response = new PsuAlert(psuAlert.CompletionCode); if (response.CompletionCode == 0x00) { response.SetParamaters(psuAlert.PsuAlertGpi, psuAlert.AutoProchotEnabled, psuAlert.BmcProchotEnabled); } return(response); }