#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 #region Using Directives using System.Collections; using System.Linq; using System.Management.Automation; using SolidFire.Core; using SolidFire.Core.Helpers; using SolidFire.Element.Api; #endregion namespace SolidFire.Cluster.Reset { [Cmdlet(VerbsLifecycle.Restart, "SFServices", SupportsShouldProcess = true, ConfirmImpact = ConfirmImpact.High)] public class RestartSFServices : SFCmdlet { [Parameter(Position = 0, Mandatory = false, HelpMessage = "Service name to be restarted.")] public string Service { get; set; } [Parameter(Position = 0, Mandatory = false, HelpMessage = "Action to perform on the service (start, stop, restart).")] [ValidateSet("start", "stop", "restart")] public string Action { get; set; } #region Cmdlet Overrides protected override void BeginProcessing() { base.BeginProcessing(); CheckConnection(endPoint: SolidFireUtilities.SFEndPoint.Node); } protected override void ProcessRecord() { base.ProcessRecord(); var request = new RestartServicesRequest() {Force = true, Service = Service, Action = Action}; WriteWarning("This command causes temporary node services interruption."); WriteObject(SendRequest("RestartServices", request).Select(r => r.Result), true); } #endregion } }