def get_app_setup(app_name): injector = get_injector() app_paths = AppPaths(app_name, injector.platform_config) app_setup = AppSetup(app_name, app_paths, injector.nginx, injector.hardware, injector.info, injector.device, injector.user_platform_config, injector.systemctl) return app_setup
def port_add(): port = request.form['port'] protocol = request.form['protocol'] mapping = get_injector().device.add_port(port, protocol) if mapping: return jsonify(success=True, message='', data=mapping.external_port), 200 else: return jsonify(success=False, message='Not adding external port'), 200
def redirect_if_not_activated(f): platform_user_config = get_injector().user_platform_config def new_func(*args, **kwargs): resp = make_response(f(*args, **kwargs)) if platform_user_config.get_domain_update_token() is None: return redirect('{0}://{1}:81'.format(request.scheme, request.host)) else: return resp return update_wrapper(new_func, f)
def _is_activated(): log = get_logger('activated_check') platform_user_config = get_injector().user_platform_config activated = False try: activated = platform_user_config.is_activated() except Exception as e: log.error('unable to verify activation status, assume it is not activated, {0}'.format(str(e))) return activated
def redirect_if_not_activated(f): platform_user_config = get_injector().user_platform_config def new_func(*args, **kwargs): resp = make_response(f(*args, **kwargs)) if not platform_user_config.is_activated(): return redirect('http://{0}:81'.format(request.host)) else: return resp return update_wrapper(new_func, f)
def install(self): linux.fix_locale() apps_root = '/snap' data_root = '/var/snap' install_dir = os.environ['SNAP'] data_dir = os.environ['SNAP_COMMON'] app_data_prefix = 'common/' templates_path = join(install_dir, 'config.templates') config_dir = join(data_dir, 'config') variables = { 'apps_root': apps_root, 'data_root': data_root, 'configs_root': data_root, 'config_root': data_dir, 'config_dir': config_dir, 'app_dir': install_dir, 'app_data': data_dir, 'app_data_prefix': app_data_prefix } gen.generate_files(templates_path, config_dir, variables) data_dirs = [ join(data_dir, 'webapps'), join(data_dir, 'log'), join(data_dir, 'nginx'), join(data_dir, 'openldap'), join(data_dir, 'openldap-data'), join(data_dir, 'certbot'), join(data_dir, 'certbot', 'www') ] for data_dir in data_dirs: fs.makepath(data_dir) injector = get_injector() hardware = injector.hardware hardware.init_disk() injector.tls.init_certificate() injector.platform_cron.remove() injector.platform_cron.create() ldap_auth = injector.ldap_auth ldap_auth.init() nginx = injector.nginx nginx.init_config()
def start(self): injector = get_injector() systemctl = injector.systemctl systemctl.add_service(APP_NAME, 'platform.cpu-frequency') systemctl.add_service(APP_NAME, 'platform.ntpdate') systemctl.add_service(APP_NAME, 'platform.uwsgi-api') systemctl.add_service(APP_NAME, 'platform.uwsgi-internal') systemctl.add_service(APP_NAME, 'platform.uwsgi-public') systemctl.add_service(APP_NAME, 'platform.nginx-api') systemctl.add_service(APP_NAME, 'platform.nginx-internal') systemctl.add_service(APP_NAME, 'platform.nginx-public') systemctl.add_service(APP_NAME, 'platform.openldap')
def redirect_if_activated(f): platform_user_config = get_injector().user_platform_config log = get_logger('redirect_if_activated') def new_func(*args, **kwargs): try: if platform_user_config.is_activated(): return redirect('/') except Exception, e: log.error( 'unable to verify activation status, assume it is not activated, {0}' .format(e.message)) return make_response(f(*args, **kwargs))
def remove(self): injector = get_injector() systemctl = injector.systemctl systemctl.remove_service('platform.openldap') systemctl.remove_service('platform.nginx-public') systemctl.remove_service('platform.nginx-internal') systemctl.remove_service('platform.nginx-api') systemctl.remove_service('platform.uwsgi-public') systemctl.remove_service('platform.uwsgi-internal') systemctl.remove_service('platform.uwsgi-api') systemctl.remove_service('platform.ntpdate') systemctl.remove_service('platform.cpu-frequency') injector.platform_cron.remove()
def init_services(self): injector = get_injector() hardware = injector.hardware hardware.init_disk() injector.tls.init_certificate() injector.platform_cron.remove() injector.platform_cron.create() ldap_auth = injector.ldap_auth ldap_auth.init() nginx = injector.nginx nginx.init_config()
def user_email(): email = get_injector().user_platform_config.get_user_email() return jsonify(success=True, message='', data=email), 200
def get_app_paths(app_name, config_path=None): config = get_injector().platform_config return AppPaths(app_name, config)
def device_domain_name(): device_domain_name = get_injector().device_info.domain() return jsonify(success=True, message='', data=device_domain_name), 200
def port_remove(): port = request.form['port'] protocol = request.form['protocol'] get_injector().device.remove_port(port, protocol) return jsonify(success=True, message='', data='OK'), 200
def pre_refresh(self): injector = get_injector() injector.platform_cron.remove()
import convertible from flask import jsonify, send_from_directory, request, redirect, send_file, Flask from flask.ext.login import login_user, logout_user, current_user, login_required from flask_login import LoginManager from syncloud_platform.auth.ldapauth import authenticate from syncloud_platform.injector import get_injector from syncloud_platform.rest.props import html_prefix, rest_prefix from syncloud_platform.rest.flask_decorators import nocache, redirect_if_not_activated from syncloud_platform.rest.model.flask_user import FlaskUser from syncloud_platform.rest.model.user import User from syncloud_platform.gaplib import linux from syncloud_platform.rest.service_exception import ServiceException injector = get_injector(environ['CONFIG_DIR']) public = injector.public device = injector.device app = Flask(__name__) app.config['SECRET_KEY'] = public.platform_config.get_web_secret_key() login_manager = LoginManager() login_manager.init_app(app) @login_manager.unauthorized_handler def _callback(): if request.is_xhr: return 'Unauthorised', 401 else: return redirect(html_prefix + '/login.html')
def get_app_setup(app_name): app_paths = get_app_paths(app_name) injector = get_injector() app_setup = AppSetup(app_name, app_paths, injector.nginx, injector.hardware, injector.info, injector.device) return app_setup
} gen.generate_files(templates_path, config_dir, variables) data_dirs = [ join(app_data, 'webapps'), join(app_data, 'log'), join(app_data, 'nginx'), join(app_data, 'openldap'), join(app_data, 'openldap-data'), join(app_data, 'certbot') ] for data_dir in data_dirs: fs.makepath(data_dir) injector = get_injector(config_dir=config_dir) hardware = injector.hardware hardware.init_disk() injector.tls.init_certificate() injector.platform_cron.remove() injector.platform_cron.create() udev = injector.udev udev.remove() udev.add() ldap_auth = injector.ldap_auth ldap_auth.init()
def service_restart(): name = request.form['name'] get_injector().systemctl.restart_service(name) return jsonify(success=True, message='', data='OK'), 200
def config_set_dkim_key(): dkim_key = request.form['dkim_key'] get_injector().user_platform_config.set_dkim_key(dkim_key) return jsonify(success=True, message='dkim_key set', data='OK'), 200
def get_app_setup(app_name): return get_injector().get_app_setup(app_name)
import requests from flask import jsonify, request, redirect, Flask, Response from flask_login import LoginManager, login_user, logout_user, current_user, login_required from syncloud_platform.auth.ldapauth import authenticate from syncloud_platform.injector import get_injector from syncloud_platform.rest.flask_decorators import nocache, redirect_if_not_activated, redirect_if_activated from syncloud_platform.rest.model.flask_user import FlaskUser from syncloud_platform.rest.model.user import User from syncloud_platform.gaplib import linux from syncloud_platform.rest.backend_proxy import backend_request from syncloud_platform.rest.service_exception import ServiceException from syncloud_platform.rest.internal_validator import InternalValidator injector = get_injector() public = injector.public internal = injector.internal device = injector.device app = Flask(__name__) app.config['SECRET_KEY'] = public.user_platform_config.get_web_secret_key() login_manager = LoginManager() login_manager.init_app(app) @login_manager.unauthorized_handler def _callback(): if request.is_xhr: return 'Unauthorised', 401 else:
def configure(self): injector = get_injector() ldap_auth = injector.ldap_auth
from syncloud_platform.injector import get_injector import argparse from syncloud_app import main def create_args_parser(): parser = argparse.ArgumentParser(description='Syncloud insider maps port on router and creates DNS records') parser.add_argument('--debug', action='store_true') subparsers = parser.add_subparsers(help='available commands', dest='action') subparsers.add_parser('sync_all', help="sync port mappings and dns records") return parser if __name__ == '__main__': parser = create_args_parser() args = parser.parse_args() device = get_injector(debug=args.debug).device main.execute(device, args)
def config_get_dkim_key(): dkim_key = get_injector().user_platform_config.get_dkim_key() return jsonify(success=True, message='dkim_key', data=dkim_key), 200
#!/opt/app/platform/python/bin/python from syncloud_platform.injector import get_injector injector = get_injector() hardware = injector.hardware hardware.check_external_disk()
def activation_status(): try: return jsonify( activated=get_injector().user_platform_config.is_activated()), 200 except Exception, e: return jsonify(activated=False), 200
def get_app_paths(app_name): return get_injector().get_app_paths(app_name)