public boolean requestCloudSicle(List<String> files, InetAddress server){
		for(String filename : files){
			this.files.put(filename.hashCode(), filename);
		}
		
		JobMetaData request = new JobMetaData();
		
		request.setFiles(this.files);
		request.setTotalFileSize(totalFileSize(files));
		request.setStarttime(System.currentTimeMillis());
		
		try {
			SocketSender sender = new SocketSender(true, server);
			
			// TODO for each VM, offer only a subset of the filemapping
			// A.K.A. make a map per VM
			FTPService.offer(this.files);
			
			System.out.println("Sending MetaData to server");
			sender.send(request);

			return FTPService.waitForOffer(this.files, 300000); //we might have to wait for a VM to start
		} catch (IOException e) {
			e.printStackTrace();
			return false;
		} catch (JSchException e) {
			e.printStackTrace();
			return false;
		}
	}