Skip to content

Commit 72ad273

Browse files
Implemented compute_consistency_group_add_disk sample
1 parent 556a8f8 commit 72ad273

File tree

1 file changed

+69
-0
lines changed

1 file changed

+69
-0
lines changed
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package compute.disks.consistencygroup;
2+
3+
// [START compute_consistency_group_add_disk]
4+
import com.google.cloud.compute.v1.Disk;
5+
import com.google.cloud.compute.v1.DisksAddResourcePoliciesRequest;
6+
import com.google.cloud.compute.v1.DisksClient;
7+
import com.google.cloud.compute.v1.Operation;
8+
import com.google.cloud.compute.v1.RegionDisksAddResourcePoliciesRequest;
9+
import com.google.cloud.compute.v1.RegionDisksClient;
10+
import java.io.IOException;
11+
import java.util.Arrays;
12+
import java.util.concurrent.ExecutionException;
13+
14+
public class AddDiskToConsistencyGroup {
15+
16+
public static void main(String[] args)
17+
throws IOException, ExecutionException, InterruptedException {
18+
// TODO(developer): Replace these variables before running the sample.
19+
String project = "tyaho-softserve-project";//"YOUR_PROJECT_ID";
20+
String locationFlag = "zone";
21+
String location = "us-central1-a";
22+
String diskName = "disk-name";//"DISK_NAME";
23+
String consistencyGroup = "my-group";//"CONSISTENCY_GROUP";
24+
25+
addResourcePoliciesToDisk(project, locationFlag, location, diskName, consistencyGroup);
26+
}
27+
28+
// Adds a resource policy to a disk.
29+
public static Disk addResourcePoliciesToDisk(
30+
String project, String locationFlag, String location, String diskName,
31+
String consistencyGroup)
32+
throws IOException, ExecutionException, InterruptedException {
33+
String consistencyGroupUrl = String.format(
34+
"https://www.googleapis.com/compute/v1/projects/%s/regions/%s/resourcePolicies/%s",
35+
project, location, consistencyGroup);
36+
if (locationFlag.equals("zone")) {
37+
try (DisksClient disksClient = DisksClient.create()) {
38+
DisksAddResourcePoliciesRequest disksRequest =
39+
DisksAddResourcePoliciesRequest.newBuilder()
40+
.addAllResourcePolicies(Arrays.asList(consistencyGroupUrl))
41+
.build();
42+
43+
Operation response = disksClient.addResourcePoliciesAsync(
44+
project, location, diskName,disksRequest).get();
45+
if (response.hasError()) {
46+
return null;
47+
}
48+
return disksClient.get(project, location, diskName);
49+
}
50+
} else if (locationFlag.equals("region")) {
51+
try (RegionDisksClient regionDisksClient = RegionDisksClient.create()) {
52+
RegionDisksAddResourcePoliciesRequest disksRequest =
53+
RegionDisksAddResourcePoliciesRequest.newBuilder()
54+
.addAllResourcePolicies(Arrays.asList(consistencyGroupUrl))
55+
.build();
56+
Operation response = regionDisksClient.addResourcePoliciesAsync(
57+
project, location, diskName,disksRequest).get();
58+
if (response.hasError()) {
59+
return null;
60+
}
61+
return regionDisksClient.get(project, location, diskName);
62+
}
63+
} else {
64+
System.out.println("Invalid location flag. Use 'zone' or 'region'.");
65+
}
66+
return null;
67+
}
68+
}
69+
// [END compute_consistency_group_add_disk]

0 commit comments

Comments
 (0)