exit application if domain setting is used

This commit is contained in:
Jake Spain 2023-03-14 07:42:38 -04:00
parent 527f42cca9
commit 528e9635d1
No known key found for this signature in database
GPG key ID: BC1C4DA0A085E113
3 changed files with 74 additions and 0 deletions

View file

@ -76,6 +76,10 @@ module Vmpooler
parsed_config[:config]['prefix'] = ENV['PREFIX'] || parsed_config[:config]['prefix'] || ''
parsed_config[:config]['logfile'] = ENV['LOGFILE'] if ENV['LOGFILE']
parsed_config[:config]['site_name'] = ENV['SITE_NAME'] if ENV['SITE_NAME']
if !parsed_config[:config]['domain'].nil? || !ENV['DOMAIN'].nil?
puts '[!] [error] The "domain" config setting has been removed in v3. Please see the docs for migrating the domain config to use a dns plugin at https://github.com/puppetlabs/vmpooler/blob/main/README.md#migrating-to-v3'
exit 1
end
parsed_config[:config]['clone_target'] = ENV['CLONE_TARGET'] if ENV['CLONE_TARGET']
parsed_config[:config]['timeout'] = string_to_int(ENV['TIMEOUT']) if ENV['TIMEOUT']
parsed_config[:config]['vm_lifetime_auth'] = string_to_int(ENV['VM_LIFETIME_AUTH']) if ENV['VM_LIFETIME_AUTH']

45
spec/fixtures/vmpooler_domain.yaml vendored Normal file
View file

@ -0,0 +1,45 @@
---
:providers:
:dummy:
:redis:
server: 'localhost'
:auth:
provider: dummy
:tagfilter:
url: '(.*)\/'
:config:
site_name: 'vmpooler'
# Need to change this on Windows
logfile: '/var/log/vmpooler.log'
task_limit: 10
timeout: 15
vm_checktime: 1
vm_lifetime: 12
vm_lifetime_auth: 24
allowed_tags:
- 'created_by'
- 'project'
domain: 'example.com'
prefix: 'poolvm-'
# Uncomment the lines below to suppress metrics to STDOUT
# :statsd:
# server: 'localhost'
# prefix: 'vmpooler'
# port: 8125
:pools:
- name: 'pool01'
size: 5
provider: dummy
dns_plugin: 'example'
ready_ttl: 5
- name: 'pool02'
size: 5
provider: dummy
dns_plugin: 'example'
ready_ttl: 5

View file

@ -70,5 +70,30 @@ describe 'Vmpooler' do
expect(Vmpooler.config[:config]).not_to be_nil #merge does not deleted existing keys
end
end
context 'when domain' do
context 'is set as a variable' do
before(:each) do
ENV['VMPOOLER_CONFIG_FILE'] = config_file
ENV['DOMAIN'] = 'example.com'
end
it 'should exit' do
expect { Vmpooler.config }.to raise_error(SystemExit)
end
end
context 'is set in a config file' do
let(:config_file) { File.join(fixtures_dir, 'vmpooler_domain.yaml') }
before(:each) do
ENV['VMPOOLER_CONFIG_FILE'] = config_file
end
it 'should exit' do
expect { Vmpooler.config }.to raise_error(SystemExit)
end
end
end
end
end