openconfig / featureprofiles

Feature Profiles are groups of OpenConfig paths and tests which verify their behavior
Apache License 2.0
52 stars 149 forks source link

complete_chassis_reboot_test.go : enhancement request #210

Closed yashikakn closed 2 years ago

yashikakn commented 2 years ago

Hi,

Post reboot, the script is not waiting for all the components on the system to be online and hence the version check done using ComponentAny() [here] (https://github.com/openconfig/featureprofiles/blob/c061c57c24bd1b2847522ac9b11c5fef0c8cccf6/feature/gnoi/tests/complete_chassis_reboot/complete_chassis_reboot_test.go#L175) will result in mismatch and the script fails. Could you please add some checks to take care of this.

Failure logs snippet:

complete_chassis_reboot_test.go:103: DUT software version: [15.01 15.01 21.2X80-D23.5-EVO 21.2X80-D23.5-EVO 21.2X80-D23.5-EVO 21.2X80-D23.5-EVO 21.2X80-D23.5-EVO 21.2X80-D23.5-EVO 21.2X80-D23.5-EVO 21.2X80-D23.5-EVO 21.2X80-D23.5-EVO 21.2X80-D23.5-EVO 21.2X80-D23.5-EVO 21.2X80-D23.5-EVO 21.2X80-D23.5-EVO 21.2X80-D23.5-EVO 21.2X80-D23.5-EVO 21.2X80-D23.5-EVO 21.2X80-D23.5-EVO]

complete_chassis_reboot_test.go:178: DUT software version after reboot: [15.01 15.01 21.2X80-D23.5-EVO] complete_chassis_reboot_test.go:180: Software version differed (-want +got): []string{ "15.01", "15.01",

Thanks.

dplore commented 2 years ago

@yashikakn It seems unusual that the NOS would change which version is reported. In a reboot scenario I would expect no response (because the system is still booting) or the expected version.

However, if you like, you may submit a pull request to update the test code with a suggestion to handle this scenario. Note, any update must be generalizable against all openconfig compliant implementations.

yashikakn commented 2 years ago

Hi @dplore, Thanks for your response. I will work on the test code to handle this scenario.

Thanks.

dplore commented 2 years ago

Thanks. One idea for handling this is to add retries and increase the wait time to get a valid response. Not sure if there is a better idea however.

yashikakn commented 2 years ago

I'm exploring on using "/components/component[name=*]/state/oper-status" value to check if all the components are 'ACTIVE' before doing the version check.