Also, Punith has already refactored his code as I asked to put it in
CloudByte-specific packages, so I think we're good to go.


On Thu, Mar 13, 2014 at 5:04 PM, Mike Tutkowski <
mike.tutkow...@solidfire.com> wrote:

> OK, if that's all we're checking, then I'm good with checking it in.
>
> Punith - Can you just close out those last issues in the review?
>
> Thanks!
>
>
> On Thu, Mar 13, 2014 at 5:02 PM, Edison Su <edison...@citrix.com> wrote:
>
>>  Hi Mike,
>>
>>    Seems some of your comments are related to the scope of their
>> implementation, such as do you support this, do you support that, can you
>> do this, can you do that etc. From my point of view, it's not important, as
>> the capability of driver is totally controlled by the vendors, vendors can
>> implement whatever functionalities they want. My criteria to check in the
>> code is very simple: the plugin should not modify common code.
>>
>>
>>
>> *From:* Mike Tutkowski [mailto:mike.tutkow...@solidfire.com]
>> *Sent:* Thursday, March 13, 2014 3:25 PM
>> *To:* Edison Su; Mike Tutkowski
>> *Cc:* punith s; cloudstack
>> *Subject:* Re: Review Request 19021: Cloudbyte Elastistor storage plug-in
>>
>>
>>
>> Hi Punith,
>>
>>
>>
>> Once you close out the open issues, we can work to get your code in.
>>
>>
>>
>> Feature freeze is Friday, March 14th, so we should do it sometime
>> tomorrow.
>>
>>
>>
>> Thanks!
>>
>>
>>
>> On Thu, Mar 13, 2014 at 4:24 PM, Mike Tutkowski <
>> mike.tutkow...@solidfire.com> wrote:
>>
>> This is an automatically generated e-mail. To reply, visit:
>> https://reviews.apache.org/r/19021/
>>
>>
>>
>> *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?
>>
>>
>>
>> - Mike Tutkowski
>>
>>
>>
>> On March 13th, 2014, 9:16 a.m. UTC, punith s wrote:
>>
>> Review request for cloudstack, edison su and Mike Tutkowski.
>>
>> By punith s.
>>
>> *Updated March 13, 2014, 9:16 a.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/>
>>
>>
>>
>>
>>
>> --
>> *Mike Tutkowski*
>>
>> *Senior CloudStack Developer, SolidFire Inc.*
>>
>> e: mike.tutkow...@solidfire.com
>>
>> o: 303.746.7302
>>
>> Advancing the way the world uses the 
>> cloud<http://solidfire.com/solution/overview/?video=play>
>> *(tm)*
>>
>
>
>
> --
> *Mike Tutkowski*
> *Senior CloudStack Developer, SolidFire Inc.*
> e: mike.tutkow...@solidfire.com
> o: 303.746.7302
> Advancing the way the world uses the 
> cloud<http://solidfire.com/solution/overview/?video=play>
> *(tm)*
>



-- 
*Mike Tutkowski*
*Senior CloudStack Developer, SolidFire Inc.*
e: mike.tutkow...@solidfire.com
o: 303.746.7302
Advancing the way the world uses the
cloud<http://solidfire.com/solution/overview/?video=play>
*(tm)*

Reply via email to