fix node serialization (#1627)

* fix node serialization

* remove intermediate variable

* mypy fix
This commit is contained in:
Cheick Keita
2022-01-31 10:05:28 -08:00
committed by GitHub
parent dab0dba34f
commit 809db31186
2 changed files with 9 additions and 10 deletions

View File

@ -30,8 +30,7 @@ def get(req: func.HttpRequest) -> func.HttpResponse:
if isinstance(node, Error):
return not_ok(node, context=request.machine_id)
node_tasks = NodeTasks.get_by_machine_id(request.machine_id)
node.tasks = [(t.task_id, t.state) for t in node_tasks]
node.tasks = [n for n in NodeTasks.get_by_machine_id(request.machine_id)]
node.messages = [
x.message for x in NodeMessage.get_messages(request.machine_id)
]

View File

@ -4,7 +4,7 @@
# Licensed under the MIT License.
from datetime import datetime
from typing import Any, Dict, Generic, List, Optional, Tuple, TypeVar, Union
from typing import Any, Dict, Generic, List, Optional, TypeVar, Union
from uuid import UUID, uuid4
from pydantic import BaseModel, Field, root_validator, validator
@ -561,6 +561,12 @@ class NodeCommand(EnumModel):
stop_if_free: Optional[NodeCommandStopIfFree]
class NodeTasks(BaseModel):
machine_id: UUID
task_id: UUID
state: NodeTaskState = Field(default=NodeTaskState.init)
class NodeCommandEnvelope(BaseModel):
command: NodeCommand
message_id: str
@ -576,7 +582,7 @@ class Node(BaseModel):
machine_id: UUID
state: NodeState = Field(default=NodeState.init)
scaleset_id: Optional[UUID] = None
tasks: Optional[List[Tuple[UUID, NodeTaskState]]] = None
tasks: Optional[List[NodeTasks]] = None
messages: Optional[List[NodeCommand]] = None
heartbeat: Optional[datetime]
version: str = Field(default="1.0.0")
@ -590,12 +596,6 @@ class ScalesetSummary(BaseModel):
state: ScalesetState
class NodeTasks(BaseModel):
machine_id: UUID
task_id: UUID
state: NodeTaskState = Field(default=NodeTaskState.init)
class AutoScaleConfig(BaseModel):
image: str
max_size: int = Field(default=1000, le=1000, ge=0) # max size of pool