diff --git a/engine/storage/src/org/apache/cloudstack/storage/LocalHostEndpoint.java b/engine/storage/src/org/apache/cloudstack/storage/LocalHostEndpoint.java index 83d34a07f4a..53803bf594c 100644 --- a/engine/storage/src/org/apache/cloudstack/storage/LocalHostEndpoint.java +++ b/engine/storage/src/org/apache/cloudstack/storage/LocalHostEndpoint.java @@ -21,24 +21,23 @@ import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; -import com.cloud.configuration.Config; -import com.cloud.utils.component.ComponentContext; +import javax.inject.Inject; import org.apache.cloudstack.engine.subsystem.api.storage.EndPoint; import org.apache.cloudstack.framework.async.AsyncCompletionCallback; import org.apache.cloudstack.framework.config.dao.ConfigurationDao; -import org.apache.cloudstack.framework.config.dao.ConfigurationDaoImpl; +import org.apache.cloudstack.managed.context.ManagedContextRunnable; import org.apache.cloudstack.storage.command.CopyCommand; import org.apache.cloudstack.storage.command.DownloadCommand; import org.apache.cloudstack.storage.resource.LocalNfsSecondaryStorageResource; import com.cloud.agent.api.Answer; import com.cloud.agent.api.Command; +import com.cloud.configuration.Config; import com.cloud.resource.ServerResource; +import com.cloud.utils.component.ComponentContext; import com.cloud.utils.net.NetUtils; -import javax.inject.Inject; - public class LocalHostEndpoint implements EndPoint { private ScheduledExecutorService executor; protected ServerResource resource; @@ -97,7 +96,7 @@ public class LocalHostEndpoint implements EndPoint { return new Answer(cmd, false, "unsupported command:" + cmd.toString()); } - private class CmdRunner implements Runnable { + private class CmdRunner extends ManagedContextRunnable { final Command cmd; final AsyncCompletionCallback callback; @@ -107,7 +106,7 @@ public class LocalHostEndpoint implements EndPoint { } @Override - public void run() { + protected void runInContext() { Answer answer = sendMessage(cmd); callback.complete(answer); } diff --git a/engine/storage/src/org/apache/cloudstack/storage/RemoteHostEndPoint.java b/engine/storage/src/org/apache/cloudstack/storage/RemoteHostEndPoint.java index 369381358a8..3cae2b95f1d 100644 --- a/engine/storage/src/org/apache/cloudstack/storage/RemoteHostEndPoint.java +++ b/engine/storage/src/org/apache/cloudstack/storage/RemoteHostEndPoint.java @@ -26,6 +26,7 @@ import javax.inject.Inject; import org.apache.cloudstack.engine.subsystem.api.storage.EndPoint; import org.apache.cloudstack.framework.async.AsyncCompletionCallback; +import org.apache.cloudstack.managed.context.ManagedContextRunnable; import org.apache.log4j.Logger; import com.cloud.agent.AgentManager; @@ -104,7 +105,7 @@ public class RemoteHostEndPoint implements EndPoint { throw new CloudRuntimeException("Failed to send command, due to Agent:" + getId() + ", " + errMsg); } - private class CmdRunner implements Listener, Runnable { + private class CmdRunner extends ManagedContextRunnable implements Listener { final AsyncCompletionCallback callback; Answer answer; @@ -162,7 +163,7 @@ public class RemoteHostEndPoint implements EndPoint { } @Override - public void run() { + protected void runInContext() { callback.complete(answer); } }