mirror of
https://github.com/clearml/clearml-server
synced 2025-01-31 10:56:48 +00:00
77 lines
2.2 KiB
Python
77 lines
2.2 KiB
Python
from mongoengine import (
|
|
Document,
|
|
EmbeddedDocument,
|
|
StringField,
|
|
DateTimeField,
|
|
EmbeddedDocumentListField,
|
|
EmbeddedDocumentField,
|
|
BooleanField,
|
|
)
|
|
|
|
from apiserver.database import Database, strict
|
|
from apiserver.database.model import DbModelMixin
|
|
from apiserver.database.model.base import ProperDictMixin
|
|
|
|
class AWSBucketSettings(EmbeddedDocument, ProperDictMixin):
|
|
bucket = StringField()
|
|
subdir = StringField()
|
|
host = StringField()
|
|
key = StringField()
|
|
secret = StringField()
|
|
token = StringField()
|
|
multipart = BooleanField()
|
|
acl = StringField()
|
|
secure = BooleanField()
|
|
region = StringField()
|
|
verify = BooleanField()
|
|
use_credentials_chain = BooleanField()
|
|
|
|
|
|
class AWSSettings(EmbeddedDocument, DbModelMixin):
|
|
key = StringField()
|
|
secret = StringField()
|
|
region = StringField()
|
|
token = StringField()
|
|
use_credentials_chain = BooleanField()
|
|
buckets = EmbeddedDocumentListField(AWSBucketSettings)
|
|
|
|
|
|
class GoogleBucketSettings(EmbeddedDocument, ProperDictMixin):
|
|
bucket = StringField()
|
|
subdir = StringField()
|
|
project = StringField()
|
|
credentials_json = StringField()
|
|
|
|
|
|
class GoogleStorageSettings(EmbeddedDocument, DbModelMixin):
|
|
project = StringField()
|
|
credentials_json = StringField()
|
|
buckets = EmbeddedDocumentListField(GoogleBucketSettings)
|
|
|
|
|
|
class AzureStorageContainerSettings(EmbeddedDocument, ProperDictMixin):
|
|
account_name = StringField(required=True)
|
|
account_key = StringField(required=True)
|
|
container_name = StringField()
|
|
|
|
|
|
class AzureStorageSettings(EmbeddedDocument, DbModelMixin):
|
|
containers = EmbeddedDocumentListField(AzureStorageContainerSettings)
|
|
|
|
|
|
class StorageSettings(DbModelMixin, Document):
|
|
meta = {
|
|
"db_alias": Database.backend,
|
|
"strict": strict,
|
|
"indexes": [
|
|
"company"
|
|
],
|
|
}
|
|
|
|
id = StringField(primary_key=True)
|
|
company = StringField(required=True, unique=True)
|
|
last_update = DateTimeField()
|
|
aws: AWSSettings = EmbeddedDocumentField(AWSSettings)
|
|
google: GoogleStorageSettings = EmbeddedDocumentField(GoogleStorageSettings)
|
|
azure: AzureStorageSettings = EmbeddedDocumentField(AzureStorageSettings)
|