Skip to content

Commit f4c01bf

Browse files
authored
add test and fix 12387 (#12518)
1 parent 0ea2726 commit f4c01bf

File tree

4 files changed

+871
-495
lines changed

4 files changed

+871
-495
lines changed

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -469,10 +469,14 @@ def load_arguments(self, _):
469469

470470
with self.argument_context('network application-gateway waf-policy managed-rule rule-set',
471471
min_api='2019-09-01') as c:
472-
c.argument('rule_set_type', options_list='--type', help='The type of the web application firewall rule set.')
472+
c.argument('rule_set_type', options_list='--type',
473+
arg_type=get_enum_type(['Microsoft_BotManagerRuleSet', 'OWASP']),
474+
help='The type of the web application firewall rule set.')
473475
c.argument('rule_set_version',
474476
options_list='--version',
475-
help='The version of the web application firewall rule set type.')
477+
arg_type=get_enum_type(['0.1', '2.2.9', '3.0', '3.1']),
478+
help='The version of the web application firewall rule set type. '
479+
'0.1 is used for Microsoft_BotManagerRuleSet')
476480
c.argument('rule_group_name',
477481
options_list='--group-name',
478482
help='The name of the web application firewall rule set group.')

src/azure-cli/azure/cli/command_modules/network/custom.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1233,7 +1233,8 @@ def remove_waf_custom_rule_match_cond(cmd, client, resource_group_name, policy_n
12331233

12341234
# region ApplicationGatewayWAFPolicy ManagedRule ManagedRuleSet
12351235
def add_waf_managed_rule_set(cmd, client, resource_group_name, policy_name,
1236-
rule_set_type, rule_set_version, rule_group_name, rules):
1236+
rule_set_type, rule_set_version,
1237+
rule_group_name=None, rules=None):
12371238
"""
12381239
Add managed rule set to the WAF policy managed rules.
12391240
Visit: https://docs.microsoft.com/en-us/azure/web-application-firewall/ag/application-gateway-crs-rulegroups-rules
@@ -1243,11 +1244,15 @@ def add_waf_managed_rule_set(cmd, client, resource_group_name, policy_name,
12431244

12441245
waf_policy = client.get(resource_group_name, policy_name)
12451246

1246-
managed_rule_overrides = [ManagedRuleOverride(rule_id=r) for r in rules]
1247-
rule_group_override = ManagedRuleGroupOverride(rule_group_name=rule_group_name, rules=managed_rule_overrides)
1247+
managed_rule_overrides = [ManagedRuleOverride(rule_id=r) for r in rules] if rules is not None else []
1248+
1249+
rule_group_override = None
1250+
if rule_group_name is not None:
1251+
rule_group_override = ManagedRuleGroupOverride(rule_group_name=rule_group_name,
1252+
rules=managed_rule_overrides)
12481253
new_managed_rule_set = ManagedRuleSet(rule_set_type=rule_set_type,
12491254
rule_set_version=rule_set_version,
1250-
rule_group_overrides=[rule_group_override])
1255+
rule_group_overrides=[rule_group_override] if rule_group_override is not None else []) # pylint: disable=line-too-long
12511256

12521257
for rule_set in waf_policy.managed_rules.managed_rule_sets:
12531258
if rule_set.rule_set_type == rule_set_type:
@@ -1256,7 +1261,8 @@ def add_waf_managed_rule_set(cmd, client, resource_group_name, policy_name,
12561261
rule_override.rules.extend(managed_rule_overrides)
12571262
break
12581263
else:
1259-
rule_set.rule_group_overrides.append(rule_group_override)
1264+
if rule_group_override is not None:
1265+
rule_set.rule_group_overrides.append(rule_group_override)
12601266
break
12611267
else:
12621268
waf_policy.managed_rules.managed_rule_sets.append(new_managed_rule_set)

0 commit comments

Comments
 (0)