1+ <#
2+ . SYNOPSIS
3+ Get NetBackup Jobs from master server.
4+ . DESCRIPTION
5+ Gets the list of jobs from the master server.
6+ See https://Masterserver:1556/api-docs/index.html?
7+ . PARAMETER assetType
8+ The ability to filter vms or vmgroups
9+ . EXAMPLE
10+ Get-NbAssets -assetType vm or vmGroup
11+ . OUTPUTS
12+ Array
13+ . NOTES
14+ FunctionName : Get-NbAssets
15+ Created by : Nick Britton
16+ #>
17+
18+ function Get-NbAssets ()
19+ {
20+ [CmdletBinding ()]
21+ param (
22+ [Parameter (Mandatory = $true ,
23+ HelpMessage = " AssetType needs to specifiy vm or vmGroup" )]
24+ [string ]$assetType
25+
26+ )
27+ $assetType = " vm"
28+ # FUNCTION START
29+ $results = @ ()
30+ $uri = $basepath + $assetServiceUri
31+
32+ $default_sort = " commonAssetAttributes.displayName"
33+
34+ if ($assetType -eq " vm" ){
35+ $assetTypeFilter = " assetType eq 'vm'"
36+ }
37+ elseif ($assetType -eq " vmGroup" ){
38+ $assetTypeFilter = " assetType eq 'vmGroup'"
39+ }
40+ $offset = 0
41+ $next = $true
42+
43+ while ($next ){
44+
45+ $assetServiceUri = " /asset-service/workloads/vmware/assets"
46+ $uri = $basepath + $assetServiceUri
47+ $query_params = @ {
48+ " filter" = " $assetTypeFilter "
49+ " sort" = " commonAssetAttributes.displayName"
50+ " page[offset]" = " $offset "
51+ " page[limit]" = " 100"
52+ }
53+
54+ $response = Invoke-WebRequest - Uri $uri - Method GET - Body $query_params - ContentType $nbcontent_type - Headers $nbheaders
55+
56+ if ($response.StatusCode -ne 200 ) { throw " Unable to get VMware assets.`n " }
57+
58+ $api_response = (ConvertFrom-Json - InputObject $response )
59+
60+ $results += $api_response
61+ # write-host "offset is $offset"
62+ $offset = $offset + $api_response.meta.pagination.limit
63+ if ($api_response.meta.pagination.hasNext -eq $false ){ $next = $false }
64+
65+ }
66+ $assetarray = $results.data
67+ Return $assetarray
68+ }
0 commit comments