Skip to content

Commit d8b61dd

Browse files
committed
Edits and test
1 parent 70c87de commit d8b61dd

File tree

5 files changed

+3081
-8
lines changed

5 files changed

+3081
-8
lines changed

src/azure-cli/azure/cli/command_modules/rdbms/_params.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -935,7 +935,7 @@ def _flexible_server_params(command_group):
935935

936936
for scope in ['start', 'update-databases']:
937937
with self.argument_context('{} flexible-server fabric-mirroring'.format(command_group)) as c:
938-
c.argument('database_names', options_list=['--database-names', '-d'], nargs='+', required=False,
938+
c.argument('database_names', options_list=['--database-names', '-d'], nargs='+',
939939
help='Space-separated list of the database names to be mirrored. Required if --mirroring is enabled.')
940940

941941
# ad-admin

src/azure-cli/azure/cli/command_modules/rdbms/flexible_server_commands.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ def load_flexibleserver_command_table(self, _):
6161
)
6262

6363
postgres_flexible_location_capabilities_sdk = CliCommandType(
64-
operations_tmpl='azure.mgmt.rdbms..postgresql_flexibleservers.operations#LocationBasedCapabilitiesOperations.{}',
64+
operations_tmpl='azure.mgmt.rdbms.postgresqlflexibleservers.operations#LocationBasedCapabilitiesOperations.{}',
6565
client_factory=cf_postgres_flexible_location_capabilities
6666
)
6767

src/azure-cli/azure/cli/command_modules/rdbms/flexible_server_custom_postgres.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
from azure.core.exceptions import HttpResponseError, ResourceNotFoundError
2323
from azure.mgmt.core.tools import resource_id, is_valid_resource_id, parse_resource_id
2424
from azure.cli.core.azclierror import BadRequestError, FileOperationError, MutuallyExclusiveArgumentError, RequiredArgumentMissingError, ArgumentUsageError, InvalidArgumentValueError
25-
from azure.mgmt.rdbms import postgresql_flexibleservers
25+
from azure.mgmt import postgresqlflexibleservers as postgresql_flexibleservers
2626
from ._client_factory import cf_postgres_flexible_firewall_rules, get_postgresql_flexible_management_client, \
2727
cf_postgres_flexible_db, cf_postgres_check_resource_availability, cf_postgres_flexible_servers, \
2828
cf_postgres_check_resource_availability_with_location, \
@@ -1475,18 +1475,18 @@ def flexible_server_fabric_mirroring_start(cmd, client, resource_group_name, ser
14751475
logger.warning('Enabling system assigned managed identity on the server.')
14761476
flexible_server_identity_update(cmd, flexible_servers_client, resource_group_name, server_name, 'Enabled')
14771477

1478+
logger.warning('Restarting server.')
1479+
parameters = postgresql_flexibleservers.models.RestartParameter(restart_with_failover=False)
1480+
resolve_poller(flexible_servers_client.begin_restart(resource_group_name, server_name, parameters), cmd.cli_ctx, 'PostgreSQL Server Restart')
1481+
14781482
logger.warning('Updating necessary server parameters.')
14791483
source = "user-override"
14801484
configuration_name = "azure.fabric_mirror_enabled"
14811485
value = "on"
14821486
_update_parameters(cmd, client, server_name, configuration_name, resource_group_name, source, value)
14831487
configuration_name = "azure.mirror_databases"
14841488
value = databases
1485-
_update_parameters(cmd, client, server_name, configuration_name, resource_group_name, source, value)
1486-
1487-
logger.warning('Restarting server.')
1488-
parameters = postgresql_flexibleservers.models.RestartParameter(restart_with_failover=False)
1489-
return client.begin_restart(resource_group_name, server_name, parameters)
1489+
return _update_parameters(cmd, client, server_name, configuration_name, resource_group_name, source, value)
14901490

14911491

14921492
def flexible_server_fabric_mirroring_stop(cmd, client, resource_group_name, server_name, yes=False):

src/azure-cli/azure/cli/command_modules/rdbms/tests/latest/recordings/test_postgres_flexible_server_fabric_mirroring_mgmt.yaml

Lines changed: 3031 additions & 0 deletions
Large diffs are not rendered by default.

src/azure-cli/azure/cli/command_modules/rdbms/tests/latest/test_rdbms_flexible_commands.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2741,3 +2741,45 @@ def _test_private_link_resource(self, database_engine, resource_group, server, g
27412741
result = self.cmd('{} flexible-server private-link-resource show -g {} -s {}'
27422742
.format(database_engine, resource_group, server)).get_output_in_json()
27432743
self.assertEqual(result['groupId'], group_id)
2744+
2745+
2746+
class FlexibleServerFabricMirroringMgmtScenarioTest(ScenarioTest):
2747+
postgres_location = 'eastus2euap'
2748+
2749+
@AllowLargeResponse()
2750+
@ResourceGroupPreparer(location=postgres_location)
2751+
def test_postgres_flexible_server_fabric_mirroring_mgmt(self, resource_group):
2752+
self._test_fabric_mirroring_mgmt('postgres', resource_group)
2753+
2754+
2755+
def _test_fabric_mirroring_mgmt(self, database_engine, resource_group):
2756+
location = self.postgres_location
2757+
server_name = self.create_random_name(SERVER_NAME_PREFIX, 32)
2758+
2759+
# create a server
2760+
self.cmd('{} flexible-server create -g {} --name {} -l {} --storage-size {} --public-access none '
2761+
'--tier GeneralPurpose --sku-name Standard_D4ds_v5 --create-default-database Enabled --yes'
2762+
.format(database_engine, resource_group, server_name, location, 128))
2763+
2764+
# enable system assigned managed identity
2765+
self.cmd('{} flexible-server identity update -g {} -s {} --system-assigned Enabled'
2766+
.format(database_engine, resource_group, server_name),
2767+
checks=[JMESPathCheck('type', 'SystemAssigned')])
2768+
2769+
# enable fabric mirroring
2770+
database1 = 'postgres'
2771+
self.cmd('{} flexible-server fabric-mirroring start -g {} --server-name {} --database-names {} --yes'
2772+
.format(database_engine, resource_group, server_name, database1))
2773+
self.cmd('{} flexible-server parameter show --name azure.fabric_mirror_enabled -g {} -s {}'.format(database_engine, resource_group, server_name),
2774+
checks=[JMESPathCheck('value', 'on')])
2775+
self.cmd('{} flexible-server parameter show --name azure.mirror_databases -g {} -s {}'.format(database_engine, resource_group, server_name),
2776+
checks=[JMESPathCheck('value', database1)])
2777+
2778+
# update mirrored database
2779+
database2 = 'flexibleserverdb'
2780+
self.cmd('{} flexible-server fabric-mirroring update-databases -g {} --server-name {} --database-names {} --yes'
2781+
.format(database_engine, resource_group, server_name, database2),
2782+
checks=[JMESPathCheck('value', database2)])
2783+
2784+
# delete server
2785+
self.cmd('{} flexible-server delete -g {} -n {} --yes'.format(database_engine, resource_group, server_name))

0 commit comments

Comments
 (0)