zoukankan      html  css  js  c++  java
  • 实验 7:OpenDaylight 实验——Python 中的 REST API 调用

    一、实验目的

    对 Python 调用 OpenDaylight 的 REST API 方法有初步了解

    二、实验任务

    本实验需要用另一种方法完成上一个实验相同的功能,即通过 Python 程序调用 OpenDaylight 的北向接口下发关于硬超时的流表,实现拓扑内主机在一定时间内的网络通断。

    三、实验步骤

    1. 实验环境

    安装了 Ubuntu 16.04.5 Desktop amd64 的虚拟机

    2. 实验过程

    (1)生成拓扑

    $ sudo mn --topo=single,3 --controller=remote,ip=127.0.0.1,port=6633 --switch ovsk,protocols=OpenFlow13
    

    生成拓扑之后发现 ping 失败

    解决办法:要在 OpenDaylight 启动之后再生成拓扑

    (2)编写 Python 代码和 JSON 格式的请求内容

    $ nano odlnorth.py
    $ nano hardtimeout.json
    

    (3)运行 Python 代码,完成流表下发

    运行 odlnorth.pu报错

    解决办法:没有安装 requests库,执行以下安装

    $ sudo apt-get install python-pip //如果 pip 没装的话需要运行
    $ sudo pip install requests
    

    安装 pip 中报错

    解决办法:查询了一些资料之后发现可能是之前的 apt 命令没有执行完成就被关掉了。开启 root 权限,执行以下两条命令强制解锁
    (我没有用 root 权限也试过,结果仍让报错)

    sudo rm /var/cache/apt/archives/lock
    sudo rm /var/lib/dpkg/lock
    

    执行完后再次执行安装 pip 命令

    成功了,但是安装的速度非常非常慢,基本不动。于是我又去查询资料看看能不能安装的快点。
    解决办法:可以通过更新 apt-get 的源来解决这个问题。具体的步骤可以参考以下这篇博客。
    https://blog.csdn.net/gxz987/article/details/98185262


    可以发现更新完之后的速度非常快。

    解决了前面的问题之后,启动 OpenDaylight,建立拓扑,运行 odlnorth.py。

    实验结果与预期一致。

    四、总结

    这次实验整体上并不难,有实验六的基础做起来很快。唯一让我比较困扰的就是中间 pip 安装出现的两次问题,好在都顺利解决了。

  • 相关阅读:
    Document
    JavaScript
    day6 双向循环及pass、break、continue的使用以及for循环
    day5 isinstance&代码块&分支&while循环
    day4:运算符
    day3:强制类型转换&自动类型转换&变量缓存机制
    day2:Number,tuple,str,list,set,dict
    day1:注释和变量
    线段树区间修改+查询区间和
    Prim/Kruskal求最小生成树
  • 原文地址:https://www.cnblogs.com/liskarmw/p/13818093.html
Copyright © 2011-2022 走看看