| #!/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() |