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
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)
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)
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)
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)
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)
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)