Example #1
0
def detachVolume():
	volumeid = int(request.args.get('volumeid'))
	volumeDetails=query_db('select * from volumes where volumeid=?',[volumeid]);
	if volumeDetails:
		volumeDetails=volumeDetails[0];
		status=volumeDetails[1];
		name=volumeDetails[2];
		cid=volumeDetails[3];
		size=volumeDetails[4];
		if status=="attached":
			clientDetails=query_db('select * from clients where cid=?',[cid], one=True);
			if clientDetails:
				vmid=clientDetails[1];
				mid=clientDetails[4];
				machineDetails=query_db('select * from machines where mid=?',[mid], one=True);
				targetMachine=machineDetails[1];
				retVal=col.detachVolume(targetMachine,volumeDetails,vmid)
			else:
				return jsonify({'status':0})
		else:
			return jsonify({'status':0})
		if retVal!=-1: 
       	        	db = get_db()
        		db.execute('''update volumes set status="available",vmid=0,volxml='' where volumeid=?''',[volumeid]);
			db.commit()
			return jsonify({'status':1})
		else:
			return jsonify({'status':0})
	else:
		return jsonify({'status':0})
Example #2
0
def destroyVM():
    	jsonpFunc = str(request.args.get('jsonp_callback'))
	cid = int(request.args.get('vmid'))
	clientDetails=query_db('select * from clients where cid=?',[cid]);
	destroy={'status':1}
	if clientDetails:
		clientDetails=clientDetails[0];
		machineDetails=query_db('select * from machines where mid=?',[clientDetails[4]], one=True);
		path=machineDetails[1]
		vmid=clientDetails[1]

		#detach the volume from this vm
		volumeDetails=query_db('select * from volumes where vmid=?',[cid]);
		if volumeDetails:
			for i in volumeDetails:
				retVal=col.detachVolume(path,i,vmid);
				if retVal!=-1: 
       	        			db = get_db();
        				db.execute('''update volumes set status="available",vmid=0,volxml='' where volumeid=?''',[i[0]]);
					db.commit();
				else:
					destroy={'status':0}
		print destroy['status']
		if destroy['status']!=0:
			print destroy['status']
			#destroy this vm at host path with this vmid
			retVal=col.destroyVM(path,vmid);

			if retVal!=-1: 
				instance_type=query_db('select * from vmTypes where tid=?',[clientDetails[3]], one=True);
        			cpu=instance_type[1]
        			ram=instance_type[2]
        			disk=instance_type[3]
       	        		db = get_db()
        			db.execute('''update machines set ram=?,cpu=? where mid=?''',[machineDetails[3]+ram,machineDetails[2]+cpu,machineDetails[0]]);
				db.commit()
       	
				db.execute('''delete from clients where cid=?''',[clientDetails[0]]);
				db.commit()
				destroy={'status':1}
			else:
				destroy={'status':0}
		else:
			destroy={'status':0}
	else:
		destroy={'status':0}
    	if jsonpFunc!='None':
		ast=jsonpFunc+'('+json.dumps(destroy)+')'
		print ast
		return ast
	return jsonify(destroy)
Example #3
0
def destroyVolume():
	jsonpFunc = str(request.args.get('jsonp_callback'))
	volumeid = int(request.args.get('volumeid'))
	volumeDetails=query_db('select * from volumes where volumeid=?',[volumeid]);
	destroy={'status':1}
	if volumeDetails:
		volumeDetails=volumeDetails[0];
		status=volumeDetails[1];
		name=volumeDetails[2];
		cid=volumeDetails[3];
		size=volumeDetails[4];

		if status=="attached":
			clientDetails=query_db('select * from clients where cid=?',[cid]);
			if clientDetails:
				clientDetails=clientDetails[0];
			        machineDetails=query_db('select * from machines where mid=?',[clientDetails[4]], one=True);
				path=machineDetails[1];
				vmid=clientDetails[1];

				retVal=col.detachVolume(path,volumeDetails,vmid);
				if retVal!=-1: 
       	        			db = get_db()
        				db.execute('''update volumes set status="available",vmid=0,volxml='' where volumeid=?''',[volumeid]);
					db.commit()
				else:
					destroy={'status':0}
		if destroy['status']!=0:
			# destroy volume	
			retVal=col.destroyVolume(volumeDetails)
		
			if retVal!=-1:
       	        		db = get_db()
				db.execute('''delete from volumes where volumeid=?''',[volumeid]);
				db.commit()
				destroy={'status':1}
			else:
				destroy={'status':0}
		else:
			destroy={'status':0}
	else:
		destroy={'status':0}
    	
	if jsonpFunc!='None':
		ast=jsonpFunc+'('+json.dumps(destroy)+')'
		print ast
		return ast
	return jsonify(destroy);
Example #4
0
def destroyVM():
	cid = int(request.args.get('vmid'))
	clientDetails=query_db('select * from clients where cid=?',[cid]);
	if clientDetails:
		clientDetails=clientDetails[0];
		machineDetails=query_db('select * from machines where mid=?',[clientDetails[4]], one=True);
		path=machineDetails[1]
		vmid=clientDetails[1]

		#detach the volume from this vm
		volumeDetails=query_db('select * from volumes where vmid=?',[cid]);
		if volumeDetails:
			for i in volumeDetails:
				retVal=col.detachVolume(path,i,vmid);
				if retVal!=-1: 
       	        			db = get_db();
        				db.execute('''update volumes set status="available",vmid=0,volxml='' where volumeid=?''',[i[0]]);
					db.commit();
				else:
					return jsonify({'status':0})

		#destroy this vm at host path with this vmid
		retVal=col.destroyVM(path,vmid);

		if retVal!=-1: 
			instance_type=query_db('select * from vmTypes where tid=?',[clientDetails[3]], one=True);
        		cpu=instance_type[1]
        		ram=instance_type[2]
        		disk=instance_type[3]
       	        	db = get_db()
        		db.execute('''update machines set ram=?,cpu=? where mid=?''',[machineDetails[3]+ram,machineDetails[2]+cpu,machineDetails[0]]);
			db.commit()
       
			db.execute('''delete from clients where cid=?''',[clientDetails[0]]);
			db.commit()
			return jsonify({'status':1})
		else:
			return jsonify({'status':0})
	else:
		return jsonify({'status':0})