--- /dev/null
+from core.models import *
+
+def handle(site):
+ """
+ ensure ControllerSiteDeployment object exists for each of the site's SiteDeployment objects
+ """
+ from core.models import SiteDeployments, Controller, ControllerSiteDeployments
+ from collections import defaultdict
+
+
+ # get current controller site deployments
+ ctrl_site_deployments = ControllerSiteDeployments.objects.filter(site_deployment__site = site)
+ ctrl_site_deployments_dict = {}
+ for ctrl_site_depl in controller_site_deployments:
+ ctrl_site_deployments_dict[ctrl_site_depl.site_deployment] = ctrl_cite_depl
+
+ # get current site deployments
+ site_deployments = SiteDeployments.objects.filter(site=site)
+
+ # for each site deployment, if there is no controller site deployment create one
+ for site_deployment in site_deployments:
+ if site_deployment not in ctrl_site_deployments_dict:
+ ctrl_site_deployment = ControllerSiteDeployment(
+ site_deployment=site_deployment,
+ controller=site_deployment.controller,
+ )
+ ctrl_site_deployment.save()
tenant_fields = {'endpoint':controller_site_deployment.controller.auth_url,
'admin_user': controller_site_deployment.controller.admin_user,
'admin_password': controller_site_deployment.controller.admin_password,
- 'admin_tenant': 'admin',
+ 'admin_tenant': controller_site_deployment.controller.admin_tenant,
'ansible_tag': '%s@%s'%(controller_site_deployment.site_deployment.site.login_base,controller_site_deployment.site_deployment.deployment.name), # name of ansible playbook
'tenant': controller_site_deployment.site_deployment.site.login_base,
'tenant_description': controller_site_deployment.site_deployment.site.name}