"""
# get current sites
sites = Site().select()
- login_bases = [site['login_base'] for site in sites]
+ login_bases = [site.login_base for site in sites]
# get current tenants
tenants = api.client_shell.keystone.tenants.list()
slice['slice_tag_ids'] = [rec.slice_tag_id for rec in slice_tags]
self.append(slice)
+
+ def refresh(self, api):
+ """
+ Import tenants from keystone.
+ """
+ # get current slices
+ slices = Slice().select()
+ slice_names = [slice.name for slice in slices]
+
+ # get current tenants
+ tenants = api.client_shell.keystone.tenants.list()
+
+ # add tenants that dont already exist
+ for tenant in tenants:
+ # site tenants should not contain '_'
+ if '_' in tenant.name and tenant.name not in slice_names:
+ description = tenant.description
+ if not description: description = tenant.name
+ slice = Slice(api, {'name': tenant.name,
+ 'tenant_id': tenant.id,
+ 'enabled': tenant.enabled,
+ 'description': description
+ 'is_public': True})
+ try:
+ slice.sync()
+ except:
+ # slice may have a login base prefix that doesn't exist yet.
+ pass