#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; using System.Linq; using System.ComponentModel; using System.Management.Automation; using SolidFire.Core; using SolidFire.Element.Api; using System.Collections; #endregion namespace SolidFire.StorageContainers { [Cmdlet(VerbsCommon.New, "SFInitiator")] public class NewInitiator : SFCmdlet { #region Private Data private Int64? _volumeAccessGroupID; #endregion #region Parameters [Parameter(Mandatory = true, HelpMessage = "The name of the initiator (IQN or WWPN) to create.")] public string Name { get; set; } [Parameter(Mandatory = false, HelpMessage = "The friendly name to assign to this initiator.")] public String Alias { get; set; } [Parameter(Mandatory = false, HelpMessage = "The ID of the volume access group into to which this newly created initiator will be added.")] public Int64 VolumeAccessGroupID { get { return _volumeAccessGroupID ?? 0; } set { _volumeAccessGroupID = value; } } [Parameter(Mandatory = false, ValueFromPipeline = false, HelpMessage = "A set of Hashtable attributes assigned to this initiator.")] public Hashtable Attributes { get; set; } #endregion #region Cmdlet Overrides protected override void BeginProcessing() { base.BeginProcessing(); CheckConnection(9); } protected override void ProcessRecord() { base.ProcessRecord(); var r = new CreateInitiator(); r.Name = Name; r.Alias = Alias; r.VolumeAccessGroupID = _volumeAccessGroupID; r.Attributes = Attributes; var request = new CreateInitiatorsRequest() { Initiators = new CreateInitiator[] { r } }; var objsFromAPI = SendRequest("CreateInitiators", request); WriteObject(objsFromAPI.Select(obj => obj.Result.Initiators), true); } #endregion } }