mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
Clean up DownloadMonitor and TemplateManagerImpl.
This commit is contained in:
parent
4029e7af44
commit
de27f0ff53
@ -21,10 +21,7 @@ import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
|
||||
import org.apache.cloudstack.framework.async.AsyncCompletionCallback;
|
||||
|
||||
import com.cloud.agent.api.storage.DownloadAnswer;
|
||||
import com.cloud.exception.StorageUnavailableException;
|
||||
import com.cloud.storage.Storage.ImageFormat;
|
||||
import com.cloud.storage.VMTemplateVO;
|
||||
import com.cloud.storage.VolumeVO;
|
||||
import com.cloud.utils.component.Manager;
|
||||
|
||||
/**
|
||||
@ -33,16 +30,9 @@ import com.cloud.utils.component.Manager;
|
||||
*/
|
||||
public interface DownloadMonitor extends Manager{
|
||||
|
||||
// when ssvm is not available yet
|
||||
public void downloadBootstrapSysTemplateToStorage(VMTemplateVO template, DataStore store, AsyncCompletionCallback<DownloadAnswer> callback);
|
||||
|
||||
public void downloadTemplateToStorage(DataObject template, DataStore store, AsyncCompletionCallback<DownloadAnswer> callback);
|
||||
|
||||
//public void cancelAllDownloads(Long templateId);
|
||||
|
||||
//public boolean copyTemplate(VMTemplateVO template, DataStore sourceStore, DataStore Store)
|
||||
// throws StorageUnavailableException;
|
||||
|
||||
public void downloadVolumeToStorage(DataObject volume, DataStore store, String url, String checkSum, ImageFormat format, AsyncCompletionCallback<DownloadAnswer> callback);
|
||||
|
||||
}
|
||||
@ -51,7 +51,6 @@ import com.cloud.agent.api.storage.DownloadCommand.Proxy;
|
||||
import com.cloud.agent.api.storage.DownloadCommand.ResourceType;
|
||||
import com.cloud.agent.api.storage.DownloadProgressCommand;
|
||||
import com.cloud.agent.api.storage.DownloadProgressCommand.RequestType;
|
||||
import com.cloud.agent.api.storage.DownloadSystemTemplateCommand;
|
||||
import com.cloud.agent.manager.Commands;
|
||||
import com.cloud.alert.AlertManager;
|
||||
import com.cloud.configuration.Config;
|
||||
@ -68,7 +67,6 @@ import com.cloud.storage.Volume;
|
||||
import com.cloud.storage.VolumeHostVO;
|
||||
import com.cloud.storage.dao.VMTemplateDao;
|
||||
import com.cloud.storage.dao.VolumeDao;
|
||||
import com.cloud.storage.dao.VolumeHostDao;
|
||||
import com.cloud.storage.secondary.SecondaryStorageVmManager;
|
||||
import com.cloud.storage.swift.SwiftManager;
|
||||
import com.cloud.storage.template.TemplateConstants;
|
||||
@ -378,68 +376,6 @@ public class DownloadMonitorImpl extends ManagerBase implements DownloadMonitor
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void downloadBootstrapSysTemplateToStorage(VMTemplateVO template, DataStore store, AsyncCompletionCallback<DownloadAnswer> callback) {
|
||||
boolean downloadJobExists = false;
|
||||
TemplateDataStoreVO vmTemplateStore = null;
|
||||
|
||||
vmTemplateStore = _vmTemplateStoreDao.findByStoreTemplate(store.getId(), template.getId());
|
||||
if (vmTemplateStore == null) {
|
||||
// This method can be invoked other places, for example,
|
||||
// handleTemplateSync, in that case, vmTemplateStore may be null
|
||||
vmTemplateStore = new TemplateDataStoreVO(store.getId(), template.getId(), new Date(), 0,
|
||||
VMTemplateStorageResourceAssoc.Status.NOT_DOWNLOADED, null, null, "jobid0000", null, template.getUrl());
|
||||
_vmTemplateStoreDao.persist(vmTemplateStore);
|
||||
} else if ((vmTemplateStore.getJobId() != null) && (vmTemplateStore.getJobId().length() > 2)) {
|
||||
downloadJobExists = true;
|
||||
}
|
||||
|
||||
Long maxTemplateSizeInBytes = getMaxTemplateSizeInBytes();
|
||||
String secUrl = store.getUri();
|
||||
if (vmTemplateStore != null) {
|
||||
start();
|
||||
DownloadSystemTemplateCommand dcmd = new DownloadSystemTemplateCommand(store.getTO(), secUrl, template, maxTemplateSizeInBytes);
|
||||
dcmd.setProxy(getHttpProxy());
|
||||
// TODO: handle S3 download progress
|
||||
// if (downloadJobExists) {
|
||||
// dcmd = new DownloadProgressCommand(dcmd,
|
||||
// vmTemplateStore.getJobId(), RequestType.GET_OR_RESTART);
|
||||
// }
|
||||
if (vmTemplateStore.isCopy()) {
|
||||
dcmd.setCreds(TemplateConstants.DEFAULT_HTTP_AUTH_USER, _copyAuthPasswd);
|
||||
}
|
||||
EndPoint endPoint = _epSelector.select(this.tmplFactory.getTemplate(template.getId(), store));
|
||||
if (endPoint == null) {
|
||||
s_logger.warn("There is no endpoint to send download template command");
|
||||
return;
|
||||
}
|
||||
// TODO: wait for Edison's code to pass a listener to
|
||||
// LocalHostEndPoint
|
||||
/*
|
||||
DownloadListener dl = new DownloadListener(ssAhost, store, template, _timer, _vmTemplateStoreDao, vmTemplateStore.getId(), this, dcmd,
|
||||
_templateDao, _resourceLimitMgr, _alertMgr, _accountMgr, callback);
|
||||
if (downloadJobExists) {
|
||||
// due to handling existing download job issues, we still keep
|
||||
// downloadState in template_store_ref to avoid big change in
|
||||
// DownloadListener to use
|
||||
// new ObjectInDataStore.State transition. TODO: fix this later
|
||||
// to be able to remove downloadState from template_store_ref.
|
||||
dl.setCurrState(vmTemplateStore.getDownloadState());
|
||||
}
|
||||
DownloadListener old = null;
|
||||
synchronized (_listenerTemplateMap) {
|
||||
old = _listenerTemplateMap.put(vmTemplateStore, dl);
|
||||
}
|
||||
if (old != null) {
|
||||
old.abandon();
|
||||
}
|
||||
*/
|
||||
// endPoint.sendMessageAsync(dcmd, callback);
|
||||
endPoint.sendMessage(dcmd); // wait for Edison's callback code
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void downloadTemplateToStorage(DataObject template, DataStore store, AsyncCompletionCallback<DownloadAnswer> callback) {
|
||||
long templateId = template.getId();
|
||||
|
||||
@ -22,10 +22,8 @@ import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import java.net.UnknownHostException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
@ -81,10 +79,7 @@ import com.cloud.agent.AgentManager;
|
||||
import com.cloud.agent.api.Answer;
|
||||
import com.cloud.agent.api.AttachIsoCommand;
|
||||
import com.cloud.agent.api.ComputeChecksumCommand;
|
||||
import com.cloud.agent.api.uploadTemplateToSwiftFromSecondaryStorageCommand;
|
||||
import com.cloud.agent.api.storage.DestroyCommand;
|
||||
import com.cloud.agent.api.to.SwiftTO;
|
||||
|
||||
import com.cloud.api.ApiDBUtils;
|
||||
import com.cloud.async.AsyncJobManager;
|
||||
import com.cloud.async.AsyncJobVO;
|
||||
@ -138,9 +133,7 @@ import com.cloud.storage.VMTemplateHostVO;
|
||||
import com.cloud.storage.VMTemplateStoragePoolVO;
|
||||
import com.cloud.storage.VMTemplateStorageResourceAssoc;
|
||||
import com.cloud.storage.VMTemplateStorageResourceAssoc.Status;
|
||||
import com.cloud.storage.VMTemplateSwiftVO;
|
||||
import com.cloud.storage.VMTemplateVO;
|
||||
import com.cloud.storage.VMTemplateZoneVO;
|
||||
import com.cloud.storage.Volume;
|
||||
import com.cloud.storage.VolumeManager;
|
||||
import com.cloud.storage.VolumeVO;
|
||||
@ -157,9 +150,7 @@ import com.cloud.storage.dao.VMTemplateSwiftDao;
|
||||
import com.cloud.storage.dao.VMTemplateZoneDao;
|
||||
import com.cloud.storage.dao.VolumeDao;
|
||||
import com.cloud.storage.download.DownloadMonitor;
|
||||
import com.cloud.storage.s3.S3Manager;
|
||||
import com.cloud.storage.secondary.SecondaryStorageVmManager;
|
||||
import com.cloud.storage.swift.SwiftManager;
|
||||
import com.cloud.storage.upload.UploadMonitor;
|
||||
import com.cloud.template.TemplateAdapter.TemplateAdapterType;
|
||||
|
||||
@ -216,10 +207,6 @@ public class TemplateManagerImpl extends ManagerBase implements TemplateManager,
|
||||
@Inject VolumeDao _volumeDao;
|
||||
@Inject SnapshotDao _snapshotDao;
|
||||
@Inject
|
||||
SwiftManager _swiftMgr;
|
||||
@Inject
|
||||
S3Manager _s3Mgr;
|
||||
@Inject
|
||||
VMTemplateSwiftDao _tmpltSwiftDao;
|
||||
@Inject
|
||||
VMTemplateS3Dao _vmS3TemplateDao;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user