def test_setting_account_limit(self): """ ACCOUNTLIMIT (CLIENTS): Test setting account limit """ self.alclient.set_account_limit(account=self.account, rse=self.rse1, bytes=987) limit = self.client.get_account_limit(account=self.account, rse=self.rse1) assert_equal(limit[self.rse1], 987) account_limit.delete_account_limit(account=self.account, rse_id=self.rse1_id)
def test_listing_account_limit(self): """ ACCOUNT (CLIENTS): Test listing account limit """ account_limit.delete_account_limit(account=self.account, rse_id=self.rse1_id) account_limit.set_account_limit(account=self.account, rse_id=self.rse1_id, bytes=333) limit = self.client.get_account_limit(account=self.account, rse=self.rse1) assert_equal(limit, {self.rse1: 333}) account_limit.delete_account_limit(account=self.account, rse_id=self.rse1_id)
def test_deleting_account_limit(self): """ ACCOUNTLIMIT (CLIENTS): Test deleting account limit """ self.alclient.set_account_limit(account=self.account, rse=self.rse1, bytes=786) limit = self.client.get_account_limit(account=self.account, rse=self.rse1) assert_equal(limit, {self.rse1: 786}) self.alclient.delete_account_limit(account=self.account, rse=self.rse1) limit = self.client.get_account_limit(account=self.account, rse=self.rse1) assert_equal(limit[self.rse1], float('Inf')) account_limit.delete_account_limit(account=self.account, rse_id=self.rse1_id)
def test_deleting_account_limit(self): """ ACCOUNTLIMIT (CLIENTS): Test deleting account limit """ self.alclient.set_account_limit(account=self.account, rse=self.rse1, bytes=786) limit = self.client.get_account_limit(account=self.account, rse=self.rse1) assert_equal(limit, {self.rse1: 786}) self.alclient.delete_account_limit(account=self.account, rse=self.rse1) limit = self.client.get_account_limit(account=self.account, rse=self.rse1) assert_equal(limit[self.rse1], None) account_limit.delete_account_limit(account=self.account, rse_id=self.rse1_id)
def test_listing_account_limits(self): """ ACCOUNT (CLIENTS): Test listing account limits """ account_limit.set_account_limit(account=self.account, rse_id=self.rse1_id, bytes=12345) account_limit.set_account_limit(account=self.account, rse_id=self.rse2_id, bytes=12345) limits = self.client.get_account_limits(account=self.account) assert_in((self.rse1, 12345), limits.items()) assert_in((self.rse2, 12345), limits.items()) account_limit.delete_account_limit(account=self.account, rse_id=self.rse1_id) account_limit.delete_account_limit(account=self.account, rse_id=self.rse2_id)
def test_rule_add_fails_account_limit(self): """ REPLICATION RULE (CORE): Test if a rule fails correctly when account limit conflict""" scope = 'mock' files = create_files(3, scope, self.rse1, bytes=100) dataset = 'dataset_' + str(uuid()) add_did(scope, dataset, DIDType.from_sym('DATASET'), 'jdoe') attach_dids(scope, dataset, files, 'jdoe') set_account_limit(account='jdoe', rse_id=self.rse1_id, bytes=5) assert_raises(InsufficientAccountLimit, add_rule, dids=[{'scope': scope, 'name': dataset}], account='jdoe', copies=1, rse_expression=self.rse1, grouping='ALL', weight=None, lifetime=None, locked=False, subscription_id=None) delete_account_limit(account='jdoe', rse_id=self.rse1_id)
def delete_account_limit(account, rse, issuer): """ Delete an account limit.. :param account: The account name. :param rse: The rse name. :param issuer: The issuer account_core. :returns: True if successful; False otherwise. """ rse_id = get_rse_id(rse=rse) kwargs = {'account': account, 'rse': rse, 'rse_id': rse_id} if not rucio.api.permission.has_permission( issuer=issuer, action='delete_account_limit', kwargs=kwargs): raise rucio.common.exception.AccessDenied( 'Account %s can not delete account limits.' % (issuer)) account = InternalAccount(account) if not account_exists(account=account): raise rucio.common.exception.AccountNotFound( 'Account %s does not exist' % (account)) return account_limit_core.delete_account_limit(account=account, rse_id=rse_id)
def delete_account_limit(account, rse, issuer): """ Delete an account limit.. :param account: The account name. :param rse: The rse name. :param issuer: The issuer account_core. :returns: True if successful; False otherwise. """ kwargs = {'account': account, 'rse': rse} if not rucio.api.permission.has_permission(issuer=issuer, action='delete_account_limit', kwargs=kwargs): raise rucio.common.exception.AccessDenied('Account %s can not delete account limits.' % (issuer)) if not account_exists(account=account): raise rucio.common.exception.AccountNotFound('Account %s does not exist' % (account)) rse_id = get_rse_id(rse=rse) return account_limit_core.delete_account_limit(account=account, rse_id=rse_id)