Skip to content

Commit de7390f

Browse files
main: Added connection client to opensearch.
1 parent 8debdde commit de7390f

File tree

8 files changed

+51
-7
lines changed

8 files changed

+51
-7
lines changed

clients/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
from .opensearch import LoadOpenSearchClient

clients/opensearch.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
from opensearchpy import OpenSearch
2+
from config import OpensearchConfig
3+
4+
config = OpensearchConfig().get_config()
5+
6+
7+
class LoadOpenSearchClient:
8+
_client = None
9+
10+
@staticmethod
11+
def get_opensearch_client():
12+
if LoadOpenSearchClient._client is None:
13+
client = OpenSearch(
14+
hosts=[{'host': config['OPENSEARCH_HOST'][0], 'port': config['OPENSEARCH_PORT'][0]}],
15+
http_compress=True,
16+
http_auth=(config['OPENSEARCH_AUTH_USERNAME'][0], config['OPENSEARCH_AUTH_PASSWORD'][0]),
17+
use_ssl=True,
18+
verify_certs=False,
19+
ssl_assert_hostname=True,
20+
ssl_show_warn=False,
21+
)
22+
LoadOpenSearchClient._client = client
23+
return client
24+

config/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
from .opensearch_config import OpensearchConfig as OpensearchConfig

config/opensearch_config.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
from jproperties import Properties
2+
3+
properties = Properties()
4+
5+
6+
class OpensearchConfig:
7+
_config = None
8+
9+
@staticmethod
10+
def get_config():
11+
if OpensearchConfig._config is None:
12+
with open('properties/opensearch-client.properties', 'rb') as config_file:
13+
properties.load(config_file)
14+
_config = properties
15+
return _config

ingest/ingest_data_opensearch.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,17 @@
33
from logging.config import dictConfig
44
from logger import DedupeKnnLogger
55
from models import OpensearchVectorDocumentV1
6-
7-
from fastapi import APIRouter, UploadFile, File, status, Depends
8-
from fastapi.encoders import jsonable_encoder
9-
from fastapi.security import HTTPBasicCredentials, HTTPBasic
10-
from starlette.responses import FileResponse, JSONResponse, StreamingResponse
6+
from clients import LoadOpenSearchClient
7+
from fastapi import APIRouter
118

129
router = APIRouter()
10+
opensearch_client = LoadOpenSearchClient().get_opensearch_client()
1311

1412
logger = logging.getLogger("dedupeknn")
1513
dictConfig(DedupeKnnLogger().dict())
1614

1715

1816
@router.post("/api/v1/knn/doc/insert")
1917
async def ingest_document(document: OpensearchVectorDocumentV1):
20-
return "OK"
18+
return opensearch_client is None
2119

logger/dedupeknn_logger.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ class DedupeKnn(BaseModel):
66
LOG_FORMAT: str = '[%(asctime)s] p%(process)s {%(filename)s:%(lineno)d} %(levelname)s - %(message)s'
77
LOG_LEVEL: str = "DEBUG"
88

9-
# Logging config
9+
# Logging properties
1010
version = 1
1111
disable_existing_loggers = False
1212
formatters = {
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
OPENSEARCH_HOST = localhost
2+
OPENSEARCH_PORT = 9200
3+
OPENSEARCH_AUTH_USERNAME = admin
4+
OPENSEARCH_AUTH_PASSWORD = admin

requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ ipython==8.14.0
4343
isoduration==20.11.0
4444
jedi==0.18.2
4545
Jinja2==3.1.2
46+
jproperties==2.1.1
4647
json5==0.9.14
4748
jsonpointer==2.4
4849
jsonschema==4.17.3

0 commit comments

Comments
 (0)