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'))
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'))