Abort the installation of the firmware package

By identifying and installing a subset of dependencies during firmware package installation, the problem of system inoperability when firmware package installation is aborted is solved, and the effect of maintaining system operability and reducing downtime when installing is aborted is achieved.

CN111427588BActive Publication Date: 2025-06-27HEWLETT PACKARD ENTERPRISE DEV LP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202010002036.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-01-10
Filing Date
2020-01-02
Publication Date
2025-06-27
Estimated Expiration
2040-01-02

AI Technical Summary

Technical Problem

In the prior art, if the installation is aborted when installing a firmware package, it may cause the component firmware in the system to be damaged, or consume a lot of processing resources and time during rollback, resulting in the system being inoperable.

Method used

Ensure the operability of the system when the installation is aborted by identifying the successfully installed projects, the projects being installed, and their combinations, installing the first subset of the project based on predefined dependency information and completing the installation of this subset before aborting the firmware package installation.

Benefits of technology

Aborting firmware package installation before completion without affecting the operability of successfully installed projects and current installation projects, reducing system downtime during maintenance activities, and improving system stability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN111427588B_ABST
    Figure CN111427588B_ABST
Patent Text Reader

Abstract

Describes an example of aborting the installation of a firmware package. In one example, an abort installation command is received. The firmware package includes items, each item corresponding to one of the firmware of a hardware component and a system software component. Identify a first set of items from the items, where the first set of items includes items that have been successfully installed, items that are in the process of being installed, and one of their combinations. Identify a second set of items from the items, where the second set of items is waiting to be installed. Identify a first subset of items from the second set based on predefined dependency information, where the operability of the items in the first set depends on the items from the first subset of items. Before aborting the installation of the firmware package, install the first subset of items.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] Electronic devices such as computers include multiple hardware components programmed with their respective firmware. The firmware programmed on the hardware components of the electronic device provides control over the hardware components and enables the hardware components to interact with other hardware components of the electronic device. The firmware can be stored in a non-volatile memory associated with the hardware components. The respective firmware of the hardware components can be updated to fix bugs, introduce additional features to the hardware components, and perform version upgrades. Brief Description of the Drawings

[0002] The following detailed description refers to the accompanying drawings, in which:

[0003] Figure 1 A system for aborting the installation of a firmware package according to one example is shown;

[0004] Figure 2 A system for aborting the installation of a firmware package according to another example is shown;

[0005] Figure 3 A method for aborting the installation of a firmware package according to one example is shown;

[0006] Figure 4A and 4B A method for aborting the installation of a firmware package according to another example is shown;

[0007] Figure 5 A system environment for implementing a non-transitory computer-readable medium for aborting the installation of a firmware package according to one example is shown. Detailed Description

[0008] Updating the firmware of a system typically includes installing a firmware package in the system. The system can be a computing system having data processing, data storage, and networking capabilities. Examples of the system include personal computers, servers, controllers, embedded devices, network switches, etc. The system can include different hardware components with dedicated functions. The hardware components refer to the physical and tangible parts of the system, such as management processors, central processing units, random access memories, network interface cards, hard disks, memory cards, etc. Each hardware component can run the respective firmware for controlling the low-level functions of the hardware component. The firmware package is a collection of the respective firmware of the hardware components and system software components. The firmware package can be installed for upgrading the respective firmware of the hardware components and system software components. The system software components include computer programs designed to run the hardware and applications of the computer. The system software components can be referred to as the interface between the hardware and user applications. In one example, the firmware package can include a firmware encapsulation, drivers, agents, and utilities. The firmware package can be installed to support the upgrade of the firmware and system software on servers, controllers, and storage units.

[0009] While installing the firmware package, the corresponding firmware or driver of each hardware component of the system can be upgraded sequentially. The corresponding firmware of the hardware components can be arranged in the installation order and can be installed sequentially one by one in the installation order. If the installation of the firmware package is suddenly aborted, the firmware of the components in the system may be damaged before completion. In some cases, due to the suddenly aborted installation, the firmware of one hardware component can be upgraded to a new version while the firmware of another hardware component can remain at the old version. The new version of the firmware may be incompatible with the old version, rendering the system inoperable.

