Ich habe folgende Bedingungen 1. stackCreate 2. stackUpdate 3. stackCreateWie der Stapelstatus in Openstack fangen
Was ich versuche zu tun, während die stackCreate/Update/Löschen ausgelöst wird, I müssen den Fortschritt überprüfen. Wie kann ich das machen? Ich kenne 2 Wege 1. openstack Stapel Ereignisliste. 2. Ich habe unter Python-Code.
stack_id = str(hc.stacks.get(stack_name).id)
hc.stacks.delete(stack_id=stack_id)
try:
evntsdata = hc.events.list(stack_name)[0].to_dict()
event_handle = evntsdata['resource_status']
if event_handle == 'DELETE_IN_PROGRESS':
loopcontinue = True
while loopcontinue:
evntsdata = hc.events.list(stack_name)[0].to_dict()
event_handle = evntsdata['resource_status']
if event_handle == 'DELETE_COMPLETE':
loopcontinue = False
print(str(timestamp()) + " " + "Delete is Completed!")
elif event_handle == 'DELETE_FAILED':
print("Failed") # this needs a proper error msg
sys.exit(0)
else:
print(str(timestamp()) + " " + "Delete in Progress!")
time.sleep(5)
elif event_handle == 'DELETE_COMPLETE':
print(str(timestamp()) + " " + "Delete is Completed!")
sys.exit(0)
elif event_handle == 'DELETE_FAILED':
print("Failed")
sys.exit(0)
except AttributeError as e:
print(str(timestamp()) + " " + "ERROR: Stack Delete Failure")
raise
except (RuntimeError, heatclient.exc.NotFound):
print("Stack doesnt exist:", stack_name)
Die erste Methode ist Shell-Befehl, in dem ich nicht sehr gut bin. (oder lässt sagen, dass ich nicht weiß, wie man den Shellbefehl in Python am besten integriert) Das Problem mit beiden Methoden ist, dass ich diese vielen Schritte setze, um zu identifizieren, ob das Stapellöschen erfolgreich ist. Und ich wiederhole dasselbe für stackupdate und create, was nicht die beste Praxis ist, die ich denke. Hat jemand eine Idee, wie ich diese Logik minimieren kann? Jede Hilfe wird sehr geschätzt.
ich immer noch diese lange finden. Ich dachte daran, auf check_output (["openstack", "stack", "event", "list", stack_name]) zu loopen. –
Sie können "openstack stack show -f Wert -c stack_status" –
Tejaswi
Das ist immer noch nicht gut weil es nicht den Status durchläuft, der sich ständig ändert. –