Beispiel #1
0
def remove_did_from_followed(scope,
                             name,
                             account,
                             issuer,
                             session=None,
                             vo='def'):
    """
    Mark a did as not followed

    :param scope: The scope name.
    :param name: The data identifier name.
    :param account: The account owner.
    :param session: The database session in use.
    :param issuer: The issuer account
    """
    kwargs = {'scope': scope, 'issuer': issuer}
    if not rucio.api.permission.has_permission(
            issuer=issuer, vo=vo, action='remove_did_from_followed',
            kwargs=kwargs):
        raise rucio.common.exception.AccessDenied(
            'Account %s can not remove data identifiers from followed table' %
            (issuer))

    scope = InternalScope(scope, vo=vo)
    account = InternalAccount(account, vo=vo)
    return did.remove_did_from_followed(scope=scope,
                                        name=name,
                                        account=account,
                                        session=session)
Beispiel #2
0
    def test_remove_did_from_followed(self):
        """ DATA IDENTIFIERS (CORE): Mark a did as not followed """
        tmp_scope = InternalScope('mock')
        dsn = 'dsn_%s' % generate_uuid()
        root = InternalAccount('root')

        add_did(scope=tmp_scope, name=dsn, type=DIDType.DATASET, account=root)
        add_did_to_followed(scope=tmp_scope, name=dsn, account=root)

        users = get_users_following_did(scope=tmp_scope, name=dsn)
        rows = 0
        for user in users:
            rows += 1

        assert_equal(rows, 1)

        remove_did_from_followed(scope=tmp_scope, name=dsn, account=root)

        users = get_users_following_did(scope=tmp_scope, name=dsn)
        rows = 0
        for user in users:
            rows += 1

        assert_equal(rows, 0)