diff --git a/engine/storage/integration-test/test/org/apache/cloudstack/storage/allocator/StorageAllocatorTest.java b/engine/storage/integration-test/test/org/apache/cloudstack/storage/allocator/StorageAllocatorTest.java index 9444fa5246e..c6ebf2e7fb5 100644 --- a/engine/storage/integration-test/test/org/apache/cloudstack/storage/allocator/StorageAllocatorTest.java +++ b/engine/storage/integration-test/test/org/apache/cloudstack/storage/allocator/StorageAllocatorTest.java @@ -121,7 +121,7 @@ public class StorageAllocatorTest { cluster = clusterDao.persist(cluster); clusterId = cluster.getId(); - DataStoreProvider provider = providerMgr.getDataStoreProvider("ancient primary data store provider"); + DataStoreProvider provider = providerMgr.getDataStoreProvider("cloudstack primary data store provider"); storage = new StoragePoolVO(); storage.setDataCenterId(dcId); storage.setPodId(podId); @@ -164,7 +164,7 @@ public class StorageAllocatorTest { try { createDb(); - DataStoreProvider provider = providerMgr.getDataStoreProvider("ancient primary data store provider"); + DataStoreProvider provider = providerMgr.getDataStoreProvider("cloudstack primary data store provider"); storage = new StoragePoolVO(); storage.setDataCenterId(dcId); storage.setPodId(podId); diff --git a/engine/storage/integration-test/test/org/apache/cloudstack/storage/test/volumeServiceTest.java b/engine/storage/integration-test/test/org/apache/cloudstack/storage/test/volumeServiceTest.java index 35a1790a0a9..b542e85be22 100644 --- a/engine/storage/integration-test/test/org/apache/cloudstack/storage/test/volumeServiceTest.java +++ b/engine/storage/integration-test/test/org/apache/cloudstack/storage/test/volumeServiceTest.java @@ -262,7 +262,7 @@ public class volumeServiceTest extends CloudStackTestNGBase { @Test public void testCreatePrimaryStorage() { - DataStoreProvider provider = dataStoreProviderMgr.getDataStoreProvider("default primary data store provider"); + DataStoreProvider provider = dataStoreProviderMgr.getDataStoreProvider("sample primary data store provider"); Map params = new HashMap(); URI uri = null; try { @@ -290,7 +290,7 @@ public class volumeServiceTest extends CloudStackTestNGBase { } private DataStore createImageStore() { - DataStoreProvider provider = dataStoreProviderMgr.getDataStoreProvider("default image data store"); + DataStoreProvider provider = dataStoreProviderMgr.getDataStoreProvider("sample image data store provider"); Map params = new HashMap(); String name = UUID.randomUUID().toString(); params.put("name", name); @@ -310,7 +310,7 @@ public class volumeServiceTest extends CloudStackTestNGBase { public DataStore createPrimaryDataStore() { try { - DataStoreProvider provider = dataStoreProviderMgr.getDataStoreProvider("default primary data store provider"); + DataStoreProvider provider = dataStoreProviderMgr.getDataStoreProvider("sample primary data store provider"); Map params = new HashMap(); URI uri = new URI(this.getPrimaryStorageUrl()); params.put("url", this.getPrimaryStorageUrl()); @@ -331,7 +331,7 @@ public class volumeServiceTest extends CloudStackTestNGBase { lifeCycle.attachCluster(store, scope); /* - PrimaryDataStoreProvider provider = primaryDataStoreProviderMgr.getDataStoreProvider("default primary data store provider"); + PrimaryDataStoreProvider provider = primaryDataStoreProviderMgr.getDataStoreProvider("sample primary data store provider"); primaryDataStoreProviderMgr.configure("primary data store mgr", new HashMap()); List ds = primaryStoreDao.findPoolByName(this.primaryName); 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 91b6c6329bb..f7d7167eb67 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 @@ -129,7 +129,7 @@ public class DataStoreProviderManagerImpl extends ManagerBase implements DataSto @Override public DataStoreProvider getDefaultPrimaryDataStoreProvider() { - return this.getDataStoreProvider("ancient primary data store provider"); + return this.getDataStoreProvider("cloudstack primary data store provider"); } @Override diff --git a/engine/storage/volume/test/org/apache/cloudstack/storage/volume/test/ConfiguratorTest.java b/engine/storage/volume/test/org/apache/cloudstack/storage/volume/test/ConfiguratorTest.java index 122c3532a09..6ad951a2e05 100644 --- a/engine/storage/volume/test/org/apache/cloudstack/storage/volume/test/ConfiguratorTest.java +++ b/engine/storage/volume/test/org/apache/cloudstack/storage/volume/test/ConfiguratorTest.java @@ -79,12 +79,12 @@ public class ConfiguratorTest { @Test public void getProvider() { - // assertNotNull(providerMgr.getDataStoreProvider("default primary data store provider")); + // assertNotNull(providerMgr.getDataStoreProvider("sample primary data store provider")); } @Test public void createDataStore() { - /*PrimaryDataStoreProvider provider = providerMgr.getDataStoreProvider("default primary data store provider"); + /*PrimaryDataStoreProvider provider = providerMgr.getDataStoreProvider("sample primary data store provider"); Map params = new HashMap(); params.put("url", "nfs://localhost/mnt"); params.put("clusterId", "1"); diff --git a/plugins/pom.xml b/plugins/pom.xml index 607c50cff22..a4f37bb1cb6 100755 --- a/plugins/pom.xml +++ b/plugins/pom.xml @@ -58,8 +58,11 @@ user-authenticators/sha256salted network-elements/dns-notifier storage/image/s3 + storage/image/default + storage/image/sample storage/volume/solidfire storage/volume/default + storage/volume/sample alert-handlers/snmp-alerts alert-handlers/syslog-alerts diff --git a/plugins/storage/image/default/pom.xml b/plugins/storage/image/default/pom.xml new file mode 100644 index 00000000000..e84eab42941 --- /dev/null +++ b/plugins/storage/image/default/pom.xml @@ -0,0 +1,56 @@ + + + 4.0.0 + cloud-plugin-storage-image-default + Apache CloudStack Plugin - Storage Image default provider + + org.apache.cloudstack + cloudstack-plugins + 4.2.0-SNAPSHOT + ../../../pom.xml + + + + org.apache.cloudstack + cloud-engine-storage-image + ${project.version} + + + mysql + mysql-connector-java + ${cs.mysql.version} + provided + + + + install + src + test + + + maven-surefire-plugin + + true + + + + integration-test + + test + + + + + + + diff --git a/engine/storage/image/src/org/apache/cloudstack/storage/image/driver/AncientImageDataStoreDriverImpl.java b/plugins/storage/image/default/src/org/apache/cloudstack/storage/datastore/driver/CloudStackImageDataStoreDriverImpl.java similarity index 97% rename from engine/storage/image/src/org/apache/cloudstack/storage/image/driver/AncientImageDataStoreDriverImpl.java rename to plugins/storage/image/default/src/org/apache/cloudstack/storage/datastore/driver/CloudStackImageDataStoreDriverImpl.java index 97ea6c48c79..1ff395cbecf 100644 --- a/engine/storage/image/src/org/apache/cloudstack/storage/image/driver/AncientImageDataStoreDriverImpl.java +++ b/plugins/storage/image/default/src/org/apache/cloudstack/storage/datastore/driver/CloudStackImageDataStoreDriverImpl.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.cloudstack.storage.image.driver; +package org.apache.cloudstack.storage.datastore.driver; import java.util.List; import java.util.Set; @@ -64,9 +64,9 @@ import com.cloud.storage.snapshot.SnapshotManager; import com.cloud.storage.swift.SwiftManager; import com.cloud.utils.exception.CloudRuntimeException; -public class AncientImageDataStoreDriverImpl implements ImageDataStoreDriver { +public class CloudStackImageDataStoreDriverImpl implements ImageDataStoreDriver { private static final Logger s_logger = Logger - .getLogger(AncientImageDataStoreDriverImpl.class); + .getLogger(CloudStackImageDataStoreDriverImpl.class); @Inject VMTemplateZoneDao templateZoneDao; @Inject 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 new file mode 100644 index 00000000000..d8965178b77 --- /dev/null +++ b/plugins/storage/image/default/src/org/apache/cloudstack/storage/datastore/lifecycle/CloudStackImageDataStoreLifeCycle.java @@ -0,0 +1,108 @@ +// 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. +package org.apache.cloudstack.storage.datastore.lifecycle; + +import java.util.Map; + +import javax.inject.Inject; + +import org.apache.cloudstack.engine.subsystem.api.storage.ClusterScope; +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.db.ImageDataStoreDao; +import org.apache.cloudstack.storage.image.db.ImageDataStoreVO; +import org.apache.cloudstack.storage.image.store.lifecycle.ImageDataStoreLifeCycle; + +import com.cloud.agent.api.StoragePoolInfo; + +public class CloudStackImageDataStoreLifeCycle implements ImageDataStoreLifeCycle { + @Inject + protected ImageDataStoreDao imageStoreDao; + @Inject + ImageDataStoreHelper imageStoreHelper; + @Inject + ImageDataStoreManager imageStoreMgr; + public CloudStackImageDataStoreLifeCycle() { + } + + + @Override + public DataStore initialize(Map dsInfos) { + ImageDataStoreVO ids = imageStoreHelper.createImageDataStore(dsInfos); + return imageStoreMgr.getImageDataStore(ids.getId()); + } + + + @Override + public boolean attachCluster(DataStore store, ClusterScope scope) { + // TODO Auto-generated method stub + return false; + } + + + @Override + public boolean attachHost(DataStore store, HostScope scope, + StoragePoolInfo existingInfo) { + // TODO Auto-generated method stub + return false; + } + + + @Override + public boolean attachZone(DataStore dataStore, ZoneScope scope) { + // TODO Auto-generated method stub + return false; + } + + + @Override + public boolean dettach() { + // TODO Auto-generated method stub + return false; + } + + + @Override + public boolean unmanaged() { + // TODO Auto-generated method stub + return false; + } + + + @Override + public boolean maintain(DataStore store) { + // TODO Auto-generated method stub + return false; + } + + + @Override + public boolean cancelMaintain(DataStore store) { + // TODO Auto-generated method stub + return false; + } + + + @Override + public boolean deleteDataStore(DataStore store) { + // TODO Auto-generated method stub + return false; + } +} diff --git a/engine/storage/image/src/org/apache/cloudstack/storage/image/store/AncientImageDataStoreProvider.java b/plugins/storage/image/default/src/org/apache/cloudstack/storage/datastore/provider/CloudStackImageDataStoreProvider.java similarity index 84% rename from engine/storage/image/src/org/apache/cloudstack/storage/image/store/AncientImageDataStoreProvider.java rename to plugins/storage/image/default/src/org/apache/cloudstack/storage/datastore/provider/CloudStackImageDataStoreProvider.java index 2715dc7e0e9..1358c9f4ca6 100644 --- a/engine/storage/image/src/org/apache/cloudstack/storage/image/store/AncientImageDataStoreProvider.java +++ b/plugins/storage/image/default/src/org/apache/cloudstack/storage/datastore/provider/CloudStackImageDataStoreProvider.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.cloudstack.storage.image.store; +package org.apache.cloudstack.storage.datastore.provider; import java.util.HashMap; import java.util.HashSet; @@ -31,20 +31,20 @@ import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreLifeCycle; import org.apache.cloudstack.engine.subsystem.api.storage.HypervisorHostListener; import org.apache.cloudstack.engine.subsystem.api.storage.ImageDataStoreProvider; import org.apache.cloudstack.engine.subsystem.api.storage.ScopeType; +import org.apache.cloudstack.storage.datastore.driver.CloudStackImageDataStoreDriverImpl; +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.driver.AncientImageDataStoreDriverImpl; -import org.apache.cloudstack.storage.image.store.lifecycle.DefaultImageDataStoreLifeCycle; import org.apache.cloudstack.storage.image.store.lifecycle.ImageDataStoreLifeCycle; import org.springframework.stereotype.Component; import com.cloud.utils.component.ComponentContext; @Component -public class AncientImageDataStoreProvider implements ImageDataStoreProvider { +public class CloudStackImageDataStoreProvider implements ImageDataStoreProvider { - private final String name = "ancient image data store"; + private final String name = "cloudstack image data store provider"; protected ImageDataStoreLifeCycle lifeCycle; protected ImageDataStoreDriver driver; @Inject @@ -64,11 +64,11 @@ public class AncientImageDataStoreProvider implements ImageDataStoreProvider { @Override public boolean configure(Map params) { - lifeCycle = ComponentContext.inject(DefaultImageDataStoreLifeCycle.class); - driver = ComponentContext.inject(AncientImageDataStoreDriverImpl.class); + lifeCycle = ComponentContext.inject(CloudStackImageDataStoreLifeCycle.class); + driver = ComponentContext.inject(CloudStackImageDataStoreDriverImpl.class); storeMgr.registerDriver(this.getName(), driver); - + Map infos = new HashMap(); String dataStoreName = UUID.nameUUIDFromBytes(this.name.getBytes()).toString(); infos.put("name", dataStoreName); diff --git a/plugins/storage/image/sample/pom.xml b/plugins/storage/image/sample/pom.xml new file mode 100644 index 00000000000..e4d5ac29ed8 --- /dev/null +++ b/plugins/storage/image/sample/pom.xml @@ -0,0 +1,56 @@ + + + 4.0.0 + cloud-plugin-storage-image-sample + Apache CloudStack Plugin - Storage Image sample provider + + org.apache.cloudstack + cloudstack-plugins + 4.2.0-SNAPSHOT + ../../../pom.xml + + + + org.apache.cloudstack + cloud-engine-storage-image + ${project.version} + + + mysql + mysql-connector-java + ${cs.mysql.version} + provided + + + + install + src + test + + + maven-surefire-plugin + + true + + + + integration-test + + test + + + + + + + diff --git a/engine/storage/image/src/org/apache/cloudstack/storage/image/driver/DefaultImageDataStoreDriverImpl.java b/plugins/storage/image/sample/src/org/apache/cloudstack/storage/datastore/driver/SampleImageDataStoreDriverImpl.java similarity index 96% rename from engine/storage/image/src/org/apache/cloudstack/storage/image/driver/DefaultImageDataStoreDriverImpl.java rename to plugins/storage/image/sample/src/org/apache/cloudstack/storage/datastore/driver/SampleImageDataStoreDriverImpl.java index 3d46c73cde2..cf42ac34da8 100644 --- a/engine/storage/image/src/org/apache/cloudstack/storage/image/driver/DefaultImageDataStoreDriverImpl.java +++ b/plugins/storage/image/sample/src/org/apache/cloudstack/storage/datastore/driver/SampleImageDataStoreDriverImpl.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.cloudstack.storage.image.driver; +package org.apache.cloudstack.storage.datastore.driver; import java.util.Set; @@ -38,12 +38,12 @@ import org.apache.cloudstack.storage.image.ImageDataStoreDriver; import com.cloud.storage.dao.VMTemplateDao; //http-read-only based image store -public class DefaultImageDataStoreDriverImpl implements ImageDataStoreDriver { +public class SampleImageDataStoreDriverImpl implements ImageDataStoreDriver { @Inject EndPointSelector selector; @Inject VMTemplateDao imageDataDao; - public DefaultImageDataStoreDriverImpl() { + public SampleImageDataStoreDriverImpl() { } @Override diff --git a/engine/storage/image/src/org/apache/cloudstack/storage/image/store/lifecycle/DefaultImageDataStoreLifeCycle.java b/plugins/storage/image/sample/src/org/apache/cloudstack/storage/datastore/lifecycle/SampleImageDataStoreLifeCycle.java similarity index 91% rename from engine/storage/image/src/org/apache/cloudstack/storage/image/store/lifecycle/DefaultImageDataStoreLifeCycle.java rename to plugins/storage/image/sample/src/org/apache/cloudstack/storage/datastore/lifecycle/SampleImageDataStoreLifeCycle.java index ba29c1a14b0..0af5afbb4fb 100644 --- a/engine/storage/image/src/org/apache/cloudstack/storage/image/store/lifecycle/DefaultImageDataStoreLifeCycle.java +++ b/plugins/storage/image/sample/src/org/apache/cloudstack/storage/datastore/lifecycle/SampleImageDataStoreLifeCycle.java @@ -14,7 +14,7 @@ // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. -package org.apache.cloudstack.storage.image.store.lifecycle; +package org.apache.cloudstack.storage.datastore.lifecycle; import java.util.Map; @@ -28,17 +28,18 @@ import org.apache.cloudstack.storage.image.datastore.ImageDataStoreHelper; import org.apache.cloudstack.storage.image.datastore.ImageDataStoreManager; 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; import com.cloud.agent.api.StoragePoolInfo; -public class DefaultImageDataStoreLifeCycle implements ImageDataStoreLifeCycle { +public class SampleImageDataStoreLifeCycle implements ImageDataStoreLifeCycle { @Inject protected ImageDataStoreDao imageStoreDao; @Inject ImageDataStoreHelper imageStoreHelper; @Inject ImageDataStoreManager imageStoreMgr; - public DefaultImageDataStoreLifeCycle() { + public SampleImageDataStoreLifeCycle() { } diff --git a/engine/storage/image/src/org/apache/cloudstack/storage/image/store/DefaultImageDataStoreProvider.java b/plugins/storage/image/sample/src/org/apache/cloudstack/storage/datastore/provider/SampleImageDataStoreProvider.java similarity index 81% rename from engine/storage/image/src/org/apache/cloudstack/storage/image/store/DefaultImageDataStoreProvider.java rename to plugins/storage/image/sample/src/org/apache/cloudstack/storage/datastore/provider/SampleImageDataStoreProvider.java index 0b5de858819..c6a8e0aa0ae 100644 --- a/engine/storage/image/src/org/apache/cloudstack/storage/image/store/DefaultImageDataStoreProvider.java +++ b/plugins/storage/image/sample/src/org/apache/cloudstack/storage/datastore/provider/SampleImageDataStoreProvider.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.cloudstack.storage.image.store; +package org.apache.cloudstack.storage.datastore.provider; import java.util.HashSet; import java.util.Map; @@ -28,16 +28,16 @@ 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.HypervisorHostListener; 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.driver.DefaultImageDataStoreDriverImpl; -import org.apache.cloudstack.storage.image.store.lifecycle.DefaultImageDataStoreLifeCycle; import org.apache.cloudstack.storage.image.store.lifecycle.ImageDataStoreLifeCycle; import com.cloud.utils.component.ComponentContext; -public class DefaultImageDataStoreProvider implements ImageDataStoreProvider { - private final String name = "default image data store"; +public class SampleImageDataStoreProvider implements ImageDataStoreProvider { + private final String name = "sample image data store provider"; protected ImageDataStoreLifeCycle lifeCycle; protected ImageDataStoreDriver driver; @Inject @@ -56,8 +56,8 @@ public class DefaultImageDataStoreProvider implements ImageDataStoreProvider { @Override public boolean configure(Map params) { - lifeCycle = ComponentContext.inject(DefaultImageDataStoreLifeCycle.class); - driver = ComponentContext.inject(DefaultImageDataStoreDriverImpl.class); + lifeCycle = ComponentContext.inject(SampleImageDataStoreLifeCycle.class); + driver = ComponentContext.inject(SampleImageDataStoreDriverImpl.class); storeMgr.registerDriver(this.getName(), driver); return true; diff --git a/plugins/storage/volume/default/src/org/apache/cloudstack/storage/datastore/provider/CloudStackPrimaryDataStoreProviderImpl.java b/plugins/storage/volume/default/src/org/apache/cloudstack/storage/datastore/provider/CloudStackPrimaryDataStoreProviderImpl.java index 4d46d99fab3..af1d0c42df3 100644 --- a/plugins/storage/volume/default/src/org/apache/cloudstack/storage/datastore/provider/CloudStackPrimaryDataStoreProviderImpl.java +++ b/plugins/storage/volume/default/src/org/apache/cloudstack/storage/datastore/provider/CloudStackPrimaryDataStoreProviderImpl.java @@ -34,15 +34,15 @@ import com.cloud.utils.component.ComponentContext; public class CloudStackPrimaryDataStoreProviderImpl implements PrimaryDataStoreProvider { - private final String providerName = "ancient primary data store provider"; + private final String providerName = "cloudstack primary data store provider"; protected PrimaryDataStoreDriver driver; protected HypervisorHostListener listener; protected DataStoreLifeCycle lifecyle; CloudStackPrimaryDataStoreProviderImpl() { - + } - + @Override public String getName() { return providerName; @@ -70,7 +70,7 @@ public class CloudStackPrimaryDataStoreProviderImpl implements public HypervisorHostListener getHostListener() { return this.listener; } - + @Override public Set getTypes() { Set types = new HashSet(); diff --git a/plugins/storage/volume/sample/pom.xml b/plugins/storage/volume/sample/pom.xml new file mode 100644 index 00000000000..2e2fdb51806 --- /dev/null +++ b/plugins/storage/volume/sample/pom.xml @@ -0,0 +1,56 @@ + + + 4.0.0 + cloud-plugin-storage-volume-sample + Apache CloudStack Plugin - Storage Volume sample provider + + org.apache.cloudstack + cloudstack-plugins + 4.2.0-SNAPSHOT + ../../../pom.xml + + + + org.apache.cloudstack + cloud-engine-storage-volume + ${project.version} + + + mysql + mysql-connector-java + ${cs.mysql.version} + provided + + + + install + src + test + + + maven-surefire-plugin + + true + + + + integration-test + + test + + + + + + + diff --git a/engine/storage/volume/src/org/apache/cloudstack/storage/datastore/driver/DefaultPrimaryDataStoreDriverImpl.java b/plugins/storage/volume/sample/src/org/apache/cloudstack/storage/datastore/driver/SamplePrimaryDataStoreDriverImpl.java similarity index 92% rename from engine/storage/volume/src/org/apache/cloudstack/storage/datastore/driver/DefaultPrimaryDataStoreDriverImpl.java rename to plugins/storage/volume/sample/src/org/apache/cloudstack/storage/datastore/driver/SamplePrimaryDataStoreDriverImpl.java index 6d0c2c6862b..67e9843c037 100644 --- a/engine/storage/volume/src/org/apache/cloudstack/storage/datastore/driver/DefaultPrimaryDataStoreDriverImpl.java +++ b/plugins/storage/volume/sample/src/org/apache/cloudstack/storage/datastore/driver/SamplePrimaryDataStoreDriverImpl.java @@ -46,15 +46,15 @@ import com.cloud.utils.storage.encoding.DecodedDataObject; import com.cloud.utils.storage.encoding.Decoder; -public class DefaultPrimaryDataStoreDriverImpl implements PrimaryDataStoreDriver { - private static final Logger s_logger = Logger.getLogger(DefaultPrimaryDataStoreDriverImpl.class); +public class SamplePrimaryDataStoreDriverImpl implements PrimaryDataStoreDriver { + private static final Logger s_logger = Logger.getLogger(SamplePrimaryDataStoreDriverImpl.class); @Inject EndPointSelector selector; @Inject StoragePoolHostDao storeHostDao; @Inject DataObjectManager dataObjMgr; - public DefaultPrimaryDataStoreDriverImpl() { + public SamplePrimaryDataStoreDriverImpl() { } @@ -74,7 +74,7 @@ public class DefaultPrimaryDataStoreDriverImpl implements PrimaryDataStoreDriver } - public Void createAsyncCallback(AsyncCallbackDispatcher callback, CreateVolumeContext context) { + public Void createAsyncCallback(AsyncCallbackDispatcher callback, CreateVolumeContext context) { CreateCmdResult result = null; CreateObjectAnswer volAnswer = (CreateObjectAnswer) callback.getResult(); if (volAnswer.getResult()) { @@ -94,13 +94,13 @@ public class DefaultPrimaryDataStoreDriverImpl implements PrimaryDataStoreDriver EndPoint ep = selector.select(vo); AsyncRpcConext context = new AsyncRpcConext(callback); - AsyncCallbackDispatcher caller = AsyncCallbackDispatcher.create(this); + AsyncCallbackDispatcher caller = AsyncCallbackDispatcher.create(this); caller.setCallback(caller.getTarget().deleteCallback(null, null)) .setContext(context); ep.sendMessageAsync(cmd, caller); } - public Void deleteCallback(AsyncCallbackDispatcher callback, AsyncRpcConext context) { + public Void deleteCallback(AsyncCallbackDispatcher callback, AsyncRpcConext context) { CommandResult result = new CommandResult(); Answer answer = callback.getResult(); if (!answer.getResult()) { @@ -165,7 +165,7 @@ public class DefaultPrimaryDataStoreDriverImpl implements PrimaryDataStoreDriver CreateObjectCommand createCmd = new CreateObjectCommand(vol.getUri()); CreateVolumeContext context = new CreateVolumeContext(callback, vol); - AsyncCallbackDispatcher caller = AsyncCallbackDispatcher.create(this); + AsyncCallbackDispatcher caller = AsyncCallbackDispatcher.create(this); caller.setContext(context) .setCallback(caller.getTarget().createAsyncCallback(null, null)); diff --git a/engine/storage/volume/src/org/apache/cloudstack/storage/datastore/lifecycle/DefaultPrimaryDataStoreLifeCycleImpl.java b/plugins/storage/volume/sample/src/org/apache/cloudstack/storage/datastore/lifecycle/SamplePrimaryDataStoreLifeCycleImpl.java similarity index 97% rename from engine/storage/volume/src/org/apache/cloudstack/storage/datastore/lifecycle/DefaultPrimaryDataStoreLifeCycleImpl.java rename to plugins/storage/volume/sample/src/org/apache/cloudstack/storage/datastore/lifecycle/SamplePrimaryDataStoreLifeCycleImpl.java index fea02e8d1ed..15bf8c1dc06 100644 --- a/engine/storage/volume/src/org/apache/cloudstack/storage/datastore/lifecycle/DefaultPrimaryDataStoreLifeCycleImpl.java +++ b/plugins/storage/volume/sample/src/org/apache/cloudstack/storage/datastore/lifecycle/SamplePrimaryDataStoreLifeCycleImpl.java @@ -43,7 +43,7 @@ import com.cloud.host.dao.HostDao; import com.cloud.hypervisor.Hypervisor.HypervisorType; import com.cloud.storage.StoragePoolStatus; -public class DefaultPrimaryDataStoreLifeCycleImpl implements PrimaryDataStoreLifeCycle { +public class SamplePrimaryDataStoreLifeCycleImpl implements PrimaryDataStoreLifeCycle { @Inject EndPointSelector selector; @Inject @@ -54,7 +54,7 @@ public class DefaultPrimaryDataStoreLifeCycleImpl implements PrimaryDataStoreLif PrimaryDataStoreHelper primaryStoreHelper; @Inject PrimaryDataStoreProviderManager providerMgr; - public DefaultPrimaryDataStoreLifeCycleImpl() { + public SamplePrimaryDataStoreLifeCycleImpl() { } @Override diff --git a/engine/storage/volume/src/org/apache/cloudstack/storage/datastore/provider/DefaultPrimaryDatastoreProviderImpl.java b/plugins/storage/volume/sample/src/org/apache/cloudstack/storage/datastore/provider/SamplePrimaryDatastoreProviderImpl.java similarity index 83% rename from engine/storage/volume/src/org/apache/cloudstack/storage/datastore/provider/DefaultPrimaryDatastoreProviderImpl.java rename to plugins/storage/volume/sample/src/org/apache/cloudstack/storage/datastore/provider/SamplePrimaryDatastoreProviderImpl.java index 46fa738e294..8f6cb1bfa55 100644 --- a/engine/storage/volume/src/org/apache/cloudstack/storage/datastore/provider/DefaultPrimaryDatastoreProviderImpl.java +++ b/plugins/storage/volume/sample/src/org/apache/cloudstack/storage/datastore/provider/SamplePrimaryDatastoreProviderImpl.java @@ -29,14 +29,14 @@ 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.DataStoreProvider.DataStoreProviderType; import org.apache.cloudstack.storage.datastore.PrimaryDataStoreProviderManager; -import org.apache.cloudstack.storage.datastore.driver.DefaultPrimaryDataStoreDriverImpl; -import org.apache.cloudstack.storage.datastore.lifecycle.DefaultPrimaryDataStoreLifeCycleImpl; +import org.apache.cloudstack.storage.datastore.driver.SamplePrimaryDataStoreDriverImpl; +import org.apache.cloudstack.storage.datastore.lifecycle.SamplePrimaryDataStoreLifeCycleImpl; import com.cloud.utils.component.ComponentContext; -public class DefaultPrimaryDatastoreProviderImpl implements PrimaryDataStoreProvider { - private final String providerName = "default primary data store provider"; +public class SamplePrimaryDatastoreProviderImpl implements PrimaryDataStoreProvider { + private final String providerName = "sample primary data store provider"; protected PrimaryDataStoreDriver driver; protected HypervisorHostListener listener; @Inject @@ -57,8 +57,8 @@ public class DefaultPrimaryDatastoreProviderImpl implements PrimaryDataStoreProv @Override public boolean configure(Map params) { - lifecyle = ComponentContext.inject(DefaultPrimaryDataStoreLifeCycleImpl.class); - driver = ComponentContext.inject(DefaultPrimaryDataStoreDriverImpl.class); + lifecyle = ComponentContext.inject(SamplePrimaryDataStoreLifeCycleImpl.class); + driver = ComponentContext.inject(SamplePrimaryDataStoreDriverImpl.class); listener = ComponentContext.inject(DefaultHostListener.class); return true; } @@ -72,7 +72,7 @@ public class DefaultPrimaryDatastoreProviderImpl implements PrimaryDataStoreProv public HypervisorHostListener getHostListener() { return this.listener; } - + @Override public Set getTypes() { Set types = new HashSet(); diff --git a/plugins/storage/volume/solidfire/src/org/apache/cloudstack/storage/datastore/provider/SolidfirePrimaryDataStoreProvider.java b/plugins/storage/volume/solidfire/src/org/apache/cloudstack/storage/datastore/provider/SolidfirePrimaryDataStoreProvider.java index 650cac8518d..39adf9f1075 100644 --- a/plugins/storage/volume/solidfire/src/org/apache/cloudstack/storage/datastore/provider/SolidfirePrimaryDataStoreProvider.java +++ b/plugins/storage/volume/solidfire/src/org/apache/cloudstack/storage/datastore/provider/SolidfirePrimaryDataStoreProvider.java @@ -16,24 +16,60 @@ // under the License. package org.apache.cloudstack.storage.datastore.provider; +import java.util.Map; +import java.util.Set; + +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.HypervisorHostListener; +import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStoreProvider; import org.springframework.stereotype.Component; @Component -public class SolidfirePrimaryDataStoreProvider extends - DefaultPrimaryDatastoreProviderImpl { - private final String name = "Solidfre Primary Data Store Provider"; +public class SolidfirePrimaryDataStoreProvider implements PrimaryDataStoreProvider { + private final String name = "Solidfire Primary Data Store Provider"; public SolidfirePrimaryDataStoreProvider() { - - + + // TODO Auto-generated constructor stub } - + @Override public String getName() { return name; } - - + + @Override + public DataStoreLifeCycle getDataStoreLifeCycle() { + // TODO Auto-generated method stub + return null; + } + + @Override + public DataStoreDriver getDataStoreDriver() { + // TODO Auto-generated method stub + return null; + } + + @Override + public HypervisorHostListener getHostListener() { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean configure(Map params) { + // TODO Auto-generated method stub + return false; + } + + @Override + public Set getTypes() { + // TODO Auto-generated method stub + return null; + } + + }