From 37c95c3c3c7b4a7cdb3884aefabb868c529cf9c1 Mon Sep 17 00:00:00 2001 From: Tony Mack Date: Sat, 9 Mar 2013 19:54:06 -0500 Subject: [PATCH] added refresh() --- PLC/Sites.py | 2 +- PLC/Slices.py | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/PLC/Sites.py b/PLC/Sites.py index 981a598a..39bf2edd 100644 --- a/PLC/Sites.py +++ b/PLC/Sites.py @@ -222,7 +222,7 @@ class Sites(list): """ # 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() diff --git a/PLC/Slices.py b/PLC/Slices.py index bbc594ab..928cbd2d 100644 --- a/PLC/Slices.py +++ b/PLC/Slices.py @@ -213,3 +213,31 @@ class Slices(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 -- 2.47.0