Install packages from platform backup if prestage iso is absent
When the %pre code in post_miniboot_controller.cfg kickstart is run, it checks if a prestage iso is present; if one is not, then it attempts to download from the systemcontroller. The solution is to add /opt/platform-backup/<release-id> as a repo of higher priority than download, but lesser than prestage-iso, in the %pre section in post_miniboot_controller.cfg. Test Plan PASS: Verify that packages are retrieved from /opt/platform-backup/<release-id> if they have been prestaged PASS: Verify that packages are downloaded from systemcontroller for installation if packages are not prestaged in /opt/platform-backup/<release-id> Closes-Bug: 1963709 Change-Id: Ibd2fe8d555c47da16e181b03703374bfd73731e3 Signed-off-by: Shrikumar Sharma <shrikumar.sharma@windriver.com>
This commit is contained in:
parent
5635352596
commit
710452d2e5
|
@ -10,6 +10,7 @@ BACKUP_DEVICE=/dev/disk/by-partlabel/${BACKUP_PART_LABEL}
|
||||||
BACKUP_MOUNT=/mnt/${STAGING_DIR}
|
BACKUP_MOUNT=/mnt/${STAGING_DIR}
|
||||||
BOOTIMAGE_ISO=""
|
BOOTIMAGE_ISO=""
|
||||||
BOOTIMAGE_MOUNT=/mnt/bootimage
|
BOOTIMAGE_MOUNT=/mnt/bootimage
|
||||||
|
PRESTAGE_DIR=${BACKUP_MOUNT}/${SW_VERSION}
|
||||||
KS="Miniboot pre:"
|
KS="Miniboot pre:"
|
||||||
|
|
||||||
wlog "${KS} local install check"
|
wlog "${KS} local install check"
|
||||||
|
@ -125,20 +126,42 @@ if [ "${iso_mount}" = false ] ; then
|
||||||
wlog "${KS} Prestage ISO is not available"
|
wlog "${KS} Prestage ISO is not available"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Make sure the prestage directory exists, as well as the required subdirectories.
|
||||||
|
exists_prestage=false
|
||||||
|
if [ ! -e ${PRESTAGE_DIR} ] || [ ! -e ${PRESTAGE_DIR}/Packages ] || [ ! -e ${PRESTAGE_DIR}/repodata ]; then
|
||||||
|
exists_prestage=false
|
||||||
|
else
|
||||||
|
exists_prestage=true
|
||||||
|
fi
|
||||||
|
|
||||||
#
|
#
|
||||||
# This controls where the packages come from.
|
# This controls where the packages come from.
|
||||||
# Lower cost has higher priority ; making local install preferred.
|
# Lower cost has higher priority ; making local install preferred.
|
||||||
#
|
#
|
||||||
# If ${BOOTIMAGE_MOUNT} exists then install from local iso - Local Install
|
# If ${BOOTIMAGE_MOUNT} exists then install from local iso - Local Install
|
||||||
# Otherwise, they are fetched from platform backup.
|
# Otherwise, they are fetched from platform backup if the Packages have been
|
||||||
|
# prestaged.
|
||||||
# If this fails, they are fetched from the System Controller - Remote Install
|
# If this fails, they are fetched from the System Controller - Remote Install
|
||||||
#
|
#
|
||||||
cat << EOF > /tmp/repo-include
|
if [ "${exists_prestage}" = true ]; then
|
||||||
repo --name=local-base --cost=100 --baseurl=file://${BOOTIMAGE_MOUNT}/
|
wlog "${KS} Prestage directory found: ${PRESTAGE_DIR}"
|
||||||
repo --name=local-updates --cost=100 --baseurl=file://${BOOTIMAGE_MOUNT}/patches/
|
cat << EOF > /tmp/repo-include
|
||||||
repo --name=remote-base --cost=200 --baseurl=xxxHTTP_URLxxx/
|
repo --name=local-base --cost=100 --baseurl=file://${BOOTIMAGE_MOUNT}/
|
||||||
repo --name=remote-updates --cost=200 --baseurl=xxxHTTP_URLxxx/patches/
|
repo --name=local-updates --cost=100 --baseurl=file://${BOOTIMAGE_MOUNT}/patches/
|
||||||
|
repo --name=local-base --cost=200 --baseurl=file://${PRESTAGE_DIR}/
|
||||||
|
repo --name=local-updates --cost=200 --baseurl=file://${PRESTAGE_DIR}/patches/
|
||||||
|
repo --name=remote-base --cost=300 --baseurl=xxxHTTP_URLxxx/
|
||||||
|
repo --name=remote-updates --cost=300 --baseurl=xxxHTTP_URLxxx/patches/
|
||||||
EOF
|
EOF
|
||||||
|
else
|
||||||
|
wlog "${KS} Packages will either be retrieved from prestage iso or downloaded"
|
||||||
|
cat << EOF > /tmp/repo-include
|
||||||
|
repo --name=local-base --cost=100 --baseurl=file://${BOOTIMAGE_MOUNT}/
|
||||||
|
repo --name=local-updates --cost=100 --baseurl=file://${BOOTIMAGE_MOUNT}/patches/
|
||||||
|
repo --name=remote-base --cost=200 --baseurl=xxxHTTP_URLxxx/
|
||||||
|
repo --name=remote-updates --cost=200 --baseurl=xxxHTTP_URLxxx/patches/
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
%end
|
%end
|
||||||
|
|
||||||
# Repository arguments from %pre
|
# Repository arguments from %pre
|
||||||
|
|
Loading…
Reference in New Issue