/// <summary> /// Get PSU ALERT Default Power Cap /// </summary> public BladePsuAlertDpcResponse GetBladePsuAlertDefaultPowerCap(int bladeId) { BladePsuAlertDpcResponse response = new BladePsuAlertDpcResponse(); response.bladeNumber = bladeId; response.completionCode = Contracts.CompletionCode.Unknown; response.statusDescription = String.Empty; Tracer.WriteUserLog("Invoked GetBladePsuAlertDefaultPowerCap({0})", bladeId); Tracer.WriteInfo("Received GetBladePsuAlertDefaultPowerCap({0})", bladeId); if (!ConfigLoaded.PowerAlertDrivenPowerCapAPIsEnabled) { Tracer.WriteInfo("GetBladePsuAlertDefaultPowerCap: User requested API not enabled in app.config"); response.completionCode = Contracts.CompletionCode.CommandNotValidAtThisTime; response.statusDescription = "PSU alert driven power cap commands are not enabled for this blade"; return response; } Contracts.ChassisResponse varResponse = ValidateRequest("GetBladePsuAlertDefaultPowerCap", bladeId); if (varResponse.completionCode != Contracts.CompletionCode.Success) { response.completionCode = varResponse.completionCode; response.statusDescription = varResponse.statusDescription; return response; } BladePsuAlertDpcResponse dpcResponse = GetPsuAlertDefaultPowerCap(bladeId); // Assign response and map completion code response = dpcResponse; response.completionCode = ChassisManagerUtil.GetContractsCompletionCodeMapping((byte)dpcResponse.completionCode); response.statusDescription = response.completionCode.ToString(); return response; }
/// <summary> /// Get PSU ALERT Default Power Cap /// </summary> private BladePsuAlertDpcResponse GetPsuAlertDefaultPowerCap(int bladeId) { BladePsuAlertDpcResponse response = new BladePsuAlertDpcResponse(); response.bladeNumber = bladeId; response.completionCode = Contracts.CompletionCode.Unknown; response.statusDescription = String.Empty; Tracer.WriteUserLog("Invoked GetBladePsuAlertDefaultPowerCap({0})", bladeId); Tracer.WriteInfo("Received GetBladePsuAlertDefaultPowerCap({0})", bladeId); // Issue IPMI command Ipmi.DefaultPowerLimit dpc = WcsBladeFacade.GetDefaultPowerCap((byte)bladeId); if (dpc.CompletionCode != (byte)Contracts.CompletionCode.Success) { response.completionCode = Contracts.CompletionCode.Failure; Tracer.WriteError("GetBladePsuAlertDefaultPowerCap failed with completion code: {0:X}", dpc.CompletionCode); } else { response.completionCode = Contracts.CompletionCode.Success; response.DefaultCapEnabled = dpc.DefaultCapEnabled; response.WaitTime = dpc.WaitTime; response.DefaultPowerCap = dpc.DefaultPowerCap; } response.completionCode = ChassisManagerUtil.GetContractsCompletionCodeMapping((byte)dpc.CompletionCode); response.statusDescription = response.completionCode.ToString(); return response; }
/// <summary> /// command specific implementation /// argVal command class member has all user-entered command argument indicators and parameter values /// Currently just prints all argument indicators and argument values /// </summary> internal override void commandImplementation() { BladePsuAlertDpcResponse myResponse = new BladePsuAlertDpcResponse(); AllBladesPsuAlertDpcResponse myResponses = new AllBladesPsuAlertDpcResponse(); try { if (this.argVal.ContainsKey('a')) { myResponses = WcsCli2CmConnectionManager.channel.GetAllBladesPsuAlertDefaultPowerCap(); } else if (this.argVal.ContainsKey('i')) { dynamic bladeId = null; if (this.argVal.TryGetValue('i', out bladeId)) { myResponse = WcsCli2CmConnectionManager.channel.GetBladePsuAlertDefaultPowerCap((int)bladeId); } else { Console.WriteLine(WcsCliConstants.commandFailure + " No blade ID specified, please look at command help"); return; } } } catch (Exception ex) { SharedFunc.ExceptionOutput(ex); return; } if ((this.argVal.ContainsKey('a') && myResponses == null) || (this.argVal.ContainsKey('a') && myResponses.bladeDpcResponseCollection == null) || myResponse == null) { Console.WriteLine(WcsCliConstants.serviceResponseEmpty); return; } if (this.argVal.ContainsKey('a')) { foreach (var response in myResponses.bladeDpcResponseCollection) { if (ResponseValidation.ValidateBladeResponse(response.bladeNumber, null, response, false)) { Console.WriteLine(WcsCliConstants.commandSuccess + string.Format(" Default Power Cap in Watts for blade: {0} = {1}", response.bladeNumber, response.DefaultPowerCap)); Console.WriteLine("Time in milliseconds to wait before de-asserting the PROCHOT for blade: {0} = {1}", response.bladeNumber, response.WaitTime); Console.WriteLine("Default Power Cap Enabled/Disabled for blade: {0} = {1}", response.bladeNumber, response.DefaultCapEnabled); } } } else { if (ResponseValidation.ValidateBladeResponse(myResponse.bladeNumber, null, myResponse, false)) { Console.WriteLine(WcsCliConstants.commandSuccess + string.Format(" Default Power Cap in Watts for blade: {0} = {1}", myResponse.bladeNumber, myResponse.DefaultPowerCap)); Console.WriteLine("Time in milliseconds to wait before de-asserting the PROCHOT for blade: {0} = {1}", myResponse.bladeNumber, myResponse.WaitTime); Console.WriteLine("Default Power Cap Enabled/Disabled for blade: {0} = {1}", myResponse.bladeNumber, myResponse.DefaultCapEnabled); } } }