| schillinge | 2f5e85e | 2019-03-03 19:17:23 +0100 | [diff] [blame] | 1 | #!/usr/bin/env python2 |
| 2 | # Copyright (c) 2019 Erik Schilling |
| 3 | # ALL RIGHTS RESERVED. |
| 4 | # |
| 5 | # Licensed under the Apache License, Version 2.0 (the "License"); |
| 6 | # you may not use this file except in compliance with the License. |
| 7 | # You may obtain a copy of the License at |
| 8 | # |
| 9 | # http://www.apache.org/licenses/LICENSE-2.0 |
| 10 | # |
| 11 | # Unless required by applicable law or agreed to in writing, software |
| 12 | # distributed under the License is distributed on an "AS IS" BASIS, |
| 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 14 | # See the License for the specific language governing permissions and |
| 15 | # limitations under the License. |
| 16 | |
| 17 | from emuvim.api.openstack.openstack_api_endpoint import OpenstackApiEndpoint |
| 18 | from emuvim.api.osm.kafka import Kafka |
| 19 | from emuvim.api.osm.lcm import LCM |
| 20 | from emuvim.api.osm.mongo import Mongo |
| 21 | from emuvim.api.osm.mysql import Mysql |
| 22 | from emuvim.api.osm.nbi import NBI |
| 23 | from emuvim.api.osm.ro import RO |
| 24 | from emuvim.api.osm.zookeeper import Zookeeper |
| 25 | from emuvim.dcemulator.net import DCNetwork |
| 26 | |
| 27 | |
| 28 | from mininet.log import setLogLevel |
| 29 | setLogLevel('debug') |
| 30 | |
| 31 | net = DCNetwork(monitor=False, enable_learning=True) |
| 32 | api = None |
| 33 | try: |
| 34 | dc1 = net.addDatacenter("dc1") |
| 35 | api = OpenstackApiEndpoint("0.0.0.0", 6001) |
| 36 | api.connect_datacenter(dc1) |
| 37 | api.connect_dc_network(net) |
| 38 | |
| 39 | s1 = net.addSwitch('s1') |
| 40 | |
| 41 | zookeeper_ip = '10.0.0.96' |
| 42 | kafka_ip = '10.0.0.97' |
| 43 | mongo_ip = '10.0.0.98' |
| 44 | nbi_ip = '10.0.0.99' |
| 45 | ro_db_ip = '10.0.0.100' |
| 46 | ro_ip = '10.0.0.101' |
| 47 | lcm_ip = '10.0.0.102' |
| 48 | |
| 49 | d1 = net.addDocker('d1', dimage='ubuntu:trusty') |
| 50 | |
| 51 | VERSION = 'releasefive-daily' |
| 52 | |
| 53 | zookeeper = Zookeeper(net, zookeeper_ip) |
| 54 | kafka = Kafka(net, kafka_ip, zookeeper_ip) |
| 55 | mongo = Mongo(net, mongo_ip) |
| 56 | nbi = NBI(net, nbi_ip, mongo_ip, kafka_ip) |
| 57 | ro_db = Mysql(net, ro_db_ip) |
| 58 | ro = RO(net, ro_ip, ro_db_ip, version=VERSION) |
| 59 | lcm = LCM(net, lcm_ip, ro_ip, mongo_ip, kafka_ip) |
| 60 | |
| 61 | net.addLink(d1, s1) |
| 62 | net.addLink(zookeeper.instance, s1) |
| 63 | net.addLink(kafka.instance, s1) |
| 64 | net.addLink(mongo.instance, s1) |
| 65 | net.addLink(nbi.instance, s1) |
| 66 | net.addLink(ro_db.instance, s1) |
| 67 | net.addLink(ro.instance, s1) |
| 68 | net.addLink(lcm.instance, s1) |
| 69 | |
| 70 | net.start() |
| 71 | api.start() |
| 72 | |
| 73 | zookeeper.start() |
| 74 | kafka.start() |
| 75 | mongo.start() |
| 76 | nbi.start() |
| 77 | ro_db.start() |
| 78 | ro.start() |
| 79 | lcm.start() |
| 80 | vim_id = nbi.register_emulated_api('emu-vim1', api) |
| 81 | |
| 82 | net.ping([d1, zookeeper.instance]) |
| 83 | net.ping([d1, kafka.instance]) |
| 84 | net.ping([d1, mongo.instance]) |
| 85 | net.ping([d1, nbi.instance]) |
| 86 | net.ping([d1, ro.instance]) |
| 87 | net.ping([d1, ro_db.instance]) |
| 88 | net.ping([d1, lcm.instance]) |
| 89 | |
| 90 | nbi.onboard_vnfd('vnfs/ping_vnf') |
| 91 | nbi.onboard_vnfd('vnfs/pong_vnf') |
| 92 | nsd_id = nbi.onboard_nsd('services/pingpong_ns') |
| 93 | ns_id = nbi.ns_create('pingpong-test', nsd_id=nsd_id, vim_id=vim_id) |
| 94 | |
| 95 | nbi.ns_wait_until_all_in_status('running') |
| 96 | nbi.ns_delete(ns_id) |
| 97 | nbi.ns_wait_until_all_in_status('terminated') |
| 98 | finally: |
| 99 | net.stop() |
| 100 | api.stop() |