[0010] To abort the installation of the firmware package before completion, a rollback technique can generally be used. In the rollback technique, when the installation is aborted, all successfully installed firmware packages of the corresponding hardware components will be downgraded to the state that existed before the installation. However, firmware rollback consumes processing resources and can be time-consuming. In addition, in the rollback technique, if the installation of the firmware package is suddenly interrupted during the installation of the firmware that is arranged last in the installation order, the firmware of all previously successfully installed components will be rolled back. This may further increase the consumption of processing resources and time for rollback. In addition, when attempting to downgrade the firmware of a successfully installed hardware component, the rollback operation of the firmware of some hardware components may fail. This may cause some hardware components of the system to run the upgraded version of the firmware while other hardware components of the system may run the earlier version of the firmware. The upgraded version of the firmware may be incompatible with the old version of another firmware, rendering the system inoperable.

[0011] In addition, in another technique, the hard disk of the system can have multiple flash partitions. The installation of the firmware package can be performed on a spare flash partition. After the installation is completed, the spare flash partition can be made active. This technique of using a spare partition to install the firmware package can be used for embedded devices and network switches. However, enterprise servers and system-on-chip (SoC)-based devices may not have flash partitions. In addition, enterprise servers can include hardware components manufactured by different vendors, and these hardware components may not allow the installation of the firmware package in the spare flash partition. Similarly, using flash partitions to install the firmware package may occupy a large amount of storage space of the system. The manufacture of a system with a larger storage space may increase the manufacturing cost.

[0012] The present disclosure supports aborting the installation of a firmware package without adversely affecting the operability of the system. According to the present disclosure, the system can receive an abort installation command while the installation of the firmware package is in progress. The firmware package includes a plurality of items. Each of the plurality of items corresponds to one of the firmware of the hardware components and the system software components of the system. Installing the firmware package in the system refers to the process of transferring computer-readable instructions corresponding to the firmware / drivers of the corresponding hardware components of the system to the memory associated with the corresponding hardware components so that the installed firmware / drivers are ready to execute.

[0013] Identify a first set of items from the plurality of items included in the firmware package. The first set of items includes one of the successfully installed items, the items being installed, and combinations thereof. After the installation of an item is completed, the item is referred to as a successfully installed item, and the item whose installation is being processed when the abort installation command is received is referred to as the currently installed item. In one example, when the abort installation command is received, if there are no successfully installed items, the first set of items may include the currently installed item. Identify a second set of items from the plurality of items, where the second set of items is waiting to be installed. An item that has not been started for installation and is queued for installation when the abort installation command is received is referred to as an item waiting to be installed.

[0014] Identify a first subset of items from the second set of items based on predefined dependency information. The predefined dependency information indicates the operational dependencies between the plurality of items, where the operability of the items from the first set depends on the items from the first subset of items. Before aborting the installation of the firmware package, install the first subset of items. After installing the first subset of items, the installation of the firmware package can be aborted. Aborting the installation of the firmware package refers to terminating the process related to the deployment of the firmware package in the system without fully deploying the firmware package in the system.

[0015] According to the present disclosure, since the first subset of items on which the successfully installed items and the currently installed item depend are installed before aborting the firmware package installation, the successfully installed items and the currently installed item remain operational even after the installation is aborted. Therefore, according to the present disclosure, the installation of the firmware package can be aborted before completion without hindering the operability of the successfully installed items and the currently installed item. Since the successfully installed items and the currently installed item remain operational, the system remains operational even after the installation of the firmware package is aborted before successful completion.

[0016] This can allow for reducing the downtime of the system during maintenance activities. Additionally, during maintenance activities, when the installation of a firmware package takes longer than the planned time, such installation can be aborted without adversely affecting the operability of the system. Further, in the event of a network connection issue or power outage in the data center, according to the present disclosure, the ongoing installation of the firmware package in the server can be aborted while maintaining the operability of the server. Moreover, when a firmware package incompatible with the system is unexpectedly used to upgrade the firmware of a hardware component of the system, the present disclosure can abort the installation of the incompatible firmware package while maintaining the operability of the system. Since the system remains operable even after abruptly aborting the installation of the firmware package, additional overhead for resource personnel to repair the system can also be reduced.

[0017] The following detailed description refers to the accompanying drawings. Whenever possible, the same reference numerals are used in the drawings and the following description to refer to the same or like parts. Although several examples are described in the specification, modifications, adaptations, and other implementations are possible. Therefore, the following detailed description does not limit the disclosed examples. Instead, the appropriate scope of the disclosed examples may be defined by the appended claims.

[0018] According to one example, Figure 1 A system 100 for aborting the installation of a firmware package is shown. The system 100 can be a computing system having data processing, storage, and networking capabilities. Examples of the system 100 include a personal computer, an enterprise server, a network switch, an embedded system, a controller, an SOC-based device, etc.

[0019] The system 100 includes a processor 102 and a memory 104 coupled to the processor 102. The memory 104 stores instructions executable by the processor 102. These instructions, when executed by the processor 102, can cause the processor 102 to initiate the installation of a firmware package. The firmware package includes multiple items. Each item corresponds to the firmware of a hardware component of the system 100 or a system software component of the system 100.

[0020] Examples of hardware components include a management processor, a central processing unit, a random access memory, a network interface card, a hard disk, a memory card, etc. The firmware package can include the firmware associated with each hardware component. Examples of system software components include device drivers that control specific devices (such as a keyboard or a mouse) attachable to the system 100, system utilities (such as a disk defragmenter and system restore), and development tools (such as a compiler and a debugger). In one example, when initiating the installation of the firmware package, the items included in the firmware package can be arranged in order in an installation queue. The installation queue maintains a list of items waiting to be installed.

[0021] While the installation of the firmware package is in progress, the instructions, when executed by the processor 102, can cause the processor 102 to receive an abort installation command from a user or a system administrator. In one example, the abort installation command can be represented by a user input from the user or the system administrator, where the user input indicates that the installation of the firmware package will be aborted.

[0022] After that, upon receiving the abort installation command, the instructions, when executed by the processor 102, cause the processor 102 to identify a first set of items from among the multiple items included in the firmware package. The first set of items includes items that have been successfully installed, items that are in the process of being installed, or both.

[0023] In addition, the instructions, when executed by the processor 102, cause the processor 102 to identify a second set of items from among the multiple items, where the second set of items is waiting to be installed. The second set of items that are waiting to be installed and are queued for installation can also be referred to as ready (stage) installation items.

[0024] In addition, the instructions, when executed by the processor 102, cause the processor 102 to identify a first subset of items from the second set of items based on predefined dependency information. The predefined dependency information indicates the operational dependencies among the multiple items, where the operability of the items from the first set depends on the items from the first subset of items. According to the predefined dependency information, after the first subset of items is installed in the system 100, the hardware components of the system 100 are capable of running the firmware or drivers included in the first set of items. The predefined dependency information can include the functional dependencies between the first set of items and the first set of items. In one example, the predefined dependency information is stored as a dependency list in the firmware image of the firmware package. The firmware image is a binary executable file that can contain instructions corresponding to the firmware of the hardware components of the system 100. The firmware image can be installed to upgrade the firmware version of the hardware components of the system 100. In one example, the dependency list can be stored as a metadata file in one of the extensible markup language (xml) file format, JavaScript object notation (json) file format, and text (txt) file format.

[0025] In addition, the instructions, when executed by the processor 102, cause the processor 102 to install the first subset of items before aborting the installation of the firmware package. Thus, before aborting the installation of the firmware package, the first subset of items is installed, and the operability of the (multiple) successfully installed items and the currently installed items depends on the first subset of items. After installing the first subset of items, the instructions, when executed by the processor 102, cause the processor 102 to abort the installation of the firmware package. For the present disclosure, since the (multiple) successfully installed items and the currently installed items remain operational, the system 100 also remains operable after the installation of the firmware package is aborted before completion.

[0026] Figure 2 FIG. 2 shows a system 200 for aborting the installation of a firmware package according to an example. In one example, the system 200 may be an enterprise server, a network switch, an embedded device, and an SoC-based computing architecture in a data center.

[0027] The system 200 includes a processor 102 and a memory 104 coupled to the processor 102. The memory 104 stores instructions executable by the processor 102. The processor 102 may be implemented as a microprocessor, a microcomputer, a microcontroller, a digital signal processor, a central processing unit, a state machine, a logic circuit, and any device that manipulates signals based on operation instructions. Among other capabilities, the processor 102 is further configured to acquire and execute computer-readable instructions stored in the memory 104. The computer-readable instructions (also referred to as instructions) include instructions 202. The instructions 202 may include routines, programs, components, applications, data structures, etc. that perform specific tasks or implement specific abstract data types. Instructions executable by the processor(s) may also be referred to as processor-executable instructions. Executing instructions to perform a function may be interchangeably referred to as the instructions causing the execution of the function or the instructions enabling the execution of the function.

