コード例 #1
0
def delete_key(key):  # noqa: E501
    """Delete key

    Delete target key # noqa: E501

    :param key:
    :type key: str

    :rtype: None
    """
    from mist.api.keys.methods import delete_key as m_delete_key
    try:
        auth_context = connexion.context['token_info']['auth_context']
    except KeyError:
        return 'Authentication failed', 401
    result = get_resource(auth_context, 'key', search=key)
    result_data = result.get('data')
    if not result_data:
        return 'Cloud does not exist', 404
    key_id = result_data.get('id')
    try:
        auth_context.check_perm('key', 'remove', key_id)
    except PolicyUnauthorizedError:
        return 'You are not authorized to perform this action', 403
    try:
        m_delete_key(auth_context.owner, key_id)
    except KeyNotFoundError:
        return 'Key not found', 404
    log_event(
        auth_context.owner.id, 'request', 'delete_key',
        key_id=key_id, user_id=auth_context.user.id,
    )
    key_name = result_data.get('name')
    return f'Deleted key `{key_name}`', 200
コード例 #2
0
ファイル: views.py プロジェクト: hb407033/mist.api
def delete_key(request):
    """
    Delete key
    Delete key. When a key gets deleted, it takes its associations with it
    so just need to remove from the server too. If the default key gets
    deleted, it sets the next one as default, provided that at least another
    key exists. It returns the list of all keys after the deletion,
    excluding the private keys (check also list_keys).
    REMOVE permission required on key.
    ---
    key:
      in: path
      required: true
      type: string
    """
    auth_context = auth_context_from_request(request)
    key_id = request.matchdict.get('key')
    if not key_id:
        raise KeyParameterMissingError()

    try:
        key = Key.objects.get(owner=auth_context.owner,
                              id=key_id,
                              deleted=None)
    except me.DoesNotExist:
        raise NotFoundError('Key id does not exist')

    auth_context.check_perm('key', 'remove', key.id)
    m_delete_key(auth_context.owner, key_id)
    return list_keys(request)