diff --git a/apiserver/bll/task/param_utils.py b/apiserver/bll/task/param_utils.py index cb2a40b..3098697 100644 --- a/apiserver/bll/task/param_utils.py +++ b/apiserver/bll/task/param_utils.py @@ -185,6 +185,7 @@ def escape_paths(paths: Sequence[str]) -> Sequence[str]: for old_prefix, new_prefix in ( ("execution.parameters", f"hyperparams.{hyperparams_default_section}"), ("execution.model_desc", f"configuration"), + ("execution.docker_cmd", "container") ): path: str paths = [path.replace(old_prefix, new_prefix) for path in paths] diff --git a/apiserver/schema/services/_common.conf b/apiserver/schema/services/_common.conf index cdec1c6..7594887 100644 --- a/apiserver/schema/services/_common.conf +++ b/apiserver/schema/services/_common.conf @@ -1,20 +1,17 @@ -metadata { - type: array - items { - type: object - properties { - key { - type: string - description: The key uniquely identifying the metadata item inside the given entity - } - tyoe { - type: string - description: The type of the metadata item - } - value { - type: string - description: The value stored in the metadata item - } +metadata_item { + type: object + properties { + key { + type: string + description: The key uniquely identifying the metadata item inside the given entity + } + type { + type: string + description: The type of the metadata item + } + value { + type: string + description: The value stored in the metadata item } } } diff --git a/apiserver/schema/services/models.conf b/apiserver/schema/services/models.conf index 076acef..97e220d 100644 --- a/apiserver/schema/services/models.conf +++ b/apiserver/schema/services/models.conf @@ -92,6 +92,11 @@ _definitions { type: object additionalProperties: true } + metadata { + type: array + description: "Model metadata" + items {"$ref": "#/definitions/metadata_item"} + } } } published_task_item { @@ -473,8 +478,9 @@ create { } "2.13": ${create."2.1"} { metadata { + type: array description: "Model metadata" - "$ref": "#/definitions/metadata" + items {"$ref": "#/definitions/metadata_item"} } } } @@ -567,8 +573,9 @@ edit { } "2.13": ${edit."2.1"} { metadata { + type: array description: "Model metadata" - "$ref": "#/definitions/metadata" + items {"$ref": "#/definitions/metadata_item"} } } } @@ -649,8 +656,9 @@ update { } "2.13": ${update."2.1"} { metadata { + type: array description: "Model metadata" - "$ref": "#/definitions/metadata" + items {"$ref": "#/definitions/metadata_item"} } } } @@ -904,8 +912,9 @@ add_or_update_metadata { type: string } metadata { + type: array description: "Metadata items to add or update" - "$ref": "#/definitions/metadata" + items {"$ref": "#/definitions/metadata_item"} } } } diff --git a/apiserver/schema/services/queues.conf b/apiserver/schema/services/queues.conf index 1d83ed1..6952ec8 100644 --- a/apiserver/schema/services/queues.conf +++ b/apiserver/schema/services/queues.conf @@ -79,8 +79,9 @@ _definitions { items { "$ref": "#/definitions/entry" } } metadata { + type: array description: "Queue metadata" - "$ref": "#/definitions/metadata" + items {"$ref": "#/definitions/metadata_item"} } } } @@ -581,8 +582,9 @@ add_or_update_metadata { type: string } metadata { + type: array description: "Metadata items to add or update" - "$ref": "#/definitions/metadata" + items {"$ref": "#/definitions/metadata_item"} } } } diff --git a/apiserver/services/utils.py b/apiserver/services/utils.py index aebd68f..ea00c0d 100644 --- a/apiserver/services/utils.py +++ b/apiserver/services/utils.py @@ -149,18 +149,16 @@ class ModelsBackwardsCompatibility: for mode, field in cls.mode_to_fields.items(): value = nested_get(fields, field) - if value: - nested_set( - fields, - (cls.models_field, mode), - value=[ - dict( - name=TaskModelNames[mode], - model=value, - updated=datetime.utcnow(), - ) - ], + if value is None: + continue + val = [ + dict( + name=TaskModelNames[mode], + model=value, + updated=datetime.utcnow(), ) + ] if value else [] + nested_set(fields, (cls.models_field, mode), value=val) nested_delete(fields, field) @@ -195,7 +193,7 @@ class DockerCmdBackwardsCompatibility: return docker_cmd = nested_get(fields, cls.field) - if docker_cmd: + if docker_cmd is not None: image, _, arguments = docker_cmd.partition(" ") nested_set(fields, ("container", "image"), value=image) nested_set(fields, ("container", "arguments"), value=arguments)