def cli(port, root_dir, global_dir, data_dir, config_dir, artifact_dir, backup_dir, prod, workers, gunicorn_config, log_level, device_type, auth, logging_conf): if not os.path.isdir(RUBIX_REGISTRY_DIR): os.mkdir(RUBIX_REGISTRY_DIR) migrate() setting = AppSetting(port=port, root_dir=root_dir, global_dir=global_dir, data_dir=data_dir, config_dir=config_dir, artifact_dir=artifact_dir, backup_dir=backup_dir, prod=prod, device_type=device_type, auth=auth).reload() DeviceInfoResource.store_device_info_if_does_not_exist() options = { 'bind': '%s:%s' % ('0.0.0.0', setting.port), 'workers': 1, 'loglevel': (log_level if log_level is not None else 'ERROR' if prod else 'DEBUG').lower(), 'preload_app': False, 'config': gunicorn_config, 'logconfig': logging_conf } GunicornFlaskApplication(setting, options).run()
def cli(port, global_dir, data_dir, config_dir, identifier, prod, workers, setting_file, logging_conf, gunicorn_config, log_level): setting = AppSetting(port=port, global_dir=global_dir, data_dir=data_dir, config_dir=config_dir, identifier=identifier, prod=prod).reload(setting_file) options = { 'bind': '%s:%s' % ('0.0.0.0', setting.port), # 'workers': workers if workers is not None else number_of_workers() if prod else 1, 'workers': 1, # TODO: reimplement when multi-workers fixed # 'logconfig': logging_conf, 'preload_app': False, 'config': gunicorn_config } GunicornFlaskApplication(setting, options).run()
def cli(port, global_dir, data_dir, config_dir, prod, workers, setting_file, logging_conf, gunicorn_config): setting = AppSetting(port=port, global_dir=global_dir, data_dir=data_dir, config_dir=config_dir, prod=prod).reload(setting_file) options = { 'bind': '%s:%s' % ('0.0.0.0', setting.port), 'workers': 1, 'logconfig': logging_conf, 'preload_app': False, 'config': gunicorn_config } GunicornFlaskApplication(setting, options).run()
"attempt_reconnect_secs": 5, "publish_value": true, "topic": "rubix/points/generic/cov" }, "mqtt": [ { "enabled": true, "name": "rubix_points", "host": "0.0.0.0", "port": 1883, "keepalive": 60, "qos": 1, "attempt_reconnect_on_unavailable": true, "attempt_reconnect_secs": 5, "publish_value": true, "topic": "rubix/points" } ] } ''' app_setting = AppSetting().reload(setting, is_json_str=True) print(type(app_setting.mqtt_settings)) print(type(app_setting.services)) print(type(app_setting.services.mqtt)) print('-' * 30) assert len(app_setting.mqtt_settings) == 1 print(app_setting.serialize()) print('=' * 30) print('Default') print(AppSetting().serialize())
from flask_migrate import MigrateCommand, Migrate from flask_script import Manager from src import db, AppSetting, create_app setting: AppSetting = AppSetting().reload(AppSetting.default_setting_file) app = create_app(setting) migrate = Migrate(app, db, compare_type=True, render_as_batch=True) manager = Manager(app) manager.add_command('db', MigrateCommand) if __name__ == '__main__': manager.run()
def create_internal_token(app_setting: AppSetting): internal_token = UserModel.encode_jwt_token("internal_user").get( "access_token") write_file(app_setting.internal_token_file, internal_token) app_setting.internal_token = f'Internal {internal_token}'