CN117742764A - 一种基板管理控制器的版本更新方法、装置、设备及介质 - Google Patents

一种基板管理控制器的版本更新方法、装置、设备及介质 Download PDF

Info

Publication number
CN117742764A
CN117742764A CN202311576465.7A CN202311576465A CN117742764A CN 117742764 A CN117742764 A CN 117742764A CN 202311576465 A CN202311576465 A CN 202311576465A CN 117742764 A CN117742764 A CN 117742764A
Authority
CN
China
Prior art keywords
version
difference
item
configuration
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
Application number
CN202311576465.7A
Other languages
English (en)
Inventor
邢晓博
聂广胜
魏冬林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Original Assignee
Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd filed Critical Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Priority to CN202311576465.7A priority Critical patent/CN117742764A/zh
Publication of CN117742764A publication Critical patent/CN117742764A/zh
Pending legal-status Critical Current

Links

Classifications

    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明提供了一种基板管理控制器的版本更新方法、装置、设备及介质,包括:响应针对于基板管理控制器的版本更新任务,获取基板管理控制器的版本升级文件;读取版本升级文件得到第一版本,并获取基板管理控制器当前存储的当前配置文件对应的第二版本;获取第一版本与第二版本之间的目标差异信息;将目标差异信息更新至补丁文件,并基于补丁文件以及原始配置信息将基板管理控制器升级至第一版本。本申请通过对比基板管理控制器当前版本与需要升级至的版本,可以确定版本间的差异信息,并直接将差异信息更新至补丁文件,无需将旧版本的配置拷贝至新版本。即使在跨越多个版本升级时,也能够保证各个版本配置的准确性。

Description

