-----------------------------------------------------------
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

Reply via email to