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
Run
- First terminal:
sudo python example_topology.py- Second terminal:
- TODO add CLI commands here (e.g. request the start of a new compute resource)
TODO
- DCemulator
- ...
- Cloud-like reference API with CLI for demonstrations
- Write CLI client
- Start compute
- Stop compute
- Re-factor endpoint API so that API objects can be more or less statless (ask DCEmulator for available DCs instead of maintaining a own list)
- Create an Ansible-based automatic installation routine
- Add resource constraints to datacenters
- Check if we can use the Mininet GUI to visualize our DCs?
Features
- 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