示例#1
0
    def test_must_upgrade(self):
        v100 = StrictVersion("1.0.0")
        v101 = StrictVersion("1.0.1")
        v110 = StrictVersion("1.1.0")

        self.assertTrue(util.should_upgrade(v100, v101))
        self.assertFalse(util.should_upgrade(v100, v100))
        self.assertFalse(util.must_upgrade(v100, v101))
        self.assertTrue(util.must_upgrade(v100, v110))
示例#2
0
    def test_must_upgrade(self):
        v100 = StrictVersion('1.0.0')
        v101 = StrictVersion('1.0.1')
        v110 = StrictVersion('1.1.0')

        self.assertTrue(util.should_upgrade(v100, v101))
        self.assertFalse(util.should_upgrade(v100, v100))
        self.assertFalse(util.must_upgrade(v100, v101))
        self.assertTrue(util.must_upgrade(v100, v110))
示例#3
0
    def __call__(self, request):
        request.need_setup = False
        request.need_upgrade = False
        request.kbsite = None

        installed_version = models.KegbotSite.get_installed_version()
        if installed_version is None:
            request.need_setup = True
        else:
            request.installed_version_string = str(installed_version)
            request.need_upgrade = must_upgrade(installed_version,
                                                get_version_object())

        if not request.need_setup and not request.need_upgrade:
            request.kbsite = models.KegbotSite.objects.get(name='default')
            if request.kbsite.is_setup:
                timezone.activate(request.kbsite.timezone)
                request.plugins = dict(
                    (p.get_short_name(), p)
                    for p in list(plugin_util.get_plugins().values()))
            else:
                request.need_setup = True
            request.backend = get_kegbot_backend()

        return self.get_response(request)
示例#4
0
    def __call__(self, request):
        request.need_setup = False
        request.need_upgrade = False
        request.kbsite = None

        # Skip all checks if we're in the setup wizard.
        if request.path.startswith("/setup"):
            request.session = {}
            request.session["_auth_user_backend"] = None
            return self.get_response(request)

        # First confirm the database is working.
        try:
            dbstatus.check_db_status()
        except dbstatus.DatabaseNotInitialized:
            logger.warning("Database is not initialized, sending to setup ...")
            request.need_setup = True
            request.need_upgrade = True
        except dbstatus.NeedMigration:
            logger.warning("Database needs migration, sending to setup ...")
            request.need_upgrade = True

        # If the database looks good, check the data.
        if not request.need_setup:
            installed_version = models.KegbotSite.get_installed_version()
            if installed_version is None:
                logger.warning("Kegbot not installed, sending to setup ...")
                request.need_setup = True
            else:
                request.installed_version_string = str(installed_version)
                if must_upgrade(installed_version, get_version_object()):
                    logger.warning(
                        "Kegbot upgrade required, sending to setup ...")
                    request.need_upgrade = True

        # Lastly verify the kbsite record.
        if not request.need_setup:
            request.kbsite = models.KegbotSite.objects.get(name="default")
            if not request.kbsite.is_setup:
                logger.warning("Setup incomplete, sending to setup ...")
                request.need_setup = True

        return self.get_response(request)
示例#5
0
    def process_request(self, request):
        request.need_setup = False
        request.need_upgrade = False
        request.kbsite = None

        installed_version = models.KegbotSite.get_installed_version()
        if installed_version is None:
            request.need_setup = True
        else:
            request.installed_version_string = str(installed_version)
            request.need_upgrade = must_upgrade(installed_version, get_version_object())

        if not request.need_setup and not request.need_upgrade:
            request.kbsite = models.KegbotSite.objects.get(name='default')
            if request.kbsite.is_setup:
                timezone.activate(request.kbsite.timezone)
                request.plugins = dict((p.get_short_name(), p) for p in plugin_util.get_plugins().values())
            else:
                request.need_setup = True

        request.backend = get_kegbot_backend()

        return None