/// <summary> /// Datasafe Set blade soft power ON for all blades /// </summary> /// <returns>Array of blade responses indicating blade operation was success/failure</returns> public DatasafeAllBladesResponse SetAllBladesDatasafeOn() { byte MaxbladeCount = (byte)ConfigLoaded.Population; DatasafeAllBladesResponse responses = new DatasafeAllBladesResponse(); responses.completionCode = Contracts.CompletionCode.Unknown; responses.statusDescription = string.Empty; responses.datasafeBladeResponseCollection = new List<DatasafeBladeResponse>(); Contracts.CompletionCode[] bladeInternalResponseCollection = new Contracts.CompletionCode[MaxbladeCount]; Tracer.WriteInfo("Received SetAllBladesDatasafeOn()"); Tracer.WriteUserLog("Invoked SetAllBladesDatasafeOn()"); try { for (int index = 0; index < ConfigLoaded.Population; index++) { int bladeId = index + 1; responses.datasafeBladeResponseCollection.Add(SetBladeDatasafeOn(bladeId)); // Set the internal blade response to the blade completion code. bladeInternalResponseCollection[index] = responses.datasafeBladeResponseCollection[index].completionCode; } } catch (Exception ex) { responses.completionCode = Contracts.CompletionCode.Failure; responses.statusDescription = responses.completionCode.ToString() + ": " + ex.Message; Tracer.WriteError("SetAllBladesDatasafeOn failed with exception" + ex); return responses; } Contracts.ChassisResponse varResponse = new Contracts.ChassisResponse(); varResponse = ChassisManagerUtil.ValidateAllBladeResponse(bladeInternalResponseCollection); responses.completionCode = varResponse.completionCode; responses.statusDescription = varResponse.statusDescription; return responses; }
/// <summary> /// Datasafe Power On all blades /// </summary> /// <returns>Array of blade responses, one for each blade. Indicates success/failure.</returns> public DatasafeAllBladesResponse SetAllBladesDatasafePowerOn() { byte maxBladeCount = (byte)ConfigLoaded.Population; DatasafeAllBladesResponse responses = new DatasafeAllBladesResponse(); responses.completionCode = Contracts.CompletionCode.Unknown; responses.statusDescription = string.Empty; responses.datasafeBladeResponseCollection = new List<DatasafeBladeResponse>(); Contracts.CompletionCode[] bladeInternalResponseCollection = new Contracts.CompletionCode[maxBladeCount]; Tracer.WriteInfo("Invoked SetAllBladesDatasafePowerOn()"); Tracer.WriteUserLog("Invoked SetAllBladesDatasafePowerOn()"); for (int loop = 0; loop < maxBladeCount; loop++) { int bladeId = loop + 1; responses.datasafeBladeResponseCollection.Add(SetBladeDatasafePowerOn(bladeId)); // Set the internal blade response to the blade completion code. bladeInternalResponseCollection[loop] = responses.datasafeBladeResponseCollection[loop].completionCode; } Contracts.ChassisResponse varResponse = new Contracts.ChassisResponse(); varResponse = ChassisManagerUtil.ValidateAllBladeResponse(bladeInternalResponseCollection); responses.completionCode = varResponse.completionCode; responses.statusDescription = varResponse.statusDescription; return responses; }
/// <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() { DatasafeBladeResponse myResponse = new DatasafeBladeResponse(); DatasafeAllBladesResponse myResponses = new DatasafeAllBladesResponse(); try { if (this.argVal.ContainsKey('a')) { myResponses = WcsCli2CmConnectionManager.channel.SetAllBladesDatasafePowerOn(); } else if (this.argVal.ContainsKey('i')) { dynamic bladeId = null; if (this.argVal.TryGetValue('i', out bladeId)) { myResponse = WcsCli2CmConnectionManager.channel.SetBladeDatasafePowerOn((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.datasafeBladeResponseCollection == null) || myResponse == null) { Console.WriteLine(WcsCliConstants.serviceResponseEmpty); return; } if (this.argVal.ContainsKey('a')) { foreach (var response in myResponses.datasafeBladeResponseCollection) { ResponseValidation.ValidateBladeResponse(response.bladeNumber, "DataSafe power ON", response, true); } } else { ResponseValidation.ValidateBladeResponse(myResponse.bladeNumber, "DataSafe power ON", myResponse, true); } }