def create_nat_rule(**kwargs): nat_rule = NatRule(name=kwargs['rule_name'], description=kwargs['description'], fromzone=kwargs['source_zone'], source=kwargs['source_ip'], tozone=kwargs['destination_zone'], destination=kwargs['destination_ip'], service=kwargs['service'], to_interface=kwargs['to_interface'], nat_type=kwargs['nat_type']) # Source translation: Static IP if kwargs['snat_type'] in ['static-ip'] and kwargs['snat_static_address']: nat_rule.source_translation_type = kwargs['snat_type'] nat_rule.source_translation_static_translated_address = kwargs[ 'snat_static_address'] # Bi-directional flag set? if kwargs['snat_bidirectional']: nat_rule.source_translation_static_bi_directional = kwargs[ 'snat_bidirectional'] # Source translation: Dynamic IP and port elif kwargs['snat_type'] in ['dynamic-ip-and-port']: nat_rule.source_translation_type = kwargs['snat_type'] nat_rule.source_translation_address_type = kwargs['snat_address_type'] # Interface address? if kwargs['snat_interface']: nat_rule.source_translation_interface = kwargs['snat_interface'] # Interface IP? if kwargs['snat_interface_address']: nat_rule.source_translation_ip_address = kwargs[ 'snat_interface_address'] else: nat_rule.source_translation_translated_addresses = kwargs[ 'snat_dynamic_address'] # Source translation: Dynamic IP elif kwargs['snat_type'] in ['dynamic-ip']: if kwargs['snat_dynamic_address']: nat_rule.source_translation_type = kwargs['snat_type'] nat_rule.source_translation_translated_addresses = kwargs[ 'snat_dynamic_address'] else: return False # Destination translation if kwargs['dnat_address']: nat_rule.destination_translated_address = kwargs['dnat_address'] if kwargs['dnat_port']: nat_rule.destination_translated_port = kwargs['dnat_port'] # Any tags? if 'tag_val' in kwargs: nat_rule.tag = kwargs['tag_val'] return nat_rule
def create_nat_rule(**kwargs): nat_rule = NatRule( name=kwargs["rule_name"], description=kwargs["description"], fromzone=kwargs["source_zone"], source=kwargs["source_ip"], tozone=kwargs["destination_zone"], destination=kwargs["destination_ip"], service=kwargs["service"], to_interface=kwargs["to_interface"], nat_type=kwargs["nat_type"], ) # Source translation: Static IP if kwargs["snat_type"] in ["static-ip"] and kwargs["snat_static_address"]: nat_rule.source_translation_type = kwargs["snat_type"] nat_rule.source_translation_static_translated_address = kwargs[ "snat_static_address"] # Bi-directional flag set? if kwargs["snat_bidirectional"]: nat_rule.source_translation_static_bi_directional = kwargs[ "snat_bidirectional"] # Source translation: Dynamic IP and port elif kwargs["snat_type"] in ["dynamic-ip-and-port"]: nat_rule.source_translation_type = kwargs["snat_type"] nat_rule.source_translation_address_type = kwargs["snat_address_type"] # Interface address? if kwargs["snat_interface"]: nat_rule.source_translation_interface = kwargs["snat_interface"] # Interface IP? if kwargs["snat_interface_address"]: nat_rule.source_translation_ip_address = kwargs[ "snat_interface_address"] else: nat_rule.source_translation_translated_addresses = kwargs[ "snat_dynamic_address"] # Source translation: Dynamic IP elif kwargs["snat_type"] in ["dynamic-ip"]: if kwargs["snat_dynamic_address"]: nat_rule.source_translation_type = kwargs["snat_type"] nat_rule.source_translation_translated_addresses = kwargs[ "snat_dynamic_address"] else: return False # Destination translation if kwargs["dnat_address"]: nat_rule.destination_translated_address = kwargs["dnat_address"] if kwargs["dnat_port"]: nat_rule.destination_translated_port = kwargs["dnat_port"] # Any tags? if "tag_val" in kwargs: nat_rule.tag = kwargs["tag_val"] nat_rule.target = kwargs["target"] nat_rule.negate_target = kwargs["negate_target"] return nat_rule