Added options for SolidFire as backend for Cinder.

Change-Id: I5b7b5aa297e700f67417200ad3b6604cf7a3e555
This commit is contained in:
Ed Balduf
2016-05-02 20:45:09 -06:00
parent 3b68a68ae1
commit 42cf149e4a
4 changed files with 93 additions and 2 deletions

View File

@@ -491,7 +491,7 @@ Cinder Config parameters
Password to use for the Block Storage service to authenticate with the Identity service. Password to use for the Block Storage service to authenticate with the Identity service.
**CONFIG_CINDER_BACKEND** **CONFIG_CINDER_BACKEND**
Storage backend to use for the Block Storage service; valid options are: lvm, gluster, nfs, vmdk, netapp. ['lvm', 'gluster', 'nfs', 'vmdk', 'netapp'] Storage backend to use for the Block Storage service; valid options are: lvm, gluster, nfs, vmdk, netapp, solidfire. ['lvm', 'gluster', 'nfs', 'vmdk', 'netapp', 'solidfire']
Cinder volume create Config parameters Cinder volume create Config parameters
-------------------------------------- --------------------------------------
@@ -605,6 +605,18 @@ Cinder NetApp E-Series configuration
**CONFIG_CINDER_NETAPP_STORAGE_POOLS** **CONFIG_CINDER_NETAPP_STORAGE_POOLS**
Restricts provisioning to the specified storage pools. Only dynamic disk pools are currently supported. The value must be a comma-separated list of disk pool names to be used for provisioning. Defaults to ''. Restricts provisioning to the specified storage pools. Only dynamic disk pools are currently supported. The value must be a comma-separated list of disk pool names to be used for provisioning. Defaults to ''.
Cinder SolidFire configuration
------------------------------
**CONFIG_CINDER_SOLIDFIRE_LOGIN**
Cluster admin account name used to access the SolidFire storage system.
**CONFIG_CINDER_SOLIDFIRE_PASSWORD**
Password for the SolidFire cluster admin user account specified in the CONFIG_CINDER_SOLIDFIRE_LOGIN parameter.
**CONFIG_CINDER_SOLIDFIRE_HOSTNAME**
Hostname (or IP address) for the SolidFire storage system's MVIP.
Manila Config parameters Manila Config parameters
------------------------ ------------------------

View File

