no need to look up flavor and image by name. Just pass the id to servers.create()
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 @@
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,