]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commit
Provide HP 3PAR array iSCSI driver
authorWalter A. Boring IV <walter.boring@hp.com>
Tue, 18 Dec 2012 22:16:33 +0000 (14:16 -0800)
committerWalter A. Boring IV <walter.boring@hp.com>
Tue, 8 Jan 2013 22:09:55 +0000 (14:09 -0800)
commit027b78a214e1f7ab7bbda342a024cb13dae8944d
tree944cf421ded63fc7fc5328c340fd2962b66e049f
parent93bb58732ddb1f2e561347f35699f66c5263ac02
Provide HP 3PAR array iSCSI driver

implements blueprint hp3par-volume-driver

We have the driver broken into 2 files:
hp_3par_common.py and
hp_3par_iscsi.py

The reason we do this is because we have a fibre channel driver
that will be submitted shortly after this is committed.   The
fibre channel driver and the iscsi driver share a lot of the same
code that talks to the 3PAR array for provisioning.  So,
it made sense not to have duplicate code.  The fibre channel driver
will be dependent on the fibre channel support I am actively working
on for nova/cinder grizzly release.

The driver uses a 2 mechanisms to talk to the 3PAR array:
1) a python REST client (hp3parclient) that lives in the pypi
   repository here:
   http://pypi.python.org/pypi/hp3parclient

2) SSH.  We had to pull in some of the ssh code from the base san
   driver to help fix an issue with executing commands on the 3PAR
   array.  The 3PAR has the ability to turn on CSV output for command
   results, which makes this easier to parse.  Unfortunately, there
   is no way to turn CSV mode on permanently for all ssh requests.
   So, we have to turn on the CSV output for every single ssh command
   issued.  Since we use ssh as well, we require the san_* options
   to be set.

We use a dual mechianism because the REST API that ships with the 3.1.2
firmware doesn't support all of the capabilities a cinder driver needs
to export volumes.

When a newer version of the firmware comes out that supports host
management on the 3PAR array, then we will get rid of the SSH code.

Change-Id: I9826ba1a36e27a9be05457ee9236a491dbfd0713
cinder/tests/test_hp3par_iscsi.py [new file with mode: 0644]
cinder/volume/drivers/san/hp/__init__.py [new file with mode: 0644]
cinder/volume/drivers/san/hp/hp_3par_common.py [new file with mode: 0644]
cinder/volume/drivers/san/hp/hp_3par_iscsi.py [new file with mode: 0644]
etc/cinder/cinder.conf.sample
tools/test-requires