Wie versprochen kümmern wir uns heute um das Auslesen von Daten aus vRealize Operations (vROps) mittels der neuen REST based API.
Wichtig ist hierbei die folgende URL:
https://VROPS/suite-api VROPS mit der IP Adresse oder dem Host Namen der vROps Instanz ersetzten.
In der Dokumentation ist immer wieder api/…. anzutreffen. Für uns ist das der Hinweis, die Basis URL um die jeweiligen API Funktionen zu erweitern. Also schauen wir uns das mal genauer an.
Wir wollen als erste REST Übung die Basis Informationen einer Resource erfragen. Sprich die Resource Details. Wenn wir uns hierzu die Dokumentation unter http://VROPS/suite-api/docs/rest/index.html ansehen, dann findet sich unter /api/resources die Funktion getResources die via /api/resources zum Ergebnis führt .
Also wie erwähnt lautet die URL dann https://VROPS/suite-api/api/resources
Da das Ganze ein GET ist, wollen wir uns das erstmal ohne Programmierung in einem Browser ansehen. Hierzu einfach die obige URL eingeben und ausführen. Wenn noch nicht angemeldet, erscheint ein Browser Popup mit der Frage nach dem Benutzernamen und Password. Hierzu gültige Angaben eines in vROps bekannten und für REST Aufrufe berechtigen Benutzers eingeben.
Perfekt. Damit haben wir schonmal unsere erste Abfrage von Daten aus vRealize Operations ausgeführt.
Will ich das zB. aus einem Script heraus via des Kommandozeilen Tools “curl” erledigen, dann würde der Aufruf wie folgt aussehen:
curl -k -X GET -u “USER:PWD” –url “https://VROPS/suite-api/api/resources”
Das Ergebnis ist in unserem Fall in XML Format, wobei das Ganze in 4 Abschnitten geliefert wird.
- Genereller Header
- Ergebnismenge
- Aufrufe für das Blättern in der Ergebnismenge
- Das Ergebnis
Wichtig für die Arbeit mit der REST API ist hierbei folgendes:
- Ergebnismenge – Je nach Aufruf kann die Ergebnismenge sehr umfangreich ausfallen. In unserem Beispiel die Abfrage nach den Resourcen liefert alle in vROps vorhandene Resourcen ohne Filter. Bei 1000 virtuellen Maschinen sind das schonmal die 1000 plus die Hosts/Datastores etc. Um das besser kontrollieren zu können, sehe ich wie viele Treffer meine Abfrage liefert (totalCount=). Wie viele der Treffer in einer Seite angezeigt werden (pageSize) incl. der aktuellen Position (page).
- Aufrufe für das Blättern – Zum Bewegen in der Ergebnismenge kann ich nun genau diese nutzen. Welcher für vorwärts, zurück, an den Anfang, das Ende ergibt sich aus der Beschreibung.
Per Default werden 100 Treffer zurück geliefert. Möchte ich in einem Aufruf mehr lesen, kommt pageSize ins Spiel. Hierfür einfach die URL ergänzen. Für 200 Treffer z.B.
https://VROPS/suite-api/api/resources?page=0&pageSize=200
Mit diesen Informationen haben wir somit die Basis für weitere Abfragen.
Das nächste Mal kümmern wir uns um das Auslesen spezieller Daten einer virtuellen Maschine.
Sollten Sie zwischenzeitlich schon etwas experimentieren wollen, dann versuchen Sie doch einfach mal die Resource Informationen einer namentlich bekannten virtuellen Maschine gezielt abzufragen oder von mehreren virtuellen Maschinen mit einem gemeinsamen Namensteil.
Kleiner Tipp:
- /api/resources?name=
- /api/resources?regex=.*NAMENSTEIL.*
Hinweis: Falls Sie schon mit weiteren Funktionen experimentieren wollen ohne die Grundlagen. Fehlerhafte Änderungen die via PUT/POST vorgenommen werden, können das System beschädigen.Ein Testsystem ist auf jeden Fall dem Produktionssystem bei ersten Gehversuchen vorzuziehen.
Nur für alle Fälle 🙂
Pingback: Wetter RESTe (Teil 1) oder Wetter Daten via REST API in vROps 6 | vgeht.de – Wie geht das mit dem Cloud?