Skip to content

Commit d03c69c

Browse files
authored
Merge pull request #42 from Tufin/Development
Development
2 parents 07e8a68 + 9dfd71a commit d03c69c

File tree

2 files changed

+30
-7
lines changed

2 files changed

+30
-7
lines changed

pytos/common/definitions/xml_tags.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,7 @@ class Elements:
310310
ENFORCEDON = "enforcedOn"
311311
EXCLUDE_ANY = "exclude_any"
312312
EXCLUSION = "exclusion"
313+
EXCLUSIONS = "exclusions"
313314
EXEMPTED_TRAFFIC = "exempted_traffic"
314315
EXEMPTED_TRAFFIC_LIST = "exempted_traffic_list"
315316
EXPIRATION_DATE = "expiration_date"
@@ -681,6 +682,10 @@ class Elements:
681682
STEP = "step"
682683
STEP_NAME = "step_name"
683684
STEPS = "steps"
685+
SUB_POLICY = "sub_policy"
686+
SUB_POLICY_GLOBAL = "sub_policy_global"
687+
SUB_POLICY_SHARED = "sub_policy_shared"
688+
SUB_POLICY_UID = "sub_policy_uid"
684689
SUB_POLICY_NAME = "sub_policy_name"
685690
SUBNET = "subnet"
686691
SUBNET_MASK = "subnet_mask"

pytos/securetrack/xml_objects/rest/rules.py

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,10 @@ def __init__(self, num_id, uid, cp_uid, order, binding, action, comment, dst_net
274274
self.additional_parameters = kwargs['additional_parameters']
275275
self.applications = kwargs['applications']
276276
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']
277281
super().__init__(xml_tags.Elements.RULE)
278282

279283
def _key(self):
@@ -334,6 +338,11 @@ def from_xml_node(cls, xml_node):
334338
install_node = get_xml_node(xml_node, xml_tags.Elements.INSTALL, True)
335339
install = Install.from_xml_node(install_node) if install_node else None
336340

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+
337346
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)]
338347
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)]
339348
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):
344353
dst_services, dst_services_negated, disabled, external, name, rule_number, src_networks,
345354
src_networks_negated, src_services_negated, track, rule_type, documentation, device_id, implicit,
346355
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)
348358

349359
def __str__(self):
350360
src_negated, dst_negated, srv_negated = "", "", ""
@@ -1096,8 +1106,9 @@ def as_netaddr_obj(self):
10961106

10971107
class Base_Network_Object(Network_Object):
10981108
def __init__(self, display_name, is_global, connection_id, name, service_type, members, uid, device_id, comment,
1099-
implicit):
1109+
implicit, exclusions):
11001110
self.members = members
1111+
self.exclusions = exclusions
11011112
self.uid = uid
11021113
super().__init__(xml_tags.Elements.NETWORK_OBJECT, display_name, is_global, connection_id, name, service_type,
11031114
device_id, comment, implicit)
@@ -1122,11 +1133,18 @@ def from_xml_node(cls, xml_node):
11221133
member_name = get_xml_text_value(member_node, xml_tags.Elements.NAME)
11231134
member_uid = get_xml_text_value(member_node, xml_tags.Elements.UID)
11241135
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))
11251143
device_id = get_xml_int_value(xml_node, xml_tags.Elements.DEVICE_ID)
11261144
comment = get_xml_text_value(xml_node, xml_tags.Elements.COMMENT)
11271145
implicit = get_xml_text_value(xml_node, xml_tags.Elements.IMPLICIT)
11281146
return cls(display_name, is_global, connection_id, name, service_type, members, uid, device_id, comment,
1129-
implicit)
1147+
implicit, exclusions)
11301148

11311149
def __str__(self):
11321150
spacer = 4 * " "
@@ -1139,18 +1157,18 @@ def __str__(self):
11391157

11401158
class Group_Network_Object(Base_Network_Object):
11411159
def __init__(self, display_name, is_global, connection_id, name, service_type, members, uid, device_id, comment,
1142-
implicit):
1160+
implicit, exclusions):
11431161
self.set_attrib(xml_tags.Attributes.XSI_TYPE, xml_tags.Attributes.NETWORK_OBJECT_TYPE_GROUP)
11441162
super().__init__(display_name, is_global, connection_id, name, service_type, members, uid, device_id, comment,
1145-
implicit)
1163+
implicit, exclusions)
11461164

11471165

11481166
class Cloud_Network_Object(Base_Network_Object):
11491167
def __init__(self, display_name, is_global, connection_id, name, service_type, members, uid, device_id, comment,
1150-
implicit):
1168+
implicit, exclusions):
11511169
self.set_attrib(xml_tags.Attributes.XSI_TYPE, xml_tags.Attributes.NETWORK_OBJECT_TYPE_CLOUD)
11521170
super().__init__(display_name, is_global, connection_id, name, service_type, members, uid, device_id, comment,
1153-
implicit)
1171+
implicit, exclusions)
11541172

11551173

11561174
class DomainNetworkObject(Network_Object):

0 commit comments

Comments
 (0)