def application_backup(application_id): user = current_user application = applications.get_application(application_id) backups = backup.list(user, application) form = forms.ApplicationBackupForm() form.name.choices = [(b, b) for b in backups] if form.validate_on_submit(): if form.backup.data: backup.backup(user, application) flask.flash("Backup created successfully.") return flask.redirect( flask.url_for('application', application_id=application_id)) if form.restore.data: backup_name = form.name.data backup.restore(user, application, backup_name) flask.flash("Backup {} restored successfully.".format(backup_name)) return flask.redirect( flask.url_for('application', application_id=application_id)) return flask.render_template('application_backup.html', application=application, backups=backups, form=form)
def application_settings(application_id): user = current_user application = applications.get_application(application_id) application_settings = applications.get_application_settings( user.user_id, application_id) default_domain = applications.get_default_application_domain( user, application) form = forms.ApplicationSettingsForm() if form.validate_on_submit(): domain = form.domain.data.strip() if len(domain) != 0 and domain != default_domain: application_settings.settings["domain"] = domain else: application_settings.settings.pop("domain", None) https = form.https.data if https: application_settings.settings["https"] = True else: application_settings.settings.pop("https", None) applications.update_application_settings(application_settings) flask.flash("Settings updated successfully") return flask.redirect( flask.url_for('application', application_id=application_id)) form.domain.data = applications.get_application_domain(user, application) form.https.data = applications.get_application_https(user, application) return flask.render_template('application_settings.html', application=application, application_settings=application_settings, form=form)
def application(application_id): client = docker.get_client() application = applications.get_application(application_id) if not application: flask.abort(404) application_status = None application_domain = None application_version = None application_image_version = docker.get_application_image_version(client, application) form = None if current_user.is_authenticated(): form = forms.ApplicationForm() if form.validate_on_submit(): if form.start.data: docker.create_application(client, current_user, application) if form.stop.data: docker.delete_application(client, current_user, application) return flask.redirect(flask.url_for('application', application_id=application_id)) application_status = docker.get_application_status(client, current_user, application) application_domain = applications.get_application_domain(current_user, application) application_version = docker.get_application_version(client, current_user, application) return flask.render_template('application.html', application=application, application_status=application_status, application_domain=application_domain, application_version=application_version, application_image_version=application_image_version, form=form)
def application_settings(application_id): user = current_user application = applications.get_application(application_id) application_settings = applications.get_application_settings( user.user_id, application_id) default_domain = applications.get_default_application_domain( user, application) backups = backup.list(user, application) form = forms.ApplicationSettingsForm() if form.validate_on_submit(): if form.update.data: domain = form.domain.data.strip() if len(domain) != 0 and domain != default_domain: application_settings.settings["domain"] = domain else: application_settings.settings.pop("domain", None) https = form.https.data if https: application_settings.settings["https"] = True else: application_settings.settings.pop("https", None) applications.update_application_settings(application_settings) if form.backup.data: backup.backup(user, application) flask.flash("Backup created successfully.") if form.restore.data: backup.restore(user, application, form.restore.raw_data[0]) flask.flash("Backup restored successfully.") form.domain.data = applications.get_application_domain(user, application) form.https.data = applications.get_application_https(user, application) return flask.render_template('application_settings.html', application=application, application_settings=application_settings, backups=backups, form=form)
def get_existing_application(application_id): application = applications.get_application(application_id) if not application: raise Exception("Application {} does not exist".format(application_id)) return application
def application_status(application_id): client = docker.get_client() application = applications.get_application(application_id) status = docker.get_application_status(client, current_user, application).name return flask.jsonify(status=status)