When you create the following actions for a bundle, you create bundle dependencies:
A bundle’s Dependency Bundles tree shows the chaining information of that bundle and the action sets that each dependency is in. To view the Dependency Bundles tree in ZENworks Control Center, click the
tab, click a bundle that has dependent bundles, then on the tab, click the link in the row. If the selected bundle does not have dependent bundles, the link displays instead of .The following sections contain additional information:
When working with bundle dependencies, the primary bundle is the bundle for which you are establishing dependencies. The bundles that are defined as dependencies are called the dependent bundles. The following illustration shows this relationship. Application A as the primary bundle with Applications B, C, and D as dependent bundles.
Figure 8-1 Dependency Bundle Tree
A primary bundle can have one dependent application or, as shown in the above example, it can have multiple dependent applications.
In addition, a bundle can be both a primary bundle and a dependent bundle, as shown in the following illustration. Application A as the primary bundle, with Applications B, B1, B2, C, and D as dependent bundles.
Figure 8-2 Dependency Bundle Tree
In the above example, Application B is one of Application A's dependent bundles. At the same time, Application B has dependencies on two bundles, Application B1 and Application B2.
A bundle chain is two or more bundles linked together by dependencies. In its simplest form, a application chain consists of two levels, as shown in the following illustration.
Figure 8-3 Dependency Bundle Tree
However, when bundle dependencies are nested, a bundle chain can grow to include many levels. In the following example, Application A has a dependency on Application B. Application B, in turn, has dependencies on Application B1 and Application B2. As a result, all three bundles (B, B1, B2), in addition to applications C and D, must be present in order for Application A to run.
Figure 8-4 Dependency Bundle Tree
In some cases, a bundle might belong to more than one bundle chain, as in the following example where Application D is a dependent application for both Application A and Application E.
When setting up bundle dependencies, you should be aware of the following:
Bundle Assignment: A dependent bundle does not need to be assigned to devices or users. The primary bundle, however, must be assigned to one or more devices or users for it to function properly.
Distribution and Installation: If dependent bundles have not already been distributed to or installed on the user's workstation, when a user launches or installs a bundle, ZENworks Adaptive Agent distributes and installs them. If ZENworks Adaptive Agent is unable to distribute or install a dependent bundle (for example, the user’s workstation does not meet the dependent bundle’s system requirements), the primary bundle is not launched or installed.
Distribution Through an Add-On Image: If you distribute a bundle through an image add-on, its dependent bundles must be included as another image add-on. Otherwise, the distribution of the primary bundle fails.
Distribution to Disconnected Workstations: For disconnected workstations, the bundles must be force cached to the workstation before it becomes disconnected. If changes are made to dependent bundles after the bundles have been cached to workstations, the version number of the primary bundle must be updated in order to force a re-cache of the bundles.
Launch: Each time a bundle is launched, ZENworks Adaptive Agent performs any launch operations, such as other actions, defined for its dependent bundles.
Reboot/Shutdown: Ensure that the dependent bundle does not include a Reboot / Shutdown action.
Redeploying a Bundle to Refresh Its Dependencies: ZENworks Adaptive Agent distributes a dependent bundle only once, unless the dependent bundle’s version is updated or the distribution or installation is unsuccessful. If you include a dependent bundle in a primary bundle through the Install action set, and if there are changes in the dependent bundle, you need to change the primary bundle to reflect the dependent bundle changes. If you include a dependent bundle in a primary bundle through the launch action set, and if there are changes in the dependent bundle, you need to launch the primary bundle again to reflect the dependent bundle changes.