hi guys,

i have resolved all issues with fixes and refactoring of plugin code, its
good to go now ,
i'll submit once i get the ship it message. thanks for the review.


On Fri, Mar 14, 2014 at 11:19 AM, punith s <punit...@cloudbyte.com> wrote:

>    This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19021/
>
> On March 14th, 2014, 3:54 a.m. IST, *Mike Tutkowski* wrote:
>
>
> plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/lifecycle/ElastistorPrimaryDataStoreLifeCycle.java<https://reviews.apache.org/r/19021/diff/5/?file=518383#file518383line99>
>  (Diff
> revision 5)
>
> 99
>
>         if(details.get("esaccountid") != null)
>
>   Does this plug-in support multiple CloudByte SANs at the same time?
>
> It looks like whatever values you set most recently for ElastistorUtil will 
> be utilized if you don't provide them in the details. Is this OK if you don't 
> provide all of the details for your second or more SAN?
>
>  yes it will.
>
> yes, we are expecting admin to use cloudmonkey to create storage pool if the 
> elastistor params are not set for the first time.
> once the details are set he can use cloudstack UI to add or deleted storage 
> pools on the same SAN but if he wants to use different SAN
> we are expecting him to use cloudmonkey again to change elastistor params 
> through details map.
>
> thanks.
>
>
>
>
> - punith
>
> On March 13th, 2014, 2:46 p.m. IST, punith s wrote:
>   Review request for cloudstack, edison su and Mike Tutkowski.
> By punith s.
>
> *Updated March 13, 2014, 2:46 p.m.*
>  *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.
>
>   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
>
> * creation of volume on created storage pool.
> cloudmonkey# create volume zoneid=afacc706-3f4d-4f50-82e6-bf0f82959ba8 
> diskofferingid=f20e3b76-82e3-43d1-91e3-3ff337d7181d name=testvolume
>
> accountid = 819b1dfe-a9d3-11e3-a500-f46d04ee0527
> cmd = org.apache.cloudstack.api.command.user.volume.CreateVolumeCmd
> created = 2014-03-13T11:51:27+0530
> jobid = 596294b8-2b49-4b49-8526-9117cf56c95d
> jobprocstatus = 0
> jobresult:
> volume:
> name = testvolume
> id = e079281e-d822-4b90-9e85-9648350a0369
> account = admin
> created = 2014-03-13T11:51:27+0530
> destroyed = False
> diskofferingdisplaytext = Small Disk, 5 GB
> diskofferingid = f20e3b76-82e3-43d1-91e3-3ff337d7181d
> diskofferingname = Small
> displayvolume = True
> domain = ROOT
> domainid = 819ae3b6-a9d3-11e3-a500-f46d04ee0527
> isextractable = True
> jobid = 596294b8-2b49-4b49-8526-9117cf56c95d
> jobstatus = 0
> size = 5368709120
> state = Allocated
> storagetype = shared
> tags:
> type = DATADISK
> zoneid = afacc706-3f4d-4f50-82e6-bf0f82959ba8
> zonename = DevCloud0
> jobresultcode = 0
> jobresulttype = object
> jobstatus = 1
> userid = 819b856e-a9d3-11e3-a500-f46d04ee0527
>
> * attaching a specific volume.
> cloudmonkey# attach volume id=e079281e-d822-4b90-9e85-9648350a0369 
> virtualmachineid=3e6eeab1-e624-461e-94e0-230215a8dbc3
>
> accountid = 819b1dfe-a9d3-11e3-a500-f46d04ee0527
> cmd = org.apache.cloudstack.api.command.user.volume.AttachVolumeCmd
> created = 2014-03-13T11:55:09+0530
> jobid = 364d7636-72ad-410c-891c-c38ac34b6d42
> jobprocstatus = 0
> jobresult:
> volume:
> id = e079281e-d822-4b90-9e85-9648350a0369
> name = testvolume
> account = admin
> attached = 2014-03-13T11:55:11+0530
> created = 2014-03-13T11:51:27+0530
> destroyed = False
> deviceid = 2
> diskofferingdisplaytext = Small Disk, 5 GB
> diskofferingid = f20e3b76-82e3-43d1-91e3-3ff337d7181d
> diskofferingname = Small
> displayvolume = True
> domain = ROOT
> domainid = 819ae3b6-a9d3-11e3-a500-f46d04ee0527
> hypervisor = XenServer
> isextractable = True
> jobid = 364d7636-72ad-410c-891c-c38ac34b6d42
> jobstatus = 0
> size = 5368709120
> state = Ready
> storage = okay
> storagetype = shared
> tags:
> type = DATADISK
> virtualmachineid = 3e6eeab1-e624-461e-94e0-230215a8dbc3
> vmdisplayname = tiny
> vmname = tiny
> vmstate = Running
> zoneid = afacc706-3f4d-4f50-82e6-bf0f82959ba8
> zonename = DevCloud0
> jobresultcode = 0
> jobresulttype = object
> jobstatus = 1
> userid = 819b856e-a9d3-11e3-a500-f46d04ee0527
>
> *detaching a specific volume.
> cloudmonkey# detach volume id=e079281e-d822-4b90-9e85-9648350a0369
>
> accountid = 819b1dfe-a9d3-11e3-a500-f46d04ee0527
> cmd = org.apache.cloudstack.api.command.user.volume.DetachVolumeCmd
> created = 2014-03-13T11:57:40+0530
> jobid = 38fb6463-7d95-4d4c-8a50-1ec8a1c9ba98
> jobprocstatus = 0
> jobresult:
> volume:
> id = e079281e-d822-4b90-9e85-9648350a0369
> name = testvolume
> account = admin
> created = 2014-03-13T11:51:27+0530
> destroyed = False
> diskofferingdisplaytext = Small Disk, 5 GB
> diskofferingid = f20e3b76-82e3-43d1-91e3-3ff337d7181d
> diskofferingname = Small
> displayvolume = True
> domain = ROOT
> domainid = 819ae3b6-a9d3-11e3-a500-f46d04ee0527
> hypervisor = XenServer
> isextractable = True
> jobid = 38fb6463-7d95-4d4c-8a50-1ec8a1c9ba98
> jobstatus = 0
> size = 5368709120
> state = Ready
> storage = okay
> storagetype = shared
> tags:
> type = DATADISK
> zoneid = afacc706-3f4d-4f50-82e6-bf0f82959ba8
> zonename = DevCloud0
> jobresultcode = 0
> jobresulttype = object
> jobstatus = 1
> userid = 819b856e-a9d3-11e3-a500-f46d04ee0527
>
> *deleting a volume
> cloudmonkey# delete volume id=e079281e-d822-4b90-9e85-9648350a0369
> success = true
>
>   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/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/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/util/ElastistorUtil.java
>    (PRE-CREATION)
>
> View Diff <https://reviews.apache.org/r/19021/diff/>
>



-- 
regards,

punith s
cloudbyte.com

Reply via email to