def _get_credentials_dict(self, bnp_switch, func_name):
if not bnp_switch:
self._raise_ml2_error(wexc.HTTPNotFound, func_name)
db_context = neutron_context.get_admin_context()
creds_dict = {}
creds_dict['ip_address'] = bnp_switch.ip_address
prov_creds = bnp_switch.credentials
prov_protocol = bnp_switch.management_protocol
if hp_const.PROTOCOL_SNMP in prov_protocol:
if not uuidutils.is_uuid_like(prov_creds):
snmp_cred = db.get_snmp_cred_by_name(db_context, prov_creds)
snmp_cred = snmp_cred[0]
else:
snmp_cred = db.get_snmp_cred_by_id(db_context, prov_creds)
if not snmp_cred:
LOG.error(_LE("Credentials does not match"))
self._raise_ml2_error(wexc.HTTPNotFound, '')
creds_dict['write_community'] = snmp_cred.write_community
creds_dict['security_name'] = snmp_cred.security_name
creds_dict['security_level'] = snmp_cred.security_level
creds_dict['auth_protocol'] = snmp_cred.auth_protocol
creds_dict['management_protocol'] = prov_protocol
creds_dict['auth_key'] = snmp_cred.auth_key
creds_dict['priv_protocol'] = snmp_cred.priv_protocol
creds_dict['priv_key'] = snmp_cred.priv_key
else:
if not uuidutils.is_uuid_like(prov_creds):
netconf_cred = db.get_netconf_cred_by_name(db_context,
prov_creds)
else:
netconf_cred = db.get_netconf_cred_by_id(db_context,
prov_creds)
if not netconf_cred:
LOG.error(_LE("Credentials does not match"))
self._raise_ml2_error(wexc.HTTPNotFound, '')
creds_dict['user_name'] = netconf_cred.write_community
creds_dict['password'] = netconf_cred.security_name
creds_dict['key_path'] = netconf_cred.security_level
return creds_dict
评论列表
文章目录