Skip to content

Commit 705f6e9

Browse files
committed
[#88650] server: src: device_mgmt: Update device version
Signed-off-by: Anna Roszkiewicz <[email protected]>
1 parent 9b1714b commit 705f6e9

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

common/communication/src/request_models.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,11 @@ class UpdateProgress(Request):
103103
progress: int
104104

105105

106+
class UpdateVersion(Request):
107+
method: Literal['update_version'] = 'update_version'
108+
version: str
109+
110+
106111
class Container(BaseModel):
107112
"""container holds a list of models to enable parsing from json"""
108113
data: Union[
@@ -118,4 +123,5 @@ class Container(BaseModel):
118123
FsFileProbe,
119124
FsFileProbeReply,
120125
UpdateProgress,
126+
UpdateVersion,
121127
]

server/src/device_mgmt/models/remote_device.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
FsFileDownloadReply,
1515
FsFileProbeReply,
1616
UpdateProgress,
17+
UpdateVersion,
1718
)
1819

1920
import simple_websocket
@@ -24,6 +25,7 @@
2425
RDFM_WS_MISSING_CAPABILITIES,
2526
WebSocketException,
2627
)
28+
from rdfm.schema.v1.updates import META_SOFT_VER
2729
import device_mgmt.action
2830
import server
2931

@@ -184,6 +186,12 @@ def __handle_device_message(self, request: Request):
184186
f"Device {self.token.device_id} update in progress: {request.progress}%",
185187
flush=True,
186188
)
189+
elif isinstance(request, UpdateVersion):
190+
device = server.instance._devices_db.get_device_data(self.token.device_id)
191+
metadata = json.loads(device.device_metadata)
192+
metadata[META_SOFT_VER] = request.version
193+
server.instance._devices_db.update_metadata(self.token.device_id, metadata)
194+
187195
else:
188196
print("Unknown request:", request, flush=True)
189197
raise WebSocketException(

0 commit comments

Comments
 (0)