volume upload: starting NIO server on SSVM

This commit is contained in:
Rajani Karuturi 2015-01-06 11:07:10 +05:30
parent 3e594c4e4f
commit 42fdc343f5
1 changed files with 28 additions and 1 deletions

View File

@ -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
}
}
}