Skip to content

Commit 10e0430

Browse files
committed
Added Profile handling and parameter help to S3 Cmdlets
1 parent 5166332 commit 10e0430

1 file changed

Lines changed: 117 additions & 23 deletions

File tree

src/StorageGRID-Webscale.psm1

Lines changed: 117 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -15361,6 +15361,14 @@ Set-Alias -Name Get-SgwAccountS3AccessKeys -Value Get-SgwS3AccessKeys
1536115361
Retrieve StorageGRID Webscale Account S3 Access Keys
1536215362
.DESCRIPTION
1536315363
Retrieve StorageGRID Webscale Account S3 Access Keys
15364+
.PARAMETER Server
15365+
StorageGRID Webscale Management Server object. If not specified, global CurrentSgwServer object will be used.
15366+
.PARAMETER ProfileName
15367+
StorageGRID Profile to use for connection.
15368+
.PARAMETER AccountId
15369+
ID of a StorageGRID Webscale Account to get S3 Access Keys for.
15370+
.PARAMETER UserId
15371+
ID of a StorageGRID Webscale User.
1536415372
#>
1536515373
function Global:Get-SgwS3AccessKeys {
1536615374
[CmdletBinding(DefaultParameterSetName = "none")]
@@ -15369,22 +15377,36 @@ function Global:Get-SgwS3AccessKeys {
1536915377
[parameter(
1537015378
Mandatory = $False,
1537115379
Position = 0,
15380+
HelpMessage = "StorageGRID Webscale Management Server object. If not specified, global CurrentSgwServer object will be used.")][PSCustomObject]$Server,
15381+
[parameter(Mandatory = $False,
15382+
Position = 1,
15383+
HelpMessage = "StorageGRID Profile to use for connection.")][Alias("Profile")][String]$ProfileName,
15384+
[parameter(
15385+
Mandatory = $False,
15386+
Position = 2,
1537215387
ParameterSetName = "account",
1537315388
HelpMessage = "ID of a StorageGRID Webscale Account to get S3 Access Keys for.",
1537415389
ValueFromPipelineByPropertyName = $True)][String]$AccountId,
1537515390
[parameter(
1537615391
Mandatory = $False,
15377-
Position = 1,
15392+
Position = 3,
1537815393
ParameterSetName = "user",
1537915394
HelpMessage = "ID of a StorageGRID Webscale User.",
15380-
ValueFromPipelineByPropertyName = $True)][Alias("userUUID")][String]$UserId,
15381-
[parameter(
15382-
Mandatory = $False,
15383-
Position = 2,
15384-
HelpMessage = "StorageGRID Webscale Management Server object. If not specified, global CurrentSgwServer object will be used.")][PSCustomObject]$Server
15395+
ValueFromPipelineByPropertyName = $True)][Alias("userUUID")][String]$UserId
1538515396
)
1538615397

