1#!/usr/bin/env python3 2 3r""" 4This module contains functions for tftp update. 5""" 6 7import gen_print as gp 8import state as st 9from robot.libraries.BuiltIn import BuiltIn 10 11 12def get_pre_reboot_state(): 13 r""" 14 Get and return a custom state which is comprised of the 15 st.default_req_states plus epoch_seconds. 16 """ 17 18 global state 19 20 req_states = ["epoch_seconds"] + st.default_req_states 21 22 gp.qprint_timen("Get system state.") 23 state = st.get_state(req_states=req_states, quiet=0) 24 gp.qprint_var(state) 25 return state 26 27 28def wait_for_reboot(start_boot_seconds, wait_state_check=True): 29 r""" 30 Wait for the BMC to complete a previously initiated reboot. 31 32 Description of argument(s): 33 start_boot_seconds The time that the boot test started. The format is the 34 epoch time in seconds, i.e. the number of seconds since 35 1970-01-01 00:00:00 UTC. This value should be obtained 36 from the BMC so that it is not dependent on any kind of 37 synchronization between this machine and the target BMC 38 This will allow this program to work correctly even in 39 a simulated environment. This value should be obtained 40 by the caller prior to initiating a reboot. It can be 41 obtained as follows: 42 state = st.get_state(req_states=['epoch_seconds']) 43 wait_state_check By default check the state, ignore if set to False. 44 45 """ 46 47 st.wait_for_comm_cycle(int(start_boot_seconds)) 48 49 gp.qprintn() 50 if wait_state_check: 51 st.wait_state( 52 st.standby_match_state, wait_time="10 mins", interval="10 seconds" 53 ) 54