一、实验目的 
对 Python 调用 OpenDaylight 的 REST API 方法有初步了解。
 
二、实验任务 
本实验需要用另一种方法完成上一个实验相同的功能,即通过 Python 程序调用OpenDaylight 的北向接口下发关于硬超时的流表,实现拓扑内主机在一定时间内的网络通断。实验拓扑如下:
 
三、实验步骤 
1. 实验环境:安装了 Ubuntu 18.04.5 Desktop amd64 的虚拟机
2. 实验过程
 
(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 文件(文件中不包含 http 请求的 url 地址):
$ nano hardtimeout.json
 
(3)运行 Python 代码,完成流表下发(结果验证方法同实验 6)
 
* 提示:运行代码如果报错:ImportError: No module named requests,可尝试如下方法。
 
$ sudo apt-get install python-pip //如果 pip 没装的话需要运行
$ sudo pip install requests
$ python odlnorth.py
 
遇到问题!
 
 
 
* 更多 OpenDaylight 的 REST API 文档可以在下面的地址中查找:http://127.0.0.1:8181/apidoc/explorer/index.html 

10.14 2020 实验 7:OpenDaylight 实验——Python 中的 REST API 调用的更多相关文章

  1. 实验 7 : OpenDaylight 实验 —— Python 中的 REST API 调用

    实验 7 : OpenDaylight 实验 -- Python 中的 REST API 调用 一.实验 目的 对 Python 调用 OpenDaylight 的 REST API 方法有初步了解. ...

  2. 数理统计(二)——Python中的概率分布API

    数理统计(二)——Python中的概率分布API iwehdio的博客园:https://www.cnblogs.com/iwehdio/ 数理统计中进行假设检验需要查一些分布的上分位数表.在scip ...

  3. 实验 6:OpenDaylight 实验——OpenDaylight 及 Postman 实现流表下发

    一.实验目的 熟悉 Postman 的使用;熟悉如何使用 OpenDaylight 通过 Postman 下发流表. 二.实验任务 流表有软超时和硬超时的概念,分别对应流表中的 idle_timeou ...

  4. python中函数的定义,调用,全局变量,局部变量,函数的嵌套使用-初级篇

    函数的基本概述 在学习函数之前,一直遵循:面向过程编程,即:根据业务逻辑从上到下实现功能,可以思考一下如果有某个功能的代码是在多个地方使用的是否可以只写一次?此时的代码该如何定义.先观察以下的案例: ...

  5. Python爬虫之百度API调用

    调用百度API获取经纬度信息. import requests import json address = input('请输入地点:') par = {'address': address, 'ke ...

  6. Python中使用高德API实现经纬度转地名

    场景 高德API提供给开发者们一些常用功能的接口,其中有一种叫地理/逆地理编码能实现 地名查询经纬度和经纬度查地名. 实现 高德API平台: https://lbs.amap.com/ 注册并登陆 找 ...

  7. python中不同包之间调用方法、

    在pycharm中... 当两个py文件在同一个文件夹下的时候.直接from 文件名 import *  即可 当两个文件在不同的文件夹下的时候.需要在文件中加入 _init_.py 文件.里面可以什 ...

  8. python中函数定义与调用顺序问题

    def main(): try: mtd(3) except Exception as e: print("程序出现异常:", e) mtd(3) def mtd(a): if a ...

  9. python中time模块的调用及使用

    1 import time #通常import语句会写到代码的开头 2 3 print('------------------------') 4 print('------------------- ...

  10. 简单介绍下python中函数的基础语法

    python 函数 定义 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可. 特性 减少代码重复 使程序变得可扩展 使程序变得易于维护 函数的创建 pyt ...

随机推荐

  1. JDBC之Statement

    Statement 目录 Statement Statement Statement概述 要执行的SQL分为两类 查询 增删改 Statement继承体系 SQL注入问题 SQL注入问题解决 获取得到 ...

  2. chrome网页截图

    1. 打开网页 2. F12,打开开发者工具 3. Ctrl+Shift+P,打开应用查找框 4. 输入screenshot,查找相关工具 5. 试用工具 1)Capture area screens ...

  3. 计数 dp 部分例题(六~十部分)

    六.转化求和顺序(線形和への分解) 例题1 题意 有一个长为 \(n\) 的数组 \(a\).求在 \(a\) 中选择 \(k\) 个数的所有方案中,每次选择的所有数的中位数的和.\(n\le 10^ ...

  4. docker打包nginx

    nginx镜像  localtime为/etc/localtime文件 给容器限定日志打印时间为北京时间 FROM nginx:stable-alpine MAINTAINER geyanan gey ...

  5. Navicat连接Oracle时报错ORA-28547:完美解决

    1. 先用你的IDEA或者别人的连接到oracle数据库(为了查询版本) 1.1 查询版本SQL:select * from v$version; 2. 引入对应的oci.dll文件 链接:https ...

  6. 杭电OJ--1014

    问题描述: 计算机模拟通常需要随机数.生成伪随机数的一种方法是通过窗体的函数seed(x+1) = [种子 (x) + STEP]% MOD其中 "%" 是模量运算符.这样的函数将 ...

  7. 算法与数据结构——AVL树(平衡二叉树)

    定义 typedef struct AVLNode* Position; typedef Position AVLTree; /* AVL树类型 */ struct AVLNode { Element ...

  8. find_in_set使用:匹配按逗号分隔后的内容

    SELECT  * FROM `tb_test` WHERE c_id ='123' AND create_time LIKE '2021-06-03%'  AND find_in_set('A362 ...

  9. javaScript的介绍

    JavaScript Java Script的概述: 1组成 三部分组成 ecmaScript 基础语法(es5) dom document object 莫得了 文档对象模型 (操作html文档内容 ...

  10. jekyll+github pages

    写在前面 这篇文章记录了我折腾jekyll,github pages的过程,看到别人的 xxxx.github.io,于是我也想搞一个,了解到大都使用的jekyll来生成的.最开始我还不知道可以直接f ...