一种基板管理控制器的版本更新方法、装置、设备及介质
技术领域
本发明涉及计算机技术领域,具体涉及一种基板管理控制器的版本更新方法、装置、设备及介质。
背景技术
目前客户在现场进行BMC升级时,一般都会选择保留配置升级,使升级后无需重新配置即可正常使用BMC,主要保留的配置项有:用户配置、IPMI配置、网络配置、NTP配置、SNMP配置、SSH配置、KVM配置、SMTP配置等。当前的主要实现方案:在升级过程中将老版本的配置文件拷贝到新版本的配置分区中。此方案在新老版本配置文件中的参数类型不变的情况下没有问题,如果配置文件中的参数类型发生改变,就会出现配置不匹配的问题,导致实际客户的配置未保留成功,只能重新配置。也有的方案在程序中根据不同文件做特殊处理。但是,如果升级的新版本与老版本之间迭代次数过多,仅靠程序中的特殊处理导致配置过程较慢,且有时会出现遗漏的情况,导致无法准确的对每一次迭代升级进行配置,同时还存在代码冗余的情况,不利于后期维护。
发明内容
有鉴于此,本发明实施例提供了一种基板管理控制器的版本更新方法、装置、设备及介质,以解决现有版本迭代次数过多时,仅靠程序中的特殊处理导致配置过程较慢,且有时无法准确的对每一次迭代进行精准配置问题。
第一方面,本发明实施例提供了一种基板管理控制器的版本更新方法,所述方法包括:
响应针对于基板管理控制器的版本更新任务,获取所述基板管理控制器的版本升级文件;
读取所述版本升级文件得到第一版本,并获取所述基板管理控制器当前存储的当前配置文件对应的第二版本,其中,所述第二版本为所述基板管理控制器的当前版本;
获取所述第一版本与所述第二版本之间的目标差异信息,其中,所述目标差异信息包括多个差异项以及每个所述差异项对应的差异参数;
将所述目标差异信息更新至补丁文件,并基于所述补丁文件以及原始配置信息将所述基板管理控制器升级至第一版本,其中,所述补丁文件包括从原始版本至第二版本之间的至少一个差异信息。
进一步的,所述获取所述基板管理控制器的版本升级文件,包括:
获取所述第一版本对应的配置信息,并确定所述配置信息对应的配置类型;
基于所述配置类型对应的解析策略对所述配置信息进行解析,得到至少一个第一配置项以及每个第一配置项对应的第一参数;
基于所述第一版本、所述第一配置项以及所述第一配置项对应的第一参数生成所述版本升级文件。
进一步的,根据权利要求基于所述第一版本、所述第一配置项以及所述第一配置项对应的第一参数生成所述版本升级文件,包括:
生成创建指令;
响应所述创建指令,将所述第一版本作为文件名生成初始配置文件,其中,所述初始配置文件的补丁内容为空;
将所述第一配置项以及所述第一配置项对应的第一参数写入所述初始配置文件,得到所述版本升级文件。
进一步的,所述获取所述第一版本与所述第二版本之间的目标差异信息,包括:
对比所述第一版本以及所述第二版本,得到所述第一版本与所述第二版本之间版本差异值;
在所述版本差异值大于预设阈值的情况下,利用所述版本差异值确定至少一个中间版本;
获取所述中间版本至所述第一版本之间的第一差异信息,以及所述第二版本与所述中间版本之间的第二差异信息;
将所述第一差异信息和所述第二差异信息确定为所述目标差异信息。
进一步的,所述获取所述中间版本至所述第一版本之间的第一差异信息,以及所述第二版本与所述中间版本之间的第二差异信息,包括:
获取所述中间版本对应的中间配置文件;
解析所述中间配置文件得到第二配置项以及第二配置项对应的第二参数;
对比所述第一配置项和所述第二配置项得到第一差异项,得到第一对比结果;
通过所述第一对比结果确定所述第一差异项,并获取所述第一差异项对应的第一差异参数;
基于所述第一差异项以及所述第一差异参数生成所述第一差异信息;
读取所述当前配置文件中的第三配置项以及所述第三配置项对应的第三参数;
对比所述第三配置项和所述第二配置项得到第二差异项,得到第二对比结果;
通过所述第二对比结果确定所述第二差异项,并获取所述第二差异项对应的第二差异参数;
基于所述第二差异项以及所述第二差异参数生成所述第二差异信息。
进一步的,在获取所述中间版本至所述第一版本之间的第一差异信息,以及所述第二版本与所述中间版本之间的第二差异信息之后,所述方法还包括:
校验所述第一差异信息以及所述第二差异信息;
在确定所述第一差异信息与所述第二差异信息之间存在更新冲突的情况下,确定存在冲突的第一差异项和第二差异项,并确定冲突类型;
根据所述冲突类型对存在冲突的第一差异项和第二差异项执行处理操作。
进一步的,所述根据所述冲突类型对存在冲突的第一差异项和第二差异项执行处理操作,包括:
在所述冲突类型为第一类型时,将存在冲突的第一差异项和第二差异项合并;
在所述冲突类型为第二类型时,确定存在冲突的第一差异项和第二差异项中第一优先级的差异项和第二优先级的差异项,并利用第一优先级的差异项对应的差异参数对第二优先级的差异项对应的差异参数进行覆盖,其中,第一优先级高于第二优先级。
第二方面,本发明实施例提供了一种基板管理控制器的版本更新装置,所述装置包括:
响应模块,用于响应针对于基板管理控制器的版本更新任务,获取所述基板管理控制器的版本升级文件;
读取模块,用于读取所述版本升级文件得到第一版本,并获取所述基板管理控制器当前存储的当前配置文件对应的第二版本,其中,所述第二版本为所述基板管理控制器的当前版本;
获取模块,用于获取所述第一版本与所述第二版本之间的目标差异信息,其中,所述目标差异信息包括多个差异项以及每个所述差异项对应的差异参数;
处理模块,用于将所述目标差异信息更新至补丁文件,并基于所述补丁文件以及原始配置信息将所述基板管理控制器升级至第一版本,其中,所述补丁文件包括从原始版本至第二版本之间的至少一个差异信息。
第三方面,本发明实施例提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的方法。
本申请通过对比基板管理控制器当前版本与需要升级至的版本,可以确定版本间的差异信息,并直接将差异信息更新至补丁文件,无需将旧版本的配置拷贝至新版本,解决了在不同版本间保留配置升级时,保留配置失败的问题。即使在跨越多个版本升级时,也能够保证各个版本配置的准确性。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的一种基板管理控制器的版本更新方法的流程示意图;
图2是根据本发明实施例的一种基板管理控制器的版本更新装置的结构框图;
图3是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
根据本发明实施例,提供了一种基板管理控制器的版本更新方法、装置、设备及介质,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种基板管理控制器的版本更新方法,图1是根据本发明实施例的了一种基板管理控制器的版本更新方法的流程图,如图1所示,该流程包括如下步骤:
步骤S11,响应针对于基板管理控制器的版本更新任务,获取基板管理控制器的版本升级文件。
在本实施例中,用户可以通过基板管理控制器的管理设备触发版本更新任务,具体的,用户可以通过管理设备获取基板管理控制器存储的当前配置文件,然后检测针对于当前配置文件的编辑操作,通过该编辑操作增加相应的配置项,并将编辑完成后的当前配置文件作为版本升级文件,最终基于目标配置文版本升级文件触发针对于基板管理控制器的版本更新任务。
例如:配置文件的文本格式为json格式,在不同版本的配置文件中,json文件内容的差异存在三种情况:增加,减少和修改。以ssh的配置信息为例,旧版本的用户配置文件为user_ssh_conf.v1,新版本的默认用户配置为def_ssh_conf_.v2,旧版本的配置文件中包括:
"service name":"ssh"
"state":0
"port":22
"time out":600
"interface name":"both"。
新版本的配置文件(版本升级文件)中包括:
"service name":"ssh"
"state":1.
"secure port":22.
"time out":800,
"maximum sessions":20。
在本实施例中,获取基板管理控制器的版本升级文件,包括以下步骤A1-A3:
步骤A1,获取第一版本对应的配置信息,并确定配置信息对应的配置类型。
其中,获取第一版本的配置文件或配置数据。根据具体情况,可以从文件系统、数据库或其他存储介质中获取配置信息。同时,需要确定这些配置信息所属的配置类型,配置类型可以用于表示BMC的功能。
步骤A2,基于配置类型对应的解析策略对配置信息进行解析,得到至少一个第一配置项以及每个第一配置项对应的第一参数。
其中,BMC不同的功能对应不同的配置项,因此设置不同配置类型对应的解析策略,然后得到至少一个第一配置项和第一配置项对应的第一参数,例如:SSH进行说明,第一配置项可以是:"state","secure port","time out","maximum sessions"。第一参数可以是"state":1,"secure port":22,"time out":800,"maximum sessions":20。
步骤A3,基于第一版本、第一配置项以及第一配置项对应的第一参数生成版本升级文件。
在本实施例中,基于第一版本、第一配置项以及第一配置项对应的第一参数生成版本升级文件,包括:生成创建指令;响应创建指令,将第一版本作为文件名生成初始配置文件,其中,初始配置文件的补丁内容为空;将第一配置项以及第一配置项对应的第一参数写入初始配置文件,得到版本升级文件。
具体的,创建指令是用来描述如何生成初始配置文件和版本升级文件的指令。具体生成初始配置文件的过程:将第一版本作为文件名生成初始配置文件。在创建初始配置文件时,需要确保文件路径的正确性,并根据需要设定文件权限。初始配置文件的补丁内容指的是与初始配置文件相关的变更或更新信息。将确保初始配置文件没有任何变更或更新,即补丁内容为空。在生成版本升级文件时,需要执行相应的文本处理和写入操作来更新初始配置文件。
在本实施例中,在生成版本升级文件后,管理设备还可以将版本升级文件进行显示,用户可以基于版本升级文件继续编辑,所以管理设备检测作用于版本升级文件的编辑操作,并基于编辑操作获取写入版本升级文件的新增配置项以及新增配置项的参数值,将新增配置项以及新增配置项的参数值作为新增内容。
步骤S12,读取版本升级文件得到第一版本,并获取基板管理控制器当前存储的当前配置文件对应的第二版本,其中,第二版本为基板管理控制器的当前版本。
具体的,版本升级文件包含了一系列配置项的更新和变更信息。根据读取到的版本升级文件,可以解析出第一版本的配置项和相应的参数。第一版本可以理解为最新版本。另外,由于基板管理控制器上存储有当前配置文件的信息。通过读取数据库、访问API接口等方式,可以获取当前配置文件的相关信息。根据当前配置文件的相关信息,可以确定其对应的第二版本。第二版本即为基板管理控制当前部署的版本。
步骤S13,获取第一版本与第二版本之间的目标差异信息,其中,目标差异信息包括多个差异项以及每个差异项对应的差异参数。
在本实施例中,在获取第一版本与第二版本之间的目标差异信息之前,方法还包括:对版本升级文件所携带的第一配置项进行校验;在第一配置项不存在异常的情况下,获取第一版本与第二版本之间的目标差异信息。
具体的,管理设备首先获取预先配置的校验规则,校验规则可以包括:配置项的格式校验,完整性校验等等。例如:首先对第一配置项进行格式校验,即将第一配置项与预先配置的多个基准配置项进行匹配。如果第一配置项与基准配置项相匹配,则确定第一配置项不存在错误。如果第一配置项与基准配置项不匹配,则生成提示信息,并将与基准配置项不匹配的第一配置项进行显示,便于用户进行修改。
在本实施例中,不同版本文件差异主要包括三种情况,新增参数、删除参数和修改参数,对上述三种情况确定差异信息的过程如下:
新增参数:对于新增的参数,在差异信息中保存新增字段的参数值,在生成新配置文件时,可以将该值作为新配置文件该参数的默认值。具体操作是在生成新配置文件的过程中,将差异信息中新增字段的参数值赋给相应的参数,作为新配置文件的默认值。
删除参数:对于被删除的参数,在差异信息中直接删除了该字段。在生成新配置文件时,需要确保该参数在新配置文件中不存在即可,即在版本升级文件中删除该参数。
修改参数:对于修改的参数,在差异信息中包含了旧版本名称和新版本名称。在生成新配置文件时,可以使用旧版本中相应参数的值作为新配置文件该参数的默认值。具体操作是在生成新配置文件的过程中,根据差异信息中的旧版本名称找到对应的参数值,将该参数值赋给新配置文件的相应参数。
其中,user_ssh_conf.v1中的每个参数值是用户配置的,而def_ssh_conf_.v2中的参数值是默认值。因此,在根据user_ssh_conf.v1生成版本升级文件user_ssh_conf.v2时,可以使用def_ssh_conf_.v2中的参数作为版本升级文件的框架,但是将参数值使用user_ssh_conf.v1中的值。这样可以保留参数的默认设置,同时使用用户配置的值进行覆盖。通过以上处理,可以根据不同版本文件差异生成新的版本升级文件,并在保留默认设置的同时使用用户配置的参数值。
在本实施例中,获取第一版本与第二版本之间的目标差异信息,包括以下步骤B1-B3:
步骤B1,对比第一版本以及第二版本,得到第一版本与第二版本之间版本差异值。
步骤B2,在版本差异值大于预设阈值的情况下,利用版本差异值确定至少一个中间版本。
步骤B3,获取中间版本至第一版本之间的第一差异信息,以及第二版本与中间版本之间的第二差异信息。
在本实施例中,获取中间版本至第一版本之间的第一差异信息,以及第二版本与中间版本之间的第二差异信息,包括:获取中间版本对应的中间配置文件;解析中间配置文件得到第二配置项以及第二配置项对应的第二参数;对比第一配置项和第二配置项得到第一差异项,得到第一对比结果;通过第一对比结果确定第一差异项,并获取第一差异项对应的第一差异参数;基于第一差异项以及第一差异参数生成第一差异信息;读取当前配置文件中的第三配置项以及第三配置项对应的第三参数;对比第三配置项和第二配置项得到第二差异项,得到第二对比结果;通过第二对比结果确定第二差异项,并获取第二差异项对应的第二差异参数;基于第二差异项以及第二差异参数生成第二差异信息。
作为一个示例,基板管理控制器当前版本(即第二版本)为V2,第二版本的当前配置文件。基板管理控制器需要升级至的版本(即第一版本)为V4。
在升级过程中,首先获取当前配置文件,同时获取第二版本V2至中间版本V3的差异信息V2-3,其次利用差异信息V2-3以及当前配置文件将基板管理控制器升级至中间版本V3。此时得到中间配置文件,然后利用中间配置文件以及中间版本V3至第一版本V4的差异信息V3-4将基板管理控制器升级至第一版本V4。
本申请实施例提供的方法通过对比基板管理控制器当前版本与需要升级至的版本,从而确定用于表示版本之间差异的补丁信息,最终利用当前配置文件和补丁信息对基板管理控制器进行升级,无需将旧版本的配置拷贝至新版本,升级只需更新版本之间的补丁信息即可,解决了在不同版本间保留配置升级时,保留配置失败的问题。即使在跨越多个版本升级时,也能够保证各个版本配置的准确性。
步骤B4,将第一差异信息和第二差异信息确定为目标差异信息。
在本实施例中,通过对比版本差异值,可以确定第一版本和第二版本之间的变更和更新内容。可以快速了解版本之间的差异,并提供基础数据用于后续操作的决策和分析。在版本差异值大于预设阈值的情况下,确定至少一个中间版本:通过引入中间版本,可以逐步升级,减少潜在的风险和影响范围。通过获取中间版本和第一/第二版本之间的目标差异信息,可以确定升级过程中的具体变更和更新点。使升级过程更加准确和可靠,减少风险和影响。
步骤S14,将目标差异信息更新至补丁文件,并基于补丁文件以及原始配置信息将基板管理控制器升级至第一版本,其中,补丁文件包括从原始版本至第二版本之间的至少一个差异信息。
具体的,利用目标差异信息更新至补丁文件(patch.txt),补丁文件的内容格式如下:
VERSION,1->2
ADD:配置项1;参数值1,配置项2;参数值2。
REMOVE:配置项1,配置项2。
MODIFY:旧配置项1;新配置项1,旧配置项2;新配置项2。
其中,VERSION后的值代表下列差异是哪两个版本间的迭代,ADD代表需要增加的配置项和参数值,REMOVE代表删除的配置项以及参数值,MODIFY代表需要修改的旧配置项和新配置项。
该文件通过shell脚本自动生成,只需要相邻两个版本的默认配置文件、所需修改的旧参数名与新参数名做为输入即可。以def_ssh_conf_.v1和def_ssh_conf_.v2为例子,该脚本生成的ssh_patch.txt文件内容如下:
VERSION,1->2;
ADD,maximum sessions;20;
REMOVE,interface name;
MODIFY,port;secure port。
当项目中版本继续迭代时,如果配置文件继续更新,只需要ssh_patch.txt文件:VERSION,2->3...,该文件包含了从V1版本开始所有的ssh配置文件更新内容,这样无论后续迭代多少个版本,都只需要设备中原始的用户配置文件user_ssh_conf.v(n)与ssh_patch.txt即可更新生成匹配当前版本的配置文件。
本申请实施例提供的方法通过获取版本升级文件,可以获取到新版本的配置信息,为后续的升级操作提供必要的支持。通过读取版本升级文件,可以获得新版本的具体内容和改进内容。这有助于了解新版本带来的新功能、修复的问题等。然后比较第一版本和第二版本,可以确定它们之间的差异。这有助于了解新版本相对于当前版本的改动、新增功能等。最终将目标差异信息更新至补丁文件。补丁文件包含了将基板管理控制器从当前版本升级至目标版本所需的所有变更和修改。基于补丁文件以及原始配置信息进行升级。在升级过程中,补丁文件会被应用到基板管理控制器的配置中,同时保留原始配置的准确性。
基于此,可以确保在进行不同版本之间的升级时,既能够保留原始配置的准确性,又能够应用目标差异信息进行更新。这样即使在跨越多个版本升级时,各个版本的配置都能够被正确地保留,并且基板管理控制器可以成功升级至最新版本。同时该方法确保了在升级过程中既能够应用新的差异信息进行更新,又能够保留原始配置的准确性。通过补丁文件的使用,可以确保跨越多个版本的配置升级过程中,配置的完整性和正确性得到维护,从而避免了配置失败的问题。
在本实施例中,在获取中间版本至第一版本之间的第一差异信息,以及第二版本与中间版本之间的第二差异信息之后,方法还包括以下步骤C1-C3:
步骤C1,校验第一差异信息以及第二差异信息。
具体的,校验方式可以是数据完整性校验,具体确保差异信息的数据字段和参数完整,没有遗漏或错误。检查每个差异项和对应的差异参数是否都存在,并符合指定的数据类型和格式要求。
校验方式还可以是依赖性校验,具体确保差异信息中的各项配置项和参数之间的依赖关系正确。检查每个差异项和参数是否满足其它差异项或参数的依赖关系要求。
校验方式还可以是:检查差异信息中的配置项和参数是否与基板管理控制器的当前状态保持一致。比较差异信息中的配置项和参数与当前配置文件或基板管理控制器状态的对应项,验证是否一致。
步骤C2,在确定第一差异信息与第二差异信息之间存在更新冲突的情况下,确定存在冲突的第一差异项和第二差异项,并确定冲突类型。
具体的,当第一差异项和第二差异项中存在缺失定义或者参数值的配置项时,即某个配置项或者参数值在第一差异项中存在而在第二差异项中缺失。
或者,当第一差异项和第二差异项中的配置项和参数之间存在依赖关系,而该依赖关系无法满足时,就存在依赖冲突。例如,假设有两个配置项A和B,以及它们的两个参数x和y。现在有两个差异项,第一个差异项需要配置项A的参数x为1,配置项B的参数y为2,而第二个差异项需要配置项A的参数x为2,配置项B的参数y为1。这里存在一个依赖关系,即当参数x为1时参数y必须为2,当参数x为2时参数y必须为1。然而,这个依赖关系是相互冲突的,因为无法同时满足两个差异项的要求。
或者,当第一差异项和第二差异项中的配置项和参数不符合预定义的格式和语法规则时,就存在格式冲突。例如:假设有两个差异项,第一个差异项是要将配置项A的参数x设置为"abc",第二个差异项是要将配置项A的参数x设置为100。然而,根据预定义的格式和语法规则,参数x只接受整数类型的值,而不接受字符串类型的值。因此,这两个差异项中的配置项和参数不符合预定义的格式和语法规则,存在格式冲突。
或者,当第一差异项和第二差异项中的配置项互斥时,就存在互斥冲突。假设配置项A是用来开启某个高性能模式,而配置项B是用来开启省电模式。高性能模式和省电模式是互斥的,即只能同时启用其中一个模式。当启用高性能模式时,省电模式会自动关闭,当启用省电模式时,高性能模式会自动关闭。因此,第一差异项中的配置项A和第二差异项中的配置项B是互斥的。当启用配置项A时,配置项B必须被禁用;反之,当启用配置项B时,配置项A必须被禁用。
步骤C3,根据冲突类型对存在冲突的第一差异项和第二差异项执行处理操作。
在本实施例中,根据冲突类型对存在冲突的第一差异项和第二差异项执行处理操作,包括:
在冲突类型为第一类型时,将存在冲突的第一差异项和第二差异项合并。其中,第一类型可以是配置项的参数值冲突。例如:假设有两个差异项,第一个差异项要求配置项A的参数x设置为1,而第二个差异项要求配置项A的参数x设置为2。这两个参数值虽然不一致,但在逻辑上是可以兼容的,并且可以满足业务需求。此时,可以尝试将这两个差异项合并,以统一参数值。
在冲突类型为第二类型时,确定存在冲突的第一差异项和第二差异项中第一优先级的差异项和第二优先级的差异项,并利用第一优先级的差异项对应的差异参数对第二优先级的差异项对应的差异参数进行覆盖,其中,第一优先级高于第二优先级。
其中,第二类型可以是配置项互斥冲突,例如:假设有两个差异项,第一差异项的优先级较高,它要求配置项A的参数x设置为1。而第二差异项的优先级较低,它要求配置项A的参数x设置为2。现在我们来确定第一差异项和第二差异项之间的优先级关系,并利用第一优先级的差异项来覆盖第二优先级的差异项。
通过这种覆盖的方式,确保了第一差异项的要求具有更高的优先级,并将其对应的差异参数值应用于配置项,而忽略了第二差异项对应的差异参数值。这样可以确保我们按照期望的优先级设置参数,并解决了存在冲突的差异项之间的优先级问题。
在本实施例中还提供了一种基板管理控制器的版本更新装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种基板管理控制器的版本更新装置,如图2所示,包括:
响应模块21,用于响应针对于基板管理控制器的版本更新任务,获取基板管理控制器的版本升级文件;
读取模块22用于读取版本升级文件得到第一版本,并获取基板管理控制器当前存储的当前配置文件对应的第二版本,其中,第二版本为基板管理控制器的当前版本;
获取模块23,用于获取第一版本与第二版本之间的目标差异信息,其中,目标差异信息包括多个差异项以及每个差异项对应的差异参数;
处理模块24,用于将目标差异信息更新至补丁文件,并基于补丁文件以及原始配置信息将基板管理控制器升级至第一版本,其中,补丁文件包括从原始版本至第二版本之间的至少一个差异信息。
在本实施例中,响应模块21,用于获取第一版本对应的配置信息,并确定配置信息对应的配置类型;基于配置类型对应的解析策略对配置信息进行解析,得到至少一个第一配置项以及每个第一配置项对应的第一参数;基于第一版本、第一配置项以及第一配置项对应的第一参数生成版本升级文件。
在本实施例中,响应模块21,用于生成创建指令;响应创建指令,将第一版本作为文件名生成初始配置文件,其中,初始配置文件的补丁内容为空;将第一配置项以及第一配置项对应的第一参数写入初始配置文件,得到版本升级文件。
在本实施例中,获取模块23,用于对比第一版本以及第二版本,得到第一版本与第二版本之间版本差异值;在版本差异值大于预设阈值的情况下,利用版本差异值确定至少一个中间版本;获取中间版本至第一版本之间的第一差异信息,以及第二版本与中间版本之间的第二差异信息;将第一差异信息和第二差异信息确定为目标差异信息。
在本实施例中,获取模块23,用于获取中间版本对应的中间配置文件;解析中间配置文件得到第二配置项以及第二配置项对应的第二参数;对比第一配置项和第二配置项得到第一差异项,得到第一对比结果;通过第一对比结果确定第一差异项,并获取第一差异项对应的第一差异参数;基于第一差异项以及第一差异参数生成第一差异信息;读取当前配置文件中的第三配置项以及第三配置项对应的第三参数;对比第三配置项和第二配置项得到第二差异项,得到第二对比结果;通过第二对比结果确定第二差异项,并获取第二差异项对应的第二差异参数;基于第二差异项以及第二差异参数生成第二差异信息。
在本实施例中,装置还包括:校验模块,用于校验第一差异信息以及第二差异信息;在确定第一差异信息与第二差异信息之间存在更新冲突的情况下,确定存在冲突的第一差异项和第二差异项,并确定冲突类型;根据冲突类型对存在冲突的第一差异项和第二差异项执行处理操作。
在本实施例中,装置还包括:校验模块,用于在冲突类型为第一类型时,将存在冲突的第一差异项和第二差异项合并;在冲突类型为第二类型时,确定存在冲突的第一差异项和第二差异项中第一优先级的差异项和第二优先级的差异项,并利用第一优先级的差异项对应的差异参数对第二优先级的差异项对应的差异参数进行覆盖,其中,第一优先级高于第二优先级。
请参阅图3,图3是本发明可选实施例提供的一种计算机设备的结构示意图,如图3所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,所述存储器20存储有可由至少一个处理器10执行的指令,以使所述至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据一种小程序落地页的展现的计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该计算机设备还包括通信接口30,用于该计算机设备与其他设备或通信网络通信。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

