blob: 31a9970a51c9c7f4ce22d91503c73c0185df10dc [file] [log] [blame]
Victor Morales89ce3212017-06-16 18:32:48 -05001# -*- mode: ruby -*-
2# vi: set ft=ruby :
3
Idan Amit46123862017-09-19 13:43:32 +03004configuration = {
5 # Generic parameters used across all ONAP components
Victor Morales89ce3212017-06-16 18:32:48 -05006 'key_name' => 'ecomp_key',
7 'pub_key' => '',
8 'nexus_repo' => 'https://nexus.onap.org/content/sites/raw',
Victor Morales6a919972017-09-28 18:29:54 -07009 'nexus_repo_root' => 'https://nexus.onap.org',
10 'nexus_url_snapshot' => 'https://nexus.onap.org/content/repositories/snapshots',
Victor Morales89ce3212017-06-16 18:32:48 -050011 'nexus_docker_repo' => 'nexus3.onap.org:10001',
12 'nexus_username' => 'docker',
13 'nexus_password' => 'docker',
14 'dmaap_topic' => 'AUTO',
15 'artifacts_version' => '1.0.0',
Victor Morales5d21f642017-12-07 11:54:59 -080016 'docker_version' => 'latest',
Victor Morales6a919972017-09-28 18:29:54 -070017 # Parameters for DCAE instantiation
Victor Morales89ce3212017-06-16 18:32:48 -050018 'dcae_zone' => 'iad4',
19 'dcae_state' => 'vi',
20 'openstack_tenant_id' => '',
21 'openstack_username' => '',
22 'openstack_api_key' => '',
23 'openstack_password' => '',
Victor Moralesdd074802017-07-26 16:06:35 -050024 'odl_version' => '0.5.3-Boron-SR3',
Victor Morales6a919972017-09-28 18:29:54 -070025 # Parameters for enabling features
Victor Morales7abf1a82017-11-06 09:20:27 -080026 'debug' => 'True',
Victor Morales6a919972017-09-28 18:29:54 -070027 'build_image' => 'True',
Idan Amit1690e082017-08-20 08:58:14 +030028 'clone_repo' => 'True',
Victor Morales2909e2e2017-08-08 15:51:52 -050029 'compile_repo' => 'False',
Victor Morales6a919972017-09-28 18:29:54 -070030 'enable_oparent' => 'True',
31 'skip_get_images' => 'False',
32 'skip_install' => 'True'
Victor Morales89ce3212017-06-16 18:32:48 -050033}
34
Idan Amit46123862017-09-19 13:43:32 +030035box = {
36 :virtualbox => 'ubuntu/trusty64',
Victor Morales9c525e42017-12-01 04:35:14 -080037 :libvirt => 'elastic/ubuntu-14.04-x86_64',
Idan Amit46123862017-09-19 13:43:32 +030038 :openstack => nil
39}
40
Idan Amit46123862017-09-19 13:43:32 +030041nodes = [
Victor Moralesdbe2e0b2017-09-20 09:55:45 -070042 {
Idan Amit46123862017-09-19 13:43:32 +030043 :name => "aai",
44 :ips => ['10.252.0.6', "192.168.50.6"],
45 :macs => [],
46 :cpus => 2,
47 :cpu => "50",
48 :ram => 4 * 1024,
49 :groups => ["individual"],
50 :args => ["aai"]
51 },
Victor Moralesdbe2e0b2017-09-20 09:55:45 -070052 {
Idan Amit46123862017-09-19 13:43:32 +030053 :name => "all-in-one",
Victor Morales071b81c2017-11-07 14:13:07 -080054 :ips => ['10.252.1.3', "192.168.51.3"],
Idan Amit46123862017-09-19 13:43:32 +030055 :macs => [],
56 :cpus => 2,
57 :cpu => "50",
58 :ram => 12 * 1024,
59 :groups => ["all-in-one"],
60 :flavor => 'm1.xlarge',
Victor Morales9d205bc2017-12-01 17:52:07 -080061 :args => ['mr', 'sdc', 'aai', 'mso', 'robot', 'vid', 'sdnc', 'portal', 'dcae', 'policy', 'appc', 'vfc', 'ccsdk', 'multicloud', 'vnfsdk', 'vpp', 'msb'],
Idan Amit46123862017-09-19 13:43:32 +030062 },
Victor Moralesdbe2e0b2017-09-20 09:55:45 -070063 {
Idan Amit46123862017-09-19 13:43:32 +030064 :name => "appc",
65 :ips => ['10.252.0.14', "192.168.50.14"],
66 :macs => [],
67 :cpus => 2,
68 :cpu => "50",
69 :ram => 4 * 1024,
70 :groups => ["individual"],
71 :args => ["appc"],
72 },
Victor Moralesdbe2e0b2017-09-20 09:55:45 -070073 {
Idan Amit46123862017-09-19 13:43:32 +030074 :name => "ccsdk",
Victor Morales9d205bc2017-12-01 17:52:07 -080075 :ips => ['10.252.0.19', "192.168.50.19"],
Idan Amit46123862017-09-19 13:43:32 +030076 :macs => [],
77 :cpus => 2,
78 :cpu => "50",
79 :ram => 4 * 1024,
80 :groups => ["individual"],
81 :args => ["ccsdk"],
82 },
Victor Moralesdbe2e0b2017-09-20 09:55:45 -070083 {
Idan Amit46123862017-09-19 13:43:32 +030084 :name => "dcae",
85 :ips => ['10.252.0.12', "192.168.50.12"],
86 :macs => [],
87 :cpus => 2,
88 :cpu => "50",
89 :ram => 4 * 1024,
90 :groups => ["individual"],
91 :args => ["dcae"],
92 },
Victor Moralesdbe2e0b2017-09-20 09:55:45 -070093 {
Idan Amit46123862017-09-19 13:43:32 +030094 :name => "dns",
95 :ips => ['10.252.0.3', "192.168.50.3"],
96 :macs => [],
97 :cpus => 2,
98 :cpu => "50",
99 :ram => 1 * 1024,
100 :groups => ["individual"],
101 :flavor => 'm1.small',
102 :args => [" "]
103 },
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700104 {
Idan Amit46123862017-09-19 13:43:32 +0300105 :name => "message-router",
106 :ips => ['10.252.0.4', "192.168.50.4"],
107 :macs => [],
108 :cpus => 2,
109 :cpu => "50",
110 :ram => 4 * 1024,
111 :groups => ["individual"],
112 :args => ["mr"],
113 },
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700114 {
Idan Amit46123862017-09-19 13:43:32 +0300115 :name => "mso",
Victor Morales9d205bc2017-12-01 17:52:07 -0800116 :ips => ['10.252.0.20', "192.168.50.20"],
Idan Amit46123862017-09-19 13:43:32 +0300117 :macs => [],
118 :cpus => 2,
119 :cpu => "50",
120 :ram => 4 * 1024,
121 :groups => ["individual"],
122 :args => ["mso"],
123 },
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700124 {
Victor Morales9d205bc2017-12-01 17:52:07 -0800125 :name => "msb",
126 :ips => ['10.252.0.7', "192.168.50.7"],
127 :macs => [],
128 :cpus => 2,
129 :cpu => "50",
130 :ram => 4 * 1024,
131 :groups => ["individual"],
132 :args => ["msb"],
133 },
134 {
Idan Amit46123862017-09-19 13:43:32 +0300135 :name => "multicloud",
136 :ips => ['10.252.0.16', "192.168.50.16"],
137 :macs => [],
138 :cpus => 2,
139 :cpu => "50",
140 :ram => 4 * 1024,
141 :groups => ["individual"],
142 :args => ["multicloud"],
Victor Morales71f7d292018-01-04 16:27:07 -0800143 :fwds => [
144 { :guest => 9003, :host => 9003, :guest_ip => '192.168.50.16' },
145 ]
Idan Amit46123862017-09-19 13:43:32 +0300146 },
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700147 {
Victor Moralesfa9eb9c2017-12-18 09:56:13 -0800148 :name => "oom",
149 :ips => ['10.252.0.21', "192.168.50.21"],
150 :macs => [],
151 :cpus => 16,
152 :cpu => "50",
153 :ram => 64 * 1024,
154 :groups => ["individual"],
155 :args => ["oom"],
156 :hd => "60G",
157 :fwds => [
158 { :guest => 8880, :host => 8880, :guest_ip => '192.168.50.21' },
159 { :guest => 8989, :host => 8989, :guest_ip => '192.168.50.21' },
160 ]
161 },
162 {
Idan Amit46123862017-09-19 13:43:32 +0300163 :name => "policy",
164 :ips => ['10.252.0.13', "192.168.50.13"],
165 :macs => [],
166 :cpus => 2,
167 :cpu => "50",
168 :ram => 4 * 1024,
169 :groups => ["individual"],
170 :args => ["policy"],
171 },
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700172 {
Idan Amit46123862017-09-19 13:43:32 +0300173 :name => "portal",
174 :ips => ['10.252.0.11', "192.168.50.11"],
175 :macs => [],
176 :cpus => 2,
177 :cpu => "50",
178 :ram => 4 * 1024,
179 :groups => ["individual"],
180 :args => ["portal"],
181 },
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700182 {
Idan Amit46123862017-09-19 13:43:32 +0300183 :name => "robot",
184 :ips => ['10.252.0.8', "192.168.50.8"],
185 :macs => [],
186 :cpus => 2,
187 :cpu => "50",
188 :ram => 4 * 1024,
189 :groups => ["individual"],
190 :args => ["robot"],
191 },
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700192 {
Idan Amit46123862017-09-19 13:43:32 +0300193 :name => "sdc",
194 :ips => ['10.252.0.5', "192.168.50.5"],
195 :macs => [],
196 :cpus => 2,
197 :cpu => "50",
198 :ram => 8 * 1024,
199 :groups => ["individual"],
200 :args => ["sdc"],
Victor Moralesfa9eb9c2017-12-18 09:56:13 -0800201 :hd => "20G",
Idan Amit46123862017-09-19 13:43:32 +0300202 },
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700203 {
Idan Amit46123862017-09-19 13:43:32 +0300204 :name => "sdnc",
205 :ips => ['10.252.0.10', "192.168.50.10"],
206 :macs => [],
207 :cpus => 2,
208 :cpu => "50",
209 :ram => 4 * 1024,
210 :groups => ["individual"],
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700211 :args => ["sdnc"],
Idan Amit46123862017-09-19 13:43:32 +0300212 },
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700213 {
Idan Amit46123862017-09-19 13:43:32 +0300214 :name => "testing",
Victor Morales071b81c2017-11-07 14:13:07 -0800215 :ips => ['10.252.2.3', "192.168.52.3"],
Idan Amit46123862017-09-19 13:43:32 +0300216 :macs => [],
217 :cpus => 2,
218 :cpu => "50",
219 :ram => 4 * 1024,
220 :groups => ["testing"],
221 :flavor => 'm1.small',
222 :args => [""],
223 },
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700224 {
Idan Amit46123862017-09-19 13:43:32 +0300225 :name => "vfc",
226 :ips => ['10.252.0.15', "192.168.50.15"],
227 :macs => [],
228 :cpus => 2,
229 :cpu => "50",
230 :ram => 4 * 1024,
231 :groups => ["individual"],
232 :args => ['vfc'],
233 },
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700234 {
Idan Amit46123862017-09-19 13:43:32 +0300235 :name => "vid",
236 :ips => ['10.252.0.9', "192.168.50.9"],
237 :macs => [],
238 :cpus => 2,
239 :cpu => "50",
240 :ram => 4 * 1024,
241 :groups => ["individual"],
242 :args => ['vid'],
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700243 },
Victor Moralesd3cbcf22017-10-25 16:01:58 -0700244 {
Victor Morales071b81c2017-11-07 14:13:07 -0800245 :name => "vnfsdk",
246 :ips => ['10.252.0.18', "192.168.50.18"],
247 :macs => [],
248 :cpus => 2,
249 :cpu => "50",
250 :ram => 4 * 1024,
251 :groups => ["individual"],
252 :args => ['vnfsdk'],
Shashank Kumar Shankarf84c9a12017-10-23 11:08:31 -0700253 },
254 {
Victor Moralesd3cbcf22017-10-25 16:01:58 -0700255 :name => "vvp",
256 :ips => ['10.252.0.17', "192.168.50.17"],
257 :macs => [],
258 :cpus => 2,
259 :cpu => "50",
260 :ram => 4 * 1024,
261 :groups => ["individual"],
262 :args => ['vvp'],
Victor Morales4ab71c12017-11-08 07:28:28 -0800263 },
264 {
265 :name => "openstack",
266 :ips => ['10.252.3.3', "192.168.53.3"],
267 :macs => [],
268 :cpus => 2,
269 :cpu => "50",
270 :ram => 8 * 1024,
271 :groups => ["individual"],
272 :args => ['openstack'],
Victor Moralesfa9eb9c2017-12-18 09:56:13 -0800273 :fwds => [
274 { :guest => 80, :host => 8888, :guest_ip => '192.168.53.4' },
275 { :guest => 6080, :host => 6080, :guest_ip => '192.168.53.4' },
276 ]
Shashank Kumar Shankarf84c9a12017-10-23 11:08:31 -0700277 }
Idan Amit46123862017-09-19 13:43:32 +0300278]
279
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700280run_path = 'vagrant_utils/postinstall.sh'
281sdc_volume = 'vol1-sdc-data.vdi'
Idan Amit46123862017-09-19 13:43:32 +0300282
Victor Moralesdd074802017-07-26 16:06:35 -0500283Vagrant.require_version ">= 1.8.6"
284
Victor Moralesdd074802017-07-26 16:06:35 -0500285# Determine the provider used
286provider = (ENV['VAGRANT_DEFAULT_PROVIDER'] || :virtualbox).to_sym
Idan Amit46123862017-09-19 13:43:32 +0300287puts "[INFO] Provider: #{provider} "
288
Victor Morales89ce3212017-06-16 18:32:48 -0500289vd_conf = ENV.fetch('VD_CONF', 'etc/settings.yaml')
290if File.exist?(vd_conf)
291 require 'yaml'
292 user_conf = YAML.load_file(vd_conf)
Idan Amit46123862017-09-19 13:43:32 +0300293 configuration.update(user_conf)
Victor Morales89ce3212017-06-16 18:32:48 -0500294end
295
Victor Morales6a919972017-09-28 18:29:54 -0700296# Set network interface
Areli Fussf57e9e72017-09-28 14:24:53 +0300297net_interface = 'vboxnet0'
Idan Amit46123862017-09-19 13:43:32 +0300298is_windows = Gem.win_platform?
299if is_windows
300 net_interface = 'VirtualBox Host-Only Ethernet Adapter #2'
Idan Amit46123862017-09-19 13:43:32 +0300301end
302puts "[INFO] Net interface: #{net_interface}"
303
304
Victor Morales6a919972017-09-28 18:29:54 -0700305# If argument is given use it. Otherwise use Env: DEPLOY_MODE else use default
Idan Amit46123862017-09-19 13:43:32 +0300306requested_machine = ARGV[1]
307
Victor Morales89ce3212017-06-16 18:32:48 -0500308deploy_mode = ENV.fetch('DEPLOY_MODE', 'individual')
Idan Amit46123862017-09-19 13:43:32 +0300309if requested_machine != nil
310 if requested_machine.include?("all-in-one") || requested_machine.include?("testing")
311 deploy_mode = requested_machine
312 end
313end
314
Victor Morales6a919972017-09-28 18:29:54 -0700315# Catch the status of all machines
Idan Amit46123862017-09-19 13:43:32 +0300316if ARGV[0] == 'status' || ARGV[0] == 'destroy'
317 deploy_mode = 'NA'
318end
319
320puts "[INFO] Deploy Mode: #{deploy_mode}"
321
Victor Morales6a919972017-09-28 18:29:54 -0700322# In case of all-in-one or testing clean the nodes list
Idan Amit46123862017-09-19 13:43:32 +0300323case deploy_mode
324 when 'all-in-one'
325 nodes.select! do |node|
326 if node[:name].include?("all-in-one")
327 true if node[:name]
328 end
329 end
330
331 when 'individual'
332 nodes.select! do |node|
333 if node[:groups][0].include?("individual")
334 true if node[:name]
Idan Amit46123862017-09-19 13:43:32 +0300335 end
336 end
337
338 when 'testing'
339 nodes.select! do |node|
340 if node[:name].include?("testing")
341 true if node[:name]
342 end
343 end
344end
Victor Morales89ce3212017-06-16 18:32:48 -0500345
346Vagrant.configure("2") do |config|
347
Victor Moralesfa9eb9c2017-12-18 09:56:13 -0800348 # PROXY definitions
349 if ENV['http_proxy'] != nil and ENV['https_proxy'] != nil
Idan Amit46123862017-09-19 13:43:32 +0300350 if not Vagrant.has_plugin?('vagrant-proxyconf')
351 system 'vagrant plugin install vagrant-proxyconf'
352 raise 'vagrant-proxyconf was installed but it requires to execute again'
353 end
354 config.proxy.http = ENV['http_proxy']
355 config.proxy.https = ENV['https_proxy']
Victor Moralescf269992017-10-18 09:29:55 -0700356 configuration['socks_proxy'] = ENV['socks_proxy']
Victor Morales89ce3212017-06-16 18:32:48 -0500357 end
Victor Morales89ce3212017-06-16 18:32:48 -0500358
Idan Amit46123862017-09-19 13:43:32 +0300359 if Vagrant.has_plugin?('vagrant-vbguest')
360 puts 'vagrant-vbguest auto_update feature will be disable to avoid sharing conflicts'
361 config.vbguest.auto_update = false
Victor Moralesf62e7b82017-07-27 17:26:06 -0500362 end
Idan Amit46123862017-09-19 13:43:32 +0300363
Victor Morales71f7d292018-01-04 16:27:07 -0800364 sync_type = "virtualbox"
Idan Amit46123862017-09-19 13:43:32 +0300365 if provider == :libvirt
366 if not Vagrant.has_plugin?('vagrant-libvirt')
367 system 'vagrant plugin install vagrant-libvirt'
368 raise 'vagrant-libvirt was installed but it requires to execute again'
369 end
Victor Morales71f7d292018-01-04 16:27:07 -0800370 sync_type = "nfs"
Victor Moralesdd074802017-07-26 16:06:35 -0500371 end
Areli Fussf57e9e72017-09-28 14:24:53 +0300372
Idan Amit46123862017-09-19 13:43:32 +0300373 if provider == :openstack
374 config.ssh.username = 'ubuntu'
375 if not Vagrant.has_plugin?('vagrant-openstack-provider')
376 system 'vagrant plugin install vagrant-openstack-provider'
377 raise 'vagrant-openstack-provider was installed but it requires to execute again'
378 end
379 end
Victor Morales89ce3212017-06-16 18:32:48 -0500380
Idan Amit46123862017-09-19 13:43:32 +0300381 nodes.each do |node|
382 config.vm.define node[:name] do |nodeconfig|
Victor Moralesdd074802017-07-26 16:06:35 -0500383
Victor Moralesfa9eb9c2017-12-18 09:56:13 -0800384 # NO_PROXY definitions
385 if ENV['no_proxy'] != nil
386 if not Vagrant.has_plugin?('vagrant-proxyconf')
387 system 'vagrant plugin install vagrant-proxyconf'
388 raise 'vagrant-proxyconf was installed but it requires to execute again'
389 end
390 config.proxy.no_proxy = node[:ips].join(",") + "," + ENV['no_proxy']
391 end
392
Idan Amit46123862017-09-19 13:43:32 +0300393 # Common Settings:
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700394
Idan Amit46123862017-09-19 13:43:32 +0300395 nodeconfig.vm.provider "virtualbox" do |vbox|
396 vbox.customize ['modifyvm', :id, '--nictype1', 'virtio']
397 vbox.customize ['modifyvm', :id, '--audio', 'none']
398 vbox.customize ['modifyvm', :id, '--vram', '1']
399 vbox.customize ['modifyvm', :id, "--cpuhotplug", "off"]
400 vbox.customize ['modifyvm', :id, "--cpuexecutioncap", node[:cpu]]
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700401 vbox.customize ['modifyvm', :id, "--cpus", node[:cpus]]
Idan Amit46123862017-09-19 13:43:32 +0300402 vbox.customize ["modifyvm", :id, "--memory", node[:ram]]
Victor Morales9c525e42017-12-01 04:35:14 -0800403
404 # Set Network
405 nodeconfig.vm.network :private_network,
406 :adapter => 2,
407 :name => net_interface,
408 :ip => node[:ips][0]
409
410 nodeconfig.vm.network :private_network,
411 :adapter => 3,
412 :ip => node[:ips][1],
413 :type => :static
Victor Moralesfa9eb9c2017-12-18 09:56:13 -0800414
415 # Set Storage
416 if node.has_key? :hd
417 volume_file = node[:name] + '-vol1-data.vdi'
418 unless File.exist?(volume_file)
419 vbox.customize ['createhd', '--filename', volume_file, '--size', node[:hd]]
420 end
421 vbox.customize ['storageattach', :id, '--storagectl', 'SATAController', '--port', 1, '--device', 0, '--type', 'hdd', '--medium', volume_file]
422 end
Victor Morales89ce3212017-06-16 18:32:48 -0500423 end
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700424
Idan Amit46123862017-09-19 13:43:32 +0300425 nodeconfig.vm.provider "libvirt" do |lbox|
426 lbox.memory = node[:ram]
427 lbox.nested = true
Victor Morales9c525e42017-12-01 04:35:14 -0800428 lbox.cpu_mode = 'host-passthrough'
Victor Moralesfa9eb9c2017-12-18 09:56:13 -0800429 lbox.cpus = node[:cpus]
Victor Morales9c525e42017-12-01 04:35:14 -0800430
431 # Set Network
432 nodeconfig.vm.network :private_network,
433 :ip => node[:ips][0]
434
435 nodeconfig.vm.network :private_network,
436 :ip => node[:ips][1],
437 :type => :static
Victor Moralesfa9eb9c2017-12-18 09:56:13 -0800438
439 # Set Storage
440 if node.has_key? :hd
441 lbox.storage :file, bus: 'sata', device: 'sda', size: node[:hd]
442 end
443 end
444 if node.has_key? :fwds
445 node[:fwds].each do |fwd|
446 nodeconfig.vm.network :forwarded_port,
447 :guest => fwd[:guest],
448 :guest_ip => fwd[:guest_ip],
449 :host => fwd[:host],
450 :host_ip => "0.0.0.0"
451 end
Victor Morales89ce3212017-06-16 18:32:48 -0500452 end
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700453
Idan Amit46123862017-09-19 13:43:32 +0300454 nodeconfig.vm.provider :openstack do |obox|
455 obox.openstack_auth_url = ENV.fetch('OS_AUTH_URL', '')
456 obox.tenant_name = ENV.fetch('OS_TENANT_NAME', '')
457 obox.username = ENV.fetch('OS_USERNAME', '')
458 obox.password = ENV.fetch('OS_PASSWORD', '')
459 obox.region = ENV.fetch('OS_REGION_NAME', '')
460 obox.identity_api_version = ENV.fetch('OS_IDENTITY_API_VERSION', '')
461 obox.domain_name = ENV.fetch('OS_PROJECT_DOMAIN_ID', '')
462 obox.project_name = ENV.fetch('OS_PROJECT_NAME', '')
463 obox.floating_ip_pool = ENV.fetch('OS_FLOATING_IP_POOL', '')
464 obox.floating_ip_pool_always_allocate = (ENV['OS_FLOATING_IP_ALWAYS_ALLOCATE'] == 'true')
465 obox.image = ENV.fetch('OS_IMAGE', '')
466 obox.security_groups = [ENV.fetch('OS_SEC_GROUP', '')]
467 obox.networks = ENV.fetch('OS_NETWORK', '')
468 obox.flavor = node[:flavor]
469 obox.server_name = node[:name]
Idan Amit46123862017-09-19 13:43:32 +0300470 end
Victor Moralesd4036482017-08-15 17:54:14 -0500471
Idan Amit46123862017-09-19 13:43:32 +0300472 # Set Box type
Victor Morales4ab71c12017-11-08 07:28:28 -0800473 if "openstack" == node[:name]
Victor Morales9c525e42017-12-01 04:35:14 -0800474 box = {
475 :virtualbox => 'ubuntu/xenial64',
476 :libvirt => 'elastic/ubuntu-16.04-x86_64'
477 }
Victor Morales4ab71c12017-11-08 07:28:28 -0800478 end
Victor Morales9c525e42017-12-01 04:35:14 -0800479 nodeconfig.vm.box = box[provider]
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700480
Idan Amit46123862017-09-19 13:43:32 +0300481 # Set Node name
482 nodeconfig.vm.hostname = node[:name]
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700483
Idan Amit46123862017-09-19 13:43:32 +0300484 # Set Sync Folder
485 nodeconfig.vm.synced_folder ".", "/vagrant", disabled: true
Victor Morales71f7d292018-01-04 16:27:07 -0800486 nodeconfig.vm.synced_folder './opt', '/opt/', create: true, type: sync_type
487 nodeconfig.vm.synced_folder './lib', '/var/onap/', create: true, type: sync_type
Idan Amit46123862017-09-19 13:43:32 +0300488 if !is_windows
489 nodeconfig.vm.synced_folder '~/.m2', '/root/.m2/', create: true
490 end
Victor Morales6a919972017-09-28 18:29:54 -0700491
Idan Amit46123862017-09-19 13:43:32 +0300492 # Specific settings:
Victor Moralesdbe2e0b2017-09-20 09:55:45 -0700493
Idan Amit46123862017-09-19 13:43:32 +0300494 if node[:name].include? "testing"
495 nodeconfig.vm.synced_folder './tests', '/var/onap_tests/', create: true
496 test_suite = ENV.fetch('TEST_SUITE', '*')
497 test_case = ENV.fetch('TEST_CASE', '*')
498 # Override variables
499 run_path = 'vagrant_utils/unit_testing.sh'
500 node[:args] = [test_suite, test_case]
Victor Morales6a919972017-09-28 18:29:54 -0700501 else
502 configuration['skip_get_images'] = ENV.fetch('SKIP_GET_IMAGES', configuration['skip_get_images'])
503 configuration['skip_install'] = ENV.fetch('SKIP_INSTALL', configuration['skip_install'])
Idan Amit46123862017-09-19 13:43:32 +0300504 end
505
Idan Amit46123862017-09-19 13:43:32 +0300506 if node[:name].include? "vfc"
507 nodeconfig.vm.provision 'docker'
508 end
509
510 nodeconfig.vm.provision 'shell' do |s|
511 s.path = run_path
512 s.args = node[:args]
513 s.env = configuration
514 end
515
516 end #nodeconfig
517 end #node
518end #config