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 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
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
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()
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()