Claims (10)

1.一种基板管理控制器的版本更新方法,其特征在于,所述方法包括:
响应针对于基板管理控制器的版本更新任务,获取所述基板管理控制器的版本升级文件;
读取所述版本升级文件得到第一版本,并获取所述基板管理控制器当前存储的当前配置文件对应的第二版本,其中,所述第二版本为所述基板管理控制器的当前版本;
获取所述第一版本与所述第二版本之间的目标差异信息,其中,所述目标差异信息包括多个差异项以及每个所述差异项对应的差异参数;
将所述目标差异信息更新至补丁文件,并基于所述补丁文件以及原始配置信息将所述基板管理控制器升级至第一版本,其中,所述补丁文件包括从原始版本至第二版本之间的至少一个差异信息。
2.根据权利要求1所述的方法,其特征在于,所述获取所述基板管理控制器的版本升级文件,包括:
获取所述第一版本对应的配置信息,并确定所述配置信息对应的配置类型;
基于所述配置类型对应的解析策略对所述配置信息进行解析,得到至少一个第一配置项以及每个第一配置项对应的第一参数;
基于所述第一版本、所述第一配置项以及所述第一配置项对应的第一参数生成所述版本升级文件。
3.根据权利要求2所述的方法,其特征在于,根据权利要求基于所述第一版本、所述第一配置项以及所述第一配置项对应的第一参数生成所述版本升级文件,包括:
生成创建指令;
响应所述创建指令,将所述第一版本作为文件名生成初始配置文件,其中,所述初始配置文件的补丁内容为空;
将所述第一配置项以及所述第一配置项对应的第一参数写入所述初始配置文件,得到所述版本升级文件。
4.根据权利要求2所述的方法,其特征在于,所述获取所述第一版本与所述第二版本之间的目标差异信息,包括:
对比所述第一版本以及所述第二版本,得到所述第一版本与所述第二版本之间版本差异值;
在所述版本差异值大于预设阈值的情况下,利用所述版本差异值确定至少一个中间版本;
获取所述中间版本至所述第一版本之间的第一差异信息,以及所述第二版本与所述中间版本之间的第二差异信息;
将所述第一差异信息和所述第二差异信息确定为所述目标差异信息。
5.根据权利要求4所述的方法,其特征在于,所述获取所述中间版本至所述第一版本之间的第一差异信息,以及所述第二版本与所述中间版本之间的第二差异信息,包括:
获取所述中间版本对应的中间配置文件;
解析所述中间配置文件得到第二配置项以及第二配置项对应的第二参数;
对比所述第一配置项和所述第二配置项得到第一差异项,得到第一对比结果;
通过所述第一对比结果确定所述第一差异项,并获取所述第一差异项对应的第一差异参数;
基于所述第一差异项以及所述第一差异参数生成所述第一差异信息;
读取所述当前配置文件中的第三配置项以及所述第三配置项对应的第三参数;
对比所述第三配置项和所述第二配置项得到第二差异项,得到第二对比结果;
通过所述第二对比结果确定所述第二差异项,并获取所述第二差异项对应的第二差异参数;
基于所述第二差异项以及所述第二差异参数生成所述第二差异信息。
6.根据权利要求4所述的方法,其特征在于,在获取所述中间版本至所述第一版本之间的第一差异信息,以及所述第二版本与所述中间版本之间的第二差异信息之后,所述方法还包括:
校验所述第一差异信息以及所述第二差异信息;
在确定所述第一差异信息与所述第二差异信息之间存在更新冲突的情况下,确定存在冲突的第一差异项和第二差异项,并确定冲突类型;
根据所述冲突类型对存在冲突的第一差异项和第二差异项执行处理操作。
7.根据权利要求6所述的方法,其特征在于,所述根据所述冲突类型对存在冲突的第一差异项和第二差异项执行处理操作,包括:
在所述冲突类型为第一类型时,将存在冲突的第一差异项和第二差异项合并;
在所述冲突类型为第二类型时,确定存在冲突的第一差异项和第二差异项中第一优先级的差异项和第二优先级的差异项,并利用第一优先级的差异项对应的差异参数对第二优先级的差异项对应的差异参数进行覆盖,其中,第一优先级高于第二优先级。
8.一种基板管理控制器的版本更新装置,其特征在于,所述装置包括:
响应模块,用于响应针对于基板管理控制器的版本更新任务,获取所述基板管理控制器的版本升级文件;
读取模块,用于读取所述版本升级文件得到第一版本,并获取所述基板管理控制器当前存储的当前配置文件对应的第二版本,其中,所述第二版本为所述基板管理控制器的当前版本;
获取模块,用于获取所述第一版本与所述第二版本之间的目标差异信息,其中,所述目标差异信息包括多个差异项以及每个所述差异项对应的差异参数;
处理模块,用于将所述目标差异信息更新至补丁文件,并基于所述补丁文件以及原始配置信息将所述基板管理控制器升级至第一版本,其中,所述补丁文件包括从原始版本至第二版本之间的至少一个差异信息。
9.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至7中任一项所述的方法。
CN202311576465.7A 2023-11-23 2023-11-23 一种基板管理控制器的版本更新方法、装置、设备及介质 Pending CN117742764A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311576465.7A CN117742764A (zh) 2023-11-23 2023-11-23 一种基板管理控制器的版本更新方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311576465.7A CN117742764A (zh) 2023-11-23 2023-11-23 一种基板管理控制器的版本更新方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN117742764A true CN117742764A (zh) 2024-03-22

