示例#1
0
 def test_local_account_limit(self):
     """ ACCOUNT_LIMIT (CORE): Set, get and delete local account limit """
     account_limit.set_local_account_limit(account=self.account, rse_id=self.rse1_id, bytes_=100000, session=self.db_session)
     assert account_limit.get_local_account_limit(account=self.account, rse_id=self.rse1_id, session=self.db_session) == 100000
     assert account_limit.get_local_account_limit(account=self.account, rse_id=self.rse2_id, session=self.db_session) is None
     account_limit.delete_local_account_limit(account=self.account, rse_id=self.rse1_id, session=self.db_session)
     assert account_limit.get_local_account_limit(account=self.account, rse_id=self.rse1_id, session=self.db_session) is None
示例#2
0
 def test_local_account_limits(self):
     """ ACCOUNT_LIMIT (CORE): Set, get and delete local account limits """
     limit1 = 100
     limit2 = 200
     account_limit.set_local_account_limit(account=self.account,
                                           rse_id=self.rse1_id,
                                           bytes=limit1,
                                           session=self.db_session)
     account_limit.set_local_account_limit(account=self.account,
                                           rse_id=self.rse2_id,
                                           bytes=limit2,
                                           session=self.db_session)
     results = account_limit.get_local_account_limits(
         account=self.account, session=self.db_session)
     assert_equal(len(results), 2)
     assert_equal(results[self.rse1_id], limit1)
     assert_equal(results[self.rse2_id], limit2)
     account_limit.delete_local_account_limit(account=self.account,
                                              rse_id=self.rse1_id,
                                              session=self.db_session)
     account_limit.delete_local_account_limit(account=self.account,
                                              rse_id=self.rse2_id,
                                              session=self.db_session)
     results = account_limit.get_local_account_limits(
         account=self.account, session=self.db_session)
     assert_equal(len(results), 0)
示例#3
0
    def test_set_local_account_limit(self):
        """ ACCOUNTLIMIT (CLIENTS): Set local account limit """
        self.alclient.set_local_account_limit(account=self.account.external, rse=self.rse1, bytes_=987)

        limit = self.client.get_local_account_limit(account=self.account.external, rse=self.rse1)

        assert limit[self.rse1] == 987
        account_limit.delete_local_account_limit(account=self.account, rse_id=self.rse1_id)
示例#4
0
    def test_get_local_account_limit(self):
        """ ACCOUNT_LIMIT (CLIENTS): Get local account limit """
        account_limit.delete_local_account_limit(account=self.account, rse_id=self.rse1_id)
        account_limit.set_local_account_limit(account=self.account, rse_id=self.rse1_id, bytes_=333)

        limit = self.client.get_local_account_limit(account=self.account.external, rse=self.rse1)

        assert limit == {self.rse1: 333}
        account_limit.delete_local_account_limit(account=self.account, rse_id=self.rse1_id)
示例#5
0
    def test_delete_local_account_limit(self):
        """ ACCOUNTLIMIT (CLIENTS): Delete local account limit """
        self.alclient.set_local_account_limit(account=self.account.external, rse=self.rse1, bytes_=786)

        limit = self.client.get_local_account_limit(account=self.account.external, rse=self.rse1)
        assert limit == {self.rse1: 786}

        self.alclient.delete_local_account_limit(account=self.account.external, rse=self.rse1)
        limit = self.client.get_local_account_limit(account=self.account.external, rse=self.rse1)
        assert limit[self.rse1] is None
        account_limit.delete_local_account_limit(account=self.account, rse_id=self.rse1_id)
示例#6
0
    def test_get_local_account_limits(self):
        """ ACCOUNT_LIMIT (CLIENTS): Get local account limits """
        account_limit.set_local_account_limit(account=self.account, rse_id=self.rse1_id, bytes_=12345)
        account_limit.set_local_account_limit(account=self.account, rse_id=self.rse2_id, bytes_=12345)

        limits = self.client.get_local_account_limits(account=self.account.external)

        assert (self.rse1, 12345) in limits.items()
        assert (self.rse2, 12345) in limits.items()

        account_limit.delete_local_account_limit(account=self.account, rse_id=self.rse1_id)
        account_limit.delete_local_account_limit(account=self.account, rse_id=self.rse2_id)
示例#7
0
def delete_local_account_limit(account, rse, issuer, vo='def'):
    """
    Delete an account limit..

    :param account: The account name.
    :param rse:     The rse name.
    :param issuer:  The issuer account_core.
    :param vo:      The VO to act on.

    :returns: True if successful; False otherwise.
    """

    rse_id = get_rse_id(rse=rse, vo=vo)
    kwargs = {'account': account, 'rse': rse, 'rse_id': rse_id}
    if not rucio.api.permission.has_permission(
            issuer=issuer,
            vo=vo,
            action='delete_local_account_limit',
            kwargs=kwargs):
        raise rucio.common.exception.AccessDenied(
            'Account %s can not delete account limits.' % (issuer))

    account = InternalAccount(account, vo=vo)

    if not account_exists(account=account):
        raise rucio.common.exception.AccountNotFound(
            'Account %s does not exist' % (account))

    return account_limit_core.delete_local_account_limit(account=account,
                                                         rse_id=rse_id)