mirror of
https://github.com/Telecominfraproject/OpenNetworkLinux.git
synced 2026-01-28 10:21:23 +00:00
- Support ONIE firmware upgrade packages.
- Use the new onl.grub interface
This commit is contained in:
@@ -25,8 +25,12 @@ class FirmwareUpgrade(ubase.BaseOnieUpgrade):
|
||||
self.load_manifest(os.path.join(sysconfig.upgrade.firmware.package.dir, "manifest.json"))
|
||||
|
||||
def do_upgrade(self, forced=False):
|
||||
self.install_onie_updater(sysconfig.upgrade.firmware.package.dir,
|
||||
self.manifest['updater'])
|
||||
if self.manifest.get('fwpkg', False):
|
||||
self.onie_fwpkg_add(os.path.join(sysconfig.upgrade.firmware.package.dir,
|
||||
self.manifest['updater']))
|
||||
else:
|
||||
self.install_onie_updater(sysconfig.upgrade.firmware.package.dir,
|
||||
self.manifest['updater'])
|
||||
self.initiate_onie_update()
|
||||
|
||||
|
||||
|
||||
@@ -391,24 +391,23 @@ class BaseOnieUpgrade(BaseUpgrade):
|
||||
dst = os.path.join(self.ONIE_UPDATER_PATH, f)
|
||||
self.copyfile(src, dst)
|
||||
|
||||
def onie_fwpkg_add(self, pkg):
|
||||
import onl.grub
|
||||
onl.grub.onie_fwpkg("add %s" % pkg)
|
||||
onl.grub.onie_fwpkg("show")
|
||||
|
||||
def initiate_onie_update(self):
|
||||
self.logger.info("Initiating %s Update." % self.Name)
|
||||
|
||||
if self.arch == 'ppc':
|
||||
# Initiate update
|
||||
self.fw_setenv('onie_boot_reason', 'update')
|
||||
self.reboot()
|
||||
|
||||
elif self.arch == 'x86_64':
|
||||
OB = "/mnt/onie-boot"
|
||||
self.mount(OB, label="ONIE-BOOT")
|
||||
if os.system("/mnt/onie-boot/onie/tools/bin/onie-boot-mode -o update") != 0:
|
||||
self.abort("Could not set ONIE Boot Mode to Update. Upgrade cannot continue.")
|
||||
self.umount(OB)
|
||||
|
||||
with OnlMountContextReadWrite("ONL-BOOT", logger=None):
|
||||
with open("/mnt/onl/boot/grub/grub.cfg", "a") as f:
|
||||
f.write("set default=ONIE\n")
|
||||
import onl.grub
|
||||
onl.grub.onie_boot_mode_set("update")
|
||||
onl.grub.boot_onie()
|
||||
self.reboot()
|
||||
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user