Ich habe ein Python-API-Skript, das ich seit zwei Jahren verwendet habe. Es funktioniert jedes Mal. In den letzten zwei Jahren wird es manchmal länger als eine Minute dauern, bis eine IP-Adresse erreicht wird.Softlayer Python API kann IP für lange Zeit nicht abrufen
In den letzten zwei Wochen kann das Abrufen von IP jedoch 20 Minuten bis zu drei Stunden dauern, um eine IP abzurufen. Dies ist die Nachricht, die ich bekomme, solange sie es versucht, bis sie es bekommt. Ich habe ein Ticket erstellt, aber sie haben mich gebeten, hier zu fragen.
INFO: root: Noch keine IP für Industriebranchen. Warten vor dem erneuten Versuch INFO: SoftLayer.transports: POST https://api.softlayer.com/xmlrpc/v3.1/SoftLayer_Virtual_Guest
Hier ist der entsprechende Code. Ich Apss in den Parametern und warten auf die IP.
#
Erstellt eine neue CCI basiert auf den Eingabeoptionen DIKT
#
def createImagesFromTemplate (inputDict, überprüfen, Client): # greifen eine Sitzung mit den vs-Manager Client Mgr = SoftLayer.VSManager (Client)
try:
if (verify):
logging.info("Verifying Input Options")
vsi = mgr.verify_create_instances(inputDict)
logging.info("Verify Response was: ")
pp(resp)
else: #we create for real
#logging.info("Creating image for %s from Template ID: %s", input_options['hostname'], input_options['image_id'])
#mgr.create_instances(input)
vsi = mgr.create_instances(inputDict)
if vsi:
print("The list has been submitted")
else:
print("An error has occurred in the submission")
except SoftLayer.SoftLayerAPIError as e:
logging.info("CCI Create request failed")
logging.info("SoftLayerAPIError occurred faultCode=%s, faultString=%s" % (e.faultCode, e.faultString))
#
Wartet, bis es eine IP-Adresse in einem bestimmten CCI und die abruft und gibt sie
#
def getIpFromVs (INST_ID, Client): #get die IP-Adresse von der cci Manager Erweiterung Mgr = SoftLayer.VSManager (Client) vsi = mgr.get_instance (INST_ID)
get_ip = '' #No IP yet
# wait until we get an ip address... should be anytime now
while ('primaryIpAddress' not in vsi):
logging.info("No IP for %s yet. Waiting before retry" % vsi['hostname'])
time.sleep(20)
vsi = mgr.get_instance(inst_id)
while (vsi['primaryIpAddress'] == ''):
logging.info("Still no IP for %s yet. Waiting before retry" % vsi['hostname'])
time.sleep(5)
vsi = mgr.get_instance(inst_id)
get_ip = vsi['primaryIpAddress']
return get_ip
Der Antrag war in der Regel ohne eine Wiederholung zu tun. Gab es eine Veränderung?
Dieses Skript für zwei Jahre mit dem obigen Code ausgeführt wird. Jeder einmal in einer großen Zeit konnte es für vielleicht 5 Minuten keine IP bekommen.In 99% der Fälle wäre es innerhalb einer Minute abgeschlossen. Die meiste Zeit dauert es zwischen 20 Minuten und Stunden. Ich habe das nicht gesehen, wenn ich es über die UI gemacht habe. Ich werde Ihren Code implementieren. Ein paar Mal wurde das Gerät bereitgestellt und die IP kommt später. Die meiste Zeit, nachdem die IP-Adresse erhalten wurde, erfolgt die Bereitstellung sofort. Danke für die Hilfe. – pmsuite