コード例 #1
0
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)
コード例 #2
0
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)
コード例 #3
0
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)
コード例 #4
0
ファイル: view.py プロジェクト: loomchild/jenca-puffin
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)
コード例 #5
0
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
コード例 #6
0
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)