Remove a GPG from a blockchain ID's global account.
    Do NOT remove it from the local keyring.
    Return {'status': True, ...} on success.  May include 'delete_errors' if any specific keys couldn't be removed.
    Return {'error': ...} on error

def gpg_profile_delete_key( blockchain_id, key_id, proxy=None, wallet_keys=None ):
    """
    Remove a GPG from a blockchain ID's global account.
    Do NOT remove it from the local keyring.
    Return {'status': True, ...} on success.  May include 'delete_errors' if any specific keys couldn't be removed.
    Return {'error': ...} on error
    """

    res = client.delete_account( blockchain_id, "pgp", key_id, proxy=proxy, wallet_keys=wallet_keys )
    if 'error' in res:
        return res 

    removed_accounts = res['removed']
    errors = []
    
    # blow away all state 
    for account in removed_accounts:
        if not account.has_key('contentUrl'):
            continue 

        key_url = account['contentUrl']
        if key_url.startswith("blockstack://"):
            # delete
            try:
                res = client.data_delete( key_url, proxy=proxy, wallet_keys=wallet_keys )
                if 'error' in res:
                    errors.append({'key_url': key_url, 'message': res['error']})
            except AssertionError, e:
                log.exception(e)
                log.error("Failed to delete '%s'" % key_url)
                raise

            except Exception, e:
                log.exception(e)
                log.error("Failed to delete '%s'" % key_url)
                continue

    ret = {'status': True}
    if len(errors) > 0:
        ret['delete_errors'] = errors

    return ret