CN112799697A - 一种基于标准框架的配置文件版本迁移方法 - Google Patents
一种基于标准框架的配置文件版本迁移方法 Download PDFInfo
- Publication number
- CN112799697A CN112799697A CN202110006253.XA CN202110006253A CN112799697A CN 112799697 A CN112799697 A CN 112799697A CN 202110006253 A CN202110006253 A CN 202110006253A CN 112799697 A CN112799697 A CN 112799697A
- Authority
- CN
- China
- Prior art keywords
- version
- component
- migration
- software product
- complex software
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000013508 migration Methods 0.000 title claims abstract description 96
- 230000005012 migration Effects 0.000 title claims abstract description 96
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000013507 mapping Methods 0.000 claims abstract description 13
- 238000012795 verification Methods 0.000 claims abstract description 7
- 238000009877 rendering Methods 0.000 claims description 6
- 238000012986 modification Methods 0.000 claims description 5
- 230000004048 modification Effects 0.000 claims description 5
- 238000012546 transfer Methods 0.000 claims description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明特别涉及一种基于标准框架的配置文件版本迁移方法。该基于标准框架的配置文件版本迁移方法,包括迁移标准框架校验,动态匹配复杂软件产品及组件版本迁移映射关系,匹配组件版本迁移操作模板,语法解析组件版本迁移操作模板和执行组件版本迁移操作五个步骤。该基于标准框架的配置文件版本迁移方法,有效满足了复杂软件产品升级过程中相关组件配置文件迁移及变量迁移的需求,实现复杂软件产品升级过程快速自动化,提高了复杂软件产品升级效率及升级操作稳定性,降低了升级操作的复杂度,节约了相关成本。
Description
技术领域
本发明涉及软件产品升级技术领域,特别涉及一种基于标准框架的配置文件版本迁移方法。
背景技术
复杂软件产品,包含大量应用的复杂组合,其应用各自的版本信息和配置文件版本升级过程中,关联的应用组件多,组件的版本配置文件数量多,不同版本组件配置文件格式不同。当复杂软件产品从当前版本升级到新版本时,无法自动平滑升级到新版本配置文件并保留原有变量,需要将当前版本组件变量值迁移到新版本组件配置文件中。
为了快速自动化实现复杂软件产品升级过程,本发明设计了一种基于标准框架的配置文件版本迁移方法。
发明内容
本发明为了弥补现有技术的缺陷,提供了一种简单高效的基于标准框架的配置文件版本迁移方法。
本发明是通过如下技术方案实现的:
一种基于标准框架的配置文件版本迁移方法,其特征在于,包括以下步骤:
S1.迁移标准框架校验
校验复杂软件产品跨版本升级情况,校验复杂软件产品组件版本迁移自定义模板缺失情况,校验复杂软件产品组件版本迁移自定义模板的格式符合标准情况,校验不通过返回错误码,上述校验全部通过后执行步骤S2;
S2.动态匹配复杂软件产品及组件版本迁移映射关系
根据组件名称,组件当前版本和组件目标版本信息匹配组件版本迁移操作模板tpl文件,匹配成功后将匹配结果作为版本迁移映射关系进行保存;
S3.匹配组件版本迁移操作模板
根据动态匹配复杂软件产品及组件版本迁移映射关系执行结果,加载组件版本迁移映射关系结果文件version_upgrade.yaml,按复杂软件产品版本升级逐级递增的方式,得到operate(运转)操作模板列表,分别匹配并加载对应的组件版本迁移操作模板文件tpl;例如:lcm-init-vars-upgrade-2.3.1-2.5.1.tpl。
S4.语法解析组件版本迁移操作模板
语法解析模块加载已定义的组件版本迁移操作模板,解析模板内容,得到具体的操作方式和操作对象数据;
S5.执行组件版本迁移操作。
分别加载组件当前版本配置文件,按语法解析组件版本迁移操作模板结果列表,依次执行对应组件配置文件修改操作,实现组件配置文件版本迁移。
所述步骤S1中,校验逻辑实现过程为:
1)、获取复杂软件产品当前版本与目标版本之间存在的版本列表,若列表不为空则为跨版本升级情况;
2)、读取复杂软件产品内组件版本version-var.yaml,得到复杂软件产品组件版本列表,依据组件版本列表,查找组件目录下对应版本的组件版本迁移操作模板是否存在,若不存在则返回错误;
3)、读取组件版本迁移操作模板内容,校验内容是否存在自定义操作方法或基本操作操作方法,若不存在则返回错误码;校验内容是否符合yaml标准格式,若不符合yam标准格式则返回错误码。
所述步骤S2中,通过接口获取当前复杂软件产品版本与升级目标版本之间存在的复杂软件产品版本列表,确定复杂软件产品版本之间是否存在跨版本,复杂软件产品的升级遵循按从低版本向高版本逐级递增的方式进行升级;
通过读取复杂软件产品当前版本的verion-vars.yaml文件,获得复杂软件产品当前版本包含的组件列表及组件当前版本,得到组件当前版本列表;
读取复杂软件产品升级目标版本的verion-vars.yaml文件,获得复杂软件产品升级目标版本包含的组件列表及组件目标版本,得到组件目标版本列表。
所述步骤S2中,读取var-upgrade目录下的组件版本迁移操作模板tpl文件,与组件名称,组件当前版本和组件目标版本信息进行匹配,并将匹配结果保存到version_upgrade.yaml文件中。
所述步骤S4中,组件版本迁移操作模板语法定义操作包含自定义格式(Jinja2方式),Python格式及基本函数操作,操作对象为key-value、list、map和自定义格式四种数据类型,模板格式采用yaml格式。
所述步骤S4中,具体实现过程为:
1)、加载组件版本迁移操作模板tpl(yaml格式);
2)、判断是否分别存在自定义格式、Python格式及基本函数操作,若存在则记录操作数据值;
3)、包含自定义格式的,调用Jinja2语法解析,得到结果;
4)、包含Python格式的,调用Python语法解析,得到结果;
5)、将语法解析结果保存到列表中。
所述步骤S5中,自定义格式(Jinja2方式)调用Jinja渲染模块,获得渲染数据结果;Python格式调用Python模块,获得数据结果;基本函数格式调用基本函数方法,获得数据结果。
所述步骤S5中,数据类型支持key-value、list、map和自定义格式,根据数据结果内容操作修改对应的组件配置文件。
本发明的有益效果是:该基于标准框架的配置文件版本迁移方法,有效满足了复杂软件产品升级过程中相关组件配置文件迁移及变量迁移的需求,实现复杂软件产品升级过程快速自动化,提高了复杂软件产品升级效率及升级操作稳定性,降低了升级操作的复杂度,节约了相关成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
附图1为本发明基于标准框架的配置文件版本迁移方法示意图。
具体实施方式
为了使本技术领域的人员更好的理解本发明中的技术方案,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚,完整的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
该基于标准框架的配置文件版本迁移方法,包括以下步骤:
S1.迁移标准框架校验
校验复杂软件产品跨版本升级情况,校验复杂软件产品组件版本迁移自定义模板缺失情况,校验复杂软件产品组件版本迁移自定义模板的格式符合标准情况,校验不通过返回错误码,上述校验全部通过后执行步骤S2;
S2.动态匹配复杂软件产品及组件版本迁移映射关系
根据组件名称,组件当前版本和组件目标版本信息匹配组件版本迁移操作模板tpl文件,匹配成功后将匹配结果作为版本迁移映射关系进行保存;
S3.匹配组件版本迁移操作模板
根据动态匹配复杂软件产品及组件版本迁移映射关系执行结果,加载组件版本迁移映射关系结果文件version_upgrade.yaml,按复杂软件产品版本升级逐级递增的方式,得到operate(运转)操作模板列表,分别匹配并加载对应的组件版本迁移操作模板文件tpl;例如:lcm-init-vars-upgrade-2.3.1-2.5.1.tpl。
S4.语法解析组件版本迁移操作模板
语法解析模块加载已定义的组件版本迁移操作模板,解析模板内容,得到具体的操作方式和操作对象数据;
S5.执行组件版本迁移操作。
分别加载组件当前版本配置文件,按语法解析组件版本迁移操作模板结果列表,依次执行对应组件配置文件修改操作,实现组件配置文件版本迁移。
所述步骤S1中,校验逻辑实现过程为:
1)、获取复杂软件产品当前版本与目标版本之间存在的版本列表,若列表不为空则为跨版本升级情况;
2)、读取复杂软件产品内组件版本version-var.yaml,得到复杂软件产品组件版本列表,依据组件版本列表,查找组件目录下对应版本的组件版本迁移操作模板是否存在,若不存在则返回错误;
3)、读取组件版本迁移操作模板内容,校验内容是否存在自定义操作方法或基本操作操作方法,若不存在则返回错误码;校验内容是否符合yaml标准格式,若不符合yam标准格式则返回错误码。
所述步骤S2中,通过接口获取当前复杂软件产品版本与升级目标版本之间存在的复杂软件产品版本列表,确定复杂软件产品版本之间是否存在跨版本,复杂软件产品的升级遵循按从低版本向高版本逐级递增的方式进行升级;
通过读取复杂软件产品当前版本的verion-vars.yaml文件,获得复杂软件产品当前版本包含的组件列表及组件当前版本,得到组件当前版本列表;
读取复杂软件产品升级目标版本的verion-vars.yaml文件,获得复杂软件产品升级目标版本包含的组件列表及组件目标版本,得到组件目标版本列表。
所述步骤S2中,读取var-upgrade目录下的组件版本迁移操作模板tpl文件,与组件名称,组件当前版本和组件目标版本信息进行匹配,并将匹配结果保存到version_upgrade.yaml文件中。
所述步骤S4中,组件版本迁移操作模板语法定义操作包含自定义格式(Jinja2方式),Python格式及基本函数操作,操作对象为key-value、list、map和自定义格式四种数据类型,模板格式采用yaml格式。
所述步骤S4中,具体实现过程为:
1)、加载组件版本迁移操作模板tpl(yaml格式);
2)、判断是否分别存在自定义格式、Python格式及基本函数操作,若存在则记录操作数据值;
3)、包含自定义格式的,调用Jinja2语法解析,得到结果;
4)、包含Python格式的,调用Python语法解析,得到结果;
5)、将语法解析结果保存到列表中。
所述步骤S5中,自定义格式(Jinja2方式)调用Jinja渲染模块,获得渲染数据结果;Python格式调用Python模块,获得数据结果;基本函数格式调用基本函数方法,获得数据结果。
所述步骤S5中,数据类型支持key-value、list、map和自定义格式,根据数据结果内容操作修改对应的组件配置文件。
该基于标准框架的配置文件版本迁移方法,通过自定义的组件配置文件版本迁移操作模板,使用语法解析器解析组件版本迁移操作模板,获得对配置文件执行操作的修改步骤,执行对配置文件的修改操作,从而实现了实现了在标准框架下复杂软件产品组件的版本配置文件迁移操作。
此外,该基于标准框架的配置文件版本迁移方法,还支持跨版本和组件跨版本升级,支持自定义模式模板定义和标准模式模板定义,操作过程通过API接口对外提供服务,有效满足了复杂软件产品升级过程中相关组件配置文件迁移及变量迁移的需求,实现复杂软件产品升级过程快速自动化,提高了复杂软件产品升级效率及升级操作稳定性,降低了升级操作的复杂度,节约了相关成本。
以上所述的实施例,只是本发明具体实施方式的一种,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
Claims (8)
1.一种基于标准框架的配置文件版本迁移方法,其特征在于,包括以下步骤:
S1.迁移标准框架校验
校验复杂软件产品跨版本升级情况,校验复杂软件产品组件版本迁移自定义模板缺失情况,校验复杂软件产品组件版本迁移自定义模板的格式符合标准情况,校验不通过返回错误码,上述校验全部通过后执行步骤S2;
S2.动态匹配复杂软件产品及组件版本迁移映射关系
根据组件名称,组件当前版本和组件目标版本信息匹配组件版本迁移操作模板tpl文件,匹配成功后将匹配结果作为版本迁移映射关系进行保存;
S3.匹配组件版本迁移操作模板
根据动态匹配复杂软件产品及组件版本迁移映射关系执行结果,加载组件版本迁移映射关系结果文件version_upgrade.yaml,按复杂软件产品版本升级逐级递增的方式,得到operate操作模板列表,分别匹配并加载对应的组件版本迁移操作模板文件tpl;
S4.语法解析组件版本迁移操作模板
语法解析模块加载已定义的组件版本迁移操作模板,解析模板内容,得到具体的操作方式和操作对象数据;
S5.执行组件版本迁移操作。
分别加载组件当前版本配置文件,按语法解析组件版本迁移操作模板结果列表,依次执行对应组件配置文件修改操作,实现组件配置文件版本迁移。
2.根据权利要求1所述的基于标准框架的配置文件版本迁移方法,其特征在于:所述步骤S1中,校验逻辑实现过程为:
1)、获取复杂软件产品当前版本与目标版本之间存在的版本列表,若列表不为空则为跨版本升级情况;
2)、读取复杂软件产品内组件版本version-var.yaml,得到复杂软件产品组件版本列表,依据组件版本列表,查找组件目录下对应版本的组件版本迁移操作模板是否存在,若不存在则返回错误;
3)、读取组件版本迁移操作模板内容,校验内容是否存在自定义操作方法或基本操作操作方法,若不存在则返回错误码;校验内容是否符合yaml标准格式,若不符合yam标准格式则返回错误码。
3.根据权利要求1所述的基于标准框架的配置文件版本迁移方法,其特征在于:所述步骤S2中,通过接口获取当前复杂软件产品版本与升级目标版本之间存在的复杂软件产品版本列表,确定复杂软件产品版本之间是否存在跨版本,复杂软件产品的升级遵循按从低版本向高版本逐级递增的方式进行升级;
通过读取复杂软件产品当前版本的verion-vars.yaml文件,获得复杂软件产品当前版本包含的组件列表及组件当前版本,得到组件当前版本列表;
读取复杂软件产品升级目标版本的verion-vars.yaml文件,获得复杂软件产品升级目标版本包含的组件列表及组件目标版本,得到组件目标版本列表。
4.根据权利要求1或3所述的基于标准框架的配置文件版本迁移方法,其特征在于:所述步骤S2中,读取var-upgrade目录下的组件版本迁移操作模板tpl文件,与组件名称,组件当前版本和组件目标版本信息进行匹配,并将匹配结果保存到version_upgrade.yaml文件中。
5.根据权利要求1所述的基于标准框架的配置文件版本迁移方法,其特征在于:所述步骤S4中,组件版本迁移操作模板语法定义操作包含自定义格式,Python格式及基本函数操作,操作对象为key-value、list、map和自定义格式四种数据类型,模板格式采用yaml格式。
6.根据权利要求1或5所述的基于标准框架的配置文件版本迁移方法,其特征在于:所述步骤S4中,具体实现过程为:
1)、加载组件版本迁移操作模板tpl;
2)、判断是否分别存在自定义格式、Python格式及基本函数操作,若存在则记录操作数据值;
3)、包含自定义格式的,调用Jinja2语法解析,得到结果;
4)、包含Python格式的,调用Python语法解析,得到结果;
5)、将语法解析结果保存到列表中。
7.根据权利要求1所述的基于标准框架的配置文件版本迁移方法,其特征在于:所述步骤S5中,自定义格式调用Jinja渲染模块,获得渲染数据结果;Python格式调用Python模块,获得数据结果;基本函数格式调用基本函数方法,获得数据结果。
8.根据权利要求7所述的基于标准框架的配置文件版本迁移方法,其特征在于:所述步骤S5中,数据类型支持key-value、list、map和自定义格式,根据数据结果内容操作修改对应的组件配置文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110006253.XA CN112799697B (zh) | 2021-01-05 | 2021-01-05 | 一种基于标准框架的配置文件版本迁移方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110006253.XA CN112799697B (zh) | 2021-01-05 | 2021-01-05 | 一种基于标准框架的配置文件版本迁移方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112799697A true CN112799697A (zh) | 2021-05-14 |
CN112799697B CN112799697B (zh) | 2023-12-22 |
Family
ID=75808102
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110006253.XA Active CN112799697B (zh) | 2021-01-05 | 2021-01-05 | 一种基于标准框架的配置文件版本迁移方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112799697B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115658119A (zh) * | 2022-12-26 | 2023-01-31 | 北京沃德博创信息科技有限公司 | 一种根据软件版本迁移配置数据的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5920867A (en) * | 1996-12-06 | 1999-07-06 | International Business Machines Corporation | Data management system having data management configuration |
WO2012019395A1 (zh) * | 2010-08-11 | 2012-02-16 | 中兴通讯股份有限公司 | 版本升级软件包的打包方法及装置 |
CN107861737A (zh) * | 2017-11-06 | 2018-03-30 | 国云科技股份有限公司 | 一种大型系统的数据库版本迁移方法 |
CN111258989A (zh) * | 2020-02-14 | 2020-06-09 | 腾讯科技(深圳)有限公司 | 数据库迁移评估方法、装置、存储介质和计算机设备 |
-
2021
- 2021-01-05 CN CN202110006253.XA patent/CN112799697B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5920867A (en) * | 1996-12-06 | 1999-07-06 | International Business Machines Corporation | Data management system having data management configuration |
WO2012019395A1 (zh) * | 2010-08-11 | 2012-02-16 | 中兴通讯股份有限公司 | 版本升级软件包的打包方法及装置 |
CN107861737A (zh) * | 2017-11-06 | 2018-03-30 | 国云科技股份有限公司 | 一种大型系统的数据库版本迁移方法 |
CN111258989A (zh) * | 2020-02-14 | 2020-06-09 | 腾讯科技(深圳)有限公司 | 数据库迁移评估方法、装置、存储介质和计算机设备 |
Non-Patent Citations (2)
Title |
---|
关婷婷;任洪敏;江金莲;: "基于Git的跨版本迁移的软件评审设计与实现", 现代计算机(专业版), no. 19 * |
石源;张焕国;赵波;于钊;: "基于SGX的虚拟机动态迁移安全增强方法", 通信学报, no. 09 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115658119A (zh) * | 2022-12-26 | 2023-01-31 | 北京沃德博创信息科技有限公司 | 一种根据软件版本迁移配置数据的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112799697B (zh) | 2023-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112394942B (zh) | 基于云计算的分布式软件开发编译方法及软件开发平台 | |
US9043757B2 (en) | Identifying differences between source codes of different versions of a software when each source code is organized using incorporated files | |
CN111399853A (zh) | 机器学习模型与自定义算子的模板化部署方法 | |
CN112416365B (zh) | 文件转换方法、装置及存储介质 | |
CN111324619B (zh) | 微服务系统中的对象更新方法、装置、设备和存储介质 | |
CN112559088A (zh) | 配置文件的优化方法、装置、服务器以及存储介质 | |
CN111258990B (zh) | 索引库数据迁移方法、装置、设备及存储介质 | |
CN115268991A (zh) | 依赖分析的优化方法、装置、设备和存储介质 | |
CN113901083A (zh) | 基于多解析器的异构数据源操作资源解析定位方法和设备 | |
CN112799697B (zh) | 一种基于标准框架的配置文件版本迁移方法 | |
CN115525534A (zh) | 基于swagger的接口测试的测试用例生成方法、生成平台 | |
CN117033249A (zh) | 一种测试用例生成方法、装置、计算机设备及存储介质 | |
CN114816772B (zh) | 基于兼容层运行的应用的排错方法、排错系统及计算设备 | |
CN115951916A (zh) | 一种组件的处理方法、装置、电子设备及存储介质 | |
CN115964054A (zh) | 应用服务部署方法和装置 | |
CN115495082A (zh) | Tlv格式数据自动转换方法及相关设备 | |
CN114611500A (zh) | 表达式处理方法、装置、电子设备及计算机可读存储介质 | |
CN114154020A (zh) | 基于动态标签映射的大容量数据处理方法及装置 | |
CN113268231A (zh) | 一种数据采集比对方法 | |
CN113094086A (zh) | 组件集成方法、装置、计算机可读存储介质及电子设备 | |
CN113467860B (zh) | 一种程序源代码的业务逻辑执行方法及装置 | |
CN115203132B (zh) | 一种用于按需求快速提取op2文件架构的设计方法 | |
CN114866451B (zh) | iOS端路由通信改进方法、装置、存储介质和设备 | |
CN116775483A (zh) | 代码评审方法及装置 | |
CN112422476A (zh) | 数据处理方法、装置和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |