Skip to content

Commit c15aebc

Browse files
authored
[cisco|express-boot]: Add support for cisco express boot in sonic-host-services (#90)
* add express-boot support * add ut test coverage
1 parent c05d43e commit c15aebc

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

scripts/determine-reboot-cause

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ REBOOT_TYPE_KEXEC_FILE = "/proc/cmdline"
3838
# To extract the commom part of them, we should have the following PATTERN
3939
REBOOT_TYPE_KEXEC_PATTERN_WARM = ".*SONIC_BOOT_TYPE=(warm|fastfast).*"
4040
REBOOT_TYPE_KEXEC_PATTERN_FAST = ".*SONIC_BOOT_TYPE=(fast|fast-reboot).*"
41+
REBOOT_TYPE_KEXEC_PATTERN_EXPRESS = ".*SONIC_BOOT_TYPE=(express).*"
4142

4243
REBOOT_CAUSE_UNKNOWN = "Unknown"
4344
REBOOT_CAUSE_NON_HARDWARE = "Non-Hardware"
@@ -58,6 +59,9 @@ def parse_warmfast_reboot_from_proc_cmdline():
5859
m = re.search(REBOOT_TYPE_KEXEC_PATTERN_FAST, cause_file_kexec)
5960
if m and m.group(1):
6061
return 'fast-reboot'
62+
m = re.search(REBOOT_TYPE_KEXEC_PATTERN_EXPRESS, cause_file_kexec)
63+
if m and m.group(1):
64+
return 'express-reboot'
6165
return None
6266

6367

tests/determine-reboot-cause_test.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,10 @@
3939

4040
EXPECTED_PARSE_WARMFAST_REBOOT_FROM_PROC_CMDLINE = "warm"
4141

42-
PROC_CMDLINE_CONTENTS = """\
43-
BOOT_IMAGE=/image-20191130.52/boot/vmlinuz-4.9.0-11-2-amd64 root=/dev/sda4 rw console=tty0 console=ttyS1,9600n8 quiet net.ifnames=0 biosdevname=0 loop=image-20191130.52/fs.squashfs loopfstype=squashfs apparmor=1 security=apparmor varlog_size=4096 usbcore.autosuspend=-1 module_blacklist=gpio_ich SONIC_BOOT_TYPE=warm"""
42+
PROC_CMDLINE_EXPRESS_BOOT_CONTENTS = """\
43+
BOOT_IMAGE=/image-20191130.52/boot/vmlinuz-4.9.0-11-2-amd64 root=/dev/sda4 rw console=tty0 console=ttyS1,9600n8 quiet net.ifnames=0 biosdevname=0 loop=image-20191130.52/fs.squashfs loopfstype=squashfs apparmor=1 security=apparmor varlog_size=4096 usbcore.autosuspend=-1 module_blacklist=gpio_ich SONIC_BOOT_TYPE=express"""
44+
45+
EXPECTED_PARSE_EXPRESS_REBOOT_FROM_PROC_CMDLINE = "express-reboot"
4446

4547
REBOOT_CAUSE_CONTENTS = """\
4648
User issued 'warm-reboot' command [User: admin, Time: Mon Nov 2 22:37:45 UTC 2020]"""
@@ -81,6 +83,11 @@ def test_parse_warmfast_reboot_from_proc_cmdline(self):
8183
result = determine_reboot_cause.parse_warmfast_reboot_from_proc_cmdline()
8284
assert result == EXPECTED_PARSE_WARMFAST_REBOOT_FROM_PROC_CMDLINE
8385
open_mocked.assert_called_once_with("/proc/cmdline")
86+
express_mocked = mock.mock_open(read_data=PROC_CMDLINE_EXPRESS_BOOT_CONTENTS)
87+
with mock.patch("{}.open".format(BUILTINS), express_mocked):
88+
result = determine_reboot_cause.parse_warmfast_reboot_from_proc_cmdline()
89+
assert result == EXPECTED_PARSE_EXPRESS_REBOOT_FROM_PROC_CMDLINE
90+
express_mocked.assert_called_once_with("/proc/cmdline")
8491

8592
def test_find_software_reboot_cause_user(self):
8693
with mock.patch("os.path.isfile") as mock_isfile:

0 commit comments

Comments
 (0)