echo "Running son-emu unit tests to validate installation"
cd /home/vagrant/son-emu
sudo python setup.py develop
- sudo py.test -v
+ sudo py.test -v src/emuvim/test/unittests
+
+ # install son-cli
+ sudo apt-get install -y python-pip python-dev
+ sudo apt-get install -y python3.4 python3-dev libffi-dev libssl-dev libyaml-dev build-essential
+ sudo pip install virtualenv
+ cd /home/vagrant
+ git clone https://github.com/sonata-nfv/son-cli.git
+ cd son-cli
+ virtualenv -p /usr/bin/python3.4 venv
+ source venv/bin/activate
+ python bootstrap.py
+ bin/buildout
+
+ # clone son-examples (disabled until repo goes public)
+ #cd /home/vagrant
+ #git clone https://github.com/sonata-nfv/son-examples.git
+
+ # pre-fetch sonata example vnfs from DockerHub
+ echo "Fetching SONATA example VNF container from DockerHub/sonatanfv"
+ sudo docker pull sonatanfv/sonata-empty-vnf
+ sudo docker pull sonatanfv/sonata-iperf3-vnf
+ sudo docker pull sonatanfv/sonata-snort-ids-vnf
+ sudo docker pull sonatanfv/sonata-ovs1-vnf
+ sudo docker pull sonatanfv/sonata-ryu-vnf
+ sudo docker pull sonatanfv/sonata-vtc-vnf
# place motd
+ cd /home/vagrant/son-emu
sudo cp utils/vagrant/motd /etc/motd
SHELL
if len(c) > 1:
name = c[0]
status = c[1]
- eth0ip = None
- eth0status = "down"
- if len(status.get("network")) > 0:
- eth0ip = status.get("network")[0].get("ip")
- eth0status = "up" if status.get(
- "network")[0].get("up") else "down"
+ eth0ip = status.get("docker_network", "-")
table.append([status.get("datacenter"),
name,
status.get("image"),
eth0ip,
- eth0status,
status.get("state").get("Status")])
headers = ["Datacenter",
"Container",
"Image",
- "eth0 IP",
- "eth0 status",
+ "docker0",
"Status"]
print(tabulate(table, headers=headers, tablefmt="grid"))
pp.pprint(list)
-parser = argparse.ArgumentParser(description='son-emu compute')
+parser = argparse.ArgumentParser(description="""son-emu compute
+
+ Examples:
+ - son-emu-cli compute start -d dc2 -n client -i sonatanfv/sonata-iperf3-vnf
+ - son-emu-cli list
+ - son-emu-cli compute status -d dc2 -n client
+ """, formatter_class=argparse.RawTextHelpFormatter)
parser.add_argument(
"command",
choices=['start', 'stop', 'list', 'status'],