Skip to content

Commit 0ff356f

Browse files
committed
fix dockerfiles, imports
1 parent 322ff19 commit 0ff356f

File tree

6 files changed

+65
-17
lines changed

6 files changed

+65
-17
lines changed

Dockerfile.dev.os

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,4 @@ WORKDIR /app
1616
COPY . /app
1717

1818
RUN pip install --no-cache-dir -e ./stac_fastapi/core
19-
RUN pip install --no-cache-dir -e ./stac_fastapi/elasticsearch[dev,server]
19+
RUN pip install --no-cache-dir -e ./stac_fastapi/opensearch[dev,server]

docker-compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ services:
5757
depends_on:
5858
- opensearch
5959
command:
60-
bash -c "./scripts/wait-for-it-es.sh os-container:9202 && python -m stac_fastapi.elasticsearch.app"
60+
bash -c "./scripts/wait-for-it-es.sh os-container:9202 && python -m stac_fastapi.opensearch.app"
6161

6262
elasticsearch:
6363
container_name: es-container

stac_fastapi/opensearch/setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
"""stac_fastapi: opencsearch module."""
1+
"""stac_fastapi: opensearch module."""
22

33
from setuptools import find_namespace_packages, setup
44

stac_fastapi/opensearch/stac_fastapi/opensearch/app.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,7 @@
99
TransactionsClient,
1010
)
1111
from stac_fastapi.core.extensions import QueryExtension
12-
from stac_fastapi.elasticsearch.config import ElasticsearchSettings
13-
from stac_fastapi.elasticsearch.database_logic import (
14-
DatabaseLogic,
15-
create_collection_index,
16-
)
17-
from stac_fastapi.elasticsearch.session import Session
12+
from stac_fastapi.core.session import Session
1813
from stac_fastapi.extensions.core import (
1914
ContextExtension,
2015
FieldsExtension,
@@ -24,8 +19,13 @@
2419
TransactionExtension,
2520
)
2621
from stac_fastapi.extensions.third_party import BulkTransactionExtension
22+
from stac_fastapi.opensearch.config import OpensearchSettings
23+
from stac_fastapi.opensearch.database_logic import (
24+
DatabaseLogic,
25+
create_collection_index,
26+
)
2727

28-
settings = ElasticsearchSettings()
28+
settings = OpensearchSettings()
2929
session = Session.create_from_settings(settings)
3030

3131
filter_extension = FilterExtension(client=EsAsyncBaseFiltersClient())
@@ -82,7 +82,7 @@ def run() -> None:
8282
import uvicorn
8383

8484
uvicorn.run(
85-
"stac_fastapi.elasticsearch.app:app",
85+
"stac_fastapi.opensearch.app:app",
8686
host=settings.app_host,
8787
port=settings.app_port,
8888
log_level="info",

stac_fastapi/opensearch/stac_fastapi/opensearch/database_logic.py

Lines changed: 53 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@
1212
from opensearchpy.helpers.search import Search
1313

1414
from stac_fastapi.core import serializers
15-
from stac_fastapi.elasticsearch.config.config_opensearch import AsyncSearchSettings
16-
from stac_fastapi.elasticsearch.config.config_opensearch import (
17-
SearchSettings as SyncSearchSettings,
15+
from stac_fastapi.core.extensions import filter
16+
from stac_fastapi.core.utilities import bbox2polygon
17+
from stac_fastapi.opensearch.config import (
18+
AsyncOpensearchSettings as AsyncSearchSettings,
1819
)
19-
from stac_fastapi.elasticsearch.extensions import filter
20-
from stac_fastapi.elasticsearch.utilities import bbox2polygon
20+
from stac_fastapi.opensearch.config import OpensearchSettings as SyncSearchSettings
2121
from stac_fastapi.types.errors import ConflictError, NotFoundError
2222
from stac_fastapi.types.stac import Collection, Item
2323

@@ -772,6 +772,54 @@ async def find_collection(self, collection_id: str) -> Collection:
772772

773773
return collection["_source"]
774774

775+
# this is copied from stac-fastapi-elasticseach and the logic needs to be updated for opensearch
776+
async def update_collection(
777+
self, collection_id: str, collection: Collection, refresh: bool = False
778+
):
779+
"""Update a collection from the database.
780+
781+
Args:
782+
self: The instance of the object calling this function.
783+
collection_id (str): The ID of the collection to be updated.
784+
collection (Collection): The Collection object to be used for the update.
785+
786+
Raises:
787+
NotFoundError: If the collection with the given `collection_id` is not
788+
found in the database.
789+
790+
Notes:
791+
This function updates the collection in the database using the specified
792+
`collection_id` and with the collection specified in the `Collection` object.
793+
If the collection is not found, a `NotFoundError` is raised.
794+
"""
795+
await self.find_collection(collection_id=collection_id)
796+
797+
if collection_id != collection["id"]:
798+
await self.create_collection(collection, refresh=refresh)
799+
800+
await self.client.reindex(
801+
body={
802+
"dest": {"index": f"{ITEMS_INDEX_PREFIX}{collection['id']}"},
803+
"source": {"index": f"{ITEMS_INDEX_PREFIX}{collection_id}"},
804+
"script": {
805+
"lang": "painless",
806+
"source": f"""ctx._id = ctx._id.replace('{collection_id}', '{collection["id"]}'); ctx._source.collection = '{collection["id"]}' ;""",
807+
},
808+
},
809+
wait_for_completion=True,
810+
refresh=refresh,
811+
)
812+
813+
await self.delete_collection(collection_id)
814+
815+
else:
816+
await self.client.index(
817+
index=COLLECTIONS_INDEX,
818+
id=collection_id,
819+
document=collection,
820+
refresh=refresh,
821+
)
822+
775823
async def delete_collection(self, collection_id: str, refresh: bool = False):
776824
"""Delete a collection from the database.
777825

stac_fastapi/opensearch/tests/resources/test_item.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
from stac_fastapi.core.core import CoreClient
1616
from stac_fastapi.core.datetime_utils import now_to_rfc3339_str
17-
from stac_fastapi.elasticsearch.database_logic import DatabaseLogic
17+
from stac_fastapi.opensearch.database_logic import DatabaseLogic
1818
from stac_fastapi.types.core import LandingPageMixin
1919

2020
from ..conftest import create_item, refresh_indices

0 commit comments

Comments
 (0)