diff --git a/client/tomcatconf/applicationContext.xml.in b/client/tomcatconf/applicationContext.xml.in index 0b4ba82f630..7b752f0b08a 100644 --- a/client/tomcatconf/applicationContext.xml.in +++ b/client/tomcatconf/applicationContext.xml.in @@ -731,7 +731,7 @@ - + diff --git a/engine/storage/image/src/org/apache/cloudstack/storage/image/manager/ImageDataStoreManagerImpl.java b/engine/storage/image/src/org/apache/cloudstack/storage/image/manager/ImageDataStoreProviderManagerImpl.java similarity index 92% rename from engine/storage/image/src/org/apache/cloudstack/storage/image/manager/ImageDataStoreManagerImpl.java rename to engine/storage/image/src/org/apache/cloudstack/storage/image/manager/ImageDataStoreProviderManagerImpl.java index bc546f8d0c1..4430267c700 100644 --- a/engine/storage/image/src/org/apache/cloudstack/storage/image/manager/ImageDataStoreManagerImpl.java +++ b/engine/storage/image/src/org/apache/cloudstack/storage/image/manager/ImageDataStoreProviderManagerImpl.java @@ -31,16 +31,16 @@ import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreProviderManag import org.apache.cloudstack.engine.subsystem.api.storage.ImageDataStoreProvider; import org.apache.cloudstack.storage.image.ImageDataStoreDriver; import org.apache.cloudstack.storage.image.datastore.ImageDataStore; -import org.apache.cloudstack.storage.image.datastore.ImageDataStoreManager; +import org.apache.cloudstack.storage.image.datastore.ImageDataStoreProviderManager; import org.apache.cloudstack.storage.image.db.ImageDataStoreDao; import org.apache.cloudstack.storage.image.db.ImageDataStoreVO; -import org.apache.cloudstack.storage.image.store.DefaultImageDataStoreImpl; +import org.apache.cloudstack.storage.image.store.ImageDataStoreImpl; import org.springframework.stereotype.Component; import com.cloud.storage.dao.VMTemplateDao; @Component -public class ImageDataStoreManagerImpl implements ImageDataStoreManager { +public class ImageDataStoreProviderManagerImpl implements ImageDataStoreProviderManager { @Inject ImageDataStoreDao dataStoreDao; @Inject @@ -59,7 +59,7 @@ public class ImageDataStoreManagerImpl implements ImageDataStoreManager { ImageDataStoreVO dataStore = dataStoreDao.findById(dataStoreId); String providerName = dataStore.getProviderName(); ImageDataStoreProvider provider = (ImageDataStoreProvider)providerManager.getDataStoreProvider(providerName); - ImageDataStore imgStore = DefaultImageDataStoreImpl.getDataStore(dataStore, + ImageDataStore imgStore = ImageDataStoreImpl.getDataStore(dataStore, driverMaps.get(provider.getName()), provider ); // TODO Auto-generated method stub diff --git a/engine/storage/image/src/org/apache/cloudstack/storage/image/store/DefaultImageDataStoreImpl.java b/engine/storage/image/src/org/apache/cloudstack/storage/image/store/ImageDataStoreImpl.java similarity index 95% rename from engine/storage/image/src/org/apache/cloudstack/storage/image/store/DefaultImageDataStoreImpl.java rename to engine/storage/image/src/org/apache/cloudstack/storage/image/store/ImageDataStoreImpl.java index 6eefc6f43f8..5761033c351 100644 --- a/engine/storage/image/src/org/apache/cloudstack/storage/image/store/DefaultImageDataStoreImpl.java +++ b/engine/storage/image/src/org/apache/cloudstack/storage/image/store/ImageDataStoreImpl.java @@ -41,7 +41,7 @@ import com.cloud.utils.component.ComponentContext; import com.cloud.utils.storage.encoding.EncodingType; -public class DefaultImageDataStoreImpl implements ImageDataStore { +public class ImageDataStoreImpl implements ImageDataStore { @Inject VMTemplateDao imageDao; @Inject @@ -51,7 +51,7 @@ public class DefaultImageDataStoreImpl implements ImageDataStore { protected ImageDataStoreProvider provider; boolean needDownloadToCacheStorage = false; - public DefaultImageDataStoreImpl() { + public ImageDataStoreImpl() { } @@ -64,7 +64,7 @@ public class DefaultImageDataStoreImpl implements ImageDataStore { public static ImageDataStore getDataStore(ImageDataStoreVO dataStoreVO, ImageDataStoreDriver imageDataStoreDriver, ImageDataStoreProvider provider) { - DefaultImageDataStoreImpl instance = (DefaultImageDataStoreImpl)ComponentContext.inject(DefaultImageDataStoreImpl.class); + ImageDataStoreImpl instance = (ImageDataStoreImpl)ComponentContext.inject(ImageDataStoreImpl.class); instance.configure(dataStoreVO, imageDataStoreDriver, provider); return instance; } diff --git a/engine/storage/src/org/apache/cloudstack/storage/datastore/DataStoreManagerImpl.java b/engine/storage/src/org/apache/cloudstack/storage/datastore/DataStoreManagerImpl.java index a2fd08d1e8f..80e48a2d8f1 100644 --- a/engine/storage/src/org/apache/cloudstack/storage/datastore/DataStoreManagerImpl.java +++ b/engine/storage/src/org/apache/cloudstack/storage/datastore/DataStoreManagerImpl.java @@ -27,7 +27,7 @@ import org.apache.cloudstack.engine.subsystem.api.storage.DataStore; import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager; import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreRole; import org.apache.cloudstack.engine.subsystem.api.storage.Scope; -import org.apache.cloudstack.storage.image.datastore.ImageDataStoreManager; +import org.apache.cloudstack.storage.image.datastore.ImageDataStoreProviderManager; import org.springframework.stereotype.Component; import com.cloud.utils.exception.CloudRuntimeException; @@ -37,7 +37,7 @@ public class DataStoreManagerImpl implements DataStoreManager { @Inject PrimaryDataStoreProviderManager primaryStorMgr; @Inject - ImageDataStoreManager imageDataStoreMgr; + ImageDataStoreProviderManager imageDataStoreMgr; @Override public DataStore getDataStore(long storeId, DataStoreRole role) { diff --git a/engine/storage/src/org/apache/cloudstack/storage/datastore/provider/DataStoreProviderManagerImpl.java b/engine/storage/src/org/apache/cloudstack/storage/datastore/provider/DataStoreProviderManagerImpl.java index f7d7167eb67..c6911df31d3 100644 --- a/engine/storage/src/org/apache/cloudstack/storage/datastore/provider/DataStoreProviderManagerImpl.java +++ b/engine/storage/src/org/apache/cloudstack/storage/datastore/provider/DataStoreProviderManagerImpl.java @@ -34,8 +34,10 @@ import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreProviderManag import org.apache.cloudstack.engine.subsystem.api.storage.ImageDataStoreProvider; import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStoreDriver; import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStoreProvider; +import org.apache.cloudstack.storage.image.ImageDataStoreDriver; import org.apache.cloudstack.storage.datastore.PrimaryDataStoreProviderManager; import org.apache.cloudstack.storage.datastore.db.DataStoreProviderDao; +import org.apache.cloudstack.storage.image.datastore.ImageDataStoreProviderManager; import org.apache.log4j.Logger; import org.springframework.stereotype.Component; @@ -53,6 +55,8 @@ public class DataStoreProviderManagerImpl extends ManagerBase implements DataSto protected Map providerMap = new HashMap(); @Inject PrimaryDataStoreProviderManager primaryDataStoreProviderMgr; + @Inject + ImageDataStoreProviderManager imageDataStoreProviderMgr; @Override public DataStoreProvider getDataStoreProvider(String name) { return providerMap.get(name); @@ -63,7 +67,7 @@ public class DataStoreProviderManagerImpl extends ManagerBase implements DataSto // TODO Auto-generated method stub return null; } - + public List getPrimayrDataStoreProviders() { List providers = new ArrayList(); for (DataStoreProvider provider : providerMap.values()) { @@ -76,7 +80,7 @@ public class DataStoreProviderManagerImpl extends ManagerBase implements DataSto } return providers; } - + public List getImageDataStoreProviders() { List providers = new ArrayList(); for (DataStoreProvider provider : providerMap.values()) { @@ -101,9 +105,9 @@ public class DataStoreProviderManagerImpl extends ManagerBase implements DataSto s_logger.debug("Failed to register data store provider, provider name: " + providerName + " is not unique"); return false; } - + s_logger.debug("registering data store provider:" + provider.getName()); - + providerMap.put(providerName, provider); try { boolean registrationResult = provider.configure(copyParams); @@ -112,18 +116,21 @@ public class DataStoreProviderManagerImpl extends ManagerBase implements DataSto s_logger.debug("Failed to register data store provider: " + providerName); return false; } - + Set types = provider.getTypes(); if (types.contains(DataStoreProviderType.PRIMARY)) { primaryDataStoreProviderMgr.registerDriver(provider.getName(), (PrimaryDataStoreDriver)provider.getDataStoreDriver()); primaryDataStoreProviderMgr.registerHostListener(provider.getName(), provider.getHostListener()); } + else if (types.contains(DataStoreProviderType.IMAGE)) { + imageDataStoreProviderMgr.registerDriver(provider.getName(), (ImageDataStoreDriver)provider.getDataStoreDriver()); + } } catch(Exception e) { s_logger.debug("configure provider failed", e); providerMap.remove(providerName); } } - + return true; } diff --git a/engine/storage/src/org/apache/cloudstack/storage/image/datastore/ImageDataStoreManager.java b/engine/storage/src/org/apache/cloudstack/storage/image/datastore/ImageDataStoreProviderManager.java similarity index 96% rename from engine/storage/src/org/apache/cloudstack/storage/image/datastore/ImageDataStoreManager.java rename to engine/storage/src/org/apache/cloudstack/storage/image/datastore/ImageDataStoreProviderManager.java index b6d84cdcef2..4ab3f3c19d8 100644 --- a/engine/storage/src/org/apache/cloudstack/storage/image/datastore/ImageDataStoreManager.java +++ b/engine/storage/src/org/apache/cloudstack/storage/image/datastore/ImageDataStoreProviderManager.java @@ -23,7 +23,7 @@ import java.util.List; import org.apache.cloudstack.engine.subsystem.api.storage.DataStore; import org.apache.cloudstack.storage.image.ImageDataStoreDriver; -public interface ImageDataStoreManager { +public interface ImageDataStoreProviderManager { ImageDataStore getImageDataStore(long dataStoreId); ImageDataStore getImageDataStore(String uuid); List getList(); diff --git a/engine/storage/volume/src/org/apache/cloudstack/storage/datastore/DefaultPrimaryDataStore.java b/engine/storage/volume/src/org/apache/cloudstack/storage/datastore/PrimaryDataStoreImpl.java similarity index 96% rename from engine/storage/volume/src/org/apache/cloudstack/storage/datastore/DefaultPrimaryDataStore.java rename to engine/storage/volume/src/org/apache/cloudstack/storage/datastore/PrimaryDataStoreImpl.java index 31e6908e28f..b695ff09c2e 100644 --- a/engine/storage/volume/src/org/apache/cloudstack/storage/datastore/DefaultPrimaryDataStore.java +++ b/engine/storage/volume/src/org/apache/cloudstack/storage/datastore/PrimaryDataStoreImpl.java @@ -60,9 +60,9 @@ import com.cloud.utils.component.ComponentContext; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.storage.encoding.EncodingType; -public class DefaultPrimaryDataStore implements PrimaryDataStore { +public class PrimaryDataStoreImpl implements PrimaryDataStore { private static final Logger s_logger = Logger - .getLogger(DefaultPrimaryDataStore.class); + .getLogger(PrimaryDataStoreImpl.class); protected PrimaryDataStoreDriver driver; protected StoragePoolVO pdsv; @Inject @@ -82,7 +82,7 @@ public class DefaultPrimaryDataStore implements PrimaryDataStore { private VolumeDao volumeDao; - public DefaultPrimaryDataStore() { + public PrimaryDataStoreImpl() { } @@ -93,10 +93,10 @@ public class DefaultPrimaryDataStore implements PrimaryDataStore { this.provider = provider; } - public static DefaultPrimaryDataStore createDataStore( + public static PrimaryDataStoreImpl createDataStore( StoragePoolVO pdsv, PrimaryDataStoreDriver driver, DataStoreProvider provider) { - DefaultPrimaryDataStore dataStore = (DefaultPrimaryDataStore)ComponentContext.inject(DefaultPrimaryDataStore.class); + PrimaryDataStoreImpl dataStore = (PrimaryDataStoreImpl)ComponentContext.inject(PrimaryDataStoreImpl.class); dataStore.configure(pdsv, driver, provider); return dataStore; } diff --git a/engine/storage/volume/src/org/apache/cloudstack/storage/datastore/manager/DefaultPrimaryDataStoreProviderManagerImpl.java b/engine/storage/volume/src/org/apache/cloudstack/storage/datastore/manager/PrimaryDataStoreProviderManagerImpl.java similarity index 90% rename from engine/storage/volume/src/org/apache/cloudstack/storage/datastore/manager/DefaultPrimaryDataStoreProviderManagerImpl.java rename to engine/storage/volume/src/org/apache/cloudstack/storage/datastore/manager/PrimaryDataStoreProviderManagerImpl.java index e38c3b306fa..7a5d3224444 100644 --- a/engine/storage/volume/src/org/apache/cloudstack/storage/datastore/manager/DefaultPrimaryDataStoreProviderManagerImpl.java +++ b/engine/storage/volume/src/org/apache/cloudstack/storage/datastore/manager/PrimaryDataStoreProviderManagerImpl.java @@ -28,7 +28,7 @@ import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreProvider; import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreProviderManager; import org.apache.cloudstack.engine.subsystem.api.storage.HypervisorHostListener; import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStoreDriver; -import org.apache.cloudstack.storage.datastore.DefaultPrimaryDataStore; +import org.apache.cloudstack.storage.datastore.PrimaryDataStoreImpl; import org.apache.cloudstack.storage.datastore.PrimaryDataStore; import org.apache.cloudstack.storage.datastore.PrimaryDataStoreProviderManager; import org.apache.cloudstack.storage.datastore.db.DataStoreProviderDao; @@ -39,7 +39,7 @@ import org.springframework.stereotype.Component; import com.cloud.storage.StorageManager; @Component -public class DefaultPrimaryDataStoreProviderManagerImpl implements PrimaryDataStoreProviderManager { +public class PrimaryDataStoreProviderManagerImpl implements PrimaryDataStoreProviderManager { @Inject DataStoreProviderDao dataStoreProviderDao; @Inject @@ -59,7 +59,7 @@ public class DefaultPrimaryDataStoreProviderManagerImpl implements PrimaryDataSt StoragePoolVO dataStoreVO = dataStoreDao.findById(dataStoreId); String providerName = dataStoreVO.getStorageProviderName(); DataStoreProvider provider = providerManager.getDataStoreProvider(providerName); - DefaultPrimaryDataStore dataStore = DefaultPrimaryDataStore.createDataStore(dataStoreVO, driverMaps.get(provider.getName()), provider); + PrimaryDataStoreImpl dataStore = PrimaryDataStoreImpl.createDataStore(dataStoreVO, driverMaps.get(provider.getName()), provider); return dataStore; } diff --git a/engine/storage/volume/src/org/apache/cloudstack/storage/datastore/provider/PrimaryDataStoreProviderManager.java b/engine/storage/volume/src/org/apache/cloudstack/storage/datastore/provider/PrimaryDataStoreProviderManager.java deleted file mode 100644 index b248758bc12..00000000000 --- a/engine/storage/volume/src/org/apache/cloudstack/storage/datastore/provider/PrimaryDataStoreProviderManager.java +++ /dev/null @@ -1,16 +0,0 @@ -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. diff --git a/plugins/storage/image/default/src/org/apache/cloudstack/storage/datastore/lifecycle/CloudStackImageDataStoreLifeCycle.java b/plugins/storage/image/default/src/org/apache/cloudstack/storage/datastore/lifecycle/CloudStackImageDataStoreLifeCycle.java index d8965178b77..dce40d97dbc 100644 --- a/plugins/storage/image/default/src/org/apache/cloudstack/storage/datastore/lifecycle/CloudStackImageDataStoreLifeCycle.java +++ b/plugins/storage/image/default/src/org/apache/cloudstack/storage/datastore/lifecycle/CloudStackImageDataStoreLifeCycle.java @@ -25,7 +25,7 @@ import org.apache.cloudstack.engine.subsystem.api.storage.DataStore; import org.apache.cloudstack.engine.subsystem.api.storage.HostScope; import org.apache.cloudstack.engine.subsystem.api.storage.ZoneScope; import org.apache.cloudstack.storage.image.datastore.ImageDataStoreHelper; -import org.apache.cloudstack.storage.image.datastore.ImageDataStoreManager; +import org.apache.cloudstack.storage.image.datastore.ImageDataStoreProviderManager; import org.apache.cloudstack.storage.image.db.ImageDataStoreDao; import org.apache.cloudstack.storage.image.db.ImageDataStoreVO; import org.apache.cloudstack.storage.image.store.lifecycle.ImageDataStoreLifeCycle; @@ -38,7 +38,7 @@ public class CloudStackImageDataStoreLifeCycle implements ImageDataStoreLifeCycl @Inject ImageDataStoreHelper imageStoreHelper; @Inject - ImageDataStoreManager imageStoreMgr; + ImageDataStoreProviderManager imageStoreMgr; public CloudStackImageDataStoreLifeCycle() { } diff --git a/plugins/storage/image/default/src/org/apache/cloudstack/storage/datastore/provider/CloudStackImageDataStoreProvider.java b/plugins/storage/image/default/src/org/apache/cloudstack/storage/datastore/provider/CloudStackImageDataStoreProvider.java index 1358c9f4ca6..c91aa1e3af2 100644 --- a/plugins/storage/image/default/src/org/apache/cloudstack/storage/datastore/provider/CloudStackImageDataStoreProvider.java +++ b/plugins/storage/image/default/src/org/apache/cloudstack/storage/datastore/provider/CloudStackImageDataStoreProvider.java @@ -35,7 +35,7 @@ import org.apache.cloudstack.storage.datastore.driver.CloudStackImageDataStoreDr import org.apache.cloudstack.storage.datastore.lifecycle.CloudStackImageDataStoreLifeCycle; import org.apache.cloudstack.storage.image.ImageDataStoreDriver; import org.apache.cloudstack.storage.image.datastore.ImageDataStoreHelper; -import org.apache.cloudstack.storage.image.datastore.ImageDataStoreManager; +import org.apache.cloudstack.storage.image.datastore.ImageDataStoreProviderManager; import org.apache.cloudstack.storage.image.store.lifecycle.ImageDataStoreLifeCycle; import org.springframework.stereotype.Component; @@ -48,7 +48,7 @@ public class CloudStackImageDataStoreProvider implements ImageDataStoreProvider protected ImageDataStoreLifeCycle lifeCycle; protected ImageDataStoreDriver driver; @Inject - ImageDataStoreManager storeMgr; + ImageDataStoreProviderManager storeMgr; @Inject ImageDataStoreHelper helper; diff --git a/plugins/storage/image/sample/src/org/apache/cloudstack/storage/datastore/lifecycle/SampleImageDataStoreLifeCycle.java b/plugins/storage/image/sample/src/org/apache/cloudstack/storage/datastore/lifecycle/SampleImageDataStoreLifeCycle.java index 0af5afbb4fb..c1e08912718 100644 --- a/plugins/storage/image/sample/src/org/apache/cloudstack/storage/datastore/lifecycle/SampleImageDataStoreLifeCycle.java +++ b/plugins/storage/image/sample/src/org/apache/cloudstack/storage/datastore/lifecycle/SampleImageDataStoreLifeCycle.java @@ -25,7 +25,7 @@ import org.apache.cloudstack.engine.subsystem.api.storage.DataStore; import org.apache.cloudstack.engine.subsystem.api.storage.HostScope; import org.apache.cloudstack.engine.subsystem.api.storage.ZoneScope; import org.apache.cloudstack.storage.image.datastore.ImageDataStoreHelper; -import org.apache.cloudstack.storage.image.datastore.ImageDataStoreManager; +import org.apache.cloudstack.storage.image.datastore.ImageDataStoreProviderManager; import org.apache.cloudstack.storage.image.db.ImageDataStoreDao; import org.apache.cloudstack.storage.image.db.ImageDataStoreVO; import org.apache.cloudstack.storage.image.store.lifecycle.ImageDataStoreLifeCycle; @@ -38,7 +38,7 @@ public class SampleImageDataStoreLifeCycle implements ImageDataStoreLifeCycle { @Inject ImageDataStoreHelper imageStoreHelper; @Inject - ImageDataStoreManager imageStoreMgr; + ImageDataStoreProviderManager imageStoreMgr; public SampleImageDataStoreLifeCycle() { } diff --git a/plugins/storage/image/sample/src/org/apache/cloudstack/storage/datastore/provider/SampleImageDataStoreProvider.java b/plugins/storage/image/sample/src/org/apache/cloudstack/storage/datastore/provider/SampleImageDataStoreProvider.java index c6a8e0aa0ae..2ad9602a7bb 100644 --- a/plugins/storage/image/sample/src/org/apache/cloudstack/storage/datastore/provider/SampleImageDataStoreProvider.java +++ b/plugins/storage/image/sample/src/org/apache/cloudstack/storage/datastore/provider/SampleImageDataStoreProvider.java @@ -31,7 +31,7 @@ import org.apache.cloudstack.engine.subsystem.api.storage.ImageDataStoreProvider import org.apache.cloudstack.storage.datastore.driver.SampleImageDataStoreDriverImpl; import org.apache.cloudstack.storage.datastore.lifecycle.SampleImageDataStoreLifeCycle; import org.apache.cloudstack.storage.image.ImageDataStoreDriver; -import org.apache.cloudstack.storage.image.datastore.ImageDataStoreManager; +import org.apache.cloudstack.storage.image.datastore.ImageDataStoreProviderManager; import org.apache.cloudstack.storage.image.store.lifecycle.ImageDataStoreLifeCycle; import com.cloud.utils.component.ComponentContext; @@ -41,7 +41,7 @@ public class SampleImageDataStoreProvider implements ImageDataStoreProvider { protected ImageDataStoreLifeCycle lifeCycle; protected ImageDataStoreDriver driver; @Inject - ImageDataStoreManager storeMgr; + ImageDataStoreProviderManager storeMgr; long id; String uuid; @Override