From c5e70d1e56d9c837400eed4c8d0aad6e2731b880 Mon Sep 17 00:00:00 2001 From: Andy McCrae Date: Thu, 13 Feb 2014 11:18:50 +0000 Subject: [PATCH] Add volume_clear & volume_clear_size options for LVM - Split out LVM configuration using LVM Driver - Add volume_clear_size & volume_clear attributes/configuration - Add tests for these values Change-Id: I07376e3b3152e986ba1efeb9f1773fba1c4c436d Closes-Bug: #1279756 --- README.md | 2 ++ attributes/default.rb | 3 +++ spec/cinder_common_spec.rb | 24 ++++++++++++++++++++++++ templates/default/cinder.conf.erb | 5 ++++- 4 files changed, 33 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a0c0f80..8478876 100644 --- a/README.md +++ b/README.md @@ -86,6 +86,8 @@ Cinder attributes * `openstack["block-storage"]["platform"]` - hash of platform specific package/service names and options * `openstack["block-storage"]["volume"]["state_path"]` - Top-level directory for maintaining cinder's state * `openstack["block-storage"]["volume"]["driver"]` - Driver to use for volume creation +* `openstack["block-storage"]["volume"]["volume_clear"]` - Defines the method for clearing volumes on a volume delete possible options: 'zero', 'none', 'shred' (https://review.openstack.org/#/c/12521/) +* `openstack["block-storage"]["volume"]["volume_clear_size"]` - size in MB used to limit the cleared area on deleting a volume, to the first part of the volume only. (default 0 = all MB) * `openstack["block-storage"]["volume"]["volume_group"]` - Name for the VG that will contain exported volumes * `openstack["block-storage"]["voluem"]["volume_group_size"]` - The size (GB) of volume group (default is 40) * `openstack["block-storage"]["voluem"]["create_volume_group"]` - Create volume group or not when using the LVMISCSIDriver (default is false) diff --git a/attributes/default.rb b/attributes/default.rb index 9ea9c08..b0543cf 100644 --- a/attributes/default.rb +++ b/attributes/default.rb @@ -140,6 +140,9 @@ default['openstack']['block-storage']['volume']['volumes_dir'] = '/var/lib/cinde default['openstack']['block-storage']['volume']['driver'] = 'cinder.volume.drivers.lvm.LVMISCSIDriver' default['openstack']['block-storage']['volume']['volume_group'] = 'cinder-volumes' default['openstack']['block-storage']['volume']['volume_group_size'] = 40 +default['openstack']['block-storage']['volume']['volume_clear_size'] = 0 +default['openstack']['block-storage']['volume']['volume_clear'] = 'zero' + default['openstack']['block-storage']['volume']['create_volume_group'] = false default['openstack']['block-storage']['volume']['iscsi_helper'] = 'tgtadm' default['openstack']['block-storage']['volume']['iscsi_ip_address'] = node['ipaddress'] diff --git a/spec/cinder_common_spec.rb b/spec/cinder_common_spec.rb index 73dd631..3679567 100644 --- a/spec/cinder_common_spec.rb +++ b/spec/cinder_common_spec.rb @@ -216,6 +216,30 @@ describe 'openstack-block-storage::cinder-common' do expect(@chef_run).to render_file(@file.name).with_content('notification_driver=cinder.test_driver') end end + + describe 'lvm settings' do + before do + @chef_run = ::ChefSpec::Runner.new(::UBUNTU_OPTS) do |n| + n.set['openstack']['block-storage']['volume']['driver'] = 'cinder.volume.drivers.lvm.LVMISCSIDriver' + n.set['openstack']['block-storage']['volume']['volume_group'] = 'test-group' + n.set['openstack']['block-storage']['volume']['volume_clear_size'] = 100 + n.set['openstack']['block-storage']['volume']['volume_clear'] = 'none' + end + @chef_run.converge 'openstack-block-storage::cinder-common' + end + + it 'has volume_group' do + expect(@chef_run).to render_file(@file.name).with_content('volume_group=test-group') + end + + it 'has volume_clear_size' do + expect(@chef_run).to render_file(@file.name).with_content('volume_clear_size=100') + end + + it 'has volume_clear' do + expect(@chef_run).to render_file(@file.name).with_content('volume_clear=none') + end + end end describe '/var/lock/cinder' do diff --git a/templates/default/cinder.conf.erb b/templates/default/cinder.conf.erb index 8036ad3..2e9ecee 100644 --- a/templates/default/cinder.conf.erb +++ b/templates/default/cinder.conf.erb @@ -535,10 +535,13 @@ max_gigabytes=<%= node["openstack"]["block-storage"]["max_gigabytes"] %> ######## defined in cinder.volume.driver ######## - +<% if node["openstack"]["block-storage"]["volume"]["driver"] == "cinder.volume.drivers.lvm.LVMISCSIDriver" %> volume_group=<%= node["openstack"]["block-storage"]["volume"]["volume_group"] %> #### (StrOpt) Name for the VG that will contain exported volumes +volume_clear=<%= node["openstack"]["block-storage"]["volume"]["volume_clear"] %> +volume_clear_size=<%= node["openstack"]["block-storage"]["volume"]["volume_clear_size"] %> +<% end %> # num_shell_tries=3 #### (IntOpt) number of times to attempt to run flakey shell commands