| 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() |