Skip to content

Commit 9869edb

Browse files
authored
[RSDK-8383] Add robot get_version (#700)
1 parent c9049ed commit 9869edb

File tree

2 files changed

+48
-0
lines changed

2 files changed

+48
-0
lines changed

src/viam/robot/client.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
GetOperationsResponse,
3030
GetStatusRequest,
3131
GetStatusResponse,
32+
GetVersionRequest,
33+
GetVersionResponse,
3234
LogRequest,
3335
Operation,
3436
ResourceNamesRequest,
@@ -868,3 +870,27 @@ async def shutdown(self):
868870
raise e
869871
else:
870872
raise e
873+
874+
######################
875+
# Get Version #
876+
######################
877+
878+
async def get_version(self) -> GetVersionResponse:
879+
"""
880+
Get version information about the robot.
881+
882+
::
883+
884+
result = machine.get_version()
885+
print(result.platform)
886+
print(result.version)
887+
print(result.api_version)
888+
889+
Returns:
890+
viam.proto.robot.GetVersionResponse: Robot version related information.
891+
892+
For more information, see `Machine Management API <https://docs.viam.com/appendix/apis/robot/>`_.
893+
"""
894+
895+
request = GetVersionRequest()
896+
return await self._client.GetVersion(request)

tests/test_robot.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@
3636
GetOperationsResponse,
3737
GetStatusRequest,
3838
GetStatusResponse,
39+
GetVersionRequest,
40+
GetVersionResponse,
3941
Operation,
4042
ResourceNamesRequest,
4143
ResourceNamesResponse,
@@ -153,6 +155,12 @@
153155
machine_part_id="the-machine-part-id",
154156
)
155157

158+
GET_VERVSION_RESPONSE = GetVersionResponse(
159+
platform="rdk",
160+
version="0.2.0",
161+
api_version="0.3.0",
162+
)
163+
156164

157165
@pytest.fixture(scope="function")
158166
def service() -> RobotService:
@@ -212,6 +220,11 @@ async def GetCloudMetadata(stream: Stream[GetCloudMetadataRequest, GetCloudMetad
212220
assert request is not None
213221
await stream.send_message(GET_CLOUD_METADATA_RESPONSE)
214222

223+
async def GetVersion(stream: Stream[GetVersionRequest, GetVersionResponse]) -> None:
224+
request = await stream.recv_message()
225+
assert request is not None
226+
await stream.send_message(GET_VERVSION_RESPONSE)
227+
215228
async def Shutdown(stream: Stream[ShutdownRequest, ShutdownResponse]) -> None:
216229
request = await stream.recv_message()
217230
assert request is not None
@@ -226,6 +239,7 @@ async def Shutdown(stream: Stream[ShutdownRequest, ShutdownResponse]) -> None:
226239
service.GetOperations = GetOperations
227240
service.GetCloudMetadata = GetCloudMetadata
228241
service.Shutdown = Shutdown
242+
service.GetVersion = GetVersion
229243

230244
return service
231245

@@ -440,6 +454,14 @@ async def test_get_cloud_metadata(self, service: RobotService):
440454
assert md == GET_CLOUD_METADATA_RESPONSE
441455
await client.close()
442456

457+
@pytest.mark.asyncio
458+
async def test_get_version(self, service: RobotService):
459+
async with ChannelFor([service]) as channel:
460+
client = await RobotClient.with_channel(channel, RobotClient.Options())
461+
md = await client.get_version()
462+
assert md == GET_VERVSION_RESPONSE
463+
await client.close()
464+
443465
@pytest.mark.asyncio
444466
async def test_get_operations(self, service: RobotService):
445467
async with ChannelFor([service]) as channel:

0 commit comments

Comments
 (0)