DLUX组件扩展下篇-实践

作者: M.S-Group.皮皮熊,M.S-Group组织主要成员之一,数通行业老兵,精通传统数通网络技术,SDN/NFV新技术的狂热拥护者!

一、文章目标

1.1目标

随着SDN技术的逐步成熟,大量的传统数通厂家和新型的IT厂家,都投入了一定的人员进行相关的产品技术预研。而ODL作为SDN控制器的主要开源项目,自然也成了多数人学习和搭建模拟环境试验的首选。但是,从本人切入了解、学习以及在此上面,完成产品预研的经历看,由于文档缺失、网上各种文章质量不等,从搭建环境、理解框架工作机制到完成模块扩展定制,花了大量的时间,因此特整理此文,希望从代码组织、工作原理及扩展实践几个维度,系统的说明相关步骤,以方便后续人员了解、少走弯路、节省时间!

另外,开源系统自带的DLUX相关组件,由于界面比较简约,个人认为主要价值是示例性质、各团队若在ODL基础上,进一步研发自己的产品,势必会进行组件扩展,因此也希望本扩展用例能再这方面也产生一定的推进作用。

1.2文章环境及版本

Linux:ubuntu 4.15.0-34-generic
Java :1.8.0_144
ODL :release/carbon-sr4
代码下载:
git clone –b release/carbon-sr4 https://git.opendaylight.org/gerrit/dlux
git clone –b release/carbon-sr4 https://git.opendaylight.org/gerrit/dluxapps

1.3 所需背景知识

参考:DLUX组件扩展上篇-原理
需要了解: DLUX 组件注册的view的动态添加、UI-Route状态设置、nav菜单添加、Sec-logo设置、编译工程依赖等信息。

二、扩展新组件

本节以增加新feature组件dlux-apps-cowin为例,逐步详细介绍各个步骤:

2.1新Feature添加

./karaf(ODL的服务器端运行命令),系统默认加载的feature信息配置文件为当前目录的../etc/org.apache.karaf.features.cfg文件中:

其中,红色标记为加载的opendaylight的集成feature信息,上述文件对应:
/home/sdn/opendaylight/distribution-karaf-0.6.4-Carbon/system/org/opendaylight/integration/features-integration-index/0.6.4-Carbon/ eatures-integration-index-0.6.4-Carbon-features.xml文件。

在Features.xml (dluxapps\features\features-dluxapps\src\main\features) 中,修改两处:

确保在./karaf的控制台下,使用
Feature:list | grep dlux 可以发现odl-dluxapps-cowin组件。
在当前目录下,增加Odl-dluxapps-cowin目录,如下,并参考topology目录下pom.xml配置工程文件:

Pom.xml文件如下:

2.2 新模块的注册

如图,在dluxapps/Applications目录下,创建对应Cowin的目录:

参考topology目录,确定相关文件:

2.2.1 Blueprint.xml(在cowin-bundle目录下):

2.2.2 Cowin.tpl.html文件(cowin-module目录下):

2.2.3 Cowin.module.js文件:

2.2.4 Cowin.controller.js

2.2.5 Cowin.less

设置背景为淡蓝色。

2.3 新模块需要的资源的放置

在src\asserts\images下,放置:logo_cowin.gif文件
修改gulp.js的build.config.js文件,确保工程构建时,拷贝到对应的asserts目录下。

2.4 根据运行web服务目录构建本地调试环境

见2.2 web服务目录结构,拷贝ODL工程目录下对应的jar包并解压到相应目录:
如:
默认build 并install的工程目录为Linux下当前用户根目录.m2下:
~/.m2/repository/org/opendaylight/dlux/dlux.loader.resources/0.5.4-Carbon/
dlux.loader.resources-0.5.4-Carbon.jar,使用tar解压到本地,文件内容包括:

其它的modules组件在对应的dluxapps目录下,类似方式解压到对应目录即可。
构建目录架构,如图所示:

其中:
①、②就是dlux-Modules-loader-resources下文件
③是assets下image文件,需要将logo 文件放置在该目录
④将dluxapps的新建的module cowin相关文件拷贝放置该目录

2.5 编译完成,并在karaf中install

2.5.1 编译

编译,在dluxapps目录下,运行:

确认编译成功即可。

2.5.2 安装
A:su运行./karaf
B:在控制台,查看dlux相关的feature
命令: feature:list | grep dlux
如下所示:

C:安装
命令: feature:install odl-dluxapps-cowin
如下所示:

2.6 web打开

输入:http://20.0.0.22:8181/index.html,其中20.0.0.22为ODL运行服务器IP。

至此,一个全新的dlux module Cowin完全安装成功!

三、其它说明

介于篇幅所限,文章只把关键的步骤和过程中,自己碰到的坑,都详细记录。但是还有比较多的如工程pom.xml文件配置等,未涉及,只要参考类似模块,应该可以顺利完成。
文中涉及的扩展工程,方便大家参考,尽力使用了完整文档,且可以直接拷贝使用。为了节省时间,需要工程代码的同学,可以加微信直接提供参考代码,进行学习交流。
微信二维码,请在添加时备注:SDN学习交流。


  • 本站原创文章仅代表作者观点,不代表SDNLAB立场。所有原创内容版权均属SDNLAB,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用,转载须注明来自 SDNLAB并附上本文链接。 本站中所有编译类文章仅用于学习和交流目的,编译工作遵照 CC 协议,如果有侵犯到您权益的地方,请及时联系我们。
  • 本文链接https://www.sdnlab.com/22471.html
分享到:
相关文章
条评论

登录后才可以评论

m.s-group.皮皮熊 发表于18-10-10
0