[0028] Figure 2 The functions of the various elements shown (including any functional blocks labeled as “(a) processor(s)”) may be provided by using dedicated hardware as well as hardware capable of executing software. When provided by a processor, these functions may be provided by a single dedicated processor, a single shared processor, or multiple individual processors (some of which may be shared). Additionally, the explicit use of the term “processor” should not be construed as specifically referring to hardware capable of executing software, but may implicitly include, without limitation, digital signal processor (DSP) hardware, network processors, application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), read only memory (ROM) for storing software, random access memory (RAM), non-volatile memory. Other custom hardware may also be included.

[0029] The memory 104 may include any computer-readable medium known in the art, including, for example, volatile memory (e.g., RAM) and / or non-volatile memory (e.g., EPROM, flash memory, etc.). The instructions 202 include item identification instructions 204 corresponding to instructions stored on a computer-readable medium and executable by the processor to identify a first set of items, a second set of items, a first subset of items, a second subset of items, and a third subset of items. The instructions 202 also include other instructions 205 that supplement applications on the system 200 (e.g., the execution of functions of an operating system).

[0030] Data 208 is particularly used as a repository for storing data that can be acquired, processed, received, or generated during the execution of instructions 202 by processor 102. Data 208 includes installation item data 210, pending item data 212, and dependency data 214. Installation item data 210 stores data related to the firmware or drivers in the successfully installed firmware package. Pending item data 212 stores data related to the firmware or drivers in the firmware package that is waiting to be installed. Dependency data 214 stores data related to the operational dependencies between the firmware / drivers of one hardware component and the firmware / drivers of another hardware component. System 100 also includes other data 216 that can be acquired, processed, received, or generated during the execution of other instructions 206.

[0031] Consider that the installation of a firmware package is in progress in system 200. The firmware package can include items corresponding to the firmware or drivers of the hardware components of system 200. In one example, the installation of the firmware package can be initiated by executing a firmware image. During the installation of the firmware package, each item is arranged in the installation queue in sequence, and based on the order in the installation queue, these items are installed one by one. After a project is successfully installed, the project can be removed from the installation queue or can be marked as a successfully installed project. The project being installed can also be marked as the current installation project in the installation queue. In one example, the installation queue holds a list of items waiting to be installed.

[0032] The items in the firmware package can be operationally dependent on each other. For example, the firmware / drivers of component A can be operationally dependent on the firmware / drivers of component B. In this example, in order to execute the firmware / drivers of component A, the firmware / drivers of component B will be programmed in component B. The operational dependencies between the items in the firmware package can be indicated by predefined dependency information. The predefined dependency information can be stored as a dependency list in a metadata file within the firmware image. The metadata file can be maintained in one of the Extensible Markup Language (xml) file format, JavaScript Object Notation (json) file format, and text (txt) file format.

[0033] During the installation of the firmware package, the system 200 may receive an abort installation command. In one example, the abort installation command may be user input from a user / admin. After receiving the abort installation command, the (multiple) item identification instructions 204, when executed by the processor 102, cause the processor 102 to identify whether the installation of the firmware package is complete. In one example, the (multiple) item identification instructions 204 may cause the processor 102 to check whether an update success message has been generated for the firmware image. If an update success message has been generated, it indicates that the installation of the firmware package has been successfully completed. If an update success message has not been generated, it indicates that the installation of the firmware package is in progress. When it is indicated that the installation of the firmware package has been successfully completed, the installation can be safely aborted.

[0034] When it is indicated that the installation of the firmware package is in progress, the (multiple) item identification instructions 204 are capable of identifying a first set of items from the items included in the firmware package. The first set of items includes one of the successfully installed items, the items being installed, and their combination. In one example, if there are no (multiple) successfully installed items, the first set of items includes the items being installed at the time the abort installation command is received. Additionally, the (multiple) item identification instructions 204 cause a second set of items to be identified from the items included in the firmware package, where the second set of items is waiting to be installed. In one example, the (multiple) item identification instructions 204 cause the processor 102 to obtain an installation queue to obtain a list of the (multiple) successfully installed items, the current installation items, and the (multiple) items waiting to be installed. In one example, the (multiple) successfully installed items and the current installation items are grouped in the first set of items. The (multiple) items waiting to be installed are grouped in the second set of items.

[0035] Further, the execution of the (multiple) item identification instructions 204 by the processor 102 causes the processor 102 to determine whether there is an operational dependency between the first set of items and the second set of items based on predefined dependency information. When it is determined that the first set of items is operationally independent of the second set of items, the (multiple) item identification instructions 204 allow the installation of the firmware package to be aborted.

[0036] When it is determined that there is an operational dependency between the first set of items and the second set of items, the (multiple) item identification instructions 204 cause a first subset of items to be identified from the second set of items based on the predefined dependency information. Identifying the first subset of items causes the operability of the items from the first set of items to depend on the items from the first subset of items. Thus, the first subset of items includes the items that are waiting to be installed and on which the (multiple) successfully installed items or the current installation items are operationally dependent.

[0037] After identifying a first subset of items, the item identification instruction(s) 204 cause a second subset of items to be identified from a second set of items based on predefined dependency information. Identifying the second subset of items enables the first set of items to be operable independently of the second subset of items. Thus, the second subset of items includes items that are waiting to be installed, while the successfully installed item(s) or currently installed item(s) are operationally independent of the second subset of items. The item identification instruction(s) 204 enable the second subset of items to be removed from the installation queue.

[0038] In one example, the item identification instruction(s) 204 identify a third subset of items from the second set of items based on predefined dependency information such that the operability of items from the first subset of items depends on items from the third subset of items. Thus, the third subset of items includes items that are waiting to be installed and on which the items from the first subset of items are operationally dependent. In one example, the third subset of items can be identified by analyzing the predefined dependency information.

[0039] After identifying the third subset of items, the item identification instruction(s) 204 enable the currently installed item to be installed. After successfully installing the currently installed item, the first subset of items is installed, and then the third subset of items is installed. After installing the third subset of items, the item identification instruction(s) 204 are executed by the processor 102, and the item identification instruction(s) 204 cause the processor 102 to abort the installation of the firmware package.

[0040] Figure 3 A method 300 for aborting the installation of a firmware package according to one example is shown. The method 300 can be executed by a system such as system 100 or 200. The method 300 can be implemented using processing resources or computing devices (s) by any suitable hardware, non-transitory machine-readable medium, or combination thereof. In one example, the step(s) of the method 300 can be executed by executing computer-readable instructions such as the item identification instruction(s) 204, which include instructions stored on a medium and executable by processing resources (such as the processor 102) of a system such as system 100 or 200. Additionally, although the method 300 is described in the context of the foregoing system 100 or 200, other suitable systems can also be used to execute the method 300. It should be understood that the processes involved in the method 300 can be executed based on instructions stored in a non-transitory computer-readable medium. The non-transitory computer-readable medium can include, for example, digital memory, magnetic storage media (such as disks and tapes), hard disk drives, or optically readable digital data storage media.

[0041] Reference Figure 3, at block 302, while the installation of a firmware package is in progress in a system such as system 100 or 200, an abort installation command is received. In one example, the abort installation command can correspond to user input provided by a user / admin of the system. The abort installation command indicates that the installation of the firmware package will be aborted. The firmware package includes a plurality of items. Each of the plurality of items corresponds to one of the firmware of a hardware component and a system software component. The operability of an item in the firmware package can depend on another item in the firmware package. For example, the firmware package can include a firmware update for hardware component A and a firmware update for hardware component B. The firmware update for hardware component A can be operationally dependent on the firmware update for hardware component B. Such operational dependency information between the items of the firmware package can be indicated by predefined dependency information. The predefined dependency information can be stored as a dependency list in the firmware image of the firmware package, where the firmware image is used for the upgrade of the firmware version. In one example, the dependency list can be stored as a metadata file in one of the Extensible Markup Language (xml) file format, JavaScript Object Notation (json) file format, and text (txt) file format.

[0042] At block 304, a first set of items is identified from the plurality of items included in the firmware package. The first set of items includes one of the successfully installed items, the items being installed, and their combination. At block 306, a second set of items is identified from the plurality of items. The second set of items includes the items waiting to be installed. In one example, the second set of items can be arranged in order in an installation queue that holds a list of the items waiting to be installed.

[0043] At block 308, a first subset of items is identified from the second set of items based on the predefined dependency information such that the operability of the items from the first set of items depends on the items from the first subset of items. At block 310, the first subset of items is installed before aborting the installation of the firmware package.

[0044] Figure 4A and 4BIllustrated is a method 400 for aborting the installation of a firmware package. Method 400 may be executed by a system such as system 100 or 200. Method 400 may be implemented using (one or more) processing resources or (one or more) computing devices by any suitable hardware, non-transitory machine-readable medium, or a combination thereof. In one example, method 400 may be executed by computer-readable instructions, such as (one or more) item identification instructions 204, which include instructions stored on a medium and executable by a processing resource (such as processor 102) of a system such as system 100 or 200. Additionally, although method 400 is described in the context of the foregoing system 100 or 200, other suitable systems may also be used to execute method 400. It should be understood that the processes involved in method 400 may be executed based on instructions stored in a non-transitory computer-readable medium. The non-transitory computer-readable medium may include, for example, digital memory, magnetic storage media (such as disks and tapes), hard disk drives, or optically readable digital data storage media.

[0045] Referring Figure 4A and 4B , at block 402, the installation of the firmware package may be initiated. The firmware package includes items of firmware that are hardware components or system software components (such as device drivers) of the system. Items in the firmware package may be operationally dependent on another item in the firmware package. The operational dependencies of the items may be predefined in a dependency list that provides predefined dependency information. The installation of the firmware package may be initiated by executing a firmware image. In one example, the predefined dependency information may be stored in the firmware image. During the installation of the firmware package, the items are arranged in an installation queue in sequence, and the installation queue holds a list of items that are waiting to be installed. These items are installed one by one based on the order in the installation queue.

[0046] At block 404, while the installation is in progress, an abort installation command is received from a user / administrator of the system. At block 406, it is checked whether the installation of the firmware package is complete. In one example, the installation queue may be analyzed to determine whether the installation is complete.

[0047] If the installation is not complete, then at block 408 (the "no" branch of block 406), a first set of items is identified from the items of the firmware package. The first set of items includes items that have been successfully installed or are in the process of being installed or both.

[0048] At block 410, a second set of items is identified from the items in the firmware package. The second set of items is waiting to be installed. At block 412, it is checked whether there is an operational dependency between the first set of items and the second set of items based on the predefined dependency information. When it is determined that the first set of items is operationally independent of the second set of items, the installation of the firmware package is aborted.

[0049] When it is determined that an item from the first set depends on an item from the second set, at block 414, a first subset of items is identified from the second set of items based on predefined dependency information. The operability of the items from the first set depends on the items from the first subset of items.

[0050] After identifying the first subset of items, at block 416, a second subset of items can be identified from the second set of items based on predefined dependency information such that the operability of the first set of items is independent of the second subset of items. At block 418, the second subset of items is removed from the installation queue.

[0051] At block 420, a third subset of items is identified from the second set of items based on predefined dependency information such that the operability of the items from the first subset depends on the items from the third subset of items. At block 422, the installation of the item currently being installed is completed. At block 424, the first subset of items is installed. At block 426, the third subset of items is installed. After successfully installing the third subset of items, at block 428, the installation of the firmware package is aborted.

[0052] Figure 5 A system environment 500 for an non-transitory computer-readable medium for aborting the installation of a firmware package according to one example implementation is shown. In one example, the system environment 500 includes (a) processor(s) 502 communicatively coupled to a non-transitory computer-readable medium 504 via a communication link 506. In one example, the system environment 500 can be a system such as system 100 or 200. In one example, (a) processor(s) 502 can have one or more processing resources for obtaining and executing computer-readable instructions from the non-transitory computer-readable medium 504.

[0053] The non-transitory computer-readable medium 504 can be, for example, an internal memory device or an external memory device. In one example implementation, the communication link 506 can be a direct communication link, such as any memory read / write interface.

[0054] (A) processor(s) 502 and the non-transitory computer-readable medium 504 can also be communicatively coupled to a data source 508 via a network such as the Internet. The data source 508 can include, for example, the memory of a system such as system 100 or 200.

[0055] In one example implementation, the non-transitory computer-readable medium 504 includes a set of computer-readable instructions that can be accessed by (a) processor(s) 502 via the communication link 506 and subsequently executed to perform actions for aborting the installation of a firmware package.

[0056] Reference Figure 5, in one example, the non-transitory computer-readable medium 504 includes instructions 510 that cause the (one or more) processors 502 to receive an abort installation command while the installation of the firmware package is in progress. The firmware package includes a plurality of items, and each of the plurality of items corresponds to one of the firmware of the hardware components and the system software components. The items may be operationally dependent on each other. The firmware package may include predefined dependency information indicating the operational dependencies between the items. In one example, the predefined dependency information may be stored as a dependency list in the firmware image of the firmware package, where the firmware image is used for the upgrade of the firmware version.

