From 125770abffd04e8fb0db695902c02bbf34c85834 Mon Sep 17 00:00:00 2001 From: Igor Gajsin Date: Thu, 15 Sep 2016 17:56:22 +0300 Subject: [PATCH] add support of NetApp driver Change-Id: Ieef16ddfec9785221954c06c35d5a2df8a06c469 --- deployment_scripts/puppet/manifests/site.pp | 14 +++++- .../puppet/manifests/start_share.pp | 45 +++++++++++++------ .../manifests/backend/netapp.pp | 29 ++++++++++++ environment_config.yaml | 31 ++++++++++--- 4 files changed, 99 insertions(+), 20 deletions(-) create mode 100644 deployment_scripts/puppet/modules/manila_auxiliary/manifests/backend/netapp.pp diff --git a/deployment_scripts/puppet/manifests/site.pp b/deployment_scripts/puppet/manifests/site.pp index ddae26f..3c9db1b 100644 --- a/deployment_scripts/puppet/manifests/site.pp +++ b/deployment_scripts/puppet/manifests/site.pp @@ -50,11 +50,23 @@ $use_syslog = hiera('use_syslog') $public_ssl = hiera_hash('public_ssl', {}) +$fuel_manila_hash = hiera_hash('fuel-plugin-manila', {}) +$use_generic = $fuel_manila_hash['use-generic-driver'] +$use_netapp = $fuel_manila_hash['use-netapp-driver'] +if $use_netapp and $use_generic { + $shared_backends = 'generic,cdotMultipleSVM' +} +elsif $use_netapp { + $shared_backends = 'cdotMultipleSVM' +} +else { + $shared_backends = 'generic' +} class {'::manila_auxiliary': sql_connection => $sql_conn, - shared_backends => 'generic', #should be array of backends + shared_backends => $shared_backends, amqp_durable_queues => 'False', rabbit_userid => $amqp_user, rabbit_hosts => $amqp_hosts, diff --git a/deployment_scripts/puppet/manifests/start_share.pp b/deployment_scripts/puppet/manifests/start_share.pp index 1cc1756..a2e3ff8 100644 --- a/deployment_scripts/puppet/manifests/start_share.pp +++ b/deployment_scripts/puppet/manifests/start_share.pp @@ -17,22 +17,41 @@ notify {'MODULAR: fuel-plugin-manila/start_share': } $srv = 'manila-share' $desc = 'manila-share service' -$manila = hiera_hash('manila', {}) -$image = $manila['service_vm_image']['img_name'] -$share_driver = 'manila.share.drivers.generic.GenericShareDriver' +$fuel_manila_hash = hiera_hash('fuel-plugin-manila', {}) +$manila = hiera_hash('manila', {}) +$image = $manila['service_vm_image']['img_name'] -$backends = {'generic' => - {'share_backend_name' => 'generic', - 'driver_handles_share_servers' => 'true', - 'share_driver' => $share_driver, - 'service_instance_user' => 'manila', - 'service_instance_password' => 'manila', - 'service_image_name' => $image, - 'path_to_private_key' => '/var/lib/astute/manila/manila', - 'path_to_public_key' => '/var/lib/astute/manila/manila.pub', + +if $fuel_manila_hash['use-generic-driver'] { + $generic_share_driver = 'manila.share.drivers.generic.GenericShareDriver' + $generic_backends = {'generic' => + {'share_backend_name' => 'generic', + 'driver_handles_share_servers' => 'true', + 'share_driver' => $generic_share_driver, + 'service_instance_user' => 'manila', + 'service_instance_password' => 'manila', + 'service_image_name' => $image, + 'path_to_private_key' => '/var/lib/astute/manila/manila', + 'path_to_public_key' => '/var/lib/astute/manila/manila.pub', + } } + create_resources('::manila_auxiliary::backend::generic', $generic_backends) } +if $fuel_manila_hash['use-netapp-driver'] { + $netapp_backends = {'cdotMultipleSVM' => + {'netapp_transport_type' => $fuel_manila_hash['netapp-proto'], + 'netapp_server_hostname' => $fuel_manila_hash['netapp-host'], + 'netapp_server_port' => $fuel_manila_hash['netapp-port'], + 'netapp_login' => $fuel_manila_hash['netapp-user'], + 'netapp_password' => $fuel_manila_hash['netapp-pass'], + 'netapp_root_volume_aggregate' => $fuel_manila_hash['netapp-root_volume_aggregate'], + 'netapp_port_name_search_pattern' => $fuel_manila_hash['netapp-port_name_search_pattern'], + 'netapp_aggregate_name_search_pattern' => $fuel_manila_hash['netapp_aggregate_name_search_pattern'], + } + } + create_resources('::manila_auxiliary::backend::netapp', $netapp_backends) +} $inits = { 'manila-share' => { @@ -41,7 +60,7 @@ $inits = { } create_resources('::manila_auxiliary::initd', $inits) -create_resources('::manila_auxiliary::backend::generic', $backends) + service { 'manila-share': ensure => 'running', diff --git a/deployment_scripts/puppet/modules/manila_auxiliary/manifests/backend/netapp.pp b/deployment_scripts/puppet/modules/manila_auxiliary/manifests/backend/netapp.pp new file mode 100644 index 0000000..85b4630 --- /dev/null +++ b/deployment_scripts/puppet/modules/manila_auxiliary/manifests/backend/netapp.pp @@ -0,0 +1,29 @@ +define manila_auxiliary::backend::netapp ( + $share_driver = 'manila.share.drivers.netapp.common.NetAppDriver', + $driver_handles_share_servers = 'True', + $netapp_storage_family = 'ontap_cluster', + $netapp_server_hostname = undef, + $netapp_server_port = '80', + $netapp_login = undef, + $netapp_password = undef, + $netapp_transport_type = 'https', + $netapp_root_volume_aggregate = 'aggr1', + $netapp_aggregate_name_search_pattern = '^((?!aggr0).)*$', + $netapp_port_name_search_pattern = '^(e0a)$', + ) { + + manila_config { + "${name}/share_backend_name": value => $name; + "${name}/share_driver": value => $share_driver; + "${name}/driver_handles_share_servers": value => $driver_handles_share_servers; + "${name}/netapp_storage_family": value => $netapp_storage_family; + "${name}/netapp_server_hostname": value => $netapp_server_hostname; + "${name}/netapp_server_port": value => $netapp_server_port; + "${name}/netapp_login": value => $netapp_login; + "${name}/netapp_password": value => $netapp_password; + "${name}/netapp_transport_type": value => $netapp_transport_type; + "${name}/netapp_root_volume_aggregate": value => $netapp_root_volume_aggregate; + "${name}/netapp_aggregate_name_search_pattern": value => $netapp_aggregate_name_search_pattern; + "${name}/netapp_port_name_search_pattern": value => $netapp_port_name_search_pattern; + }~>Service['manila-share'] + } diff --git a/environment_config.yaml b/environment_config.yaml index dcdd920..071960e 100644 --- a/environment_config.yaml +++ b/environment_config.yaml @@ -28,9 +28,19 @@ attributes: label: 'Use the NetApp driver' description: 'Use the NetApp onTap storage as a backend for manila shares' - netapp-host: + netapp-proto: type: 'text' weight: 31 + value: '443' + label: 'NetApp transport type' + description: 'Transport protocol for communicating with the storage system' + restrictions: + - condition: "settings:fuel-plugin-manila.use-netapp-driver.value != true" + action: hide + + netapp-host: + type: 'text' + weight: 32 label: 'NetApp server hostname' description: 'Set the address, port and protocol for to the server access' value: "" @@ -38,9 +48,18 @@ attributes: - condition: "settings:fuel-plugin-manila.use-netapp-driver.value != true" action: hide + netapp-port: + type: 'text' + weight: 33 + value: 'http' + label: 'NetApp server port' + restrictions: + - condition: "settings:fuel-plugin-manila.use-netapp-driver.value != true" + action: hide + netapp-user: type: 'text' - weight: 32 + weight: 34 label: 'NetApp server username' description: 'Set the username for to the server access' value: "" @@ -49,7 +68,7 @@ attributes: action: hide netapp-pass: type: 'text' - weight: 33 + weight: 35 label: 'NetApp server password' description: 'Set the password for to the server access' value: "" @@ -59,7 +78,7 @@ attributes: netapp-root_volume_aggregate: type: 'text' - weight: 34 + weight: 36 label: 'NetApp root volume aggregate' description: 'Set the parameter netapp_root_volume_aggregate' value: 'aggr1' @@ -69,7 +88,7 @@ attributes: netapp-aggregate_name_search_pattern: type: 'text' - weight: 35 + weight: 37 label: 'NetApp search pattern for aggregation names' description: 'Set the parameter netapp_aggregate_name_search_pattern' value: '^((?!aggr0).)*$' @@ -79,7 +98,7 @@ attributes: netapp-port_name_search_pattern: type: 'text' - weight: 35 + weight: 38 label: 'NetApp search pattern for storage port names' description: 'Set the parameter netapp_port_name_search_pattern' value: '^(e0a)$'