Make retrieval of vmware_host_pass optional

Before this change, a non-vmware user would (without developer mode)
have to create a data bag item for this pass even when not using it,
because otherwise the get_secret's call would fail.

Plus, it's more in line with the other drivers.

Implements: blueprint vmware-password-databag
Change-Id: I48a6e23d6aa9abd106e65e70b40662c8d4cca5fc
This commit is contained in:
Stephan Renatus 2014-05-26 10:30:22 +02:00
parent 8b2ee6face
commit cef7dbd6c2
2 changed files with 13 additions and 10 deletions

View File

@ -45,10 +45,13 @@ elsif mq_service_type == 'qpid'
mq_password = get_password 'user', node['openstack']['mq']['block-storage']['qpid']['username']
end
if node['openstack']['block-storage']['volume']['driver'] == 'cinder.volume.drivers.solidfire.SolidFire'
case node['openstack']['block-storage']['volume']['driver']
when 'cinder.volume.drivers.solidfire.SolidFire'
solidfire_pass = get_password 'user', node['openstack']['block-storage']['solidfire']['san_login']
elsif node['openstack']['block-storage']['volume']['driver'] == 'cinder.volume.drivers.ibm.ibmnas.IBMNAS_NFSDriver'
when 'cinder.volume.drivers.ibm.ibmnas.IBMNAS_NFSDriver'
ibmnas_pass = get_password 'user', node['openstack']['block-storage']['ibmnas']['nas_login']
when 'cinder.volume.drivers.vmware.vmdk.VMwareVcVmdkDriver'
vmware_host_pass = get_secret node['openstack']['block-storage']['vmware']['secret_name']
end
glance_api_endpoint = endpoint 'image-api'
@ -61,8 +64,6 @@ directory '/etc/cinder' do
action :create
end
vmware_host_pass = get_secret node['openstack']['block-storage']['vmware']['secret_name']
template '/etc/cinder/cinder.conf' do
source 'cinder.conf.erb'
group node['openstack']['block-storage']['group']

View File

@ -472,14 +472,16 @@ describe 'openstack-block-storage::cinder-common' do
context 'vmware vmdk settings' do
before do
node.set['openstack']['block-storage']['volume']['driver'] = 'cinder.volume.drivers.vmware.vmdk.VMwareVcVmdkDriver'
%w(vmware_host_ip vmware_host_username
vmware_api_retry_count vmware_task_poll_interval vmware_volume_folder
vmware_image_transfer_timeout_secs vmware_max_objects_retrieval).each do |attr|
node.set['openstack']['block-storage']['vmware'][attr] = "vmware_#{attr}_value"
end
end
%w(vmware_host_ip vmware_host_username
vmware_api_retry_count vmware_task_poll_interval vmware_volume_folder
vmware_image_transfer_timeout_secs vmware_max_objects_retrieval).each do |attr|
it "has vmware #{attr} set" do
node.set['openstack']['block-storage']['vmware'][attr] = "vmware_#{attr}_value"
expect(chef_run).to render_file(file.name).with_content(/^#{attr} = vmware_#{attr}_value$/)
it 'has vmware attributes set' do
node['openstack']['block-storage']['vmware'].each do |attr, val|
expect(chef_run).to render_file(file.name).with_content(/^#{attr} = #{val}$/)
end
end