1919import static com .google .common .truth .Truth .assertThat ;
2020import static com .google .common .truth .Truth .assertWithMessage ;
2121import static org .junit .Assert .assertEquals ;
22+ import static org .junit .jupiter .api .Assertions .assertDoesNotThrow ;
2223
2324import com .google .cloud .compute .v1 .AttachedDisk ;
2425import com .google .cloud .compute .v1 .AttachedDiskInitializeParams ;
3738import com .google .cloud .compute .v1 .SnapshotsClient ;
3839import compute .DeleteInstance ;
3940import compute .Util ;
41+ import compute .snapshotschedule .CreateSnapshotSchedule ;
42+ import compute .snapshotschedule .DeleteSnapshotSchedule ;
4043import java .io .ByteArrayOutputStream ;
4144import java .io .IOException ;
4245import java .io .PrintStream ;
@@ -81,7 +84,8 @@ public class DisksIT {
8184 private static String SECONDARY_DISK ;
8285 private static final long DISK_SIZE = 10L ;
8386 private static String SECONDARY_CUSTOM_DISK ;
84-
87+ private static String DISK_WITH_SNAPSHOT_SCHEDULE ;
88+ private static String SNAPSHOT_SCHEDULE ;
8589 private ByteArrayOutputStream stdOut ;
8690
8791 // Check if the required environment variables are set.
@@ -113,6 +117,8 @@ public static void setup()
113117 SECONDARY_REGIONAL_DISK = "gcloud-test-disk-secondary-regional-" + uuid ;
114118 SECONDARY_DISK = "gcloud-test-disk-secondary-" + uuid ;
115119 SECONDARY_CUSTOM_DISK = "gcloud-test-disk-custom-" + uuid ;
120+ DISK_WITH_SNAPSHOT_SCHEDULE = "gcloud-test-disk-shapshot-" + uuid ;
121+ SNAPSHOT_SCHEDULE = "gcloud-test-snapshot-schedule-" + uuid ;
116122
117123 // Cleanup existing stale resources.
118124 Util .cleanUpExistingInstances ("test-disks" , PROJECT_ID , ZONE );
@@ -122,6 +128,7 @@ public static void setup()
122128 "gcloud-test-disk-secondary-regional-" , PROJECT_ID , "us-central1" );
123129 Util .cleanUpExistingRegionalDisks ("gcloud-test-disk-" , PROJECT_ID , REGION );
124130 Util .cleanUpExistingSnapshots ("gcloud-test-snapshot-" , PROJECT_ID );
131+ Util .cleanUpExistingSnapshotSchedule ("gcloud-test-snapshot-schedule-" , PROJECT_ID , REGION );
125132
126133 // Create disk from image.
127134 Image debianImage = null ;
@@ -154,7 +161,8 @@ public static void setup()
154161 TimeUnit .SECONDS .sleep (10 );
155162 SetDiskAutodelete .setDiskAutodelete (PROJECT_ID , ZONE , INSTANCE_NAME , DISK_NAME , true );
156163 assertThat (stdOut .toString ()).contains ("Disk autodelete field updated." );
157-
164+ CreateSnapshotSchedule .createSnapshotSchedule (PROJECT_ID , REGION , SNAPSHOT_SCHEDULE ,
165+ "description" , 10 , "US" );
158166 // Create zonal and regional blank disks for testing attach and resize.
159167 createZonalDisk ();
160168 createRegionalDisk ();
@@ -191,6 +199,8 @@ public static void cleanUp()
191199 RegionalDelete .deleteRegionalDisk (PROJECT_ID , "us-central1" , SECONDARY_REGIONAL_DISK );
192200 DeleteDisk .deleteDisk (PROJECT_ID , "us-central1-c" , SECONDARY_DISK );
193201 DeleteDisk .deleteDisk (PROJECT_ID , "us-central1-c" , SECONDARY_CUSTOM_DISK );
202+ DeleteDisk .deleteDisk (PROJECT_ID , ZONE , DISK_WITH_SNAPSHOT_SCHEDULE );
203+ DeleteSnapshotSchedule .deleteSnapshotSchedule (PROJECT_ID , REGION , SNAPSHOT_SCHEDULE );
194204
195205 stdOut .close ();
196206 System .setOut (out );
@@ -325,24 +335,28 @@ public void testCreateReplicatedDisk()
325335 throws IOException , ExecutionException , InterruptedException , TimeoutException {
326336 Status status = CreateReplicatedDisk .createReplicatedDisk (PROJECT_ID , REGION ,
327337 replicaZones , REGIONAL_REPLICATED_DISK , 100 , DISK_TYPE );
328- Disk disk = Util .getRegionalDisk (PROJECT_ID , REGION , REGIONAL_REPLICATED_DISK );
329338
330339 assertThat (status ).isEqualTo (Status .DONE );
331- assertEquals (REGIONAL_REPLICATED_DISK , disk .getName ());
340+ assertDoesNotThrow (() -> {
341+ Disk disk = Util .getRegionalDisk (PROJECT_ID , REGION , REGIONAL_REPLICATED_DISK );
342+ assertEquals (REGIONAL_REPLICATED_DISK , disk .getName ());
343+ });
332344 }
333345
334346 @ Test
335347 public void testCreateDiskSecondaryRegional ()
336348 throws IOException , ExecutionException , InterruptedException , TimeoutException {
337- String diskType = String .format (
349+ String diskType = String .format (
338350 "projects/%s/regions/%s/diskTypes/pd-balanced" , PROJECT_ID , REGION );
339351 Status status = CreateDiskSecondaryRegional .createDiskSecondaryRegional (
340352 PROJECT_ID , PROJECT_ID , REGIONAL_BLANK_DISK , SECONDARY_REGIONAL_DISK ,
341353 REGION , "us-central1" , DISK_SIZE , diskType );
342- Disk disk = Util .getRegionalDisk (PROJECT_ID , "us-central1" , SECONDARY_REGIONAL_DISK );
343354
344355 assertThat (status ).isEqualTo (Status .DONE );
345- assertEquals (SECONDARY_REGIONAL_DISK , disk .getName ());
356+ assertDoesNotThrow (() -> {
357+ Disk disk = Util .getRegionalDisk (PROJECT_ID , "us-central1" , SECONDARY_REGIONAL_DISK );
358+ assertEquals (SECONDARY_REGIONAL_DISK , disk .getName ());
359+ });
346360 }
347361
348362 @ Test
@@ -353,10 +367,12 @@ public void testCreateDiskSecondaryZonal()
353367 Status status = CreateDiskSecondaryZonal .createDiskSecondaryZonal (
354368 PROJECT_ID , PROJECT_ID , EMPTY_DISK_NAME , SECONDARY_DISK , ZONE ,
355369 "us-central1-c" , DISK_SIZE , diskType );
356- Disk disk = Util .getDisk (PROJECT_ID , "us-central1-c" , SECONDARY_DISK );
357370
358371 assertThat (status ).isEqualTo (Status .DONE );
359- assertEquals (SECONDARY_DISK , disk .getName ());
372+ assertDoesNotThrow (() -> {
373+ Disk disk = Util .getDisk (PROJECT_ID , "us-central1-c" , SECONDARY_DISK );
374+ assertEquals (SECONDARY_DISK , disk .getName ());
375+ });
360376 }
361377
362378 @ Test
@@ -367,9 +383,24 @@ public void testCreateSecondaryCustomDisk()
367383 Status status = CreateSecondaryCustomDisk .createSecondaryCustomDisk (
368384 PROJECT_ID , PROJECT_ID , EMPTY_DISK_NAME , SECONDARY_CUSTOM_DISK , ZONE ,
369385 "us-central1-c" , DISK_SIZE , diskType );
370- Disk disk = Util .getDisk (PROJECT_ID , "us-central1-c" , SECONDARY_CUSTOM_DISK );
371386
372387 assertThat (status ).isEqualTo (Status .DONE );
373- assertEquals (SECONDARY_CUSTOM_DISK , disk .getName ());
388+ assertDoesNotThrow (() -> {
389+ Disk disk = Util .getDisk (PROJECT_ID , "us-central1-c" , SECONDARY_CUSTOM_DISK );
390+ assertEquals (SECONDARY_CUSTOM_DISK , disk .getName ());
391+ });
392+ }
393+
394+ @ Test
395+ void testCreateDiskWithSnapshotSchedule ()
396+ throws IOException , ExecutionException , InterruptedException , TimeoutException {
397+ Status status = CreateDiskWithSnapshotSchedule .createDiskWithSnapshotSchedule (
398+ PROJECT_ID , ZONE , DISK_WITH_SNAPSHOT_SCHEDULE , SNAPSHOT_SCHEDULE );
399+
400+ assertThat (status ).isEqualTo (Status .DONE );
401+ assertDoesNotThrow (() -> {
402+ Disk disk = Util .getDisk (PROJECT_ID , ZONE , DISK_WITH_SNAPSHOT_SCHEDULE );
403+ assertEquals (DISK_WITH_SNAPSHOT_SCHEDULE , disk .getName ());
404+ });
374405 }
375406}
0 commit comments