From 310160194b581ada0fc8127829086e55799e1fc1 Mon Sep 17 00:00:00 2001 From: Pavel Martynov Date: Thu, 6 Apr 2017 14:41:35 +0300 Subject: [PATCH] azure_rm_securitygroup: allow string priority --- .../modules/cloud/azure/azure_rm_securitygroup.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/lib/ansible/modules/cloud/azure/azure_rm_securitygroup.py b/lib/ansible/modules/cloud/azure/azure_rm_securitygroup.py index 4966eb7693eca1..d95e9aa4ba4cb3 100644 --- a/lib/ansible/modules/cloud/azure/azure_rm_securitygroup.py +++ b/lib/ansible/modules/cloud/azure/azure_rm_securitygroup.py @@ -336,6 +336,7 @@ } ''' # NOQA +from ansible.module_utils.six import string_types from ansible.module_utils.basic import * from ansible.module_utils.azure_rm_common import * @@ -366,7 +367,13 @@ def validate_rule(rule, rule_type=None): priority = rule.get('priority', None) if not priority: raise Exception("Rule priority is required.") - if not isinstance(priority, (int, long)): + if isinstance(priority, string_types): + try: + priority = int(priority) + rule['priority'] = priority + except ValueError: + raise Exception("Can't parse rule priority integer.") + elif not isinstance(priority, (int, long)): raise Exception("Rule priority attribute must be an integer.") if rule_type != 'default' and (priority < 100 or priority > 4096): raise Exception("Rule priority must be between 100 and 4096") @@ -416,10 +423,10 @@ def compare_rules(r, rule): if rule['protocol'] != r['protocol']: changed = True r['protocol'] = rule['protocol'] - if rule['source_port_range'] != r['source_port_range']: + if str(rule['source_port_range']) != r['source_port_range']: changed = True r['source_port_range'] = rule['source_port_range'] - if rule['destination_port_range'] != r['destination_port_range']: + if str(rule['destination_port_range']) != r['destination_port_range']: changed = True r['destination_port_range'] = rule['destination_port_range'] if rule['access'] != r['access']: