Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
    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)
Ejemplo n.º 4
0
    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)
Ejemplo n.º 5
0
    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)
Ejemplo n.º 6
0
    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)
Ejemplo n.º 7
0
    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)
Ejemplo n.º 8
0
    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)
Ejemplo n.º 9
0
    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)
Ejemplo n.º 10
0
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)
Ejemplo n.º 11
0
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)