When trying to deploy a probe to a robot which reports to a downstream hub with its own distsrv the
deployment may fail with a 'Dependency problem' error.
Multiple Hubs with the Upstream Hub's distsrv configured to use 'Use remote distsrv on distribution' and the
remote distsrv is not using its local archive.
When the environment is configured to use 'Use remote distsrv on distribution' and the downstream distsrv is not using its
local archive (meaning it will pull the package from the upstream distsrv) the downstream distsrv will check and validate
that the upstream distsrv has ALL dependencies from ALL tabs present.
In the following log snippet the websphere 1.80 package was being deployed to a downstream x86 Linux robot. The downstream
distsrv failed the deployment as it could not find the zLinux jre package in the upstream archive. Although the deployment is
going to an Intel based Linux system the remote distsrv looks for all dependencies to be present in the up stream archive.
ex. downstream distsrv.log snippet
Feb 6 13:43:12:800 [7968] distsrv: ExtractVersion - 1.80 -> 1.800000
Feb 6 13:43:12:800 [1272] distsrv: --- CheckRemoteJobAdd done
Feb 6 13:43:12:801 [7968] distsrv: TmpPackageFile (websphere, 1.80, 1) -> websphere=1.80.zip
Feb 6 13:43:12:801 [7968] distsrv: Enter: unzip_this_file: is_defined _WIN32
Feb 6 13:43:12:803 [7968] distsrv: unzip successful for: jobs/<robot>/websphere=1.80.zip
Feb 6 13:43:12:803 [7968] distsrv: VerifyCrC 8107 bytes read by nimMD5Sum
Feb 6 13:43:12:803 [7968] distsrv: cfgReader file open: C:\Nimsoft/archive/temp_d6/info.pkg
Feb 6 13:43:12:804 [7968] distsrv: cfgReader file close: C:\Nimsoft/archive/temp_d6/info.pkg
Feb 6 13:43:12:805 [7968] distsrv: TmpPackageFile - name = jre_zlinux, version = 1.70, match = 1
Feb 6 13:43:12:805 [7968] distsrv: ExtractVersion - 1.70 -> 1.700000
Feb 6 13:43:12:805 [7968] distsrv: TmpPackageFile (jre_zlinux, 1.70, 1) -> jre_zlinux=1.70.zip
Feb 6 13:43:12:805 [7968] distsrv: RequestQueueGetResult - id=105: not found
Feb 6 13:43:12:805 [7968] distsrv: RequestQueueRemove - id=105
Feb 6 13:43:12:805 [7968] distsrv: do_dependency_check - websphere to <robot> Error when attempting to fetch package jre_zlinux - not found - will let the distribution fail
Feb 6 13:43:12:805 [7968] distsrv: TmpPackageFile - name = jre_solaris, version = 1.6.0, match = 1
Feb 6 13:43:12:805 [7968] distsrv: ExtractVersion - 1.6.0 -> 1.060000
Feb 6 13:43:12:805 [7968] distsrv: TmpPackageFile (jre_solaris, 1.6.0, 1) -> jre_solaris=1.06.zip
Feb 6 13:43:12:805 [7968] distsrv: Executing 'job_remote_request' to <robot> (source=<robot>, package=jre_solaris)...
Feb 6 13:43:12:805 [7968] distsrv: RequestQueueAdd - address=/<robot>, request=job_remote_request, timeout=60
Feb 6 13:43:12:805 [7968] distsrv: request for jre_solaris performed (0/1)
Feb 6 13:43:12:805 [7968] distsrv: websphere - Some dependency package is not yet fetched
Ensure that the upstream archive contains all the necessary dependency packages. This can be done by editing the package in the IM
Client and checking the 'Dependencies' Tab under each OS section Tab and then downloading any missing dependencies.
From IM of the Upstream Hub's distsrv probe
- select Setup tab then Advanced settings
- Then disable the "Use remote distsrv on distribution" checkbox
- Enable " Accept remote distributions" and " Use local archive for accepted remote distributions".
Note: The downstream hub will only deploy the necessary packages for the target robot OS. For example even
though in this example it checks for jre_zlinux it will not deploy this package when the target is Intel Linux. The
distsrv would check for java_jre 1.60 or greater as specified under the Linux Tab
An alternative would be to populate the downstream archive with the necessary packages (robot, websphere 1.80, java_jre) and then
configure the downstream distsrv to use its local archive ('Use local archive for accepted remote distributions'). When this is enabled
it will not check every dependency, it will only check the dependencies for the target OS in its local archive.