def _send_form_to_es(self, domain=None, completion_time=None, received_on=None, attachment_dict=None, **metadata_kwargs): attachment_dict = attachment_dict or {} metadata = TestFormMetadata( domain=domain or self.domain, time_end=completion_time or datetime.utcnow(), received_on=received_on or datetime.utcnow(), ) for attr, value in metadata_kwargs.items(): setattr(metadata, attr, value) form_pair = make_es_ready_form(metadata) if attachment_dict: form_pair.wrapped_form.external_blobs = { name: BlobMeta(**meta) for name, meta in attachment_dict.iteritems() } form_pair.json_form['external_blobs'] = attachment_dict es_form = transform_xform_for_elasticsearch(form_pair.json_form) send_to_elasticsearch('forms', es_form) self.es.indices.refresh(XFORM_INDEX_INFO.index) return form_pair
def blobs(self): from corehq.blobs.mixin import BlobMeta blobs = {} if self._attachments: blobs.update({ name: BlobMeta( id=None, content_length=info.get("length", None), content_type=info.get("content_type", None), digest=info.get("digest", None), ) for name, info in six.iteritems(self._attachments) }) if self.external_blobs: blobs.update({ name: BlobMeta.wrap(info) for name, info in six.iteritems(self.external_blobs) }) return blobs
def blobs(self): from corehq.blobs.mixin import BlobMeta blobs = {} if self._attachments: blobs.update({ name: BlobMeta( id=None, content_length=info.get("length", None), content_type=info.get("content_type", None), digest=info.get("digest", None), ) for name, info in self._attachments.iteritems() }) if self.external_blobs: blobs.update({ name: BlobMeta.wrap(info) for name, info in self.external_blobs.iteritems() }) return blobs
def __init__(self, obj, blob_id, bucket): self.obj = obj self.blobs = {"name-ignored": BlobMeta(id=blob_id)} self.external_blobs = self.blobs self._blobdb_bucket = lambda: bucket