コード例 #1
0
ファイル: __init__.py プロジェクト: Annakan/infi.app_repo
    def _register_counters(self):
        from infi.app_repo.persistent_dict import PersistentDict
        def _func(response):
            if response.status_code == 200:
                key = flask.request.path
                self.counters[key] = self.counters.get(key, 0) + 1
            return response

        self.counters = PersistentDict(self.app_repo_config.webserver_counters_filepath)
        self.counters.load()
        self.after_request(_func)
コード例 #2
0
def get_counters(config):
    from infi.app_repo.persistent_dict import PersistentDict
    ftp_counters = PersistentDict(config.ftpserver_counters_filepath)
    ftp_counters.load()
    web_counters = PersistentDict(config.webserver_counters_filepath)
    web_counters.load()
    all_counters = {}
    all_counters.update(ftp_counters)
    for key, value in web_counters.items():
        all_counters[key] = all_counters.get(key, value) + 1
    return all_counters
コード例 #3
0
    def _register_counters(self):
        from infi.app_repo.persistent_dict import PersistentDict
        def _func(response):
            if response.status_code == 200:
                key = flask.request.path
                self.counters[key] = self.counters.get(key, 0) + 1
            return response

        self.counters = PersistentDict(self.app_repo_config.webserver_counters_filepath)
        self.counters.load()
        self.after_request(_func)
コード例 #4
0
ファイル: extended.py プロジェクト: Infinidat/infi.app_repo
def get_counters(config):
    from infi.app_repo.persistent_dict import PersistentDict
    ftp_counters = PersistentDict(config.ftpserver_counters_filepath)
    ftp_counters.load()
    web_counters = PersistentDict(config.webserver_counters_filepath)
    web_counters.load()
    all_counters = {}
    all_counters.update(ftp_counters)
    for key, value in web_counters.iteritems():
        all_counters[key] = all_counters.get(key, value) + 1
    return all_counters
コード例 #5
0
class FlaskApp(flask.Flask):
    @classmethod
    def from_config(cls, app_repo_config):
        self = FlaskApp(__name__,
                        static_folder=STATIC_FOLDER,
                        template_folder=TEMPLATE_FOLDER)
        self.app_repo_config = app_repo_config
        self.config['DEBUG'] = app_repo_config.development_mode
        self._register_blueprints()
        self._register_counters()
        if app_repo_config.webserver.support_legacy_uris:
            self._register_legacy()
        mimetypes.add_type('application/json', '.json')
        return self

    def _register_blueprints(self):
        from flask_autoindex import AutoIndex

        def _directory_index():
            packages = flask.Blueprint("packages", __name__)
            AutoIndex(packages,
                      browse_root=self.app_repo_config.packages_directory)
            self.register_blueprint(packages, url_prefix="/packages")

        def _setup_script():
            self.route("/setup/<index_name>")(client_setup_script)

        def _download_script():
            self.route("/download/<index_name>")(client_download_script)
            self.route("/download/<index_name>/<package>")(
                client_download_script)
            self.route("/download/<index_name>/<package>/<version>")(
                client_download_script)

        def _install_script():
            self.route("/install/<index_name>")(client_install_script)
            self.route("/install/<index_name>/<package>")(
                client_install_script)
            self.route("/install/<index_name>/<package>/<version>")(
                client_install_script)

        def _homepage():
            self.route("/home/<index_name>")(index_home_page)
            self.route("/indexes")(indexes_tree)
            self.route("/")(default_homepage)

        _directory_index()
        _setup_script()
        _download_script()
        _install_script()
        _homepage()

    def _register_counters(self):
        from infi.app_repo.persistent_dict import PersistentDict

        def _func(response):
            if response.status_code == 200:
                key = flask.request.path
                self.counters[key] = self.counters.get(key, 0) + 1
            return response

        self.counters = PersistentDict(
            self.app_repo_config.webserver_counters_filepath)
        self.counters.load()
        self.after_request(_func)

    def _register_legacy(self):
        from flask_autoindex import AutoIndex

        def _deb():
            deb = flask.Blueprint("deb", __name__)
            AutoIndex(deb,
                      browse_root=path.join(
                          self.app_repo_config.artifacts_directory, 'deb'))
            self.register_blueprint(deb, url_prefix="/deb")

        def _ova_updates():
            ova = flask.Blueprint("ova", __name__)
            AutoIndex(ova,
                      browse_root=path.join(
                          self.app_repo_config.artifacts_directory, 'ova',
                          'updates'))
            self.register_blueprint(ova, url_prefix="/ova")

        def _rpm():
            rpm = flask.Blueprint("rpm", __name__)
            AutoIndex(rpm,
                      browse_root=path.join(
                          self.app_repo_config.artifacts_directory, 'rpm'))
            self.register_blueprint(rpm, url_prefix="/rpm")

        def _python():
            rpm = flask.Blueprint("python", __name__)
            AutoIndex(rpm,
                      browse_root=path.join(
                          self.app_repo_config.artifacts_directory, 'python'))
            self.register_blueprint(rpm, url_prefix="/python")

        def _archives():
            rpm = flask.Blueprint("archives", __name__)
            AutoIndex(rpm,
                      browse_root=path.join(
                          self.app_repo_config.artifacts_directory,
                          'archives'))
            self.register_blueprint(rpm, url_prefix="/archives")

        def _setup_script():
            self.route("/setup")(redirect_to_script(client_setup_script))

        def _gpg_key():
            self.route("/gpg.key")(gpg_key)

        _deb()
        _ova_updates()
        _rpm()
        _python()
        _archives()
        _setup_script()
        _gpg_key()
