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); } } }
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; }
/// <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; }