Family

ID=90255303

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311576465.7A Pending CN117742764A (zh) 2023-11-23 2023-11-23 一种基板管理控制器的版本更新方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN117742764A (zh)

Similar Documents

Publication Publication Date Title
US10922067B1 (en) System and method for installing, updating and uninstalling applications
US11126426B2 (en) Method and system for implementing software changes using rolling upgrades with reduced downtime
US10430204B2 (en) System and method for cloud provisioning and application deployment
US6301710B1 (en) System and method for creating a substitute registry when automatically installing an update program
US6408434B1 (en) System and method for using a substitute directory to automatically install an update program
US7310801B2 (en) Servicing a component-based software product throughout the software product lifecycle
EP3152650B1 (en) High-speed application for installation on mobile devices for permitting remote configuration of such mobile devices
US11157390B2 (en) Automatic software defect repair
US20140201726A1 (en) Updating firmware compatibility data
US20050229175A1 (en) Hardware agnostic manipulation and management of image resources
US20080244563A1 (en) Dynamic configuration environment for setup
US20190303129A1 (en) System and method for in-service update of software
US8910145B2 (en) Method and device for installing/uninstalling software modules, with centralized resolution of constraints, in aircraft equipment items
US10896109B2 (en) Non-monotonic eventual convergence for desired state configuration
US11816499B2 (en) Transition manager system
CN106484442B (zh) 服务器系统及更新开机映像档的方法
CN117742764A (zh) 一种基板管理控制器的版本更新方法、装置、设备及介质
US20150212866A1 (en) Management system for service of multiple operating environments, and methods thereof
US20150331772A1 (en) Methods for updating diagnostic tools on a hardware device and devices thereof
CN113553110A (zh) 一种服务器的硬件基线自动化修正方法、装置及系统
CN110427199B (zh) 一种bmc和bios配套升级的方法、设备及可读介质
CN113885893A (zh) 一种软件管理工具的配置方法、系统、设备以及介质
CN112328295A (zh) 软件更新方法及装置
CN111459525A (zh) 应用程序更新数据处理系统、方法、存储介质、计算机
CN116149707B (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