Skip to content

Commit 5acae1d

Browse files
authored
feat(mixin): add manual changes for pubsub and generate mixin code (#14756)
* Pubsub manual changes and the sample of generated library code * sort * remove unrelated * fix * add cmake dependency * change cmake dependency * fix linting * dependency
1 parent 99b476e commit 5acae1d

File tree

75 files changed

+1604
-17
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

75 files changed

+1604
-17
lines changed

generator/internal/make_generators.cc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,9 @@ std::vector<std::unique_ptr<GeneratorInterface>> MakeGenerators(
6161
YAML::Node const& service_config,
6262
std::vector<std::pair<std::string, std::string>> const& vars) {
6363
std::vector<MixinMethod> mixin_methods;
64-
// mixin_methods = GetMixinMethods(service_config, *service);
64+
if (service->file()->name() == "google/pubsub/v1/pubsub.proto") {
65+
mixin_methods = GetMixinMethods(service_config, *service);
66+
}
6567
std::vector<std::string> sources;
6668
std::vector<std::unique_ptr<GeneratorInterface>> code_generators;
6769
VarsDictionary service_vars =

google/cloud/BUILD.bazel

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,9 @@ cc_library(
169169
"@com_google_absl//absl/functional:function_ref",
170170
"@com_google_absl//absl/time",
171171
"@com_google_googleapis//:googleapis_system_includes",
172+
"@com_google_googleapis//google/cloud/location:location_cc_grpc",
172173
"@com_google_googleapis//google/iam/credentials/v1:credentials_cc_grpc",
174+
"@com_google_googleapis//google/iam/v1:iam_cc_grpc",
173175
"@com_google_googleapis//google/longrunning:longrunning_cc_grpc",
174176
"@com_google_googleapis//google/rpc:error_details_cc_proto",
175177
"@com_google_googleapis//google/rpc:status_cc_proto",

google/cloud/google_cloud_cpp_grpc_utils.cmake

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ target_link_libraries(
117117
google-cloud-cpp::iam_credentials_v1_iamcredentials_protos
118118
google-cloud-cpp::iam_v1_policy_protos
119119
google-cloud-cpp::longrunning_operations_protos
120+
google-cloud-cpp::iam_v1_iam_policy_protos
120121
google-cloud-cpp::rpc_error_details_protos
121122
google-cloud-cpp::rpc_status_protos
122123
google-cloud-cpp::common
@@ -174,6 +175,7 @@ google_cloud_cpp_add_pkgconfig(
174175
"google_cloud_cpp_common"
175176
"google_cloud_cpp_iam_credentials_v1_iamcredentials_protos"
176177
"google_cloud_cpp_iam_v1_policy_protos"
178+
"google_cloud_cpp_iam_v1_iam_policy_protos"
177179
"google_cloud_cpp_longrunning_operations_protos"
178180
"google_cloud_cpp_rpc_status_protos"
179181
"absl_function_ref"

google/cloud/pubsub/admin/internal/subscription_admin_auth_decorator.cc

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,31 @@ StatusOr<google::pubsub::v1::SeekResponse> SubscriptionAdminAuth::Seek(
132132
return child_->Seek(context, options, request);
133133
}
134134

135+
StatusOr<google::iam::v1::Policy> SubscriptionAdminAuth::SetIamPolicy(
136+
grpc::ClientContext& context, Options const& options,
137+
google::iam::v1::SetIamPolicyRequest const& request) {
138+
auto status = auth_->ConfigureContext(context);
139+
if (!status.ok()) return status;
140+
return child_->SetIamPolicy(context, options, request);
141+
}
142+
143+
StatusOr<google::iam::v1::Policy> SubscriptionAdminAuth::GetIamPolicy(
144+
grpc::ClientContext& context, Options const& options,
145+
google::iam::v1::GetIamPolicyRequest const& request) {
146+
auto status = auth_->ConfigureContext(context);
147+
if (!status.ok()) return status;
148+
return child_->GetIamPolicy(context, options, request);
149+
}
150+
151+
StatusOr<google::iam::v1::TestIamPermissionsResponse>
152+
SubscriptionAdminAuth::TestIamPermissions(
153+
grpc::ClientContext& context, Options const& options,
154+
google::iam::v1::TestIamPermissionsRequest const& request) {
155+
auto status = auth_->ConfigureContext(context);
156+
if (!status.ok()) return status;
157+
return child_->TestIamPermissions(context, options, request);
158+
}
159+
135160
GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END
136161
} // namespace pubsub_admin_internal
137162
} // namespace cloud

google/cloud/pubsub/admin/internal/subscription_admin_auth_decorator.h

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,18 @@ class SubscriptionAdminAuth : public SubscriptionAdminStub {
8686
grpc::ClientContext& context, Options const& options,
8787
google::pubsub::v1::SeekRequest const& request) override;
8888

89+
StatusOr<google::iam::v1::Policy> SetIamPolicy(
90+
grpc::ClientContext& context, Options const& options,
91+
google::iam::v1::SetIamPolicyRequest const& request) override;
92+
93+
StatusOr<google::iam::v1::Policy> GetIamPolicy(
94+
grpc::ClientContext& context, Options const& options,
95+
google::iam::v1::GetIamPolicyRequest const& request) override;
96+
97+
StatusOr<google::iam::v1::TestIamPermissionsResponse> TestIamPermissions(
98+
grpc::ClientContext& context, Options const& options,
99+
google::iam::v1::TestIamPermissionsRequest const& request) override;
100+
89101
private:
90102
std::shared_ptr<google::cloud::internal::GrpcAuthenticationStrategy> auth_;
91103
std::shared_ptr<SubscriptionAdminStub> child_;

google/cloud/pubsub/admin/internal/subscription_admin_connection_impl.cc

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,46 @@ SubscriptionAdminConnectionImpl::Seek(
264264
*current, request, __func__);
265265
}
266266

267+
StatusOr<google::iam::v1::Policy> SubscriptionAdminConnectionImpl::SetIamPolicy(
268+
google::iam::v1::SetIamPolicyRequest const& request) {
269+
auto current = google::cloud::internal::SaveCurrentOptions();
270+
return google::cloud::internal::RetryLoop(
271+
retry_policy(*current), backoff_policy(*current),
272+
idempotency_policy(*current)->SetIamPolicy(request),
273+
[this](grpc::ClientContext& context, Options const& options,
274+
google::iam::v1::SetIamPolicyRequest const& request) {
275+
return stub_->SetIamPolicy(context, options, request);
276+
},
277+
*current, request, __func__);
278+
}
279+
280+
StatusOr<google::iam::v1::Policy> SubscriptionAdminConnectionImpl::GetIamPolicy(
281+
google::iam::v1::GetIamPolicyRequest const& request) {
282+
auto current = google::cloud::internal::SaveCurrentOptions();
283+
return google::cloud::internal::RetryLoop(
284+
retry_policy(*current), backoff_policy(*current),
285+
idempotency_policy(*current)->GetIamPolicy(request),
286+
[this](grpc::ClientContext& context, Options const& options,
287+
google::iam::v1::GetIamPolicyRequest const& request) {
288+
return stub_->GetIamPolicy(context, options, request);
289+
},
290+
*current, request, __func__);
291+
}
292+
293+
StatusOr<google::iam::v1::TestIamPermissionsResponse>
294+
SubscriptionAdminConnectionImpl::TestIamPermissions(
295+
google::iam::v1::TestIamPermissionsRequest const& request) {
296+
auto current = google::cloud::internal::SaveCurrentOptions();
297+
return google::cloud::internal::RetryLoop(
298+
retry_policy(*current), backoff_policy(*current),
299+
idempotency_policy(*current)->TestIamPermissions(request),
300+
[this](grpc::ClientContext& context, Options const& options,
301+
google::iam::v1::TestIamPermissionsRequest const& request) {
302+
return stub_->TestIamPermissions(context, options, request);
303+
},
304+
*current, request, __func__);
305+
}
306+
267307
GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END
268308
} // namespace pubsub_admin_internal
269309
} // namespace cloud

google/cloud/pubsub/admin/internal/subscription_admin_connection_impl.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,15 @@ class SubscriptionAdminConnectionImpl
8585
StatusOr<google::pubsub::v1::SeekResponse> Seek(
8686
google::pubsub::v1::SeekRequest const& request) override;
8787

88+
StatusOr<google::iam::v1::Policy> SetIamPolicy(
89+
google::iam::v1::SetIamPolicyRequest const& request) override;
90+
91+
StatusOr<google::iam::v1::Policy> GetIamPolicy(
92+
google::iam::v1::GetIamPolicyRequest const& request) override;
93+
94+
StatusOr<google::iam::v1::TestIamPermissionsResponse> TestIamPermissions(
95+
google::iam::v1::TestIamPermissionsRequest const& request) override;
96+
8897
private:
8998
std::unique_ptr<google::cloud::BackgroundThreads> background_;
9099
std::shared_ptr<pubsub_admin_internal::SubscriptionAdminStub> stub_;

google/cloud/pubsub/admin/internal/subscription_admin_logging_decorator.cc

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,40 @@ StatusOr<google::pubsub::v1::SeekResponse> SubscriptionAdminLogging::Seek(
172172
context, options, request, __func__, tracing_options_);
173173
}
174174

175+
StatusOr<google::iam::v1::Policy> SubscriptionAdminLogging::SetIamPolicy(
176+
grpc::ClientContext& context, Options const& options,
177+
google::iam::v1::SetIamPolicyRequest const& request) {
178+
return google::cloud::internal::LogWrapper(
179+
[this](grpc::ClientContext& context, Options const& options,
180+
google::iam::v1::SetIamPolicyRequest const& request) {
181+
return child_->SetIamPolicy(context, options, request);
182+
},
183+
context, options, request, __func__, tracing_options_);
184+
}
185+
186+
StatusOr<google::iam::v1::Policy> SubscriptionAdminLogging::GetIamPolicy(
187+
grpc::ClientContext& context, Options const& options,
188+
google::iam::v1::GetIamPolicyRequest const& request) {
189+
return google::cloud::internal::LogWrapper(
190+
[this](grpc::ClientContext& context, Options const& options,
191+
google::iam::v1::GetIamPolicyRequest const& request) {
192+
return child_->GetIamPolicy(context, options, request);
193+
},
194+
context, options, request, __func__, tracing_options_);
195+
}
196+
197+
StatusOr<google::iam::v1::TestIamPermissionsResponse>
198+
SubscriptionAdminLogging::TestIamPermissions(
199+
grpc::ClientContext& context, Options const& options,
200+
google::iam::v1::TestIamPermissionsRequest const& request) {
201+
return google::cloud::internal::LogWrapper(
202+
[this](grpc::ClientContext& context, Options const& options,
203+
google::iam::v1::TestIamPermissionsRequest const& request) {
204+
return child_->TestIamPermissions(context, options, request);
205+
},
206+
context, options, request, __func__, tracing_options_);
207+
}
208+
175209
GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END
176210
} // namespace pubsub_admin_internal
177211
} // namespace cloud

google/cloud/pubsub/admin/internal/subscription_admin_logging_decorator.h

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,18 @@ class SubscriptionAdminLogging : public SubscriptionAdminStub {
8686
grpc::ClientContext& context, Options const& options,
8787
google::pubsub::v1::SeekRequest const& request) override;
8888

89+
StatusOr<google::iam::v1::Policy> SetIamPolicy(
90+
grpc::ClientContext& context, Options const& options,
91+
google::iam::v1::SetIamPolicyRequest const& request) override;
92+
93+
StatusOr<google::iam::v1::Policy> GetIamPolicy(
94+
grpc::ClientContext& context, Options const& options,
95+
google::iam::v1::GetIamPolicyRequest const& request) override;
96+
97+
StatusOr<google::iam::v1::TestIamPermissionsResponse> TestIamPermissions(
98+
grpc::ClientContext& context, Options const& options,
99+
google::iam::v1::TestIamPermissionsRequest const& request) override;
100+
89101
private:
90102
std::shared_ptr<SubscriptionAdminStub> child_;
91103
TracingOptions tracing_options_;

google/cloud/pubsub/admin/internal/subscription_admin_metadata_decorator.cc

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,34 @@ StatusOr<google::pubsub::v1::SeekResponse> SubscriptionAdminMetadata::Seek(
155155
return child_->Seek(context, options, request);
156156
}
157157

158+
StatusOr<google::iam::v1::Policy> SubscriptionAdminMetadata::SetIamPolicy(
159+
grpc::ClientContext& context, Options const& options,
160+
google::iam::v1::SetIamPolicyRequest const& request) {
161+
SetMetadata(
162+
context, options,
163+
absl::StrCat("resource=", internal::UrlEncode(request.resource())));
164+
return child_->SetIamPolicy(context, options, request);
165+
}
166+
167+
StatusOr<google::iam::v1::Policy> SubscriptionAdminMetadata::GetIamPolicy(
168+
grpc::ClientContext& context, Options const& options,
169+
google::iam::v1::GetIamPolicyRequest const& request) {
170+
SetMetadata(
171+
context, options,
172+
absl::StrCat("resource=", internal::UrlEncode(request.resource())));
173+
return child_->GetIamPolicy(context, options, request);
174+
}
175+
176+
StatusOr<google::iam::v1::TestIamPermissionsResponse>
177+
SubscriptionAdminMetadata::TestIamPermissions(
178+
grpc::ClientContext& context, Options const& options,
179+
google::iam::v1::TestIamPermissionsRequest const& request) {
180+
SetMetadata(
181+
context, options,
182+
absl::StrCat("resource=", internal::UrlEncode(request.resource())));
183+
return child_->TestIamPermissions(context, options, request);
184+
}
185+
158186
void SubscriptionAdminMetadata::SetMetadata(grpc::ClientContext& context,
159187
Options const& options,
160188
std::string const& request_params) {

0 commit comments

Comments
 (0)