Skip to content

Commit 8be9ac4

Browse files
committed
mark or-policy and or-policy rule as GA, add --enable-metrics to az storage account or-policy create/update
1 parent cf11272 commit 8be9ac4

File tree

5 files changed

+416
-306
lines changed

5 files changed

+416
-306
lines changed

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -794,6 +794,8 @@ def load_arguments(self, _): # pylint: disable=too-many-locals, too-many-statem
794794
c.argument('properties', or_policy_type, validator=validate_or_policy)
795795
c.argument('prefix_match', prefix_math_type)
796796
c.argument('min_creation_time', min_creation_time_type)
797+
c.argument('enable_metrics', arg_type=get_three_state_flag(),
798+
help='Indicates whether object replication metrics feature is enabled for the policy.')
797799

798800
for item in ['create', 'update']:
799801
with self.argument_context('storage account or-policy {}'.format(item),

src/azure-cli/azure/cli/command_modules/storage/commands.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ def get_custom_sdk(custom_module, client_factory, resource_type=ResourceType.MGM
213213
operations_tmpl='azure.cli.command_modules.storage.operations.account#{}',
214214
client_factory=cf_or_policy)
215215

216-
with self.command_group('storage account or-policy', or_policy_sdk, is_preview=True,
216+
with self.command_group('storage account or-policy', or_policy_sdk,
217217
resource_type=ResourceType.MGMT_STORAGE,
218218
custom_command_type=or_policy_custom_type) as g:
219219
g.show_command('show', 'get')
@@ -222,7 +222,7 @@ def get_custom_sdk(custom_module, client_factory, resource_type=ResourceType.MGM
222222
g.generic_update_command('update', setter_name='update_or_policy', setter_type=or_policy_custom_type)
223223
g.command('delete', 'delete')
224224

225-
with self.command_group('storage account or-policy rule', or_policy_sdk, is_preview=True,
225+
with self.command_group('storage account or-policy rule', or_policy_sdk,
226226
resource_type=ResourceType.MGMT_STORAGE,
227227
custom_command_type=or_policy_custom_type) as g:
228228
g.custom_show_command('show', 'get_or_rule')

src/azure-cli/azure/cli/command_modules/storage/operations/account.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -988,14 +988,15 @@ def list_encryption_scope(client, resource_group_name, account_name,
988988
# pylint: disable=no-member
989989
def create_or_policy(cmd, client, account_name, resource_group_name=None, properties=None, source_account=None,
990990
destination_account=None, policy_id="default", rule_id=None, source_container=None,
991-
destination_container=None, min_creation_time=None, prefix_match=None):
991+
destination_container=None, min_creation_time=None, prefix_match=None, enable_metrics=None):
992992
from azure.core.exceptions import HttpResponseError
993993
ObjectReplicationPolicy = cmd.get_models('ObjectReplicationPolicy')
994994

995995
if properties is None:
996996
rules = []
997-
ObjectReplicationPolicyRule, ObjectReplicationPolicyFilter = \
998-
cmd.get_models('ObjectReplicationPolicyRule', 'ObjectReplicationPolicyFilter')
997+
ObjectReplicationPolicyRule, ObjectReplicationPolicyFilter, ObjectReplicationPolicyPropertiesMetrics = \
998+
cmd.get_models('ObjectReplicationPolicyRule', 'ObjectReplicationPolicyFilter',
999+
'ObjectReplicationPolicyPropertiesMetrics')
9991000
if source_container and destination_container:
10001001
rule = ObjectReplicationPolicyRule(
10011002
rule_id=rule_id,
@@ -1006,7 +1007,8 @@ def create_or_policy(cmd, client, account_name, resource_group_name=None, proper
10061007
rules.append(rule)
10071008
or_policy = ObjectReplicationPolicy(source_account=source_account,
10081009
destination_account=destination_account,
1009-
rules=rules)
1010+
rules=rules,
1011+
metrics=ObjectReplicationPolicyPropertiesMetrics(enabled=enable_metrics))
10101012
else:
10111013
or_policy = properties
10121014
try:
@@ -1022,7 +1024,7 @@ def create_or_policy(cmd, client, account_name, resource_group_name=None, proper
10221024

10231025

10241026
def update_or_policy(client, parameters, resource_group_name, account_name, object_replication_policy_id=None,
1025-
properties=None, source_account=None, destination_account=None, ):
1027+
properties=None, source_account=None, destination_account=None, enable_metrics=None):
10261028

10271029
if source_account is not None:
10281030
parameters.source_account = source_account
@@ -1034,6 +1036,9 @@ def update_or_policy(client, parameters, resource_group_name, account_name, obje
10341036
if "policyId" in properties.keys() and properties["policyId"]:
10351037
object_replication_policy_id = properties["policyId"]
10361038

1039+
if enable_metrics is not None:
1040+
parameters.metrics.enabled = enable_metrics
1041+
10371042
return client.create_or_update(resource_group_name=resource_group_name, account_name=account_name,
10381043
object_replication_policy_id=object_replication_policy_id, properties=parameters)
10391044

0 commit comments

Comments
 (0)