コード例 #6
0
class FlaskApp(flask.Flask):
    @classmethod
    def from_config(cls, app_repo_config):
        self = FlaskApp(__name__, static_folder=STATIC_FOLDER, template_folder=TEMPLATE_FOLDER)
        self.app_repo_config = app_repo_config
        self.config['DEBUG'] = app_repo_config.development_mode
        self._register_blueprints()
        self._register_counters()
        if app_repo_config.webserver.support_legacy_uris:
            self._register_legacy()
        mimetypes.add_type('application/json', '.json')
        return self

    def _register_blueprints(self):
        from flask.ext.autoindex import AutoIndex

        def _directory_index():
            packages = flask.Blueprint("packages", __name__)
            AutoIndex(packages, browse_root=self.app_repo_config.packages_directory)
            self.register_blueprint(packages, url_prefix="/packages")

        def _setup_script():
            self.route("/setup/<index_name>")(client_setup_script)

        def _download_script():
            self.route("/download/<index_name>")(client_download_script)
            self.route("/download/<index_name>/<package>")(client_download_script)
            self.route("/download/<index_name>/<package>/<version>")(client_download_script)

        def _install_script():
            self.route("/install/<index_name>")(client_install_script)
            self.route("/install/<index_name>/<package>")(client_install_script)
            self.route("/install/<index_name>/<package>/<version>")(client_install_script)

        def _homepage():
            self.route("/home/<index_name>")(index_home_page)
            self.route("/indexes")(indexes_tree)
            self.route("/")(default_homepage)

        _directory_index()
        _setup_script()
        _download_script()
        _install_script()
        _homepage()

    def _register_counters(self):
        from infi.app_repo.persistent_dict import PersistentDict
        def _func(response):
            if response.status_code == 200:
                key = flask.request.path
                self.counters[key] = self.counters.get(key, 0) + 1
            return response

        self.counters = PersistentDict(self.app_repo_config.webserver_counters_filepath)
        self.counters.load()
        self.after_request(_func)

    def _register_legacy(self):
        from flask.ext.autoindex import AutoIndex

        def _deb():
            deb = flask.Blueprint("deb", __name__)
            AutoIndex(deb, browse_root=path.join(self.app_repo_config.artifacts_directory, 'deb'))
            self.register_blueprint(deb, url_prefix="/deb")

        def _ova_updates():
            ova = flask.Blueprint("ova", __name__)
            AutoIndex(ova, browse_root=path.join(self.app_repo_config.artifacts_directory, 'ova', 'updates'))
            self.register_blueprint(ova, url_prefix="/ova")

        def _rpm():
            rpm = flask.Blueprint("rpm", __name__)
            AutoIndex(rpm, browse_root=path.join(self.app_repo_config.artifacts_directory, 'rpm'))
            self.register_blueprint(rpm, url_prefix="/rpm")

        def _python():
            rpm = flask.Blueprint("python", __name__)
            AutoIndex(rpm, browse_root=path.join(self.app_repo_config.artifacts_directory, 'python'))
            self.register_blueprint(rpm, url_prefix="/python")

        def _archives():
            rpm = flask.Blueprint("archives", __name__)
            AutoIndex(rpm, browse_root=path.join(self.app_repo_config.artifacts_directory, 'archives'))
            self.register_blueprint(rpm, url_prefix="/archives")

        def _setup_script():
            self.route("/setup")(redirect_to_script(client_setup_script))

        def _gpg_key():
            self.route("/gpg.key")(gpg_key)

        _deb()
        _ova_updates()
        _rpm()
        _python()
        _archives()
        _setup_script()
        _gpg_key()