27
27
import getopt
28
28
import os
29
29
import sys
30
+ import ipaddress
30
31
31
32
import meraki
32
33
@@ -82,11 +83,18 @@ def main(argv):
82
83
rule = dict ({'policy' : row [0 ], 'protocol' : row [1 ], 'srcCidr' : row [2 ], 'srcPort' : row [3 ], 'destCidr' : row [4 ], 'destPort' : row [5 ], 'comment' : row [6 ], 'syslogEnabled' : (row [7 ] == True or row [7 ] == 'True' or row [7 ] == 'true' )})
83
84
84
85
# Append implied "/32" for IP addresses for just one host
85
- if '/' not in rule ['srcCidr' ] and rule ['srcCidr' ].lower () != 'any' :
86
- rule ['srcCidr' ] += '/32'
87
- if '/' not in rule ['destCidr' ] and rule ['destCidr' ].lower () != 'any' :
88
- rule ['destCidr' ] += '/32'
89
-
86
+ try :
87
+ ip = ipaddress .ip_address (rule ['srcCidr' ])
88
+ if not '/' in rule ['srcCidr' ]:
89
+ rule ['srcCidr' ] += '/32'
90
+ except :
91
+ pass
92
+ try :
93
+ ip = ipaddress .ip_address (rule ['destCidr' ])
94
+ if not '/' in rule ['destCidr' ]:
95
+ rule ['destCidr' ] += '/32'
96
+ except :
97
+ pass
90
98
print (rule )
91
99
92
100
fw_rules .append (rule )
@@ -106,11 +114,11 @@ def main(argv):
106
114
107
115
# Update MX L3 firewall rules
108
116
print (f'Attempting update/simulation of firewall rules to network { net_id } ' )
109
- m .mx_l3_firewall . updateNetworkL3FirewallRules (net_id , rules = fw_rules , syslogDefaultRule = default_logging )
117
+ m .appliance . updateNetworkApplianceFirewallL3FirewallRules (net_id , rules = fw_rules , syslogDefaultRule = default_logging )
110
118
111
119
# Confirm whether changes were successfully made
112
120
if arg_mode == 'commit' :
113
- new_rules = m .mx_l3_firewall . getNetworkL3FirewallRules (net_id )
121
+ new_rules = m .appliance . getNetworkApplianceFirewallL3FirewallRules (net_id )[ 'rules' ]
114
122
if default_rule_exists and new_rules [:- 1 ] == old_rules [:- 1 ]:
115
123
print ('Update successful!' )
116
124
elif not (default_rule_exists ) and new_rules [:- 1 ] == old_rules :
0 commit comments