Add transport option for glusterfs storage

Signed-off-by: Stoyan Marinov <stoyan@marinov.us>
bump version to 3.0-24
fix modification of read only bug

Signed-off-by: Michael Rasmussen <mir@datanom.net>
bump version to 3.0-25
rbd, zfs, sheepdog: bugfix : fix alloc_image if name is specified

Currently vmstate snapshot with rbd have wrong name,
because rbd alloc_image don't care if $name is provided

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
bump version to 3.0-26
This patch refactors ZFS's LUN management code, removing the existing
LunCmds implementations, in favor of a single lun management infraestructure
which just invokes a 'management helper' (which can be either an script or a
native binary) which is invoked for lun creation/deletion/etc.

The 'protocol' which proxmox uses to communicate with the helper is simply
based on exposing a set of environment variables along with a few command
line arguments which are passed to helper script. This is based on the
same concept around CGI, AGI, and other similar decoupled invocation protocols.

Also, the helper can be invoked either locally or remotelly thru ssh (just
the same way it goes for invoking zfs itself), and some 'commands' expect
some kind of output as response (as it happends with Comstar's code). And
of course, helper's exit code is honored, so a non-zero exit code is
considered an error.

The actual commands supported by the 'helper protocol' are:

* create-lu
  - Arguments: full_zvol_device_path
  - Description: This command should handle creation of a LUN entry for the
                 given ZVOL device, and it is expected to return the LUN's
                 unique-id as output.

* resize-lu
  - Arguments: size uuid_of_lu
  - Description: This command should handle resizing of an specified LU's
		 attached ZVOL device.

* delete-lu
  - Arguments: uuid_of_lu
  - Description: This command should delete the specified LUN entry.

* share-lu
  - Arguments: full_zvol_device_path
  - Description: This command should (if not already done by 'create-lun')
                 expose/publish the LUN attached to the specified ZVOL.
                 Or do nothing if creation and sharing of LUN are both
                 tasks executed by 'create-lun'.

* get-lun-id
  - Arguments: uuid_of_lu
  - Description: This command should return the LUN number of the given
                 LUN unique-id as output.

* get-lun-no
  - Arguments: uuid_of_lu
  - Description: This command should return the given ZVOL/LUN's number.

This actual commands are modelled after the ones invoked by Comstar's LunCmd
perl module, which even if it maybe a bit too coupled to Comstar's/Solaris'
way of doing things. It seems to be flexible enough as to be usefull for other
implementations (as there are already one for Iet and one for BSD's Istgt).
Remove now deprecated LunCmd drivers.
Do not expose every value from storage.cfg as PMXCFG_*, and instead
expose those few 'usefull' values like portal, target, pool, etc.
Everything else should be handled by helper's own configuration
mechanism.
Added existing LunCmd code rewritten as independent scripts
Implemented --remote option to zfs helper scripts, allowing local vs remote execution.
Added missing 'import-lu' command to refactored ZFSPlugin.
This patch refactors ZFS's LUN management code, removing the existing
LunCmds implementations, in favor of a single lun management infraestructure
which just invokes a 'management helper' (which can be either an script or a
native binary) which is invoked for lun creation/deletion/etc.

The 'protocol' which proxmox uses to communicate with the helper is simply
based on exposing a set of environment variables along with a few command
line arguments which are passed to helper script. This is based on the
same concept around CGI, AGI, and other similar decoupled invocation protocols.

Also, the helper can be invoked either locally or remotelly thru ssh (just
the same way it goes for invoking zfs itself), and some 'commands' expect
some kind of output as response (as it happends with Comstar's code). And
of course, helper's exit code is honored, so a non-zero exit code is
considered an error.

The actual commands supported by the 'helper protocol' are:

* create-lu
  - Arguments: full_zvol_device_path
  - Description: This command should handle creation of a LUN entry for the
                 given ZVOL device, and it is expected to return the LUN's
                 unique-id as output.

* resize-lu
  - Arguments: size uuid_of_lu
  - Description: This command should handle resizing of an specified LU's
		 attached ZVOL device.

* delete-lu
  - Arguments: uuid_of_lu
  - Description: This command should delete the specified LUN entry.

* share-lu
  - Arguments: full_zvol_device_path
  - Description: This command should (if not already done by 'create-lun')
                 expose/publish the LUN attached to the specified ZVOL.
                 Or do nothing if creation and sharing of LUN are both
                 tasks executed by 'create-lun'.

* get-lun-id
  - Arguments: uuid_of_lu
  - Description: This command should return the LUN number of the given
                 LUN unique-id as output.

* get-lun-no
  - Arguments: uuid_of_lu
  - Description: This command should return the given ZVOL/LUN's number.

This actual commands are modelled after the ones invoked by Comstar's LunCmd
perl module, which even if it maybe a bit too coupled to Comstar's/Solaris'
way of doing things. It seems to be flexible enough as to be usefull for other
implementations (as there are already one for Iet and one for BSD's Istgt).
Remove now deprecated LunCmd drivers.
Added existing LunCmd code rewritten as independent scripts
Implemented --remote option to zfs helper scripts, allowing local vs remote execution.
Initial multipath support.
Fix resize of multipath device
Fix syntax
Added missing files to Makefile's install target