Updated Branches:
  refs/heads/simulatorStorageFixes a6bb56b10 -> a2ec1daf8


the plugin better not touch database


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/a2ec1daf
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/a2ec1daf
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/a2ec1daf

Branch: refs/heads/simulatorStorageFixes
Commit: a2ec1daf8422d0a1c789e331a3261b05a4501060
Parents: a6bb56b
Author: Edison Su <[email protected]>
Authored: Thu Jun 27 17:23:16 2013 -0700
Committer: Edison Su <[email protected]>
Committed: Thu Jun 27 17:23:16 2013 -0700

----------------------------------------------------------------------
 .../storage/image/BaseImageStoreDriverImpl.java |  6 +-
 .../driver/SimulatorImageStoreDriverImpl.java   | 89 ++++++--------------
 2 files changed, 30 insertions(+), 65 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a2ec1daf/engine/storage/src/org/apache/cloudstack/storage/image/BaseImageStoreDriverImpl.java
----------------------------------------------------------------------
diff --git 
a/engine/storage/src/org/apache/cloudstack/storage/image/BaseImageStoreDriverImpl.java
 
b/engine/storage/src/org/apache/cloudstack/storage/image/BaseImageStoreDriverImpl.java
index 44933f7..6a140bd 100644
--- 
a/engine/storage/src/org/apache/cloudstack/storage/image/BaseImageStoreDriverImpl.java
+++ 
b/engine/storage/src/org/apache/cloudstack/storage/image/BaseImageStoreDriverImpl.java
@@ -68,7 +68,7 @@ public abstract class BaseImageStoreDriverImpl implements 
ImageStoreDriver {
         return null;
     }
 
