)]}'
{"id":"openstack%2Fpython-novaclient~21901","triplet_id":"openstack%2Fpython-novaclient~master~Ie68463ffd7a939744e035b20fd50a7dc8da605de","project":"openstack/python-novaclient","branch":"master","topic":"bug/1058366","hashtags":[],"change_id":"Ie68463ffd7a939744e035b20fd50a7dc8da605de","subject":"Allow extensions to provide a name when discovered on the python path.","status":"MERGED","created":"2013-02-13 19:21:50.000000000","updated":"2013-02-15 23:41:43.000000000","submitted":"2013-02-15 23:41:42.000000000","submitter":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"a42bea13caeca2d891fd310ed6e04bc347f338ab","_number":21901,"virtual_id_number":21901,"owner":{"_account_id":1636,"name":"David Scannell","email":"dscannell@gridcentric.com","username":"dscannell"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"all":[{"value":0,"_account_id":209,"name":"Josh Kearney","email":"josh@jk0.org","username":"jk0"},{"value":2,"date":"2013-02-15 23:41:42.000000000","_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":1636,"name":"David Scannell","email":"dscannell@gridcentric.com","username":"dscannell"},{"value":0,"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"}],"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":209,"name":"Josh Kearney","email":"josh@jk0.org","username":"jk0"},"all":[{"value":2,"date":"2013-02-15 17:35:04.000000000","_account_id":209,"name":"Josh Kearney","email":"josh@jk0.org","username":"jk0"},{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"date":"2013-02-14 21:04:19.000000000","permitted_voting_range":{"min":0,"max":1},"_account_id":1636,"name":"David Scannell","email":"dscannell@gridcentric.com","username":"dscannell"},{"value":2,"date":"2013-02-14 21:00:33.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"}],"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":209,"name":"Josh Kearney","email":"josh@jk0.org","username":"jk0"},"all":[{"value":1,"date":"2013-02-15 17:35:04.000000000","_account_id":209,"name":"Josh Kearney","email":"josh@jk0.org","username":"jk0"},{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"date":"2013-02-14 18:45:01.000000000","_account_id":1636,"name":"David Scannell","email":"dscannell@gridcentric.com","username":"dscannell"},{"value":0,"date":"2013-02-14 21:00:33.000000000","permitted_voting_range":{"min":0,"max":1},"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"value":0,"_account_id":209,"name":"Josh Kearney","email":"josh@jk0.org","username":"jk0"},{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":1636,"name":"David Scannell","email":"dscannell@gridcentric.com","username":"dscannell"},{"value":0,"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"}],"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":209,"name":"Josh Kearney","email":"josh@jk0.org","username":"jk0"},{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},{"_account_id":1636,"name":"David Scannell","email":"dscannell@gridcentric.com","username":"dscannell"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2013-02-14 21:00:33.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":"2013-02-15 17:35:04.000000000","updated_by":{"_account_id":209,"name":"Josh Kearney","email":"josh@jk0.org","username":"jk0"},"reviewer":{"_account_id":209,"name":"Josh Kearney","email":"josh@jk0.org","username":"jk0"},"state":"REVIEWER"},{"updated":"2013-02-15 23:41:42.000000000","updated_by":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"reviewer":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"state":"REVIEWER"}],"messages":[{"id":"058552013a524046428e87dda6112f2b5c6d9b0d","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-02-13 19:22:41.000000000","message":"Patch Set 1: Doesn\u0027t seem to work\n\nBuild failed.  For information on how to proceed, see http://wiki.openstack.org/GerritJenkinsGithub#Test_Failures\n\n- http://logs.openstack.org/21901/1/check/gate-python-novaclient-pep8/1046 : FAILURE\n- gate-python-novaclient-docs : SKIPPED\n- gate-python-novaclient-python26 : SKIPPED\n- gate-python-novaclient-python27 : SKIPPED\n- gate-tempest-devstack-vm-full : SKIPPED\n- gate-tempest-devstack-vm-postgres-full : SKIPPED\n- gate-tempest-devstack-vm-quantum : SKIPPED\n","accounts_in_message":[],"_revision_number":1},{"id":"fe3dce62f526dabb5dcbc1f356e2cc897f74d4b9","author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"date":"2013-02-13 19:38:26.000000000","message":"Patch Set 1:\n\nI\u0027ll point out that it\u0027s probably better to use the entrypoints support for registering extensions with novaclient anyway.  I suspect the _discover_via_python_path() discovery mechanism may be left in just for backwards compatibility, and for that same reason, I hesitate to change what existing extensions use.  I won\u0027t -1 this patch off the bat, but you\u0027ll have to convince me that this won\u0027t impact existing tools that rely on the current behavior of _discover_via_python_path().  And, of course, you\u0027ll have to fix your PEP8 error :)","accounts_in_message":[],"_revision_number":1},{"id":"b1948c674be656b959f34a3188426124c71875a2","author":{"_account_id":1636,"name":"David Scannell","email":"dscannell@gridcentric.com","username":"dscannell"},"date":"2013-02-14 18:45:01.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"3944c5fa9d284a26abdc1271f1afc287b5ffdca8","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-02-14 20:00:32.000000000","message":"Patch Set 2: Works for me\n\nBuild succeeded.\n\n- http://logs.openstack.org/21901/2/check/gate-python-novaclient-pep8/1051 : SUCCESS\n- http://logs.openstack.org/21901/2/check/gate-python-novaclient-docs/742 : SUCCESS\n- http://logs.openstack.org/21901/2/check/gate-python-novaclient-python26/843 : SUCCESS\n- http://logs.openstack.org/21901/2/check/gate-python-novaclient-python27/1062 : SUCCESS\n- http://logs.openstack.org/21901/2/check/gate-tempest-devstack-vm-full/2854 : SUCCESS\n- http://logs.openstack.org/21901/2/check/gate-tempest-devstack-vm-postgres-full/2580 : SUCCESS\n- http://logs.openstack.org/21901/2/check/gate-tempest-devstack-vm-quantum/7102 : SUCCESS\n","accounts_in_message":[],"_revision_number":2},{"id":"4afb516e52d1be552d30d634575cb8fb45a92ca3","author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"date":"2013-02-14 21:00:33.000000000","message":"Patch Set 2: Looks good to me (core reviewer)\n\nI\u0027m fine with this approach…","accounts_in_message":[],"_revision_number":2},{"id":"7c1eb2024ffd80c4045add676f76c01e283e260a","author":{"_account_id":1636,"name":"David Scannell","email":"dscannell@gridcentric.com","username":"dscannell"},"date":"2013-02-14 21:04:19.000000000","message":"Patch Set 2:\n\nThe patch has been updated to prevent breaking existing extensions that could be relying on the \u0027extension_python_novaclient_ext\u0027 attribute. Now extension discovered via the python path can define a \u0027extension_name\u0027 attribute and if present novaclient will name the extension accordingly.","accounts_in_message":[],"_revision_number":2},{"id":"756f6a2f28c1e277f97901941e5a2d762e3f1233","author":{"_account_id":209,"name":"Josh Kearney","email":"josh@jk0.org","username":"jk0"},"date":"2013-02-15 17:35:04.000000000","message":"Patch Set 2: Looks good to me (core reviewer); Approved\n\n","accounts_in_message":[],"_revision_number":2},{"id":"8ad04f9d4d2ccad8aaf42877290976a98019c477","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-02-15 17:36:45.000000000","message":"Patch Set 2: No score\n\nStarting gate jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":2},{"id":"2209686c2e75edcd4cebb00ae0df295c3dcbc02e","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-02-15 23:41:42.000000000","message":"Patch Set 2: Verified\n\nBuild succeeded.\n\n- http://logs.openstack.org/21901/2/gate/gate-python-novaclient-docs/780 : SUCCESS\n- http://logs.openstack.org/21901/2/gate/gate-python-novaclient-pep8/1089 : SUCCESS\n- http://logs.openstack.org/21901/2/gate/gate-python-novaclient-python26/881 : SUCCESS\n- http://logs.openstack.org/21901/2/gate/gate-python-novaclient-python27/1100 : SUCCESS\n- http://logs.openstack.org/21901/2/gate/gate-tempest-devstack-vm-full/3166 : SUCCESS\n- http://logs.openstack.org/21901/2/gate/gate-tempest-devstack-vm-postgres-full/2890 : SUCCESS\n- http://logs.openstack.org/21901/2/gate/gate-tempest-devstack-vm-quantum/7463 : SUCCESS\n","accounts_in_message":[],"_revision_number":2},{"id":"8aea06e83ec67e8ccd9fb5e93cf91d8505ef5fde","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-02-15 23:41:43.000000000","message":"Change has been successfully merged into the git repository.","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"c0e85a84b0ef60047f9435ef5035d0f65e446847","revisions":{"fc341a0ef55031a74e8eada49bb6b93bf1f476e6":{"kind":"REWORK","_number":1,"created":"2013-02-13 19:21:50.000000000","uploader":{"_account_id":1636,"name":"David Scannell","email":"dscannell@gridcentric.com","username":"dscannell"},"ref":"refs/changes/01/21901/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-novaclient","ref":"refs/changes/01/21901/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/01/21901/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/01/21901/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/01/21901/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-novaclient refs/changes/01/21901/1"}}},"commit":{"parents":[{"commit":"67b3db2bbcf2813f3ea99e28a445cb5e0c92f618","subject":"Merge \"Corrects 2nd argument type for logging\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/67b3db2bbcf2813f3ea99e28a445cb5e0c92f618"}]}],"author":{"name":"David Scannell","email":"dscannell@gridcentric.com","date":"2013-02-13 18:47:45.000000000","tz":-300},"committer":{"name":"David Scannell","email":"dscannell@gridcentric.com","date":"2013-02-13 19:19:56.000000000","tz":-300},"subject":"Use a sensible name for extensions discovered on the python path.","message":"Use a sensible name for extensions discovered on the python path.\n\nUsing novaclient with some extensions via python code, you might have an\ninvocation like this:\n\n    extensions \u003d shell.OpenStackComputeShell()._discover_extensions(\"1.1\")\n    novaclient \u003d Client(\"1.1\", user, apikey, project, authurl, extensions\u003dextensions,\n                        endpoint_type\u003dshell.DEFAULT_NOVA_ENDPOINT_TYPE,\n                        service_type\u003dshell.DEFAULT_NOVA_SERVICE_TYPE)\n\nIf you have an extension like \u0027myextension.py\u0027 in the v1_1/contrib directory, you\u0027ll\nend up with a very sensible attribute on the resulting novaclient object, i.e.\n\n    novaclient.myextension\n\nIf you have a package distributed in the package myextension_python_novaclient_ext,\nthen it\u0027ll automatically be picked up as an extension (awesome!) but the name is not\nas intuitive.\n\n    novaclient.myextension_python_novaclient_ext\n\nThis patch simply changes this to use the Extension \u0027name\u0027 of myextension, even when\nmatching extensions found in packages. The possibility of collisions exists, but is\nnot really any more significant than before (where you might have different versions\nof the same package installed in the system or heck, even a bizarrely named\n\u0027myextension_python_novaclient_ext.py\u0027 in the contrib/ directory).\n\nFixes bug 1058366\n\nChange-Id: Ie68463ffd7a939744e035b20fd50a7dc8da605de\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/fc341a0ef55031a74e8eada49bb6b93bf1f476e6"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/fc341a0ef55031a74e8eada49bb6b93bf1f476e6"}]},"branch":"refs/heads/master"},"c0e85a84b0ef60047f9435ef5035d0f65e446847":{"kind":"REWORK","_number":2,"created":"2013-02-14 18:45:01.000000000","uploader":{"_account_id":1636,"name":"David Scannell","email":"dscannell@gridcentric.com","username":"dscannell"},"ref":"refs/changes/01/21901/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-novaclient","ref":"refs/changes/01/21901/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/01/21901/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/01/21901/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-novaclient refs/changes/01/21901/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-novaclient refs/changes/01/21901/2"}}},"commit":{"parents":[{"commit":"67b3db2bbcf2813f3ea99e28a445cb5e0c92f618","subject":"Merge \"Corrects 2nd argument type for logging\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/67b3db2bbcf2813f3ea99e28a445cb5e0c92f618"}]}],"author":{"name":"David Scannell","email":"dscannell@gridcentric.com","date":"2013-02-13 18:47:45.000000000","tz":-300},"committer":{"name":"David Scannell","email":"dscannell@gridcentric.com","date":"2013-02-14 18:22:25.000000000","tz":-300},"subject":"Allow extensions to provide a name when discovered on the python path.","message":"Allow extensions to provide a name when discovered on the python path.\n\nUsing novaclient with some extensions via python code, you might have an\ninvocation like this:\n\n    extensions \u003d shell.OpenStackComputeShell()._discover_extensions(\"1.1\")\n    novaclient \u003d Client(\"1.1\", user, apikey, project, authurl, extensions\u003dextensions,\n                        endpoint_type\u003dshell.DEFAULT_NOVA_ENDPOINT_TYPE,\n                        service_type\u003dshell.DEFAULT_NOVA_SERVICE_TYPE)\n\nIf you have an extension like \u0027myextension.py\u0027 in the v1_1/contrib directory, you\u0027ll\nend up with a very sensible attribute on the resulting novaclient object, i.e.\n\n    novaclient.myextension\n\nIf you have a package distributed in the package myextension_python_novaclient_ext,\nthen it\u0027ll automatically be picked up as an extension (awesome!) but the name is not\nas intuitive.\n\n    novaclient.myextension_python_novaclient_ext\n\nThis patch simply changes this to allow the Extension to provide a name for itself.\nThe possibility of collisions exists, but is not really any more significant than\nbefore (where you might have different versions of the same package installed in the\nsystem or heck, even a bizarrely named \u0027myextension_python_novaclient_ext.py\u0027 in the\ncontrib/ directory).\n\nFixes bug 1058366\n\nChange-Id: Ie68463ffd7a939744e035b20fd50a7dc8da605de\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/c0e85a84b0ef60047f9435ef5035d0f65e446847"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-novaclient/commit/c0e85a84b0ef60047f9435ef5035d0f65e446847"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
