def validate_access_parameters_for_update(body):
"""Validate if the request body is in proper format."""
protocol_dict = deepcopy(body)
if (const.NAME not in protocol_dict.keys() and
not len(protocol_dict.keys())):
raise webob.exc.HTTPBadRequest(
_("Request must have name or one protocol type"))
if const.NAME in protocol_dict.keys():
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')
if protocol_dict:
keys = list(protocol_dict.keys())
if 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_for_update(protocol_dict, key)
elif key.lower() in [const.NETCONF_SSH, const.NETCONF_SOAP]:
return validate_netconf_parameters_for_update(protocol_dict, key)
else:
return validate_snmp_parameters_for_update(protocol_dict, key)
else:
return None
评论列表
文章目录