CN115357269A - 一种配置信息更新方法、装置、计算机设备及存储介质 - Google Patents
一种配置信息更新方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN115357269A CN115357269A CN202211013944.3A CN202211013944A CN115357269A CN 115357269 A CN115357269 A CN 115357269A CN 202211013944 A CN202211013944 A CN 202211013944A CN 115357269 A CN115357269 A CN 115357269A
- Authority
- CN
- China
- Prior art keywords
- configuration
- configuration item
- updated
- item
- file
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000012986 modification Methods 0.000 claims abstract description 23
- 230000004048 modification Effects 0.000 claims abstract description 23
- 238000012545 processing Methods 0.000 claims abstract description 19
- 238000004590 computer program Methods 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 6
- 238000012216 screening Methods 0.000 claims description 4
- 238000013508 migration Methods 0.000 description 17
- 230000005012 migration Effects 0.000 description 17
- 230000008569 process Effects 0.000 description 13
- 238000012423 maintenance Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 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
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种配置信息更新方法、装置、计算机设备及存储介质,其中,该方法包括:响应于配置信息修改请求,获取建立好的配置项模板中待修改的第一配置项与对应修改后的第二配置项之间的关联关系,并获取与配置项模板关联的各个代码仓库的原始配置文件;对原始配置文件进行语法分析处理,生成语法树文件;确定语法树文件中具有第一配置项的第一配置信息的待更新配置项;基于第二配置项的第二配置信息,对各个代码仓库中待更新配置项的第一配置信息更新。本公开实施例中的语法树文件可将原始配置文件中的配置项显现出来,因此通过语法树文件能够查找出具有第一配置项中的第一配置信息的待更新配置项,从而能够提高配置信息更新的准确率。
Description
技术领域
本公开涉及信息技术领域,具体而言,涉及一种配置信息更新方法、装置、计算机设备及存储介质。
背景技术
随着互联网技术的发展,各种应用程序或应用平台应运而生。随着技术的更新,应用程序或应用平台的框架结构和配置项可能会发生变化。
在实际对应用程序或应用平台的配置项进行迁移更新的过程中,通常可以采用代码直接替换的方式。但是上述方式会将所有相同的代码进行替换;比如,目前希望更新的配置项是a,而在仓库代码里,可能会有多个a存在,其中可能有的a是配置项,有的a是变量;如果直接替换代码,则会导致变量和配置项的a都被替换掉,而额外替换掉变量的a是预期外的行为,容易带来程序错误的风险。
发明内容
本公开实施例至少提供一种配置信息更新方法、装置、计算机设备及存储介质。
第一方面,本公开实施例提供了一种配置信息更新方法,包括:
响应于配置信息修改请求,获取建立好的配置项模板中待修改的第一配置项与对应修改后的第二配置项之间的关联关系,并获取与所述配置项模板关联的各个代码仓库的原始配置文件;
对所述原始配置文件进行语法分析处理,生成语法树文件;
确定所述语法树文件中具有所述第一配置项的第一配置信息的待更新配置项;
基于所述第二配置项的第二配置信息,对各个所述代码仓库中所述待更新配置项的所述第一配置信息更新。
一种可选的实施方式中,所述获取与所述配置项模板关联的各个代码仓库的原始配置文件,包括:
获取与所述配置项模板关联的各个代码仓库地址;
基于所述代码仓库地址,从所述代码仓库地址对应的代码仓库中读取所述原始配置文件。
一种可选的实施方式中,所述确定所述语法树文件中具有所述第一配置项的第一配置信息的待更新配置项,包括:
从所述语法树文件中的各数据节点中,查找与所述第一配置信息的参数信息相同的第一数据节点;
从查找到的所述第一数据节点中,筛选出对应的节点类型为配置项的第二数据节点,并将所述第二数据节点对应的配置项作为所述待更新配置项。
一种可选的实施方式中,所述基于所述第二配置项的第二配置信息,对各个所述代码仓库中所述待更新配置项的所述第一配置信息更新,包括:
基于所述第二配置项的第二配置信息,利用多个线程对所述原始配置文件对应的多个所述待更新配置项的所述第一配置信息进行同步更新,分别得到多个更新后的配置文件;其中每个更新后的配置文件中包含对应线程进行更新后的已更新配置项;
将所述更新后的配置文件同步到所述代码仓库中。
一种可选的实施方式中,所述将所述更新后的配置文件同步到所述代码仓库中,包括:
将所述多个线程分别得到的更新后的配置文件进行已更新配置项的合并,得到合并后的配置文件;
响应于对所述合并后的配置文件校验成功,利用所述合并后的配置文件更新代码仓库中存储的原始配置文件。
一种可选的实施方式中,所述利用所述合并后的配置文件更新代码仓库中存储的原始配置文件,包括:
识别所述合并后的配置文件中各所述已更新配置项的更新后配置信息;
利用所述已更新配置项的更新后配置信息,更新所述代码仓库中存储的原始配置文件。
一种可选的实施方式中,所述配置项模板中待修改的第一配置项与修改后对应的第二配置项之间的关联关系,是通过以下步骤建立的:
获取所述第一配置项的第一引用路径、以及所述第二配置项的第二引用路径;
将所述第一引用路径与所述第二引用路径进行关联,得到所述第一引用路径与所述第二引用路径的关联关系,并将所述第一引用路径与所述第二引用路径的关联关系作为所述第一配置项与所述第二配置项的关联关系。
第二方面,本公开实施例还提供一种配置信息更新装置,包括:
获取模块,用于响应于配置信息修改请求,获取建立好的配置项模板中待修改的第一配置项与对应修改后的第二配置项之间的关联关系,并获取与所述配置项模板关联的各个代码仓库的原始配置文件;
处理模块,用于对所述原始配置文件进行语法分析处理,生成语法树文件;
确定模块,用于确定所述语法树文件中具有所述第一配置项的第一配置信息的待更新配置项;
更新模块,用于基于所述第二配置项的第二配置信息,对各个所述代码仓库中所述待更新配置项的所述第一配置信息更新。
第三方面,本公开实施例还提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
第四方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
本公开实施例提供的配置信息更新方法中,对原始配置文件进行语法分析处理后得到的语法树文件,能够将原始配置文件中各种类型的项以及具有配置信息的配置项直接显现出来,因此通过语法树文件能够较为容易地查找出具有第一配置项的第一配置信息的待更新配置项,从而在利用第二配置项的第二配置信息(即对第一配置信息进行修改后得到的配置信息),对待更新配置项的第一配置信息进行更新时,可以提高更新准确率,进而可以降低由于配置信息更新导致的程序错误的风险。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种配置信息更新方法的流程图;
图2示出了本公开实施例所提供的另一种配置信息更新方法的流程图;
图3示出了本公开实施例所提供的又一种配置信息更新方法的流程图;
图4示出了本公开实施例所提供的一种配置信息更新装置的结构图;
图5示出了本公开实施例所提供的一种计算机设备的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
在实际对应用程序或应用平台的配置项进行迁移更新的过程中,通常可以采用代码直接替换的方式。例如,当前需要对配置项模板中的配置项a更新为配置项b,而在代码仓库中的a,有的可能是配置项,有的可能是变量,有的可能是常量。采用代码直接替换的方式,则将所有的代码a都替换为了代码b,这种情况下容易带来程序错误的风险。
基于此,本公开提供了一种配置信息更新方法,包括:响应于配置信息修改请求,获取建立好的配置项模板中待修改的第一配置项与对应修改后的第二配置项之间的关联关系,并获取与所述配置项模板关联的各个代码仓库的原始配置文件;对所述原始配置文件进行语法分析处理,生成语法树文件;确定所述语法树文件中具有所述第一配置项的第一配置信息的待更新配置项;基于所述第二配置项的第二配置信息,对各个所述代码仓库中所述待更新配置项的所述第一配置信息更新。
本公开实施例提供的配置信息更新方法中,对原始配置文件进行语法分析处理后得到的语法树文件,能够将原始配置文件中各种类型的项以及具有配置信息的配置项直接显现出来,因此通过语法树文件能够较为容易地查找出具有第一配置项的第一配置信息的待更新配置项,从而在利用第一配置项对应的第二配置项的第二配置信息(即对第一配置信息进行修改后得到的配置信息),对待更新配置项的第一配置信息进行更新时,可以提高更新准确率,进而可以降低由于配置信息更新导致的程序错误的风险。
针对以上方案所存在的缺陷以及所提出的解决方案,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种配置信息更新方法进行详细介绍,本公开实施例所提供的配置信息更新方法的执行主体一般为具有一定计算能力的计算机设备。
本公开实施例提供的配置信息更新方法可以应用于目标配置迁移工具中。目标配置迁移工具可以根据配置模板中修改后的配置项的配置信息对代码仓库中的原始配置文件中的待更新配置项的配置信息进行更新。
参见图1所示,为本公开实施例提供的一种配置信息更新方法的流程图,所述方法包括S101~S104,其中:
S101:响应于配置信息修改请求,获取建立好的配置项模板中待修改的第一配置项与对应修改后的第二配置项之间的关联关系,并获取与所述配置项模板关联的各个代码仓库的原始配置文件。
在本公开实施例中,配置信息修改请求可以用于请求根据配置模板中修改后的配置项的配置信息,对代码仓库中原始配置文件中的待更新配置项的配置信息进行更新。
在具体实施中,配置维护人员可以维护配置项模板,配置维护人员可以对配置项模板中待修改的第一配置项的第一配置信息进行修改以及建立第一配置项与第二配置项之间的关联关系。配置项模板中可以包括多个配置项以及各个配置项的配置信息。其中,配置项可以是以JavaScript对象标记(JavaScript Object Notation,JSON)的数据格式表示的,即配置项可以是以键值对Key-Value的形式表示的。这里,配置项的配置信息可以包括键Key,即配置项的名称。
在一种实施方式中,可以由多个配置维护人员维护配置项模板。各配置维护人员可以分别针对至少一个第一配置项进行修改,并且分别控制配置迁移工具实现基于该至少一个第一配置项关联的第二配置项的第二配置信息对原始配置文件进行替换的过程。
如图2所示的另一种配置信息更新方法的流程图中,可以预先对配置项模板中的第一配置项的第一配置信息进行修改,在一种实施方式中,可以是配置维护人员针对配置项模板中待修改的第一配置项的第一配置信息进行修改的。第一配置项可以是配置项模板中需要修改配置信息的配置项;第一配置项可以对应第一配置信息。第二配置项可以是对第一配置项的第一配置信息进行修改后得到的配置项;第二配置项可以对应第二配置信息。也就是说,将第一配置项的第一配置信息修改为第二配置信息后,可以得到对应的第二配置项。第一配置项与对应修改后的第二配置项的Key是不同的,第一配置项与第二配置项的Value可以是相同的,即第一配置项和第二配置项可以对应相同的配置能力。
在本公开实施例中,如图2所示,可以建立待修改的第一配置项与对应修改后的第二配置项之间的关联关系,待修改的第一配置项与对应修改后的第二配置项之间的关联关系可以是配置维护人员预先建立的。其中,待修改的第一配置项与对应修改后的第二配置项之间可以通过引用路径进行关联,即待修改的第一配置项与对应修改后的第二配置项之间的关联关系可以通过待修改的第一配置项的第一引用路径与对应修改后的第二配置项的第二引用路径之间的关联关系表示。在一种实施方式中,配置项模板中待修改的第一配置项与修改后对应的第二配置项之间的关联关系可以通过以下步骤建立:可以获取第一配置项的第一引用路径、以及第二配置项的第二引用路径;将第一引用路径与第二引用路径进行关联,得到第一引用路径与第二引用路径的关联关系,并将第一引用路径与第二引用路径的关联关系作为第一配置项与第二配置项的关联关系。
其中,配置项的引用路径可以表征该配置项与其它配置项的引用关系。例如,配置项A在配置项B的下面,可以表征配置项B引用配置项A。第一配置项的第一引用路径可以是从使用该第一配置项生成的原始配置文件中获取的。第二配置项的第二引用路径可以是预先修改好的,第二配置项的第二引用路径可以用于替换原始配置文件中的第一引用路径。
在本公开实施例中,待修改的第一配置项与对应修改后的第二配置项之间的关联关系可以是配置维护人员预先建立好的,然后目标配置迁移工可以获取到该关联关系。
在本公开实施例中,原始配置文件可以是从与配置项量模板关联的各个代码仓库中获取并存储在目标配置迁移工具中的。在一种实施方式中,在获取与配置项模板关联的各个代码仓库的原始配置文件的过程中,可以获取与配置项模板关联的各个代码仓库地址;然后基于该代码仓库地址,从该代码仓库地址对应的代码仓库中读取原始配置文件。
上述原始配置文件可以是针对配置项模板中的第一配置项生成的。上述原始配置文件中包含第一配置项的第一配置信息以及第一配置项的Value值。
上述代码仓库可以是针对配置项模板中的第一配置项预先创建,同时还可以生成代码仓库对应的代码仓库地址,然后将代码仓库地址与配置项模板进行关联。
在上述实施过程中,可以先根据与配置项模板关联的各个代码仓库地址匹配出各个代码仓库地址对应的代码仓库。然后逐个读取各个代码仓库中的原始配置文件。最后,目标配置迁移工具将读取到的各个代码仓库中的原始配置文件存储到目标配置迁移工具本地中。
S102:对所述原始配置文件进行语法分析处理,生成语法树文件。
上述原始配置文件可以是基于目标编程语言编写的配置文件,例如可以是基于编程语言JavaScript进行编写的。由于目标配置迁移工具无法识别出原始配置文件中的配置项,因此可以对原始配置文件进行语法分析处理,得到能够识别出配置项的语法树文件。在一种实施方式中,可以利用开源的语法分析器(例如Acorn解析器)对目标配置迁移工具中存储的原始配置文件进行语法分析处理,得到语法树文件。语法树文件中可以包含多种节点类型的数据节点,具体可以包含常量节点、变量节点、配置项节点。在本公开实施例中主要根据数据节点的节点类型,找到待更新的配置项节点,具体可以参见下述步骤。
S103:确定所述语法树文件中具有所述第一配置项的第一配置信息的待更新配置项。
承接上文,这里主要是查找待更新的配置项节点,在一种实施方式中,针对各个代码仓库的原始配置文件生成的各个语法树文件,可以从该语法树文件中的各数据节点中,查找与第一配置信息的参数信息相同的第一数据节点。然后从查找到的第一数据节点中,筛选出对应的节点类型为配置项的第二数据节点,并将第二数据节点对应的配置项作为待更新配置项。
其中,第一配置信息的参数信息可以指Key的参数信息,第一数据节点可以指与第一配置项的Key的参数信息相同的数据节点,第一数据节点可能为配置项、可能为常量、也可能为变量。例如第一配置项的Key为a,查找到的第一数据节点可能是key为a的配置项,可能是数值为a的变量,也可能是数值为a的常量。因此需要基于节点类型,对第一数据节点进一步地筛选,筛选出的第一数据节点即为与第一配置项的key的参数信息相同的待更新配置项。也就是,针对各个代码仓库的原始配置文件生成的各个语法树文件,通过上述步骤从该语法树文件中筛选出了与第一配置项对应的待更新配置项。待更新配置项具有第一配置项的第一配置信息。
S104:基于所述第二配置项的第二配置信息,对各个所述代码仓库中所述待更新配置项的所述第一配置信息更新。
基于前述建立的第一配置项与第二配置项的关联关系以及与第一配置项对应的待更新配置项,可以确定与待更新配置项对应的第二配置项。进而可以根据第二配置项的第二配置信息,更新对应的待更新配置项的第一配置信息。
在本公开实施例,针对各个代码仓库的原始配置文件生成的各个语法树文件,目标配置迁移工具可以基于第二配置项的第二配置信息对该语法树文件中的待更新配置项的第一配置信息更新。更新完成之后,可以再将更新后的语法树文件转换成目标编程语言编写的更新后的配置文件。然后将本地得到的各个更新后的配置文件同步到对应的代码仓库中,从而实现了对各个代码仓库中的原始配置文件的更新。
例如,当前需要对配置项模板中Key为a的第一配置项更新为Key为b的第二配置项,而在代码仓库中参数信息为a的可能是配置项,可能是一个变量,可能是一个常量。通过本公开实施例提供的配置信息更新方法,可以仅将代码仓库中参数信息为a的配置项对应的Key更新为b,而参数信息为a的常量和变量等则不会被替换,从而提高了配置信息更新的准确性,降低由于配置信息更新带来的程序错误的风险。
为了提高处理效率,在一种实施方式中,可以利用多个线程的方式对同一个原始配置文件中的多个待更新配置项进行同步更新。
在一种实施方式中,可以基于第二配置项的第二配置信息,利用多个线程对原始配置文件对应的多个待更新配置项的第一配置信息进行同步更新,分别得到多个更新后的配置文件;将更新后的配置文件同步到代码仓库中。其中,每个更新后的配置文件中包含对应线程进行更新后的已更新配置项。
利用多个线程对原始配置文件对应的多个待更新配置项的第一配置信息进行同步更新后,可以得到多个更新后的语法树文件,然后可以将多个更新后的语该法树文件分别转换成目标编程语言编写的更新后的配置文件。然后将本地得到的各个更新后的配置文件同步到对应的代码仓库中,从而实现了对各个代码仓库中的原始配置文件的更新。
在上述实施方式中,各个更新后的配置文件是对多个待更新配置项中的至少一个待更新配置项的第一配置信息进行更新后得到的,在得到多个更新后的配置文件后,可以在本地对多个更新后的配置文件进行合并,得到合并后的配置文件,在一种实施方式中,可以将多个线程分别得到的更新后的配置文件进行已更新配置项的合并,得到合并后的配置文件。
这里,得到的合并后的配置文件中包含各个已更新配置项。在具体实施中,可以将多个线程分别得到的更新后的语法树文件转换成目标编程语言编写的更新后的配置文件,然后基于已更新配置项,对更新后的配置文件进行合并,得到合并后的配置文件。
在一种实施方式中,在更新后的配置文件是在多个配置迁移工具中得到的情况下,可以响应于各个配置迁移工具对应的配置维护人员发起的文件合并请求,将来自各个配置迁移工具的更新后的配置文件进行已更新配置项的合并,得到合并后的配置文件。这里需要说明的是,任一配置迁移工具可以将得到的更新后的配置工具同步给其他配置迁移工具,从而任一配置迁移工具均可以获取到所有更新后的配置工具。
为了保证合并后的配置文件的可行性,在一种实施方式中,可以对合并后的配置文件进行本地校验,响应于对合并后的配置文件校验成功,利用合并后的配置文件更新代码仓库中存储的原始配置文件。
在利用合并后的配置文件更新代码仓库中存储的原始配置文件的过程中,可以仅针对已更新配置项的更新后配置信息进行更新,在一种实施方式中,可以基于原始配置文件中各配置项的配置信息,识别合并后的配置文件中已更新配置项的更新后配置信息;然后利用已更新配置项的更新后配置信息,更新代码仓库中存储的原始配置文件。也就是针对非已更新配置项,例如常量、变量等,可以不用更新。
如图3所示的另一种配置信息更新方法的流程图中,配置维护人员对配置项模板进行更新,具体地是对配置项模板中的待修改第一配置项的第一配置信息进行修改,得到具有第二配置信息的第二配置项,然后将第一配置项与第二配置项进行关联,得到第一配置项与第二配置项的关联关系,其中第一配置项与第二配置项进行关联的过程可以参照前文,这里不再赘述。得到的关联关系可以同步到管理平台。管理平台可以下发更新后的配置项模板到配置迁移工具,配置迁移工具从管理平台获取上述关联关系、更新后的配置项模板以及从与配置项模板关联的各个代码仓库获取原始配置文件。在获取到原始配置文件之后,对原始配置文件进行语法分析处理,生成语法树文件。然后,确定语法树文件中具有第一配置项的第一配置信息的待更新配置项。这里,生成语法树文件的过程、以及确定待更新配置项的过程可以参照前文,这里不再赘述。接下来,可以基于第二配置项的第二配置信息,利用多个线程对待更新配置项的第一配置信息进行更新,得到多个更新后的配置文件。其中,每个线程可以对部分待更新配置项进行更新。接收到文件合并请求之后,可以将对多个更新后的配置文件进行合并,得到合并后的配置文件。并对合并后的配置文件进行校验。对合并后的配置文件校验成功,表明合并后的配置文件可用,此时,可以利用合并后的配置文件更新代码仓库中的原始配置文件。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与配置信息更新方法对应的配置信息更新装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述配置信息更新方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图4所示,为本公开实施例提供的一种配置信息更新装置的结构示意图,所述装置包括:获取模块401、处理模块402、确定模块403、更新模块404;其中,
获取模块401,用于响应于配置信息修改请求,获取建立好的配置项模板中待修改的第一配置项与对应修改后的第二配置项之间的关联关系,并获取与所述配置项模板关联的各个代码仓库的原始配置文件;
处理模块402,用于对所述原始配置文件进行语法分析处理,生成语法树文件;
确定模块403,用于确定所述语法树文件中具有所述第一配置项的第一配置信息的待更新配置项;
更新模块404,用于基于所述第二配置项的第二配置信息,对各个所述代码仓库中所述待更新配置项的所述第一配置信息更新。
一种可选的实施方式中,获取模块401,具体用于:
获取与所述配置项模板关联的各个代码仓库地址;
基于所述代码仓库地址,从所述代码仓库地址对应的代码仓库中读取所述原始配置文件。
一种可选的实施方式中,确定模块403,具体用于:
从所述语法树文件中的各数据节点中,查找与所述第一配置信息的参数信息相同的第一数据节点;
从查找到的所述第一数据节点中,筛选出对应的节点类型为配置项的第二数据节点,并将所述第二数据节点对应的配置项作为所述待更新配置项。
一种可选的实施方式中,更新模块404,具体用于:
基于所述第二配置项的第二配置信息,利用多个线程对所述原始配置文件对应的多个所述待更新配置项的所述第一配置信息进行同步更新,分别得到多个更新后的配置文件;其中每个更新后的配置文件中包含对应线程进行更新后的已更新配置项;
将所述更新后的配置文件同步到所述代码仓库中。
一种可选的实施方式中,更新模块404,具体用于:
将所述多个线程分别得到的更新后的配置文件进行已更新配置项的合并,得到合并后的配置文件;
响应于对所述合并后的配置文件校验成功,利用所述合并后的配置文件更新代码仓库中存储的原始配置文件。
一种可选的实施方式中,更新模块404,具体用于:
识别所述合并后的配置文件中所述各已更新配置项的更新后配置信息;
利用所述已更新配置项的更新后配置信息,更新所述代码仓库中存储的原始配置文件。
一种可选的实施方式中,获取模块401,具体用于:
获取所述第一配置项的第一引用路径、以及所述第二配置项的第二引用路径;
将所述第一引用路径与所述第二引用路径进行关联,得到所述第一引用路径与所述第二引用路径的关联关系,并将所述第一引用路径与所述第二引用路径的关联关系作为所述第一配置项与所述第二配置项的关联关系。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
基于同一技术构思,本公开实施例还提供了一种计算机设备。参照图5所示,为本公开实施例提供的计算机设备500的结构示意图,包括处理器501、存储器502、和总线503。其中,存储器502用于存储执行指令,包括内存5021和外部存储器5022;这里的内存5021也称内存储器,用于暂时存放处理器501中的运算数据,以及与硬盘等外部存储器5022交换的数据,处理器501通过内存5021与外部存储器5022进行数据交换,当计算机设备500运行时,处理器501与存储器502之间通过总线503通信,使得处理器501在执行以下指令:
响应于配置信息修改请求,获取建立好的配置项模板中待修改的第一配置项与对应修改后的第二配置项之间的关联关系,并获取与所述配置项模板关联的各个代码仓库的原始配置文件;
对所述原始配置文件进行语法分析处理,生成语法树文件;
确定所述语法树文件中具有所述第一配置项的第一配置信息的待更新配置项;
基于所述第二配置项的第二配置信息,对各个所述代码仓库中所述待更新配置项的所述第一配置信息更新。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的配置信息更新方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的配置信息更新方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种配置信息更新方法,其特征在于,包括:
响应于配置信息修改请求,获取建立好的配置项模板中待修改的第一配置项与对应修改后的第二配置项之间的关联关系,并获取与所述配置项模板关联的各个代码仓库的原始配置文件;
对所述原始配置文件进行语法分析处理,生成语法树文件;
确定所述语法树文件中具有所述第一配置项的第一配置信息的待更新配置项;
基于所述第二配置项的第二配置信息,对各个所述代码仓库中所述待更新配置项的所述第一配置信息更新。
2.根据权利要求1所述的方法,其特征在于,所述获取与所述配置项模板关联的各个代码仓库的原始配置文件,包括:
获取与所述配置项模板关联的各个代码仓库地址;
基于所述代码仓库地址,从所述代码仓库地址对应的代码仓库中读取所述原始配置文件。
3.根据权利要求1所述的方法,其特征在于,所述确定所述语法树文件中具有所述第一配置项的第一配置信息的待更新配置项,包括:
从所述语法树文件中的各数据节点中,查找与所述第一配置信息的参数信息相同的第一数据节点;
从查找到的所述第一数据节点中,筛选出对应的节点类型为配置项的第二数据节点,并将所述第二数据节点对应的配置项作为所述待更新配置项。
4.根据权利要求1所述的方法,其特征在于,所述基于所述第二配置项的第二配置信息,对各个所述代码仓库中所述待更新配置项的所述第一配置信息更新,包括:
基于所述第二配置项的第二配置信息,利用多个线程对所述原始配置文件对应的多个所述待更新配置项的所述第一配置信息进行同步更新,分别得到多个更新后的配置文件;其中每个更新后的配置文件中包含对应线程进行更新后的已更新配置项;
将所述更新后的配置文件同步到所述代码仓库中。
5.根据权利要求4所述的方法,其特征在于,所述将所述更新后的配置文件同步到所述代码仓库中,包括:
将所述多个线程分别得到的更新后的配置文件进行已更新配置项的合并,得到合并后的配置文件;
响应于对所述合并后的配置文件校验成功,利用所述合并后的配置文件更新代码仓库中存储的原始配置文件。
6.根据权利要求5所述的方法,其特征在于,所述利用所述合并后的配置文件更新代码仓库中存储的原始配置文件,包括:
识别所述合并后的配置文件中各个所述已更新配置项的更新后配置信息;
利用所述已更新配置项的更新后配置信息,更新所述代码仓库中存储的原始配置文件。
7.根据权利要求1所述的方法,其特征在于,所述配置项模板中待修改的第一配置项与修改后对应的第二配置项之间的关联关系,是通过以下步骤建立的:
获取所述第一配置项的第一引用路径、以及所述第二配置项的第二引用路径;
将所述第一引用路径与所述第二引用路径进行关联,得到所述第一引用路径与所述第二引用路径的关联关系,并将所述第一引用路径与所述第二引用路径的关联关系作为所述第一配置项与所述第二配置项的关联关系。
8.一种配置信息更新装置,其特征在于,包括:
获取模块,用于响应于配置信息修改请求,获取建立好的配置项模板中待修改的第一配置项与对应修改后的第二配置项之间的关联关系,并获取与所述配置项模板关联的各个代码仓库的原始配置文件;
处理模块,用于对所述原始配置文件进行语法分析处理,生成语法树文件;
确定模块,用于确定所述语法树文件中具有所述第一配置项的第一配置信息的待更新配置项;
更新模块,用于基于所述第二配置项的第二配置信息,对各个所述代码仓库中所述待更新配置项的所述第一配置信息更新。
9.一种计算机设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至7任一项所述的配置信息更新方法的步骤。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至7任一项所述的配置信息更新方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211013944.3A CN115357269A (zh) | 2022-08-23 | 2022-08-23 | 一种配置信息更新方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211013944.3A CN115357269A (zh) | 2022-08-23 | 2022-08-23 | 一种配置信息更新方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115357269A true CN115357269A (zh) | 2022-11-18 |
Family
ID=84002070
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211013944.3A Pending CN115357269A (zh) | 2022-08-23 | 2022-08-23 | 一种配置信息更新方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115357269A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116107561A (zh) * | 2023-04-14 | 2023-05-12 | 湖南云畅网络科技有限公司 | 一种基于低代码的动作节点快速构建方法、系统和存储介质 |
-
2022
- 2022-08-23 CN CN202211013944.3A patent/CN115357269A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116107561A (zh) * | 2023-04-14 | 2023-05-12 | 湖南云畅网络科技有限公司 | 一种基于低代码的动作节点快速构建方法、系统和存储介质 |
CN116107561B (zh) * | 2023-04-14 | 2023-06-23 | 湖南云畅网络科技有限公司 | 一种基于低代码的动作节点快速构建方法、系统和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107958057B (zh) | 一种用于异构数据库中数据迁移的代码生成方法及装置 | |
CN107122368B (zh) | 一种数据校验方法、装置及电子设备 | |
US11172022B2 (en) | Migrating cloud resources | |
US10621211B2 (en) | Language tag management on international data storage | |
CN108762743B (zh) | 一种数据表操作代码生成方法及装置 | |
CN107315764B (zh) | 一种非关系型数据库关联数据的更新方法及系统 | |
EP2610762A1 (en) | Database version management system | |
CN104657274B (zh) | 软件界面测试方法及装置 | |
US11675690B2 (en) | Lineage-driven source code generation for building, testing, deploying, and maintaining data marts and data pipelines | |
CA2868430A1 (en) | Data selection and identification | |
JP5949222B2 (ja) | 運用管理支援装置、方法及びプログラム | |
US10592400B2 (en) | System and method for creating variants in a test database during various test stages | |
CN115357269A (zh) | 一种配置信息更新方法、装置、计算机设备及存储介质 | |
CN114840213A (zh) | 一种服务实例配置管理方法和装置 | |
JP2018092361A (ja) | テストスクリプト修正装置及びテストスクリプト修正プログラム | |
Jongeling et al. | Towards consistency checking between a system model and its implementation | |
US11314489B1 (en) | Automated authoring of software solutions by first analyzing and resolving anomalies in a data model | |
CN114490594A (zh) | 一种数据库管理方法、装置、电子设备及计算机存储介质 | |
CN110222047A (zh) | 一种动态表单生成方法和装置 | |
CN113672692A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
Pastrana-Pardo et al. | Approach to the Best Practices in Software Development Based on DevOps and SCRUM Used in Very Small Entities | |
CN115794858A (zh) | 查询语句处理方法、装置、设备及存储介质 | |
CN102591859B (zh) | 一种重用行业标准格式文件的方法及相关装置 | |
CN104881455B (zh) | 一种基于mysql的结构差异处理方法及系统 | |
CN114296726A (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 |