1538715398
Begin {
15399+
if (!$ProfileName -and !$Server -and !$CurrentSgwServer.Name) {
15400+
$ProfileName = "default"
15401+
}
15402+
if ($ProfileName) {
15403+
$Profile = Get-SgwProfile -ProfileName $ProfileName
15404+
if (!$Profile.Name) {
15405+
Throw "Profile $ProfileName not found. Create a profile using New-SgwProfile or connect to a StorageGRID Server using Connect-SgwServer"
15406+
}
15407+
$Server = Connect-SgwServer -Name $Profile.Name -Credential $Profile.Credential -AccountId $Profile.AccountId -SkipCertificateCheck:$Profile.SkipCertificateCheck -DisableAutomaticAccessKeyGeneration:$Profile.disalble_automatic_access_key_generation -TemporaryAccessKeyExpirationTime $Profile.temporary_access_key_expiration_time -S3EndpointUrl $Profile.S3EndpointUrl -SwiftEndpointUrl $Profile.SwiftEndpointUrl -Transient
15408+
}
15409+
1538815410
if (!$Server) {
1538915411
$Server = $Global:CurrentSgwServer
1539015412
}
@@ -15433,6 +15455,16 @@ Set-Alias -Name Get-SgwAccountS3AccessKey -Value Get-SgwS3AccessKey
1543315455
Retrieve a StorageGRID Webscale Account S3 Access Key
1543415456
.DESCRIPTION
1543515457
Retrieve a StorageGRID Webscale Account S3 Access Key
15458+
.PARAMETER Server
15459+
StorageGRID Webscale Management Server object. If not specified, global CurrentSgwServer object will be used.
15460+
.PARAMETER ProfileName
15461+
StorageGRID Profile to use for connection.
15462+
.PARAMETER AccountId
15463+
ID of a StorageGRID Webscale Account to get S3 Access Keys for.
15464+
.PARAMETER UserId
15465+
ID of a StorageGRID Webscale User.
15466+
.PARAMETER AccessKey
15467+
Access Key to retrieve.
1543615468
#>
1543715469
function Global:Get-SgwS3AccessKey {
1543815470
[CmdletBinding(DefaultParameterSetName = "none")]
@@ -15441,27 +15473,41 @@ function Global:Get-SgwS3AccessKey {
1544115473
[parameter(
1544215474
Mandatory = $False,
1544315475
Position = 0,
15476+
HelpMessage = "StorageGRID Webscale Management Server object. If not specified, global CurrentSgwServer object will be used.")][PSCustomObject]$Server,
15477+
[parameter(Mandatory = $False,
15478+
Position = 1,
15479+
HelpMessage = "StorageGRID Profile to use for connection.")][Alias("Profile")][String]$ProfileName,
15480+
[parameter(
15481+
Mandatory = $False,
15482+
Position = 2,
1544415483
HelpMessage = "ID of a StorageGRID Webscale Account to get S3 Access Keys for",
1544515484
ParameterSetName = "account",
1544615485
ValueFromPipelineByPropertyName = $True)][String]$AccountId,
1544715486
[parameter(
1544815487
Mandatory = $False,
15449-
Position = 1,
15488+
Position = 3,
1545015489
HelpMessage = "ID of a StorageGRID Webscale User.",
1545115490
ParameterSetName = "user",
1545215491
ValueFromPipelineByPropertyName = $True)][Alias("userUUID")][String]$UserId,
1545315492
[parameter(
1545415493
Mandatory = $True,
15455-
Position = 2,
15494+
Position = 4,
1545615495
HelpMessage = "Access Key to retrieve.",
15457-
ValueFromPipelineByPropertyName = $True)][Alias("id")][String]$AccessKey,
15458-
[parameter(
15459-
Mandatory = $False,
15460-
Position = 3,
15461-
HelpMessage = "StorageGRID Webscale Management Server object. If not specified, global CurrentSgwServer object will be used.")][PSCustomObject]$Server
15496+
ValueFromPipelineByPropertyName = $True)][Alias("id")][String]$AccessKey
1546215497
)
1546315498

