예제 #1
0
 def address(self):
     if self._values['address'] is None:
         return None
     if is_valid_ip(self._values['address']):
         return compress_address(self._values['address'])
     else:
         raise F5ModuleError(
             "The provided 'address' is not a valid IP address")
예제 #2
0
 def address(self):
     if self._values['address'] is None:
         return None
     if len(self._values['address'].split('%')) > 1:
         address, rd = self._values['address'].split('%')
         if is_valid_ip(address):
             result = '{0}%{1}'.format(compress_address(address), rd)
             return result
     else:
         if is_valid_ip(self._values['address']):
             return self._values['address']
     raise F5ModuleError(
         "The provided address: {0} is not a valid IP address".format(
             self._values['address']))
예제 #3
0
 def _format_member_address(self, member):
     if len(member.split('%')) > 1:
         address, rd = member.split('%')
         if is_valid_ip(address):
             result = '/{0}/{1}%{2}'.format(self.partition, compress_address(address), rd)
             return result
     else:
         if is_valid_ip(member):
             address = '/{0}/{1}'.format(self.partition, member)
             return address
         else:
             # names must start with alphabetic character, and can contain hyphens and underscores and numbers
             # no special characters are allowed
             pattern = re.compile(r'(?!-)[A-Z-].*(?<!-)$', re.IGNORECASE)
             if pattern.match(member):
                 address = '/{0}/{1}'.format(self.partition, member)
                 return address
     raise F5ModuleError(
         'The provided member address: {0} is not a valid IP address or snat translation name'.format(member)
     )