1717package compute .disks .consistencygroup ;
1818
1919// [START compute_consistency_group_add_disk]
20+ import com .google .cloud .compute .v1 .AddResourcePoliciesDiskRequest ;
2021import com .google .cloud .compute .v1 .AddResourcePoliciesRegionDiskRequest ;
21- import com .google .cloud .compute .v1 .Disk ;
22- // If your disk has zonal location uncomment these lines
23- //import com.google.cloud.compute.v1.AddResourcePoliciesDiskRequest;
24- //import com.google.cloud.compute.v1.DisksAddResourcePoliciesRequest;
25- //import com.google.cloud.compute.v1.DisksClient;
22+ import com .google .cloud .compute .v1 .DisksAddResourcePoliciesRequest ;
23+ import com .google .cloud .compute .v1 .DisksClient ;
2624import com .google .cloud .compute .v1 .Operation ;
2725import com .google .cloud .compute .v1 .RegionDisksAddResourcePoliciesRequest ;
2826import com .google .cloud .compute .v1 .RegionDisksClient ;
3129import java .util .concurrent .ExecutionException ;
3230
3331public class AddDiskToConsistencyGroup {
34-
3532 public static void main (String [] args )
36- throws IOException , ExecutionException , InterruptedException {
33+ throws IOException , ExecutionException , InterruptedException {
3734 // TODO(developer): Replace these variables before running the sample.
3835 // The project that contains the disk.
3936 String project = "YOUR_PROJECT_ID" ;
@@ -46,49 +43,53 @@ public static void main(String[] args)
4643 // The region of the consistency group.
4744 String consistencyGroupLocation = "us-central1" ;
4845 addDiskToConsistencyGroup (
49- project , location , diskName , consistencyGroupName , consistencyGroupLocation );
46+ project , location , diskName , consistencyGroupName , consistencyGroupLocation );
5047 }
5148
5249 // Adds a disk to a Consistency Group.
53- public static Disk addDiskToConsistencyGroup (
54- String project , String location , String diskName ,
55- String consistencyGroupName , String consistencyGroupLocation )
56- throws IOException , ExecutionException , InterruptedException {
50+ public static Operation . Status addDiskToConsistencyGroup (
51+ String project , String location , String diskName ,
52+ String consistencyGroupName , String consistencyGroupLocation )
53+ throws IOException , ExecutionException , InterruptedException {
5754 String consistencyGroupUrl = String .format (
58- "https://www.googleapis.com/compute/v1/projects/%s/regions/%s/resourcePolicies/%s" ,
59- project , consistencyGroupLocation , consistencyGroupName );
60- // If your disk has zonal location uncomment these lines
61- // try (DisksClient disksClient = DisksClient.create()) {
62- // AddResourcePoliciesDiskRequest request =
63- // AddResourcePoliciesDiskRequest.newBuilder()
64- // .setDisk(diskName)
65- // .setDisksAddResourcePoliciesRequestResource(
66- // DisksAddResourcePoliciesRequest.newBuilder()
67- // .addAllResourcePolicies(Arrays.asList(consistencyGroupUrl))
68- // .build())
69- // .setProject(project)
70- // .setZone(location)
71- // .build();
72-
73- try (RegionDisksClient disksClient = RegionDisksClient .create ()) {
74- AddResourcePoliciesRegionDiskRequest disksRequest =
75- AddResourcePoliciesRegionDiskRequest .newBuilder ()
76- .setDisk (diskName )
77- .setRegion (location )
78- .setProject (project )
79- .setRegionDisksAddResourcePoliciesRequestResource (
80- RegionDisksAddResourcePoliciesRequest .newBuilder ()
81- .addAllResourcePolicies (Arrays .asList (consistencyGroupUrl ))
82- .build ())
83- .build ();
84-
85- Operation response = disksClient .addResourcePoliciesAsync (disksRequest ).get ();
86- if (response .hasError ()) {
87- throw new Error ("Error attaching disk to consistency group! " + response .getError ());
55+ "https://www.googleapis.com/compute/v1/projects/%s/regions/%s/resourcePolicies/%s" ,
56+ project , consistencyGroupLocation , consistencyGroupName );
57+ Operation response ;
58+ if (Character .isDigit (location .charAt (location .length () - 1 ))) {
59+ // Initialize client that will be used to send requests. This client only needs to be created
60+ // once, and can be reused for multiple requests.
61+ try (RegionDisksClient disksClient = RegionDisksClient .create ()) {
62+ AddResourcePoliciesRegionDiskRequest request =
63+ AddResourcePoliciesRegionDiskRequest .newBuilder ()
64+ .setDisk (diskName )
65+ .setRegion (location )
66+ .setProject (project )
67+ .setRegionDisksAddResourcePoliciesRequestResource (
68+ RegionDisksAddResourcePoliciesRequest .newBuilder ()
69+ .addAllResourcePolicies (Arrays .asList (consistencyGroupUrl ))
70+ .build ())
71+ .build ();
72+ response = disksClient .addResourcePoliciesAsync (request ).get ();
8873 }
89- System .out .println (disksClient .get (project , location , diskName ).getResourcePoliciesList ());
90- return disksClient .get (project , location , diskName );
74+ } else {
75+ try (DisksClient disksClient = DisksClient .create ()) {
76+ AddResourcePoliciesDiskRequest request =
77+ AddResourcePoliciesDiskRequest .newBuilder ()
78+ .setDisk (diskName )
79+ .setZone (location )
80+ .setProject (project )
81+ .setDisksAddResourcePoliciesRequestResource (
82+ DisksAddResourcePoliciesRequest .newBuilder ()
83+ .addAllResourcePolicies (Arrays .asList (consistencyGroupUrl ))
84+ .build ())
85+ .build ();
86+ response = disksClient .addResourcePoliciesAsync (request ).get ();
87+ }
88+ }
89+ if (response .hasError ()) {
90+ throw new Error ("Error adding disk to consistency group! " + response .getError ());
9191 }
92+ return response .getStatus ();
9293 }
9394}
9495// [END compute_consistency_group_add_disk]
0 commit comments