一种YANG模型扩展校验的方法及装置、计算机可读存储介质与流程

文档序号:16529234发布日期:2019-01-05 10:36阅读:248来源:国知局
一种YANG模型扩展校验的方法及装置、计算机可读存储介质与流程

本发明涉及通信技术领域,尤其涉及一种yang模型扩展校验的方法及装置、计算机可读存储介质。



背景技术:

netconf(networkconfigurationprotocol,网络配置管理协议)是一种解决网络配置管理问题较为有效的方法,是ietf(theinternetengineeringtaskforce,互联网工程任务组)网络配置工作组提出的基于xml(extensiblemarkuplanguage,可扩展标记语言)的网络数据设备配置协议,它提供了安装、操作和删除网络设备配置的机制。

yang(yetanothernextgeneration,简称yang)语言是ietf提出的一种抽象的数据模型描述语言。作为netconf协议的重要的一部分,支持相对通用的关键字,但在实际应用过程中,这些关键字并不能完全满足业务场景的需要,而这些业务场景在保证业务的稳定正常运行上起到了十分重要的作用。比如,当创建、修改、删除配置数据时,需要根据变更前后的数据进行数据完备性、取值范围合法性、引用关系合法性等的校验;再比如,为了方便操作,当创建某些配置数据时,让系统连带创建、删除一些关联的配置参数等,对于类似场景均不能通过现有yang语法进行描述及处理。



技术实现要素:

有鉴于此,本发明的目的在于提供一种yang模型扩展校验的方法及装置、计算机可读存储介质,以解决业务场景不能通过现有yang语法进行描述及处理的问题。

本发明解决上述技术问题所采用的技术方案如下:

根据本发明的一个方面,提供的一种yang模型扩展校验的方法,所述方法包括步骤:

解析业务配置模型,从所述业务配置模型中获取使用yang模型扩展标签定义的校验参数;

监听数据的变更操作,若监听到数据的变更操作则收集变更操作的数据;

根据获取到的校验参数以及收集到的变更操作的数据,获取脚本执行列表;

根据获取的脚本执行列表,启动脚本运行环境执行所述脚本执行列表中的内容,并获取到yang模型扩展校验结果。

可选的,所述数据的变更操作包括数据的创建操作、数据的删除操作或者数据的修改操作。

可选的,所述yang模型扩展标签定义的校验参数包括:脚本优先级、触发脚本执行条件、脚本类型和脚本内容。

可选的,所述步骤根据获取到的校验参数以及收集到的变更操作的数据,获取脚本执行列表包括:

遍历所述变更操作的数据,并判断所述变更操作的数据是否满足所述校验参数中的触发脚本执行条件;

若所述变更操作的数据满足所述校验参数中的触发脚本执行条件,则收集满足所述校验参数中的触发脚本执行条件的相对应的脚本,将遍历到的所述变更操作的数据及其该相对应的脚本按照脚本优先级插入到所述脚本执行列表;

若所述变更操作的数据不满足所述校验参数中的触发脚本执行条件,则继续遍历所述变更操作的数据,直至所有变更操作的数据遍历完成。

可选的,所述步骤根据获取的脚本执行列表,启动脚本运行环境执行所述脚本执行列表中的内容,并获取到yang模型扩展校验结果包括步骤:

根据获取的脚本执行列表,启动脚本运行环境执行所述脚本执行列表中的内容;

若执行所述脚本执行列表中的内容全部通过,则yang模型扩展校验结果为校验成功;否则yang模型扩展校验结果为校验失败。

根据本发明的另一个方面,提供的一种yang模型扩展校验的装置,所述装置包括解析单元、数据变更收集单元、脚本收集单元及脚本执行单元;

所述解析单元,用于解析业务配置模型,从所述业务配置模型中获取使用yang模型扩展标签定义的校验参数;

所述数据变更收集单元,用于监听数据的变更操作,若监听到数据的变更操作则收集变更操作的数据;

所述脚本收集单元,用于根据所述解析单元获取到的校验参数以及所述数据变更收集单元收集到的变更操作的数据,获取脚本执行列表;

所述脚本执行单元,用于根据所述脚本收集单元获取的脚本执行列表,启动脚本运行环境执行所述脚本执行列表中的内容,并获取到yang模型扩展校验结果。

可选的,所述数据的变更操作包括数据的创建操作、数据的删除操作或者数据的修改操作。

可选的,所述yang模型扩展标签定义的校验参数包括:脚本优先级、触发脚本执行条件、脚本类型和脚本内容。

