internal override void commandImplementation()
        {
            uint sledId = 1;
            BladePowerLimitResponse myResponse = new BladePowerLimitResponse();
            GetAllBladesPowerLimitResponse myResponses = new GetAllBladesPowerLimitResponse();
            try
            {
                if (this.argVal.ContainsKey('a'))
                {
                    myResponses = WcsCli2CmConnectionManager.channel.GetAllBladesPowerLimit();
                }
                else if (this.argVal.ContainsKey('i'))
                {
                    dynamic mySledId = null;
                    this.argVal.TryGetValue('i', out mySledId);
                    sledId = (uint)mySledId;
                    myResponse = WcsCli2CmConnectionManager.channel.GetBladePowerLimit((int)mySledId);
                }
            }
            catch (Exception ex)
            {
                SharedFunc.ExceptionOutput(ex);
                return;
            }

            if ((this.argVal.ContainsKey('a') && myResponses == null) || myResponse == null)
            {
                Console.WriteLine(WcsCliConstants.serviceResponseEmpty);
                return;
            }

            if (this.argVal.ContainsKey('a'))
            {
                for (int index = 0; index < myResponses.bladePowerLimitCollection.Count(); index++)
                {
                    if (ResponseValidation.ValidateBladeResponse(myResponses.bladePowerLimitCollection[index].bladeNumber, null, myResponses.bladePowerLimitCollection[index], false))
                    {
                        string activeStr = (myResponses.bladePowerLimitCollection[index].isPowerLimitActive)? ", Active." : ", Not active.";
                        Console.WriteLine(WcsCliConstants.commandSuccess + "Blade " + myResponses.bladePowerLimitCollection[index].bladeNumber + ": Power Limit: "
                            + myResponses.bladePowerLimitCollection[index].powerLimit + " Watts" + activeStr);
                    }
                }
            }
            else
            {
                if (ResponseValidation.ValidateBladeResponse(myResponse.bladeNumber, null, myResponse, false))
                {
                    string activeStr = (myResponse.isPowerLimitActive) ? ", Active." : ", Not active.";
                    Console.WriteLine(WcsCliConstants.commandSuccess + "Blade " + myResponse.bladeNumber + ": Power Limit: "
                        + myResponse.powerLimit + " Watts" + activeStr);
                }
            }
        }
