Ejemplo n.º 1
0
    def test_run_transmogrifier(self):
        """ SUBSCRIPTION (DAEMON): Test the transmogrifier and the split_rule mode """
        rse1, _ = self.rse_factory.make_mock_rse()
        rse2, _ = self.rse_factory.make_mock_rse()
        rse3, _ = self.rse_factory.make_mock_rse()
        rse_expression = '%s|%s|%s' % (rse1, rse2, rse3)
        tmp_scope = InternalScope('mock_' + uuid()[:8], **self.vo)
        root = InternalAccount('root', **self.vo)
        add_scope(tmp_scope, root)
        subscription_name = uuid()
        dsn = 'dataset-%s' % uuid()
        add_did(scope=tmp_scope,
                name=dsn,
                did_type=DIDType.DATASET,
                account=root)

        subid = self.sub_client.add_subscription(name=subscription_name,
                                                 account='root',
                                                 filter_={
                                                     'scope': [
                                                         tmp_scope.external,
                                                     ],
                                                     'pattern': 'dataset-.*',
                                                     'split_rule': True
                                                 },
                                                 replication_rules=[{
                                                     'lifetime':
                                                     86400,
                                                     'rse_expression':
                                                     rse_expression,
                                                     'copies':
                                                     2,
                                                     'activity':
                                                     'Data Brokering'
                                                 }],
                                                 lifetime=None,
                                                 retroactive=0,
                                                 dry_run=0,
                                                 comments='Ni ! Ni!',
                                                 priority=1)
        run(threads=1, bulk=1000000, once=True)
        rules = [
            rule for rule in self.did_client.list_did_rules(
                scope=tmp_scope.external, name=dsn)
            if str(rule['subscription_id']) == str(subid)
        ]
        assert len(rules) == 2
        set_new_dids([
            {
                'scope': tmp_scope,
                'name': dsn
            },
        ], 1)
        run(threads=1, bulk=1000000, once=True)
        rules = [
            rule for rule in self.did_client.list_did_rules(
                scope=tmp_scope.external, name=dsn)
            if str(rule['subscription_id']) == str(subid)
        ]
        assert len(rules) == 2
Ejemplo n.º 2
0
    def test_run_transmogrifier(self):
        """ SUBSCRIPTION (DAEMON): Test the transmogrifier and the split_rule mode """
        tmp_scope = 'mock_' + uuid()[:8]
        add_scope(tmp_scope, 'root')
        subscription_name = uuid()
        dsn = 'dataset-%s' % uuid()
        add_did(scope=tmp_scope,
                name=dsn,
                type=DIDType.DATASET,
                account='root')

        subid = self.sub_client.add_subscription(name=subscription_name,
                                                 account='root',
                                                 filter={
                                                     'scope': [
                                                         tmp_scope,
                                                     ],
                                                     'pattern': 'dataset-.*',
                                                     'split_rule': True
                                                 },
                                                 replication_rules=[{
                                                     'lifetime':
                                                     86400,
                                                     'rse_expression':
                                                     'MOCK-POSIX|MOCK2|MOCK3',
                                                     'copies':
                                                     2,
                                                     'activity':
                                                     'Data Brokering'
                                                 }],
                                                 lifetime=None,
                                                 retroactive=0,
                                                 dry_run=0,
                                                 comments='Ni ! Ni!',
                                                 priority=1)
        run(threads=1, bulk=1000000, once=True)
        rules = [
            rule for rule in self.did_client.list_did_rules(scope=tmp_scope,
                                                            name=dsn)
            if str(rule['subscription_id']) == str(subid)
        ]
        assert_equal(len(rules), 2)
        set_new_dids([
            {
                'scope': tmp_scope,
                'name': dsn
            },
        ], 1)
        run(threads=1, bulk=1000000, once=True)
        rules = [
            rule for rule in self.did_client.list_did_rules(scope=tmp_scope,
                                                            name=dsn)
            if str(rule['subscription_id']) == str(subid)
        ]
        assert_equal(len(rules), 2)
Ejemplo n.º 3
0
def set_new_dids(dids, new_flag=True):
    """
    Set/reset the flag new

    :param scope: The scope name.
    :param name: The data identifier name.
    :param new_flag: A boolean to flag new DIDs.
    """
    return did.set_new_dids(dids, new_flag)
Ejemplo n.º 4
0
Archivo: did.py Proyecto: kbg/rucio
def set_new_dids(dids, new_flag=True):
    """
    Set/reset the flag new

    :param scope: The scope name.
    :param name: The data identifier name.
    :param new_flag: A boolean to flag new DIDs.
    """
    return did.set_new_dids(dids, new_flag)
Ejemplo n.º 5
0
def set_new_dids(dids, new_flag=True):
    """
    Set/reset the flag new

    :param scope: The scope name.
    :param name: The data identifier name.
    :param new_flag: A boolean to flag new DIDs.
    """
    for d in dids:
        d['scope'] = InternalScope(d['scope'])

    return did.set_new_dids(dids, new_flag)
Ejemplo n.º 6
0
def set_new_dids(dids, new_flag=True, vo='def', session=None):
    """
    Set/reset the flag new

    :param scope: The scope name.
    :param name: The data identifier name.
    :param new_flag: A boolean to flag new DIDs.
    :param vo: The VO to act on.
    :param session: The database session in use.
    """
    for d in dids:
        d['scope'] = InternalScope(d['scope'], vo=vo)

    return did.set_new_dids(dids, new_flag, session=session)