Change vagrant to provision template VM and create clones for all VMs
refs #2436
Change-Id: Ia4326d2129356d3711c0a9ba006cce7890eab7b0
diff --git a/Vagrantfile b/Vagrantfile
index 0177d66..a95f369 100644
--- a/Vagrantfile
+++ b/Vagrantfile
@@ -6,7 +6,6 @@
$setup = <<SCRIPT
sudo apt-get update -qq
-sudo apt-get install -y python
SCRIPT
$setup_integ = <<SCRIPT
@@ -52,42 +51,44 @@
config.vm.box = "ubuntu/trusty64"
config.vm.provider "virtualbox" do |vb|
- vb.memory = "4096"
- vb.cpus = "4"
+ vb.memory = "2048"
+ vb.cpus = "1"
vb.customize ["storagectl", :id, "--name", "SATAController", "--hostiocache", "off"]
end
+ config.vm.define "template" do |t|
+ t.vm.provision "shell", inline: $setup, privileged: false
+ t.vm.provision "shell", inline: $setup_ssh, privileged: false
+ t.vm.provision "shell", inline: $setup_integ, privileged: false
+ end
+
config.vm.define "A" do |a|
+ a.vm.box = "nfd-integ"
a.vm.network "private_network", ip: "192.168.1.3", virtualbox__intnet: "ABC-switch"
a.vm.network "private_network", ip: "192.168.2.2", virtualbox__intnet: "AtoRouter"
a.vm.provision "shell", inline: $setup, privileged: false
a.vm.provision "shell", inline: $setup_a, privileged: false
- a.vm.provision "shell", inline: $setup_ssh, privileged: false
- a.vm.provision "shell", inline: $setup_integ, privileged: false
end
config.vm.define "B" do |b|
+ b.vm.box = "nfd-integ"
b.vm.network "private_network", ip: "192.168.1.2", virtualbox__intnet: "ABC-switch"
b.vm.provision "shell", inline: $setup, privileged: false
b.vm.provision "shell", inline: "ip -6 addr add fd01::2/64 dev eth1"
- b.vm.provision "shell", inline: $setup_ssh, privileged: false
- b.vm.provision "shell", inline: $setup_integ, privileged: false
end
config.vm.define "C" do |c|
+ c.vm.box = "nfd-integ"
c.vm.network "private_network", ip: "192.168.1.4", virtualbox__intnet: "ABC-switch"
c.vm.provision "shell", inline: $setup, privileged: false
c.vm.provision "shell", inline: "ip -6 addr add fd01::4/64 dev eth1"
- c.vm.provision "shell", inline: $setup_ssh, privileged: false
- c.vm.provision "shell", inline: $setup_integ, privileged: false
end
config.vm.define "D" do |d|
+ d.vm.box = "nfd-integ"
d.vm.network "private_network", ip: "192.168.3.3", virtualbox__intnet: "DtoRouter"
d.vm.provision "shell", inline: $setup, privileged: false
d.vm.provision "shell", inline: $setup_d
- d.vm.provision "shell", inline: $setup_ssh, privileged: false
- d.vm.provision "shell", inline: $setup_integ, privileged: false
end
config.vm.define "router" do |router|
diff --git a/run-vagrant-tests.sh b/run-vagrant-tests.sh
index 7a03e1e..934360a 100755
--- a/run-vagrant-tests.sh
+++ b/run-vagrant-tests.sh
@@ -31,9 +31,20 @@
mkdir -p logs/A logs/B logs/C logs/D
mkdir -p temp
-ssh-keygen -b 2048 -t rsa -f temp/sshkey -q -N ""
+ssh-keygen -t ecdsa -f temp/sshkey -q -N ""
-vagrant up
+vagrant up router
+
+vagrant up template
+vagrant ssh template -c "sudo apt-get clean"
+vagrant package --output nfd-integ.box template
+vagrant box remove nfd-integ
+vagrant box add --name nfd-integ nfd-integ.box
+
+vagrant up A
+vagrant up B
+vagrant up C
+vagrant up D
vagrant ssh A -c "cd integration-tests && ./run_tests.py test_all 2>&1 | tee run.log"
vagrant ssh A -c "integration-tests/collect-logs.sh A"
@@ -43,4 +54,6 @@
vagrant destroy -f
+vagrant box remove nfd-integ
rm -Rf temp
+rm -f nfd-integ.box