)]}'
{"id":"openstack%2Fpython-novaclient~190141","triplet_id":"openstack%2Fpython-novaclient~master~I07ce414863e833c72e50ad8cf1824054cfb41457","project":"openstack/python-novaclient","branch":"master","topic":"bug/1463809","hashtags":[],"change_id":"I07ce414863e833c72e50ad8cf1824054cfb41457","subject":"Pass full path to pkgutil.iter_modules()","status":"MERGED","created":"2015-06-10 12:11:22.000000000","updated":"2015-06-14 05:50:05.000000000","submitted":"2015-06-14 05:50:03.000000000","submitter":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"total_comment_count":1,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"a455f888fe76778679f7830c1f3540db4f925f4e","_number":190141,"virtual_id_number":190141,"owner":{"_account_id":7307,"name":"Matt Thompson","email":"mattt@defunct.ca","username":"mattt416"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"all":[{"value":0,"date":"2015-06-11 12:21:39.000000000","_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},{"value":2,"date":"2015-06-14 05:50:03.000000000","_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},{"value":0,"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},{"value":0,"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},{"value":0,"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},{"value":0,"date":"2015-06-11 08:55:40.000000000","_account_id":7307,"name":"Matt Thompson","email":"mattt@defunct.ca","username":"mattt416"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"all":[{"value":2,"date":"2015-06-12 23:02:56.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},{"value":0,"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},{"value":1,"date":"2015-06-11 12:06:26.000000000","permitted_voting_range":{"min":1,"max":2},"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},{"value":2,"date":"2015-06-14 05:07:16.000000000","_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},{"value":0,"_account_id":7307,"name":"Matt Thompson","email":"mattt@defunct.ca","username":"mattt416"}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"all":[{"value":0,"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},{"value":0,"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},{"value":0,"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},{"value":1,"date":"2015-06-14 05:07:16.000000000","_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},{"value":0,"_account_id":7307,"name":"Matt Thompson","email":"mattt@defunct.ca","username":"mattt416"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"value":0,"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},{"value":0,"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},{"value":0,"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},{"value":0,"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},{"value":0,"_account_id":7307,"name":"Matt Thompson","email":"mattt@defunct.ca","username":"mattt416"}],"values":{" 0":"Default Priority","+1":"Contributor Review Promise","+2":"Core Review Promise"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":3,"name":"Jenkins","username":"jenkins"},{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},{"_account_id":7307,"name":"Matt Thompson","email":"mattt@defunct.ca","username":"mattt416"},{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2015-06-10 16:13:34.000000000","updated_by":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"reviewer":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"state":"REVIEWER"},{"updated":"2015-06-10 18:42:49.000000000","updated_by":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"reviewer":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"state":"REVIEWER"},{"updated":"2015-06-11 12:06:26.000000000","updated_by":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"reviewer":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"state":"REVIEWER"},{"updated":"2015-06-11 12:21:39.000000000","updated_by":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"reviewer":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"state":"REVIEWER"},{"updated":"2015-06-14 05:07:16.000000000","updated_by":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"reviewer":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"state":"REVIEWER"},{"updated":"2015-06-14 05:50:03.000000000","updated_by":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"reviewer":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"state":"REVIEWER"}],"messages":[{"id":"464b6539977d9101644ef94324fd8e675b1e7085","author":{"_account_id":7307,"name":"Matt Thompson","email":"mattt@defunct.ca","username":"mattt416"},"date":"2015-06-10 12:11:22.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"91a173ce0e08a482db4cfaae0a3a92718dad31f7","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-06-10 13:05:41.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-python-novaclient-python26 http://logs.openstack.org/41/190141/1/check/gate-python-novaclient-python26/4c0d15f/ : SUCCESS in 1m 36s\n- gate-python-novaclient-pep8 http://logs.openstack.org/41/190141/1/check/gate-python-novaclient-pep8/6b94c65/ : SUCCESS in 1m 02s\n- gate-python-novaclient-docs http://docs-draft.openstack.org/41/190141/1/check/gate-python-novaclient-docs/a3f152e//doc/build/html/ : SUCCESS in 1m 23s\n- gate-python-novaclient-python27 http://logs.openstack.org/41/190141/1/check/gate-python-novaclient-python27/f688279/ : SUCCESS in 1m 44s\n- gate-python-novaclient-python34 http://logs.openstack.org/41/190141/1/check/gate-python-novaclient-python34/26025a7/ : SUCCESS in 1m 59s\n- gate-python-novaclient-pypy http://logs.openstack.org/41/190141/1/check/gate-python-novaclient-pypy/be3e563/ : SUCCESS in 2m 44s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-novaclient http://logs.openstack.org/41/190141/1/check/gate-tempest-dsvm-neutron-src-python-novaclient/c0eb575/ : SUCCESS in 54m 00s\n- check-novaclient-dsvm-functional http://logs.openstack.org/41/190141/1/check/check-novaclient-dsvm-functional/eca3624/ : SUCCESS in 19m 54s","accounts_in_message":[],"_revision_number":1},{"id":"827bf65a01d63d9edb5703a1460f3dee486a8857","author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"date":"2015-06-10 16:13:34.000000000","message":"Patch Set 1:\n\nCode looks good, but I\u0027d like to see a regression test added to ensure the problem doesn\u0027t come back.","accounts_in_message":[],"_revision_number":1},{"id":"8c4897ee43ed0c5aa7e15263d181d3f2dabf341c","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2015-06-10 18:14:09.000000000","message":"Patch Set 1:\n\nSide note: I\u0027m wondering if we should change to warn with a deprecation period instead of raising an exception, being that this broke people who were calling with --os-compute-api-version 3 or Client(\u00273\u0027, ...). Old code used to ignore invalid versions and use the default/latest","accounts_in_message":[],"_revision_number":1},{"id":"0831f4b023772fe2ab1324a510d9ab0863d2bc21","author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"date":"2015-06-10 18:42:49.000000000","message":"Patch Set 1: Code-Review+1","accounts_in_message":[],"_revision_number":1},{"id":"82cecaa985e6e819a7053bfe3ffd582625016897","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2015-06-10 19:37:10.000000000","message":"Patch Set 1:\n\nIt\u0027s probably better to let version \u00273\u0027 fail since it really doesn\u0027t exist, and might be more harmful to users to continue thinking that it\u0027s valid for any longer","accounts_in_message":[],"_revision_number":1},{"id":"6a1ddb5842833e07be8d228f4f8b53628a867051","author":{"_account_id":7307,"name":"Matt Thompson","email":"mattt@defunct.ca","username":"mattt416"},"date":"2015-06-11 08:50:10.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"de963d2185d2fcc244a9a4ab4b4b4abc6d275a6e","author":{"_account_id":7307,"name":"Matt Thompson","email":"mattt@defunct.ca","username":"mattt416"},"date":"2015-06-11 08:55:40.000000000","message":"Patch Set 2:\n\nHi Kevin/Melanie, I\u0027ve added a test which will guard against the client version searching logic failing, however note that this does not actually raise a failure when we use pkgutil.iter_modules([\u0027novaclient\u0027]) as that search path is valid in the context of running the tests inside the python-novaclient checkout.  I\u0027d appreciate any further feedback on how this review can be improved.  Thank you!","accounts_in_message":[],"_revision_number":2},{"id":"908193d4f393dbcff1ba985e06d7584f4d23eb7d","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-06-11 09:51:55.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-python-novaclient-python26 http://logs.openstack.org/41/190141/2/check/gate-python-novaclient-python26/8a0a583/ : SUCCESS in 1m 33s\n- gate-python-novaclient-pep8 http://logs.openstack.org/41/190141/2/check/gate-python-novaclient-pep8/4f30f25/ : SUCCESS in 1m 03s\n- gate-python-novaclient-docs http://docs-draft.openstack.org/41/190141/2/check/gate-python-novaclient-docs/f3ef241//doc/build/html/ : SUCCESS in 1m 04s\n- gate-python-novaclient-python27 http://logs.openstack.org/41/190141/2/check/gate-python-novaclient-python27/45e4c85/ : SUCCESS in 1m 44s\n- gate-python-novaclient-python34 http://logs.openstack.org/41/190141/2/check/gate-python-novaclient-python34/4014cd6/ : SUCCESS in 2m 20s\n- gate-python-novaclient-pypy http://logs.openstack.org/41/190141/2/check/gate-python-novaclient-pypy/0bb412c/ : SUCCESS in 2m 27s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-novaclient http://logs.openstack.org/41/190141/2/check/gate-tempest-dsvm-neutron-src-python-novaclient/76e44e5/ : SUCCESS in 1h 00m 28s\n- check-novaclient-dsvm-functional http://logs.openstack.org/41/190141/2/check/check-novaclient-dsvm-functional/a155ef2/ : SUCCESS in 19m 11s","accounts_in_message":[],"_revision_number":2},{"id":"7add9e6ea242ed2b57f3ba1eb1879405f7d33a60","author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"date":"2015-06-11 12:06:26.000000000","message":"Patch Set 2: Code-Review+1","accounts_in_message":[],"_revision_number":2},{"id":"c73997f2b697a1f834b6d64794e19bb217e67966","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2015-06-11 12:21:39.000000000","message":"Patch Set 2:\n\nHi Matt, thanks for pointing out the old code would still pass this unit test because of the context of the git checkout. So far, I can\u0027t think of a way other than a functional test in novaclient/tests/functional/test_readonly_nova.py that does a \u0027nova --os-compute-api-version 3 list\u0027 and checks that the output has something in it. Someone else might have a better idea.\n\nAnother FYI is usually you don\u0027t want to do cleanups (like reformatting) at the same time as fixing a bug because 1) it adds unrelated changes to the patch diff for review 2) if patches get reverted, you don\u0027t want to revert a lot of unrelated changes at the same time.","accounts_in_message":[],"_revision_number":2},{"id":"e9d647681f1993c3ed443c0d59bb40d3edad4ab6","author":{"_account_id":7307,"name":"Matt Thompson","email":"mattt@defunct.ca","username":"mattt416"},"date":"2015-06-12 14:35:38.000000000","message":"Patch Set 2:\n\nHi Melanie, the only reason for creating the new _get_available_client_versions function was so that I could test that piece of code in isolation.  Without that change I\u0027d have to test the actual error in the exception which felt less than ideal.  I can certainly revert that if necessary though!","accounts_in_message":[],"_revision_number":2},{"id":"1e823d86b8fa921f1fff28af44b0653479d90ea6","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2015-06-12 18:32:13.000000000","message":"Patch Set 2:\n\nOh, right. I should have realized that. I think ideally we would also add a functional test here, so we get the regression test that would have failed without your fix. I\u0027m willing to add it to your patch if you don\u0027t mind.","accounts_in_message":[],"_revision_number":2},{"id":"9c87fe25e7d77efa1045c55e1d688992e26dc0fb","author":{"_account_id":7307,"name":"Matt Thompson","email":"mattt@defunct.ca","username":"mattt416"},"date":"2015-06-12 21:41:52.000000000","message":"Patch Set 2:\n\nMelanie, I don\u0027t mind at all.  Thanks!","accounts_in_message":[],"_revision_number":2},{"id":"e1991b2838627a00586adf99e17108c762188cfb","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2015-06-12 23:02:56.000000000","message":"Patch Set 2: Code-Review+2\n\nWell, I found out the functional test is subject to the same issue of finding the relative path \u0027novaclient\u0027 fine as functional tests are run from the git checkout dir. I think this is the best we can do.","accounts_in_message":[],"_revision_number":2},{"id":"96a406b7debb7ba1b0ffda5853148abef6e1a6fe","author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"date":"2015-06-14 05:07:16.000000000","message":"Patch Set 2: Code-Review+2 Workflow+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"277211f8f9d9c3c9e667458454b93556d77be5e4","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-06-14 05:07:21.000000000","message":"Patch Set 2: -Verified\n\nStarting gate jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":2},{"id":"67f64ddc68706cf600c72378fd0a412dc16e4bc5","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-06-14 05:50:03.000000000","message":"Patch Set 2: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- gate-python-novaclient-python26 http://logs.openstack.org/41/190141/2/gate/gate-python-novaclient-python26/93de446/ : SUCCESS in 1m 21s\n- gate-python-novaclient-docs http://docs-draft.openstack.org/41/190141/2/gate/gate-python-novaclient-docs/86a1686//doc/build/html/ : SUCCESS in 1m 07s\n- gate-python-novaclient-pep8 http://logs.openstack.org/41/190141/2/gate/gate-python-novaclient-pep8/fe866ad/ : SUCCESS in 1m 07s\n- gate-python-novaclient-python27 http://logs.openstack.org/41/190141/2/gate/gate-python-novaclient-python27/905fc4d/ : SUCCESS in 1m 50s\n- gate-python-novaclient-python34 http://logs.openstack.org/41/190141/2/gate/gate-python-novaclient-python34/8072c07/ : SUCCESS in 2m 18s\n- gate-python-novaclient-pypy http://logs.openstack.org/41/190141/2/gate/gate-python-novaclient-pypy/bbf910a/ : SUCCESS in 2m 48s (non-voting)\n- gate-tempest-dsvm-neutron-src-python-novaclient http://logs.openstack.org/41/190141/2/gate/gate-tempest-dsvm-neutron-src-python-novaclient/7c2e769/ : SUCCESS in 42m 40s\n- gate-novaclient-dsvm-functional http://logs.openstack.org/41/190141/2/gate/gate-novaclient-dsvm-functional/c63d67c/ : SUCCESS in 18m 01s","accounts_in_message":[],"_revision_number":2},{"id":"ad3ead6e265061b477c172ab6a788f5b6dcbbdb0","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-06-14 05:50:05.000000000","message":"Change has been successfully merged into the git repository.","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"84aec86319c6fc456db472e340188a5782e13741","revisions":{"739d82a863d76712a6ed58869a9aa41ae4d3dd96":{"kind":"REWORK","_number":1,"created":"2015-06-10 12:11:22.000000000","uploader":{"_account_id":7307,"name":"Matt Thompson","email":"mattt@defunct.ca","username":"mattt416"},"ref":"refs/changes/41/190141/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-novaclient","ref":"refs/changes/41/190141/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/190141/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/190141/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/190141/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-novaclient refs/changes/41/190141/1"}}},"commit":{"parents":[{"commit":"73957fc5ffaf2ccb1c8aa43b23b8df4f9bd24b43","subject":"Merge \"Adds support to set admin password from the cli\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/73957fc5ffaf2ccb1c8aa43b23b8df4f9bd24b43"}]}],"author":{"name":"Matt Thompson","email":"mattt@defunct.ca","date":"2015-06-10 12:05:18.000000000","tz":60},"committer":{"name":"Matt Thompson","email":"mattt@defunct.ca","date":"2015-06-10 12:11:19.000000000","tz":60},"subject":"Pass full path to pkgutil.iter_modules()","message":"Pass full path to pkgutil.iter_modules()\n\nOn my system, when using client version 3, an exception is raised with\nan incomplete message as novaclient is failing to find the bundled\nclient versions.  This commit updates get_client_class() to pass\nfull path of novaclient to pkgutil.iter_modules(), allowing it to\ncorrectly find all bundled client versions.\n\nChange-Id: I07ce414863e833c72e50ad8cf1824054cfb41457\nCloses-Bug: #1463809\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/739d82a863d76712a6ed58869a9aa41ae4d3dd96"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/739d82a863d76712a6ed58869a9aa41ae4d3dd96"}]},"branch":"refs/heads/master"},"84aec86319c6fc456db472e340188a5782e13741":{"kind":"REWORK","_number":2,"created":"2015-06-11 08:50:10.000000000","uploader":{"_account_id":7307,"name":"Matt Thompson","email":"mattt@defunct.ca","username":"mattt416"},"ref":"refs/changes/41/190141/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-novaclient","ref":"refs/changes/41/190141/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/190141/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/190141/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/41/190141/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-novaclient refs/changes/41/190141/2"}}},"commit":{"parents":[{"commit":"73957fc5ffaf2ccb1c8aa43b23b8df4f9bd24b43","subject":"Merge \"Adds support to set admin password from the cli\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/73957fc5ffaf2ccb1c8aa43b23b8df4f9bd24b43"}]}],"author":{"name":"Matt Thompson","email":"mattt@defunct.ca","date":"2015-06-10 12:05:18.000000000","tz":60},"committer":{"name":"Matt Thompson","email":"mattt@defunct.ca","date":"2015-06-11 08:42:02.000000000","tz":60},"subject":"Pass full path to pkgutil.iter_modules()","message":"Pass full path to pkgutil.iter_modules()\n\nOn my production system, when using client version 3, an exception is\nraised with an incomplete message as the installed novaclient is\nfailing to find the bundled client versions.  This commit creates a new\n_get_available_client_versions() method and moves the client version\nsearching from get_client_class() into it.\n\nWe also update __get_available_client_versions() to pass\npkgutil.iter_modules the full path to novaclient rather than\n\u0027novaclient\u0027, which is what actually resolves the issue here.\n\nLastly, we add a single test to ensure that\n__get_available_client_versions() does not return an empty list.\n\nChange-Id: I07ce414863e833c72e50ad8cf1824054cfb41457\nCloses-Bug: #1463809\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/84aec86319c6fc456db472e340188a5782e13741"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/84aec86319c6fc456db472e340188a5782e13741"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
