From 42fdc343f593acc1998e44c65dc650cb0855f9c7 Mon Sep 17 00:00:00 2001 From: Rajani Karuturi Date: Tue, 6 Jan 2015 11:07:10 +0530 Subject: [PATCH] volume upload: starting NIO server on SSVM --- .../resource/NfsSecondaryStorageResource.java | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/services/secondary-storage/server/src/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java b/services/secondary-storage/server/src/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java index 54c36303342..3e6ae3fa1cc 100755 --- a/services/secondary-storage/server/src/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java +++ b/services/secondary-storage/server/src/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java @@ -46,6 +46,10 @@ import java.util.UUID; import javax.naming.ConfigurationException; +import com.cloud.utils.nio.HandlerFactory; +import com.cloud.utils.nio.Link; +import com.cloud.utils.nio.NioServer; +import com.cloud.utils.nio.Task; import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.io.FileUtils; import org.apache.commons.lang.StringUtils; @@ -137,7 +141,7 @@ import com.cloud.utils.script.OutputInterpreter; import com.cloud.utils.script.Script; import com.cloud.vm.SecondaryStorageVm; -public class NfsSecondaryStorageResource extends ServerResourceBase implements SecondaryStorageResource { +public class NfsSecondaryStorageResource extends ServerResourceBase implements SecondaryStorageResource, HandlerFactory { private static final Logger s_logger = Logger.getLogger(NfsSecondaryStorageResource.class); @@ -1293,9 +1297,17 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S } savePostUploadPSK(cmd.getPostUploadKey()); + startNioServerForPostUpload(); return answer; } + private void startNioServerForPostUpload() { + //TODO: make port configurable. + NioServer server = new NioServer("PostUploadServer", 8210, 15, this); + s_logger.info("Listening on 8210 with 15 workers"); + server.start(); + } + private void savePostUploadPSK(String psk) { try { FileUtils.writeStringToFile(new File("/etc/cloudstack/agent/ms-psk"),psk, "utf-8"); @@ -2492,4 +2504,19 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S super.fillNetworkInformation(cmd); } } + + @Override + public Task create(Task.Type type, Link link, byte[] data) { + return new PostUploadHandler(type, link, data); + } + + private class PostUploadHandler extends Task { + public PostUploadHandler(Task.Type type, Link link, byte[] data) { + super(type, link, data); + } + @Override + protected void doTask(Task task) throws Exception { + // TODO Auto-generated method stub + } + } }