class OpenStackManager:
def __init__(self, auth={}, caller=None):
- if auth:
- self.client = OpenStackClient(**auth)
- else:
- self.client = OpenStackClient()
+ self.client = None
+ self.driver = None
+ self.caller = None
self.has_openstack = has_openstack
- self.enabled = manager_enabled
- self.driver = OpenStackDriver(client=self.client)
- self.caller=caller
+ self.enabled = manager_enabled
+
+ if has_openstack and manager_enabled:
+ if auth:
+ self.client = OpenStackClient(**auth)
+ else:
+ self.client = OpenStackClient()
+ self.driver = OpenStackDriver(client=self.client)
+
+ if caller:
+ self.caller = caller
+ else:
+ self.caller = self.driver.admin_user
+ self.caller.user_id = self.caller.id
@require_enabled
def save_role(self, role):
'enabled': True}
keystone_user = self.driver.create_user(**user_fields)
user.user_id = keystone_user.id
-
+ if user.site:
+ if user.is_admin:
+ role = 'admin'
+ else:
+ role = 'user'
+ self.driver.add_user_role(user.user_id, user.site.tenant_id, role)
+
@require_enabled
def delete_user(self, user):
if user.user_id:
@require_enabled
- def save_site(self, site):
+ def save_site(self, site, add_role=True):
if not site.tenant_id:
tenant = self.driver.create_tenant(tenant_name=site.login_base,
description=site.name,
self.driver.delete_subnet(subnet.subnet_id)
#del_route = 'route del -net %s' % self.cidr
#commands.getstatusoutput(del_route)
-
+
@require_enabled
def save_sliver(self, sliver):
if not sliver.instance_id:
sliver.instance_id = instance.id
sliver.instance_name = getattr(instance, 'OS-EXT-SRV-ATTR:instance_name')
+ if sliver.instance_id:
+ self.driver.update_instance_metadata(sliver.instance_id, {"cpu_cores": str(sliver.numberCores)})
+
@require_enabled
def delete_sliver(self, sliver):
if sliver.instance_id: