OpenDayLight 氢版本 RestAPI 调用实例(1)-拓扑的获取(Java)

本文介绍了如何使用Java通过RestAPI与OpenDayLight的Hydrogen版本交互,获取网络拓扑信息。警告:氢版本API已过期。文中提供了HttpRequest、Main和OdlUtil三个关键类的概述,并给出了调用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本篇博文主要讲述如何使用Java调用OpenDayLight的RestAPI

氢版本api已经过期 ,请注意!!!!

要点

1.Python版本的代码可读性比较好,详见Python版本

2.本项目在GitHub上持续更新,项目地址,欢迎Fork

3.本项目的代码由3个文件组成:

HttpRequest.java 主要完成Http请求,集成了Basic Auth
Main.java 主类,调用的入口
OdlUtil.java 封装了对于OpenDayLight的调用的逻辑

4.Java版的博文更新的速度不会很快,如有问题请在下方留言

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(分割线)

代码如下:

Main.java

import java.util.Base64;

public class Main {
   
   

    public static void main(String[] args) {
   
   
	// write your code here
        //System.out.print(Base64.getEncoder().encodeToString(("admin" + ":" + "123456").getBytes()));
        OdlUtil odlUtil = new OdlUtil("127.0.0.1",8080);
        odlUtil.getTopology();
    }
}

OdlUtil.java

import java.util.Base64;

/**
 * Created by dxc on 16-11-15.
 */
public class OdlUtil {
   
   
    private String url = "";

    public OdlUtil(String host,int port){
   
   
        this.url = "http://" + host + ":" + port;
    }

    public String getTopology(){
   
   
        return getTopology("default");
    }

    public String getTopology(String containerName, String username, String password) {
   
   
        HttpRequest.setBasicAuth(getBasicAuthStr(username,password));
        String str = HttpRequest.sendGet(url + "/controller/nb/v2/topology/" + containerName,"");
        System.out.print(str);
        return null;
    }

    public String getTopology(String containerName){
   
   
        getTopology(containerName, "admin","admin")
### OpenDaylight版本特性 OpenDaylight版本引入了一系列新特性和改进,增强了网络功能虚拟化(NFV)的支持能力[^1]。此版本特别强调了性能优化和服务可用性的提升。 #### 主要特性包括: - **增强的安全框架**:提供更强大的安全机制来保护SDN控制器免受潜在威胁。 - **分布式数据存储(DDS)**:支持大规模部署场景下的高效状态管理和同步。 - **YANG工具链升级**:提升了配置管理效率并简化了设备建模流程。 - **多租户隔离**:实现了更好的资源分配策略以满足不同业务需求之间的独立运作。 ```bash # 查看已安装的karaf特性列表 feature:list | grep odl-l2switch ``` ### 安装指南 对于OpenDaylight版本而言,官方推荐采用Apache Karaf容器来进行安装操作。通过这种方式可以方便地管理依赖关系,并且能够灵活定制所需模块集合。 #### 准备工作 确保操作系统已经预先安装好Java运行环境(JRE),并且设置好了相应的环境变量`JAVA_HOME`指向JDK路径。 下载Karaf发行包并解压到指定目录下;进入该文件夹执行启动命令即可初始化一个新的ODL实例。 ```bash wget https://downloads.opendaylight.org/release/.../apache-karaf-x.x.x.tar.gz tar -xzvf apache-karaf-x.x.x.tar.gz cd apache-karaf-x.x.x/ bin/karaf clean ``` ### 配置说明 完成基本安装之后,可以根据实际应用场景调整一些关键参数设定。例如修改日志级别、开启RESTCONF API服务端口监听等。 编辑位于`${KARAF_HOME}/etc/org.ops4j.pax.logging.cfg`的日志配置文档,在其中定义合适的记录规则以便于后续排查问题时定位错误信息源。 为了启用REST接口访问权限控制,则需前往相同位置找到名为`org.opendaylight.controller.config.yang.restconf.cfg` 的属性文件进行相应条目的激活处理。 ```properties restconf.http.port=8080 restconf.https.enabled=true restconf.https.port=8443 ``` ### 使用教程 初次接触OpenDaylight平台的新手用户可以从以下几个方面入手学习如何利用其核心功能构建自动化运维解决方案: - 学习掌握基础概念如拓扑发现、流表编程原理; - 尝试编写简单的Python脚本调用北向API实现流量监控统计分析任务; - 参考官方Wiki页面获取更多关于特定插件使用的指导材料。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值