cloudstack-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "punith s" <punit...@cloudbyte.com>
Subject Re: Review Request 19021: Cloudbyte Elastistor storage plug-in
Date Wed, 12 Mar 2014 16:12:16 GMT


> On March 12, 2014, 7:18 a.m., Mike Tutkowski wrote:
> > plugins/storage/volume/cloudbyte/pom.xml, line 1
> > <https://reviews.apache.org/r/19021/diff/1/?file=516003#file516003line1>
> >
> >     Looks like the license section is having some trouble with end-line chars

yea, checkstyle is not working on xml files in my workspace so. thanks.


> On March 12, 2014, 7:18 a.m., Mike Tutkowski wrote:
> > plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/driver/ElastistorPrimaryDataStoreDriver.java,
line 65
> > <https://reviews.apache.org/r/19021/diff/1/?file=516017#file516017line65>
> >
> >     It's OK to override this method, but if you're just going to call the base implementation,
it would be faster to not override this method.

yea , thanks for optimization , it'll do better now.


> On March 12, 2014, 7:18 a.m., Mike Tutkowski wrote:
> > plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/client/BaseCommand.java,
line 1
> > <https://reviews.apache.org/r/19021/diff/1/?file=516006#file516006line1>
> >
> >     Generally vendor-specific classes are not placed in generic CloudStack packages.
> >     
> >     Could you give me a little background regarding what an ElastiCenter command
is?
> >     
> >     Are these commands sent from your storage plug-in to your SAN?
> >     
> >     Please place all CloudByte classes/interfaces in CloudByte packages.
> >     
> >     Feel free to reference the SolidFire plug-in as an example.

yea i consider that, so now i have put all my elastistor rest client ,commands and response
java files in my util with reference to solidfire.

Elasticenter command is an interface which is being implemented by all the rest commands where
the plugin is issuing to elasticenter(management part of elastistor).

YES, all these commands which are put into my until now are being called to my SAN(elasticenter)
through storage plugin only.

yes now all of the Cloudbyte classes/interfaces are now placed into util class.

thanks mike.


- punith


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19021/#review36891
-----------------------------------------------------------


On March 12, 2014, 9:39 p.m., punith s wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19021/
> -----------------------------------------------------------
> 
> (Updated March 12, 2014, 9:39 p.m.)
> 
> 
> 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
> -----
> 
>   plugins/storage/volume/cloudbyte/pom.xml 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/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.
> 
> * if the elastistor params which are required for plugin configuration are not injected
through spring-storage-volume-cloudbyte-context.xml, it can be set from details map.
> 
> cloudmonkey# create storagepool scope=cluster zoneid=afacc706-3f4d-4f50-82e6-bf0f82959ba8
podid=821ad540-6c98-43f3-935d-72a47a319b20 clusterid=e0ced156-532e-4941-99c0-f34ff1727544
name=nfsvol provider=elastistor url=nfs://10.10.171.143/volnfs details[0].esaccountid=9e9f67d5-e06f-4d63-a0b8-e7255cba84b8
details[1].espoolid=d2d15d11-0f06-3426-a097-3e6e8b36f85c details[2].esdefaultgateway=10.10.1.1
details[3].essubnet=8  details[4].estntinterface=em0 details[5].esmanagementip=10.10.171.180
> details[6].esapikey=PubSInZaCji8hrRfOsCxgbug2I2k_sRJ0i2a9qmAzZIiCTcFPmZelzx6uNK9TYgqkdohCmq1L2J9eYmUe9YO6A
capacityiops=100 capacitybytes=214748364800
> 
> storagepool:
> name = nfsvol
> id = 7ea08bf6-777a-3553-8f1e-c3a9f9b626cb
> capacityiops = 100
> clusterid = e0ced156-532e-4941-99c0-f34ff1727544
> clustername = test000
> created = 2014-03-12T17:45:10+0530
> disksizeallocated = 0
> disksizetotal = 214748364800
> hypervisor = Any
> ipaddress = 10.10.171.143
> path = /volnfs
> podid = 821ad540-6c98-43f3-935d-72a47a319b20
> podname = test00
> scope = CLUSTER
> state = Up
> type = NetworkFilesystem
> zoneid = afacc706-3f4d-4f50-82e6-bf0f82959ba8
> zonename = DevCloud0
> 
> 
> Thanks,
> 
> punith s
> 
>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message