functions/public/Get-ServiceFromDiscovery.ps1
function Get-ServiceFromDiscovery { param ( [Parameter(Position = 0, Mandatory = $true)] [ValidateNotNullOrEmpty()] [String] $name, [Parameter(Position = 1, Mandatory = $true)] [ValidateNotNullOrEmpty()] [String] $version, [Parameter(Position = 2, Mandatory = $true)] [ValidateNotNullOrEmpty()] [String] $discoveryServiceUrl ) $discoveryServiceQuery = "/Services?`$filter=ServiceName eq '$Name' and Version eq $Version&`$select=ServiceUrl" $uri = "$DiscoveryServiceUrl$discoveryServiceQuery" try { $response = Invoke-WebRequest -Uri $uri -Method GET -UseDefaultCredentials -UseBasicParsing } catch [System.Net.WebException] { Write-DosMessage -Level "Fatal" -Message "There was an error communicating with the Discovery Service.`n Request: $uri`n Status Code: $($_.Exception.Response.StatusCode.value__)`n Message: $($_.Exception.Response.StatusDescription)" } if (($response | ConvertFrom-Json).value.Length -eq 0) { Write-DosMessage -Level "Fatal" -Message "$Name (v$Version) could not be found with the Discovery Service. Please verify $Name has been installed and registered then try again." } return ($response | ConvertFrom-Json).value.ServiceUrl } |