Merge "OpenStack: store ZK records for launch error nodes"
This commit is contained in:
commit
d4325cf6ac
@ -18,6 +18,7 @@ import pprint
|
|||||||
import random
|
import random
|
||||||
|
|
||||||
from kazoo import exceptions as kze
|
from kazoo import exceptions as kze
|
||||||
|
import openstack
|
||||||
|
|
||||||
from nodepool import exceptions
|
from nodepool import exceptions
|
||||||
from nodepool import nodeutils as utils
|
from nodepool import nodeutils as utils
|
||||||
@ -122,22 +123,29 @@ class OpenStackNodeLauncher(NodeLauncher):
|
|||||||
# because that isn't available in ZooKeeper until after the server is
|
# because that isn't available in ZooKeeper until after the server is
|
||||||
# active, which could cause a race in leak detection.
|
# active, which could cause a race in leak detection.
|
||||||
|
|
||||||
server = self.handler.manager.createServer(
|
try:
|
||||||
hostname,
|
server = self.handler.manager.createServer(
|
||||||
image=image_external,
|
hostname,
|
||||||
min_ram=self.label.min_ram,
|
image=image_external,
|
||||||
flavor_name=self.label.flavor_name,
|
min_ram=self.label.min_ram,
|
||||||
key_name=self.label.key_name,
|
flavor_name=self.label.flavor_name,
|
||||||
az=self.node.az,
|
key_name=self.label.key_name,
|
||||||
config_drive=config_drive,
|
az=self.node.az,
|
||||||
nodepool_node_id=self.node.id,
|
config_drive=config_drive,
|
||||||
nodepool_node_label=self.node.type[0],
|
nodepool_node_id=self.node.id,
|
||||||
nodepool_image_name=image_name,
|
nodepool_node_label=self.node.type[0],
|
||||||
networks=self.pool.networks,
|
nodepool_image_name=image_name,
|
||||||
security_groups=self.pool.security_groups,
|
networks=self.pool.networks,
|
||||||
boot_from_volume=self.label.boot_from_volume,
|
security_groups=self.pool.security_groups,
|
||||||
volume_size=self.label.volume_size,
|
boot_from_volume=self.label.boot_from_volume,
|
||||||
instance_properties=self.label.instance_properties)
|
volume_size=self.label.volume_size,
|
||||||
|
instance_properties=self.label.instance_properties)
|
||||||
|
except openstack.cloud.exc.OpenStackCloudCreateException as e:
|
||||||
|
if e.resource_id:
|
||||||
|
self.node.external_id = e.resource_id
|
||||||
|
# The outer exception handler will handle storing the
|
||||||
|
# node immediately after this.
|
||||||
|
raise
|
||||||
|
|
||||||
self.node.external_id = server.id
|
self.node.external_id = server.id
|
||||||
self.node.hostname = hostname
|
self.node.hostname = hostname
|
||||||
|
Loading…
x
Reference in New Issue
Block a user