Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update 1 cloud-init case per rebase build new change #349

Merged
merged 1 commit into from
Dec 20, 2023

Conversation

zhaohuijuan
Copy link
Collaborator

Update the case per RHEL-17889 - [rhel-9] Align with upstream to standardise module names in cloud.cfg to only use underscore

@zhaohuijuan
Copy link
Collaborator Author

Update another check for "cloud-init status" per the new change in cloud-init-23.4.
Do not check the return code(0), only check the output, per the change as below:

Cloud-init error codes
----------------------
0 - success
1 - unrecoverable error
2 - recoverable error (new)

This new exit code indicates recoverable errors. If cloud-init exits
with exit code (2), cloud-init was able to complete gracefully, however
something went wrong and the user should investigate.

# check cloud-init status is done
utils_lib.run_cmd(self, cmd, expect_ret=0, expect_kw='status: done', msg='Get cloud-init status')
# check cloud-init status is done
utils_lib.run_cmd(self, cmd, expect_kw='status: done', msg='Get cloud-init status')
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about collecting "cloud-init status --format json" output when ret code does not equal 0? I am also thinking , can we fail the case when ret code is not 0? Otherwise, we might miss bugs when it returns 1 or 2(also require fix?).

Copy link
Collaborator Author

@zhaohuijuan zhaohuijuan Dec 19, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good idea and it makes sense.
This funtion _check_cloudinit_done_and_service_isactive() is called by 10 cases, the return code 2 is always no relation with the 10 cases, and all the 10 cases would fail when return code is not 0, this will add the debug effort for failed cases.
How about adding a new case to check the "cloud-init status" return code? We can fail the case when ret code is not 0, and we can collect "cloud-init status --format json" output when ret code does not equal 0 in this new case.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When return code is non-zero, it is not critical some times, I agree to add a new case to catch non-zero ret. I think it is worth to do because "cloud-init status --format json" indicates there are some exceptions found.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Frank for the suggestion, merging now and will add a new case to catch non-zero return ASAP.

@zhaohuijuan zhaohuijuan merged commit 3170e3e into virt-s1:master Dec 20, 2023
1 check passed
Copy link
Collaborator

@xiachen-rh xiachen-rh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants