示例#1
0
    def setup(self):
        # inherited setup does reset_db()
        super(DguFunctionalTestBase, self).setup()

        # init DGU-specific models
        commitment.init_tables(model.meta.engine)
        archiver.init_tables(model.meta.engine)
示例#2
0
    def command(self):
        """
        """
        self._load_config()
        log = logging.getLogger(__name__)

        import ckan.model as model
        model.Session.remove()
        model.Session.configure(bind=model.meta.engine)
        #model.repo.new_revision()
        log.info("Database access initialised")

        import ckanext.dgu.model.commitment as c_model
        c_model.init_tables(model.meta.engine)
        log.debug("Commitment table is setup")
示例#3
0
    def command(self):
        """
        """
        self._load_config()
        log = logging.getLogger(__name__)

        import ckan.model as model
        model.Session.remove()
        model.Session.configure(bind=model.meta.engine)
        #model.repo.new_revision()
        log.info("Database access initialised")

        import ckanext.dgu.model.commitment as c_model
        c_model.init_tables(model.meta.engine)
        log.debug("Commitment table is setup")
示例#4
0
    def command(self):
        """
        """
        self._load_config()
        log = logging.getLogger(__name__)

        import ckan.model as model
        model.Session.remove()
        model.Session.configure(bind=model.meta.engine)
        #model.repo.new_revision()
        log.info("Database access initialised")

        from ckan.logic import get_action, NotFound

        migrate_qa = False
        if len(self.args) == 2 and self.args[0] == 'migrate_qa':
            migrate_qa = True
            migrate_what = self.args[1]

        import ckanext.dgu.model.commitment as c_model
        c_model.init_tables(model.meta.engine)
        log.info("Commitment table is setup")

        import ckanext.dgu.model.archive_tasks as a_model
        a_model.init_tables(model.meta.engine)
        log.info("Archive tasks table is setup")

        import ckanext.dgu.model.qa_tasks as q_model
        q_model.init_tables(model.meta.engine)
        log.info("QA tasks table is setup")

        site_user = get_action('get_site_user')({'model': model,'ignore_auth': True}, {})

        if migrate_qa:
            # Migrate a single resource, this shouldn't be needed except
            # for dev
            log.debug("Migrating QA: %s" % migrate_what)
            ts = model.Session.query(model.TaskStatus)\
                    .filter(model.TaskStatus.task_type=='qa')\
                    .filter(model.TaskStatus.key=='status')\
                    .filter(model.TaskStatus.entity_id==migrate_what).first()
            if ts:
                existing = model.Session.query(q_model.QATask)\
                    .filter(q_model.QATask.resource_id==migrate_what).first()
                if existing:
                    log.debug("Deleting existing QA Task")
                    model.Session.delete(existing)
                    model.Session.commit()

                qt = q_model.QATask.create(ts)
                log.info("Setting resource (%s) is_broken to %s" % (qt.resource_id, qt.is_broken))
                try:
                    res = get_action('resource_show')({'ignore_auth':True, 'user': site_user['name']}, {'id': qt.resource_id})
                    res['is_broken'] = qt.is_broken
                    get_action('resource_update')({'ignore_auth':True, 'user': site_user['name']}, res)
                except NotFound:
                    # No such resource
                    log.debug("Resource %s not found, may be deleted" % qt.resource_id)
                except Exception, e:
                    log.error("Unable to update resource: %s" % qt.resource_id)
                    log.exception(e)

                model.Session.add(qt)
                model.Session.commit()