Skip to content

Instantly share code, notes, and snippets.

@mpeuster
Last active December 15, 2017 07:44
Show Gist options
  • Save mpeuster/eb57f4cfec90d6266a1ac100caebf936 to your computer and use it in GitHub Desktop.
Save mpeuster/eb57f4cfec90d6266a1ac100caebf936 to your computer and use it in GitHub Desktop.
vim-emu debugging
import logging
from mininet.log import setLogLevel
from emuvim.dcemulator.net import DCNetwork
from emuvim.api.rest.rest_api_endpoint import RestApiEndpoint
from emuvim.api.openstack.openstack_api_endpoint import OpenstackApiEndpoint
logging.basicConfig(level=logging.INFO)
setLogLevel('info') # set Mininet loglevel
logging.getLogger('werkzeug').setLevel(logging.DEBUG)
logging.getLogger('api.openstack.base').setLevel(logging.DEBUG)
logging.getLogger('api.openstack.compute').setLevel(logging.DEBUG)
logging.getLogger('api.openstack.keystone').setLevel(logging.DEBUG)
logging.getLogger('api.openstack.nova').setLevel(logging.DEBUG)
logging.getLogger('api.openstack.neutron').setLevel(logging.DEBUG)
logging.getLogger('api.openstack.heat').setLevel(logging.DEBUG)
logging.getLogger('api.openstack.heat.parser').setLevel(logging.DEBUG)
logging.getLogger('api.openstack.glance').setLevel(logging.DEBUG)
logging.getLogger('api.openstack.helper').setLevel(logging.DEBUG)
def create_topology():
net = DCNetwork(monitor=False, enable_learning=False)
dc1 = net.addDatacenter("dc1")
# add OpenStack-like APIs to the emulated DC
api1 = OpenstackApiEndpoint("0.0.0.0", 6001)
api1.connect_datacenter(dc1)
api1.start()
api1.connect_dc_network(net)
# add the command line interface endpoint to the emulated DC (REST API)
rapi1 = RestApiEndpoint("0.0.0.0", 5001)
rapi1.connectDCNetwork(net)
rapi1.connectDatacenter(dc1)
rapi1.start()
net.start()
net.CLI()
# when the user types exit in the CLI, we stop the emulator
net.stop()
def main():
create_topology()
if __name__ == '__main__':
main()
#
# This example uses the "nested Docker" deployment option
#
# clone latest code
git clone https://osm.etsi.org/gerrit/osm/vim-emu.git
# build the container
docker build -t vim-emu-img .
# run the container
docker run --name vim-emu -it --rm --privileged --pid='host' -v /var/run/docker.sock:/var/run/docker.sock vim-emu-img /bin/bash
# run the emulator (inside container)
root@a6e31ff0ffb3:/son-emu# python examples/openstack_single_dc.py
# attach a second terminal to the container (outside container, new terminal window)
docker exec -it vim-emu /bin/bash
# check the emulator cli (inside container)
root@a6e31ff0ffb3:/son-emu# vim-emu datacenter list
+---------+-----------------+----------+----------------+--------------------+
| Label | Internal Name | Switch | # Containers | # Metadata Items |
+=========+=================+==========+================+====================+
| dc1 | dc1 | dc1.s1 | 0 | 0 |
+---------+-----------------+----------+----------------+--------------------+
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment