Update librarian to have region & SSL params

This commit is contained in:
Cyber MacGeddon 2025-12-27 17:57:01 +00:00
parent 6839f47c35
commit f1c8afc5fb
3 changed files with 34 additions and 4 deletions

View file

@ -15,6 +15,7 @@ class BlobStore:
def __init__( def __init__(
self, self,
endpoint, access_key, secret_key, bucket_name, endpoint, access_key, secret_key, bucket_name,
use_ssl=False, region=None,
): ):
@ -22,12 +23,14 @@ class BlobStore:
endpoint = endpoint, endpoint = endpoint,
access_key = access_key, access_key = access_key,
secret_key = secret_key, secret_key = secret_key,
secure = False, secure = use_ssl,
region = region,
) )
self.bucket_name = bucket_name self.bucket_name = bucket_name
logger.info(f"Connected to S3-compatible storage at {endpoint}") protocol = "https" if use_ssl else "http"
logger.info(f"Connected to S3-compatible storage at {protocol}://{endpoint}")
self.ensure_bucket() self.ensure_bucket()

View file

@ -19,10 +19,12 @@ class Librarian:
cassandra_host, cassandra_username, cassandra_password, cassandra_host, cassandra_username, cassandra_password,
object_store_endpoint, object_store_access_key, object_store_secret_key, object_store_endpoint, object_store_access_key, object_store_secret_key,
bucket_name, keyspace, load_document, bucket_name, keyspace, load_document,
object_store_use_ssl=False, object_store_region=None,
): ):
self.blob_store = BlobStore( self.blob_store = BlobStore(
object_store_endpoint, object_store_access_key, object_store_secret_key, bucket_name object_store_endpoint, object_store_access_key, object_store_secret_key, bucket_name,
use_ssl=object_store_use_ssl, region=object_store_region,
) )
self.table_store = LibraryTableStore( self.table_store = LibraryTableStore(

View file

@ -41,9 +41,11 @@ default_collection_response_queue = collection_response_queue
default_config_request_queue = config_request_queue default_config_request_queue = config_request_queue
default_config_response_queue = config_response_queue default_config_response_queue = config_response_queue
default_object_store_endpoint = "http://ceph-rgw:7480" default_object_store_endpoint = "ceph-rgw:7480"
default_object_store_access_key = "object-user" default_object_store_access_key = "object-user"
default_object_store_secret_key = "object-password" default_object_store_secret_key = "object-password"
default_object_store_use_ssl = False
default_object_store_region = None
default_cassandra_host = "cassandra" default_cassandra_host = "cassandra"
bucket_name = "library" bucket_name = "library"
@ -89,6 +91,14 @@ class Processor(AsyncProcessor):
"object_store_secret_key", "object_store_secret_key",
default_object_store_secret_key default_object_store_secret_key
) )
object_store_use_ssl = params.get(
"object_store_use_ssl",
default_object_store_use_ssl
)
object_store_region = params.get(
"object_store_region",
default_object_store_region
)
cassandra_host = params.get("cassandra_host") cassandra_host = params.get("cassandra_host")
cassandra_username = params.get("cassandra_username") cassandra_username = params.get("cassandra_username")
@ -214,6 +224,8 @@ class Processor(AsyncProcessor):
bucket_name = bucket_name, bucket_name = bucket_name,
keyspace = keyspace, keyspace = keyspace,
load_document = self.load_document, load_document = self.load_document,
object_store_use_ssl = object_store_use_ssl,
object_store_region = object_store_region,
) )
self.collection_manager = CollectionManager( self.collection_manager = CollectionManager(
@ -513,6 +525,19 @@ class Processor(AsyncProcessor):
f'(default: {default_object_store_secret_key})', f'(default: {default_object_store_secret_key})',
) )
parser.add_argument(
'--object-store-use-ssl',
action='store_true',
default=default_object_store_use_ssl,
help=f'Use SSL/TLS for object storage connection (default: {default_object_store_use_ssl})',
)
parser.add_argument(
'--object-store-region',
default=default_object_store_region,
help='Object storage region (optional)',
)
add_cassandra_args(parser) add_cassandra_args(parser)
def run(): def run():