/// <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);
                    }
                }
            }
        }
コード例 #2
0
        /// <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);
        }