RedHatSatellite / ballista

Modular and easily extendable tool to manipulate Katello/Satellite 6
GNU General Public License v3.0
16 stars 10 forks source link

Execution failed. Error was: list.remove(x): x not in list #10

Closed nicolas-r closed 8 years ago

nicolas-r commented 8 years ago

Hi

I'm testing this program and found a strange behavior in the "recursive_update' function Initial data viewids_to_update => [13, 15, 16, 17, 20, 22, 23] latest_versions => {'13': 79, '20': 83, '17': 82, '22': 84, '16': 81, '23': 85, '15': 80}

First pass in the while True Wating for content_view id 13 Wating for content_view id 20 Wating for content_view id 17 Wating for content_view id 22 Wating for content_view id 16 Wating for content_view id 23 Wating for content_view id 15 Waiting for baseviews to finish publishing, 7 to go => All tasks are still pending

Second pass Wating for content_view id 13 Wating for content_view id 20 Wating for content_view id 17 Wating for content_view id 22 16 Wating for content_view id 23 Wating for content_view id 15 Waiting for baseviews to finish publishing, 6 to go => On task has finished and the ID 16 has been removed from viewids_to_update

Third pass Wating for content_view id 13 20 17 Wating for content_view id 22 16 Execution failed. Error was: list.remove(x): x not in list => More tasks have finished but the function want to remove again from the list the ID 16, that leads to the error Execution failed. Error was: list.remove(x): x not in list

jvdbeemt commented 8 years ago

I can confirm this one, I have the same result.

nicolas-r commented 8 years ago

I have fixed it for the moment with a little patch in katlibs/modules/chain_publish.py

if int(viewid) in viewids_to_update: viewids_to_update.remove(int(viewid))

joeyloman commented 8 years ago

Hi Nicolas, Issue confirmed. I'm gonna fix it tommorow. Thanks for reporting.

joeyloman commented 8 years ago

This issue is fixed in devel and merged in master.

@Nicolas: your if statement fixed the bug, but it needs to be at the beginning of the for loop (see commit). Thanks!