X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=planetstack%2Fhpc_observer%2Fsteps%2Fsync_contentprovider.py;h=c7335d645cb721f6175cd66b909219dbe14fb0c3;hb=0d718ab944fcf3a7a943e3652fa9746529510d78;hp=669dd5389334779efde9be4cdeb8b5d2c4220052;hpb=c7de77816062ea8658e60d23496c7f0737916b44;p=plstackapi.git diff --git a/planetstack/hpc_observer/steps/sync_contentprovider.py b/planetstack/hpc_observer/steps/sync_contentprovider.py index 669dd53..c7335d6 100644 --- a/planetstack/hpc_observer/steps/sync_contentprovider.py +++ b/planetstack/hpc_observer/steps/sync_contentprovider.py @@ -24,6 +24,20 @@ class SyncContentProvider(SyncStep, HpcLibrary): SyncStep.__init__(self, **args) HpcLibrary.__init__(self) + 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_cp_ids = [x["content_provider_id"] for x in self.client.onev.ListAll("ContentProvider")] + for cp in ContentProvider.objects.all(): + if (cp.content_provider_id is not None) and (cp.content_provider_id not in all_cp_ids): + logger.info("Content provider %s was not found on CMI" % cp.content_provider_id) + cp.content_provider_id=None + cp.save() + def sync_record(self, cp): logger.info("sync'ing content provider %s" % str(cp)) account_name = self.make_account_name(cp.name) @@ -47,6 +61,6 @@ class SyncContentProvider(SyncStep, HpcLibrary): cp.save() - def call(self, m): + def delete_record(self, m): self.client.onev.Delete("ContentProvider", m.content_provider_id)