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() { |      public Map<String, String> getDetails() { | ||||||
|          Map<String, String> detailsMap = null; |          Map<String, String> detailsMap = null; | ||||||
|          if (!details.isEmpty()) { |          if (details != null && !details.isEmpty()) { | ||||||
|              detailsMap = new HashMap<String, String>(); |              detailsMap = new HashMap<String, String>(); | ||||||
|              Collection<?> props = details.values(); |              Collection<?> props = details.values(); | ||||||
|              Iterator<?> iter = props.iterator(); |              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) { |             String cksum, String installPathPrefix, String user, String password, long maxTemplateSizeInBytes, Proxy proxy, ResourceType resourceType) { | ||||||
|         UUID uuid = UUID.randomUUID(); |         UUID uuid = UUID.randomUUID(); | ||||||
|         String jobId = uuid.toString(); |         String jobId = uuid.toString(); | ||||||
|         String tmpDir = ""; |         String tmpDir = installPathPrefix; | ||||||
|         if (resourceType == ResourceType.TEMPLATE) { |  | ||||||
|             tmpDir = installPathPrefix + File.separator + accountId + File.separator + id; |  | ||||||
|         } else { |  | ||||||
|             tmpDir = installPathPrefix + File.separator + id; |  | ||||||
|         } |  | ||||||
| 
 | 
 | ||||||
|         try { |         try { | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -25,6 +25,14 @@ import java.util.Set; | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| public interface DataStoreProvider { | 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 { |     public static enum DataStoreProviderType { | ||||||
|         PRIMARY, |         PRIMARY, | ||||||
|         IMAGE, |         IMAGE, | ||||||
|  | |||||||
| @ -62,6 +62,7 @@ import org.apache.log4j.Logger; | |||||||
| import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||||
| 
 | 
 | ||||||
| import com.cloud.agent.api.Answer; | 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.ListTemplateAnswer; | ||||||
| import com.cloud.agent.api.storage.ListTemplateCommand; | import com.cloud.agent.api.storage.ListTemplateCommand; | ||||||
| import com.cloud.alert.AlertManager; | import com.cloud.alert.AlertManager; | ||||||
| @ -381,9 +382,19 @@ public class TemplateServiceImpl implements TemplateService { | |||||||
|             List<UserVmVO> userVmUsingIso = _userVmDao.listByIsoId(tInfo.getId()); |             List<UserVmVO> userVmUsingIso = _userVmDao.listByIsoId(tInfo.getId()); | ||||||
|             //check if there is any Vm using this ISO. |             //check if there is any Vm using this ISO. | ||||||
|             if (userVmUsingIso == null || userVmUsingIso.isEmpty()) { |             if (userVmUsingIso == null || userVmUsingIso.isEmpty()) { | ||||||
|                 deleteTemplateAsync(_templateFactory.getTemplate(tInfo.getId(), store)); |                 //TODO: we cannot directly call deleteTemplateSync here to reuse delete logic since in this case, our db does not have this template at all. | ||||||
|                 String description = "Deleted template " + tInfo.getTemplateName() + " on secondary storage " + storeId; |                 VMTemplateVO template = _templateDao.findById(tInfo.getId()); | ||||||
|                 s_logger.info(description); |                 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; | ||||||
| import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreProvider.DataStoreProviderType; | 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.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.PrimaryDataStoreDriver; | ||||||
| import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStoreProvider; |  | ||||||
| import org.apache.cloudstack.storage.datastore.PrimaryDataStoreProviderManager; | import org.apache.cloudstack.storage.datastore.PrimaryDataStoreProviderManager; | ||||||
| import org.apache.cloudstack.storage.image.ImageStoreDriver; | import org.apache.cloudstack.storage.image.ImageStoreDriver; | ||||||
| import org.apache.cloudstack.storage.image.datastore.ImageStoreProviderManager; | import org.apache.cloudstack.storage.image.datastore.ImageStoreProviderManager; | ||||||
| @ -147,18 +145,18 @@ public class DataStoreProviderManagerImpl extends ManagerBase implements DataSto | |||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|     public DataStoreProvider getDefaultPrimaryDataStoreProvider() { |     public DataStoreProvider getDefaultPrimaryDataStoreProvider() { | ||||||
|         return this.getDataStoreProvider("cloudstack primary data store provider"); |         return this.getDataStoreProvider(DataStoreProvider.DEFAULT_PRIMARY); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|     public DataStoreProvider getDefaultImageDataStoreProvider() { |     public DataStoreProvider getDefaultImageDataStoreProvider() { | ||||||
|         return this.getDataStoreProvider("CloudStack ImageStore Provider"); |         return this.getDataStoreProvider(DataStoreProvider.NFS_IMAGE); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|     public DataStoreProvider getDefaultCacheDataStoreProvider() { |     public DataStoreProvider getDefaultCacheDataStoreProvider() { | ||||||
|         return this.getDataStoreProvider("cloudstack image store provider"); |         return this.getDataStoreProvider(DataStoreProvider.NFS_IMAGE); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     @Override |     @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.DataStoreDriver; | ||||||
| import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreLifeCycle; | 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.HypervisorHostListener; | ||||||
| import org.apache.cloudstack.engine.subsystem.api.storage.ImageStoreProvider; | import org.apache.cloudstack.engine.subsystem.api.storage.ImageStoreProvider; | ||||||
| import org.apache.cloudstack.storage.datastore.driver.CloudStackImageStoreDriverImpl; | import org.apache.cloudstack.storage.datastore.driver.CloudStackImageStoreDriverImpl; | ||||||
| @ -41,7 +42,7 @@ import com.cloud.utils.component.ComponentContext; | |||||||
| @Component | @Component | ||||||
| public class CloudStackImageStoreProviderImpl implements ImageStoreProvider { | public class CloudStackImageStoreProviderImpl implements ImageStoreProvider { | ||||||
| 
 | 
 | ||||||
|     private final String providerName = "CloudStack ImageStore Provider"; |     private final String providerName = DataStoreProvider.NFS_IMAGE; | ||||||
|     protected ImageStoreLifeCycle lifeCycle; |     protected ImageStoreLifeCycle lifeCycle; | ||||||
|     protected ImageStoreDriver driver; |     protected ImageStoreDriver driver; | ||||||
|     @Inject |     @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.DataStoreDriver; | ||||||
| import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreLifeCycle; | 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.HypervisorHostListener; | ||||||
| import org.apache.cloudstack.engine.subsystem.api.storage.ImageStoreProvider; | import org.apache.cloudstack.engine.subsystem.api.storage.ImageStoreProvider; | ||||||
| import org.apache.cloudstack.storage.datastore.driver.S3ImageStoreDriverImpl; | import org.apache.cloudstack.storage.datastore.driver.S3ImageStoreDriverImpl; | ||||||
| @ -44,7 +45,7 @@ import com.cloud.utils.component.ComponentContext; | |||||||
| @Component | @Component | ||||||
| public class S3ImageStoreProviderImpl implements ImageStoreProvider { | public class S3ImageStoreProviderImpl implements ImageStoreProvider { | ||||||
| 
 | 
 | ||||||
|     private final String providerName = "S3"; |     private final String providerName = DataStoreProvider.S3_IMAGE; | ||||||
|     protected ImageStoreLifeCycle lifeCycle; |     protected ImageStoreLifeCycle lifeCycle; | ||||||
|     protected ImageStoreDriver driver; |     protected ImageStoreDriver driver; | ||||||
|     @Inject |     @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.DataStoreDriver; | ||||||
| import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreLifeCycle; | 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.HypervisorHostListener; | ||||||
| import org.apache.cloudstack.engine.subsystem.api.storage.ImageStoreProvider; | import org.apache.cloudstack.engine.subsystem.api.storage.ImageStoreProvider; | ||||||
| import org.apache.cloudstack.storage.datastore.driver.SampleImageStoreDriverImpl; | import org.apache.cloudstack.storage.datastore.driver.SampleImageStoreDriverImpl; | ||||||
| @ -38,7 +39,7 @@ import com.cloud.storage.ScopeType; | |||||||
| import com.cloud.utils.component.ComponentContext; | import com.cloud.utils.component.ComponentContext; | ||||||
| 
 | 
 | ||||||
| public class SampleImageStoreProviderImpl implements ImageStoreProvider { | 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 ImageStoreLifeCycle lifeCycle; | ||||||
|     protected ImageStoreDriver driver; |     protected ImageStoreDriver driver; | ||||||
|     @Inject |     @Inject | ||||||
|  | |||||||
| @ -18,16 +18,14 @@ | |||||||
|  */ |  */ | ||||||
| package org.apache.cloudstack.storage.datastore.provider; | package org.apache.cloudstack.storage.datastore.provider; | ||||||
| 
 | 
 | ||||||
| import java.util.HashMap; |  | ||||||
| import java.util.HashSet; | import java.util.HashSet; | ||||||
| import java.util.Map; | import java.util.Map; | ||||||
| import java.util.Set; | import java.util.Set; | ||||||
| import java.util.UUID; |  | ||||||
| 
 |  | ||||||
| import javax.inject.Inject; | import javax.inject.Inject; | ||||||
| 
 | 
 | ||||||
| import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreDriver; | 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.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.HypervisorHostListener; | ||||||
| import org.apache.cloudstack.engine.subsystem.api.storage.ImageStoreProvider; | import org.apache.cloudstack.engine.subsystem.api.storage.ImageStoreProvider; | ||||||
| import org.apache.cloudstack.storage.datastore.driver.SwiftImageStoreDriverImpl; | import org.apache.cloudstack.storage.datastore.driver.SwiftImageStoreDriverImpl; | ||||||
| @ -44,7 +42,7 @@ import com.cloud.utils.component.ComponentContext; | |||||||
| @Component | @Component | ||||||
| public class SwiftImageStoreProviderImpl implements ImageStoreProvider { | public class SwiftImageStoreProviderImpl implements ImageStoreProvider { | ||||||
| 
 | 
 | ||||||
|     private final String providerName = "Swift"; |     private final String providerName = DataStoreProvider.SWIFT_IMAGE; | ||||||
|     protected ImageStoreLifeCycle lifeCycle; |     protected ImageStoreLifeCycle lifeCycle; | ||||||
|     protected ImageStoreDriver driver; |     protected ImageStoreDriver driver; | ||||||
|     @Inject |     @Inject | ||||||
|  | |||||||
| @ -23,6 +23,7 @@ import java.util.Map; | |||||||
| import java.util.Set; | import java.util.Set; | ||||||
| 
 | 
 | ||||||
| import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreLifeCycle; | 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.HypervisorHostListener; | ||||||
| import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStoreDriver; | import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStoreDriver; | ||||||
| import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStoreProvider; | import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStoreProvider; | ||||||
| @ -34,7 +35,7 @@ import com.cloud.utils.component.ComponentContext; | |||||||
| public class CloudStackPrimaryDataStoreProviderImpl implements | public class CloudStackPrimaryDataStoreProviderImpl implements | ||||||
|         PrimaryDataStoreProvider { |         PrimaryDataStoreProvider { | ||||||
| 
 | 
 | ||||||
|     private final String providerName = "cloudstack primary data store provider"; |     private final String providerName = DataStoreProvider.DEFAULT_PRIMARY; | ||||||
|     protected PrimaryDataStoreDriver driver; |     protected PrimaryDataStoreDriver driver; | ||||||
|     protected HypervisorHostListener listener; |     protected HypervisorHostListener listener; | ||||||
|     protected DataStoreLifeCycle lifecyle; |     protected DataStoreLifeCycle lifecyle; | ||||||
|  | |||||||
| @ -175,7 +175,7 @@ public class HypervisorTemplateAdapter extends TemplateAdapterBase implements Te | |||||||
|         	TemplateInfo tmpl = this.imageFactory.getTemplate(template.getId(), imageStore); |         	TemplateInfo tmpl = this.imageFactory.getTemplate(template.getId(), imageStore); | ||||||
|         	CreateTemplateContext<TemplateApiResult> context = new CreateTemplateContext<TemplateApiResult>(null, tmpl); |         	CreateTemplateContext<TemplateApiResult> context = new CreateTemplateContext<TemplateApiResult>(null, tmpl); | ||||||
|         	AsyncCallbackDispatcher<HypervisorTemplateAdapter, TemplateApiResult> caller = AsyncCallbackDispatcher.create(this); |         	AsyncCallbackDispatcher<HypervisorTemplateAdapter, TemplateApiResult> caller = AsyncCallbackDispatcher.create(this); | ||||||
|         	caller.setCallback(this.createTemplateAsyncCallBack(null, null)); |         	caller.setCallback(caller.getTarget().createTemplateAsyncCallBack(null, null)); | ||||||
|         	caller.setContext(context); |         	caller.setContext(context); | ||||||
|            this.imageService |            this.imageService | ||||||
|                     .createTemplateAsync(tmpl, imageStore, caller); |                     .createTemplateAsync(tmpl, imageStore, caller); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user