@@ -89,7 +89,8 @@ def initConfig(controller):
{"CMD_OPTION": "cinder-backend", {"CMD_OPTION": "cinder-backend",
"PROMPT": "Enter the Cinder backend to be configured", "PROMPT": "Enter the Cinder backend to be configured",
"OPTION_LIST": ["lvm", "gluster", "nfs", "vmdk", "netapp"], "OPTION_LIST": ["lvm", "gluster", "nfs", "vmdk", "netapp",
"solidfire"],
"VALIDATORS": [validators.validate_options], "VALIDATORS": [validators.validate_options],
"DEFAULT_VALUE": "lvm", "DEFAULT_VALUE": "lvm",
"MASK_INPUT": False, "MASK_INPUT": False,
@@ -445,6 +446,45 @@ def initConfig(controller):
"USE_DEFAULT": True, "USE_DEFAULT": True,
"NEED_CONFIRM": False, "NEED_CONFIRM": False,
"CONDITION": False}, "CONDITION": False},
],
"CINDERSOLIDFIRE": [
{"CMD_OPTION": "cinder-solidfire-login",
"PROMPT": ("Enter the cluster admin login"),
"OPTION_LIST": [""],
"VALIDATORS": [validators.validate_not_empty],
"PROCESSORS": [],
"DEFAULT_VALUE": "",
"MASK_INPUT": False,
"LOOSE_VALIDATION": False,
"CONF_NAME": "CONFIG_CINDER_SOLIDFIRE_LOGIN",
"USE_DEFAULT": False,
"NEED_CONFIRM": False,
"CONDITION": False},
{"CMD_OPTION": "cinder-solidfire-password",
"PROMPT": ("Enter cluster admin password"),
"OPTION_LIST": [""],
"VALIDATORS": [validators.validate_not_empty],
"PROCESSORS": [],
"DEFAULT_VALUE": "",
"MASK_INPUT": True,
"LOOSE_VALIDATION": False,
"CONF_NAME": "CONFIG_CINDER_SOLIDFIRE_PASSWORD",
"USE_DEFAULT": False,
"NEED_CONFIRM": True,
"CONDITION": False},
{"CMD_OPTION": "cinder-solidfire-hostname",
"PROMPT": ("Enter a SolidFire hostname or IP"),
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
"PROCESSORS": [processors.process_add_quotes_around_values],
"DEFAULT_VALUE": "",
"MASK_INPUT": False,
"LOOSE_VALIDATION": False,
"CONF_NAME": "CONFIG_CINDER_SOLIDFIRE_HOSTNAME",
"USE_DEFAULT": False,
"NEED_CONFIRM": False,
"CONDITION": False},
] ]
} }
update_params_usage(basedefs.PACKSTACK_DOC, conf_params) update_params_usage(basedefs.PACKSTACK_DOC, conf_params)
@@ -532,6 +572,13 @@ def initConfig(controller):
"PRE_CONDITION": check_netapp_eseries_options, "PRE_CONDITION": check_netapp_eseries_options,
"PRE_CONDITION_MATCH": True, "PRE_CONDITION_MATCH": True,
"POST_CONDITION": False, "POST_CONDITION": False,
"POST_CONDITION_MATCH": True},
{"GROUP_NAME": "CINDERSOLIDFIRE",
"DESCRIPTION": "Cinder SolidFire configuration",
"PRE_CONDITION": check_solidfire_options,
"PRE_CONDITION_MATCH": True,
"POST_CONDITION": False,
"POST_CONDITION_MATCH": True} "POST_CONDITION_MATCH": True}
] ]
for group in conf_groups: for group in conf_groups:
@@ -634,6 +681,11 @@ def check_netapp_eseries_options(config):
config['CONFIG_CINDER_NETAPP_STORAGE_FAMILY'] == "eseries") config['CONFIG_CINDER_NETAPP_STORAGE_FAMILY'] == "eseries")
def check_solidfire_options(config):
return (config['CONFIG_CINDER_INSTALL'] == 'y' and
'solidfire' in config['CONFIG_CINDER_BACKEND'])
# -------------------------- step functions -------------------------- # -------------------------- step functions --------------------------
def check_cinder_vg(config, messages): def check_cinder_vg(config, messages):

View File

@@ -0,0 +1,18 @@
# Copyright (c) 2016, Edward Balduf. All rights reserved.
$solidfire_backend_name = 'solidfire'
cinder::backend::solidfire { $solidfire_backend_name :
san_ip => hiera('CONFIG_CINDER_SOLIDFIRE_LOGIN'),
san_login => hiera('CONFIG_CINDER_SOLIDFIRE_PASSWORD'),
san_password => hiera('CONFIG_CINDER_SOLIDFIRE_HOSTNAME'),
volume_backend_name => $solidfire_backend_name,
}
package { 'iscsi-initiator-utils': ensure => present }
cinder::type { $solidfire_backend_name:
set_key => 'volume_backend_name',
set_value => $solidfire_backend_name,
require => Class['cinder::api'],
}

View File

@@ -0,0 +1,9 @@
---
features:
- |
Added basic support for SolidFire storage as a backend to Cinder.
The following 3 config options have been added:
* CONFIG_CINDER_SOLIDFIRE_LOGIN - SolidFire cluster admin name.
* CONFIG_CINDER_SOLIDFIRE_PASSWORD - SolidFire cluster admin password.
* CONFIG_CINDER_SOLIDFIRE_HOSTNAME - SolidFire MVIP hostname or IP.