Skip to content

Commit 2c660cd

Browse files
author
Prasanna Santhanam
committed
Fix simulator and marvin
- Remove additional parantheses in marvin VirtualMachine.create( - Implement createEntityExtractUrl command for simulator Signed-off-by: Prasanna Santhanam <tsp@apache.org> (cherry picked from commit 908df7a)
1 parent abfc351 commit 2c660cd

1 file changed

Lines changed: 22 additions & 14 deletions

File tree

plugins/hypervisors/simulator/src/org/apache/cloudstack/storage/datastore/driver/SimulatorImageStoreDriverImpl.java

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -26,31 +26,26 @@
2626
import com.cloud.agent.api.to.NfsTO;
2727
import com.cloud.storage.Storage;
2828
import com.cloud.storage.VMTemplateStorageResourceAssoc;
29-
import com.cloud.storage.VMTemplateVO;
30-
import com.cloud.storage.VolumeVO;
3129
import com.cloud.storage.dao.VMTemplateDao;
3230
import com.cloud.storage.dao.VolumeDao;
3331
import org.apache.cloudstack.engine.subsystem.api.storage.CreateCmdResult;
3432
import org.apache.cloudstack.engine.subsystem.api.storage.DataObject;
3533
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
36-
import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine;
34+
import org.apache.cloudstack.engine.subsystem.api.storage.EndPoint;
35+
import org.apache.cloudstack.engine.subsystem.api.storage.EndPointSelector;
3736
import org.apache.cloudstack.framework.async.AsyncCallbackDispatcher;
3837
import org.apache.cloudstack.framework.async.AsyncCompletionCallback;
39-
import org.apache.cloudstack.framework.async.AsyncRpcContext;
4038
import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreDao;
41-
import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreVO;
4239
import org.apache.cloudstack.storage.datastore.db.VolumeDataStoreDao;
43-
import org.apache.cloudstack.storage.datastore.db.VolumeDataStoreVO;
4440
import org.apache.cloudstack.storage.image.BaseImageStoreDriverImpl;
4541
import org.apache.cloudstack.storage.image.store.ImageStoreImpl;
46-
import org.apache.cloudstack.storage.to.TemplateObjectTO;
47-
import org.apache.cloudstack.storage.to.VolumeObjectTO;
42+
import org.apache.log4j.Logger;
4843

4944
import javax.inject.Inject;
50-
import java.util.Date;
5145
import java.util.UUID;
5246

5347
public class SimulatorImageStoreDriverImpl extends BaseImageStoreDriverImpl {
48+
private static final Logger s_logger = Logger.getLogger(SimulatorImageStoreDriverImpl.class);
5449

5550
@Inject
5651
TemplateDataStoreDao _templateStoreDao;
@@ -60,6 +55,8 @@ public class SimulatorImageStoreDriverImpl extends BaseImageStoreDriverImpl {
6055
VolumeDao _volumeDao;
6156
@Inject
6257
VolumeDataStoreDao _volumeStoreDao;
58+
@Inject
59+
EndPointSelector _epSelector;
6360

6461
@Override
6562
public DataStoreTO getStoreTO(DataStore store) {
@@ -71,11 +68,6 @@ public DataStoreTO getStoreTO(DataStore store) {
7168
}
7269

7370

74-
75-
public String createEntityExtractUrl(DataStore store, String installPath, Storage.ImageFormat format) {
76-
return null;
77-
}
78-
7971
@Override
8072
public void createAsync(DataStore dataStore, DataObject data, AsyncCompletionCallback<CreateCmdResult> callback) {
8173
if (data.getType() == DataObjectType.TEMPLATE) {
@@ -112,4 +104,20 @@ protected void createVolume(DataObject data, AsyncCompletionCallback<CreateCmdRe
112104
caller.complete(answer);
113105
return;
114106
}
107+
108+
@Override
109+
public String createEntityExtractUrl(DataStore store, String installPath, Storage.ImageFormat format, DataObject dataObject) {
110+
EndPoint ep = _epSelector.select(store);
111+
// Create Symlink at ssvm
112+
String path = installPath;
113+
String uuid = UUID.randomUUID().toString() + "." + format.getFileExtension();
114+
// Construct actual URL locally now that the symlink exists at SSVM
115+
return generateCopyUrl(ep.getPublicAddr(), uuid);
116+
}
117+
118+
private String generateCopyUrl(String ipAddress, String uuid){
119+
String hostname = ipAddress;
120+
String scheme = "http";
121+
return scheme + "://" + hostname + "/userdata/" + uuid;
122+
}
115123
}

0 commit comments

Comments
 (0)