-    class CreateContext<T> extends AsyncRpcContext<T> {
+    protected class CreateContext<T> extends AsyncRpcContext<T> {
         final DataObject data;
 
         public CreateContext(AsyncCompletionCallback<T> callback, DataObject 
data) {
@@ -92,7 +92,7 @@ public abstract class BaseImageStoreDriverImpl implements 
ImageStoreDriver {
         }
     }
 
-    protected Void 
createTemplateAsyncCallback(AsyncCallbackDispatcher<BaseImageStoreDriverImpl, 
DownloadAnswer> callback,
+    protected Void createTemplateAsyncCallback(AsyncCallbackDispatcher<? 
extends BaseImageStoreDriverImpl, DownloadAnswer> callback,
             CreateContext<CreateCmdResult> context) {
         DownloadAnswer answer = callback.getResult();
         DataObject obj = context.data;
@@ -139,7 +139,7 @@ public abstract class BaseImageStoreDriverImpl implements 
ImageStoreDriver {
         return null;
     }
 
-    protected Void 
createVolumeAsyncCallback(AsyncCallbackDispatcher<BaseImageStoreDriverImpl, 
DownloadAnswer> callback,
+    protected Void createVolumeAsyncCallback(AsyncCallbackDispatcher<? extends 
BaseImageStoreDriverImpl, DownloadAnswer> callback,
             CreateContext<CreateCmdResult> context) {
         DownloadAnswer answer = callback.getResult();
         DataObject obj = context.data;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a2ec1daf/plugins/storage/image/simulator/src/org/apache/cloudstack/storage/datastore/driver/SimulatorImageStoreDriverImpl.java
----------------------------------------------------------------------
diff --git 
a/plugins/storage/image/simulator/src/org/apache/cloudstack/storage/datastore/driver/SimulatorImageStoreDriverImpl.java
 
b/plugins/storage/image/simulator/src/org/apache/cloudstack/storage/datastore/driver/SimulatorImageStoreDriverImpl.java
index 8816fc2..fa2296b 100644
--- 
a/plugins/storage/image/simulator/src/org/apache/cloudstack/storage/datastore/driver/SimulatorImageStoreDriverImpl.java
+++ 
b/plugins/storage/image/simulator/src/org/apache/cloudstack/storage/datastore/driver/SimulatorImageStoreDriverImpl.java
@@ -48,6 +48,7 @@ import org.apache.cloudstack.storage.to.VolumeObjectTO;
 
 import javax.inject.Inject;
 import java.util.Date;
+import java.util.UUID;
 
 public class SimulatorImageStoreDriverImpl extends BaseImageStoreDriverImpl {
 
@@ -69,14 +70,7 @@ public class SimulatorImageStoreDriverImpl extends 
BaseImageStoreDriverImpl {
         return nfsTO;
     }
 
-    class CreateContext<T> extends AsyncRpcContext<T> {
-        final DataObject data;
 
-        public CreateContext(AsyncCompletionCallback<T> callback, DataObject 
data) {
-            super(callback);
-            this.data = data;
-        }
-    }
 
     public String createEntityExtractUrl(DataStore store, String installPath, 
Storage.ImageFormat format) {
         return null;
@@ -84,67 +78,38 @@ public class SimulatorImageStoreDriverImpl extends 
BaseImageStoreDriverImpl {
 
     @Override
     public void createAsync(DataObject data, 
AsyncCompletionCallback<CreateCmdResult> callback) {
-        CreateContext<CreateCmdResult> context = new 
CreateContext<CreateCmdResult>(callback, data);
-        AsyncCallbackDispatcher<SimulatorImageStoreDriverImpl, DownloadAnswer> 
caller = AsyncCallbackDispatcher
-                .create(this);
-        caller.setContext(context);
         if (data.getType() == DataObjectType.TEMPLATE) {
-            this.createTemplateAsyncCallback(caller, context);
+            this.createTemplate(data, callback);
         } else if (data.getType() == DataObjectType.VOLUME) {
-            this.createVolumeAsyncCallback(caller, context);
+            this.createVolume(data, callback);
         }
     }
 
-    protected Void 
createTemplateAsyncCallback(AsyncCallbackDispatcher<SimulatorImageStoreDriverImpl,
 DownloadAnswer> callback,
-                                               CreateContext<CreateCmdResult> 
context) {
-        DataObject obj = context.data;
-        DataStore store = obj.getDataStore();
-        TemplateObjectTO templateTO = (TemplateObjectTO)context.data.getTO();
-
-        TemplateDataStoreVO tmpltStoreVO = 
_templateStoreDao.findByStoreTemplate(store.getId(), obj.getId());
-        if (tmpltStoreVO != null) {
-            TemplateDataStoreVO updateBuilder = 
_templateStoreDao.createForUpdate();
-            updateBuilder.setDownloadPercent(100);
-            
updateBuilder.setDownloadState(VMTemplateStorageResourceAssoc.Status.DOWNLOADED);
-            updateBuilder.setLastUpdated(new Date());
-            updateBuilder.setSize(new Long(5 * 1024L * 1024L));
-            updateBuilder.setPhysicalSize(new Long(5 * 1024L * 1024L));
-            updateBuilder.setDownloadUrl(templateTO.getOrigUrl());
-            updateBuilder.setInstallPath(templateTO.getPath());
-            updateBuilder.setTemplateId(templateTO.getId());
-            updateBuilder.setState(ObjectInDataStoreStateMachine.State.Ready);
-            _templateStoreDao.update(tmpltStoreVO.getId(), updateBuilder);
-            // update size in vm_template table
-            VMTemplateVO tmlptUpdater = _templateDao.createForUpdate();
-            tmlptUpdater.setSize(new Long(5 * 1024l * 1024l));
-            _templateDao.update(obj.getId(), tmlptUpdater);
-        }
-        return null;
+    protected void createTemplate(DataObject data, 
AsyncCompletionCallback<CreateCmdResult> callback) {
+        CreateContext<CreateCmdResult> context = new 
CreateContext<CreateCmdResult>(callback, data);
+        AsyncCallbackDispatcher<SimulatorImageStoreDriverImpl, DownloadAnswer> 
caller = AsyncCallbackDispatcher
+                .create(this);
+        caller.setContext(context);
+        
caller.setCallback(caller.getTarget().createTemplateAsyncCallback(null, null));
+        String path =  UUID.randomUUID().toString();
+        Long size = new Long(5 * 1024L * 1024L);
+        DownloadAnswer answer = new DownloadAnswer(null, 100, null, 
VMTemplateStorageResourceAssoc.Status.DOWNLOADED,
+                path, path, size, size, null);
+        caller.complete(answer);
+        return;
     }
 
-    protected Void 
createVolumeAsyncCallback(AsyncCallbackDispatcher<SimulatorImageStoreDriverImpl,
 DownloadAnswer> callback,
-                                             CreateContext<CreateCmdResult> 
context) {
-        DataObject obj = context.data;
-        DataStore store = obj.getDataStore();
-        VolumeObjectTO volumeTO = (VolumeObjectTO) context.data.getTO();
-
-        VolumeDataStoreVO volStoreVO = 
_volumeStoreDao.findByStoreVolume(store.getId(), obj.getId());
-        if (volStoreVO != null) {
-            VolumeDataStoreVO updateBuilder = 
_volumeStoreDao.createForUpdate();
-            updateBuilder.setDownloadPercent(100);
-            
updateBuilder.setDownloadState(VMTemplateStorageResourceAssoc.Status.DOWNLOADED);
-            updateBuilder.setLastUpdated(new Date());
-            updateBuilder.setInstallPath(volumeTO.getPath());
-            updateBuilder.setVolumeId(volumeTO.getVolumeId());
-            updateBuilder.setSize(volumeTO.getSize());
-            updateBuilder.setPhysicalSize(volumeTO.getSize());
-            updateBuilder.setState(ObjectInDataStoreStateMachine.State.Ready);
-            _volumeStoreDao.update(volStoreVO.getId(), updateBuilder);
-            // update size in volume table
-            VolumeVO volUpdater = _volumeDao.createForUpdate();
-            volUpdater.setSize(volumeTO.getSize());
-            _volumeDao.update(obj.getId(), volUpdater);
-        }
-        return null;
+    protected void createVolume(DataObject data, 
AsyncCompletionCallback<CreateCmdResult> callback) {
+        CreateContext<CreateCmdResult> context = new 
CreateContext<CreateCmdResult>(callback, data);
+        AsyncCallbackDispatcher<SimulatorImageStoreDriverImpl, DownloadAnswer> 
caller = AsyncCallbackDispatcher
+                .create(this);
+        caller.setContext(context);
+        caller.setCallback(caller.getTarget().createVolumeAsyncCallback(null, 
null));
+        String path =  UUID.randomUUID().toString();
+        Long size = new Long(5 * 1024L * 1024L);
+        DownloadAnswer answer = new DownloadAnswer(null, 100, null, 
VMTemplateStorageResourceAssoc.Status.DOWNLOADED,
+                path, path, size, size, null);
+        caller.complete(answer);
+        return;
     }
 }
\ No newline at end of file

Reply via email to