def delete_sliver (self, slice_urn, slice_hrn, creds, options):
aggregate = OSAggregate(self)
+ tenant_name = OSXrn(xrn=slice_hrn, type='slice').get_tenant_name()
project_name = hrn_to_os_slicename(slice_hrn)
- return aggregate.delete_instances(project_name)
+ return aggregate.delete_instances(project_name, tenant_name)
def update_sliver(self, slice_urn, slice_hrn, rspec, creds, options):
name = hrn_to_os_slicename(slice_hrn)
+ tenant_name = OSXrn(xrn=slice_hrn, type='slice').get_tenant_name()
aggregate = OSAggregate(self)
return aggregate.update_instances(name)
return 1
def stop_slice (self, slice_urn, slice_hrn, creds):
+ tenant_name = OSXrn(xrn=slice_hrn, type='slice').get_tenant_name()
name = OSXrn(xrn=slice_urn).name
aggregate = OSAggregate(self)
- return aggregate.stop_instances(name)
+ return aggregate.stop_instances(name, tenant_name)
def reset_slice (self, slice_urn, slice_hrn, creds):
raise SfaNotImplemented ("reset_slice not available at this interface")
if not instances:
continue
for instance in instances:
- metadata = {}
- flavor_id = self.driver.shell.nova_manager.flavors.find(name=instance['name'])
- image = instance.get('disk_image')
- if image and isinstance(image, list):
- image = image[0]
- image_id = self.driver.shell.nova_manager.images.find(name=image['name'])
- fw_rules = instance.get('fw_rules', [])
- group_name = self.create_security_group(instance_name, fw_rules)
- metadata['security_groups'] = group_name
- if node.get('component_id'):
- metadata['component_id'] = node['component_id']
try:
+ metadata = {}
+ flavor_id = self.driver.shell.nova_manager.flavors.find(name=instance['name'])
+ image = instance.get('disk_image')
+ if image and isinstance(image, list):
+ image = image[0]
+ image_id = self.driver.shell.nova_manager.images.find(name=image['name'])
+ fw_rules = instance.get('fw_rules', [])
+ group_name = self.create_security_group(instance_name, fw_rules)
+ metadata['security_groups'] = group_name
+ if node.get('component_id'):
+ metadata['component_id'] = node['component_id']
self.driver.shell.nova_manager.servers.create(flavor=flavor_id,
image=image_id,
key_name = key_name,
- def delete_instances(self, instance_name):
+ def delete_instances(self, instance_name, tenant_name):
+ self.driver.shell.nova_manager.connect(tenant=tenant_name)
instances = self.driver.shell.nova_manager.servers.findall(name=instance_name)
security_group_manager = SecurityGroup(self.driver)
for instance in instances:
self.driver.shell.nova_manager.servers.delete(instance)
return 1
- def stop_instances(self, instance_name):
+ def stop_instances(self, instance_name, tenant_name):
+ self.driver.shell.nova_manager.connect(tenant=tenant_name)
instances = self.driver.shell.nova_manager.servers.findall(name=instance_name)
for instance in instances:
self.driver.shell.nova_manager.servers.pause(instance)