mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
Address various UI requirements by introducing provider constants.
This commit is contained in:
parent
4db84fb45e
commit
0d78209b73
@ -75,7 +75,7 @@ public class AddImageStoreCmd extends BaseCmd {
|
||||
|
||||
public Map<String, String> getDetails() {
|
||||
Map<String, String> detailsMap = null;
|
||||
if (!details.isEmpty()) {
|
||||
if (details != null && !details.isEmpty()) {
|
||||
detailsMap = new HashMap<String, String>();
|
||||
Collection<?> props = details.values();
|
||||
Iterator<?> iter = props.iterator();
|
||||
|
||||
@ -505,12 +505,7 @@ public class DownloadManagerImpl extends ManagerBase implements DownloadManager
|
||||
String cksum, String installPathPrefix, String user, String password, long maxTemplateSizeInBytes, Proxy proxy, ResourceType resourceType) {
|
||||
UUID uuid = UUID.randomUUID();
|
||||
String jobId = uuid.toString();
|
||||
String tmpDir = "";
|
||||
if (resourceType == ResourceType.TEMPLATE) {
|
||||
tmpDir = installPathPrefix + File.separator + accountId + File.separator + id;
|
||||
} else {
|
||||
tmpDir = installPathPrefix + File.separator + id;
|
||||
}
|
||||
String tmpDir = installPathPrefix;
|
||||
|
||||
try {
|
||||
|
||||
|
||||
@ -25,6 +25,14 @@ import java.util.Set;
|
||||
|
||||
|
||||
public interface DataStoreProvider {
|
||||
// constants for provider names
|
||||
public static final String NFS_IMAGE = "NFS";
|
||||
public static final String S3_IMAGE = "S3";
|
||||
public static final String SWIFT_IMAGE = "Swift";
|
||||
public static final String SAMPLE_IMAGE = "Sample";
|
||||
|
||||
public static final String DEFAULT_PRIMARY = "DefaultPrimary";
|
||||
|
||||
public static enum DataStoreProviderType {
|
||||
PRIMARY,
|
||||
IMAGE,
|
||||
|
||||
@ -62,6 +62,7 @@ import org.apache.log4j.Logger;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.cloud.agent.api.Answer;
|
||||
import com.cloud.agent.api.storage.DeleteTemplateCommand;
|
||||
import com.cloud.agent.api.storage.ListTemplateAnswer;
|
||||
import com.cloud.agent.api.storage.ListTemplateCommand;
|
||||
import com.cloud.alert.AlertManager;
|
||||
@ -381,9 +382,19 @@ public class TemplateServiceImpl implements TemplateService {
|
||||
List<UserVmVO> userVmUsingIso = _userVmDao.listByIsoId(tInfo.getId());
|
||||
//check if there is any Vm using this ISO.
|
||||
if (userVmUsingIso == null || userVmUsingIso.isEmpty()) {
|
||||
deleteTemplateAsync(_templateFactory.getTemplate(tInfo.getId(), store));
|
||||
String description = "Deleted template " + tInfo.getTemplateName() + " on secondary storage " + storeId;
|
||||
s_logger.info(description);
|
||||
//TODO: we cannot directly call deleteTemplateSync here to reuse delete logic since in this case, our db does not have this template at all.
|
||||
VMTemplateVO template = _templateDao.findById(tInfo.getId());
|
||||
DeleteTemplateCommand dtCommand = new DeleteTemplateCommand(store.getTO(), tInfo.getInstallPath(), template.getId(), template.getAccountId());
|
||||
EndPoint ep = _epSelector.select(store);
|
||||
Answer answer = ep.sendMessage(dtCommand);
|
||||
if (answer == null || !answer.getResult()) {
|
||||
s_logger.info("Failed to deleted template at store: " + store.getName());
|
||||
|
||||
} else {
|
||||
String description = "Deleted template " + tInfo.getTemplateName() + " on secondary storage " + storeId;
|
||||
s_logger.info(description);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -31,9 +31,7 @@ import org.apache.cloudstack.api.response.StorageProviderResponse;
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreProvider;
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreProvider.DataStoreProviderType;
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreProviderManager;
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.ImageStoreProvider;
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStoreDriver;
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStoreProvider;
|
||||
import org.apache.cloudstack.storage.datastore.PrimaryDataStoreProviderManager;
|
||||
import org.apache.cloudstack.storage.image.ImageStoreDriver;
|
||||
import org.apache.cloudstack.storage.image.datastore.ImageStoreProviderManager;
|
||||
@ -90,7 +88,7 @@ public class DataStoreProviderManagerImpl extends ManagerBase implements DataSto
|
||||
}
|
||||
return providers;
|
||||
}
|
||||
|
||||
|
||||
public List<StorageProviderResponse> getCacheDataStoreProviders() {
|
||||
List<StorageProviderResponse> providers = new ArrayList<StorageProviderResponse>();
|
||||
for (DataStoreProvider provider : providerMap.values()) {
|
||||
@ -147,18 +145,18 @@ public class DataStoreProviderManagerImpl extends ManagerBase implements DataSto
|
||||
|
||||
@Override
|
||||
public DataStoreProvider getDefaultPrimaryDataStoreProvider() {
|
||||
return this.getDataStoreProvider("cloudstack primary data store provider");
|
||||
return this.getDataStoreProvider(DataStoreProvider.DEFAULT_PRIMARY);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public DataStoreProvider getDefaultImageDataStoreProvider() {
|
||||
return this.getDataStoreProvider("CloudStack ImageStore Provider");
|
||||
return this.getDataStoreProvider(DataStoreProvider.NFS_IMAGE);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public DataStoreProvider getDefaultCacheDataStoreProvider() {
|
||||
return this.getDataStoreProvider("cloudstack image store provider");
|
||||
return this.getDataStoreProvider(DataStoreProvider.NFS_IMAGE);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -25,6 +25,7 @@ import javax.inject.Inject;
|
||||
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreDriver;
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreLifeCycle;
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreProvider;
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.HypervisorHostListener;
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.ImageStoreProvider;
|
||||
import org.apache.cloudstack.storage.datastore.driver.CloudStackImageStoreDriverImpl;
|
||||
@ -41,7 +42,7 @@ import com.cloud.utils.component.ComponentContext;
|
||||
@Component
|
||||
public class CloudStackImageStoreProviderImpl implements ImageStoreProvider {
|
||||
|
||||
private final String providerName = "CloudStack ImageStore Provider";
|
||||
private final String providerName = DataStoreProvider.NFS_IMAGE;
|
||||
protected ImageStoreLifeCycle lifeCycle;
|
||||
protected ImageStoreDriver driver;
|
||||
@Inject
|
||||
|
||||
@ -28,6 +28,7 @@ import javax.inject.Inject;
|
||||
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreDriver;
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreLifeCycle;
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreProvider;
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.HypervisorHostListener;
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.ImageStoreProvider;
|
||||
import org.apache.cloudstack.storage.datastore.driver.S3ImageStoreDriverImpl;
|
||||
@ -44,7 +45,7 @@ import com.cloud.utils.component.ComponentContext;
|
||||
@Component
|
||||
public class S3ImageStoreProviderImpl implements ImageStoreProvider {
|
||||
|
||||
private final String providerName = "S3";
|
||||
private final String providerName = DataStoreProvider.S3_IMAGE;
|
||||
protected ImageStoreLifeCycle lifeCycle;
|
||||
protected ImageStoreDriver driver;
|
||||
@Inject
|
||||
|
||||
@ -26,6 +26,7 @@ import javax.inject.Inject;
|
||||
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreDriver;
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreLifeCycle;
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreProvider;
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.HypervisorHostListener;
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.ImageStoreProvider;
|
||||
import org.apache.cloudstack.storage.datastore.driver.SampleImageStoreDriverImpl;
|
||||
@ -38,7 +39,7 @@ import com.cloud.storage.ScopeType;
|
||||
import com.cloud.utils.component.ComponentContext;
|
||||
|
||||
public class SampleImageStoreProviderImpl implements ImageStoreProvider {
|
||||
private final String name = "sample image data store provider";
|
||||
private final String name = DataStoreProvider.SAMPLE_IMAGE;
|
||||
protected ImageStoreLifeCycle lifeCycle;
|
||||
protected ImageStoreDriver driver;
|
||||
@Inject
|
||||
|
||||
@ -18,16 +18,14 @@
|
||||
*/
|
||||
package org.apache.cloudstack.storage.datastore.provider;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreDriver;
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreLifeCycle;
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreProvider;
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.HypervisorHostListener;
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.ImageStoreProvider;
|
||||
import org.apache.cloudstack.storage.datastore.driver.SwiftImageStoreDriverImpl;
|
||||
@ -44,7 +42,7 @@ import com.cloud.utils.component.ComponentContext;
|
||||
@Component
|
||||
public class SwiftImageStoreProviderImpl implements ImageStoreProvider {
|
||||
|
||||
private final String providerName = "Swift";
|
||||
private final String providerName = DataStoreProvider.SWIFT_IMAGE;
|
||||
protected ImageStoreLifeCycle lifeCycle;
|
||||
protected ImageStoreDriver driver;
|
||||
@Inject
|
||||
|
||||
@ -23,6 +23,7 @@ import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreLifeCycle;
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreProvider;
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.HypervisorHostListener;
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStoreDriver;
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStoreProvider;
|
||||
@ -34,7 +35,7 @@ import com.cloud.utils.component.ComponentContext;
|
||||
public class CloudStackPrimaryDataStoreProviderImpl implements
|
||||
PrimaryDataStoreProvider {
|
||||
|
||||
private final String providerName = "cloudstack primary data store provider";
|
||||
private final String providerName = DataStoreProvider.DEFAULT_PRIMARY;
|
||||
protected PrimaryDataStoreDriver driver;
|
||||
protected HypervisorHostListener listener;
|
||||
protected DataStoreLifeCycle lifecyle;
|
||||
|
||||
@ -175,7 +175,7 @@ public class HypervisorTemplateAdapter extends TemplateAdapterBase implements Te
|
||||
TemplateInfo tmpl = this.imageFactory.getTemplate(template.getId(), imageStore);
|
||||
CreateTemplateContext<TemplateApiResult> context = new CreateTemplateContext<TemplateApiResult>(null, tmpl);
|
||||
AsyncCallbackDispatcher<HypervisorTemplateAdapter, TemplateApiResult> caller = AsyncCallbackDispatcher.create(this);
|
||||
caller.setCallback(this.createTemplateAsyncCallBack(null, null));
|
||||
caller.setCallback(caller.getTarget().createTemplateAsyncCallBack(null, null));
|
||||
caller.setContext(context);
|
||||
this.imageService
|
||||
.createTemplateAsync(tmpl, imageStore, caller);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user