def delete(self, collection, irn): # If this is an ecatalogue record, try and delete from CKAN if collection.name == 'ecatalogue': # Load the record from mongo mongo_record = collection.find_one({'_id': int(irn)}) if mongo_record: ckan_delete(self.remote_ckan, mongo_record) else: log.info('Record %s does not exist. SKipping delete.' % irn) # And call the Mongo Delete task delete() method to remove the record from mongodb super(DeleteAPITask, self).delete(collection, irn)
def run(self): # Do not run if this is a full export date - all non-publishable records will # Already have been removed if int(self.full_export_date) == int(self.date): log.info("No records to unpublish for full exports") self.mark_complete() return collection = self.output().get_collection('ecatalogue') # We only care about records who's status has changed in the past week (6 days to be sure) date_object = datetime.strptime(str(self.date), '%Y%m%d') q = dict(AdmPublishWebNoPasswordFlag='N', exportFileDate=self.date, ISODateInserted={'$gte': date_object - timedelta(days=6)}) cursor = collection.find(q) log.info('%s records to unpublish', cursor.count()) for record in cursor: ckan_delete(self.remote_ckan, record) # And mark the object as complete self.mark_complete()
def run(self): # Do not run if this is a full export date - all non-publishable records will # Already have been removed if int(self.full_export_date) == int(self.date): log.info("No records to unpublish for full exports") self.mark_complete() return collection = self.output().get_collection('ecatalogue') # We only care about records who's status has changed in the past week (6 days to be sure) date_object = datetime.strptime(str(self.date), '%Y%m%d') q = dict( AdmPublishWebNoPasswordFlag='N', exportFileDate=self.date, ISODateInserted={'$gte': date_object - timedelta(days=6)} ) cursor = collection.find(q) log.info('%s records to unpublish', cursor.count()) for record in cursor: ckan_delete(self.remote_ckan, record) # And mark the object as complete self.mark_complete()