예제 #2
0
        internal override void commandImplementation()
        {
            uint sledId = 1;
            BladePowerLimitResponse myResponse = new BladePowerLimitResponse();
            GetAllBladesPowerLimitResponse myResponses = new GetAllBladesPowerLimitResponse();
            try
            {
                if (this.argVal.ContainsKey('a'))
                {
                    myResponses = WcsCli2CmConnectionManager.channel.GetAllBladesPowerLimit();
                }
                else if (this.argVal.ContainsKey('i'))
                {
                    dynamic mySledId = null;
                    this.argVal.TryGetValue('i', out mySledId);
                    sledId = (uint)mySledId;
                    myResponse = WcsCli2CmConnectionManager.channel.GetBladePowerLimit((int)mySledId);
                }
            }
            catch (Exception ex)
            {
                SharedFunc.ExceptionOutput(ex);
                return;
            }

            if ((this.argVal.ContainsKey('a') && myResponses == null) || myResponse == null)
            {
                Console.WriteLine(WcsCliConstants.serviceResponseEmpty);
                return;
            }

            if (this.argVal.ContainsKey('a'))
            {
                for (int index = 0; index < myResponses.bladePowerLimitCollection.Count(); index++)
                {
                    if (myResponses.bladePowerLimitCollection[index].completionCode == Contracts.CompletionCode.Success)
                    {
                        Console.WriteLine("Blade Power Limit" + myResponses.bladePowerLimitCollection[index].bladeNumber + ": " + myResponses.bladePowerLimitCollection[index].powerLimit + " Watts");
                    }
                    else if (myResponses.bladePowerLimitCollection[index].completionCode == Contracts.CompletionCode.Unknown)
                    {
                        Console.WriteLine("Blade " + myResponses.bladePowerLimitCollection[index].bladeNumber + ": " + WcsCliConstants.bladeStateUnknown);
                    }
                    else
                    {
                        // Display error if other than success/unknown
                        Console.WriteLine("Blade Power Limit for blade " + myResponses.bladePowerLimitCollection[index].bladeNumber + " failed with completion code: " + myResponses.bladePowerLimitCollection[index].completionCode.ToString());
                    }
                }
            }
            else
            {
                if (myResponse.completionCode == Contracts.CompletionCode.Success)
                {
                    Console.WriteLine("Blade Power Limit" + myResponse.bladeNumber + ": " + myResponse.powerLimit + " Watts");
                }
                else if (myResponse.completionCode == Contracts.CompletionCode.Unknown)
                {
                    Console.WriteLine("Blade " + myResponse.bladeNumber + ": " + WcsCliConstants.bladeStateUnknown);
                }
                else
                {
                    // Display error if other than success/unknown
                    Console.WriteLine("Blade Power Limit " + myResponse.bladeNumber + ": " + myResponse.completionCode.ToString());
                }
            }
        }
        /// <summary>
        /// Get blade power limit for specified blade
        /// </summary>
        /// <param name="bladeId">Blade ID(1-48)</param>
        /// <returns>Blade response containing the blade power limit value</returns>
        public BladePowerLimitResponse GetBladePowerLimit(int bladeId)
        {
            Tracer.WriteUserLog("Invoked GetBladePowerLimit(bladeId: {0})", bladeId);

            BladePowerLimitResponse response = new BladePowerLimitResponse();
            response.bladeNumber = bladeId;
            response.powerLimit = -1;

            response.completionCode = Contracts.CompletionCode.Unknown;
            response.statusDescription = String.Empty;

            Contracts.ChassisResponse varResponse = ValidateRequest("GetBladePowerLimit", bladeId);
            if (varResponse.completionCode != Contracts.CompletionCode.Success)
            {
                response.completionCode = varResponse.completionCode;
                response.statusDescription = varResponse.statusDescription;
                return response;
            }

            Ipmi.PowerLimit myPowerLimit = WcsBladeFacade.GetPowerLimit((byte)(bladeId));

            if (myPowerLimit == null) // If the return packet is null, then return with failure
            {
                Tracer.WriteError("GetBladePowerLimit failed for blade({0}) with Unspecified Error.", bladeId);
                response.completionCode = Contracts.CompletionCode.Failure;
                response.statusDescription = response.completionCode.ToString();
            }
            else if (myPowerLimit.CompletionCode != (byte)CompletionCode.Success)
            {
                Tracer.WriteError("GetBladePowerLimit failed for blade({0}) with CompletionCode({1})", bladeId, myPowerLimit.CompletionCode);
                response.completionCode = Contracts.CompletionCode.Failure;
                response.statusDescription = response.completionCode.ToString();
            }
            else // Both active and inactive power limit will reach this code
            {
                response.completionCode = Contracts.CompletionCode.Success;
                response.isPowerLimitActive = (bool)myPowerLimit.ActiveLimit;
                response.powerLimit = (double)myPowerLimit.LimitValue;
                Tracer.WriteInfo("GetBladePowerLimit(" + bladeId + "):" + " CC: " + myPowerLimit.CompletionCode + " LimitVal: " + myPowerLimit.LimitValue + " Active: " + myPowerLimit.ActiveLimit);
            }
            return response;
        }
예제 #4
0
        /// <summary>
        /// Get blade power limit for specified blade
        /// </summary>
        /// <param name="bladeId">Blade ID(1-48)</param>
        /// <returns>Blade response containing the blade power limit value</returns>
        public BladePowerLimitResponse GetBladePowerLimit(int bladeId)
        {
            Tracer.WriteUserLog("Invoked GetBladePowerLimit(bladeId : {0})", bladeId);

            BladePowerLimitResponse response = new BladePowerLimitResponse();
            response.bladeNumber = bladeId;
            response.powerLimit = -1;

            response.completionCode = Contracts.CompletionCode.Unknown;
            response.statusDescription = String.Empty;

            Contracts.ChassisResponse varResponse = ValidateRequest("GetBladePowerLimit", bladeId);
            if (varResponse.completionCode != Contracts.CompletionCode.Success)
            {
                response.completionCode = varResponse.completionCode;
                response.statusDescription = varResponse.statusDescription;
                return response;
            }

            Ipmi.PowerLimit myPowerLimit = WcsBladeFacade.GetPowerLimit((byte)(bladeId));
            Tracer.WriteInfo("GetPowerLimit(" + bladeId + "):" + " CC: " + myPowerLimit.CompletionCode + " LimitVal: " + myPowerLimit.LimitValue + " Active: " + myPowerLimit.ActiveLimit);
            if (myPowerLimit.CompletionCode != (byte)CompletionCode.Success)
            {
                Tracer.WriteError("GetBladePowerLimit failed for blade({0}) with CompletionCode({1})", bladeId, myPowerLimit.CompletionCode);
                response.completionCode = Contracts.CompletionCode.Failure;
                response.statusDescription = response.completionCode.ToString();
                return response;
            }
            response.powerLimit = (double)myPowerLimit.LimitValue;
            response.completionCode = Contracts.CompletionCode.Success;

            return response;
        }