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

(Updated March 13, 2014, 12:52 p.m.)


Review request for cloudstack, edison su and Mike Tutkowski.


Changes
-------

after deleting a white space in cloudbyte/pom.xml


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 (updated)
-----

  plugins/storage/volume/cloudbyte/pom.xml 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

* 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


Thanks,

punith s

Reply via email to