mirror of
https://github.com/benclaussen/NetboxPS.git
synced 2025-12-13 18:02:29 +00:00
Move support functions to separate files for PSS Export functionality
This commit is contained in:
parent
ea05aef908
commit
839fe3e1e5
8 changed files with 359 additions and 298 deletions
102
Functions/DCIM/DCIM.Support.ps1
Normal file
102
Functions/DCIM/DCIM.Support.ps1
Normal file
|
|
@ -0,0 +1,102 @@
|
||||||
|
function ValidateDCIMChoice {
|
||||||
|
<#
|
||||||
|
.SYNOPSIS
|
||||||
|
Internal function to validate provided values for static choices
|
||||||
|
|
||||||
|
.DESCRIPTION
|
||||||
|
When users connect to the API, choices for each major object are cached to the config variable.
|
||||||
|
These values are then utilized to validate if the provided value from a user is valid.
|
||||||
|
|
||||||
|
.PARAMETER ProvidedValue
|
||||||
|
The value to validate against static choices
|
||||||
|
|
||||||
|
.PARAMETER PowerConnectionStatus
|
||||||
|
Validate against power connection status values
|
||||||
|
|
||||||
|
.PARAMETER InterfaceTemplateFormFactor
|
||||||
|
Validate against interface template form factor values
|
||||||
|
|
||||||
|
.PARAMETER InterfaceConnectionStatus
|
||||||
|
Validate against interface connection status values
|
||||||
|
|
||||||
|
.PARAMETER InterfaceFormFactor
|
||||||
|
Validate against interface form factor values
|
||||||
|
|
||||||
|
.PARAMETER ConsolePortConnectionStatus
|
||||||
|
Validate against console port connection status values
|
||||||
|
|
||||||
|
.PARAMETER DeviceStatus
|
||||||
|
Validate against device status values
|
||||||
|
|
||||||
|
.PARAMETER DeviceFace
|
||||||
|
Validate against device face values
|
||||||
|
|
||||||
|
.PARAMETER RackType
|
||||||
|
Validate against rack type values
|
||||||
|
|
||||||
|
.PARAMETER RackWidth
|
||||||
|
Validate against rack width values.
|
||||||
|
|
||||||
|
.EXAMPLE
|
||||||
|
PS C:\> ValidateDCIMChoice -ProvidedValue 'rear' -DeviceFace
|
||||||
|
|
||||||
|
.EXAMPLE
|
||||||
|
PS C:\> ValidateDCIMChoice -ProvidedValue 'middle' -DeviceFace
|
||||||
|
>> Invalid value middle for device:face. Must be one of: 0, 1, Front, Rear
|
||||||
|
|
||||||
|
.OUTPUTS
|
||||||
|
This function returns the integer value if valid. Otherwise, it will throw an error.
|
||||||
|
|
||||||
|
.NOTES
|
||||||
|
Additional information about the function.
|
||||||
|
|
||||||
|
.FUNCTIONALITY
|
||||||
|
This cmdlet is intended to be used internally and not exposed to the user
|
||||||
|
#>
|
||||||
|
|
||||||
|
[CmdletBinding()]
|
||||||
|
[OutputType([uint16])]
|
||||||
|
param
|
||||||
|
(
|
||||||
|
[Parameter(Mandatory = $true)]
|
||||||
|
[object]$ProvidedValue,
|
||||||
|
|
||||||
|
[Parameter(ParameterSetName = 'power-port:connection_status',
|
||||||
|
Mandatory = $true)]
|
||||||
|
[switch]$PowerConnectionStatus,
|
||||||
|
|
||||||
|
[Parameter(ParameterSetName = 'interface-template:form_factor',
|
||||||
|
Mandatory = $true)]
|
||||||
|
[switch]$InterfaceTemplateFormFactor,
|
||||||
|
|
||||||
|
[Parameter(ParameterSetName = 'interface-connection:connection_status',
|
||||||
|
Mandatory = $true)]
|
||||||
|
[switch]$InterfaceConnectionStatus,
|
||||||
|
|
||||||
|
[Parameter(ParameterSetName = 'interface:form_factor',
|
||||||
|
Mandatory = $true)]
|
||||||
|
[switch]$InterfaceFormFactor,
|
||||||
|
|
||||||
|
[Parameter(ParameterSetName = 'console-port:connection_status',
|
||||||
|
Mandatory = $true)]
|
||||||
|
[switch]$ConsolePortConnectionStatus,
|
||||||
|
|
||||||
|
[Parameter(ParameterSetName = 'device:status',
|
||||||
|
Mandatory = $true)]
|
||||||
|
[switch]$DeviceStatus,
|
||||||
|
|
||||||
|
[Parameter(ParameterSetName = 'device:face',
|
||||||
|
Mandatory = $true)]
|
||||||
|
[switch]$DeviceFace,
|
||||||
|
|
||||||
|
[Parameter(ParameterSetName = 'rack:type',
|
||||||
|
Mandatory = $true)]
|
||||||
|
[switch]$RackType,
|
||||||
|
|
||||||
|
[Parameter(ParameterSetName = 'rack:width',
|
||||||
|
Mandatory = $true)]
|
||||||
|
[switch]$RackWidth
|
||||||
|
)
|
||||||
|
|
||||||
|
ValidateChoice -MajorObject 'DCIM' -ChoiceName $PSCmdlet.ParameterSetName -ProvidedValue $ProvidedValue
|
||||||
|
}
|
||||||
|
|
@ -23,109 +23,6 @@ function Get-NetboxDCIMChoices {
|
||||||
InvokeNetboxRequest -URI $uri
|
InvokeNetboxRequest -URI $uri
|
||||||
}
|
}
|
||||||
|
|
||||||
function ValidateDCIMChoice {
|
|
||||||
<#
|
|
||||||
.SYNOPSIS
|
|
||||||
Internal function to validate provided values for static choices
|
|
||||||
|
|
||||||
.DESCRIPTION
|
|
||||||
When users connect to the API, choices for each major object are cached to the config variable.
|
|
||||||
These values are then utilized to validate if the provided value from a user is valid.
|
|
||||||
|
|
||||||
.PARAMETER ProvidedValue
|
|
||||||
The value to validate against static choices
|
|
||||||
|
|
||||||
.PARAMETER PowerConnectionStatus
|
|
||||||
Validate against power connection status values
|
|
||||||
|
|
||||||
.PARAMETER InterfaceTemplateFormFactor
|
|
||||||
Validate against interface template form factor values
|
|
||||||
|
|
||||||
.PARAMETER InterfaceConnectionStatus
|
|
||||||
Validate against interface connection status values
|
|
||||||
|
|
||||||
.PARAMETER InterfaceFormFactor
|
|
||||||
Validate against interface form factor values
|
|
||||||
|
|
||||||
.PARAMETER ConsolePortConnectionStatus
|
|
||||||
Validate against console port connection status values
|
|
||||||
|
|
||||||
.PARAMETER DeviceStatus
|
|
||||||
Validate against device status values
|
|
||||||
|
|
||||||
.PARAMETER DeviceFace
|
|
||||||
Validate against device face values
|
|
||||||
|
|
||||||
.PARAMETER RackType
|
|
||||||
Validate against rack type values
|
|
||||||
|
|
||||||
.PARAMETER RackWidth
|
|
||||||
Validate against rack width values.
|
|
||||||
|
|
||||||
.EXAMPLE
|
|
||||||
PS C:\> ValidateDCIMChoice -ProvidedValue 'rear' -DeviceFace
|
|
||||||
|
|
||||||
.EXAMPLE
|
|
||||||
PS C:\> ValidateDCIMChoice -ProvidedValue 'middle' -DeviceFace
|
|
||||||
>> Invalid value middle for device:face. Must be one of: 0, 1, Front, Rear
|
|
||||||
|
|
||||||
.OUTPUTS
|
|
||||||
This function returns the integer value if valid. Otherwise, it will throw an error.
|
|
||||||
|
|
||||||
.NOTES
|
|
||||||
Additional information about the function.
|
|
||||||
|
|
||||||
.FUNCTIONALITY
|
|
||||||
This cmdlet is intended to be used internally and not exposed to the user
|
|
||||||
#>
|
|
||||||
|
|
||||||
[CmdletBinding()]
|
|
||||||
[OutputType([uint16])]
|
|
||||||
param
|
|
||||||
(
|
|
||||||
[Parameter(Mandatory = $true)]
|
|
||||||
[object]$ProvidedValue,
|
|
||||||
|
|
||||||
[Parameter(ParameterSetName = 'power-port:connection_status',
|
|
||||||
Mandatory = $true)]
|
|
||||||
[switch]$PowerConnectionStatus,
|
|
||||||
|
|
||||||
[Parameter(ParameterSetName = 'interface-template:form_factor',
|
|
||||||
Mandatory = $true)]
|
|
||||||
[switch]$InterfaceTemplateFormFactor,
|
|
||||||
|
|
||||||
[Parameter(ParameterSetName = 'interface-connection:connection_status',
|
|
||||||
Mandatory = $true)]
|
|
||||||
[switch]$InterfaceConnectionStatus,
|
|
||||||
|
|
||||||
[Parameter(ParameterSetName = 'interface:form_factor',
|
|
||||||
Mandatory = $true)]
|
|
||||||
[switch]$InterfaceFormFactor,
|
|
||||||
|
|
||||||
[Parameter(ParameterSetName = 'console-port:connection_status',
|
|
||||||
Mandatory = $true)]
|
|
||||||
[switch]$ConsolePortConnectionStatus,
|
|
||||||
|
|
||||||
[Parameter(ParameterSetName = 'device:status',
|
|
||||||
Mandatory = $true)]
|
|
||||||
[switch]$DeviceStatus,
|
|
||||||
|
|
||||||
[Parameter(ParameterSetName = 'device:face',
|
|
||||||
Mandatory = $true)]
|
|
||||||
[switch]$DeviceFace,
|
|
||||||
|
|
||||||
[Parameter(ParameterSetName = 'rack:type',
|
|
||||||
Mandatory = $true)]
|
|
||||||
[switch]$RackType,
|
|
||||||
|
|
||||||
[Parameter(ParameterSetName = 'rack:width',
|
|
||||||
Mandatory = $true)]
|
|
||||||
[switch]$RackWidth
|
|
||||||
)
|
|
||||||
|
|
||||||
ValidateChoice -MajorObject 'DCIM' -ChoiceName $PSCmdlet.ParameterSetName -ProvidedValue $ProvidedValue
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#region GET commands
|
#region GET commands
|
||||||
|
|
||||||
|
|
|
||||||
95
Functions/IPAM/IPAM.Support.ps1
Normal file
95
Functions/IPAM/IPAM.Support.ps1
Normal file
|
|
@ -0,0 +1,95 @@
|
||||||
|
function ValidateIPAMChoice {
|
||||||
|
<#
|
||||||
|
.SYNOPSIS
|
||||||
|
Internal function to verify provided values for static choices
|
||||||
|
|
||||||
|
.DESCRIPTION
|
||||||
|
When users connect to the API, choices for each major object are cached to the config variable.
|
||||||
|
These values are then utilized to verify if the provided value from a user is valid.
|
||||||
|
|
||||||
|
.PARAMETER ProvidedValue
|
||||||
|
The value to validate against static choices
|
||||||
|
|
||||||
|
.PARAMETER AggregateFamily
|
||||||
|
Verify against aggregate family values
|
||||||
|
|
||||||
|
.PARAMETER PrefixFamily
|
||||||
|
Verify against prefix family values
|
||||||
|
|
||||||
|
.PARAMETER PrefixStatus
|
||||||
|
Verify against prefix status values
|
||||||
|
|
||||||
|
.PARAMETER IPAddressFamily
|
||||||
|
Verify against ip-address family values
|
||||||
|
|
||||||
|
.PARAMETER IPAddressStatus
|
||||||
|
Verify against ip-address status values
|
||||||
|
|
||||||
|
.PARAMETER IPAddressRole
|
||||||
|
Verify against ip-address role values
|
||||||
|
|
||||||
|
.PARAMETER VLANStatus
|
||||||
|
Verify against VLAN status values
|
||||||
|
|
||||||
|
.PARAMETER ServiceProtocol
|
||||||
|
Verify against service protocol values
|
||||||
|
|
||||||
|
.EXAMPLE
|
||||||
|
PS C:\> ValidateIPAMChoice -ProvidedValue 'loopback' -IPAddressRole
|
||||||
|
|
||||||
|
.EXAMPLE
|
||||||
|
PS C:\> ValidateIPAMChoice -ProvidedValue 'Loopback' -IPAddressFamily
|
||||||
|
>> Invalid value Loopback for ip-address:family. Must be one of: 4, 6, IPv4, IPv6
|
||||||
|
|
||||||
|
.OUTPUTS
|
||||||
|
This function returns the integer value if valid. Otherwise, it will throw an error.
|
||||||
|
|
||||||
|
.NOTES
|
||||||
|
Additional information about the function.
|
||||||
|
|
||||||
|
.FUNCTIONALITY
|
||||||
|
This cmdlet is intended to be used internally and not exposed to the user
|
||||||
|
#>
|
||||||
|
|
||||||
|
[CmdletBinding(DefaultParameterSetName = 'service:protocol')]
|
||||||
|
[OutputType([uint16])]
|
||||||
|
param
|
||||||
|
(
|
||||||
|
[Parameter(Mandatory = $true)]
|
||||||
|
[object]$ProvidedValue,
|
||||||
|
|
||||||
|
[Parameter(ParameterSetName = 'aggregate:family',
|
||||||
|
Mandatory = $true)]
|
||||||
|
[switch]$AggregateFamily,
|
||||||
|
|
||||||
|
[Parameter(ParameterSetName = 'prefix:family',
|
||||||
|
Mandatory = $true)]
|
||||||
|
[switch]$PrefixFamily,
|
||||||
|
|
||||||
|
[Parameter(ParameterSetName = 'prefix:status',
|
||||||
|
Mandatory = $true)]
|
||||||
|
[switch]$PrefixStatus,
|
||||||
|
|
||||||
|
[Parameter(ParameterSetName = 'ip-address:family',
|
||||||
|
Mandatory = $true)]
|
||||||
|
[switch]$IPAddressFamily,
|
||||||
|
|
||||||
|
[Parameter(ParameterSetName = 'ip-address:status',
|
||||||
|
Mandatory = $true)]
|
||||||
|
[switch]$IPAddressStatus,
|
||||||
|
|
||||||
|
[Parameter(ParameterSetName = 'ip-address:role',
|
||||||
|
Mandatory = $true)]
|
||||||
|
[switch]$IPAddressRole,
|
||||||
|
|
||||||
|
[Parameter(ParameterSetName = 'vlan:status',
|
||||||
|
Mandatory = $true)]
|
||||||
|
[switch]$VLANStatus,
|
||||||
|
|
||||||
|
[Parameter(ParameterSetName = 'service:protocol',
|
||||||
|
Mandatory = $true)]
|
||||||
|
[switch]$ServiceProtocol
|
||||||
|
)
|
||||||
|
|
||||||
|
ValidateChoice -MajorObject 'IPAM' -ChoiceName $PSCmdlet.ParameterSetName -ProvidedValue $ProvidedValue
|
||||||
|
}
|
||||||
|
|
@ -23,102 +23,7 @@ function Get-NetboxIPAMChoices {
|
||||||
InvokeNetboxRequest -URI $uri
|
InvokeNetboxRequest -URI $uri
|
||||||
}
|
}
|
||||||
|
|
||||||
function ValidateIPAMChoice {
|
#region GET commands
|
||||||
<#
|
|
||||||
.SYNOPSIS
|
|
||||||
Internal function to verify provided values for static choices
|
|
||||||
|
|
||||||
.DESCRIPTION
|
|
||||||
When users connect to the API, choices for each major object are cached to the config variable.
|
|
||||||
These values are then utilized to verify if the provided value from a user is valid.
|
|
||||||
|
|
||||||
.PARAMETER ProvidedValue
|
|
||||||
The value to validate against static choices
|
|
||||||
|
|
||||||
.PARAMETER AggregateFamily
|
|
||||||
Verify against aggregate family values
|
|
||||||
|
|
||||||
.PARAMETER PrefixFamily
|
|
||||||
Verify against prefix family values
|
|
||||||
|
|
||||||
.PARAMETER PrefixStatus
|
|
||||||
Verify against prefix status values
|
|
||||||
|
|
||||||
.PARAMETER IPAddressFamily
|
|
||||||
Verify against ip-address family values
|
|
||||||
|
|
||||||
.PARAMETER IPAddressStatus
|
|
||||||
Verify against ip-address status values
|
|
||||||
|
|
||||||
.PARAMETER IPAddressRole
|
|
||||||
Verify against ip-address role values
|
|
||||||
|
|
||||||
.PARAMETER VLANStatus
|
|
||||||
Verify against VLAN status values
|
|
||||||
|
|
||||||
.PARAMETER ServiceProtocol
|
|
||||||
Verify against service protocol values
|
|
||||||
|
|
||||||
.EXAMPLE
|
|
||||||
PS C:\> ValidateIPAMChoice -ProvidedValue 'loopback' -IPAddressRole
|
|
||||||
|
|
||||||
.EXAMPLE
|
|
||||||
PS C:\> ValidateIPAMChoice -ProvidedValue 'Loopback' -IPAddressFamily
|
|
||||||
>> Invalid value Loopback for ip-address:family. Must be one of: 4, 6, IPv4, IPv6
|
|
||||||
|
|
||||||
.OUTPUTS
|
|
||||||
This function returns the integer value if valid. Otherwise, it will throw an error.
|
|
||||||
|
|
||||||
.NOTES
|
|
||||||
Additional information about the function.
|
|
||||||
|
|
||||||
.FUNCTIONALITY
|
|
||||||
This cmdlet is intended to be used internally and not exposed to the user
|
|
||||||
#>
|
|
||||||
|
|
||||||
[CmdletBinding(DefaultParameterSetName = 'service:protocol')]
|
|
||||||
[OutputType([uint16])]
|
|
||||||
param
|
|
||||||
(
|
|
||||||
[Parameter(Mandatory = $true)]
|
|
||||||
[object]$ProvidedValue,
|
|
||||||
|
|
||||||
[Parameter(ParameterSetName = 'aggregate:family',
|
|
||||||
Mandatory = $true)]
|
|
||||||
[switch]$AggregateFamily,
|
|
||||||
|
|
||||||
[Parameter(ParameterSetName = 'prefix:family',
|
|
||||||
Mandatory = $true)]
|
|
||||||
[switch]$PrefixFamily,
|
|
||||||
|
|
||||||
[Parameter(ParameterSetName = 'prefix:status',
|
|
||||||
Mandatory = $true)]
|
|
||||||
[switch]$PrefixStatus,
|
|
||||||
|
|
||||||
[Parameter(ParameterSetName = 'ip-address:family',
|
|
||||||
Mandatory = $true)]
|
|
||||||
[switch]$IPAddressFamily,
|
|
||||||
|
|
||||||
[Parameter(ParameterSetName = 'ip-address:status',
|
|
||||||
Mandatory = $true)]
|
|
||||||
[switch]$IPAddressStatus,
|
|
||||||
|
|
||||||
[Parameter(ParameterSetName = 'ip-address:role',
|
|
||||||
Mandatory = $true)]
|
|
||||||
[switch]$IPAddressRole,
|
|
||||||
|
|
||||||
[Parameter(ParameterSetName = 'vlan:status',
|
|
||||||
Mandatory = $true)]
|
|
||||||
[switch]$VLANStatus,
|
|
||||||
|
|
||||||
[Parameter(ParameterSetName = 'service:protocol',
|
|
||||||
Mandatory = $true)]
|
|
||||||
[switch]$ServiceProtocol
|
|
||||||
)
|
|
||||||
|
|
||||||
ValidateChoice -MajorObject 'IPAM' -ChoiceName $PSCmdlet.ParameterSetName -ProvidedValue $ProvidedValue
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function Get-NetboxIPAMAggregate {
|
function Get-NetboxIPAMAggregate {
|
||||||
[CmdletBinding()]
|
[CmdletBinding()]
|
||||||
|
|
@ -418,6 +323,11 @@ function Get-NetboxIPAMPrefix {
|
||||||
InvokeNetboxRequest -URI $uri -Raw:$Raw
|
InvokeNetboxRequest -URI $uri -Raw:$Raw
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endregion GET commands
|
||||||
|
|
||||||
|
|
||||||
|
#region NEW commands
|
||||||
|
|
||||||
function New-NetboxIPAMAddress {
|
function New-NetboxIPAMAddress {
|
||||||
<#
|
<#
|
||||||
.SYNOPSIS
|
.SYNOPSIS
|
||||||
|
|
@ -504,6 +414,58 @@ function New-NetboxIPAMAddress {
|
||||||
InvokeNetboxRequest -URI $URI -Method POST -Body $URIComponents.Parameters -Raw:$Raw
|
InvokeNetboxRequest -URI $URI -Method POST -Body $URIComponents.Parameters -Raw:$Raw
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function New-NetboxIPAMPrefix {
|
||||||
|
[CmdletBinding()]
|
||||||
|
param
|
||||||
|
(
|
||||||
|
[Parameter(Mandatory = $true)]
|
||||||
|
[string]$Prefix,
|
||||||
|
|
||||||
|
[object]$Status = 'Active',
|
||||||
|
|
||||||
|
[uint16]$Tenant,
|
||||||
|
|
||||||
|
[object]$Role,
|
||||||
|
|
||||||
|
[bool]$IsPool,
|
||||||
|
|
||||||
|
[string]$Description,
|
||||||
|
|
||||||
|
[uint16]$Site,
|
||||||
|
|
||||||
|
[uint16]$VRF,
|
||||||
|
|
||||||
|
[uint16]$VLAN,
|
||||||
|
|
||||||
|
[hashtable]$Custom_Fields,
|
||||||
|
|
||||||
|
[switch]$Raw
|
||||||
|
)
|
||||||
|
|
||||||
|
$PSBoundParameters.Status = ValidateIPAMChoice -ProvidedValue $Status -PrefixStatus
|
||||||
|
|
||||||
|
<#
|
||||||
|
# As of 2018/10/18, this does not appear to be a validated IPAM choice
|
||||||
|
if ($null -ne $Role) {
|
||||||
|
$PSBoundParameters.Role = ValidateIPAMChoice -ProvidedValue $Role -PrefixRole
|
||||||
|
}
|
||||||
|
#>
|
||||||
|
|
||||||
|
$segments = [System.Collections.ArrayList]::new(@('ipam', 'prefixes'))
|
||||||
|
|
||||||
|
$URIComponents = BuildURIComponents -URISegments $segments -ParametersDictionary $PSBoundParameters
|
||||||
|
|
||||||
|
$URI = BuildNewURI -Segments $URIComponents.Segments
|
||||||
|
|
||||||
|
InvokeNetboxRequest -URI $URI -Method POST -Body $URIComponents.Parameters -Raw:$Raw
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#endregion ADD commands
|
||||||
|
|
||||||
|
|
||||||
|
#region REMOVE commands
|
||||||
|
|
||||||
function Remove-NetboxIPAMAddress {
|
function Remove-NetboxIPAMAddress {
|
||||||
<#
|
<#
|
||||||
.SYNOPSIS
|
.SYNOPSIS
|
||||||
|
|
@ -557,6 +519,11 @@ function Remove-NetboxIPAMAddress {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endregion REMOVE commands
|
||||||
|
|
||||||
|
|
||||||
|
#region SET commands
|
||||||
|
|
||||||
function Set-NetboxIPAMAddress {
|
function Set-NetboxIPAMAddress {
|
||||||
[CmdletBinding(ConfirmImpact = 'Medium',
|
[CmdletBinding(ConfirmImpact = 'Medium',
|
||||||
SupportsShouldProcess = $true)]
|
SupportsShouldProcess = $true)]
|
||||||
|
|
@ -618,6 +585,7 @@ function Set-NetboxIPAMAddress {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endregion SET commands
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
34
Functions/Setup.Support.ps1
Normal file
34
Functions/Setup.Support.ps1
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
function VerifyAPIConnectivity {
|
||||||
|
[CmdletBinding()]
|
||||||
|
param ()
|
||||||
|
|
||||||
|
$uriSegments = [System.Collections.ArrayList]::new(@('extras', '_choices'))
|
||||||
|
|
||||||
|
$uri = BuildNewURI -Segments $uriSegments -SkipConnectedCheck
|
||||||
|
|
||||||
|
InvokeNetboxRequest -URI $uri
|
||||||
|
}
|
||||||
|
|
||||||
|
function SetupNetboxConfigVariable {
|
||||||
|
[CmdletBinding()]
|
||||||
|
param
|
||||||
|
(
|
||||||
|
[switch]$Overwrite
|
||||||
|
)
|
||||||
|
|
||||||
|
Write-Verbose "Checking for NetboxConfig hashtable"
|
||||||
|
if ((-not ($script:NetboxConfig)) -or $Overwrite) {
|
||||||
|
Write-Verbose "Creating NetboxConfig hashtable"
|
||||||
|
$script:NetboxConfig = @{
|
||||||
|
'Connected' = $false
|
||||||
|
'Choices' = @{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Verbose "NetboxConfig hashtable already exists"
|
||||||
|
}
|
||||||
|
|
||||||
|
function GetNetboxConfigVariable {
|
||||||
|
return $script:NetboxConfig
|
||||||
|
}
|
||||||
|
|
@ -12,29 +12,6 @@
|
||||||
to a Netbox API
|
to a Netbox API
|
||||||
#>
|
#>
|
||||||
|
|
||||||
function SetupNetboxConfigVariable {
|
|
||||||
[CmdletBinding()]
|
|
||||||
param
|
|
||||||
(
|
|
||||||
[switch]$Overwrite
|
|
||||||
)
|
|
||||||
|
|
||||||
Write-Verbose "Checking for NetboxConfig hashtable"
|
|
||||||
if ((-not ($script:NetboxConfig)) -or $Overwrite) {
|
|
||||||
Write-Verbose "Creating NetboxConfig hashtable"
|
|
||||||
$script:NetboxConfig = @{
|
|
||||||
'Connected' = $false
|
|
||||||
'Choices' = @{}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Write-Verbose "NetboxConfig hashtable already exists"
|
|
||||||
}
|
|
||||||
|
|
||||||
function GetNetboxConfigVariable {
|
|
||||||
return $script:NetboxConfig
|
|
||||||
}
|
|
||||||
|
|
||||||
function Set-NetboxHostName {
|
function Set-NetboxHostName {
|
||||||
[CmdletBinding(ConfirmImpact = 'Low',
|
[CmdletBinding(ConfirmImpact = 'Low',
|
||||||
SupportsShouldProcess = $true)]
|
SupportsShouldProcess = $true)]
|
||||||
|
|
@ -108,17 +85,6 @@ function Get-NetboxCredential {
|
||||||
$script:NetboxConfig.Credential
|
$script:NetboxConfig.Credential
|
||||||
}
|
}
|
||||||
|
|
||||||
function VerifyAPIConnectivity {
|
|
||||||
[CmdletBinding()]
|
|
||||||
param ()
|
|
||||||
|
|
||||||
$uriSegments = [System.Collections.ArrayList]::new(@('extras', '_choices'))
|
|
||||||
|
|
||||||
$uri = BuildNewURI -Segments $uriSegments -SkipConnectedCheck
|
|
||||||
|
|
||||||
InvokeNetboxRequest -URI $uri
|
|
||||||
}
|
|
||||||
|
|
||||||
function Connect-NetboxAPI {
|
function Connect-NetboxAPI {
|
||||||
<#
|
<#
|
||||||
.SYNOPSIS
|
.SYNOPSIS
|
||||||
|
|
@ -187,7 +153,7 @@ function Connect-NetboxAPI {
|
||||||
$script:NetboxConfig.Choices.Extras = Get-NetboxExtrasChoices
|
$script:NetboxConfig.Choices.Extras = Get-NetboxExtrasChoices
|
||||||
$script:NetboxConfig.Choices.IPAM = Get-NetboxIPAMChoices
|
$script:NetboxConfig.Choices.IPAM = Get-NetboxIPAMChoices
|
||||||
#$script:NetboxConfig.Choices.Secrets = Get-NetboxSecretsChoices # Not completed yet
|
#$script:NetboxConfig.Choices.Secrets = Get-NetboxSecretsChoices # Not completed yet
|
||||||
#$script:NetboxConfig.Choices.Tenancy = Get-NetboxTenancyChoices # Not completed yet
|
#$script:NetboxConfig.Choices.Tenancy = Get-NetboxTenancyChoices
|
||||||
$script:NetboxConfig.Choices.Virtualization = Get-NetboxVirtualizationChoices
|
$script:NetboxConfig.Choices.Virtualization = Get-NetboxVirtualizationChoices
|
||||||
|
|
||||||
Write-Verbose "Connection process completed"
|
Write-Verbose "Connection process completed"
|
||||||
|
|
|
||||||
63
Functions/Virtualization/Virtualization.Support.ps1
Normal file
63
Functions/Virtualization/Virtualization.Support.ps1
Normal file
|
|
@ -0,0 +1,63 @@
|
||||||
|
function ValidateVirtualizationChoice {
|
||||||
|
<#
|
||||||
|
.SYNOPSIS
|
||||||
|
Internal function to verify provided values for static choices
|
||||||
|
|
||||||
|
.DESCRIPTION
|
||||||
|
When users connect to the API, choices for each major object are cached to the config variable.
|
||||||
|
These values are then utilized to verify if the provided value from a user is valid.
|
||||||
|
|
||||||
|
.PARAMETER ProvidedValue
|
||||||
|
The value to validate against static choices
|
||||||
|
|
||||||
|
.PARAMETER AggregateFamily
|
||||||
|
Verify against aggregate family values
|
||||||
|
|
||||||
|
.PARAMETER PrefixFamily
|
||||||
|
Verify against prefix family values
|
||||||
|
|
||||||
|
.PARAMETER PrefixStatus
|
||||||
|
Verify against prefix status values
|
||||||
|
|
||||||
|
.PARAMETER IPAddressFamily
|
||||||
|
Verify against ip-address family values
|
||||||
|
|
||||||
|
.PARAMETER IPAddressStatus
|
||||||
|
Verify against ip-address status values
|
||||||
|
|
||||||
|
.PARAMETER IPAddressRole
|
||||||
|
Verify against ip-address role values
|
||||||
|
|
||||||
|
.PARAMETER VLANStatus
|
||||||
|
Verify against VLAN status values
|
||||||
|
|
||||||
|
.PARAMETER ServiceProtocol
|
||||||
|
Verify against service protocol values
|
||||||
|
|
||||||
|
.EXAMPLE
|
||||||
|
PS C:\> VerifyIPAMChoices -ProvidedValue 'loopback' -IPAddressRole
|
||||||
|
|
||||||
|
.EXAMPLE
|
||||||
|
PS C:\> VerifyIPAMChoices -ProvidedValue 'Loopback' -IPAddressFamily
|
||||||
|
>> Invalid value Loopback for ip-address:family. Must be one of: 4, 6, IPv4, IPv6
|
||||||
|
|
||||||
|
.FUNCTIONALITY
|
||||||
|
This cmdlet is intended to be used internally and not exposed to the user
|
||||||
|
|
||||||
|
.OUTPUT
|
||||||
|
This function returns nothing if the value is valid. Otherwise, it will throw an error.
|
||||||
|
#>
|
||||||
|
|
||||||
|
[CmdletBinding()]
|
||||||
|
param
|
||||||
|
(
|
||||||
|
[Parameter(Mandatory = $true)]
|
||||||
|
[object]$ProvidedValue,
|
||||||
|
|
||||||
|
[Parameter(ParameterSetName = 'virtual-machine:status',
|
||||||
|
Mandatory = $true)]
|
||||||
|
[switch]$VirtualMachineStatus
|
||||||
|
)
|
||||||
|
|
||||||
|
ValidateChoice -MajorObject 'Virtualization' -ChoiceName $PSCmdlet.ParameterSetName -ProvidedValue $ProvidedValue
|
||||||
|
}
|
||||||
|
|
@ -11,70 +11,6 @@
|
||||||
Virtualization object functions
|
Virtualization object functions
|
||||||
#>
|
#>
|
||||||
|
|
||||||
function ValidateVirtualizationChoice {
|
|
||||||
<#
|
|
||||||
.SYNOPSIS
|
|
||||||
Internal function to verify provided values for static choices
|
|
||||||
|
|
||||||
.DESCRIPTION
|
|
||||||
When users connect to the API, choices for each major object are cached to the config variable.
|
|
||||||
These values are then utilized to verify if the provided value from a user is valid.
|
|
||||||
|
|
||||||
.PARAMETER ProvidedValue
|
|
||||||
The value to validate against static choices
|
|
||||||
|
|
||||||
.PARAMETER AggregateFamily
|
|
||||||
Verify against aggregate family values
|
|
||||||
|
|
||||||
.PARAMETER PrefixFamily
|
|
||||||
Verify against prefix family values
|
|
||||||
|
|
||||||
.PARAMETER PrefixStatus
|
|
||||||
Verify against prefix status values
|
|
||||||
|
|
||||||
.PARAMETER IPAddressFamily
|
|
||||||
Verify against ip-address family values
|
|
||||||
|
|
||||||
.PARAMETER IPAddressStatus
|
|
||||||
Verify against ip-address status values
|
|
||||||
|
|
||||||
.PARAMETER IPAddressRole
|
|
||||||
Verify against ip-address role values
|
|
||||||
|
|
||||||
.PARAMETER VLANStatus
|
|
||||||
Verify against VLAN status values
|
|
||||||
|
|
||||||
.PARAMETER ServiceProtocol
|
|
||||||
Verify against service protocol values
|
|
||||||
|
|
||||||
.EXAMPLE
|
|
||||||
PS C:\> VerifyIPAMChoices -ProvidedValue 'loopback' -IPAddressRole
|
|
||||||
|
|
||||||
.EXAMPLE
|
|
||||||
PS C:\> VerifyIPAMChoices -ProvidedValue 'Loopback' -IPAddressFamily
|
|
||||||
>> Invalid value Loopback for ip-address:family. Must be one of: 4, 6, IPv4, IPv6
|
|
||||||
|
|
||||||
.FUNCTIONALITY
|
|
||||||
This cmdlet is intended to be used internally and not exposed to the user
|
|
||||||
|
|
||||||
.OUTPUT
|
|
||||||
This function returns nothing if the value is valid. Otherwise, it will throw an error.
|
|
||||||
#>
|
|
||||||
|
|
||||||
[CmdletBinding()]
|
|
||||||
param
|
|
||||||
(
|
|
||||||
[Parameter(Mandatory = $true)]
|
|
||||||
[object]$ProvidedValue,
|
|
||||||
|
|
||||||
[Parameter(ParameterSetName = 'virtual-machine:status',
|
|
||||||
Mandatory = $true)]
|
|
||||||
[switch]$VirtualMachineStatus
|
|
||||||
)
|
|
||||||
|
|
||||||
ValidateChoice -MajorObject 'Virtualization' -ChoiceName $PSCmdlet.ParameterSetName -ProvidedValue $ProvidedValue
|
|
||||||
}
|
|
||||||
|
|
||||||
#region GET commands
|
#region GET commands
|
||||||
|
|
||||||
function Get-NetboxVirtualizationChoices {
|
function Get-NetboxVirtualizationChoices {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue