Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,17 @@
'other automatically generated recommendations which are covered by the '
'new command.')

# Upgrade command argument changes
register_other_breaking_change('postgres flexible-server upgrade',
message='The allowed values will be changed from set list to '
'supported versions for upgrade based on capabilities.',
arg='--version')

# Name of new backup no longer required in backup create command
register_other_breaking_change('postgres flexible-server backup create',
message='The argument for backup name will no longer be required '
'in next breaking change release(2.86.0) scheduled for May 2026.')
Comment thread
nasc17 marked this conversation as resolved.

# LTR command argument changes
register_other_breaking_change('postgres flexible-server long-term-retention',
message='The --backup-name/-b argument has been deprecated and will be removed '
Expand Down
8 changes: 8 additions & 0 deletions src/azure-cli/azure/cli/command_modules/postgresql/_help.py
Original file line number Diff line number Diff line change
Expand Up @@ -358,6 +358,14 @@
text: az postgres flexible-server wait --exists --resource-group testGroup --name testserver
"""

helps['postgres flexible-server migrate-network'] = """
type: command
short-summary: Migrate the network mode of a flexible server.
examples:
- name: Migrate the network mode of a flexible server.
text: az postgres flexible-server migrate-network --resource-group testGroup --name testserver
"""

helps['postgres flexible-server delete'] = """
type: command
short-summary: Delete a flexible server.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,10 @@ def transform_backup(result):
result.name = result.name[62:]

if hasattr(result, 'system_data'):
delattr(result, 'system_data')
try:
delattr(result, 'system_data')
except AttributeError:
pass # Attribute cannot be deleted, skip

return result

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,7 @@ def load_flexibleserver_command_table(self, _):
g.custom_command('upgrade', 'flexible_server_version_upgrade', custom_command_type=flexible_server_custom_common)
g.custom_wait_command('wait', 'flexible_server_postgresql_get')
g.custom_command('restart', 'flexible_server_restart')
g.custom_command('migrate-network', 'flexible_server_migrate_network', supports_no_wait=True)

with self.command_group('postgres flexible-server firewall-rule', postgres_flexible_firewall_rule_sdk,
custom_command_type=flexible_servers_custom_postgres,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -110,9 +110,10 @@ def firewall_rule_create_func(cmd, client, resource_group_name, server_name, fir
end_ip_address)

parameters = {
'name': firewall_rule_name,
'start_ip_address': start_ip_address,
'end_ip_address': end_ip_address
'properties': {
'startIpAddress': start_ip_address,
'endIpAddress': end_ip_address
}
}

return client.begin_create_or_update(
Expand All @@ -131,6 +132,10 @@ def flexible_firewall_rule_custom_getter(cmd, client, resource_group_name, serve
def flexible_firewall_rule_custom_setter(client, resource_group_name, server_name, firewall_rule_name, parameters):
validate_resource_group(resource_group_name)

endIpAddress = parameters.get('properties', {}).get('endIpAddress')
startIpAddress = parameters.get('properties', {}).get('startIpAddress')
parameters = {"properties": {"endIpAddress": endIpAddress, "startIpAddress": startIpAddress}}

return client.begin_create_or_update(
resource_group_name,
server_name,
Expand Down Expand Up @@ -327,7 +332,9 @@ def flexible_server_version_upgrade(cmd, client, resource_group_name, server_nam
raise CLIError("Major version upgrade is not yet supported for servers in a read replica setup.")

parameters = {
'version': version_mapped
'properties': {
'version': version_mapped
}
}

return resolve_poller(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
generate_password, parse_maintenance_window, get_current_time, build_identity_and_data_encryption, \
_is_resource_name, get_tenant_id, get_case_insensitive_key_value, get_enum_value_true_false, \
get_postgres_tiers, get_postgres_skus
from ._flexible_server_location_capabilities_util import get_postgres_location_capability_info
from ._flexible_server_location_capabilities_util import get_postgres_location_capability_info, get_postgres_server_capability_info
from ._util import get_autonomous_tuning_settings_map
from .flexible_server_custom_common import create_firewall_rule
from .flexible_server_virtual_network import prepare_private_network, prepare_private_dns_zone, prepare_public_network
Expand Down Expand Up @@ -479,8 +479,8 @@ def flexible_server_update_custom_func(cmd, client, instance,
if zonal_resiliency.lower() == 'disabled':
high_availability = 'Disabled'
else:
list_location_capability_info = get_postgres_location_capability_info(cmd, location)
single_az = list_location_capability_info['single_az']
list_capability_info = get_postgres_server_capability_info(cmd, resource_group_name, server_name)
single_az = list_capability_info['single_az']
high_availability = 'SameZone' if single_az and allow_same_zone else 'ZoneRedundant'
if high_availability:
high_availability_param.mode = high_availability
Expand Down Expand Up @@ -1057,7 +1057,7 @@ def flexible_server_identity_remove(cmd, client, resource_group_name, server_nam
for identity in identities:
identities_map[identity] = None

system_assigned_identity = instance.identity and 'principalId' in instance.identity.additional_properties and instance.identity.additional_properties['principalId'] is not None
system_assigned_identity = instance.identity and instance.identity.principal_id is not None

# if there are no user-assigned identities or all user-assigned identities are already removed
if not (instance.identity and instance.identity.user_assigned_identities) or \
Expand Down Expand Up @@ -1134,9 +1134,11 @@ def flexible_server_microsoft_entra_admin_set(cmd, client, resource_group_name,
# Create Microsoft Entra admin
def _create_admin(client, resource_group_name, server_name, principal_name, sid, principal_type=None, no_wait=False):
parameters = {
'principal_name': principal_name,
'tenant_id': get_tenant_id(),
'principal_type': principal_type
'properties': {
'principalName': principal_name,
'tenantId': get_tenant_id(),
'principalType': principal_type
}
}

return sdk_no_wait(no_wait, client.begin_create_or_update, resource_group_name, server_name, sid, parameters)
Expand Down Expand Up @@ -1418,9 +1420,10 @@ def virtual_endpoint_create_func(cmd, client, resource_group_name, server_name,
validate_virtual_endpoint_name_availability(cmd, virtual_endpoint_name)

parameters = {
'name': virtual_endpoint_name,
'endpoint_type': endpoint_type,
'members': [members]
'properties': {
'endpointType': endpoint_type,
'members': [members]
}
}

return client.begin_create(
Expand Down Expand Up @@ -1469,9 +1472,10 @@ def virtual_endpoint_update_func(cmd, client, resource_group_name, server_name,
validate_citus_cluster(cmd, resource_group_name, server_name)

parameters = {
'name': virtual_endpoint_name,
'endpoint_type': endpoint_type,
'members': [members]
'properties': {
'endpointType': endpoint_type,
'members': [members]
}
}

return client.begin_update(
Expand All @@ -1497,19 +1501,19 @@ def ltr_precheck_func(client, resource_group_name, server_name, backup_name):
return client.check_prerequisites(
resource_group_name=resource_group_name,
server_name=server_name,
parameters={"backup_settings": {"backup_name": backup_name}}
parameters={"backupSettings": {"backupName": backup_name}}
)


def ltr_start_func(client, resource_group_name, server_name, backup_name, sas_url):
validate_resource_group(resource_group_name)

parameters = {
"backup_settings": {
"backup_name": backup_name
"backupSettings": {
"backupName": backup_name
},
"target_details": {
"sas_uri_list": [sas_url]
"targetDetails": {
"sasUriList": [sas_url]
}
}

Expand Down Expand Up @@ -1658,12 +1662,8 @@ def index_tuning_update(cmd, client, resource_group_name, server_name, index_tun
source = "user-override"

if index_tuning_enabled == "True":
subscription = get_subscription_id(cmd.cli_ctx)
postgres_source_client = get_postgresql_flexible_management_client(cmd.cli_ctx, subscription)
source_server_object = postgres_source_client.servers.get(resource_group_name, server_name)
location = ''.join(source_server_object.location.lower().split())
list_location_capability_info = get_postgres_location_capability_info(cmd, location, is_offer_restriction_check_required=True)
autonomous_tuning_supported = list_location_capability_info['autonomous_tuning_supported']
list_capability_info = get_postgres_server_capability_info(cmd, resource_group_name, server_name, is_offer_restriction_check_required=True)
autonomous_tuning_supported = list_capability_info['autonomous_tuning_supported']
if not autonomous_tuning_supported:
raise CLIError("Index tuning is not supported for the server.")

Expand Down Expand Up @@ -1835,6 +1835,12 @@ def autonomous_tuning_table_recommendations_list(cmd, resource_group_name, serve
)


def flexible_server_migrate_network(client, resource_group_name, server_name, no_wait=False):
validate_resource_group(resource_group_name)

return sdk_no_wait(no_wait, client.begin_migrate_network_mode, resource_group_name, server_name)


def _update_private_endpoint_connection_status(cmd, client, resource_group_name, server_name,
private_endpoint_connection_name, is_approved=True, description=None): # pylint: disable=unused-argument
validate_resource_group(resource_group_name)
Expand Down

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Loading
Loading