From: Tony Mack Date: Sat, 13 Apr 2013 23:08:34 +0000 (-0400) Subject: no need to look up flavor and image by name. Just pass the id to servers.create() X-Git-Tag: 1.0~115 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=221957d205575fbdd5040c9848bbdd68046feee8;p=plstackapi.git no need to look up flavor and image by name. Just pass the id to servers.create() --- diff --git a/plstackapi/core/api/slivers.py b/plstackapi/core/api/slivers.py index c41ffba..a1589d2 100644 --- a/plstackapi/core/api/slivers.py +++ b/plstackapi/core/api/slivers.py @@ -42,16 +42,15 @@ def add_sliver(auth, fields): if deployment_networks: fields['deploymentNetwork'] = deployment_networks[0] nodes = _get_nodes(fields.get('node')) if nodes: fields['node'] = nodes[0] - sliver = Sliver(**fields) # create quantum sliver - sliver = driver.spawn_instance(name=sliver.name, + instance = driver.spawn_instance(name=sliver.name, key_name = sliver.key.name, - flavor=sliver.flavor.name, - image = sliver.image.name, - hostname = sliver.node.hostname ) + flavor_id = sliver.flavor.flavor_id, + image_id = sliver.image.image_id, + hostname = sliver.node.name ) - sliver.instance_id=sliver.id + sliver.instance_id=instance.id sliver.save() return sliver diff --git a/plstackapi/openstack/driver.py b/plstackapi/openstack/driver.py index fe93fbc..03d4ed6 100644 --- a/plstackapi/openstack/driver.py +++ b/plstackapi/openstack/driver.py @@ -170,26 +170,22 @@ class OpenStackDriver: for key in keys: self.shell.nova.keypairs.delete(key) - def spawn_instance(self, name, key_name=None, hostname=None, flavor=None, image=None, security_group=None, pubkeys=[]): - if not flavor: - flavor = self.config.nova_default_flavor - if not image: - image = self.config.nova_default_imave + def spawn_instance(self, name, key_name=None, hostname=None, flavor_id=None, image_id=None, security_group=None, pubkeys=[]): + #if not flavor_id: + # flavor = self.config.nova_default_flavor + #if not image: + # image = self.config.nova_default_imave if not security_group: security_group = self.config.nova_default_security_group authorized_keys = "\n".join(pubkeys) files = {'/root/.ssh/authorized_keys': authorized_keys} - flavor_id = self.shell.nova.flavors.find(name=flavor) - images = self.shell.glance.get_images(name=image) - if not images: - raise Exception, "Image not found: " + image - image_id = images[0]['id'] hints = {} if hostname: #hints['force_hosts']= hostname - hints['availability-zone'] = 'nova:%s' % hostname + #hints['availability-zone'] = 'nova:%s' % hostname + pass server = self.shell.nova.servers.create( name=name, key_name = key_name,