Ejemplo n.º 1
0
def remove_deployment(server_id):
    """Initiates removal of replication deployment and back to slapd.conf

    Args:
        server_id (integer): id of server to be undeployed
    """

    thisServer = Server.query.get(server_id)
    servers = Server.query.filter(Server.id.isnot(server_id)).filter(
        Server.mmr.is_(True)).all()

    # We should check if this server is a provider for a server in cluster, so
    # iterate all servers in cluster
    for m in servers:
        ldp = LdapOLC('ldaps://{}:1636'.format(m.hostname), "cn=config",
                      m.ldap_password)
        r = None
        try:
            r = ldp.connect()
        except Exception as e:
            flash(
                "Connection to LDAPserver {0} at port 1636 was failed:"
                " {1}".format(m.hostname, e), "danger")

        if r:
            # If this server is a provider to another server, refuse to remove
            # deployment and update admin
            pd = ldp.getProviders()

            if thisServer.hostname in pd:
                flash(
                    "This server is a provider for Ldap Server {0}."
                    " Please first remove this server as provider.".format(
                        thisServer.hostname), "warning")
                return redirect(url_for('index.multi_master_replication'))

    # Start deployment removal celery task
    task = removeMultiMasterDeployement.delay(server_id)
    print "TASK STARTED", task.id
    head = "Removing Deployment"
    nextpage = "index.multi_master_replication"
    whatNext = "Multi Master Replication"
    return render_template("logger.html",
                           heading=head,
                           server=thisServer,
                           task=task,
                           nextpage=nextpage,
                           whatNext=whatNext)
Ejemplo n.º 2
0
def remove_deployment(server_id):

    #server = Server.query.get(server_id)
    #if server.mmr:
    #    remove_provider.delay(server.id)
    #return redirect(url_for('index.multi_master_replication'))

    thisServer = Server.query.get(server_id)
    servers = Server.query.filter(Server.id.isnot(server_id)).filter(
        Server.mmr.is_(True)).all()

    for m in servers:
        ldp = LdapOLC('ldaps://{}:1636'.format(m.hostname), "cn=config",
                      m.ldap_password)
        r = None
        try:
            r = ldp.connect()
        except Exception as e:
            flash(
                "Connection to LDAPserver {0} at port 1636 was failed:"
                " {1}".format(m.hostname, e), "danger")

        if r:
            pd = ldp.getProviders()

            if thisServer.hostname in pd:
                flash(
                    "This server is a provider for Ldap Server {0}."
                    " Please first remove this server as provider.".format(
                        thisServer.hostname), "warning")
                return redirect(url_for('index.multi_master_replication'))

    task = removeMultiMasterDeployement.delay(server_id)
    print "TASK STARTED", task.id
    head = "Removing Deployment"
    nextpage = "index.multi_master_replication"
    whatNext = "Multi Master Replication"
    return render_template("logger.html",
                           heading=head,
                           server=thisServer,
                           task=task,
                           nextpage=nextpage,
                           whatNext=whatNext)