[0057] In addition, the non-transitory computer-readable medium 504 includes instructions 512 that cause the (one or more) processors 502 to identify a first set of items from the items included in the firmware package. The first set of items includes one of the successfully installed items, the items being installed, or a combination thereof.

[0058] The non-transitory computer-readable medium 504 includes instructions 514 that cause the (one or more) processors 502 to identify a second set of items from the items included in the firmware package, where the second set of items is waiting to be installed. In addition, in one example, the non-transitory computer-readable medium 504 includes instructions that cause the (one or more) processors 502 to determine whether there is an operational dependency between the first set of items and the second set of items based on the predefined dependency information. When it is determined that the first set of items is operationally independent of the second set of items, the non-transitory computer-readable medium 504 includes instructions that cause the (one or more) processors 502 to abort the installation of the firmware package.

[0059] When it is determined that the items from the first set of items are operationally dependent on the items from the second set of items, the non-transitory computer-readable medium 504 includes instructions 516 that cause the (one or more) processors 502 to identify a first subset of items from the second set of items based on the predefined dependency information, such that the operability of the items from the first set depends on the items from the first subset of items.

[0060] In one example, the non-transitory computer-readable medium 504 includes instructions that cause the (one or more) processors 502 to identify a second subset of items from the second set of items based on the predefined dependency information after identifying the first subset of items. The operability of the first set of items is independent of the second subset of items. The non-transitory computer-readable medium 504 includes instructions that cause the (one or more) processors 502 to delete the second subset of items from the installation queue.

[0061] In another example, the non-transitory computer-readable medium 504 includes instructions that cause the (one or more) processors 502 to identify a third subset of items from the second set of items based on the predefined dependency information, such that the operability of the items from the first subset depends on the items from the third subset of items.

[0062] The non-transitory computer-readable medium 504 includes instructions 518 that cause the (multiple) processors 502 to install the item being installed. Additionally, the non-transitory computer-readable medium 504 includes instructions 520 that cause the (multiple) processors 502 to install a first subset of items before aborting the installation of the firmware package. After installing the first subset of items, the installation of the firmware package can be aborted without adversely affecting the operability of the system.

[0063] Although implementations of the subject matter have been described in language specific to structural features and / or methodological acts, it is to be noted that the subject matter need not be limited to the specific features or acts described. Rather, the specific features and acts are disclosed and explained in the context of some implementations of the subject matter.

Claims

1. A method for aborting the installation of a firmware package, the method comprising: Receiving an abort installation command while the installation of the firmware package is in progress, the firmware package including a plurality of items, each of the plurality of items corresponding to one of the firmware of a hardware component and a system software component; Identifying a first set of items from the plurality of items, wherein the first set of items includes one of successfully installed items, items being installed, and combinations thereof; Identifying a second set of items from the plurality of items, wherein the second set of items is waiting for installation; Identifying a first subset of items from the second set of items based on predefined dependency information, the predefined dependency information indicating a functional correlation between the first set of items and the first subset of items, and indicating an operational dependency between the plurality of items, wherein the operability of items from the first set of items depends on items from the first subset of items, and wherein the predefined dependency information is stored as a dependency list in a metadata file within a firmware image of the firmware package; After identifying the first subset of items, identifying a second subset of items from the second set of items based on the predefined dependency information, wherein the operability of the first set of items is independent of the second subset of items; Deleting the second subset of items from an installation queue, wherein the installation queue holds a list of items waiting for installation; And Before aborting the installation of the firmware package, installing the first subset of items.

2. The method according to claim 1, further comprising: After the first subset of items is installed, aborting the installation of the firmware package.

3. The method according to claim 1, further comprising: Before identifying the first subset of items, determining whether there is an operational dependency between the first set of items and the second set of items based on the predefined dependency information; And When it is determined that the first set of items is operationally independent of the second set of items, aborting the installation of the firmware package.

4. The method according to claim 1, further comprising: Identifying a third subset of items from the second set of items based on the predefined dependency information, wherein the operability of items from the first subset depends on items from the third subset of items; And Before aborting the installation of the firmware package, installing the third subset of items.

5. The method according to claim 1, further comprising: Before installing the first subset of items, installing the items being installed.

