debian-kvm-omnivista-labor
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
debian-kvm-omnivista-labor [2016/09/10 13:54] – [OmniVista RESTful API mit Python ansprechen] benny | debian-kvm-omnivista-labor [2024/06/09 10:29] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 8: | Zeile 8: | ||
* Virt-Manager (es ist einfacher grafisch) | * Virt-Manager (es ist einfacher grafisch) | ||
* RAM | * RAM | ||
- | * OmniVista v4.2.1 OVF Archiv | + | * OmniVista v4.2.1 |
<WRAP center round tip 60%> | <WRAP center round tip 60%> | ||
Aktuell bastel ich hier noch an der Anleitung. | Aktuell bastel ich hier noch an der Anleitung. | ||
</ | </ | ||
+ | |||
+ | ===== Image ===== | ||
+ | |||
* Archiv entpacken | * Archiv entpacken | ||
Zeile 19: | Zeile 22: | ||
<code bash> | <code bash> | ||
- | benny@n-kvm1: | + | benny@n-kvm1: |
- | benny@n-kvm1:~$ cd OV | + | Archive: OVNMS-E_4.2.1_Build69_ovf.zip |
- | benny@n-kvm1:~/OV$ ls | + | inflating: OV/ovnmse-4.2.1.R01-69.0-disk1.vmdk |
- | ovnmse-4.2.1.R01-65.0-disk1.vmdk | + | inflating: OV/ovnmse-4.2.1.R01-69.0-disk2.vmdk |
- | benny@n-kvm1: | + | inflating: OV/ovnmse-4.2.1.R01-69.0.mf |
- | benny@n-kvm1: | + | inflating: OV/ovnmse-4.2.1.R01-69.0.ovf |
+ | benny@n-kvm1: | ||
+ | benny@n-kvm1: | ||
+ | benny@n-kvm1: | ||
benny@n-kvm1: | benny@n-kvm1: | ||
benny@n-kvm1: | benny@n-kvm1: | ||
- | disk1.qcow2 | + | disk1.qcow2 |
- | benny@n-kvm1: | + | |
- | </ | + | |
- | + | ||
- | ====== OmniVista RESTful API mit cURL ansprechen ====== | + | |
- | + | ||
- | Ich empfehle beim Einsatz von " | + | |
- | + | ||
- | In den Beispielen habe ich die Ausgabe von cURL reduziert. Für den Fall dass man noch etwas entwickelt, macht es mehr Sinn sich mit " | + | |
- | + | ||
- | Kurze Referenz was sich hinter den Optionen von cURL verbirgt (für alles weitere '' | + | |
- | + | ||
- | * -d = Daten die man übertragen möchte | + | |
- | * -F = Überträgt die Daten als wenn sie aus einem Formular kommen (< | + | |
- | * -i = HTTP Response Ausgaben anzeigen | + | |
- | * -H = Header festlegen (kann mehrfach für mehrere Header verwendet werden) | + | |
- | * -k = Unsichere Verbindung ignorieren (https mit self-signed im Labor) | + | |
- | * -s = Keine Ausgaben außer dem Ergebnis auf der Console ausgeben (übersichtlicher) | + | |
- | * -v = Mehr Details anzeigen (kann mehrfach verwendet werden -vvv) | + | |
- | * -X = HTTP Methode (GET, POST, PUT, DELETE) | + | |
- | + | ||
- | ===== Anmeldung an der API von OmniVista 2500 v4.2.1 ===== | + | |
- | + | ||
- | <code bash> | + | |
- | BennyE$ curl -s -k -H " | + | |
- | { | + | |
- | " | + | |
- | " | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | ===== Anlegen einer neuen statischen Map (ohne Hintergrundbild) ===== | + | |
- | + | ||
- | <WRAP center round tip 60%> | + | |
- | Eine neue Map anzulegen ist es umfangreicher. Das folgende Format sorgt dafür dass alle Anforderungen der API, z.B. an multipart/ | + | |
- | </ | + | |
- | + | ||
- | <WRAP center round info 60%> | + | |
- | Eine Map kann nur vom Benutzer " | + | |
- | </ | + | |
- | + | ||
- | + | ||
- | <code bash> | + | |
- | BennyE$ curl -s -k -H " | + | |
- | { | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | ], | + | |
- | " | + | |
- | }, | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | } | + | |
- | }, | + | |
- | " | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | ===== Anlegen einer neuen statischen Map (mit Hintergrundbild) ===== | + | |
- | <WRAP center round tip 60%> | + | |
- | Die Datei " | + | |
- | </ | + | |
- | + | ||
- | <WRAP center round info 60%> | + | |
- | Eine Map kann nur vom Benutzer " | + | |
- | </ | + | |
- | + | ||
- | <code bash> | + | |
- | BennyE$ curl -s -k -H " | + | |
- | { | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | ], | + | |
- | " | + | |
- | }, | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | " | + | |
- | } | + | |
- | }, | + | |
- | " | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | ====== OmniVista RESTful API mit Python ansprechen ====== | + | |
- | <WRAP center round important 60%> | + | |
- | Meine Versuche mit cURL haben mir gezeigt dass für Python noch einiges anders laufen muss. Kümmere mich bei nächster Gelegenheit darum das zu entwickeln. | + | |
- | </ | + | |
- | + | ||
- | <code python> | + | |
- | import requests | + | |
- | import json | + | |
- | + | ||
- | # Dieser Code geht sicherlich schoener, aber fuer den Moment ist das nur POC | + | |
- | + | ||
- | ovurl = " | + | |
- | a = requests.Session() | + | |
- | + | ||
- | # Boese, niemals verify=False in Produktion! | + | |
- | #b = a.post(ovurl + "/ | + | |
- | + | ||
- | rbody = { | + | |
- | ' | + | |
- | ' | + | |
- | } | + | |
- | + | ||
- | header = { | + | |
- | " | + | |
- | } | + | |
- | + | ||
- | # Boese, niemals verify=False in Produktion! | + | |
- | # " | + | |
- | b = a.post(ovurl + "/ | + | |
- | #>>> | + | |
- | #< | + | |
- | + | ||
- | #>>> | + | |
- | #' | + | |
- | + | ||
- | c = a.get(ovurl + "/ | + | |
- | + | ||
- | # Wer sich wundert dass dies einfach funktioniert .. | + | |
- | # Es gibt einen Cookie mit dem accessToken | + | |
- | + | ||
- | #>>> | + | |
- | #< | + | |
- | + | ||
- | + | ||
- | parsed = json.loads(c.text) | + | |
- | print(json.dumps(parsed, | + | |
</ | </ | ||
debian-kvm-omnivista-labor.1473515669.txt.gz · Zuletzt geändert: 2024/06/09 10:29 (Externe Bearbeitung)