Esempio n. 1
0
    def handle(self, *args, **options):
        possible_bad_forms = (FormES().submitted(
            gte=datetime.date(2016, 10, 14),
            lt=datetime.date(2016, 10, 20),
        ).filter(filters.term('backend_id', 'sql')).source('_id')).run().hits

        form_ids = [form['_id'] for form in possible_bad_forms]
        blob_db = get_blob_db()

        for form_id in form_ids:
            form = FormAccessorSQL.get_form(form_id)
            for attachment in form.get_attachments():
                if attachment.blob_bucket:
                    continue

                bucket = attachment.blobdb_bucket(remove_dashes=False)
                attach_id = str(attachment.attachment_id)
                if blob_db.exists(attachment.blob_id, bucket):
                    FormAccessorSQL.write_blob_bucket(attachment, bucket)
                    logging.info(attach_id +
                                 " overwritten blob_bucket_succesfully")
                else:
                    # This is the default and what we want long term
                    # verify it exists
                    bucket = attachment.blobdb_bucket(remove_dashes=True)
                    if not blob_db.exists(attachment.blob_id, bucket):
                        logger.error(
                            attach_id +
                            " does not exist in either expected bucket")
Esempio n. 2
0
    def test_write_blob_bucket(self):
        form = create_form_for_test(DOMAIN)

        attachments = FormAccessorSQL.get_attachments(form.form_id)
        self.assertEqual(1, len(attachments))
        self.assertEqual(None, attachments[0].blob_bucket)

        FormAccessorSQL.write_blob_bucket(attachments[0], 'new-bucket')

        attachments = FormAccessorSQL.get_attachments(form.form_id)
        self.assertEqual(1, len(attachments))
        self.assertEqual('new-bucket', attachments[0].blob_bucket)