----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/19021/ -----------------------------------------------------------
Review request for cloudstack, edison su and Mike Tutkowski. Repository: cloudstack-git Description ------- This patch implements a basic storage plug-in for cloudbyte elastistor v1.3.0, The plug-in is a new feature for cloudstack 4.4 and above. this does not implement managed storage yet, it is been integrated only with CreateStoragePool and DeleteStoragePool api's. the desired behavior of the plugin are: * Allow an Admin to create a primary storage at cluster level, hence creates a volume in elastistor and gets attached to the host with the given capacityiops and capacitybytes through CreateStoragePool api with provider being elastistor. *Allow an admin to delete a primary storage at cluster level, hence it deletes the volume from host in cloudstack and deletes the respective volume in elastistor. * volume and datadisks fuctions performs the default storage fuctions, ie. the driver extends the CloudStackPrimaryDataStoreDriverImpl. * support for both nfs and icsci primary storage. Diffs ----- client/pom.xml af724b1 plugins/pom.xml 097f224 plugins/storage/volume/cloudbyte/pom.xml PRE-CREATION plugins/storage/volume/cloudbyte/resources/META-INF/cloudstack/storage-volume-cloudbyte/module.properties PRE-CREATION plugins/storage/volume/cloudbyte/resources/META-INF/cloudstack/storage-volume-cloudbyte/spring-storage-volume-cloudbyte-context.xml PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/client/BaseCommand.java PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/client/ElastiCenterClient.java PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/client/ElastiCenterCommand.java PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/command/AddQosGroupCmd.java PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/command/CreateTsmCmd.java PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/command/CreateVolumeCmd.java PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/command/DeleteTsmCmd.java PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/command/DeleteVolumeCmd.java PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/command/ListCapabilitiesCmd.java PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/command/ListTsmCmd.java PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/command/QueryAsyncJobResultCmd.java PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/driver/ElastistorPrimaryDataStoreDriver.java PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/lifecycle/ElastistorPrimaryDataStoreLifeCycle.java PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/model/Async.java PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/model/Capabilities.java PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/model/FileSystem.java PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/model/FileSystemWrapper.java PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/model/FilesystemQoSWrapper.java PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/model/JobId.java PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/model/QoSGroup.java PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/model/QoSGroupWrapper.java PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/model/StorageVolume.java PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/model/StorageVolumeWrapper.java PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/model/StorageVolumes.java PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/model/Tsm.java PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/model/TsmWrapper.java PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/model/Tsms.java PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/model/VolumeProperties.java PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/provider/ElastistorHostListener.java PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/provider/ElastistorPrimaryDataStoreProvider.java PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/response/AddQoSGroupResponse.java PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/response/AddQosGroupCmdResponse.java PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/response/CreateTsmCmdResponse.java PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/response/CreateVolumeCmdResponse.java PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/response/DeleteTsmResponse.java PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/response/DeleteVolumeResponse.java PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/response/ListCapabilitiesResponse.java PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/response/ListTsmsResponse.java PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/response/QueryAsyncJobResultResponse.java PRE-CREATION plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/util/ElastistorUtil.java PRE-CREATION Diff: https://reviews.apache.org/r/19021/diff/ Testing ------- Build test using, mvn -P developer,systemvm clean install, which is successful. Manual testing has been performed using cloudmonkey. * Creating a primary storage based on cloudbyte storage plugin. cloudmonkey# create storagepool scope=cluster zoneid=dac7223c-6d09-4dcb-82fb-bdecf7c657f5 podid=20a613c4-eccf-4fdc-b8ca-c51df483326f clusterid=9a89bc12-bf00-496b-b1d8-8e92cdf1795f name=cloudbytevolume provider=elastistor url=nfs://10.10.171.137/cloudbytetest capacityiops=500 capacitybytes=214748364800 tags=cloudbytetest storagepool: name = cloudbytevolume id = 57f70aa4-659b-3b53-b8ab-2f712474f107 capacityiops = 500 clusterid = 9a89bc12-bf00-496b-b1d8-8e92cdf1795f clustername = test000 created = 2014-03-11T12:42:38+0530 disksizeallocated = 0 disksizetotal = 214748364800 hypervisor = Any ipaddress = 10.10.171.137 path = /cloudbytetest podid = 20a613c4-eccf-4fdc-b8ca-c51df483326f podname = test00 scope = CLUSTER state = Up tags = cloudbytetest type = NetworkFilesystem zoneid = dac7223c-6d09-4dcb-82fb-bdecf7c657f5 zonename = DevCloud0 * Deleting the primary storage based on cloudbyte storage plugin. cloudmonkey# delete storagepool id=57f70aa4-659b-3b53-b8ab-2f712474f107 success = true * creation of primary storage with negative capacityiops throws an exception. * creation of primary storage with already available name and ip throws an exception. Thanks, punith s