From 21af7d02c3fa1fe2c1d11a591347bf417b8158a7 Mon Sep 17 00:00:00 2001 From: Marco Blessing Date: Fri, 20 Oct 2017 10:44:09 +0200 Subject: [PATCH] Implements ConnectionType CisServer (#9) * adds optinal dependency for CisServer * adds Connection Type CisServer * Adds connection type CisServer * prepare beta build on dev --- appveyor.yml | 20 ++++++++--------- src/Connection/Connect-To.ps1 | 28 ++++++++++++++++++++++-- src/Connection/Disconnect-From.ps1 | 35 ++++++++++++++++++++++++------ src/Dependency.json | 6 +++++ 4 files changed, 70 insertions(+), 19 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index ea07ece..cc17a2a 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -42,15 +42,15 @@ test_script: - ps: Invoke-AppVeyorTests - ps: Invoke-CoverageReport -#deploy: -# - provider: GitHub -# auth_token: -# secure: M+bBX5/nKdJB0eViP7xtrLVTwf3vGDUA9N2MMprZp2i+9ZR3CBVcJnSzJWUmalhB -# artifact: PSCredentialStore.zip # upload all NuGet packages to release assets -# draft: false -# prerelease: true -# on: -# branch: master # release from master branch only -# +deploy: + - provider: GitHub + auth_token: + secure: M+bBX5/nKdJB0eViP7xtrLVTwf3vGDUA9N2MMprZp2i+9ZR3CBVcJnSzJWUmalhB + artifact: PSCredentialStore.zip # upload all NuGet packages to release assets + draft: false + prerelease: true + on: + branch: dev # release from master branch only + #after_deploy: # - ps: Invoke-AppVeyorPSGallery diff --git a/src/Connection/Connect-To.ps1 b/src/Connection/Connect-To.ps1 index 740ee6a..7c172bf 100644 --- a/src/Connection/Connect-To.ps1 +++ b/src/Connection/Connect-To.ps1 @@ -19,6 +19,7 @@ function Connect-To { - FTP Establish a connection to a FTP host. - NetAppFAS Establish a connection to a NetApp Clustered ONTAP filer. - VMware Establish a connection to a VMware vCenter or ESXi host. + - CisServer Establish a connection to a Vmware CisServer. .PARAMETER Credentials Use this parameter to bypass the stored credentials. Without this parameter Connect-To tries to read the @@ -40,10 +41,19 @@ function Connect-To { .EXAMPLE Connect-To -RemoteHost "ucs.myside.local" -Type CiscoUcs + + .EXAMPLE Connect-To -RemoteHost "ftp.myside.local" -Type FTP + + .EXAMPLE Connect-To -RemoteHost "fas.myside.local" -Type NetAppFAS + + .EXAMPLE Connect-To -RemoteHost "esx01.myside.local" -Type VMware + .EXAMPLE + Connect-To -RemoteHost "vCenter.myside.local" -Type CisServer + .EXAMPLE $MyCreds = Get-Credential Connect-To -RemoteHost "vcr01.myside.local" -Type VMware -Credentials $MyCreds @@ -53,7 +63,7 @@ function Connect-To { .NOTES File Name : Connect-To.ps1 Author : Marco Blessing - marco.blessing@googlemail.com - Requires : PSFTP, PowerCLI + Requires : .LINK https://github.com/OCram85/PSCredentialStore @@ -70,7 +80,7 @@ function Connect-To { [Parameter(Mandatory = $true, ParameterSetName = "Shared")] [Parameter(Mandatory = $true, ParameterSetName = "Private")] - [ValidateSet("CiscoUcs", "FTP", "NetAppFAS", "VMware")] + [ValidateSet("CiscoUcs", "FTP", "NetAppFAS", "VMware", "CisServer")] [String]$Type, [Parameter(Mandatory = $False, ParameterSetName = "Shared")] @@ -199,6 +209,20 @@ function Connect-To { Write-Error @MessageParams } } + "CisServer" { + try { + Connect-CisServer -Server $RemoteHost -Credential $creds -ErrorAction Stop | Out-Null + } + + catch { + # Write a error message to the log. + $MessageParams = @{ + Message = "Unable to connect to {0} using Type {1}." -f $RemoteHost, $Type + ErrorAction = "Stop" + } + Write-Error @MessageParams + } + } default { # Write a error message to the log. $MessageParams = @{ diff --git a/src/Connection/Disconnect-From.ps1 b/src/Connection/Disconnect-From.ps1 index 8fa8c2b..4756768 100644 --- a/src/Connection/Disconnect-From.ps1 +++ b/src/Connection/Disconnect-From.ps1 @@ -15,11 +15,11 @@ function Disconnect-From { .PARAMETER Type Specify the host type of the target. Currently implemented targets are: - - CiscoUcs Establish a connection to a Cisco UCS Fabric Interconnect. - - FTP Establish a connection to a FTP host. - - NetAppFAS Establish a connection to a NetApp Clustered ONTAP filer. - - VMware Establish a connection to a VMware vCenter or ESXi host. - + - CiscoUcs Terminates the connection from a Cisco UCS Fabric Interconnect. + - FTP Terminates the connection from a FTP host. + - NetAppFAS Terminates the connection from a NetApp Clustered ONTAP filer. + - VMware Terminates the connection from a VMware vCenter or ESXi host. + - CisServer Terminates the connection from a Vmware CisServer. .PARAMETER Force Force the disconnect, even if the disconnect would fail. @@ -44,8 +44,11 @@ function Disconnect-From { .EXAMPLE Disconnect-From -RemoteHost "esx01.myside.local" -Type VMware -Force:$True + .EXAMPLE + Disconnect-From -RemoteHost "vcenter.myside.local" -Type CisServer + .NOTES - File Name : Disconnect-To.ps1 + File Name : Disconnect-From.ps1 Author : Marco Blessing - marco.blessing@googlemail.com Requires : @@ -59,7 +62,7 @@ function Disconnect-From { [string]$RemoteHost, [Parameter(Mandatory = $true)] - [ValidateSet("CiscoUcs", "FTP", "NetAppFAS", "VMware")] + [ValidateSet("CiscoUcs", "FTP", "NetAppFAS", "VMware", "CisServer")] [string]$Type, [Parameter(Mandatory = $false)] @@ -85,7 +88,25 @@ function Disconnect-From { } Write-Error @MessageParams } + } + "CisServer" { + try { + if ($Force) { + Disconnect-CisServer -Server $RemoteHost -Confirm:$false -ErrorAction Stop -Force:$true + } + else { + Disconnect-CisServer -Server $RemoteHost -Confirm:$false -ErrorAction Stop + } + } + catch { + # Write a error message to the log. + $MessageParams = @{ + Message = "Unable to disconnect from {0} using Type {1}." -f $RemoteHost, $Type + ErrorAction = "Stop" + } + Write-Error @MessageParams + } } # Check for an existing WinSCP Session var "FTP" { diff --git a/src/Dependency.json b/src/Dependency.json index d76a42f..865f246 100644 --- a/src/Dependency.json +++ b/src/Dependency.json @@ -26,6 +26,12 @@ "Modules": [ "DataONTAP" ] + }, + { + "Name": "CisServer", + "Modules": [ + "VMware.VimAutomation.Cis.Core" + ] } ] }