small bugfix, list should return a list not a iterator
1 file changed
tree: 19841fa4faf1d891061764f613fe45a6d20d049a
- .gitignore
- LICENSE
- README.md
- ansible/
- emuvim/
README.md
emulator-strawman
(c) 2015 by Manuel Peuster
emu-vim
Requirements
- needs the latest Dockernet to be installed in the system
- the wrapper uses standard Python imports to use the Dockernet modules
- Uses ZeroMQ based RPC to open a cloud-like interface that can be used by a demo CLI client
- pip install import zerorpc
- This will be replaced / extended by a REST API later
Project structure
- emuvim/ all emulator code
- api/ Data center API endpoint implementations (zerorpc, OpenStack REST, ...)
- cli/ CLI client to interact with a running emulator
- dcemulator/ Dockernet wrapper that introduces the notion of data centers and API endpoints
- test/ Unit tests
- example_topology.py An example topology script to show how topologies can be specified
Installation
Automatic installation is provide through an Ansible playbook.
- Requires: Ubuntu 14.04 LTS
sudo apt-get install ansible gitsudo vim /etc/ansible/hosts- Add:
localhost ansible_connection=local
1. Dockernet
git clone https://github.com/mpeuster/dockernet.gitcd dockernet/ansiblesudo ansible-playbook install.yml- Wait (and have a coffee) ...
2. Emulator
cdgit clone https://github.com/mpeuster/emulator-strawman.gitcd emulator-strawman/ansiblesudo ansible-playbook install.yml
Run
- First terminal:
cd emulator-strawman/emuvimsudo python example_topology.py- Second terminal:
cd emulator-strawman/emuvim/cli./son-emu-cli compute start -d dc1 -n vnf1./son-emu-cli compute start -d dc1 -n vnf2./son-emu-cli compute list- First terminal:
dockernet> vnf1 ping -c 2 vnf2
TODO
- DCemulator
- ...
- Write unit tests
- Add resource constraints to datacenters
- Check if we can use the Mininet GUI to visualize our DCs?
Features / Done
- Define a topology (Python script)
- Add data centers
- Add switches and links between the,
- Define API endpoints in topology
- call startAPI from topology definition and start it in a own thread
- make it possible to start different API endpoints for different DCs
- DCemulator
- correctly start and connect new compute resources at runtime
- remove and disconnect compute resources at runtime
- do IP management for new containers
- list active compute resources
- Cloud-like reference API with CLI for demonstrations
- Write CLI client
- Start compute
- Stop compute
- Create an Ansible-based automatic installation routine