2 Stimmen

Null-Wert im JSON wird von Python nicht für die OpenStack-API interpretiert.

Ich verwende die REST-API von OpenStack für die programmatische Implementierung des Startens oder Stoppen des Servers.

Der Link zur API-Referenz lautet http://api.openstack.org/api-ref.html#ext-os-server-start-stop. Dafür wird ein Wörterbuch in Python benötigt:

dict = {
     os-start:null
    } 

Dann rufe ich json.dumps(dict) auf und mache einen POST-Request an die öffentliche URL von OpenStack für das Nova-Modul.

Wenn ich dieses Programm ausführe, erscheint der Fehler "Unbekannter globaler Name 'null'". Daher funktioniert es nicht.

Ich möchte wissen, welche Wert ich für das Feld "os-start" im Anfrage-JSON verwenden sollte, damit dieser Antrag zur Servereinschaltung auf OpenStack funktioniert.

Lassen Sie mich wissen, wenn zusätzliche Informationen benötigt werden.

Vielen Dank im Voraus.

7voto

Martijn Pieters Punkte 953257

Der None-Singleton von Python wird in ein JSON null übersetzt und umgekehrt. Verwenden Sie stattdessen das:

>>> import json
>>> json.dumps({'os-start': None})
'{"os-start": null}'
>>> json.loads('{"os-start": null}')
{u'os-start': None}

1voto

Larry Cai Punkte 49911

Vielleicht etwas off-topic, aber da du die OpenStack REST-API verwendest, empfehle ich auch, einen Blick auf libcloud zu werfen, es hat auch einen OpenStack-Treiber.

Libcloud bietet nicht nur eine einheitliche Schnittstelle zur Cloud, sondern abstrahiert auch die Zugriffsebene auf die OpenStack REST-API.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X