diff --git a/manifests/backend/vsphere.pp b/manifests/backend/vsphere.pp index ccf6ef4c..c4393daa 100644 --- a/manifests/backend/vsphere.pp +++ b/manifests/backend/vsphere.pp @@ -1,7 +1,7 @@ # # Copyright (C) 2014 Mirantis # -# Author: Steapn Rogov +# Author: Stepan Rogov # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain @@ -21,16 +21,33 @@ # # === Parameters # -# [*vcenter_api_insecure*] -# (optional) Allow to perform insecure SSL requests to vCenter/ESXi. -# Should be a valid string boolean value -# Defaults to 'True' +# [*vcenter_insecure*] +# (optional) If true, the ESX/vCenter server certificate is not verified. +# If false, then the default CA truststore is used for verification. +# This option is ignored if "vcenter_ca_file" is set. +# Defaults to 'True'. # # [*vcenter_ca_file*] # (optional) The name of the CA bundle file which will be used in # verifying vCenter server certificate. If parameter is not set -# then system truststore is used. If parameter is set, vcenter_api_insecure -# value is ignored. +# then system truststore is used. If parameter is set, +# vcenter_insecure value is ignored. +# Defaults to $::os_service_default. +# +# [*vcenter_datastores*] +# (Multi-valued) A list of datastores where the image +# can be stored. This option may be specified multiple times +# for specifying multiple datastores. The datastore name should +# be specified after its datacenter path, seperated by ":". +# An optional weight may be given after the datastore name, +# seperated again by ":". Thus, the required format +# becomes ::. +# When adding an image, the datastore with highest weight will be selected, +# unless there is not enough free space available in cases where the image +# size is already known. If no weight is given, it is assumed to be +# zero and the directory will be considered for selection last. +# If multiple datastores have the same weight, then the one with the most +# free space available is selected. # Defaults to $::os_service_default. # # [*vcenter_host*] @@ -43,13 +60,6 @@ # [*vcenter_password*] # (required) Password for authenticating with vCenter/ESXi server. # -# [*vcenter_datacenter*] -# (required) Inventory path to a datacenter. -# If you want to use ESXi host as datastore,it should be "ha-datacenter". -# -# [*vcenter_datastore*] -# (required) Datastore associated with the datacenter. -# # [*vcenter_image_dir*] # (required) The name of the directory where the glance images will be stored # in the VMware datastore. @@ -62,56 +72,96 @@ # [*vcenter_api_retry_count*] # (optional) Number of times VMware ESX/VC server API must be retried upon # connection related issues. -# Defaults to $::os_service_default. +# Defaults to $::os_service_default. # # [*multi_store*] # (optional) Boolean describing if multiple backends will be configured -# Defaults to false +# Defaults to false. # # [*glare_enabled*] # (optional) Whether enabled Glance Glare API. -# Defaults to false +# Defaults to false. +# +# DEPRECATED PARAMETERS +# +# [*vcenter_api_insecure*] +# (optional) DEPRECATED. Allow to perform insecure SSL requests to ESX/VC. +# Defaults to undef. +# +# [*vcenter_datacenter*] +# (optional) DEPRECATED. Inventory path to a datacenter. +# If the vmware_server_host specified is an ESX/ESXi, +# the vcenter_datacenter is optional. If specified, +# it should be "ha-datacenter". This option is deprecated +# in favor of vcenter_datastores and will be removed. +# Defaults to undef. +# +# [*vcenter_datastore*] +# (optional) DEPRECATED. Datastore associated with the datacenter. +# This option is deprecated in favor of vcenter_datastores +# and will be removed. +# Defaults to undef. # class glance::backend::vsphere( $vcenter_host, $vcenter_user, $vcenter_password, - $vcenter_datacenter, - $vcenter_datastore, $vcenter_image_dir, $vcenter_ca_file = $::os_service_default, - $vcenter_api_insecure = 'True', + $vcenter_datastores = $::os_service_default, + $vcenter_insecure = 'True', $vcenter_task_poll_interval = $::os_service_default, $vcenter_api_retry_count = $::os_service_default, $multi_store = false, $glare_enabled = false, + # DEPRECATED PARAMETERS + $vcenter_datacenter = undef, + $vcenter_datastore = undef, + $vcenter_api_insecure = undef, ) { + if $vcenter_api_insecure { + warning('The vcenter_api_insecure parameter is deprecated, use parameter vcenter_insecure') + $vmware_insecure_real = $vcenter_api_insecure + } + else { + $vmware_insecure_real = $vcenter_insecure + } + + if $vcenter_datacenter and $vcenter_datastore { + warning('The vcenter_datacenter and vcenter_datastore parameters is deprecated, use parameter vcenter_datastores') + $vmware_datastores_real = "${vcenter_datacenter}:${vcenter_datastore}" + } + elsif !is_service_default($vcenter_datastores) { + $vmware_datastores_real = $vcenter_datastores + } + else { + fail('Parameter vcenter_datastores or vcenter_datacenter and vcenter_datastore must be provided') + } + glance_api_config { - 'glance_store/vmware_api_insecure': value => $vcenter_api_insecure; + 'glance_store/vmware_insecure': value => $vmware_insecure_real; 'glance_store/vmware_ca_file': value => $vcenter_ca_file; 'glance_store/vmware_server_host': value => $vcenter_host; 'glance_store/vmware_server_username': value => $vcenter_user; 'glance_store/vmware_server_password': value => $vcenter_password; - 'glance_store/vmware_datastore_name': value => $vcenter_datastore; 'glance_store/vmware_store_image_dir': value => $vcenter_image_dir; 'glance_store/vmware_task_poll_interval': value => $vcenter_task_poll_interval; 'glance_store/vmware_api_retry_count': value => $vcenter_api_retry_count; - 'glance_store/vmware_datacenter_path': value => $vcenter_datacenter; + 'glance_store/vmware_datastores': value => $vmware_datastores_real; } if $glare_enabled { glance_glare_config { - 'glance_store/vmware_api_insecure': value => $vcenter_api_insecure; + 'glance_store/vmware_insecure': value => $vmware_insecure_real; 'glance_store/vmware_ca_file': value => $vcenter_ca_file; 'glance_store/vmware_server_host': value => $vcenter_host; 'glance_store/vmware_server_username': value => $vcenter_user; 'glance_store/vmware_server_password': value => $vcenter_password; - 'glance_store/vmware_datastore_name': value => $vcenter_datastore; 'glance_store/vmware_store_image_dir': value => $vcenter_image_dir; 'glance_store/vmware_task_poll_interval': value => $vcenter_task_poll_interval; 'glance_store/vmware_api_retry_count': value => $vcenter_api_retry_count; - 'glance_store/vmware_datacenter_path': value => $vcenter_datacenter; + 'glance_store/vmware_datastores': value => $vmware_datastores_real; } } diff --git a/releasenotes/notes/deprecate_old_vsphere_backend_parameters-8d798bd64b750911.yaml b/releasenotes/notes/deprecate_old_vsphere_backend_parameters-8d798bd64b750911.yaml new file mode 100644 index 00000000..9d25b987 --- /dev/null +++ b/releasenotes/notes/deprecate_old_vsphere_backend_parameters-8d798bd64b750911.yaml @@ -0,0 +1,5 @@ +--- +upgrade: + - vmware_api_insecure deprecated, use vmware_insecure + vmware_datacenter_path and vmware_datastore_name + deprecated, use vmware_datastores diff --git a/spec/classes/glance_backend_vsphere_spec.rb b/spec/classes/glance_backend_vsphere_spec.rb index af555b89..665742cb 100644 --- a/spec/classes/glance_backend_vsphere_spec.rb +++ b/spec/classes/glance_backend_vsphere_spec.rb @@ -34,35 +34,32 @@ describe 'glance::backend::vsphere' do :vcenter_host => '10.0.0.1', :vcenter_user => 'root', :vcenter_password => '123456', - :vcenter_datacenter => 'Datacenter', - :vcenter_datastore => 'Datastore', + :vcenter_datastores => 'Datacenter:Datastore', :vcenter_image_dir => '/openstack_glance', } end it 'configures glance-api.conf' do is_expected.to contain_glance_api_config('glance_store/default_store').with_value('vsphere') - is_expected.to contain_glance_api_config('glance_store/vmware_api_insecure').with_value('True') + is_expected.to contain_glance_api_config('glance_store/vmware_insecure').with_value('True') is_expected.to contain_glance_api_config('glance_store/vmware_server_host').with_value('10.0.0.1') is_expected.to contain_glance_api_config('glance_store/vmware_server_username').with_value('root') is_expected.to contain_glance_api_config('glance_store/vmware_server_password').with_value('123456') - is_expected.to contain_glance_api_config('glance_store/vmware_datastore_name').with_value('Datastore') is_expected.to contain_glance_api_config('glance_store/vmware_store_image_dir').with_value('/openstack_glance') is_expected.to contain_glance_api_config('glance_store/vmware_task_poll_interval').with_value('') is_expected.to contain_glance_api_config('glance_store/vmware_api_retry_count').with_value('') - is_expected.to contain_glance_api_config('glance_store/vmware_datacenter_path').with_value('Datacenter') + is_expected.to contain_glance_api_config('glance_store/vmware_datastores').with_value('Datacenter:Datastore') is_expected.to contain_glance_api_config('glance_store/vmware_ca_file').with_value('') end it 'not configures glance-glare.conf' do is_expected.to_not contain_glance_glare_config('glance_store/default_store').with_value('vsphere') - is_expected.to_not contain_glance_glare_config('glance_store/vmware_api_insecure').with_value('True') + is_expected.to_not contain_glance_glare_config('glance_store/vmware_insecure').with_value('True') is_expected.to_not contain_glance_glare_config('glance_store/vmware_server_host').with_value('10.0.0.1') is_expected.to_not contain_glance_glare_config('glance_store/vmware_server_username').with_value('root') is_expected.to_not contain_glance_glare_config('glance_store/vmware_server_password').with_value('123456') - is_expected.to_not contain_glance_glare_config('glance_store/vmware_datastore_name').with_value('Datastore') is_expected.to_not contain_glance_glare_config('glance_store/vmware_store_image_dir').with_value('/openstack_glance') is_expected.to_not contain_glance_glare_config('glance_store/vmware_task_poll_interval').with_value('') is_expected.to_not contain_glance_glare_config('glance_store/vmware_api_retry_count').with_value('') - is_expected.to_not contain_glance_glare_config('glance_store/vmware_datacenter_path').with_value('Datacenter') + is_expected.to_not contain_glance_glare_config('glance_store/vmware_datastores').with_value('Datacenter:Datastore') is_expected.to_not contain_glance_glare_config('glance_store/vmware_ca_file').with_value('') end end @@ -73,8 +70,7 @@ describe 'glance::backend::vsphere' do :vcenter_host => '10.0.0.1', :vcenter_user => 'root', :vcenter_password => '123456', - :vcenter_datacenter => 'Datacenter', - :vcenter_datastore => 'Datastore', + :vcenter_datastores => 'Datacenter:Datastore', :vcenter_image_dir => '/openstack_glance', :vcenter_ca_file => '/etc/glance/vcenter-ca.pem', :vcenter_task_poll_interval => '6',