Skip to content

Commit 0303acb

Browse files
authored
RSDK-594 Pass metadata into all service methods (#200)
1 parent c7e8c9d commit 0303acb

File tree

14 files changed

+69
-54
lines changed

14 files changed

+69
-54
lines changed

src/viam/components/audio_input/service.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ async def Chunks(self, stream: Stream[ChunksRequest, ChunksResponse]) -> None:
3737
raise e.grpc_error
3838

3939
timeout = stream.deadline.time_remaining() if stream.deadline else None
40-
audio_stream = await audio_input.stream(timeout=timeout)
40+
audio_stream = await audio_input.stream(timeout=timeout, metadata=stream.metadata)
4141
first_chunk = await audio_stream.__anext__()
4242
await stream.send_message(ChunksResponse(info=first_chunk.info))
4343
await stream.send_message(ChunksResponse(chunk=first_chunk.chunk))
@@ -53,7 +53,7 @@ async def Properties(self, stream: Stream[PropertiesRequest, PropertiesResponse]
5353
except ComponentNotFoundError as e:
5454
raise e.grpc_error
5555
timeout = stream.deadline.time_remaining() if stream.deadline else None
56-
response = (await audio_input.get_properties(timeout=timeout)).proto
56+
response = (await audio_input.get_properties(timeout=timeout, metadata=stream.metadata)).proto
5757
await stream.send_message(response)
5858

5959
async def Record(self, stream: Stream[RecordRequest, HttpBody]) -> None:

src/viam/components/base/service.py

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ async def MoveStraight(self, stream: Stream[MoveStraightRequest, MoveStraightRes
4040
velocity=request.mm_per_sec,
4141
extra=struct_to_dict(request.extra),
4242
timeout=timeout,
43+
metadata=stream.metadata,
4344
)
4445
response = MoveStraightResponse()
4546
await stream.send_message(response)
@@ -53,7 +54,13 @@ async def Spin(self, stream: Stream[SpinRequest, SpinResponse]) -> None:
5354
except ComponentNotFoundError as e:
5455
raise e.grpc_error
5556
timeout = stream.deadline.time_remaining() if stream.deadline else None
56-
await base.spin(angle=request.angle_deg, velocity=request.degs_per_sec, extra=struct_to_dict(request.extra), timeout=timeout)
57+
await base.spin(
58+
angle=request.angle_deg,
59+
velocity=request.degs_per_sec,
60+
extra=struct_to_dict(request.extra),
61+
timeout=timeout,
62+
metadata=stream.metadata,
63+
)
5764
response = SpinResponse()
5865
await stream.send_message(response)
5966

@@ -66,7 +73,9 @@ async def SetPower(self, stream: Stream[SetPowerRequest, SetPowerResponse]) -> N
6673
except ComponentNotFoundError as e:
6774
raise e.grpc_error
6875
timeout = stream.deadline.time_remaining() if stream.deadline else None
69-
await base.set_power(request.linear, request.angular, extra=struct_to_dict(request.extra), timeout=timeout)
76+
await base.set_power(
77+
request.linear, request.angular, extra=struct_to_dict(request.extra), timeout=timeout, metadata=stream.metadata
78+
)
7079
response = SetPowerResponse()
7180
await stream.send_message(response)
7281

@@ -79,7 +88,9 @@ async def SetVelocity(self, stream: Stream[SetVelocityRequest, SetVelocityRespon
7988
except ComponentNotFoundError as e:
8089
raise e.grpc_error
8190
timeout = stream.deadline.time_remaining() if stream.deadline else None
82-
await base.set_velocity(request.linear, request.angular, extra=struct_to_dict(request.extra), timeout=timeout)
91+
await base.set_velocity(
92+
request.linear, request.angular, extra=struct_to_dict(request.extra), timeout=timeout, metadata=stream.metadata
93+
)
8394
await stream.send_message(SetVelocityResponse())
8495

8596
async def Stop(self, stream: Stream[StopRequest, StopResponse]) -> None:
@@ -91,6 +102,6 @@ async def Stop(self, stream: Stream[StopRequest, StopResponse]) -> None:
91102
except ComponentNotFoundError as e:
92103
raise e.grpc_error
93104
timeout = stream.deadline.time_remaining() if stream.deadline else None
94-
await base.stop(extra=struct_to_dict(request.extra), timeout=timeout)
105+
await base.stop(extra=struct_to_dict(request.extra), timeout=timeout, metadata=stream.metadata)
95106
response = StopResponse()
96107
await stream.send_message(response)

src/viam/components/board/service.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ async def Status(self, stream: Stream[StatusRequest, StatusResponse]) -> None:
4343
except ComponentNotFoundError as e:
4444
raise e.grpc_error
4545
timeout = stream.deadline.time_remaining() if stream.deadline else None
46-
status = await board.status(extra=struct_to_dict(request.extra), timeout=timeout)
46+
status = await board.status(extra=struct_to_dict(request.extra), timeout=timeout, metadata=stream.metadata)
4747
response = StatusResponse(status=status)
4848
await stream.send_message(response)
4949

@@ -57,7 +57,7 @@ async def SetGPIO(self, stream: Stream[SetGPIORequest, SetGPIOResponse]) -> None
5757
except ComponentNotFoundError as e:
5858
raise e.grpc_error
5959
timeout = stream.deadline.time_remaining() if stream.deadline else None
60-
await pin.set(request.high, extra=struct_to_dict(request.extra), timeout=timeout)
60+
await pin.set(request.high, extra=struct_to_dict(request.extra), timeout=timeout, metadata=stream.metadata)
6161
response = SetGPIOResponse()
6262
await stream.send_message(response)
6363

@@ -71,7 +71,7 @@ async def GetGPIO(self, stream: Stream[GetGPIORequest, GetGPIOResponse]) -> None
7171
except ComponentNotFoundError as e:
7272
raise e.grpc_error
7373
timeout = stream.deadline.time_remaining() if stream.deadline else None
74-
high = await pin.get(extra=struct_to_dict(request.extra), timeout=timeout)
74+
high = await pin.get(extra=struct_to_dict(request.extra), timeout=timeout, metadata=stream.metadata)
7575
response = GetGPIOResponse(high=high)
7676
await stream.send_message(response)
7777

@@ -85,7 +85,7 @@ async def PWM(self, stream: Stream[PWMRequest, PWMResponse]) -> None:
8585
except ComponentNotFoundError as e:
8686
raise e.grpc_error
8787
timeout = stream.deadline.time_remaining() if stream.deadline else None
88-
pwm = await pin.get_pwm(extra=struct_to_dict(request.extra), timeout=timeout)
88+
pwm = await pin.get_pwm(extra=struct_to_dict(request.extra), timeout=timeout, metadata=stream.metadata)
8989
response = PWMResponse(duty_cycle_pct=pwm)
9090
await stream.send_message(response)
9191

@@ -99,7 +99,7 @@ async def SetPWM(self, stream: Stream[SetPWMRequest, SetPWMResponse]) -> None:
9999
except ComponentNotFoundError as e:
100100
raise e.grpc_error
101101
timeout = stream.deadline.time_remaining() if stream.deadline else None
102-
await pin.set_pwm(request.duty_cycle_pct, extra=struct_to_dict(request.extra), timeout=timeout)
102+
await pin.set_pwm(request.duty_cycle_pct, extra=struct_to_dict(request.extra), timeout=timeout, metadata=stream.metadata)
103103
response = SetPWMResponse()
104104
await stream.send_message(response)
105105

@@ -113,7 +113,7 @@ async def PWMFrequency(self, stream: Stream[PWMFrequencyRequest, PWMFrequencyRes
113113
except ComponentNotFoundError as e:
114114
raise e.grpc_error
115115
timeout = stream.deadline.time_remaining() if stream.deadline else None
116-
frequency = await pin.get_pwm_frequency(extra=struct_to_dict(request.extra), timeout=timeout)
116+
frequency = await pin.get_pwm_frequency(extra=struct_to_dict(request.extra), timeout=timeout, metadata=stream.metadata)
117117
response = PWMFrequencyResponse(frequency_hz=frequency)
118118
await stream.send_message(response)
119119

@@ -127,7 +127,7 @@ async def SetPWMFrequency(self, stream: Stream[SetPWMFrequencyRequest, SetPWMFre
127127
except ComponentNotFoundError as e:
128128
raise e.grpc_error
129129
timeout = stream.deadline.time_remaining() if stream.deadline else None
130-
await pin.set_pwm_frequency(request.frequency_hz, extra=struct_to_dict(request.extra), timeout=timeout)
130+
await pin.set_pwm_frequency(request.frequency_hz, extra=struct_to_dict(request.extra), timeout=timeout, metadata=stream.metadata)
131131
response = SetPWMFrequencyResponse()
132132
await stream.send_message(response)
133133

@@ -141,7 +141,7 @@ async def ReadAnalogReader(self, stream: Stream[ReadAnalogReaderRequest, ReadAna
141141
except ComponentNotFoundError as e:
142142
raise e.grpc_error
143143
timeout = stream.deadline.time_remaining() if stream.deadline else None
144-
value = await analog_reader.read(extra=struct_to_dict(request.extra), timeout=timeout)
144+
value = await analog_reader.read(extra=struct_to_dict(request.extra), timeout=timeout, metadata=stream.metadata)
145145
response = ReadAnalogReaderResponse(value=value)
146146
await stream.send_message(response)
147147

@@ -155,6 +155,6 @@ async def GetDigitalInterruptValue(self, stream: Stream[GetDigitalInterruptValue
155155
except ComponentNotFoundError as e:
156156
raise e.grpc_error
157157
timeout = stream.deadline.time_remaining() if stream.deadline else None
158-
value = await interrupt.value(extra=struct_to_dict(request.extra), timeout=timeout)
158+
value = await interrupt.value(extra=struct_to_dict(request.extra), timeout=timeout, metadata=stream.metadata)
159159
response = GetDigitalInterruptValueResponse(value=value)
160160
await stream.send_message(response)

src/viam/components/camera/service.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ async def GetImage(self, stream: Stream[GetImageRequest, GetImageResponse]) -> N
3535
raise e.grpc_error
3636

3737
timeout = stream.deadline.time_remaining() if stream.deadline else None
38-
image = await camera.get_image(request.mime_type, timeout=timeout)
38+
image = await camera.get_image(request.mime_type, timeout=timeout, metadata=stream.metadata)
3939
try:
4040
mimetype, is_lazy = CameraMimeType.from_lazy(request.mime_type)
4141
if CameraMimeType.is_supported(mimetype):
@@ -62,7 +62,7 @@ async def RenderFrame(self, stream: Stream[RenderFrameRequest, HttpBody]) -> Non
6262
except ValueError:
6363
mimetype = CameraMimeType.JPEG
6464
timeout = stream.deadline.time_remaining() if stream.deadline else None
65-
image = await camera.get_image(mimetype, timeout=timeout)
65+
image = await camera.get_image(mimetype, timeout=timeout, metadata=stream.metadata)
6666
try:
6767
img = mimetype.encode_image(image)
6868
finally:
@@ -79,7 +79,7 @@ async def GetPointCloud(self, stream: Stream[GetPointCloudRequest, GetPointCloud
7979
except ComponentNotFoundError as e:
8080
raise e.grpc_error
8181
timeout = stream.deadline.time_remaining() if stream.deadline else None
82-
pc, mimetype = await camera.get_point_cloud(timeout=timeout)
82+
pc, mimetype = await camera.get_point_cloud(timeout=timeout, metadata=stream.metadata)
8383
response = GetPointCloudResponse(mime_type=mimetype, point_cloud=pc)
8484
await stream.send_message(response)
8585

@@ -92,7 +92,7 @@ async def GetProperties(self, stream: Stream[GetPropertiesRequest, GetProperties
9292
except ComponentNotFoundError as e:
9393
raise e.grpc_error
9494
timeout = stream.deadline.time_remaining() if stream.deadline else None
95-
properties = await camera.get_properties(timeout=timeout)
95+
properties = await camera.get_properties(timeout=timeout, metadata=stream.metadata)
9696
response = GetPropertiesResponse(
9797
supports_pcd=properties.supports_pcd,
9898
intrinsic_parameters=properties.intrinsic_parameters,

src/viam/components/gantry/service.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ async def GetPosition(self, stream: Stream[GetPositionRequest, GetPositionRespon
3434
except ComponentNotFoundError as e:
3535
raise e.grpc_error
3636
timeout = stream.deadline.time_remaining() if stream.deadline else None
37-
position = await gantry.get_position(extra=struct_to_dict(request.extra), timeout=timeout)
37+
position = await gantry.get_position(extra=struct_to_dict(request.extra), timeout=timeout, metadata=stream.metadata)
3838
response = GetPositionResponse(positions_mm=position)
3939
await stream.send_message(response)
4040

@@ -47,7 +47,9 @@ async def MoveToPosition(self, stream: Stream[MoveToPositionRequest, MoveToPosit
4747
except ComponentNotFoundError as e:
4848
raise e.grpc_error
4949
timeout = stream.deadline.time_remaining() if stream.deadline else None
50-
await gantry.move_to_position(list(request.positions_mm), request.world_state, extra=struct_to_dict(request.extra), timeout=timeout)
50+
await gantry.move_to_position(
51+
list(request.positions_mm), request.world_state, extra=struct_to_dict(request.extra), timeout=timeout, metadata=stream.metadata
52+
)
5153
response = MoveToPositionResponse()
5254
await stream.send_message(response)
5355

@@ -60,7 +62,7 @@ async def GetLengths(self, stream: Stream[GetLengthsRequest, GetLengthsResponse]
6062
except ComponentNotFoundError as e:
6163
raise e.grpc_error
6264
timeout = stream.deadline.time_remaining() if stream.deadline else None
63-
lengths = await gantry.get_lengths(extra=struct_to_dict(request.extra), timeout=timeout)
65+
lengths = await gantry.get_lengths(extra=struct_to_dict(request.extra), timeout=timeout, metadata=stream.metadata)
6466
response = GetLengthsResponse(lengths_mm=lengths)
6567
await stream.send_message(response)
6668

@@ -73,6 +75,6 @@ async def Stop(self, stream: Stream[StopRequest, StopResponse]) -> None:
7375
except ComponentNotFoundError as e:
7476
raise e.grpc_error
7577
timeout = stream.deadline.time_remaining() if stream.deadline else None
76-
await gantry.stop(extra=struct_to_dict(request.extra), timeout=timeout)
78+
await gantry.stop(extra=struct_to_dict(request.extra), timeout=timeout, metadata=stream.metadata)
7779
response = StopResponse()
7880
await stream.send_message(response)

src/viam/components/generic/service.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ async def DoCommand(self, stream: Stream[DoCommandRequest, DoCommandResponse]) -
3131
raise e.grpc_error
3232
try:
3333
timeout = stream.deadline.time_remaining() if stream.deadline else None
34-
result = await component.do_command(struct_to_dict(request.command), timeout=timeout)
34+
result = await component.do_command(struct_to_dict(request.command), timeout=timeout, metadata=stream.metadata)
3535
except NotImplementedError:
3636
raise GRPCError(Status.UNIMPLEMENTED, f"``DO`` command is unimplemented for component named: {name}")
3737
response = DoCommandResponse(result=dict_to_struct(result))

src/viam/components/gripper/service.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ async def Open(self, stream: Stream[OpenRequest, OpenResponse]) -> None:
3232
except ComponentNotFoundError as e:
3333
raise e.grpc_error
3434
timeout = stream.deadline.time_remaining() if stream.deadline else None
35-
await gripper.open(extra=struct_to_dict(request.extra), timeout=timeout)
35+
await gripper.open(extra=struct_to_dict(request.extra), timeout=timeout, metadata=stream.metadata)
3636
response = OpenResponse()
3737
await stream.send_message(response)
3838

@@ -45,7 +45,7 @@ async def Grab(self, stream: Stream[GrabRequest, GrabResponse]) -> None:
4545
except ComponentNotFoundError as e:
4646
raise e.grpc_error
4747
timeout = stream.deadline.time_remaining() if stream.deadline else None
48-
grabbed = await gripper.grab(extra=struct_to_dict(request.extra), timeout=timeout)
48+
grabbed = await gripper.grab(extra=struct_to_dict(request.extra), timeout=timeout, metadata=stream.metadata)
4949
response = GrabResponse(success=grabbed)
5050
await stream.send_message(response)
5151

@@ -57,5 +57,5 @@ async def Stop(self, stream: Stream[StopRequest, StopResponse]) -> None:
5757
except ComponentNotFoundError as e:
5858
raise e.grpc_error
5959
timeout = stream.deadline.time_remaining() if stream.deadline else None
60-
await gripper.stop(extra=struct_to_dict(request.extra), timeout=timeout)
60+
await gripper.stop(extra=struct_to_dict(request.extra), timeout=timeout, metadata=stream.metadata)
6161
await stream.send_message(StopResponse())

src/viam/components/input/service.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ async def GetControls(self, stream: Stream[GetControlsRequest, GetControlsRespon
4242
except ComponentNotFoundError as e:
4343
raise e.grpc_error
4444
timeout = stream.deadline.time_remaining() if stream.deadline else None
45-
controls = await controller.get_controls(extra=struct_to_dict(request.extra), timeout=timeout)
45+
controls = await controller.get_controls(extra=struct_to_dict(request.extra), timeout=timeout, metadata=stream.metadata)
4646
response = GetControlsResponse(controls=[c.value for c in controls])
4747
await stream.send_message(response)
4848

@@ -55,7 +55,7 @@ async def GetEvents(self, stream: Stream[GetEventsRequest, GetEventsResponse]) -
5555
except ComponentNotFoundError as e:
5656
raise e.grpc_error
5757
timeout = stream.deadline.time_remaining() if stream.deadline else None
58-
events = await controller.get_events(extra=struct_to_dict(request.extra), timeout=timeout)
58+
events = await controller.get_events(extra=struct_to_dict(request.extra), timeout=timeout, metadata=stream.metadata)
5959
pb_events = [e.proto for e in events.values()]
6060
response = GetEventsResponse(events=pb_events)
6161
await stream.send_message(response)
@@ -157,7 +157,7 @@ async def TriggerEvent(self, stream: Stream[TriggerEventRequest, TriggerEventRes
157157
controller = self.get_component(name)
158158
pb_event = request.event
159159
event = Event.from_proto(pb_event)
160-
await controller.trigger_event(event, extra=struct_to_dict(request.extra), timeout=timeout)
160+
await controller.trigger_event(event, extra=struct_to_dict(request.extra), timeout=timeout, metadata=stream.metadata)
161161
except ComponentNotFoundError as e:
162162
raise e.grpc_error
163163
except NotSupportedError as e:

0 commit comments

Comments
 (0)