blob: f94d02aa29b17f5bca8fae7209de9d2459d7fc88 [file] [log] [blame]
# -*- mode: ruby -*-
# vi: set ft=ruby :
$tools = <<SCRIPT
zypper addrepo --no-gpgcheck https://download.opensuse.org/repositories/utilities/openSUSE_Leap_42.3/utilities.repo
zypper addrepo --no-gpgcheck https://download.opensuse.org/repositories/devel:languages:nodejs/openSUSE_Leap_42.3/devel:languages:nodejs.repo
zypper refresh
zypper update -y
zypper install -y llvm-clang git cmake
zypper install -y pcre-devel python3-devel swig
zypper install -y openssl libopenssl-devel libssh-devel
zypper install -y libffi-devel npm8 python3-pip python3-Flask
zypper install -y protobuf-c libev-devel
SCRIPT
$libyang = <<SCRIPT
rm -rf libyang
git clone -b devel https://github.com/CESNET/libyang.git
cd libyang; mkdir build; cd build
CC=clang cmake -DGEN_LANGUAGE_BINDINGS=ON .. && make && make install
cd ../..
ldconfig
SCRIPT
$libnetconf2 = <<SCRIPT
rm -rf libnetconf2
git clone -b devel https://github.com/CESNET/libnetconf2.git
cd libnetconf2; mkdir build; cd build
CC=clang cmake -DENABLE_PYTHON=ON .. && make && make install
cd ../..
ldconfig
SCRIPT
$redblack = <<SCRIPT
rm -rf libredblack
git clone https://github.com/sysrepo/libredblack.git
cd libredblack; ./configure && make && make install
cd ..
ldconfig
SCRIPT
$sysrepo = <<SCRIPT
rm -rf sysrepo
git clone -b devel https://github.com/sysrepo/sysrepo.git
cd sysrepo; mkdir build; cd build
CC=clang cmake -DGEN_LANGUAGE_BINDINGS=OFF .. && make && make install
cd ../..
ldconfig
SCRIPT
$netopeer = <<SCRIPT
rm -rf Netopeer2
git clone -b devel-server https://github.com/CESNET/Netopeer2.git
cd Netopeer2/keystored; mkdir build; cd build
cmake .. && make && make install
cd ../../server; mkdir build; cd build
CC=clang cmake .. && make && make install
cd ../../..
chown -R vagrant:vagrant ./sysrepo/build/repository
SCRIPT
$liberoutergui = <<SCRIPT
rm -rf liberouter-gui
git clone https://github.com/CESNET/liberouter-gui.git
ln -s /home/vagrant/Netopeer2GUI liberouter-gui/modules/netopeer
cd liberouter-gui
cp -f modules/netopeer/app.config.json modules/
python3 ./bootstrap.py
pip3 install --upgrade pip
pip3 install -r backend/requirements.txt
cd frontend
npm install --unsafe-perm -g @angular/cli
npm install --unsafe-perm
cd ../..
SCRIPT
$backend = <<SCRIPT
cd liberouter-gui
python3 backend > backend.log 2>&1 &
cd ..
SCRIPT
$frontend = <<SCRIPT
cd liberouter-gui/frontend
/usr/local/bin/ng serve --preserve-symlinks --host 0.0.0.0 --proxy proxy.json > ../frontend.log 2>&1 &
cd ../..
SCRIPT
$netconf = <<SCRIPT
/usr/local/bin/sysrepod -d > sysrepod.log 2>&1 &
/home/vagrant/sysrepo/build/examples/application_example turing-machine > turing-machine.log 2>&1 &
/usr/local/bin/netopeer2-server -d > netopeer2.log 2>&1 &
SCRIPT
# uncomment the following line for vagrant < 2.0.0
# Vagrant::DEFAULT_SERVER_URL.replace('https://vagrantcloud.com')
Vagrant.configure("2") do |config|
config.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--memory", "2048"]
vb.customize ["modifyvm", :id, "--cpus", "2"]
vb.customize ["modifyvm", :id, "--hwvirtex", "on"]
vb.customize ["modifyvm", :id, "--audio", "none"]
vb.customize ["modifyvm", :id, "--nictype1", "virtio"]
end
config.vm.define "Netopeer2GUI" do |gui|
gui.vm.synced_folder "../../", "/home/vagrant/Netopeer2GUI", create: true
gui.vm.box = "opensuse/openSUSE-42.3-x86_64"
gui.vm.network "forwarded_port", host: "4200", guest: "4200", auto_correct: true
gui.vm.network "forwarded_port", host: "8830", host_ip: "127.0.0.1", guest: "830", auto_correct: true
gui.ssh.shell = "sh"
gui.vm.provision :shell, inline: $tools
gui.vm.provision :shell, inline: $libyang
gui.vm.provision :shell, inline: $libnetconf2
gui.vm.provision :shell, inline: $redblack
gui.vm.provision :shell, inline: $sysrepo
gui.vm.provision :shell, inline: $netopeer
gui.vm.provision :shell, inline: $liberoutergui
gui.vm.provision :shell, inline: $netconf, run: "always"
gui.vm.provision :shell, inline: $backend, run: "always"
gui.vm.provision :shell, inline: $frontend, run: "always"
end
end