04/18/18

REST Call (GET) with Powershell

This post is about “How can I use Powershell to get data from my vROps Instance over the API”?

It sounds really easy and the line of code for an invoke is really short but there are some painful points.
So we will start with a GET Method with Powershell for vROps.
This is the REST Call:

invoke-webrequest -credential $cred -Uri Invoke-RestMethod -Credential $RESTcredential -Uri https://vrops.pso.local/suite-api/api/adapters -ContentType "application/json" -Method Get

The $cred variable is based on the following code. It is important for me to haven’t the password in plain text.

$user = "admin"
$secpasswd = Get-Content C:\Users\kbruesch\Desktop\Scripts\RESTCallCreds.txt | ConvertTo-SecureString
$RESTcredential = New-Object System.Management.Automation.PSCredential($user, $secpasswd)

My biggest problem with this CALL was that I got always the same error message:
the underlying connection was closed: an unexpected error occurred on a send.

The solution for me wasn’t to easy allow self-signed certificates with: [System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}

I used this implementation in my script:
add-type @"
using System.Net;
using System.Security.Cryptography.X509Certificates;
public class TrustAllCertsPolicy : ICertificatePolicy {
public bool CheckValidationResult(
ServicePoint srvPoint, X509Certificate certificate,
WebRequest request, int certificateProblem) {
return true;
}
}
"@
[System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy

After your Invoke-Request is running you get an Status Code of 200 which means it was succeeded:
Bildschirmfoto 2018-04-18 um 22.40.52

Now you can use the content part to get all the data you want like Adapter Instance Name to Adapter Instance ID

04/16/18

Using the vROps API

Everytime I’m onsite at a customer the statement comes up … “What about the integration of…”. Sometimes you can say  “Yes, that is integrated per default”. But you have also these UseCases where you have no OOTB Solution. You can solve some of these with the REST API or Powershell Commands for vROps.
In the past I used a lot the REST API to get data or to push data to vROps. I was using Postman for all these tasks. But it was only to test some things and to start with the REST Call procedure.
Some stuff are easier to get or post over the API then to do it manually. But there are lots of things that are not possible over the API like Export of a vROps View or Dashboard creation … So it is not the mechanism to solve all problems but a lot. 😉

You will start with some easy things like to get all resources from vROps. Oh Yes, good point there is ofc an easier way called Powershell (try this):

Connect to the vROps Server Instance
#connect-omserver vROPsFQDN

List all resources from vRops
#get-omresource

Bildschirmfoto 2018-04-16 um 20.19.51

Or you can use the REST API instead:

Bildschirmfoto 2018-04-16 um 20.38.40

Bildschirmfoto 2018-04-16 um 20.38.18

Bildschirmfoto 2018-04-16 um 20.21.43

Here you can find the documentation for the vROps CLI CMDLETS (Link)

And here you get the API Documentation:

  • https://FQDNofyourvROps/suite-api/docs/rest/index.html

(keep in mind there are two different types of APIs – Public and Internal. Only the public one is supported by VMware

But I think one of the most requested things in the past are POST calls to extend vROps with content that are customer / UseCase related … So one of my next Post will be about how to automate a REST Call (POST) in vROps with the Powershell! For example your own script result in vROps?

04/16/18

VMware vRealize Automation in vRealize Operation Manager 6.7

After VMware announced the new vRealize Operations Manager Version 6.7 I think it is time to spend more time in writing some posts about my experiences over the last years.
There are some interesting features that are coming with 6.7 and I think there are lots of blogs (Like here) with the basic integration. So I don’t want to bother you with the exactly same stuff.

So let starts with the vRA Integration in vROps.

vRealize Automation – Adapter Version 4.0 (included in vROps)
In the release 6.6.1 with the vRA Solution Adapter maybe you already realized that there were some metrics missing which are really relevant to analyse or calculate vRA content like Business Groups or Reservations.
Most of my customer were using this Management Pack to see the relationships between objects like Reservation to Cluster … Business Groups to VM etc. Cause there were not so much more information about the vRA content. In the past you can remember you had usage metrics and total capacity.
Now in vRA 4.0 you can see again such stuff like Free, Allocation, Reserved, Used, Deployment Count, Failed Requests count and Total Reservation Count for Business Groups. Or similiar things for the whole tenant or the reservations. Furthermore you don’t need to create a Supermetric to count the VMs now you have a metric that shows you the VM Count for Business Group. 😉

Have fun …