HP OneView User Manual

Page 329

Advertising
background image

Write-Host "Enter username"
$secUsername = Read-Host -AsSecureString
$username =

[Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($secUsername))

Write-Host "Enter password"
$secPassword = Read-Host -AsSecureString
$password =

[Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($secPassword))

$absolutePath = $backupDirectory + $backupFile

Write-Host "If using Active Directory, enter the Active Directory domain"
Write-Host " (Leave this field blank if not using Active Directory.)"
$ADName = Read-Host

$loginVals = @{ hostname = $hostname; userName = $username; password = $password; backupPath = $absolutePath;

backupFile = $backupFile; authLoginDomain = $ADName; }

return $loginVals
}

##### getApiVersion: Get X_API_Version #####
function getApiVersion ([int32] $currentApiVersion,[string]$hostname)
{
<#
.DESCRIPTION
Sends a web request to the appliance to obtain the current Api version.
Returns the lower of: Api version supported by the script and Api version
supported by the appliance.

.PARAMETER currentApiVersion
Api version that the script is currently using

.PARAMETER hostname
The appliance address to send the request to (in https://{ipaddress} format)

.INPUTS
None, does not accept piping

.OUTPUTS
Outputs the new active Api version

.EXAMPLE
$global:scriptApiVersion = getApiVersion()
#>

# the particular Uri on the Appliance to reqest the Api Version
$versionUri = "/rest/version"

# append the Uri to the end of the IP address to obtain a full Uri
$fullVersionUri = $hostname + $versionUri

# use setup-request to issue the REST request api version and get the response
try
{
$applianceVersionJson = setup-request -Uri $fullVersionUri -method "GET" -accept "application/json"
-contentType "application/json"
if ($applianceVersionJson -ne $null)
{
$applianceVersion = $applianceVersionJson | convertFrom-Json
$currentApplianceVersion = $applianceVersion.currentVersion
if ($currentApplianceVersion -lt $currentApiVersion)
{
return $currentApplianceVersion
}
return $currentApiVersion
}
}
catch [System.Exception]
{
if ($global:interactiveMode -eq 1)
{
Write-Host $error[0].Exception.Message
}
else
{
Write-EventLog -EventId 100 -LogName Application -Source backup.ps1 -Message $error[0].Exception.Message

}
}
}

##### Send the login request to the appliance #####
function login-appliance ([string]$username,[string]$password,[string]$hostname,[string]$ADName)
{
<#
.DESCRIPTION
Attempts to send a web request to the appliance and obtain an authorized sessionID.

C.2 Sample restore script 329

Advertising