根据本发明的另一个方面,提供的一种yang模型扩展校验的装置,所述yang模型扩展校验的装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的yang模型扩展校验程序,所述yang模型扩展校验程序被所述处理器执行时实现上述的yang模型扩展校验的方法的步骤。

根据本发明的另一个方面,提供的一种计算机可读存储介质,所述计算机可读存储介质上存储有yang模型扩展校验程序,所述yang模型扩展校验程序被处理器执行时实现上述的yang模型扩展校验的方法的步骤。

本发明实施例的一种yang模型扩展校验的方法及装置、计算机可读存储介质,通过使用yang模型扩展标签定义的校验参数及业务配置模型,获取脚本执行列表并执行,从而获取到yang模型扩展校验结果;一方面实现了对yang语法的扩展,可以通过扩展满足用户的特殊需求,比如:1)在复杂业务约束场景下,用户可以通过扩展脚本实现对复杂业务关系的约束校验,从而为保证业务数据的正确性提供保证;2)当数据发生变更时,可以通过扩展脚本实现关联数据的增加,删除,修改改操作;3)当数据发生变更时,可以通过扩展脚本将变更数据整理成其他业务模块需要的格式,以便向其他业务模块传递;另一方面实现了业务配置模型和具体业务定义的解耦,扩展性较强,有利于后期的维护及升级处理。

附图说明

图1为本发明实施例的yang模型扩展校验的方法流程示意图;

图2为本发明实施例的yang模型扩展校验的方法另一流程示意图;

图3为本发明实施例的yang模型扩展校验的装置结构示意图;

图4为本发明另一实施例的yang模型扩展校验的装置结构示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

第一实施例

如图1所示,本发明第一实施例提供一种yang模型扩展校验的方法,所述方法包括步骤:

s10、解析业务配置模型,从所述业务配置模型中获取使用yang模型扩展标签定义的校验参数;

在本实施例中,可根据yang模型扩展需要定义一个基础的校验参数模型,引入定义的校验参数模型可定义具体的业务配置模型。

作为示例地,基础的校验参数模型的定义如下所示:

1.1)定义脚本优先级的字段“priority”,此字段值越小优先级越低。

具体地,可以通过以下代码进行定义:

1.2)定义触发脚本执行条件的字段“target”,限定用模型中xpath作为脚本执行条件,当满足模型xpath定义格式时触发脚本执行。

具体地,可以通过以下代码进行定义:

1.3)定义脚本类型的字段“script-type”。

具体地,可以通过以下代码进行定义:

1.4)定义脚本内容的字段“script”。

具体地,可以通过以下代码进行定义:

作为示例地,引入已定义的校验参数模型可定义具体的业务配置模型:

第一例脚本执行信息:

其中,在第一例脚本执行信息中,定义了:

2.1.1)脚本类型为“lua”。

2.1.2)此脚本优先级为100。

2.1.3)触发脚本执行条件是:当有模型xpath为“/bizmodel:bizroot/leaf_a”发生变更时触发执行脚本。

2.1.4)脚本内容简述为:判断xpath“/bizmodel:bizroot/leaf_a”对应的值是否大于10,如果大于10则数据合法,返回true,否则数据不合法,返回false。

第二例脚本执行信息:

其中,在第二例脚本执行信息中,定义了:

2.2.1)脚本类型为“lua”。

2.2.2)此脚本优先级为101。

2.2.3)触发脚本执行条件是:当有模型xpath匹配“/bizmodel:bizroot/listexam/bizchild//*”时触发,即只要bizchild节点下有数据变更就触发执行脚本。

2.2.4)脚本内容简述为:比较“/bizmodel:bizroot/leaf_c”和“/bizmodel:bizroot/leaf_d”配置的值的大小,如果leaf_c大于leaf_d则数据合法,返回true,否则数据不合法,返回false。

在校验参数模型和业务配置模型定义之后,通过解析业务配置模型,可从业务配置模型中获取使用yang模型扩展标签定义的校验参数。需要处理的校验参数为定义的所有参数,即脚本优先级、触发脚本执行条件、脚本类型和脚本内容。

s12、监听数据的变更操作,若监听到数据的变更操作则收集变更操作的数据;

在本实施例中,所述数据的变更操作包括数据的创建操作、数据的删除操作或者数据的修改操作。数据的变更操作触发后,可收集变更操作的数据。

作为示例地,使用符合netconf协议规范的xml配置数据为例,对如下数据进行创建操作:

