Skip to content

Commit aaa7a9d

Browse files
committed
incorporate requested changes
1 parent d92aae6 commit aaa7a9d

File tree

4 files changed

+38
-24
lines changed

4 files changed

+38
-24
lines changed

samples/snippets/src/main/java/com/example/spanner/AddAndDropDatabaseRole.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,15 +34,18 @@ static void addAndDropDatabaseRole() {
3434
String projectId = "my-project";
3535
String instanceId = "my-instance";
3636
String databaseId = "my-database";
37-
String parentRole = "new-parent";
38-
String childRole = "new-child";
37+
String parentRole = "my-new-parent-role";
38+
String childRole = "my-new-child-role";
3939
addAndDropDatabaseRole(projectId, instanceId, databaseId, parentRole, childRole);
4040
}
4141

4242
static void addAndDropDatabaseRole(
4343
String projectId, String instanceId, String databaseId, String parentRole, String childRole) {
4444
try (Spanner spanner =
45-
SpannerOptions.newBuilder().setProjectId(projectId).build().getService()) {
45+
SpannerOptions.newBuilder()
46+
.setProjectId(projectId)
47+
.build()
48+
.getService()) {
4649
final DatabaseAdminClient adminClient = spanner.getDatabaseAdminClient();
4750
OperationFuture<Void, UpdateDatabaseDdlMetadata> operation =
4851
adminClient.updateDatabaseDdl(

samples/snippets/src/main/java/com/example/spanner/EnableFineGrainedAccess.java

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
import com.google.cloud.spanner.DatabaseAdminClient;
2424
import com.google.cloud.spanner.Spanner;
2525
import com.google.cloud.spanner.SpannerOptions;
26+
import com.google.common.collect.ImmutableList;
27+
2628
import java.util.ArrayList;
2729
import java.util.List;
2830

@@ -34,8 +36,8 @@ static void enableFineGrainedAccess() {
3436
String instanceId = "my-instance";
3537
String databaseId = "my-database";
3638
String iamMember = "user:[email protected]";
37-
String role = "new-parent";
38-
String title = "my condition title";
39+
String role = "my-role";
40+
String title = "my-condition-title";
3941
enableFineGrainedAccess(projectId, instanceId, databaseId, iamMember, title, role);
4042
}
4143

@@ -47,44 +49,50 @@ static void enableFineGrainedAccess(
4749
String title,
4850
String role) {
4951
try (Spanner spanner =
50-
SpannerOptions.newBuilder().setProjectId(projectId).build().getService()) {
52+
SpannerOptions.newBuilder()
53+
.setProjectId(projectId)
54+
.build()
55+
.getService()) {
5156
final DatabaseAdminClient adminClient = spanner.getDatabaseAdminClient();
5257
Policy policy = adminClient.getDatabaseIAMPolicy(instanceId, databaseId, 3);
5358
int policyVersion = policy.getVersion();
54-
/* getDatabaseIAMPolicy returns the IAM policy for the given database
55-
*
56-
* The policy in the response might use the policy version that you specified, or it might use
57-
* a lower policy version. For example, if you specify version 3, but the policy has no
58-
* conditional role bindings, the response uses version 1. Valid values are 0, 1, and 3.
59-
*
60-
*/
59+
// The policy in the response from getDatabaseIAMPolicy might use the policy version
60+
// that you specified, or it might use a lower policy version. For example, if you
61+
// specify version 3, but the policy has no conditional role bindings, the response
62+
// uses version 1. Valid values are 0, 1, and 3.
6163
if (policy.getVersion() < 3) {
6264
// conditional role bindings work with policy version 3
6365
policyVersion = 3;
6466
}
67+
6568
List<String> members = new ArrayList<>();
6669
members.add(iamMember);
67-
List<Binding> bindings = new ArrayList<>(policy.getBindingsList());
68-
69-
bindings.add(
70+
Binding binding1 =
7071
Binding.newBuilder()
7172
.setRole("roles/spanner.fineGrainedAccessUser")
7273
.setMembers(members)
73-
.build());
74+
.build();
7475

75-
bindings.add(
76+
Binding binding2 =
7677
Binding.newBuilder()
7778
.setRole("roles/spanner.databaseRoleUser")
7879
.setCondition(
7980
Condition.newBuilder()
8081
.setDescription(title)
8182
.setExpression(
82-
String.format("resource.name.endsWith(\"/databaseRoles/%s\")", role))
83+
String.format(
84+
"resource.type == \"spanner.googleapis.com/DatabaseRole\" && resource.name.endsWith(\"/databaseRoles/%s\")",
85+
role))
8386
.setTitle(title)
8487
.build())
8588
.setMembers(members)
86-
.build());
87-
89+
.build();
90+
ImmutableList<Binding> bindings =
91+
ImmutableList.<Binding>builder()
92+
.addAll(policy.getBindingsList())
93+
.add(binding1)
94+
.add(binding2)
95+
.build();
8896
Policy policyWithConditions =
8997
Policy.newBuilder()
9098
.setVersion(policyVersion)

samples/snippets/src/main/java/com/example/spanner/ListDatabaseRoles.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,10 @@ static void listDatabaseRoles() throws InterruptedException, ExecutionException
3636

3737
static void listDatabaseRoles(String projectId, String instanceId, String databaseId) {
3838
try (Spanner spanner =
39-
SpannerOptions.newBuilder().setProjectId(projectId).build().getService()) {
39+
SpannerOptions.newBuilder()
40+
.setProjectId(projectId)
41+
.build()
42+
.getService()) {
4043
final DatabaseAdminClient adminClient = spanner.getDatabaseAdminClient();
4144
String databasePath = DatabaseId.of(projectId, instanceId, databaseId).getName();
4245
System.out.println("List of Database roles");

samples/snippets/src/main/java/com/example/spanner/ReadDataWithDatabaseRole.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ static void readDataWithDatabaseRole() {
3232
String projectId = "my-project";
3333
String instanceId = "my-instance";
3434
String databaseId = "my-database";
35-
String role = "new-parent";
35+
String role = "my-role";
3636
readDataWithDatabaseRole(projectId, instanceId, databaseId, role);
3737
}
3838

@@ -51,7 +51,7 @@ static void readDataWithDatabaseRole(
5151
.singleUse()
5252
.read(
5353
"Singers",
54-
KeySet.all(), // Read all rows in a table.
54+
KeySet.all(),
5555
Arrays.asList("SingerId", "FirstName", "LastName"));
5656
while (resultSet.next()) {
5757
System.out.printf("SingerId: %d\n", resultSet.getLong(0));

0 commit comments

Comments
 (0)