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
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 8 additions & 3 deletions os_tests/tests/test_cloud_init.py
Original file line number Diff line number Diff line change
Expand Up @@ -1607,8 +1607,8 @@ def _check_cloudinit_done_and_service_isactive(self):
while output=='status: running':
time.sleep(20) # waiting for cloud-init done
output = utils_lib.run_cmd(self, cmd).rstrip('\n')
# 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.

# check cloud-init services status are active
service_list = ['cloud-init-local',
'cloud-init',
Expand Down Expand Up @@ -2777,7 +2777,12 @@ def test_cloudinit_puppet_in_correct_stage(self):
debug_want:
N/A
"""
module_list = 'puppet,chef,salt-minion,mcollective,package-update-upgrade-install,power-state-change'
out = utils_lib.run_cmd(self, 'rpm -q cloud-init', expect_ret=0)
cloudinit_ver = re.findall('\d+.\d',out)[0]
if float(cloudinit_ver) < 23.4:
module_list = 'puppet,chef,salt-minion,mcollective,package-update-upgrade-install,power-state-change'
else:
module_list = 'puppet,chef,salt_minion,mcollective,package_update_upgrade_install,power_state_change'
cmd = "sed -n '/cloud_final_modules:/,/system_info:/p' /etc/cloud/cloud.cfg"
utils_lib.run_cmd(self,
cmd,
Expand Down
Loading