针对上述xml中的数据,由于上述数据均为全新创建,经过整理后,可得到如下表格所示数据:

s14、根据获取到的校验参数以及收集到的变更操作的数据,获取脚本执行列表;

请参考图2所示,在本实施例中,步骤根据获取到的校验参数以及收集到的变更操作的数据,获取脚本执行列表包括步骤:

s140、遍历所述变更操作的数据,并判断所述变更操作的数据是否满足所述校验参数中的触发脚本执行条件;

s142、若所述变更操作的数据满足所述校验参数中的触发脚本执行条件,则收集满足所述校验参数中的触发脚本执行条件的相对应的脚本,将遍历到的所述变更操作的数据及其该相对应的脚本按照脚本优先级插入到所述脚本执行列表;

s144、若所述变更操作的数据不满足所述校验参数中的触发脚本执行条件,则继续遍历所述变更操作的数据,直至所有变更操作的数据遍历完成。

仍以上述符合netconf协议规范的xml配置数据为例:

在获得上述的表格数据之后,遍历所述变更操作的数据,即遍历上述的表格数据,并判断所述变更操作的数据是否满足所述校验参数中的触发脚本执行条件;在第一例和第二例脚本执行信息中,定义了触发脚本执行条件是:“当有模型xpath为“/bizmodel:bizroot/leaf_a”发生变更时触发执行脚本”、“当有模型xpath匹配“/bizmodel:bizroot/listexam/bizchild//*”时触发,即只要bizchild节点下有数据变更就触发执行脚本”。

遍历之后,可确定满足所述校验参数中的触发脚本执行条件的有3条记录:

遍历到之后,则将遍历到的3条记录及其相对应的脚本按照脚本优先级插入到脚本执行列表。由于“/bizmodel:bizroot/leaf_a”优先级较高,其对应的脚本排在前面。

s16、根据获取的脚本执行列表,启动脚本运行环境执行所述脚本执行列表中的内容,并获取到yang模型扩展校验结果。

在本实施例中,所述步骤根据获取的脚本执行列表,启动脚本运行环境执行所述脚本执行列表中的内容,并获取到yang模型扩展校验结果包括步骤(附图未示出):

根据获取的脚本执行列表,启动脚本运行环境执行所述脚本执行列表中的内容;

若执行所述脚本执行列表中的内容全部通过,则yang模型扩展校验结果为校验成功;否则yang模型扩展校验结果为校验失败。

仍以上述符合netconf协议规范的xml配置数据为例:

脚本执行列表包括遍历到的3条记录及其相对应的脚本,按照优先级先执行“/bizmodel:bizroot/leaf_a”的脚本内容,由于变更后的值为11满足脚本内容的判断,因此配置的数据合法,返回true。

执行“/bizmodel:bizroot/listexam/bizchild/leaf_c”和“/bizmodel:bizroot/listexam/bizchild/leaf_d”的脚本内容时,由于leaf_c变更后的值为9,leaf_d变更后的值为10,不满足脚本内容中的判断,因此配置的数据不合法,返回false。

通过上述的校验,由于执行脚本执行列表中的内容没有全部通过,因此yang模型扩展校验结果为校验失败。

本发明实施例的一种yang模型扩展校验的方法,通过使用yang模型扩展标签定义的校验参数及业务配置模型,获取脚本执行列表并执行,从而获取到yang模型扩展校验结果;一方面实现了对yang语法的扩展,可以通过扩展满足用户的特殊需求,比如:1)在复杂业务约束场景下,用户可以通过扩展脚本实现对复杂业务关系的约束校验,从而为保证业务数据的正确性提供保证;2)当数据发生变更时,可以通过扩展脚本实现关联数据的增加,删除,修改改操作;3)当数据发生变更时,可以通过扩展脚本将变更数据整理成其他业务模块需要的格式,以便向其他业务模块传递;另一方面实现了业务配置模型和具体业务定义的解耦,扩展性较强,有利于后期的维护及升级处理。

第二实施例

如图3所示,本发明第二实施例提供一种yang模型扩展校验的装置,所述装置包括解析单元21、数据变更收集单元22、脚本收集单元23及脚本执行单元24;

所述解析单元21,用于解析业务配置模型,从所述业务配置模型中获取使用yang模型扩展标签定义的校验参数;

在本实施例中,可根据yang模型扩展需要定义一个基础的校验参数模型,引入定义的校验参数模型可定义具体的业务配置模型。

作为示例地,基础的校验参数模型的定义如下所示:

1.1)定义脚本优先级的字段“priority”,此字段值越小优先级越低。

具体地,可以通过以下代码进行定义:

1.2)定义触发脚本执行条件的字段“target”,限定用模型中xpath作为脚本执行条件,当满足模型xpath定义格式时触发脚本执行。

具体地,可以通过以下代码进行定义:

1.3)定义脚本类型的字段“script-type”。

具体地,可以通过以下代码进行定义:

1.4)定义脚本内容的字段“script”。

具体地,可以通过以下代码进行定义:

作为示例地,引入已定义的校验参数模型可定义具体的业务配置模型:

第一例脚本执行信息:

其中,在第一例脚本执行信息中,定义了:

2.1.1)脚本类型为“lua”。

2.1.2)此脚本优先级为100。

2.1.3)触发脚本执行条件是:当有模型xpath为“/bizmodel:bizroot/leaf_a”发生变更时触发执行脚本。

2.1.4)脚本内容简述为:判断xpath“/bizmodel:bizroot/leaf_a”对应的值是否大于10,如果大于10则数据合法,返回true,否则数据不合法,返回false。

第二例脚本执行信息:

其中,在第二例脚本执行信息中,定义了:

2.2.1)脚本类型为“lua”。

2.2.2)此脚本优先级为101。

2.2.3)触发脚本执行条件是:当有模型xpath匹配“/bizmodel:bizroot/listexam/bizchild//*”时触发,即只要bizchild节点下有数据变更就触发执行脚本。

2.2.4)脚本内容简述为:比较“/bizmodel:bizroot/leaf_c”和“/bizmodel:bizroot/leaf_d”配置的值的大小,如果leaf_c大于leaf_d则数据合法,返回true,否则数据不合法,返回false。

在校验参数模型和业务配置模型定义之后,通过解析业务配置模型,可从业务配置模型中获取使用yang模型扩展标签定义的校验参数。需要处理的校验参数为定义的所有参数,即脚本优先级、触发脚本执行条件、脚本类型和脚本内容。

所述数据变更收集单元22,用于监听数据的变更操作,若监听到数据的变更操作则收集变更操作的数据;

在本实施例中,所述数据的变更操作包括数据的创建操作、数据的删除操作或者数据的修改操作。数据的变更操作触发后,可收集变更操作的数据。

作为示例地,使用符合netconf协议规范的xml配置数据为例,对如下数据进行创建操作:

针对上述xml中的数据,由于上述数据均为全新创建,经过整理后,可得到如下表格所示数据:

所述脚本收集单元23,用于根据所述解析单元21获取到的校验参数以及所述数据变更收集单元22收集到的变更操作的数据,获取脚本执行列表;

具体地,所述脚本收集单元23遍历所述变更操作的数据,并判断所述变更操作的数据是否满足所述校验参数中的触发脚本执行条件;

若所述变更操作的数据满足所述校验参数中的触发脚本执行条件,则收集满足所述校验参数中的触发脚本执行条件的相对应的脚本,将遍历到的所述变更操作的数据及其该相对应的脚本按照脚本优先级插入到所述脚本执行列表;

若所述变更操作的数据不满足所述校验参数中的触发脚本执行条件,则继续遍历所述变更操作的数据,直至所有变更操作的数据遍历完成。

仍以上述符合netconf协议规范的xml配置数据为例:

在获得上述的表格数据之后,遍历所述变更操作的数据,即遍历上述的表格数据,并判断所述变更操作的数据是否满足所述校验参数中的触发脚本执行条件;在第一例和第二例脚本执行信息中,定义了触发脚本执行条件是:“当有模型xpath为“/bizmodel:bizroot/leaf_a”发生变更时触发执行脚本”、“当有模型xpath匹配“/bizmodel:bizroot/listexam/bizchild//*”时触发,即只要bizchild节点下有数据变更就触发执行脚本”。

遍历之后,可确定满足所述校验参数中的触发脚本执行条件的有3条记录:

遍历到之后,则将遍历到的3条记录及其相对应的脚本按照脚本优先级插入到脚本执行列表。由于“/bizmodel:bizroot/leaf_a”优先级较高,其对应的脚本排在前面。

所述脚本执行单元24,用于根据所述脚本收集单元23获取的脚本执行列表,启动脚本运行环境执行所述脚本执行列表中的内容,并获取到yang模型扩展校验结果。

具体地,脚本执行单元24根据获取的脚本执行列表,启动脚本运行环境执行所述脚本执行列表中的内容;

若执行所述脚本执行列表中的内容全部通过,则yang模型扩展校验结果为校验成功;否则yang模型扩展校验结果为校验失败。

仍以上述符合netconf协议规范的xml配置数据为例:

脚本执行列表包括遍历到的3条记录及其相对应的脚本,按照优先级先执行“/bizmodel:bizroot/leaf_a”的脚本内容,由于变更后的值为11满足脚本内容的判断,因此配置的数据合法,返回true。

执行“/bizmodel:bizroot/listexam/bizchild/leaf_c”和“/bizmodel:bizroot/listexam/bizchild/leaf_d”的脚本内容时,由于leaf_c变更后的值为9,leaf_d变更后的值为10,不满足脚本内容中的判断,因此配置的数据不合法,返回false。

通过上述的校验,由于执行脚本执行列表中的内容没有全部通过,因此yang模型扩展校验结果为校验失败。

本发明实施例的一种yang模型扩展校验的装置,通过使用yang模型扩展标签定义的校验参数及业务配置模型,获取脚本执行列表并执行,从而获取到yang模型扩展校验结果;一方面实现了对yang语法的扩展,可以通过扩展满足用户的特殊需求,比如:1)在复杂业务约束场景下,用户可以通过扩展脚本实现对复杂业务关系的约束校验,从而为保证业务数据的正确性提供保证;2)当数据发生变更时,可以通过扩展脚本实现关联数据的增加,删除,修改改操作;3)当数据发生变更时,可以通过扩展脚本将变更数据整理成其他业务模块需要的格式,以便向其他业务模块传递;另一方面实现了业务配置模型和具体业务定义的解耦,扩展性较强,有利于后期的维护及升级处理。

第三实施例

如图4所示,本发明第三实施例提供一种yang模型扩展校验的装置,所yang模型扩展校验的装置包括:存储器31、处理器32及存储在所述存储器31上并可在所述处理器32上运行的yang模型扩展校验程序,所述yang模型扩展校验程序被所述处理器执行时实现第一实施例所述的yang模型扩展校验的方法的步骤。

本发明实施例的一种yang模型扩展校验的装置,通过使用yang模型扩展标签定义的校验参数及业务配置模型,获取脚本执行列表并执行,从而获取到yang模型扩展校验结果;一方面实现了对yang语法的扩展,可以通过扩展满足用户的特殊需求,比如:1)在复杂业务约束场景下,用户可以通过扩展脚本实现对复杂业务关系的约束校验,从而为保证业务数据的正确性提供保证;2)当数据发生变更时,可以通过扩展脚本实现关联数据的增加,删除,修改改操作;3)当数据发生变更时,可以通过扩展脚本将变更数据整理成其他业务模块需要的格式,以便向其他业务模块传递;另一方面实现了业务配置模型和具体业务定义的解耦,扩展性较强,有利于后期的维护及升级处理。

第四实施例

本发明第四实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有yang模型扩展校验程序,所述yang模型扩展校验程序被处理器执行时实现第一实施例所述的yang模型扩展校验的方法的步骤。

本发明实施例的计算机可读存储介质,通过使用yang模型扩展标签定义的校验参数及业务配置模型,获取脚本执行列表并执行,从而获取到yang模型扩展校验结果;一方面实现了对yang语法的扩展,可以通过扩展满足用户的特殊需求,比如:1)在复杂业务约束场景下,用户可以通过扩展脚本实现对复杂业务关系的约束校验,从而为保证业务数据的正确性提供保证;2)当数据发生变更时,可以通过扩展脚本实现关联数据的增加,删除,修改改操作;3)当数据发生变更时,可以通过扩展脚本将变更数据整理成其他业务模块需要的格式,以便向其他业务模块传递;另一方面实现了业务配置模型和具体业务定义的解耦,扩展性较强,有利于后期的维护及升级处理。

需要说明的是,上述装置实施例与方法实施例属于同一构思,其具体实现过程详见方法实施例,且方法实施例中的技术特征在装置实施例中均对应适用,这里不再赘述。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件来实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上参照附图说明了本发明的优选实施例,并非因此局限本发明的权利范围。本领域技术人员不脱离本发明的范围和实质,可以有多种变型方案实现本发明,比如作为一个实施例的特征可用于另一实施例而得到又一实施例。凡在运用本发明的技术构思之内所作的任何修改、等同替换和改进,均应在本发明的权利范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1