#region Copyright /* * Copyright © 2014-2016 NetApp, Inc. All Rights Reserved. * * CONFIDENTIALITY NOTICE: THIS SOFTWARE CONTAINS CONFIDENTIAL INFORMATION OF * NETAPP, INC. USE, DISCLOSURE OR REPRODUCTION IS PROHIBITED WITHOUT THE PRIOR * EXPRESS WRITTEN PERMISSION OF NETAPP, INC. */ #endregion using System.Linq; using System.Management.Automation; using SolidFire.Core; using SolidFire.Element.Api; namespace PowerShellModule.Cluster.Invoke { [Cmdlet(VerbsLifecycle.Invoke, "SFShutdown", SupportsShouldProcess = true, ConfirmImpact = ConfirmImpact.High)] public class Invoke_SFShutdown : SFCmdlet { [Parameter(Mandatory = true, ValueFromPipeline = true, ValueFromPipelineByPropertyName = true, HelpMessage = "List of NodeIDs for the nodes to be shutdown.")] public long[] NodeID { get; set; } [Parameter(HelpMessage = "Action to take for the node shutdown, restart or halt. Default is restart.")] [ValidateSet("restart", "halt")] public string Option { get; set; } #region Cmdlet Overrides protected override void BeginProcessing() { base.BeginProcessing(); CheckConnection(); } protected override void ProcessRecord() { base.ProcessRecord(); var request = new ShutdownRequest { Nodes = NodeID, Option = Option ?? "restart" }; WriteWarning("The following connection(s) will be shutdown and unavailable: " + string.Join(",", Target)); WriteObject(SendRequest("Shutdown", request).Select(r => r.Result)); } #endregion } }