6. The method according to claim 1, wherein the firmware image is used for firmware version upgrade.

7. The method according to claim 6, wherein the dependency list is stored as a metadata file in one of an Extensible Markup Language xml file format, a JavaScript Object Notation json file format, and a text txt file format.

8. A system, comprising: A processor; And A memory coupled to the processor, the memory storing instructions executable by the processor to: When a command to abort the installation is received while the installation of the firmware package is in progress, identify a first set of items from among a plurality of items included in the firmware package, each of the plurality of items corresponding to one of the firmware of the hardware components and system software components of the system, wherein the first set of items includes one of the successfully installed items, the items being installed, and combinations thereof; Identify a second set of items from among the plurality of items, wherein the second set of items is waiting to be installed; Identify a first subset of items from the second set of items based on predefined dependency information, the predefined dependency information indicating a functional correlation between the first set of items and the first subset of items and indicating an operational dependency between the plurality of items, wherein the operability of items from the first set of items depends on items from the first subset of items, and wherein the predefined dependency information is stored as a dependency list in a metadata file within the firmware image of the firmware package; Install the first subset of items; After identifying the first subset of items, identify a second subset of items from the second set of items based on the predefined dependency information, wherein the operability of the first set of items is independent of the second subset of items; Delete the second subset of items from the installation queue, wherein the installation queue holds a list of items waiting to be installed; And After the first subset of items is installed, abort the installation of the firmware package.

9. The system according to claim 8, wherein the processor is further configured to: Before identifying the first subset of items, determine whether there is an operational dependency between the first set of items and the second set of items based on the predefined dependency information; and When it is determined that the first set of items is operationally independent of the second set of items, abort the installation of the firmware package.

10. The system according to claim 8, wherein the processor is further configured to: Identify a third subset of items from the second set of items based on the predefined dependency information, wherein the operability of items from the first subset depends on items from the third subset of items; and Install the third subset of items before aborting the installation of the firmware package.

11. The system according to claim 8, wherein the processor is further configured to: Install the items being installed before installing the first subset of items.

12. The system according to claim 9, wherein the firmware image is used for firmware version upgrade.

13. The system according to claim 12, wherein the dependency list is stored as a metadata file in one of the extensible markup language xml file format, JavaScript object notation json file format, and text txt file format.

14. A non-transitory computer-readable medium, comprising computer-readable instructions that, when executed by a processor, cause the processor: Receiving an abort installation command while the installation of a firmware package is in progress, the firmware package including a plurality of items, each of the plurality of items corresponding to one of the firmware of a hardware component and a system software component; Identifying a first set of items from the plurality of items, wherein the first set of items includes one of successfully installed items, items being installed, and combinations thereof; Identifying a second set of items from the plurality of items, wherein the second set of items is waiting for installation; Identifying a first subset of items from the second set of items based on predefined dependency information, the predefined dependency information indicating a functional correlation between the first set of items and the first subset of items, and indicating an operational dependency between the plurality of items, wherein the operability of items from the first set of items depends on items from the first subset of items, and wherein the predefined dependency information is stored as a dependency list in a metadata file within a firmware image of the firmware package; Installing the items being installed; After identifying the first subset of items, identifying a second subset of items from the second set of items based on the predefined dependency information, wherein the operability of the first set of items is independent of the second subset of items; Deleting the second subset of items from an installation queue, wherein the installation queue holds a list of items waiting for installation; And Before aborting the installation of the firmware package, installing the first subset of items.

15. The non-transitory computer-readable medium according to claim 14, wherein the computer-readable medium, when executed by the processor, further causes the processor to: Before identifying the first subset of items, determine whether there is an operational dependency between the first set of items and the second set of items based on the predefined dependency information; and When it is determined that the first set of items is operationally independent of the second set of items, abort the installation of the firmware package.

16. The non-transitory computer-readable medium according to claim 14, wherein the computer-readable instructions, when executed by the processor, further cause the processor to: Identify a third subset of items from the second set of items based on the predefined dependency information, wherein the operability of items from the first subset depends on items from the third subset of items; and Before aborting the installation of the firmware package, install the third subset of items.

17. The non-transitory computer-readable medium according to claim 14, wherein the firmware image is used for firmware version upgrade.

Citation Information

Patent Citations

  • Selective loading of components within a node to speed up maintenance actions

    CN106598637A

  • Methods and apparatus for software lifecycle management of a virtual computing environment

    CN107810475A