Ejemplo n.º 1
0
def app_configuration():
    conf_form = AppConfigForm()
    sch_form = SchemaForm()
    config = AppConfiguration.query.first()
    schemafiles = os.listdir(app.config['SCHEMA_DIR'])

    if conf_form.update.data and conf_form.validate_on_submit():
        replication_dn = "cn={},o=gluu".format(conf_form.replication_dn.data)
        if not config:
            config = AppConfiguration()
        else:
            if config.replication_dn != replication_dn or \
                config.replication_pw != conf_form.replication_pw.data:
                flash(
                    "You changed Replication Manager information. "
                    "This will break replication. Please re-deploy all LDAP Servers.",
                    "danger")

        config.replication_dn = replication_dn
        config.replication_pw = conf_form.replication_pw.data
        config.gluu_version = conf_form.gluu_version.data
        config.use_ip = conf_form.use_ip.data
        config.nginx_host = conf_form.nginx_host.data

        db.session.add(config)
        db.session.commit()
        flash(
            "Gluu Replication Manager application configuration has been "
            "updated.", "success")
        if request.args.get('next'):
            return redirect(request.args.get('next'))

    elif sch_form.upload.data and sch_form.validate_on_submit():
        f = sch_form.schema.data
        filename = secure_filename(f.filename)
        if any(filename in s for s in schemafiles):
            name, extension = os.path.splitext(filename)
            matches = [s for s in schemafiles if name in s]
            filename = name + "_" + str(len(matches)) + extension
        f.save(os.path.join(app.config['SCHEMA_DIR'], filename))
        schemafiles.append(filename)
        flash("Schema: {0} has been uploaded sucessfully.".format(filename),
              "success")

    # request.method == GET gets processed here
    if config and config.replication_dn:
        conf_form.replication_dn.data = config.replication_dn.replace(
            "cn=", "").replace(",o=gluu", "")
        conf_form.replication_pw.data = config.replication_pw
        conf_form.nginx_host.data = config.nginx_host
        conf_form.use_ip.data = config.use_ip
        if config.gluu_version:
            conf_form.gluu_version.data = config.gluu_version

    return render_template('app_config.html',
                           cform=conf_form,
                           sform=sch_form,
                           config=config,
                           schemafiles=schemafiles,
                           next=request.args.get('next'))
Ejemplo n.º 2
0
 def _add_app_config(self):
     a = AppConfiguration()
     a.replication_dn = 'rep manager'
     a.replication_pw = 'secret'
     with self.app.app_context():
         db.session.add(a)
         db.session.commit()
Ejemplo n.º 3
0
    def test_app_configuration_returns_with_set_value(self):
        a = AppConfiguration()
        a.gluu_version = '3.1.0'
        a.replication_dn = 'replication manager'
        a.nginx_host = 'nginx.example.com'
        with self.app.app_context():
            db.session.add(a)
            db.session.commit()

        rv = self.client.get('/configuration/')
        self.assertIn('replication manager', rv.data)
        self.assertIn('nginx.example.com', rv.data)
Ejemplo n.º 4
0
def app_configuration():
    conf_form = AppConfigForm()
    sch_form = SchemaForm()
    config = AppConfiguration.query.first()
    schemafiles = os.listdir(app.config['SCHEMA_DIR'])

    if conf_form.update.data and conf_form.validate_on_submit():
        if not config:
            config = AppConfiguration()
        config.replication_dn = "cn={},o=gluu".format(
            conf_form.replication_dn.data)
        config.replication_pw = conf_form.replication_pw.data
        config.certificate_folder = conf_form.certificate_folder.data

        db.session.add(config)
        db.session.commit()
        flash(
            "Gluu Replication Manager application configuration has been "
            "updated.", "success")
        if request.args.get('next'):
            return redirect(request.args.get('next'))

    elif sch_form.upload.data and sch_form.validate_on_submit():
        f = sch_form.schema.data
        filename = secure_filename(f.filename)
        if any(filename in s for s in schemafiles):
            name, extension = os.path.splitext(filename)
            matches = [s for s in schemafiles if name in s]
            filename = name + "_" + str(len(matches)) + extension
        f.save(os.path.join(app.config['SCHEMA_DIR'], filename))
        schemafiles.append(filename)
        flash("Schema: {0} has been uploaded sucessfully.".format(filename),
              "success")

    if config and config.replication_dn:
        conf_form.replication_dn.data = config.replication_dn.replace(
            "cn=", "").replace(",o=gluu", "")
        conf_form.replication_pw.data = config.replication_pw
        conf_form.certificate_folder.data = config.certificate_folder

    return render_template('app_config.html',
                           cform=conf_form,
                           sform=sch_form,
                           config=config,
                           schemafiles=schemafiles,
                           next=request.args.get('next'))
