mirror of
https://github.com/microsoft/onefuzz.git
synced 2025-06-18 20:58:06 +00:00
fix node serialization (#1627)
* fix node serialization * remove intermediate variable * mypy fix
This commit is contained in:
@ -30,8 +30,7 @@ def get(req: func.HttpRequest) -> func.HttpResponse:
|
|||||||
if isinstance(node, Error):
|
if isinstance(node, Error):
|
||||||
return not_ok(node, context=request.machine_id)
|
return not_ok(node, context=request.machine_id)
|
||||||
|
|
||||||
node_tasks = NodeTasks.get_by_machine_id(request.machine_id)
|
node.tasks = [n for n in NodeTasks.get_by_machine_id(request.machine_id)]
|
||||||
node.tasks = [(t.task_id, t.state) for t in node_tasks]
|
|
||||||
node.messages = [
|
node.messages = [
|
||||||
x.message for x in NodeMessage.get_messages(request.machine_id)
|
x.message for x in NodeMessage.get_messages(request.machine_id)
|
||||||
]
|
]
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
# Licensed under the MIT License.
|
# Licensed under the MIT License.
|
||||||
|
|
||||||
from datetime import datetime
|
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 uuid import UUID, uuid4
|
||||||
|
|
||||||
from pydantic import BaseModel, Field, root_validator, validator
|
from pydantic import BaseModel, Field, root_validator, validator
|
||||||
@ -561,6 +561,12 @@ class NodeCommand(EnumModel):
|
|||||||
stop_if_free: Optional[NodeCommandStopIfFree]
|
stop_if_free: Optional[NodeCommandStopIfFree]
|
||||||
|
|
||||||
|
|
||||||
|
class NodeTasks(BaseModel):
|
||||||
|
machine_id: UUID
|
||||||
|
task_id: UUID
|
||||||
|
state: NodeTaskState = Field(default=NodeTaskState.init)
|
||||||
|
|
||||||
|
|
||||||
class NodeCommandEnvelope(BaseModel):
|
class NodeCommandEnvelope(BaseModel):
|
||||||
command: NodeCommand
|
command: NodeCommand
|
||||||
message_id: str
|
message_id: str
|
||||||
@ -576,7 +582,7 @@ class Node(BaseModel):
|
|||||||
machine_id: UUID
|
machine_id: UUID
|
||||||
state: NodeState = Field(default=NodeState.init)
|
state: NodeState = Field(default=NodeState.init)
|
||||||
scaleset_id: Optional[UUID] = None
|
scaleset_id: Optional[UUID] = None
|
||||||
tasks: Optional[List[Tuple[UUID, NodeTaskState]]] = None
|
tasks: Optional[List[NodeTasks]] = None
|
||||||
messages: Optional[List[NodeCommand]] = None
|
messages: Optional[List[NodeCommand]] = None
|
||||||
heartbeat: Optional[datetime]
|
heartbeat: Optional[datetime]
|
||||||
version: str = Field(default="1.0.0")
|
version: str = Field(default="1.0.0")
|
||||||
@ -590,12 +596,6 @@ class ScalesetSummary(BaseModel):
|
|||||||
state: ScalesetState
|
state: ScalesetState
|
||||||
|
|
||||||
|
|
||||||
class NodeTasks(BaseModel):
|
|
||||||
machine_id: UUID
|
|
||||||
task_id: UUID
|
|
||||||
state: NodeTaskState = Field(default=NodeTaskState.init)
|
|
||||||
|
|
||||||
|
|
||||||
class AutoScaleConfig(BaseModel):
|
class AutoScaleConfig(BaseModel):
|
||||||
image: str
|
image: str
|
||||||
max_size: int = Field(default=1000, le=1000, ge=0) # max size of pool
|
max_size: int = Field(default=1000, le=1000, ge=0) # max size of pool
|
||||||
|
Reference in New Issue
Block a user