Skip to content

Commit

Permalink
[RDBMS] az postgres flexible-server geo-restore: add --restore-time p…
Browse files Browse the repository at this point in the history
…arameter (#30689)

Co-authored-by: Matthew Boentoro <[email protected]>
  • Loading branch information
mattboentoro and Matthew Boentoro authored Jan 23, 2025
1 parent db09a85 commit ee79cd4
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 3 deletions.
1 change: 1 addition & 0 deletions src/azure-cli/azure/cli/command_modules/rdbms/_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -687,6 +687,7 @@ def _flexible_server_params(command_group):
c.argument('public_access', options_list=['--public-access'], arg_type=get_enum_type(['Enabled', 'Disabled']),
help='Determines the public access. ')
elif command_group == 'postgres':
c.argument('restore_point_in_time', arg_type=restore_point_in_time_arg_type)
c.argument('geo_redundant_backup', default='Disabled', arg_type=geo_redundant_backup_arg_type)
c.argument('byok_key', arg_type=key_arg_type)
c.argument('byok_identity', arg_type=identity_arg_type)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -615,7 +615,7 @@ def flexible_replica_create(cmd, client, resource_group_name, source_server, rep
def flexible_server_georestore(cmd, client, resource_group_name, server_name, source_server, location, zone=None,
vnet=None, vnet_address_prefix=None, subnet=None, subnet_address_prefix=None,
private_dns_zone_arguments=None, geo_redundant_backup=None, no_wait=False, yes=False,
byok_identity=None, byok_key=None, backup_byok_identity=None, backup_byok_key=None):
byok_identity=None, byok_key=None, backup_byok_identity=None, backup_byok_key=None, restore_point_in_time=None):
validate_resource_group(resource_group_name)

server_name = server_name.lower()
Expand All @@ -632,6 +632,8 @@ def flexible_server_georestore(cmd, client, resource_group_name, server_name, so
else:
source_server_id = source_server

restore_point_in_time = validate_and_format_restore_point_in_time(restore_point_in_time)

try:
id_parts = parse_resource_id(source_server_id)
validate_citus_cluster(cmd, id_parts['resource_group'], id_parts['name'])
Expand Down Expand Up @@ -659,7 +661,7 @@ def flexible_server_georestore(cmd, client, resource_group_name, server_name, so
storage = postgresql_flexibleservers.models.Storage(type=None)

parameters = postgresql_flexibleservers.models.Server(
point_in_time_utc=get_current_time(),
point_in_time_utc=restore_point_in_time,
location=location,
source_server_resource_id=source_server_id,
create_mode="GeoRestore",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -808,7 +808,7 @@ def validate_and_format_restore_point_in_time(restore_time):
return parser.parse(restore_time)
except:
raise ValidationError("The restore point in time value has incorrect date format. "
"Please use ISO format e.g., 2021-10-22T00:08:23+00:00.")
"Please use ISO format e.g., 2024-10-22T00:08:23+00:00.")


def is_citus_cluster(cmd, resource_group_name, server_name):
Expand Down

0 comments on commit ee79cd4

Please sign in to comment.