Ejemplo n.º 5
0
def app_configuration():
    """This view provides application configuration forms"""
    
    #create forms
    conf_form = AppConfigForm()
    sch_form = SchemaForm()
    config = AppConfiguration.query.first()
    schemafiles = os.listdir(app.config['SCHEMA_DIR'])

    #If the form is sumtted and password for replication user was not
    #not supplied, make password "**dummu**", so don't change 
    #what we have before
    if request.method == 'POST' and not conf_form.replication_pw.data.strip():
        conf_form.replication_pw.data = '**dummy**'
        conf_form.replication_pw_confirm.data = '**dummy**'

    #If form is submitted and ladidated process it
    if conf_form.update.data and conf_form.validate_on_submit():
        #If prviously configured and admin changed replcation user (dn) and it's
        #password .this will break replication, check and war admin.
        replication_dn = "cn={},o=gluu".format(
                                        conf_form.replication_dn.data.strip())
        if not config:
            config = AppConfiguration()
        else:
            if config.replication_dn != replication_dn:
                flash("You changed Replication Manager dn. "
                      "This will break replication. "
                      "Please re-deploy all LDAP Servers.",
                       "danger")


        if conf_form.replication_pw.data and \
                conf_form.replication_pw_confirm.data is not '**dummy**':
            config.replication_pw = conf_form.replication_pw.data.strip()
            flash("You changed Replication Manager password. "
                    "This will break replication. "
                    "Please re-deploy all LDAP Servers.",
                    "danger")
        
        config.replication_dn = replication_dn
        config.gluu_version = conf_form.gluu_version.data.strip()
        config.use_ip = conf_form.use_ip.data
        config.nginx_host = conf_form.nginx_host.data.strip()
        
        config.replication_dn = replication_dn
        config.gluu_version = conf_form.gluu_version.data.strip()
        config.use_ip = conf_form.use_ip.data
        config.nginx_host = conf_form.nginx_host.data.strip()
        
        purge_age_day = conf_form.purge_age_day.data
        purge_age_hour = conf_form.purge_age_hour.data
        purge_age_min = conf_form.purge_age_min.data
        purge_interval_day = conf_form.purge_interval_day.data
        purge_interval_hour = conf_form.purge_interval_hour.data
        purge_interval_min = conf_form.purge_interval_min.data
        
        log_purge = "{}:{}:{} {}:{}:{}".format( 
                                            purge_age_day, purge_age_hour,
                                            purge_age_min, purge_interval_day, 
                                            purge_interval_hour, 
                                            purge_interval_min)
        config.log_purge = log_purge
        db.session.add(config)
        db.session.commit()

        flash("Gluu Replication Manager application configuration has been "
              "updated.", "success")

        if request.args.get('next'):
            return redirect(request.args.get('next'))

    elif sch_form.upload.data and sch_form.validate_on_submit():
        f = sch_form.schema.data
        filename = secure_filename(f.filename)
        if any(filename in s for s in schemafiles):
            name, extension = os.path.splitext(filename)
            matches = [s for s in schemafiles if name in s]
            filename = name + "_" + str(len(matches)) + extension
        f.save(os.path.join(app.config['SCHEMA_DIR'], filename))
        schemafiles.append(filename)
        flash("Schema: {0} has been uploaded sucessfully. "
              "Please edit slapd.conf of primary server and "
              "re-deploy all servers.".format(filename),
              "success")

    # request.method == GET gets processed here
    if config and config.replication_dn:
        conf_form.replication_dn.data = config.replication_dn.replace(
            "cn=", "").replace(",o=gluu", "")
        conf_form.replication_pw.data = config.replication_pw
        conf_form.nginx_host.data = config.nginx_host
        conf_form.use_ip.data = config.use_ip
        if config.gluu_version:
            conf_form.gluu_version.data = config.gluu_version

        if config.log_purge:
            a, i = config.log_purge.split()
            pa = a.split(':')
            pi = i.split(':')
            conf_form.purge_age_day.data = pa[0]
            conf_form.purge_age_hour.data = pa[1]
            conf_form.purge_age_min.data = pa[2]
            conf_form.purge_interval_day.data = pi[0]
            conf_form.purge_interval_hour.data = pi[1]
            conf_form.purge_interval_min.data = pi[2]


    return render_template('app_config.html', cform=conf_form, sform=sch_form,
                           config=config, schemafiles=schemafiles,
                           next=request.args.get('next'))