# These tests validate the SHOW BACKUP command (old and new stynax) with
# backup images that contain both invalid and valid sets of descriptors.

new-cluster name=s1 allow-implicit-access localities=eu-central-1,eu-north-1,us-east-1
----

link-backup cluster=s1 src-path=show_backup_validate,invalidDependOnBy_21.1 dest-path=invalidDependOnBy_21.1
----

# This backup intentionally has a dangling invalid depend on by reference.
query-sql regex=invalid\sdepended-on-by
SELECT * FROM [SHOW BACKUP VALIDATE FROM 'invalidDependOnBy_21.1' IN 'nodelocal://1/'];
----
true

link-backup cluster=s1 src-path=show_backup_validate,valid-22.2 dest-path=valid-22.2
----

query-sql
SELECT sum(size_bytes) FROM [SHOW BACKUP 'valid-22.2' IN 'nodelocal://1/'];
----
1120

query-sql
SELECT sum(size_bytes) FROM [SHOW BACKUP 'valid-22.2' IN 'nodelocal://1/' WITH skip size];
----
0

query-sql
SET TIME ZONE 'UTC';
----

query-sql
SELECT end_time, end_time AT TIME ZONE 'MST' FROM [SHOW BACKUP 'valid-22.2' IN 'nodelocal://1/' WITH skip size] limit 1;
----
2022-08-03 16:00:28.984252 +0000 UTC 2022-08-03 09:00:28.984252 +0000 +0000

query-sql
SET TIME ZONE 'MST';
----

query-sql
SELECT end_time, end_time AT TIME ZONE 'MST' FROM [SHOW BACKUP 'valid-22.2' IN 'nodelocal://1/' WITH skip size] limit 1;
----
2022-08-03 09:00:28.984252 -0700 MST 2022-08-03 09:00:28.984252 +0000 +0000

query-sql
SET TIME ZONE 'UTC';
----

# This backup is completely valid, but has no jobs.
query-sql regex=No\sproblems\sfound!
SELECT * FROM [SHOW BACKUP VALIDATE FROM 'valid-22.2' IN 'nodelocal://1/'];
----
true

link-backup cluster=s1 src-path=show_backup_validate,valid-22.2-with-job dest-path=valid-22.2-with-job
----

# This back up is valid, and taken when a job was actively working on the
# descriptor.
query-sql regex=No\sproblems\sfound!
SELECT * FROM [SHOW BACKUP VALIDATE FROM 'valid-22.2-with-job' IN 'nodelocal://1/'];
----
true

query-sql
SELECT node, locality, ok, error, can_delete FROM [SHOW BACKUP CONNECTION 'nodelocal://1/conn-test' WITH TRANSFER='1'] ORDER BY node;
----
1 region=eu-central-1,availability-zone=eu-central-1 true  true
2 region=eu-north-1,availability-zone=eu-north-1 true  true
3 region=us-east-1,availability-zone=us-east1 true  true

query-sql
SELECT node, locality, ok, error, can_delete FROM [SHOW BACKUP CONNECTION 'nodelocal://1/conn-test' WITH TRANSFER='1', TIME = '1ms'] ORDER BY node;
----
1 region=eu-central-1,availability-zone=eu-central-1 true  true
2 region=eu-north-1,availability-zone=eu-north-1 true  true
3 region=us-east-1,availability-zone=us-east1 true  true
