X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=planetstack%2Fhpc_observer%2Fsteps%2Fsync_cdnprefix.py;h=b887e841ee47e17238476490f9d3f503c07395c5;hb=7c30a429254eaf1cd2fe6721f783c2d3cb7e8d67;hp=01bb687e6f0097b48e6ae7684e733d8ff18c88ae;hpb=32fd368d804ce306160ffbea6ceb586ca60802a1;p=plstackapi.git diff --git a/planetstack/hpc_observer/steps/sync_cdnprefix.py b/planetstack/hpc_observer/steps/sync_cdnprefix.py index 01bb687..b887e84 100644 --- a/planetstack/hpc_observer/steps/sync_cdnprefix.py +++ b/planetstack/hpc_observer/steps/sync_cdnprefix.py @@ -24,8 +24,19 @@ class SyncCDNPrefix(SyncStep, HpcLibrary): SyncStep.__init__(self, **args) HpcLibrary.__init__(self) - def fetch_pending(self): - return CDNPrefix.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None)) + def fetch_pending(self, deleted): + self.sanity_check() + + return SyncStep.fetch_pending(self, deleted) + + def sanity_check(self): + # sanity check to make sure our PS objects have CMI objects behind them + all_p_ids = [x["cdn_prefix_id"] for x in self.client.onev.ListAll("CDNPrefix")] + for p in CDNPrefix.objects.all(): + if (p.cdn_prefix_id is not None) and (p.cdn_prefix_id not in all_p_ids): + logger.info("CDN Prefix %s was not found on CMI" % p.cdn_prefix_id) + p.cdn_prefix_id=None + p.save() def sync_record(self, cp): logger.info("sync'ing cdn prefix %s" % str(cp)) @@ -37,6 +48,9 @@ class SyncCDNPrefix(SyncStep, HpcLibrary): cp_dict = {"service": "HyperCache", "enabled": cp.enabled, "content_provider_id": cpid, "cdn_prefix": cp.prefix} + if cp.defaultOriginServer and cp.defaultOriginServer.origin_server_id and cp.defaultOriginServer.url: + cp_dict["default_origin_server"] = cp.defaultOriginServer.url + #print cp_dict if not cp.cdn_prefix_id: @@ -46,3 +60,7 @@ class SyncCDNPrefix(SyncStep, HpcLibrary): self.client.onev.Update("CDNPrefix", cp.cdn_prefix_id, cp_dict) cp.save() + + def delete_record(self, m): + if m.cdn_prefix_id is not None: + self.client.onev.Delete("CDNPrefix", m.cdn_prefix_id)