Add server uid to server.info response in API v2.8

This commit is contained in:
allegroai 2020-06-01 13:01:31 +03:00
parent c85ab66ae6
commit 84a75d9e70
7 changed files with 36 additions and 13 deletions

View File

@ -207,15 +207,6 @@ class DomainField(fields.StringField):
raise errors.bad_request.InvalidDomainName()
class StringEnum(Enum):
def __str__(self):
return self.value
# noinspection PyMethodParameters
def _generate_next_value_(name, start, count, last_values):
return name
class JsonSerializableMixin:
def to_json(self: ModelBase):
return dumps(self.to_struct())

View File

@ -4,7 +4,7 @@ Module for polymorphism over different types of X axes in scalar aggregations
from abc import ABC, abstractmethod
from enum import auto
from apimodels import StringEnum
from utilities.stringenum import StringEnum
from bll.util import extract_properties_to_lists
from config import config

View File

@ -7,6 +7,10 @@ from database import Database, strict
from database.model import DbModelMixin
class SettingKeys:
server__uuid = "server.uuid"
class Settings(DbModelMixin, Document):
meta = {
"db_alias": Database.backend,
@ -47,7 +51,7 @@ class Settings(DbModelMixin, Document):
""" Adds a new key/value settings. Fails if key already exists. """
key = key.strip(sep)
try:
res = Settings(key=key, value=value).save(force_insert=True)
res = cls(key=key, value=value).save(force_insert=True)
return bool(res)
except NotUniqueError:
return False

View File

@ -6,7 +6,7 @@ from config import config
from config.info import get_default_company
from database.model.company import Company
from database.model.queue import Queue
from database.model.settings import Settings
from database.model.settings import Settings, SettingKeys
log = config.logger(__file__)
@ -37,4 +37,4 @@ def _ensure_default_queue(company):
def _ensure_uuid():
Settings.add_value("server.uuid", str(uuid4()))
Settings.add_value(SettingKeys.server__uuid, str(uuid4()))

View File

@ -69,6 +69,17 @@ info {
}
}
}
"2.8": ${info."2.1"} {
response {
type: object
properties {
uid {
description: "Server UID"
type: string
}
}
}
}
}
endpoints {
"2.1" {

View File

@ -10,6 +10,7 @@ from config.info import get_version, get_build_number, get_commit_number
from database.errors import translate_errors_context
from database.model import Company
from database.model.company import ReportStatsOption
from database.model.settings import Settings, SettingKeys
from service_repo import ServiceRepo, APICall, endpoint
@ -60,6 +61,12 @@ def info(call: APICall):
}
@endpoint("server.info", min_version="2.8")
def info_2_8(call: APICall):
info(call)
call.result.data["uid"] = Settings.get_by_key(SettingKeys.server__uuid)
@endpoint(
"server.report_stats_option",
request_data_model=ReportStatsOptionRequest,

View File

@ -0,0 +1,10 @@
from enum import Enum
class StringEnum(Enum):
def __str__(self):
return self.value
# noinspection PyMethodParameters
def _generate_next_value_(name, start, count, last_values):
return name