X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2Fvim-emu.git;a=blobdiff_plain;f=examples%2Ffull_stack_emulation_complex.py;fp=examples%2Ffull_stack_emulation_complex.py;h=011c1a41f22c0dc99e17d6463f5bd5d5f991d3db;hp=0000000000000000000000000000000000000000;hb=2f5e85ecdfeac34a45e8ab0b1127a8bfa8e2e0b1;hpb=4995c5386698f6c1b370771b7b57d062e5f0f70d diff --git a/examples/full_stack_emulation_complex.py b/examples/full_stack_emulation_complex.py new file mode 100755 index 0000000..011c1a4 --- /dev/null +++ b/examples/full_stack_emulation_complex.py @@ -0,0 +1,100 @@ +#!/usr/bin/env python2 +# Copyright (c) 2019 Erik Schilling +# ALL RIGHTS RESERVED. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from emuvim.api.openstack.openstack_api_endpoint import OpenstackApiEndpoint +from emuvim.api.osm.kafka import Kafka +from emuvim.api.osm.lcm import LCM +from emuvim.api.osm.mongo import Mongo +from emuvim.api.osm.mysql import Mysql +from emuvim.api.osm.nbi import NBI +from emuvim.api.osm.ro import RO +from emuvim.api.osm.zookeeper import Zookeeper +from emuvim.dcemulator.net import DCNetwork + + +from mininet.log import setLogLevel +setLogLevel('debug') + +net = DCNetwork(monitor=False, enable_learning=True) +api = None +try: + dc1 = net.addDatacenter("dc1") + api = OpenstackApiEndpoint("0.0.0.0", 6001) + api.connect_datacenter(dc1) + api.connect_dc_network(net) + + s1 = net.addSwitch('s1') + + zookeeper_ip = '10.0.0.96' + kafka_ip = '10.0.0.97' + mongo_ip = '10.0.0.98' + nbi_ip = '10.0.0.99' + ro_db_ip = '10.0.0.100' + ro_ip = '10.0.0.101' + lcm_ip = '10.0.0.102' + + d1 = net.addDocker('d1', dimage='ubuntu:trusty') + + VERSION = 'releasefive-daily' + + zookeeper = Zookeeper(net, zookeeper_ip) + kafka = Kafka(net, kafka_ip, zookeeper_ip) + mongo = Mongo(net, mongo_ip) + nbi = NBI(net, nbi_ip, mongo_ip, kafka_ip) + ro_db = Mysql(net, ro_db_ip) + ro = RO(net, ro_ip, ro_db_ip, version=VERSION) + lcm = LCM(net, lcm_ip, ro_ip, mongo_ip, kafka_ip) + + net.addLink(d1, s1) + net.addLink(zookeeper.instance, s1) + net.addLink(kafka.instance, s1) + net.addLink(mongo.instance, s1) + net.addLink(nbi.instance, s1) + net.addLink(ro_db.instance, s1) + net.addLink(ro.instance, s1) + net.addLink(lcm.instance, s1) + + net.start() + api.start() + + zookeeper.start() + kafka.start() + mongo.start() + nbi.start() + ro_db.start() + ro.start() + lcm.start() + vim_id = nbi.register_emulated_api('emu-vim1', api) + + net.ping([d1, zookeeper.instance]) + net.ping([d1, kafka.instance]) + net.ping([d1, mongo.instance]) + net.ping([d1, nbi.instance]) + net.ping([d1, ro.instance]) + net.ping([d1, ro_db.instance]) + net.ping([d1, lcm.instance]) + + nbi.onboard_vnfd('vnfs/ping_vnf') + nbi.onboard_vnfd('vnfs/pong_vnf') + nsd_id = nbi.onboard_nsd('services/pingpong_ns') + ns_id = nbi.ns_create('pingpong-test', nsd_id=nsd_id, vim_id=vim_id) + + nbi.ns_wait_until_all_in_status('running') + nbi.ns_delete(ns_id) + nbi.ns_wait_until_all_in_status('terminated') +finally: + net.stop() + api.stop()