1546415499
Begin {
15500+
if (!$ProfileName -and !$Server -and !$CurrentSgwServer.Name) {
15501+
$ProfileName = "default"
15502+
}
15503+
if ($ProfileName) {
15504+
$Profile = Get-SgwProfile -ProfileName $ProfileName
15505+
if (!$Profile.Name) {
15506+
Throw "Profile $ProfileName not found. Create a profile using New-SgwProfile or connect to a StorageGRID Server using Connect-SgwServer"
15507+
}
15508+
$Server = Connect-SgwServer -Name $Profile.Name -Credential $Profile.Credential -AccountId $Profile.AccountId -SkipCertificateCheck:$Profile.SkipCertificateCheck -DisableAutomaticAccessKeyGeneration:$Profile.disalble_automatic_access_key_generation -TemporaryAccessKeyExpirationTime $Profile.temporary_access_key_expiration_time -S3EndpointUrl $Profile.S3EndpointUrl -SwiftEndpointUrl $Profile.SwiftEndpointUrl -Transient
15509+
}
15510+
1546515511
if (!$Server) {
1546615512
$Server = $Global:CurrentSgwServer
1546715513
}
@@ -15511,6 +15557,16 @@ Set-Alias -Name New-SgwAccountS3AccessKey -Value New-SgwS3AccessKey
1551115557
Create a new StorageGRID Webscale Account S3 Access Key
1551215558
.DESCRIPTION
1551315559
Create a new StorageGRID Webscale Account S3 Access Key
15560+
.PARAMETER Server
15561+
StorageGRID Webscale Management Server object. If not specified, global CurrentSgwServer object will be used.
15562+
.PARAMETER ProfileName
15563+
StorageGRID Profile to use for connection.
15564+
.PARAMETER AccountId
15565+
ID of a StorageGRID Webscale Account to get S3 Access Keys for.
15566+
.PARAMETER UserId
15567+
ID of a StorageGRID Webscale User.
15568+
.PARAMETER Expires
15569+
Expiration date of the S3 Access Key.
1551415570
#>
1551515571
function Global:New-SgwS3AccessKey {
1551615572
[CmdletBinding(DefaultParameterSetName = "none")]
@@ -15520,27 +15576,41 @@ function Global:New-SgwS3AccessKey {
1552015576
Mandatory = $False,
1552115577
Position = 0,
1552215578
HelpMessage = "StorageGRID Webscale Management Server object. If not specified, global CurrentSgwServer object will be used.")][PSCustomObject]$Server,
15579+
[parameter(Mandatory = $False,
15580+
Position = 1,
15581+
HelpMessage = "StorageGRID Profile to use for connection.")][Alias("Profile")][String]$ProfileName,
1552315582
[parameter(
1552415583
Mandatory = $False,
15525-
Position = 1,
15584+
Position = 2,
1552615585
ParameterSetName = "account",
1552715586
ValueFromPipelineByPropertyName = $True,
1552815587
HelpMessage = "Id of the StorageGRID Webscale Account to create new S3 Access Key for.")][String]$AccountId,
1552915588
[parameter(
1553015589
Mandatory = $False,
15531-
Position = 2,
15590+
Position = 3,
1553215591
ParameterSetName = "user",
1553315592
ValueFromPipelineByPropertyName = $True,
1553415593
HelpMessage = "ID of a StorageGRID Webscale User.")][Alias("userUUID")][String]$UserId,
1553515594
[parameter(
1553615595
Mandatory = $False,
15537-
Position = 3,
15596+
Position = 4,
1553815597
ValueFromPipeline = $True,
1553915598
ValueFromPipelineByPropertyName = $True,
1554015599
HelpMessage = "Expiration date of the S3 Access Key.")][DateTime]$Expires
1554115600
)
1554215601

1554315602
Begin {
15603+
if (!$ProfileName -and !$Server -and !$CurrentSgwServer.Name) {
15604+
$ProfileName = "default"
15605+
}
15606+
if ($ProfileName) {
15607+
$Profile = Get-SgwProfile -ProfileName $ProfileName
15608+
if (!$Profile.Name) {
15609+
Throw "Profile $ProfileName not found. Create a profile using New-SgwProfile or connect to a StorageGRID Server using Connect-SgwServer"
15610+
}
15611+
$Server = Connect-SgwServer -Name $Profile.Name -Credential $Profile.Credential -AccountId $Profile.AccountId -SkipCertificateCheck:$Profile.SkipCertificateCheck -DisableAutomaticAccessKeyGeneration:$Profile.disalble_automatic_access_key_generation -TemporaryAccessKeyExpirationTime $Profile.temporary_access_key_expiration_time -S3EndpointUrl $Profile.S3EndpointUrl -SwiftEndpointUrl $Profile.SwiftEndpointUrl -Transient
15612+
}
15613+
1554415614
if (!$Server) {
1554515615
$Server = $Global:CurrentSgwServer
1554615616
}
@@ -15616,6 +15686,16 @@ Set-Alias -Name Remove-SgwAccountS3AccessKey -Value Remove-SgwS3AccessKey
1561615686
Delete a StorageGRID Webscale Account S3 Access Key
1561715687
.DESCRIPTION
1561815688
Delete a StorageGRID Webscale Account S3 Access Key
15689+
.PARAMETER Server
15690+
StorageGRID Webscale Management Server object. If not specified, global CurrentSgwServer object will be used.
15691+
.PARAMETER ProfileName
15692+
StorageGRID Profile to use for connection.
15693+
.PARAMETER AccountId
15694+
ID of a StorageGRID Webscale Account to get S3 Access Keys for.
15695+
.PARAMETER UserId
15696+
ID of a StorageGRID Webscale User.
15697+
.PARAMETER AccessKey
15698+
Access Key to delete.
1561915699
#>
1562015700
function Global:Remove-SgwS3AccessKey {
1562115701
[CmdletBinding()]
@@ -15624,28 +15704,42 @@ function Global:Remove-SgwS3AccessKey {
1562415704
[parameter(
1562515705
Mandatory = $False,
1562615706
Position = 0,
15707+
HelpMessage = "StorageGRID Webscale Management Server object. If not specified, global CurrentSgwServer object will be used.")][PSCustomObject]$Server,
15708+
[parameter(Mandatory = $False,
15709+
Position = 1,
15710+
HelpMessage = "StorageGRID Profile to use for connection.")][Alias("Profile")][String]$ProfileName,
15711+
[parameter(
15712+
Mandatory = $False,
15713+
Position = 2,
1562715714
HelpMessage = "Id of the StorageGRID Webscale Account to delete S3 Access Key for.",
1562815715
ValueFromPipeline = $True,
1562915716
ValueFromPipelineByPropertyName = $True)][String]$AccountId,
1563015717
[parameter(
1563115718
Mandatory = $False,
15632-
Position = 1,
15719+
Position = 3,
1563315720
HelpMessage = "ID of a StorageGRID Webscale User.",
1563415721
ValueFromPipeline = $True,
1563515722
ValueFromPipelineByPropertyName = $True)][Alias("userUUID")][String]$UserId,
1563615723
[parameter(
1563715724
Mandatory = $True,
15638-
Position = 2,
15725+
Position = 4,
1563915726
HelpMessage = "S3 Access Key ID to be deleted,",
1564015727
ValueFromPipeline = $True,
15641-
ValueFromPipelineByPropertyName = $True)][Alias("id")][String]$AccessKey,
15642-
[parameter(
15643-
Mandatory = $False,
15644-
Position = 3,
15645-
HelpMessage = "StorageGRID Webscale Management Server object. If not specified, global CurrentSgwServer object will be used.")][PSCustomObject]$Server
15728+
ValueFromPipelineByPropertyName = $True)][Alias("id")][String]$AccessKey
1564615729
)
1564715730

1564815731
Begin {
15732+
if (!$ProfileName -and !$Server -and !$CurrentSgwServer.Name) {
15733+
$ProfileName = "default"
15734+
}
15735+
if ($ProfileName) {
15736+
$Profile = Get-SgwProfile -ProfileName $ProfileName
15737+
if (!$Profile.Name) {
15738+
Throw "Profile $ProfileName not found. Create a profile using New-SgwProfile or connect to a StorageGRID Server using Connect-SgwServer"
15739+
}
15740+
$Server = Connect-SgwServer -Name $Profile.Name -Credential $Profile.Credential -AccountId $Profile.AccountId -SkipCertificateCheck:$Profile.SkipCertificateCheck -DisableAutomaticAccessKeyGeneration:$Profile.disalble_automatic_access_key_generation -TemporaryAccessKeyExpirationTime $Profile.temporary_access_key_expiration_time -S3EndpointUrl $Profile.S3EndpointUrl -SwiftEndpointUrl $Profile.SwiftEndpointUrl -Transient
15741+
}
15742+
1564915743
if (!$Server) {
1565015744
$Server = $Global:CurrentSgwServer
1565115745
}

0 commit comments

Comments
 (0)