initiators.psm1
$InitiatorsDefaultProperties = ( 'name', 'index', 'port-address', 'iops', 'operating-system', 'initiator-conn-state', 'port-type') .(commonLib) Function Get-XtremInitiators { <# .DESCRIPTION Displays details of all Initiators. .PARAMETER Properties Array of properties requested from this call. .PARAMETER Filters Array of filters for this call. .PARAMETER ShowRest Return an object represents the REST operation including URI , Method and JSON .EXAMPLE Get-XtremInitiators #> [cmdletbinding()] [Alias('xmsInitiatorList')] Param ( [parameter()] $XtremClusterName = (Get-XtremDefaultSession)._XtremClusterName, [parameter()] [Alias("Properties")] [Argumentcompleter( { doComplete $args 'initiators' prop })] [string[]]$Property = $InitiatorsDefaultProperties, [parameter()] [Alias("Filters")] [Argumentcompleter( { doComplete $args 'initiators' filter })] [string[]]$Filter, [Parameter()] [object]$Session = (Get-XtremDefaultSession), [Parameter()] [switch]$ShowRest, [Parameter()] [switch]$Full = $false ) initCommand $Route = '/types/initiators' if ($Full) { $Property = '' } $result = NewXtremRequest -Method GET -Endpoint $Route -Session $Session -XtremClusterName $XtremClusterName -Properties $Property -ObjectSelection $ObjectSelection -Filters $Filter -ShowRest:$ShowRest.IsPresent -Multi -Full:$Full.IsPresent $result = formatOutPut $Property $result finalizeCommand return $result } Function Get-XtremInitiator { <# .DESCRIPTION Displays details of the selected Initiator. .PARAMETER InitiatorName Initiator's name or index number. .PARAMETER Properties Array of properties requested from this call. .PARAMETER Filters Array of filters for this call. .PARAMETER ShowRest Return an object represents the REST operation including URI , Method and JSON .EXAMPLE Get-XtremInitiator -InitiatorName initiator #> [cmdletbinding()] [Alias('xmsInitiatorGet')] Param ( [parameter()] $XtremClusterName = (Get-XtremDefaultSession)._XtremClusterName, [Alias("Name", "Index")] [parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true, Position = 0)] [Argumentcompleter( { doComplete $args 'initiators' name })] $InitiatorName, [Parameter()] [Alias("Properties")] [Argumentcompleter( { doComplete $args 'initiators' prop })] [string[]]$Property, [Parameter()] [object]$Session = (Get-XtremDefaultSession), [Parameter()] [switch]$ShowRest ) initCommand $Route = '/types/initiators' $Route, $GetProperty = SetParametersForRequest $Route $InitiatorName $result = NewXtremRequest -Method GET -Endpoint $Route -Session $Session -XtremClusterName $XtremClusterName -ObjectSelection $ObjectSelection -GetProperty $GetProperty -Properties $Property -ShowRest:$ShowRest.IsPresent $result = formatOutPut $Property $result finalizeCommand return $result } Function New-XtremInitiator { <# .DESCRIPTION Enables you to add a new Initiator and associate it with an existing Initiator Group. .PARAMETER InitiatorName New initiator name .PARAMETER InitiatorGroup Initiator Group name of Index. .PARAMETER PortAddress Initiator's port address .PARAMETER InitiatorAuthenticationUserName CHAP authentication username .PARAMETER InitiatorAuthenticationPassword CHAP authentication password .PARAMETER InitiatorDiscoveryUserName CHAP discovery cluster username .PARAMETER InitiatorDiscoveryPassword CHAP discovery cluster password .PARAMETER ClusterAuthenticationUserName CHAP authentication cluster username .PARAMETER ClusterAuthenticationPassword CHAP authentication cluster password .PARAMETER ClusterDiscoveryUserName CHAP discovery Initiator username .PARAMETER ClusterDiscoveryPassword CHAP discovery password .PARAMETER ShowRest Return an object represents the REST operation including URI , Method and JSON .PARAMETER OperatingSystem Operating System (e.g. Linux,Windows, ESX, Solaris, AIX, HP-UX) .EXAMPLE New-XtremInitiator #> [CmdletBinding()] [Alias('xmsInitiatorCreate')] Param ( [Parameter()] $XtremClusterName = (Get-XtremDefaultSession)._XtremClusterName, [Alias("Name", "Index")] [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true, Position = 0)] [Argumentcompleter( { doComplete $args 'initiators' name })] [ValidatePattern("^[^\[\]&\(\)`";,<>'/]+$")] [String]$InitiatorName, [Parameter(Mandatory = $true, Position = 1)] [Argumentcompleter( { doComplete $args 'initiator-groups' name })] $InitiatorGroup, [Parameter(Mandatory = $true, Position = 2)] [String]$PortAddress, [Parameter()] [String]$InitiatorAuthenticationUserName, [Parameter()] [String]$InitiatorAuthenticationPassword, [Parameter()] [String]$InitiatorDiscoveryUserName, [Parameter()] [String]$InitiatorDiscoveryPassword, [Parameter()] [String]$ClusterAuthenticationUserName, [Parameter()] [String]$ClusterAuthenticationPassword, [Parameter()] [String]$ClusterDiscoveryUserName, [Parameter()] [String]$ClusterDiscoveryPassword, [Parameter()] [ValidateSet("linux", "windows", "esx", "solaris", "aix", "hpux", "other")] [String]$OperatingSystem, [Parameter()] [object]$Session = (Get-XtremDefaultSession), [Parameter()] [switch]$ShowRest ) $Route = '/types/initiators' $BodyList = @{ } AddIfExists -name "cluster-id" -value $XtremClusterName -list $BodyList AddIfExists -name "initiator-name" -value $InitiatorName -list $BodyList AddIfExists -name "ig-id" -value $InitiatorGroup -list $BodyList AddIfExists -name "port-address" -value $PortAddress -list $BodyList AddIfExists -name "initiator-authentication-user-name" -value $InitiatorAuthenticationUserName -list $BodyList AddIfExists -name "initiator-authentication-password" -value $InitiatorAuthenticationPassword -list $BodyList AddIfExists -name "initiator-discovery-user-name" -value $InitiatorDiscoveryUserName -list $BodyList AddIfExists -name "initiator-discovery-password" -value $InitiatorDiscoveryPassword -list $BodyList AddIfExists -name "cluster-authentication-user-name" -value $ClusterAuthenticationUserName -list $BodyList AddIfExists -name "cluster-authentication-password" -value $ClusterAuthenticationPassword -list $BodyList AddIfExists -name "cluster-discovery-user-name" -value $ClusterDiscoveryUserName -list $BodyList AddIfExists -name "cluster-discovery-password" -value $ClusterDiscoveryPassword -list $BodyList AddIfExists -name "operating-system" -value $OperatingSystem -list $BodyList initCommand $Body = BuildXtremJson -list $BodyList $result = NewXtremRequest -Method POST -Endpoint $Route -Session $Session -XtremClusterName $XtremClusterName -Body $Body -ObjectSelection $ObjectSelection -ShowRest:$ShowRest.IsPresent finalizeCommand return $result } Function Set-XtremInitiator { <# .DESCRIPTION Enables you to modify an Initiator. .PARAMETER InitiatorName Initiator name .PARAMETER InitiatorGroup Initiator Group name of Index. .PARAMETER PortAddress Initiator's port address .PARAMETER InitiatorAuthenticationUserName CHAP authentication username .PARAMETER InitiatorAuthenticationPassword CHAP authentication password .PARAMETER InitiatorDiscoveryUserName CHAP discovery cluster username .PARAMETER InitiatorDiscoveryPassword CHAP discovery cluster password .PARAMETER ClusterAuthenticationUserName CHAP authentication cluster username .PARAMETER ClusterAuthenticationPassword CHAP authentication cluster password .PARAMETER ClusterDiscoveryUserName CHAP discovery Initiator username .PARAMETER ClusterDiscoveryPassword CHAP discovery password .PARAMETER OperatingSystem Operating System (e.g. Linux,Windows, ESX, Solaris, AIX, HP-UX) .PARAMETER ShowRest Return an object represents the REST operation including URI , Method and JSON .EXAMPLE Set-XtremInitiator -InitiatorName 5 -NewInitiatorName newInitiator #> [CmdletBinding()] [Alias('xmsInitiatorModify')] Param ( [Parameter()] $XtremClusterName = (Get-XtremDefaultSession)._XtremClusterName, [Alias("Name", "Index")] [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true, Position = 0)] [Argumentcompleter( { doComplete $args 'initiators' name })] $InitiatorName, [Parameter()] [String]$PortAddress, [Parameter()] [ValidatePattern("^[^\[\]&\(\)`";,<>'/]+$")] [String]$NewInitiatorName, [Parameter()] [String]$InitiatorAuthenticationUserName, [Parameter()] [String]$InitiatorAuthenticationPassword, [Parameter()] [String]$InitiatorDiscoveryUserName, [Parameter()] [String]$InitiatorDiscoveryPassword, [Parameter()] [String]$ClusterAuthenticationUserName, [Parameter()] [String]$ClusterAuthenticationPassword, [Parameter()] [String]$ClusterDiscoveryUserName, [Parameter()] [String]$ClusterDiscoveryPassword, [Parameter()] [ValidateSet("linux", "windows", "esx", "solaris", "aix", "hpux", "other")] [String]$OperatingSystem, [Parameter()] [object]$Session = (Get-XtremDefaultSession), [Parameter()] [switch]$ShowRest ) $Route = '/types/initiators' $Route, $GetProperty = SetParametersForRequest $Route $InitiatorName $BodyList = @{ } AddIfExists -name "cluster-id" -value $XtremClusterName -list $BodyList AddIfExists -name "port-address" -value $PortAddress -list $BodyList AddIfExists -name "initiator-name" -value $NewInitiatorName -list $BodyList AddIfExists -name "initiator-authentication-user-name" -value $InitiatorAuthenticationUserName -list $BodyList AddIfExists -name "initiator-authentication-password" -value $InitiatorAuthenticationPassword -list $BodyList AddIfExists -name "initiator-discovery-user-name" -value $InitiatorDiscoveryUserName -list $BodyList AddIfExists -name "initiator-discovery-password" -value $InitiatorDiscoveryPassword -list $BodyList AddIfExists -name "cluster-authentication-user-name" -value $ClusterAuthenticationUserName -list $BodyList AddIfExists -name "cluster-authentication-password" -value $ClusterAuthenticationPassword -list $BodyList AddIfExists -name "cluster-discovery-user-name" -value $ClusterDiscoveryUserName -list $BodyList AddIfExists -name "cluster-discovery-password" -value $ClusterDiscoveryPassword -list $BodyList AddIfExists -name "operating-system" -value $OperatingSystem -list $BodyList initCommand $Body = BuildXtremJson -list $BodyList $result = NewXtremRequest -Method PUT -Endpoint $Route -Session $Session -XtremClusterName $XtremClusterName -Body $Body -GetProperty $GetProperty -ShowRest:$ShowRest.IsPresent finalizeCommand return $result } Function Remove-XtremInitiator { <# .DESCRIPTION enables you to remove an Initiator. .EXAMPLE Remove-XtremInitiator .PARAMETER ShowRest Return an object represents the REST operation including URI , Method and JSON #> [cmdletbinding()] [Alias('xmsInitiatorRemove')] Param ( [parameter()] $XtremClusterName = (Get-XtremDefaultSession)._XtremClusterName, [Alias("Name", "Index")] [parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true, Position = 0)] [Argumentcompleter( { doComplete $args 'initiators' name })] $InitiatorName, [Parameter()] [bool]$Confirm = (Get-XtremDefaultSession)._XtremCLIMode, [Parameter()] [object]$Session = (Get-XtremDefaultSession), [Parameter()] [switch]$ShowRest ) $confirmed = IsConfirmed $Confirm if (!$confirmed) { return } initCommand $Route = '/types/initiators' $Route, $GetProperty = SetParametersForRequest $Route $InitiatorName $result = NewXtremRequest -Method DELETE -Endpoint $Route -Session $Session -XtremClusterName $XtremClusterName -GetProperty $GetProperty -ShowRest:$ShowRest.IsPresent finalizeCommand return $result } Export-ModuleMember *-* -Alias * |