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"})
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"})
def DeleteContainer(request): id = request.GET.get('id') docker_server_url = request.session['currentip'] r = generalfunctions.funcDeleteContainer(docker_server_url, id) return JsonResponse(r)