Exemple #1
0
def createAddressTypes(sources, destinations, protocols):

    src_types = addressTypes(sources)
    dst_types = addressTypes(destinations)

    if not checkAddressTypes(src_types, dst_types):
        raise RulesetError(
            tr("Invalid address types combination! Source: %s; destination: %s."),
            formatAddressTypes(src_types),
            formatAddressTypes(dst_types))

    address_types = (src_types & dst_types) - set((INTERFACE_ADDRESS,))
    for protocol in protocols:
        new_types = address_types & protocol.getAddressTypes()
        if not len(new_types):
            raise RulesetError(
                tr("The %s protocol can not be used with the address types: %s"),
                protocol.formatID(), ', '.join(address_types))
        address_types = new_types
    return address_types
Exemple #2
0
 def setAttributes(self, attr, is_modify):
     if "address_type" not in attr:
         families = self.parent.getAddressTypes()
         if len(families) != 1:
             raise RulesetError(
                 tr("The %s network has multiple address families: %s!"),
                 self.parent.formatID(),
                 formatAddressTypes(families),
             )
         attr["address_type"] = list(families)[0]
     Resource.setAttributes(self, attr, is_modify)
     if is_modify or (not self.addresses):
         self.addresses = set(self.resolveHostname())