11package compute .disks .consistencygroup ;
22
3- import com .google .cloud .compute .v1 .BulkInsertDiskRequest ;
4- import com .google .cloud .compute .v1 .BulkInsertDiskResource ;
5- import com .google .cloud .compute .v1 .BulkInsertRegionDiskRequest ;
6- import com .google .cloud .compute .v1 .Disk ;
7- import com .google .cloud .compute .v1 .DisksClient ;
8- import com .google .cloud .compute .v1 .ListDisksRequest ;
9- import com .google .cloud .compute .v1 .ListRegionDisksRequest ;
10- import com .google .cloud .compute .v1 .Operation ;
11- import com .google .cloud .compute .v1 .RegionDisksClient ;
3+ import com .google .cloud .compute .v1 .*;
124
135import java .io .IOException ;
14- import java .util .ArrayList ;
15- import java .util .List ;
166import java .util .concurrent .ExecutionException ;
177import java .util .concurrent .TimeUnit ;
188import java .util .concurrent .TimeoutException ;
@@ -22,44 +12,40 @@ public class BulkCreateDisks {
2212 public static void main (String [] args ) throws IOException , ExecutionException , InterruptedException , TimeoutException {
2313 // TODO(developer): Replace these variables before running the sample.
2414 String project = "tyaho-softserve-project" ;
25- String region = "us-central1" ; // Or region
26- String consistencyGroupPolicy = "my-group " ; // Replace with your consistency group self-link
27-
28-
29- bulkCreateDisks ( project , region , consistencyGroupPolicy );
15+ String disksLocation = "northamerica-northeast1-a" ;
16+ String consistencyGroupLocation = "northamerica-northeast1 " ; // Or region
17+ String consistencyGroupName = "consistency-group-2" ; // Replace with your consistency group self-link
18+ cloneDisksFromConsistencyGroup ( project , disksLocation , consistencyGroupName ,
19+ consistencyGroupLocation );
3020 }
3121
3222 // Creates multiple disks from a consistency group policy.
33- public static List <Disk > bulkCreateDisks (String project , String region , String consistencyGroupPolicy ) throws IOException , ExecutionException , InterruptedException , TimeoutException {
34- String sourceConsistencyGroupPolicy = String .format ("projects/%s/regions/%s/resourcePolicies/%s" , project ,region , consistencyGroupPolicy );
35- try (RegionDisksClient disksClient = RegionDisksClient .create ()) {
36- BulkInsertDiskResource .Builder bulkInsertDiskResource = BulkInsertDiskResource .newBuilder ()
37- .setSourceConsistencyGroupPolicy (sourceConsistencyGroupPolicy );
23+ public static void cloneDisksFromConsistencyGroup (String project , String disksLocation , String consistencyGroupLocation , String consistencyGroupName ) throws IOException , ExecutionException , InterruptedException , TimeoutException {
24+ String sourceConsistencyGroupPolicy = String .format ("projects/%s/regions/%s/resourcePolicies/%s" , project ,consistencyGroupLocation , consistencyGroupName );
25+ String region = disksLocation .substring (0 , disksLocation .lastIndexOf ('-' ));
3826
39- BulkInsertRegionDiskRequest bulkCreateDisksRequest = BulkInsertRegionDiskRequest .newBuilder ()
40- .setProject (project )
41- .setRegion (region )
42- .setBulkInsertDiskResourceResource (bulkInsertDiskResource .build ())
43- .build ();
27+ try (RegionDisksClient regionDisksClient = RegionDisksClient .create ()) {
4428
45- Operation operation = disksClient .bulkInsertAsync (bulkCreateDisksRequest ).get (3 , TimeUnit .MINUTES );
46- ListRegionDisksRequest listRequest =
29+ BulkInsertDiskResource bulkInsertDiskResource = BulkInsertDiskResource .newBuilder ()
30+ .setSourceConsistencyGroupPolicy (sourceConsistencyGroupPolicy )
31+ .build ();
4732
48- ListRegionDisksRequest .newBuilder ()
33+ BulkInsertRegionDiskRequest bulkInsertRegionDiskRequest = BulkInsertRegionDiskRequest
34+ .newBuilder ()
4935 .setProject (project )
5036 .setRegion (region )
51- // .setFilter(filter )
37+ .setBulkInsertDiskResourceResource ( bulkInsertDiskResource )
5238 .build ();
53- List < Disk > createdDisks = new ArrayList <>();
54- for ( Disk disk : disksClient . list ( listRequest ). iterateAll ()) {
55- createdDisks . add ( disk );
56- System . out . println ( "Created Disk: " + disk . getName ()); // Or other relevant info
57- }
58- if ( operation .hasError ()) {
59- return null ;
39+ Operation operation = regionDisksClient . bulkInsertAsync ( bulkInsertRegionDiskRequest ). get ( 3 ,
40+ TimeUnit . MINUTES );
41+
42+
43+ if ( operation . hasError () ) {
44+ System . out . println ( "Clone disks from consistency group failed! " + operation .getError (). toString ());
45+ return ;
6046 }
61- System .out .println (createdDisks );
62- return createdDisks ;
47+ System .out .println (String . format ( "Disks cloned from consistency group: %s." ,
48+ consistencyGroupName )) ;
6349
6450 }
6551 }
0 commit comments