Merge pull request #144 from ekohl/fix-vagrant_libvirt
(maint) Fix --hypervisor vagrant_libvirt
Spencer McElmurry authored 5 years ago
GitHub committed 5 years ago
14 | 14 |
include BeakerHostGenerator::Data
|
15 | 15 |
|
16 | 16 |
def generate_node(node_info, base_config, bhg_version)
|
17 | |
base_config['hypervisor'] = 'abs'
|
18 | |
|
19 | 17 |
# Grab vmpooler data for this platform and any hardware (ABS) data.
|
20 | 18 |
# The assumption here is that these are mutually exclusive; that is,
|
21 | 19 |
# any given platform will have *either* :vmpooler data or :abs data
|
22 | 20 |
# so we're not worried about one overriding the other when we merge
|
23 | 21 |
# the hashes together.
|
24 | |
platform = node_info['platform']
|
25 | |
vmpooler_platform_info = get_platform_info(bhg_version, platform, :vmpooler)
|
26 | |
abs_platform_info = get_platform_info(bhg_version, platform, :abs)
|
27 | |
|
28 | |
base_config.deep_merge! vmpooler_platform_info
|
29 | |
base_config.deep_merge! abs_platform_info
|
30 | |
|
31 | |
return base_config
|
|
22 |
return base_generate_node(node_info, base_config, bhg_version, :vmpooler, :abs)
|
32 | 23 |
end
|
33 | 24 |
end
|
34 | 25 |
end
|
7 | 7 |
include BeakerHostGenerator::Data
|
8 | 8 |
|
9 | 9 |
def generate_node(node_info, base_config, bhg_version)
|
10 | |
base_config['hypervisor'] = 'docker'
|
11 | 10 |
base_config['docker_cmd'] = ['/sbin/init']
|
12 | 11 |
base_config['image'] = node_info['ostype'].sub(/(\d)/, ':\1')
|
13 | 12 |
base_config['image'].sub!(/(\d{2})/, '\1.') if node_info['ostype'] =~ /^ubuntu/
|
14 | 13 |
|
15 | |
platform = node_info['platform']
|
16 | |
platform_info = get_platform_info(bhg_version, platform, :docker)
|
17 | |
base_config.deep_merge! platform_info
|
18 | |
|
19 | |
return base_config
|
|
14 |
return base_generate_node(node_info, base_config, bhg_version, :docker)
|
20 | 15 |
end
|
21 | 16 |
end
|
22 | 17 |
end
|
5 | 5 |
class Unknown < BeakerHostGenerator::Hypervisor::Interface
|
6 | 6 |
include BeakerHostGenerator::Data
|
7 | 7 |
|
8 | |
def initialize(name)
|
9 | |
@name = name
|
10 | |
end
|
11 | |
|
12 | 8 |
def generate_node(node_info, base_config, bhg_version)
|
13 | |
platform = node_info['platform']
|
14 | |
general_info = get_platform_info(bhg_version, platform, :general)
|
15 | |
base_config.deep_merge! general_info
|
16 | |
base_config['hypervisor'] = @name
|
17 | |
return base_config
|
|
9 |
return base_generate_node(node_info, base_config, bhg_version, :general)
|
18 | 10 |
end
|
19 | 11 |
end
|
20 | 12 |
end
|
7 | 7 |
include BeakerHostGenerator::Data
|
8 | 8 |
|
9 | 9 |
def generate_node(node_info, base_config, bhg_version)
|
10 | |
base_config['hypervisor'] = 'vagrant'
|
11 | |
|
12 | 10 |
if node_info['ostype'] =~ /^centos/
|
13 | 11 |
base_config['box'] = node_info['ostype'].sub(/(\d)/, '/\1')
|
14 | 12 |
elsif node_info['ostype'] =~ /^fedora/
|
|
20 | 18 |
# We don't use this by default
|
21 | 19 |
base_config['synced_folder'] = 'disabled'
|
22 | 20 |
|
23 | |
platform = node_info['platform']
|
24 | |
platform_info = get_platform_info(bhg_version, platform, :vagrant)
|
25 | |
base_config.deep_merge! platform_info
|
26 | |
|
27 | |
return base_config
|
|
21 |
return base_generate_node(node_info, base_config, bhg_version, :vagrant)
|
28 | 22 |
end
|
29 | 23 |
end
|
30 | 24 |
end
|
14 | 14 |
end
|
15 | 15 |
|
16 | 16 |
def generate_node(node_info, base_config, bhg_version)
|
17 | |
# set hypervisor
|
18 | |
base_config['hypervisor'] = 'vmpooler'
|
19 | |
|
20 | |
platform = node_info['platform']
|
21 | |
platform_info = get_platform_info(bhg_version, platform, :vmpooler)
|
22 | |
base_config.deep_merge! platform_info
|
|
17 |
base_config = base_generate_node(node_info, base_config, bhg_version, :vmpooler)
|
23 | 18 |
|
24 | 19 |
# Some vmpooler/vsphere platforms have special requirements.
|
25 | 20 |
# We munge the node host config here if that is necessary.
|
25 | 25 |
# create.
|
26 | 26 |
def self.create(node_info, options)
|
27 | 27 |
name = node_info['host_settings']['hypervisor'] || options[:hypervisor]
|
28 | |
hypervisor = builtin_hypervisors[name]
|
29 | |
if hypervisor
|
30 | |
hypervisor.new
|
31 | |
else
|
32 | |
BeakerHostGenerator::Hypervisor::Unknown.new(name)
|
33 | |
end
|
|
28 |
hypervisor = builtin_hypervisors[name] || BeakerHostGenerator::Hypervisor::Unknown
|
|
29 |
hypervisor.new(name)
|
34 | 30 |
end
|
35 | 31 |
|
36 | 32 |
# Returns a map of all built-in hypervisor implementations, where the keys
|
|
53 | 49 |
end
|
54 | 50 |
|
55 | 51 |
class Interface
|
|
52 |
def initialize(name)
|
|
53 |
@name = name
|
|
54 |
end
|
|
55 |
|
56 | 56 |
# Returns a map containing any general configuration required by this
|
57 | 57 |
# hypervisor. This map will be merged into the 'CONFIG' section of the
|
58 | 58 |
# final hosts configuration output.
|
|
87 | 87 |
def generate_node(node_info, base_config, bhg_version)
|
88 | 88 |
raise "Method 'generate_node' not implemented!"
|
89 | 89 |
end
|
|
90 |
|
|
91 |
private
|
|
92 |
|
|
93 |
def base_generate_node(node_info, base_config, bhg_version, *hypervisors)
|
|
94 |
platform = node_info['platform']
|
|
95 |
hypervisors.map do |hypervisor|
|
|
96 |
base_config.deep_merge! get_platform_info(bhg_version, platform, hypervisor)
|
|
97 |
end
|
|
98 |
|
|
99 |
base_config['hypervisor'] = @name
|
|
100 |
|
|
101 |
return base_config
|
|
102 |
end
|
90 | 103 |
end
|
91 | 104 |
end
|
92 | 105 |
end
|
|
0 |
---
|
|
1 |
arguments_string: --hypervisor vagrant_libvirt centos6-64m-debian8-32a-redhat7-64a{hypervisor=vagrant}
|
|
2 |
environment_variables: {}
|
|
3 |
expected_hash:
|
|
4 |
HOSTS:
|
|
5 |
centos6-64-1:
|
|
6 |
pe_dir:
|
|
7 |
pe_ver:
|
|
8 |
pe_upgrade_dir:
|
|
9 |
pe_upgrade_ver:
|
|
10 |
box: centos/6
|
|
11 |
synced_folder: disabled
|
|
12 |
platform: el-6-x86_64
|
|
13 |
packaging_platform: el-6-x86_64
|
|
14 |
hypervisor: vagrant_libvirt
|
|
15 |
roles:
|
|
16 |
- agent
|
|
17 |
- master
|
|
18 |
debian8-32-1:
|
|
19 |
pe_dir:
|
|
20 |
pe_ver:
|
|
21 |
pe_upgrade_dir:
|
|
22 |
pe_upgrade_ver:
|
|
23 |
box: generic/debian8
|
|
24 |
synced_folder: disabled
|
|
25 |
platform: debian-8-i386
|
|
26 |
packaging_platform: debian-8-i386
|
|
27 |
hypervisor: vagrant_libvirt
|
|
28 |
roles:
|
|
29 |
- agent
|
|
30 |
redhat7-64-1:
|
|
31 |
pe_dir:
|
|
32 |
pe_ver:
|
|
33 |
pe_upgrade_dir:
|
|
34 |
pe_upgrade_ver:
|
|
35 |
box: generic/redhat7
|
|
36 |
synced_folder: disabled
|
|
37 |
platform: el-7-x86_64
|
|
38 |
packaging_platform: el-7-x86_64
|
|
39 |
hypervisor: vagrant
|
|
40 |
roles:
|
|
41 |
- agent
|
|
42 |
CONFIG:
|
|
43 |
nfs_server: none
|
|
44 |
consoleport: 443
|
|
45 |
expected_exception:
|