blob: 0675737d7db63bef0f8da212bfcfa8b1df762190 [file] [log] [blame]
## Licensed to the Apache Software Foundation (ASF) under one
## or more contributor license agreements. See the NOTICE file
## distributed with this work for additional information
## regarding copyright ownership. The ASF licenses this file
## to you under the Apache License, Version 2.0 (the
## "License"); you may not use this file except in compliance
## with the License. You may obtain a copy of the License at
##
## http://www.apache.org/licenses/LICENSE-2.0
##
## Unless required by applicable law or agreed to in writing,
## software distributed under the License is distributed on an
## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
## KIND, either express or implied. See the License for the
## specific language governing permissions and limitations
## under the License.
$UserAgent = $("{0} (PowerShell {1}; .NET CLR {2}; {3})" -f "SCOM MP",
$(if ($Host.Version) { $Host.Version } else { "1.0" }),
[Environment]::Version,
[Environment]::OSVersion.ToString().Replace("Microsoft Windows ", "Win"))
function InvokeRestAPI($uri, [string]$username, [string]$password) {
# TODO: Remove prior to release!
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = { $true }
$request = [System.Net.HttpWebRequest]::Create($uri)
$request.Method = 'GET'
$request.UserAgent = $UserAgent
$request.ServicePoint.ConnectionLimit = 100
$request.ServicePoint.ConnectionLeaseTimeout = 0
$request.ServicePoint.MaxIdleTime = 1
$request.Timeout = 90000
$credentials = [Convert]::ToBase64String([Text.Encoding]::Default.GetBytes($username + ':' + $password));
$request.Headers.Add('Authorization', "Basic $credentials")
$request.Headers.Add('X-Requested-By', "X-Requested-By")
$response = $request.GetResponse()
if ($response.StatusCode -ne [System.Net.HttpStatusCode]::OK) {
throw "Ambari API response status is $($response.StatusDescription)."
}
$reader = [IO.StreamReader] $response.GetResponseStream()
$jsonString = $reader.ReadToEnd()
$reader.Close()
$response.Close()
ParseJsonString $jsonString
}
function JoinUri([string]$baseUri, [string]$segment) {
$baseUri.TrimEnd('/') + '/' + $segment.TrimStart('/')
}