【技术实现步骤摘要】
OVSDB客户端代码自动生成方法、系统、设备及介质
本专利技术属于SDN(软件定义网络)以及数据库领域,特别涉及一种OVSDB客户端代码自动生成方法、系统、设备及介质。
技术介绍
SDN网络中的协议按照功能可以分为管理层面协议与控制层面协议。以SDN控制器为界限,按照可编程接口的层级可以分为南向接口与北向接口。OpenFlow协议严格的来说,是一种控制层面的南向接口协议,而OVSDB管理协议,是管理层面的南向接口协议。OVSDB管理协议(OpenvSwitchDatabaseManagementProtocol,开放虚拟交换机数据库管理协议)起初由VMware公司提出,负责管理开源的软件交换机(OpenvSwitch,OVS)的开放虚拟交换机数据库(OpenvSwitchDatabase,OVSDB),是一个用于实现对虚拟交换机的可编程访问和配置管理的SDN管理协议。OVSDB管理协议定义了一套RPC接口,用户可通过远程调用的方式管理OVSDB,主要包括通信协议(JSON-RPC)方法和所支持的OVSDB操作。OVS是OVSDB的主要应用,其数据模式由OVSDBSchema(DB-SCHEMA)定义,交换机支持通过OVSDB与控制器交互数据,这些数据以表的形式存储在OVSDB数据库中,这些表即为OVSDBSchema表,当交换机和控制器都为OVSDBClient(通过ovsdb管理协议,来与ovsdb数据库服务器进行通信)时,可以在表中增加行,还可以订阅行的添加、删除和修改。随着SDN和虚拟化技术的发
【技术保护点】
1.一种OVSDB客户端代码自动生成方法,其特征在于,包括如下步骤:/nS1、获取待解析的Schema文件,并对Schema文件进行合法性检查,Schema文件中定义了包括数据库的属性和数据库中各表项的属性;/nS2、定义解析后的数据格式,将合法的Schema文件中的内容解析到该数据格式中,得到解析后的数据;/nS3、基于解析后的数据和模板代码文件生成数据库Go语言代码,其中模板代码文件中包括预先生成的代码模板,包括步骤:/nS31、遍历解析后的数据,根据数据库属性,结合模板代码文件生成公共代码;/nS32、遍历解析后的数据,根据各表项属性,结合模板代码文件生成每个表项的API代码;/nS33、对公共代码和每个表项的API代码进行格式化,得到最终的数据库Go语言代码。/n
【技术特征摘要】 【专利技术属性】
1.一种OVSDB客户端代码自动生成方法,其特征在于,包括如下步骤:
S1、获取待解析的Schema文件,并对Schema文件进行合法性检查,Schema文件中定义了包括数据库的属性和数据库中各表项的属性;
S2、定义解析后的数据格式,将合法的Schema文件中的内容解析到该数据格式中,得到解析后的数据;
S3、基于解析后的数据和模板代码文件生成数据库Go语言代码,其中模板代码文件中包括预先生成的代码模板,包括步骤:
S31、遍历解析后的数据,根据数据库属性,结合模板代码文件生成公共代码;
S32、遍历解析后的数据,根据各表项属性,结合模板代码文件生成每个表项的API代码;
S33、对公共代码和每个表项的API代码进行格式化,得到最终的数据库Go语言代码。
2.根据权利要求1所述的一种OVSDB客户端代码自动生成方法,其特征在于,步骤S1中,对Schema文件进行合法性检查包括操作:检查Schema文件是否存在以及打开和读取是否正常;检查Schema文件内容是否符合Json格式语法;检查Schema文件内容中的相关关键字是否符合RFC7047规范;检查是否能够使用ovsdb-tool工具将Schema文件创建为临时数据库文件。
3.根据权利要求2所述的一种OVSDB客户端代码自动生成方法,其特征在于,若Schema文件进行合法性检查通过,删除临时数据库文件;若Schema文件进行合法性检查未通过,返回具体错误信息并指导开发人员定位修改Schema文件。
4.根据权利要求1所述的一种OVSDB客户端代码自动生成方法,其特征在于,步骤S2中,根据RFC7047规范定义解析后的数据格式。
5.根据权利要求1所述的一种OVSDB客户端代码自动生成方法,其特征在于,步骤S2中,调用Go标准库json反序列化函数将Schema文件中的内容解析到定义的数据格式中。
6.根据权利要求1所述的一种OVSDB客户端代码自动生成方法,其特征在于,执行步骤S31前,创建生成代码的存放路径目录,若该目录已存在则清空该目录下的旧文件。
7.根据权利要求1所述的一种OVSDB客户端代码自动生成方法,其特征在于,步骤S33包括操作:使用gofmt工具对代码进行格式化,包括换行、空格、括号匹配;使用goimport工具对代码进行格式化,导入依赖包。
8.一种OVSDB客户端代码自动生成系统,其特征在于,包括:
合法性检查模块:用于获取待解析的Schema文件,并对Schema文件进行合法性检查,Schema文件中定义了包括数据库的属性和数据库中各表项的属性;
技术研发人员:余兆国,沈洋,
申请(专利权)人:网络通信与安全紫金山实验室,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。