diff --git a/src/maggma/api/resource/post_resource.py b/src/maggma/api/resource/post_resource.py index 8711d1241..124986ce9 100644 --- a/src/maggma/api/resource/post_resource.py +++ b/src/maggma/api/resource/post_resource.py @@ -144,8 +144,8 @@ def search(**queries: Dict[str, STORE_PARAMS]) -> Dict: detail="Server timed out trying to obtain data. Try again with a smaller request, " "or remove sorting fields and sort data locally.", ) - - self.store.close() + if self.store._coll: + self.store.close() operator_meta = {} diff --git a/src/maggma/api/resource/read_resource.py b/src/maggma/api/resource/read_resource.py index 4874dcc37..95ab94e17 100644 --- a/src/maggma/api/resource/read_resource.py +++ b/src/maggma/api/resource/read_resource.py @@ -168,7 +168,8 @@ def get_by_key( detail=f"Item with {self.store.key} = {key} not found", ) - self.store.close() + if self.store._coll: + self.store.close() for operator in self.query_operators: item = operator.post_process(item, {}) @@ -275,7 +276,8 @@ def search(**queries: Dict[str, STORE_PARAMS]) -> Union[Dict, Response]: " or remove sorting fields and sort data locally.", ) - self.store.close() + if self.store._coll: + self.store.close() operator_meta = {} diff --git a/src/maggma/api/resource/s3_url.py b/src/maggma/api/resource/s3_url.py index 4cd765984..e4eb512f6 100644 --- a/src/maggma/api/resource/s3_url.py +++ b/src/maggma/api/resource/s3_url.py @@ -114,7 +114,8 @@ def get_by_key( ), ) - self.store.close() + if self.store._coll: + self.store.close() requested_datetime = datetime.utcnow() expiry_datetime = requested_datetime + timedelta(seconds=self.url_lifetime) diff --git a/src/maggma/api/resource/submission.py b/src/maggma/api/resource/submission.py index 66ed8204f..6125b27a7 100644 --- a/src/maggma/api/resource/submission.py +++ b/src/maggma/api/resource/submission.py @@ -174,7 +174,8 @@ def get_by_key( detail=f"Item with submission ID = {key} not found", ) - self.store.close() + if self.store._coll: + self.store.close() for operator in self.get_query_operators: # type: ignore item = operator.post_process(item, {}) @@ -257,7 +258,8 @@ def search(**queries: STORE_PARAMS): "or remove sorting fields and sort data locally.", ) - self.store.close() + if self.store._coll: + self.store.close() meta = Meta(total_doc=count)