2017-01-16 5 views
0

Ich versuche, die Python SoftLayer-API verwenden, um eine Liste der virtuellen Server, die nicht sind eine aktive Transaktion in "RECLAIM_WAIT" Status (das ist der Zustand, den Sie beim Löschen haben ein virtueller Server in Softlayer). Ich erwarte, dass ich alle virtuellen Server, die keine activeTransaction haben, zurückbekomme, und auch solche, die eine activeTransaction haben, aber einen anderen Status als "RECLAIM_WAIT" haben.Verwenden von Softlayer-Objektfilter für activeTransaction

Ich nenne den vs-Manager mit einem Filter, das ich denke, funktionieren sollte:

f={'virtualGuests': {'activeTransaction': {'transactionStatus': {'name': {'operation': '!= RECLAIM_WAIT'}}}}} 
instance = vs.list_instances(hostname="node5-0",filter=f) 

aber es gibt nur Instanzen, die eine activeTransaction (einschließlich denen, die einen RECLAIM_WAIT Status haben). Hier

ist ein Beispiel für eine zurück Instanz von diesem Aufruf:

[{ 'status': { 'keyName': 'DISCONNECTED', 'Name': 'Disconnected'}, 'Rechenzentrum': {'statusId': 2, 'id': 265592, 'Name': 'xxxx', 'longName': 'xxx'}, 'Domäne': 'xxxx', 'powerState': {'Schlüsselname': 'HALTED' , 'Name': 'Halted'}, 'maxCpu': 2, 'maxMemory': 8192, 'Hostname': 'node5-0', 'primaryIpAddress': 'xxxx', 'activeTransaction': {'modifyDate': ' 2017-01-16T05: 20: 01-06: 00 ',' statusChangeDate ':' 2017-01-16T05: 20: 01-06: 00 ',' elapsedSeconds ': 22261,' createDate ':' 2017-01- 16T05: 19: 05-06: 00 ',' hardwareId ':' ',' guestId ': 27490599,' id ': 46204349,' transactionStatus ': {' friendlyName ':' Dies ist eine Pufferzeit, in der der Kunde darf storniere den Aufschlag r‘, 'Name': 'RECLAIM_WAIT'}}, 'globalIdentifier': 'xx', 'primaryBackendIpAddress': 'XXX', 'ID': xxx, 'VollqualifizierterDomänenname': 'xxx'}]

Was mache ich falsch mit dem Filter?

Antwort

1

Es gibt nichts in Ihrer Anfrage falsch ist, leider, es ist nicht möglich, Transaktionen für seine Transaction zu filtern, weil die Transaktion hat keinen Zugriff auf „transactionStatusId“ Schlüssel, Sie in der Transaktion Datentyp überprüfen, In den lokalen Eigenschaften ist die "transactionStatusId" nicht vorhanden.

So wäre der beste Weg, direkt im Code zu filtern sein.

Verwandte Themen