@@ -274,6 +274,10 @@ def __init__(self, num_id, uid, cp_uid, order, binding, action, comment, dst_net
274
274
self .additional_parameters = kwargs ['additional_parameters' ]
275
275
self .applications = kwargs ['applications' ]
276
276
self .rule_text = kwargs ['rule_text' ]
277
+ self .sub_policy = kwargs ['sub_policy' ]
278
+ self .sub_policy_global = kwargs ['sub_policy_global' ]
279
+ self .sub_policy_shared = kwargs ['sub_policy_shared' ]
280
+ self .sub_policy_uid = kwargs ['sub_policy_uid' ]
277
281
super ().__init__ (xml_tags .Elements .RULE )
278
282
279
283
def _key (self ):
@@ -334,6 +338,11 @@ def from_xml_node(cls, xml_node):
334
338
install_node = get_xml_node (xml_node , xml_tags .Elements .INSTALL , True )
335
339
install = Install .from_xml_node (install_node ) if install_node else None
336
340
341
+ sub_policy = get_xml_text_value (xml_node , xml_tags .Elements .SUB_POLICY )
342
+ sub_policy_global = get_xml_text_value (xml_node , xml_tags .Elements .SUB_POLICY_GLOBAL )
343
+ sub_policy_shared = get_xml_text_value (xml_node , xml_tags .Elements .SUB_POLICY_SHARED )
344
+ sub_policy_uid = get_xml_text_value (xml_node , xml_tags .Elements .SUB_POLICY_UID )
345
+
337
346
src_zones = [Flat_XML_Object_Base (xml_tags .Elements .SRC_ZONE , content = s_zone .text ) for s_zone in xml_node .iter (tag = xml_tags .Elements .SRC_ZONE )]
338
347
dst_zones = [Flat_XML_Object_Base (xml_tags .Elements .DST_ZONE , content = d_zone .text ) for d_zone in xml_node .iter (tag = xml_tags .Elements .DST_ZONE )]
339
348
additional_parameters = create_tagless_xml_objects_list (xml_node , xml_tags .Elements .ADDITIONAL_PARAMETER , AdditionalParameter )
@@ -344,7 +353,8 @@ def from_xml_node(cls, xml_node):
344
353
dst_services , dst_services_negated , disabled , external , name , rule_number , src_networks ,
345
354
src_networks_negated , src_services_negated , track , rule_type , documentation , device_id , implicit ,
346
355
application , vpn , install , src_zones , dst_zones , rule_type_type , rule_text = rule_text ,
347
- additional_parameters = additional_parameters , applications = applications )
356
+ additional_parameters = additional_parameters , applications = applications , sub_policy = sub_policy ,
357
+ sub_policy_global = sub_policy_global , sub_policy_shared = sub_policy_shared , sub_policy_uid = sub_policy_uid )
348
358
349
359
def __str__ (self ):
350
360
src_negated , dst_negated , srv_negated = "" , "" , ""
@@ -1096,8 +1106,9 @@ def as_netaddr_obj(self):
1096
1106
1097
1107
class Base_Network_Object (Network_Object ):
1098
1108
def __init__ (self , display_name , is_global , connection_id , name , service_type , members , uid , device_id , comment ,
1099
- implicit ):
1109
+ implicit , exclusions ):
1100
1110
self .members = members
1111
+ self .exclusions = exclusions
1101
1112
self .uid = uid
1102
1113
super ().__init__ (xml_tags .Elements .NETWORK_OBJECT , display_name , is_global , connection_id , name , service_type ,
1103
1114
device_id , comment , implicit )
@@ -1122,11 +1133,18 @@ def from_xml_node(cls, xml_node):
1122
1133
member_name = get_xml_text_value (member_node , xml_tags .Elements .NAME )
1123
1134
member_uid = get_xml_text_value (member_node , xml_tags .Elements .UID )
1124
1135
members .append (Base_Object (xml_tags .Elements .MEMBER , member_name , member_display_name , member_id , member_uid ))
1136
+ exclusions = XML_List (xml_tags .Elements .EXCLUSIONS , [])
1137
+ for exclusion_node in xml_node .iter (tag = xml_tags .Elements .EXCLUSION ):
1138
+ exclusion_id = get_xml_int_value (exclusion_node , xml_tags .Elements .ID )
1139
+ exclusion_display_name = get_xml_text_value (exclusion_node , xml_tags .Elements .DISPLAY_NAME )
1140
+ exclusion_name = get_xml_text_value (exclusion_node , xml_tags .Elements .NAME )
1141
+ exclusion_uid = get_xml_text_value (exclusion_node , xml_tags .Elements .UID )
1142
+ exclusions .append (Base_Object (xml_tags .Elements .EXCLUSION , exclusion_name , exclusion_display_name , exclusion_id , exclusion_uid ))
1125
1143
device_id = get_xml_int_value (xml_node , xml_tags .Elements .DEVICE_ID )
1126
1144
comment = get_xml_text_value (xml_node , xml_tags .Elements .COMMENT )
1127
1145
implicit = get_xml_text_value (xml_node , xml_tags .Elements .IMPLICIT )
1128
1146
return cls (display_name , is_global , connection_id , name , service_type , members , uid , device_id , comment ,
1129
- implicit )
1147
+ implicit , exclusions )
1130
1148
1131
1149
def __str__ (self ):
1132
1150
spacer = 4 * " "
@@ -1139,18 +1157,18 @@ def __str__(self):
1139
1157
1140
1158
class Group_Network_Object (Base_Network_Object ):
1141
1159
def __init__ (self , display_name , is_global , connection_id , name , service_type , members , uid , device_id , comment ,
1142
- implicit ):
1160
+ implicit , exclusions ):
1143
1161
self .set_attrib (xml_tags .Attributes .XSI_TYPE , xml_tags .Attributes .NETWORK_OBJECT_TYPE_GROUP )
1144
1162
super ().__init__ (display_name , is_global , connection_id , name , service_type , members , uid , device_id , comment ,
1145
- implicit )
1163
+ implicit , exclusions )
1146
1164
1147
1165
1148
1166
class Cloud_Network_Object (Base_Network_Object ):
1149
1167
def __init__ (self , display_name , is_global , connection_id , name , service_type , members , uid , device_id , comment ,
1150
- implicit ):
1168
+ implicit , exclusions ):
1151
1169
self .set_attrib (xml_tags .Attributes .XSI_TYPE , xml_tags .Attributes .NETWORK_OBJECT_TYPE_CLOUD )
1152
1170
super ().__init__ (display_name , is_global , connection_id , name , service_type , members , uid , device_id , comment ,
1153
- implicit )
1171
+ implicit , exclusions )
1154
1172
1155
1173
1156
1174
class DomainNetworkObject (Network_Object ):
0 commit comments