def _validate_ip_pools(data, valid_values=None):
 if (not isinstance(data, list)):
  msg = (_("Invalid data format for IP pool: '%s'") % data)
  LOG.debug(msg)
  return msg
 expected_keys = ['start', 'end']
 for ip_pool in data:
  msg = _verify_dict_keys(expected_keys, ip_pool)
  if msg:
   LOG.debug(msg)
   return msg
  for k in expected_keys:
   msg = _validate_ip_address(ip_pool[k])
   if msg:
    LOG.debug(msg)
    return msg

def _validate_ip_pools ( data , valid_values = None ) : if ( not isinstance ( data , list ) ) : msg = ( _ ( "Invalid data format for IP pool: '%s'" ) % data ) LOG . debug ( msg ) return msg expected_keys = [ 'start' , 'end' ] for ip_pool in data : msg = _verify_dict_keys ( expected_keys , ip_pool ) if msg : LOG . debug ( msg ) return msg for k in expected_keys : msg = _validate_ip_address ( ip_pool [ k ] ) if msg : LOG . debug ( msg ) return msg
validate that start and end ip addresses are present in addition to this the ip addresses will also be validated .