Skip to content

Commit 20eeb0a

Browse files
fix: use single routing metadata header (#1005)
1 parent 0bddf11 commit 20eeb0a

File tree

4 files changed

+147
-109
lines changed

4 files changed

+147
-109
lines changed

google/cloud/bigtable_v2/services/bigtable/async_client.py

Lines changed: 68 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -340,11 +340,13 @@ def read_rows(
340340

341341
# Certain fields should be provided within the metadata header;
342342
# add these here.
343-
metadata = tuple(metadata) + (
344-
gapic_v1.routing_header.to_grpc_metadata(
345-
(("table_name", request.table_name),)
346-
),
347-
)
343+
metadata = tuple(metadata)
344+
if all(m[0] != gapic_v1.routing_header.ROUTING_METADATA_KEY for m in metadata):
345+
metadata += (
346+
gapic_v1.routing_header.to_grpc_metadata(
347+
(("table_name", request.table_name),)
348+
),
349+
)
348350

349351
# Validate the universe domain.
350352
self._client._validate_universe_domain()
@@ -441,11 +443,13 @@ def sample_row_keys(
441443

442444
# Certain fields should be provided within the metadata header;
443445
# add these here.
444-
metadata = tuple(metadata) + (
445-
gapic_v1.routing_header.to_grpc_metadata(
446-
(("table_name", request.table_name),)
447-
),
448-
)
446+
metadata = tuple(metadata)
447+
if all(m[0] != gapic_v1.routing_header.ROUTING_METADATA_KEY for m in metadata):
448+
metadata += (
449+
gapic_v1.routing_header.to_grpc_metadata(
450+
(("table_name", request.table_name),)
451+
),
452+
)
449453

450454
# Validate the universe domain.
451455
self._client._validate_universe_domain()
@@ -563,11 +567,13 @@ async def mutate_row(
563567

564568
# Certain fields should be provided within the metadata header;
565569
# add these here.
566-
metadata = tuple(metadata) + (
567-
gapic_v1.routing_header.to_grpc_metadata(
568-
(("table_name", request.table_name),)
569-
),
570-
)
570+
metadata = tuple(metadata)
571+
if all(m[0] != gapic_v1.routing_header.ROUTING_METADATA_KEY for m in metadata):
572+
metadata += (
573+
gapic_v1.routing_header.to_grpc_metadata(
574+
(("table_name", request.table_name),)
575+
),
576+
)
571577

572578
# Validate the universe domain.
573579
self._client._validate_universe_domain()
@@ -679,11 +685,13 @@ def mutate_rows(
679685

680686
# Certain fields should be provided within the metadata header;
681687
# add these here.
682-
metadata = tuple(metadata) + (
683-
gapic_v1.routing_header.to_grpc_metadata(
684-
(("table_name", request.table_name),)
685-
),
686-
)
688+
metadata = tuple(metadata)
689+
if all(m[0] != gapic_v1.routing_header.ROUTING_METADATA_KEY for m in metadata):
690+
metadata += (
691+
gapic_v1.routing_header.to_grpc_metadata(
692+
(("table_name", request.table_name),)
693+
),
694+
)
687695

688696
# Validate the universe domain.
689697
self._client._validate_universe_domain()
@@ -838,11 +846,13 @@ async def check_and_mutate_row(
838846

839847
# Certain fields should be provided within the metadata header;
840848
# add these here.
841-
metadata = tuple(metadata) + (
842-
gapic_v1.routing_header.to_grpc_metadata(
843-
(("table_name", request.table_name),)
844-
),
845-
)
849+
metadata = tuple(metadata)
850+
if all(m[0] != gapic_v1.routing_header.ROUTING_METADATA_KEY for m in metadata):
851+
metadata += (
852+
gapic_v1.routing_header.to_grpc_metadata(
853+
(("table_name", request.table_name),)
854+
),
855+
)
846856

847857
# Validate the universe domain.
848858
self._client._validate_universe_domain()
@@ -936,9 +946,11 @@ async def ping_and_warm(
936946

937947
# Certain fields should be provided within the metadata header;
938948
# add these here.
939-
metadata = tuple(metadata) + (
940-
gapic_v1.routing_header.to_grpc_metadata((("name", request.name),)),
941-
)
949+
metadata = tuple(metadata)
950+
if all(m[0] != gapic_v1.routing_header.ROUTING_METADATA_KEY for m in metadata):
951+
metadata += (
952+
gapic_v1.routing_header.to_grpc_metadata((("name", request.name),)),
953+
)
942954

943955
# Validate the universe domain.
944956
self._client._validate_universe_domain()
@@ -1062,11 +1074,13 @@ async def read_modify_write_row(
10621074

10631075
# Certain fields should be provided within the metadata header;
10641076
# add these here.
1065-
metadata = tuple(metadata) + (
1066-
gapic_v1.routing_header.to_grpc_metadata(
1067-
(("table_name", request.table_name),)
1068-
),
1069-
)
1077+
metadata = tuple(metadata)
1078+
if all(m[0] != gapic_v1.routing_header.ROUTING_METADATA_KEY for m in metadata):
1079+
metadata += (
1080+
gapic_v1.routing_header.to_grpc_metadata(
1081+
(("table_name", request.table_name),)
1082+
),
1083+
)
10701084

10711085
# Validate the universe domain.
10721086
self._client._validate_universe_domain()
@@ -1172,11 +1186,13 @@ def generate_initial_change_stream_partitions(
11721186

11731187
# Certain fields should be provided within the metadata header;
11741188
# add these here.
1175-
metadata = tuple(metadata) + (
1176-
gapic_v1.routing_header.to_grpc_metadata(
1177-
(("table_name", request.table_name),)
1178-
),
1179-
)
1189+
metadata = tuple(metadata)
1190+
if all(m[0] != gapic_v1.routing_header.ROUTING_METADATA_KEY for m in metadata):
1191+
metadata += (
1192+
gapic_v1.routing_header.to_grpc_metadata(
1193+
(("table_name", request.table_name),)
1194+
),
1195+
)
11801196

11811197
# Validate the universe domain.
11821198
self._client._validate_universe_domain()
@@ -1274,11 +1290,13 @@ def read_change_stream(
12741290

12751291
# Certain fields should be provided within the metadata header;
12761292
# add these here.
1277-
metadata = tuple(metadata) + (
1278-
gapic_v1.routing_header.to_grpc_metadata(
1279-
(("table_name", request.table_name),)
1280-
),
1281-
)
1293+
metadata = tuple(metadata)
1294+
if all(m[0] != gapic_v1.routing_header.ROUTING_METADATA_KEY for m in metadata):
1295+
metadata += (
1296+
gapic_v1.routing_header.to_grpc_metadata(
1297+
(("table_name", request.table_name),)
1298+
),
1299+
)
12821300

12831301
# Validate the universe domain.
12841302
self._client._validate_universe_domain()
@@ -1377,11 +1395,13 @@ def execute_query(
13771395

13781396
# Certain fields should be provided within the metadata header;
13791397
# add these here.
1380-
metadata = tuple(metadata) + (
1381-
gapic_v1.routing_header.to_grpc_metadata(
1382-
(("instance_name", request.instance_name),)
1383-
),
1384-
)
1398+
metadata = tuple(metadata)
1399+
if all(m[0] != gapic_v1.routing_header.ROUTING_METADATA_KEY for m in metadata):
1400+
metadata += (
1401+
gapic_v1.routing_header.to_grpc_metadata(
1402+
(("instance_name", request.instance_name),)
1403+
),
1404+
)
13851405

13861406
# Validate the universe domain.
13871407
self._client._validate_universe_domain()

google/cloud/bigtable_v2/services/bigtable/client.py

Lines changed: 38 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -817,9 +817,9 @@ def read_rows(
817817
)
818818

819819
if header_params:
820-
metadata = tuple(metadata) + (
821-
gapic_v1.routing_header.to_grpc_metadata(header_params),
822-
)
820+
metadata = tuple(metadata)
821+
if all(m[0] != gapic_v1.routing_header.ROUTING_METADATA_KEY for m in metadata):
822+
metadata += (gapic_v1.routing_header.to_grpc_metadata(header_params),)
823823

824824
# Validate the universe domain.
825825
self._validate_universe_domain()
@@ -933,9 +933,9 @@ def sample_row_keys(
933933
)
934934

935935
if header_params:
936-
metadata = tuple(metadata) + (
937-
gapic_v1.routing_header.to_grpc_metadata(header_params),
938-
)
936+
metadata = tuple(metadata)
937+
if all(m[0] != gapic_v1.routing_header.ROUTING_METADATA_KEY for m in metadata):
938+
metadata += (gapic_v1.routing_header.to_grpc_metadata(header_params),)
939939

940940
# Validate the universe domain.
941941
self._validate_universe_domain()
@@ -1070,9 +1070,9 @@ def mutate_row(
10701070
)
10711071

10721072
if header_params:
1073-
metadata = tuple(metadata) + (
1074-
gapic_v1.routing_header.to_grpc_metadata(header_params),
1075-
)
1073+
metadata = tuple(metadata)
1074+
if all(m[0] != gapic_v1.routing_header.ROUTING_METADATA_KEY for m in metadata):
1075+
metadata += (gapic_v1.routing_header.to_grpc_metadata(header_params),)
10761076

10771077
# Validate the universe domain.
10781078
self._validate_universe_domain()
@@ -1201,9 +1201,9 @@ def mutate_rows(
12011201
)
12021202

12031203
if header_params:
1204-
metadata = tuple(metadata) + (
1205-
gapic_v1.routing_header.to_grpc_metadata(header_params),
1206-
)
1204+
metadata = tuple(metadata)
1205+
if all(m[0] != gapic_v1.routing_header.ROUTING_METADATA_KEY for m in metadata):
1206+
metadata += (gapic_v1.routing_header.to_grpc_metadata(header_params),)
12071207

12081208
# Validate the universe domain.
12091209
self._validate_universe_domain()
@@ -1375,9 +1375,9 @@ def check_and_mutate_row(
13751375
)
13761376

13771377
if header_params:
1378-
metadata = tuple(metadata) + (
1379-
gapic_v1.routing_header.to_grpc_metadata(header_params),
1380-
)
1378+
metadata = tuple(metadata)
1379+
if all(m[0] != gapic_v1.routing_header.ROUTING_METADATA_KEY for m in metadata):
1380+
metadata += (gapic_v1.routing_header.to_grpc_metadata(header_params),)
13811381

13821382
# Validate the universe domain.
13831383
self._validate_universe_domain()
@@ -1477,9 +1477,9 @@ def ping_and_warm(
14771477
header_params["app_profile_id"] = request.app_profile_id
14781478

14791479
if header_params:
1480-
metadata = tuple(metadata) + (
1481-
gapic_v1.routing_header.to_grpc_metadata(header_params),
1482-
)
1480+
metadata = tuple(metadata)
1481+
if all(m[0] != gapic_v1.routing_header.ROUTING_METADATA_KEY for m in metadata):
1482+
metadata += (gapic_v1.routing_header.to_grpc_metadata(header_params),)
14831483

14841484
# Validate the universe domain.
14851485
self._validate_universe_domain()
@@ -1620,9 +1620,9 @@ def read_modify_write_row(
16201620
)
16211621

16221622
if header_params:
1623-
metadata = tuple(metadata) + (
1624-
gapic_v1.routing_header.to_grpc_metadata(header_params),
1625-
)
1623+
metadata = tuple(metadata)
1624+
if all(m[0] != gapic_v1.routing_header.ROUTING_METADATA_KEY for m in metadata):
1625+
metadata += (gapic_v1.routing_header.to_grpc_metadata(header_params),)
16261626

16271627
# Validate the universe domain.
16281628
self._validate_universe_domain()
@@ -1725,11 +1725,13 @@ def generate_initial_change_stream_partitions(
17251725

17261726
# Certain fields should be provided within the metadata header;
17271727
# add these here.
1728-
metadata = tuple(metadata) + (
1729-
gapic_v1.routing_header.to_grpc_metadata(
1730-
(("table_name", request.table_name),)
1731-
),
1732-
)
1728+
metadata = tuple(metadata)
1729+
if all(m[0] != gapic_v1.routing_header.ROUTING_METADATA_KEY for m in metadata):
1730+
metadata += (
1731+
gapic_v1.routing_header.to_grpc_metadata(
1732+
(("table_name", request.table_name),)
1733+
),
1734+
)
17331735

17341736
# Validate the universe domain.
17351737
self._validate_universe_domain()
@@ -1824,11 +1826,13 @@ def read_change_stream(
18241826

18251827
# Certain fields should be provided within the metadata header;
18261828
# add these here.
1827-
metadata = tuple(metadata) + (
1828-
gapic_v1.routing_header.to_grpc_metadata(
1829-
(("table_name", request.table_name),)
1830-
),
1831-
)
1829+
metadata = tuple(metadata)
1830+
if all(m[0] != gapic_v1.routing_header.ROUTING_METADATA_KEY for m in metadata):
1831+
metadata += (
1832+
gapic_v1.routing_header.to_grpc_metadata(
1833+
(("table_name", request.table_name),)
1834+
),
1835+
)
18321836

18331837
# Validate the universe domain.
18341838
self._validate_universe_domain()
@@ -1933,9 +1937,9 @@ def execute_query(
19331937
header_params["app_profile_id"] = request.app_profile_id
19341938

19351939
if header_params:
1936-
metadata = tuple(metadata) + (
1937-
gapic_v1.routing_header.to_grpc_metadata(header_params),
1938-
)
1940+
metadata = tuple(metadata)
1941+
if all(m[0] != gapic_v1.routing_header.ROUTING_METADATA_KEY for m in metadata):
1942+
metadata += (gapic_v1.routing_header.to_grpc_metadata(header_params),)
19391943

19401944
# Validate the universe domain.
19411945
self._validate_universe_domain()

owlbot.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,17 @@ def insert(file, before_line, insert_line, after_line, escape=None):
143143
escape='"'
144144
)
145145

146+
# ----------------------------------------------------------------------------
147+
# Patch duplicate routing header: https://github.com/googleapis/gapic-generator-python/issues/2078
148+
# ----------------------------------------------------------------------------
149+
for file in ["client.py", "async_client.py"]:
150+
s.replace(
151+
f"google/cloud/bigtable_v2/services/bigtable/{file}",
152+
"metadata \= tuple\(metadata\) \+ \(",
153+
"""metadata = tuple(metadata)
154+
if all(m[0] != gapic_v1.routing_header.ROUTING_METADATA_KEY for m in metadata):
155+
metadata += ("""
156+
)
146157

147158
# ----------------------------------------------------------------------------
148159
# Samples templates

0 commit comments

Comments
 (0)