IBM Urbancode AddVersionStatus API call from Powershell How?

467 views Asked by At
2

There are 2 answers

1
Adam Parsons On

Probably something like this...

$Hash = @{
        Component="StringValue"
        Version="StringValue"
        Status="StringValue"
        }


$Json = $Hash | ConvertTo-Json
$URL = "url-goes-here"
$Cred = Get-Credential

Invoke-RestMethod -Method "POST" -Uri $url -Credential $Cred -Body $Json
0
The Furious Bear On

I came across this post while trying to do the same thing. The problem for me was in knowing what exactly the correct URL was (see Adam Parsons' answer):

$URL = "url-goes-here"

After a lot of searching (IBM's documentation was not worth much in this effort), I was able to identify the correct URL by way of watching traffic in Chrome developer tools (thanks to Darrell Schrag's blog post: https://drschrag.wordpress.com/2013/10/03/the-udeploy-rest-api).

For those searching for this, my PowerShell REST call sequence now looks like this (and executes successfully):

$tokenEncoded = [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes( "PasswordIsAuthToken:{"token":"$authToken"}" ))
$headers = @{Authorization = "Basic "+$tokenEncoded}

# 1. Get component version ID
$uri = "$uDeployServer:8443/cli/version/getVersionId`?component=$componentName&version=$versionName"
$versionId=Invoke-RestMethod -Uri $uri -Method GET -Headers $headers

# 2. Add component version status
$uri = "$uDeployServer:8443/rest/deploy/version/$versionId/status/$versionStatus"
Invoke-RestMethod -Uri $uri -Method PUT -Headers $headers