Esempio n. 1
0
def RemoveSwarmNode(request):
    ip = request.GET.get('ip')
    port = request.GET.get('port')
    nodeid = request.GET.get('nodeid')
    cursor = connections['default'].cursor()


    sql = "SELECT * FROM nodes where Id=" + str(nodeid)
    cursor.execute(sql)
    results = namedtuplefetchall(cursor)
    for row in results:
        nodeip = row.ip
        nodeport = row.port
        containername = row.swarmnodename
        containerid = row.swarmcontainerid
        docker_server_url = 'http://'+row.ip+':'+port

        r = generalfunctions.funcKillContainer(docker_server_url, containerid)
        r = generalfunctions.funcDeleteContainer(docker_server_url, containerid)

        sql = "UPDATE nodes set ismaster='N',swarmmaster=0,swarmnodename='none',swarmcontainerid='none' where ip='" + nodeip + "' and port='" + nodeport + "'"
        cursor.execute(sql)

    cursor.close()
    return JsonResponse({"status": "success", "content": "Node removed from Swarm successfully"})
Esempio n. 2
0
def DeleteSwarm(request):
    swarmid = request.GET.get('id')

    cursor = connections['default'].cursor()
    sql = "SELECT * FROM swarm where Id="+swarmid

    print 'sql:' + sql
    cursor.execute(sql)
    results = namedtuplefetchall(cursor)
    for row in results:
        id = row.Id
        ip = row.master
        port = row.master_port
        name = row.name
        #remove all swarm nodes
        sql = "SELECT * FROM nodes where swarmmaster=" + str(id)
        cursor.execute(sql)
        nodeResults = namedtuplefetchall(cursor)
        nodes = []
        for rowNode in nodeResults:
            nodeid = rowNode.Id
            nodeip = rowNode.ip
            nodeport = rowNode.port
            nodename = rowNode.name
            containerid = rowNode.swarmcontainerid

            docker_server_url = 'http://' + nodeip + ':' + nodeport

            r = generalfunctions.funcKillContainer(docker_server_url, containerid)
            r = generalfunctions.funcDeleteContainer(docker_server_url, containerid)
            print "deleted the node container"
            sql = "UPDATE nodes set ismaster='N',swarmmaster=0,swarmnodename='none',swarmcontainerid='none' where ip='" + nodeip + "' and port='" + nodeport + "'"
            cursor.execute(sql)
            print "updated the db for node container deletion"

        #remove swarm master manager
        sql = "SELECT * FROM nodes where swarmnodename='" + name+"manage'"
        cursor.execute(sql)
        manageResults = namedtuplefetchall(cursor)
        for rowManage in manageResults:
            manageip = rowManage.ip
            manageport = rowManage.port
            containerid = rowManage.swarmcontainerid

            docker_server_url = 'http://' + ip + ':' + port

            r = generalfunctions.funcKillContainer(docker_server_url, containerid)
            r = generalfunctions.funcDeleteContainer(docker_server_url, containerid)
            print "deleted the master manage container"
            sql = "DELETE FROM nodes where ip='" + manageip + "' and port='" + manageport + "'"
            cursor.execute(sql)
            print "updated the db for master manage container deletion"

        sql = "SELECT * FROM nodes where ip='" + ip + "' and port='"+port+"'"
        cursor.execute(sql)
        masterResults = namedtuplefetchall(cursor)
        for master in masterResults:
            containerid = master.swarmcontainerid

            docker_server_url = 'http://' + ip + ':' + port

            r = generalfunctions.funcKillContainer(docker_server_url, containerid)
            r = generalfunctions.funcDeleteContainer(docker_server_url, containerid)
            print "deleted the master container"
            sql = "UPDATE nodes set ismaster='N',swarmmaster=0,swarmnodename='none',swarmcontainerid='none' where ip='" + ip + "' and port='" + port + "'"
            cursor.execute(sql)
            print "updated the master container in db"

        sql = "DELETE FROM swarm where Id=" + str(id)
        cursor.execute(sql)
        print "updated the swarm table for master container deletion"
        return JsonResponse({"status": "success", "content": "Swarm deleted successfully"})
Esempio n. 3
0
def KillContainer(request):
    id = request.GET.get('id')
    docker_server_url = request.session['currentip']
    r = generalfunctions.funcKillContainer(docker_server_url, id)

    return JsonResponse(r)