实验 7:OpenDaylight 实验——Python 中的 REST API 调用
一、实验环境
- Oracle VM VirtualBox 虚拟机环境
- ubuntu-16.04.7-desktop-amd64
二、实验目的
对 Python 调用 OpenDaylight 的 REST API 方法有初步了解。
三、实验任务
本实验需要用另一种方法完成上一个实验相同的功能,即通过 Python 程序调用OpenDaylight 的北向接口下发关于硬超时的流表,实现拓扑内主机在一定时间
内的网络通断。实验拓扑如下:
三、实验过程
(1)生成拓扑
$ sudo mn --topo=single,3 --controller=remote,ip=127.0.0.1,port=6633 --switch ovsk,protocols=OpenFlow13
生成拓扑的方法同之前的实验一致。
(2)编写 Python 代码和 JSON 格式的请求内容
$ nano odlnorth.py
由于是下发流表,因此需要有 http 请求的具体内容,同之前的 Postman 一样,
也是以 JSON 格式来表示。
编辑 hardtimeout.json 文件:$ nano hardtimeout.json
文件中不包含 http 请求的 url 地址
(3)运行 Python 代码,完成流表下发
$ python odlnorth.py
可以看到在icmp_seq=39到icmp_seq=50中间有10次间隔
提示:运行代码如果报错:ImportError: No module named requests,可尝试
如下方法。
$ sudo apt-get install python-pip //如果 pip 没装的话需要运行
$ sudo pip install requests
实验总结
- 建立拓扑前要开opendaylight