fix bug in run_instances
[sfa.git] / sfa / openstack / osaggregate.py
index 17f42d8..241ec0b 100644 (file)
@@ -171,7 +171,9 @@ class OSAggregate:
 
 
     def create_instance_key(self, slice_hrn, user):
-        key_name = "%s:%s" (slice_name, Xrn(user['urn']).get_hrn())
+        slice_name = Xrn(slice_hrn).leaf
+        user_name = Xrn(user['urn']).leaf
+        key_name = "%s:%s" % (slice_name, user_name)
         pubkey = user['keys'][0]
         key_found = False
         existing_keys = self.driver.shell.nova_manager.keypairs.findall(name=key_name)
@@ -182,7 +184,7 @@ class OSAggregate:
                 key_found = True
 
         if not key_found:
-            self.driver.shll.nova_manager.keypairs.create(key_name, pubkey)
+            self.driver.shell.nova_manager.keypairs.create(key_name, pubkey)
         return key_name       
         
 
@@ -239,7 +241,8 @@ class OSAggregate:
                 fw_rules = instance.get('fw_rules', [])
                 group_name = self.create_security_group(slicename, fw_rules)
                 metadata['security_groups'] = group_name
-                metadata['component_id'] = node['component_id']
+                if node.get('component_id'):
+                    metadata['component_id'] = node['component_id']
                 try: 
                     self.driver.shell.nova_manager.servers.create(flavor=flavor_id,
                                                             image=image_id,