From 094e023ccc709de91f7852ed496ee14730339fbf Mon Sep 17 00:00:00 2001 From: Mark Vanderwiel Date: Wed, 17 Sep 2014 10:54:52 -0500 Subject: [PATCH] Add attribute for ibm nas stroage driver ibmnas_platform_type * Add new ibmnas_platform_type attribute * Fix minor bug with nas_ssh_port Change-Id: I147fbb75cf75357f578e4f84a0d898149be9b1d0 Closes-Bug: #1370574 --- CHANGELOG.md | 1 + README.md | 2 ++ attributes/default.rb | 6 ++++++ spec/cinder_common_spec.rb | 15 ++++++++++++--- templates/default/cinder.conf.erb | 4 ++++ 5 files changed, 25 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e1760bf..d897d6e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ openstack-block-storage Cookbook CHANGELOG This file is used to list changes made in each version of the openstack-block-storage cookbook. ## 10.0.1 # Update cinder.conf mode from 0644 to 0640 +* Add attribute for ibmnas_platform_type ## 10.0.0 * Upgrading to Juno diff --git a/README.md b/README.md index a40aa4e..5dd4eb8 100644 --- a/README.md +++ b/README.md @@ -172,10 +172,12 @@ Cinder attributes * `openstack['block-storage']['ibmnas']['nas_ip']` - Management IP address of IBMNAS storage * `openstack['block-storage']['ibmnas']['nas_login']` - Username for IBMNAS storage system * `openstack['block-storage']['ibmnas']['nas_access_ip']` - Hostname/Public IP address to access shares +* `openstack['block-storage']['ibmnas']['nas_ssh_port']` - ssh port of IBMNAS storage * `openstack['block-storage']['ibmnas']['export']` - Storage system shares/export path parameter * `openstack['block-storage']['ibmnas']['shares_config']` - File that contains list of IBMNAS Shares * `openstack['block-storage']['ibmnas']['mount_point_base']` - Storage system autoexpand parameter for volumes * `openstack['block-storage']['ibmnas']['nfs_sparsed_volumes']` - Storage system volume creation method +* `openstack['block-storage']['ibmnas']['ibmnas_platform_type']` - Platform type to be used as backend storage ### Multiple backends attributes ### * `openstack['block-storage']['volume']['multi_backend']` - Hash map to indicate multiple backends sections, e.g. { 'lvm1' => { 'volume_driver' => 'cinder.volume.drivers.lvm.LVMISCSIDriver', 'volume_backend_name' => 'lvm1' }, 'lvm2' => { 'volume_driver' => 'cinder.volume.drivers.lvm.LVMISCSIDriver', 'volume_backend_name' => 'lvm2' } } diff --git a/attributes/default.rb b/attributes/default.rb index 401d8b4..bc58b6d 100644 --- a/attributes/default.rb +++ b/attributes/default.rb @@ -191,11 +191,17 @@ default['openstack']['block-storage']['gpfs']['gpfs_storage_pool'] = 'system' # accessed with openstack-common cookbook library's "get_password" routeine. default['openstack']['block-storage']['ibmnas']['nas_ip'] = node['openstack']['block-storage']['nfs']['nas_ip'] default['openstack']['block-storage']['ibmnas']['nas_login'] = node['openstack']['block-storage']['nfs']['nas_login'] +default['openstack']['block-storage']['ibmnas']['nas_ssh_port'] = node['openstack']['block-storage']['nfs']['nas_ssh_port'] default['openstack']['block-storage']['ibmnas']['shares_config'] = '/etc/cinder/nfs_shares.conf' default['openstack']['block-storage']['ibmnas']['mount_point_base'] = '/mnt/cinder-volumes' default['openstack']['block-storage']['ibmnas']['nfs_sparsed_volumes'] = 'true' default['openstack']['block-storage']['ibmnas']['nas_access_ip'] = nil default['openstack']['block-storage']['ibmnas']['export'] = nil +# Platform type to be used as backend storage, valid values are: +# 'v7ku : for using IBM Storwize V7000 Unified +# 'sonas : for using IBM Scale Out NAS +# 'gpfs-nas : for using NFS based IBM GPFS deployments +default['openstack']['block-storage']['ibmnas']['ibmnas_platform_type'] = 'v7ku' # logging attribute default['openstack']['block-storage']['syslog']['use'] = false diff --git a/spec/cinder_common_spec.rb b/spec/cinder_common_spec.rb index 3125e42..a4f6d6f 100644 --- a/spec/cinder_common_spec.rb +++ b/spec/cinder_common_spec.rb @@ -456,15 +456,24 @@ describe 'openstack-block-storage::cinder-common' do expect(chef_run).to render_file(file.name).with_content(/^nfs_sparsed_volumes=ibmnas_nfs_sparsed_volumes_value$/) end - %w(nas_ip nas_login nas_ssh_port).each do |attr| + %w(nas_ip nas_login nas_ssh_port ibmnas_platform_type).each do |attr| it "has a ibmnas #{attr} attribute" do node.set['openstack']['block-storage']['ibmnas'][attr] = "ibmnas_#{attr}_value" expect(chef_run).to render_file(file.name).with_content(/^#{attr}=ibmnas_#{attr}_value$/) end end - it 'has a nas_password attribute' do - expect(chef_run).to render_file(file.name).with_content(/^nas_password=#{test_pass}$/) + it 'has a default attributes' do + %w(nas_ip=127.0.0.1 + nas_login=admin + nas_password=test_pass + nas_ssh_port=22 + ibmnas_platform_type=v7ku + nfs_sparsed_volumes=true + nfs_mount_point_base=/mnt/cinder-volumes + nfs_shares_config=/etc/cinder/nfs_shares.conf).each do |attr| + expect(chef_run).to render_file(file.name).with_content(/^#{attr}$/) + end end end diff --git a/templates/default/cinder.conf.erb b/templates/default/cinder.conf.erb index 1f2d2b3..1748432 100644 --- a/templates/default/cinder.conf.erb +++ b/templates/default/cinder.conf.erb @@ -848,6 +848,10 @@ nas_password=<%= @ibmnas_pass %> nas_ssh_port=<%= node["openstack"]["block-storage"]["ibmnas"]["nas_ssh_port"] %> #### (StrOpt) IP address of IBMNAS storage + +ibmnas_platform_type=<%= node["openstack"]["block-storage"]["ibmnas"]["ibmnas_platform_type"] %> +#### (StrOpt) IBMNAS platform type to be used as backend storage + <% end %> ######## defined in cinder.volume.xiv ########