def validate_access_parameters(body):
"""Validate if the request body is in proper format."""
protocol_dict = deepcopy(body)
if const.NAME not in protocol_dict.keys():
raise webob.exc.HTTPBadRequest(
_("Name not found in request body"))
if uuidutils.is_uuid_like(protocol_dict['name']):
raise webob.exc.HTTPBadRequest(
_("Name=%s should not be in uuid format") %
protocol_dict['name'])
protocol_dict.pop('name')
keys = list(protocol_dict.keys())
if not len(keys):
raise webob.exc.HTTPBadRequest(
_("Request body should have at least one protocol specified"))
elif len(keys) > 1:
raise webob.exc.HTTPBadRequest(
_("multiple protocols in a single request is not supported"))
key = keys[0]
if key.lower() not in const.SUPPORTED_PROTOCOLS:
raise webob.exc.HTTPBadRequest(
_("'protocol %s' is not supported") % keys)
if key.lower() == const.SNMP_V3:
return validate_snmpv3_parameters(protocol_dict, key)
elif key.lower() in [const.NETCONF_SSH, const.NETCONF_SOAP]:
return validate_netconf_parameters(protocol_dict, key)
else:
return validate_snmp_parameters(protocol_dict, key)
评论列表
文章目录