mirror of
https://github.com/Telecominfraproject/OpenNetworkLinux.git
synced 2025-12-25 17:27:01 +00:00
Check for the existance of the onie-fwpkg before attempting upgrade and provide a useful error message.
This commit is contained in:
@@ -22,6 +22,10 @@ def _makedirs(d):
|
||||
if not os.path.exists(d):
|
||||
os.makedirs(d)
|
||||
|
||||
def onie_fwpkg_exists():
|
||||
with OnlOnieBootContext() as ob:
|
||||
return os.path.exists(os.path.join(ob.directory, "onie/tools/bin/onie-fwpkg"))
|
||||
|
||||
def onie_fwpkg(arguments):
|
||||
with OnlOnieBootContext() as ob:
|
||||
# This is necessary if we've upgraded ONIE but haven't booted into it yet...
|
||||
@@ -35,9 +39,3 @@ def boot_entry_set(index):
|
||||
|
||||
def boot_onie():
|
||||
return boot_entry_set(1)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -29,6 +29,11 @@ class FirmwareUpgrade(ubase.BaseOnieUpgrade):
|
||||
|
||||
def do_upgrade(self, forced=False):
|
||||
if self.manifest.get('fwpkg', False):
|
||||
if not self.onie_fwpkg_exists():
|
||||
# An ONIE upgrade is probably required.
|
||||
print "The firmware cannot be upgraded because the current ONIE version is not correct. Please perform an ONIE upgrade first."
|
||||
self.abort()
|
||||
|
||||
self.onie_fwpkg_add(os.path.join(sysconfig.upgrade.firmware.package.dir,
|
||||
self.manifest['updater']))
|
||||
else:
|
||||
@@ -56,4 +61,3 @@ class FirmwareUpgrade(ubase.BaseOnieUpgrade):
|
||||
|
||||
def do_no_upgrade(self):
|
||||
self.clean_onie_updater()
|
||||
|
||||
|
||||
@@ -391,6 +391,10 @@ class BaseOnieUpgrade(BaseUpgrade):
|
||||
dst = os.path.join(self.ONIE_UPDATER_PATH, f)
|
||||
self.copyfile(src, dst)
|
||||
|
||||
def onie_fwpkg_exists(self):
|
||||
import onl.grub
|
||||
return onl.grub.onie_fwpkg_exists()
|
||||
|
||||
def onie_fwpkg_add(self, pkg):
|
||||
import onl.grub
|
||||
onl.grub.onie_fwpkg("-f purge")
|
||||
|
||||
Reference in New Issue
Block a user