一、文章目标

1.1目标

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

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

1.2文章环境及版本


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.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文件配置等,未涉及,只要参考类似模块,应该可以顺利完成。

原文发布时间为:2018-10-11

本文作者:M.S-Group.皮皮熊

本文来自云栖社区合作伙伴“SDNLAB”,了解相关信息可以关注“SDNLAB”。

DLUX组件扩展下篇-实践相关推荐

  1. Vue.js组件化开发实践

    Vue.js组件化开发实践 前言 公司目前制作一个H5活动,特别是有一定统一结构的活动,都要码一个重复的轮子.后来接到一个基于模板的活动设计系统的需求,便有了一下的内容.首先会对使用Vue进行开发的一 ...

  2. 得到、微信、美团、爱奇艺APP组件化架构实践

    一.背景 随着项目逐渐扩展,业务功能越来越多,代码量越来越多,开发人员数量也越来越多.此过程中,你是否有过以下烦恼? 项目模块多且复杂,编译一次要5分钟甚至10分钟?太慢不能忍? 改了一行代码 或只调 ...

  3. Android组件化开发实践(九):自定义Gradle插件

    本文紧接着前一章Android组件化开发实践(八):组件生命周期如何实现自动注册管理,主要讲解怎么通过自定义插件来实现组件生命周期的自动注册管理. 1. 采用groovy创建插件 新建一个Java L ...

  4. RBAC权限模型及数据权限扩展的实践

    原文:RBAC权限模型及数据权限扩展的实践 话说大家对RBAC权限模型应该是耳熟能详了.但真正用的好的并不多.并且原始的RBAC模型并不包括数据权限的管理,网上也差点儿没有相关的文章可以參考.本人经过 ...

  5. Android彻底组件化方案实践

    本文讲的是Android彻底组件化方案实践,一.模块化.组件化与插件化 项目发展到一定程度,随着人员的增多,代码越来越臃肿,这时候就必须进行模块化的拆分.在我看来,模块化是一种指导理念,其核心思想就是 ...

  6. 基于log4net的日志组件扩展封装,实现自动记录交互日志 XYH.Log4Net.Extend(微服务监控)...

    背景: 随着公司的项目不断的完善,功能越来越复杂,服务也越来越多(微服务),公司迫切需要对整个系统的每一个程序的运行情况进行监控,并且能够实现对自动记录不同服务间的程序调用的交互日志,以及通一个服务或 ...

  7. Firefox - 附加组件 - 扩展 - Firebug - 更新 - 1.2.0b15

    Firefox - 附加组件 - 扩展 - Firebug - 更新 - 1.2.0b15 * Suspend feature 禁用特性 * Display which tabs have fireb ...

  8. extjs6 基础组件扩展和自定义组件封装--02目录结构

    博客主要围绕核心扩展讲解. 1.overrides                            继承ext组件扩展自定义方法. 2.plugin                        ...

  9. layui树组件(扩展为带有图标的layui树组件)

    项目场景: 说起来layui前端框架,做后端开发的也是再熟悉不过了,模块开发,友好的UI界面,对前端后端人员都十分友好,当然,文档和示例也算是相当完备了.但是在开发项目时会遇到这样一种情况,就是想实现 ...

最新文章

  1. 记录篇,自己在项目中使用过的。
  2. windows下载anaconda3速度太慢怎么办
  3. c语言程序设计网课作业答案,《C语言程序设计》作业答案
  4. 23种设计模式C++源码与UML实现--状态模式
  5. 【机器学习基础】数学推导+纯Python实现机器学习算法4:决策树之ID3算法
  6. Xray使用的一些经验分享(xray+burp的使用)
  7. JFinalConfig
  8. windows IDA 调试SO
  9. 第二届字节跳动夏令营启动全球报名,图灵奖得主授课
  10. 深度强化学习之近端策略优化(Proximal Policy Optimization)
  11. 超频到3200最佳时序_攒啥电脑呢?笔记本内存也要超频?
  12. 百度AI 开放平台 - 各大AI 开放平台开放能力解读和分析,技术的应用场景,技术前景
  13. python气象卫星云图解析_02_中央气象台
  14. 有了创意和灵感,怎样用科技让它们跃然纸上?
  15. 计算机毕业设计论文不会做怎么办?这里送教程送代码送开题送答辩
  16. 【2023最新】超详细图文保姆级教程:App开发新手入门(1)
  17. HCIE 面试资料-IPv6
  18. 南宁西乡塘区的计算机中专学校,南宁市西乡塘区中专学校
  19. UDP可靠传输,UDT和UDX协议比较
  20. Window 任务栏里面Idea图标出现空白

热门文章

  1. Python 错误和异常小结
  2. [计算机视觉][神经网络与深度学习]Faster R-CNN配置及其训练教程
  3. VB6 XArrayDB | Xarray ReDim 用法
  4. pku 1486 求出二分匹配图中的必须边
  5. AsSystemRum 系统提权工具 实现思路及其源码
  6. hdu4814 模拟(黄金分割进制转换)
  7. C语言经典例97-输入字符写入文件
  8. 【Linux 内核】Linux 内核源码目录说明 ① ( arch 目录 | block 目录 | certs 目录 | crypto 目录 | Documentation 目录 )
  9. 【Google Play】Android 应用用户协议 ( 生成用户协议 | HTML 用户协议模板 | Markdown 用户协议模板 )
  10. 【Groovy】编译时元编程 ( 方法拦截时用到的 AST 语法树节点 MethodNode 节点 | MethodNode 节点分析 | MethodNode 节点中的BlockStatement)