)]}'
{"id":"openstack%2Fpython-glanceclient~352892","triplet_id":"openstack%2Fpython-glanceclient~master~If8c0e0843270ff718a37ca2697afeb8da22aa3b1","project":"openstack/python-glanceclient","branch":"master","topic":"bug/1525259","hashtags":[],"change_id":"If8c0e0843270ff718a37ca2697afeb8da22aa3b1","subject":"Add request id to returned objects","status":"MERGED","created":"2016-08-09 13:14:06.000000000","updated":"2017-01-23 22:19:31.000000000","submitted":"2017-01-23 22:19:31.000000000","submitter":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"total_comment_count":15,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"674cd332466243e859c327bc1c2e7fcad565c385","_number":352892,"virtual_id_number":352892,"owner":{"_account_id":18494,"name":"Ravi Shekhar Jethani","email":"rsjethani@gmail.com","username":"rsjethani"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"all":[{"value":0,"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},{"value":0,"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},{"value":0,"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},{"value":2,"date":"2017-01-23 22:19:31.000000000","post_submit":true,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},{"value":0,"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},{"value":0,"_account_id":20105,"name":"Cao ShuFeng","email":"caosf.fnst@cn.fujitsu.com","username":"caosf.fnst"},{"value":0,"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},{"value":0,"_account_id":18494,"name":"Ravi Shekhar Jethani","email":"rsjethani@gmail.com","username":"rsjethani"}],"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":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"all":[{"value":2,"date":"2017-01-23 19:26:54.000000000","_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},{"value":0,"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},{"value":0,"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":2,"date":"2017-01-23 20:35:23.000000000","_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},{"value":0,"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},{"value":0,"_account_id":20105,"name":"Cao ShuFeng","email":"caosf.fnst@cn.fujitsu.com","username":"caosf.fnst"},{"value":0,"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},{"value":0,"_account_id":18494,"name":"Ravi Shekhar Jethani","email":"rsjethani@gmail.com","username":"rsjethani"}],"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":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},"all":[{"value":0,"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},{"value":0,"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},{"value":0,"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":1,"date":"2017-01-23 20:35:23.000000000","_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},{"value":0,"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},{"value":0,"_account_id":20105,"name":"Cao ShuFeng","email":"caosf.fnst@cn.fujitsu.com","username":"caosf.fnst"},{"value":0,"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},{"value":0,"_account_id":18494,"name":"Ravi Shekhar Jethani","email":"rsjethani@gmail.com","username":"rsjethani"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"value":0,"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},{"value":0,"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},{"value":0,"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},{"value":0,"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},{"value":0,"_account_id":20105,"name":"Cao ShuFeng","email":"caosf.fnst@cn.fujitsu.com","username":"caosf.fnst"},{"value":0,"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},{"value":0,"_account_id":18494,"name":"Ravi Shekhar Jethani","email":"rsjethani@gmail.com","username":"rsjethani"}],"values":{"-1":"Branch Freeze"," 0":"No Priority","+1":"Important Change","+2":"Top Priority / Holds Gate"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":3,"name":"Jenkins","username":"jenkins"},{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},{"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},{"_account_id":18494,"name":"Ravi Shekhar Jethani","email":"rsjethani@gmail.com","username":"rsjethani"},{"_account_id":20105,"name":"Cao ShuFeng","email":"caosf.fnst@cn.fujitsu.com","username":"caosf.fnst"},{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2016-08-29 06:49:12.000000000","updated_by":{"_account_id":20105,"name":"Cao ShuFeng","email":"caosf.fnst@cn.fujitsu.com","username":"caosf.fnst"},"reviewer":{"_account_id":20105,"name":"Cao ShuFeng","email":"caosf.fnst@cn.fujitsu.com","username":"caosf.fnst"},"state":"REVIEWER"},{"updated":"2016-11-02 10:28:39.000000000","updated_by":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"reviewer":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"state":"REVIEWER"},{"updated":"2016-11-03 13:55:59.000000000","updated_by":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"reviewer":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"state":"REVIEWER"},{"updated":"2017-01-11 21:05:24.000000000","updated_by":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"reviewer":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"state":"REVIEWER"},{"updated":"2017-01-20 09:45:23.000000000","updated_by":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"reviewer":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"state":"REVIEWER"},{"updated":"2017-01-23 19:26:54.000000000","updated_by":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"reviewer":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"state":"REVIEWER"},{"updated":"2017-01-23 20:35:23.000000000","updated_by":{"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},"reviewer":{"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},"state":"REVIEWER"},{"updated":"2017-01-23 22:19:31.000000000","updated_by":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"reviewer":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"state":"REVIEWER"}],"messages":[{"id":"c74bdb2fc00585f9fa19c47f250782e528f60300","author":{"_account_id":18494,"name":"Ravi Shekhar Jethani","email":"rsjethani@gmail.com","username":"rsjethani"},"date":"2016-08-09 13:14:06.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"1e056143f8335744a11f20bba4eaa34d0ee31295","author":{"_account_id":18494,"name":"Ravi Shekhar Jethani","email":"rsjethani@gmail.com","username":"rsjethani"},"date":"2016-08-09 13:15:15.000000000","message":"Patch Set 1: Workflow-1","accounts_in_message":[],"_revision_number":1},{"id":"f8e791f652e8100c8ddf6478063cbf8cb50586e2","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-08-09 16:30:26.000000000","message":"Patch Set 1: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see http://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n- gate-python-glanceclient-docs-ubuntu-xenial http://docs-draft.openstack.org/92/352892/1/check/gate-python-glanceclient-docs-ubuntu-xenial/44ae585//doc/build/html/ : SUCCESS in 5m 10s\n- gate-python-glanceclient-pep8-ubuntu-xenial http://logs.openstack.org/92/352892/1/check/gate-python-glanceclient-pep8-ubuntu-xenial/e0d4b63/ : FAILURE in 3m 27s\n- gate-python-glanceclient-python27-ubuntu-xenial http://logs.openstack.org/92/352892/1/check/gate-python-glanceclient-python27-ubuntu-xenial/9434cd6/ : FAILURE in 3m 18s\n- gate-python-glanceclient-python34 http://logs.openstack.org/92/352892/1/check/gate-python-glanceclient-python34/9b2fe26/ : FAILURE in 3m 59s\n- gate-python-glanceclient-python35-nv http://logs.openstack.org/92/352892/1/check/gate-python-glanceclient-python35-nv/00636cd/ : FAILURE in 7m 28s (non-voting)\n- gate-python-glanceclient-requirements http://logs.openstack.org/92/352892/1/check/gate-python-glanceclient-requirements/2df9c27/ : SUCCESS in 3m 41s\n- gate-tempest-dsvm-neutron-src-python-glanceclient http://logs.openstack.org/92/352892/1/check/gate-tempest-dsvm-neutron-src-python-glanceclient/10b1e37/ : SUCCESS in 1h 28m 44s\n- gate-glanceclient-dsvm-functional http://logs.openstack.org/92/352892/1/check/gate-glanceclient-dsvm-functional/a6f2d7e/ : SUCCESS in 37m 42s\n- gate-glanceclient-dsvm-functional-identity-v3-only-nv http://logs.openstack.org/92/352892/1/check/gate-glanceclient-dsvm-functional-identity-v3-only-nv/2ea6e41/ : FAILURE in 36m 45s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"7990925e4b1b8d41a1ea40132a3b21c599e8d37f","author":{"_account_id":20105,"name":"Cao ShuFeng","email":"caosf.fnst@cn.fujitsu.com","username":"caosf.fnst"},"date":"2016-08-29 06:49:12.000000000","message":"Patch Set 1:\n\n(6 comments)","accounts_in_message":[],"_revision_number":1},{"id":"a03f50db2a7a4313f2f08d2a4e73ace0d5bf5a2a","author":{"_account_id":20105,"name":"Cao ShuFeng","email":"caosf.fnst@cn.fujitsu.com","username":"caosf.fnst"},"date":"2016-09-06 05:48:33.000000000","message":"Patch Set 1:\n\n(2 comments)","accounts_in_message":[],"_revision_number":1},{"id":"c9036007890832925e6c233a7b6a1baa054987e1","author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"date":"2016-11-02 10:26:10.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"e96219603e753324a275d588a23bf915c17edc9c","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-11-02 11:18:37.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-python-glanceclient-docs-ubuntu-xenial http://docs-draft.openstack.org/92/352892/2/check/gate-python-glanceclient-docs-ubuntu-xenial/f3050bf//doc/build/html/ : SUCCESS in 3m 35s\n- gate-python-glanceclient-pep8-ubuntu-xenial http://logs.openstack.org/92/352892/2/check/gate-python-glanceclient-pep8-ubuntu-xenial/d53bda6/ : SUCCESS in 2m 51s\n- gate-python-glanceclient-python27-ubuntu-xenial http://logs.openstack.org/92/352892/2/check/gate-python-glanceclient-python27-ubuntu-xenial/553cfa7/ : SUCCESS in 2m 54s\n- gate-python-glanceclient-python34 http://logs.openstack.org/92/352892/2/check/gate-python-glanceclient-python34/100376e/ : SUCCESS in 2m 17s\n- gate-python-glanceclient-python35-nv http://logs.openstack.org/92/352892/2/check/gate-python-glanceclient-python35-nv/6b95d89/ : SUCCESS in 2m 54s (non-voting)\n- gate-python-glanceclient-releasenotes http://docs-draft.openstack.org/92/352892/2/check/gate-python-glanceclient-releasenotes/38d48b2//releasenotes/build/html/ : SUCCESS in 2m 00s\n- gate-python-glanceclient-requirements http://logs.openstack.org/92/352892/2/check/gate-python-glanceclient-requirements/8833b27/ : SUCCESS in 1m 24s\n- gate-tempest-dsvm-neutron-src-python-glanceclient http://logs.openstack.org/92/352892/2/check/gate-tempest-dsvm-neutron-src-python-glanceclient/b69e885/ : SUCCESS in 50m 29s\n- gate-glanceclient-dsvm-functional http://logs.openstack.org/92/352892/2/check/gate-glanceclient-dsvm-functional/2568367/ : SUCCESS in 22m 04s\n- gate-glanceclient-dsvm-functional-identity-v3-only-nv http://logs.openstack.org/92/352892/2/check/gate-glanceclient-dsvm-functional-identity-v3-only-nv/444d9df/ : FAILURE in 22m 04s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"4b9d8e39850be07ef6ead7ee20817d66f24632fb","author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"date":"2016-11-03 13:55:59.000000000","message":"Patch Set 2:\n\n(1 comment)\n\nThe requirements change is OK.","accounts_in_message":[],"_revision_number":2},{"id":"b7d5f5a106c8334eaeeadc251275816e8813e245","author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"date":"2016-12-19 16:49:06.000000000","message":"Patch Set 2: Code-Review-1\n\nSo, I have a few problems with this patchset:\n\n1. We\u0027re copying \u0027_assert_request_id\u0027 around into different classes. There should be another class that adds \u0027assertRequestId\u0027 and which is inherited from for the test classes that need it. And yes, it absolutely should be assertRequestId.\n\n2. The _assert_request_id method is using hasattr which is inconsistent across both versions of Python and *probably not* what we actually want [1]. Instead we should be using getattr with a sentinel to assert the attribute exists\n\n3. You\u0027re adding an assertion to existing tests. I don\u0027t know why we need these assertions in so many places and appended to so many tests, but I feel certain that there must be a better way to write these tests.\n\nReferences:\n\n[1]: https://hynek.me/articles/hasattr/","accounts_in_message":[],"_revision_number":2},{"id":"0489c46a8f16ae4f0858abd0177a2f1b080f642a","author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"date":"2016-12-22 10:23:17.000000000","message":"Patch Set 2:\n\n\u003e So, I have a few problems with this patchset:\n \u003e \n \u003e 1. We\u0027re copying \u0027_assert_request_id\u0027 around into different\n \u003e classes. There should be another class that adds \u0027assertRequestId\u0027\n \u003e and which is inherited from for the test classes that need it. And\n \u003e yes, it absolutely should be assertRequestId.\n \u003e \n \u003e 2. The _assert_request_id method is using hasattr which is\n \u003e inconsistent across both versions of Python and *probably not* what\n \u003e we actually want [1]. Instead we should be using getattr with a\n \u003e sentinel to assert the attribute exists\n \u003e \n \u003e 3. You\u0027re adding an assertion to existing tests. I don\u0027t know why\n \u003e we need these assertions in so many places and appended to so many\n \u003e tests, but I feel certain that there must be a better way to write\n \u003e these tests.\n \u003e \n \u003e References:\n \u003e \n \u003e [1]: https://hynek.me/articles/hasattr/\n\nHi Ian,\n\nThank you for review. Regarding your comment #3 I have following solution in mind.\n\nI will create a BaseController class under glanceclient/tests/unit/v2/base.py which will contain basic controller methods like create, get, update, delete, list etc. (common for all controllers in glanceclient). I will initialize this controller in the unittests (in setUp where actual controller is initialized). This BaseController then will call actual controller methods, assert for request_ids and return the response to actual tests.\n\nOnly problem is, there are other methods like add_location, update_location etc. for images or assosciate, deassociate for metadefs controller which we can add in the same BaseController or again create a subclass of BaseController for each of them and add those methods in the respective subclass.\n\nI have made this changes for test_images and test_metadefs_namespaces for reference purpose [1]. If possible please let me know your suggestions for the same.\n\n[1] http://paste.openstack.org/show/593116/","accounts_in_message":[],"_revision_number":2},{"id":"8656f774ef1f14382a2e02b01181cc97b69b473e","author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"date":"2017-01-10 20:33:16.000000000","message":"Patch Set 2: Code-Review-1\n\nHi Abhishek,\nWhat about exception handling? What if there is something like an IndexError triggered due to the previous function calls? Should we be gracefully handling that with respect to setting of request IDs?\nAlso, regarding the tests, instead of creating subclasses, I think your solution to have the several test methods in the same BaseController which would test for request-ids in the required test methods and return response is fine. This I think this might be better than our current way of explicitly asserting in so many test methods. Let me know what you think.\nAlso, as good OpenStack practice, you can add yourself as the co-author on this patch. \nThanks.","accounts_in_message":[],"_revision_number":2},{"id":"ae539a940d5a672f927554ba80665d45ceb52bde","author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"date":"2017-01-11 06:57:05.000000000","message":"Patch Set 2:\n\n\u003e Hi Abhishek,\n \u003e What about exception handling? What if there is something like an\n \u003e IndexError triggered due to the previous function calls? Should we\n \u003e be gracefully handling that with respect to setting of request IDs?\n \u003e Also, regarding the tests, instead of creating subclasses, I think\n \u003e your solution to have the several test methods in the same\n \u003e BaseController which would test for request-ids in the required\n \u003e test methods and return response is fine. This I think this might\n \u003e be better than our current way of explicitly asserting in so many\n \u003e test methods. Let me know what you think.\n \u003e Also, as good OpenStack practice, you can add yourself as the\n \u003e co-author on this patch.\n \u003e Thanks.\n\nHi Dharini,\n\nThank you for review.\n\nFor exception handling, glance is already logging request-id as a debug [1]. IMO each function call to glance will have it\u0027s own request-id so there will not be any such IndexError issue, please point out any particular scenario if you have in mind.\n\nI have moved almost all methods in BaseController class but we need to have one Subclass for metadeds.ResourceTypeController, which will override get method and return only names of ResourceTypes.\n\nI will add myself as a co-author, Thank you.\n\n[1] https://github.com/openstack/python-glanceclient/blob/master/glanceclient/common/http.py#L96","accounts_in_message":[],"_revision_number":2},{"id":"c283cbfc4f387cf6441a0474a7e700b3a07a325b","author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"date":"2017-01-11 07:10:45.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"b1e855c073657b393d8c5252533c663b57ca3a77","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2017-01-11 08:34:54.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-python-glanceclient-docs-ubuntu-xenial http://docs-draft.openstack.org/92/352892/3/check/gate-python-glanceclient-docs-ubuntu-xenial/2a59936//doc/build/html/ : SUCCESS in 2m 32s\n- gate-python-glanceclient-pep8-ubuntu-xenial http://logs.openstack.org/92/352892/3/check/gate-python-glanceclient-pep8-ubuntu-xenial/b34c457/ : SUCCESS in 2m 38s\n- gate-python-glanceclient-python27-ubuntu-xenial http://logs.openstack.org/92/352892/3/check/gate-python-glanceclient-python27-ubuntu-xenial/35d05b4/ : SUCCESS in 2m 25s\n- gate-python-glanceclient-python35 http://logs.openstack.org/92/352892/3/check/gate-python-glanceclient-python35/080b58c/ : SUCCESS in 2m 31s\n- gate-python-glanceclient-releasenotes http://docs-draft.openstack.org/92/352892/3/check/gate-python-glanceclient-releasenotes/362c6c6//releasenotes/build/html/ : SUCCESS in 2m 12s\n- gate-python-glanceclient-requirements http://logs.openstack.org/92/352892/3/check/gate-python-glanceclient-requirements/6cd70dd/ : SUCCESS in 1m 58s\n- gate-tempest-dsvm-neutron-src-python-glanceclient-ubuntu-xenial http://logs.openstack.org/92/352892/3/check/gate-tempest-dsvm-neutron-src-python-glanceclient-ubuntu-xenial/25ad987/ : SUCCESS in 1h 22m 14s\n- gate-glanceclient-dsvm-functional-ubuntu-xenial http://logs.openstack.org/92/352892/3/check/gate-glanceclient-dsvm-functional-ubuntu-xenial/cdf9e2b/ : SUCCESS in 27m 48s\n- gate-glanceclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv http://logs.openstack.org/92/352892/3/check/gate-glanceclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv/697d9c6/ : FAILURE in 27m 36s (non-voting)","accounts_in_message":[],"_revision_number":3},{"id":"b31a6862f2abe53ec21e4782b2385d6b6363e758","author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"date":"2017-01-11 21:05:24.000000000","message":"Patch Set 3:\n\n\u003e \u003e Hi Abhishek,\n \u003e \u003e What about exception handling? What if there is something like an\n \u003e \u003e IndexError triggered due to the previous function calls? Should\n \u003e we\n \u003e \u003e be gracefully handling that with respect to setting of request\n \u003e IDs?\n \u003e \u003e Also, regarding the tests, instead of creating subclasses, I\n \u003e think\n \u003e \u003e your solution to have the several test methods in the same\n \u003e \u003e BaseController which would test for request-ids in the required\n \u003e \u003e test methods and return response is fine. This I think this might\n \u003e \u003e be better than our current way of explicitly asserting in so many\n \u003e \u003e test methods. Let me know what you think.\n \u003e \u003e Also, as good OpenStack practice, you can add yourself as the\n \u003e \u003e co-author on this patch.\n \u003e \u003e Thanks.\n \u003e \n \u003e Hi Dharini,\n \u003e \n \u003e Thank you for review.\n \u003e \n \u003e For exception handling, glance is already logging request-id as a\n \u003e debug [1]. IMO each function call to glance will have it\u0027s own\n \u003e request-id so there will not be any such IndexError issue, please\n \u003e point out any particular scenario if you have in mind.\n \u003e \n \u003e I have moved almost all methods in BaseController class but we need\n \u003e to have one Subclass for metadeds.ResourceTypeController, which\n \u003e will override get method and return only names of ResourceTypes.\n \u003e \n \u003e I will add myself as a co-author, Thank you.\n \u003e \n \u003e [1] https://github.com/openstack/python-glanceclient/blob/master/glanceclient/common/http.py#L96\n\nThank you for clarifying Abhishek. Will review the tests.","accounts_in_message":[],"_revision_number":3},{"id":"cb97b90a64e916cf79a1c05bcdbc2c725eae5aeb","author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"date":"2017-01-19 16:26:28.000000000","message":"Patch Set 3: Code-Review+1\n\n(3 comments)\n\nJust a couple possible nits but otherwise this looks *excellent* Abhishek. Thanks so much for your work on this. \u003d)","accounts_in_message":[],"_revision_number":3},{"id":"d85d1df18dfb1548d828e5b7208dcb90ba6ce833","author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"date":"2017-01-20 09:42:40.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"e73fe52f20e626933b4fdde9f9436b5ac017c083","author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"date":"2017-01-20 09:45:23.000000000","message":"Patch Set 3:\n\n(3 comments)\n\nHi Ian,\n\nThank you for review. I have made changes as per your suggestion.\nPlease review new PS.","accounts_in_message":[],"_revision_number":3},{"id":"8a7ae6151c06a0300fbb10df1afc6ac69cf37eba","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2017-01-20 10:53:00.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-python-glanceclient-docs-ubuntu-xenial http://docs-draft.openstack.org/92/352892/4/check/gate-python-glanceclient-docs-ubuntu-xenial/06a5911//doc/build/html/ : SUCCESS in 2m 43s\n- gate-python-glanceclient-pep8-ubuntu-xenial http://logs.openstack.org/92/352892/4/check/gate-python-glanceclient-pep8-ubuntu-xenial/f43f3d7/ : SUCCESS in 2m 33s\n- gate-python-glanceclient-python27-ubuntu-xenial http://logs.openstack.org/92/352892/4/check/gate-python-glanceclient-python27-ubuntu-xenial/186ced7/ : SUCCESS in 2m 21s\n- gate-python-glanceclient-python35 http://logs.openstack.org/92/352892/4/check/gate-python-glanceclient-python35/78783fe/ : SUCCESS in 3m 15s\n- gate-python-glanceclient-releasenotes http://docs-draft.openstack.org/92/352892/4/check/gate-python-glanceclient-releasenotes/56f2748//releasenotes/build/html/ : SUCCESS in 2m 37s\n- gate-python-glanceclient-requirements http://logs.openstack.org/92/352892/4/check/gate-python-glanceclient-requirements/fd55676/ : SUCCESS in 1m 32s\n- gate-tempest-dsvm-neutron-src-python-glanceclient-ubuntu-xenial http://logs.openstack.org/92/352892/4/check/gate-tempest-dsvm-neutron-src-python-glanceclient-ubuntu-xenial/5915344/ : SUCCESS in 1h 07m 00s\n- gate-glanceclient-dsvm-functional-ubuntu-xenial http://logs.openstack.org/92/352892/4/check/gate-glanceclient-dsvm-functional-ubuntu-xenial/de2a829/ : SUCCESS in 25m 31s\n- gate-glanceclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv http://logs.openstack.org/92/352892/4/check/gate-glanceclient-dsvm-functional-identity-v3-only-ubuntu-xenial-nv/c41fab6/ : FAILURE in 25m 30s (non-voting)","accounts_in_message":[],"_revision_number":4},{"id":"660906ab984b81af68b79332b7c775de05b07e3f","author":{"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},"date":"2017-01-20 21:04:43.000000000","message":"Patch Set 4: Code-Review+1\n\nStrong +1 on this. Good work and thanks for the fast turn-around for feedback.","accounts_in_message":[],"_revision_number":4},{"id":"8f5b76fd6386bc346245b1f7535bbaa6c698a5b2","author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"date":"2017-01-23 19:26:54.000000000","message":"Patch Set 4: Code-Review+2\n\nI haven\u0027t had a moment to test this locally, but this looks excellent.","accounts_in_message":[],"_revision_number":4},{"id":"a1d54b72d0404dc1fd26db47cadd1c9de26975de","author":{"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},"date":"2017-01-23 20:35:23.000000000","message":"Patch Set 4: Code-Review+2 Workflow+1\n\nReady to upgrade my vote based on some smoke tests.","accounts_in_message":[],"_revision_number":4},{"id":"a371e4eb80fed7723be9964c58eb287b9cdc55db","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2017-01-23 20:35:39.000000000","message":"Patch Set 4: -Verified\n\nStarting gate jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":4},{"id":"14b72ef3816dd4cd2053b14f5002bba71200a140","date":"2017-01-23 22:19:31.000000000","message":"Change has been successfully merged into the git repository by Jenkins","accounts_in_message":[],"_revision_number":4},{"id":"c6b786e3ee67956bcdcabbcdf92bcf4f2be79e28","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2017-01-23 22:19:31.000000000","message":"Patch Set 4: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- gate-python-glanceclient-docs-ubuntu-xenial http://docs-draft.openstack.org/92/352892/4/gate/gate-python-glanceclient-docs-ubuntu-xenial/65b7ec3//doc/build/html/ : SUCCESS in 4m 18s\n- gate-python-glanceclient-pep8-ubuntu-xenial http://logs.openstack.org/92/352892/4/gate/gate-python-glanceclient-pep8-ubuntu-xenial/326f96c/ : SUCCESS in 4m 26s\n- gate-python-glanceclient-python27-ubuntu-xenial http://logs.openstack.org/92/352892/4/gate/gate-python-glanceclient-python27-ubuntu-xenial/239cd67/ : SUCCESS in 4m 43s\n- gate-python-glanceclient-python35 http://logs.openstack.org/92/352892/4/gate/gate-python-glanceclient-python35/f0f478f/ : SUCCESS in 2m 20s\n- gate-python-glanceclient-releasenotes http://docs-draft.openstack.org/92/352892/4/gate/gate-python-glanceclient-releasenotes/d349ef9//releasenotes/build/html/ : SUCCESS in 4m 12s\n- gate-python-glanceclient-requirements http://logs.openstack.org/92/352892/4/gate/gate-python-glanceclient-requirements/628b81b/ : SUCCESS in 3m 13s\n- gate-tempest-dsvm-neutron-src-python-glanceclient-ubuntu-xenial http://logs.openstack.org/92/352892/4/gate/gate-tempest-dsvm-neutron-src-python-glanceclient-ubuntu-xenial/c3dac3d/ : SUCCESS in 1h 43m 26s\n- gate-glanceclient-dsvm-functional-ubuntu-xenial http://logs.openstack.org/92/352892/4/gate/gate-glanceclient-dsvm-functional-ubuntu-xenial/f27ad2c/ : SUCCESS in 41m 07s","accounts_in_message":[],"_revision_number":4}],"current_revision_number":4,"current_revision":"610177a779b95f931356c1e90b05a5bffd2616b3","revisions":{"1fe689760de0abf108d94cdc26ae1950ea214e6c":{"kind":"REWORK","_number":1,"created":"2016-08-09 13:14:06.000000000","uploader":{"_account_id":18494,"name":"Ravi Shekhar Jethani","email":"rsjethani@gmail.com","username":"rsjethani"},"ref":"refs/changes/92/352892/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-glanceclient","ref":"refs/changes/92/352892/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/92/352892/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/92/352892/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/92/352892/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-glanceclient refs/changes/92/352892/1"}}},"commit":{"parents":[{"commit":"98bbbb88e74cd0a631c74cac425db9864ad3d93d","subject":"Replace OpenStack LLC with OpenStack Foundation","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/98bbbb88e74cd0a631c74cac425db9864ad3d93d"}]}],"author":{"name":"Ravi Jethani","email":"ravishekar.jethani@nttdata.com","date":"2016-04-22 13:54:49.000000000","tz":0},"committer":{"name":"Ravi Jethani","email":"ravishekar.jethani@nttdata.com","date":"2016-08-09 13:11:15.000000000","tz":330},"subject":"WIP: Add request id to returned objects","message":"WIP: Add request id to returned objects\n\nAdding two classes RequestIdProxy and GeneratorProxy derived from\nwrapt.ObjectProxy to wrap objects returned from the API.\n\nGeneratorProxy class is used to wrap generator objects returned\nby cases like images.list() etc. whereas RequestIdProxy class is\nused to wrap non-generator object cases like images.create() etc.\n\nIn all cases the returned object will have the same behavior as\nthe wrapped(original) object. However now the returned objects\nwill have an extra property \u0027request_ids\u0027 which is a list of\nexactly one request id.\n\nFor generator cases the request_ids property will be an empty list\nuntil the underlying generator is invoked at-least once.\n\nChange-Id: If8c0e0843270ff718a37ca2697afeb8da22aa3b1\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/1fe689760de0abf108d94cdc26ae1950ea214e6c"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/1fe689760de0abf108d94cdc26ae1950ea214e6c"}]},"branch":"refs/heads/master"},"3719b5373ae4284d8ab3a60c4d1f9d7d7ee39d17":{"kind":"REWORK","_number":2,"created":"2016-11-02 10:26:10.000000000","uploader":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"ref":"refs/changes/92/352892/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-glanceclient","ref":"refs/changes/92/352892/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/92/352892/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/92/352892/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/92/352892/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-glanceclient refs/changes/92/352892/2"}}},"commit":{"parents":[{"commit":"dca95300de0ff0a455efe946f6fbc607da25acd9","subject":"Updated from global requirements","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/dca95300de0ff0a455efe946f6fbc607da25acd9"}]}],"author":{"name":"Ravi Jethani","email":"ravishekar.jethani@nttdata.com","date":"2016-04-22 13:54:49.000000000","tz":0},"committer":{"name":"Abhishek Kekane","email":"abhishek.kekane@nttdata.com","date":"2016-11-02 09:51:19.000000000","tz":330},"subject":"Add request id to returned objects","message":"Add request id to returned objects\n\nAdding two classes RequestIdProxy and GeneratorProxy derived from\nwrapt.ObjectProxy to wrap objects returned from the API.\n\nGeneratorProxy class is used to wrap generator objects returned\nby cases like images.list() etc. whereas RequestIdProxy class is\nused to wrap non-generator object cases like images.create() etc.\n\nIn all cases the returned object will have the same behavior as\nthe wrapped(original) object. However now the returned objects\nwill have an extra property \u0027request_ids\u0027 which is a list of\nexactly one request id.\n\nFor generator cases the request_ids property will be an empty list\nuntil the underlying generator is invoked at-least once.\n\nCloses-Bug: #1525259\nBlueprint: return-request-id-to-caller\nChange-Id: If8c0e0843270ff718a37ca2697afeb8da22aa3b1\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/3719b5373ae4284d8ab3a60c4d1f9d7d7ee39d17"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/3719b5373ae4284d8ab3a60c4d1f9d7d7ee39d17"}]},"branch":"refs/heads/master"},"b8078f84ecc3d20a5a0a1c65c7cebd59512bfad2":{"kind":"REWORK","_number":3,"created":"2017-01-11 07:10:45.000000000","uploader":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"ref":"refs/changes/92/352892/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-glanceclient","ref":"refs/changes/92/352892/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/92/352892/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/92/352892/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/92/352892/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-glanceclient refs/changes/92/352892/3"}}},"commit":{"parents":[{"commit":"efb5e2aa32db3f36557abdb1ddf85709b116e746","subject":"Add vhdx in disk_format","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/efb5e2aa32db3f36557abdb1ddf85709b116e746"}]}],"author":{"name":"Ravi Jethani","email":"ravishekar.jethani@nttdata.com","date":"2016-04-22 13:54:49.000000000","tz":0},"committer":{"name":"Abhishek Kekane","email":"abhishek.kekane@nttdata.com","date":"2017-01-11 07:10:22.000000000","tz":330},"subject":"Add request id to returned objects","message":"Add request id to returned objects\n\nAdding two classes RequestIdProxy and GeneratorProxy derived from\nwrapt.ObjectProxy to wrap objects returned from the API.\n\nGeneratorProxy class is used to wrap generator objects returned\nby cases like images.list() etc. whereas RequestIdProxy class is\nused to wrap non-generator object cases like images.create() etc.\n\nIn all cases the returned object will have the same behavior as\nthe wrapped(original) object. However now the returned objects\nwill have an extra property \u0027request_ids\u0027 which is a list of\nexactly one request id.\n\nFor generator cases the request_ids property will be an empty list\nuntil the underlying generator is invoked at-least once.\n\nCo-Authored-By: Abhishek Kekane \u003cabhishek.kekane@nttdata.com\u003e\n\nCloses-Bug: #1525259\nBlueprint: return-request-id-to-caller\nChange-Id: If8c0e0843270ff718a37ca2697afeb8da22aa3b1\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/b8078f84ecc3d20a5a0a1c65c7cebd59512bfad2"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/b8078f84ecc3d20a5a0a1c65c7cebd59512bfad2"}]},"branch":"refs/heads/master"},"610177a779b95f931356c1e90b05a5bffd2616b3":{"kind":"REWORK","_number":4,"created":"2017-01-20 09:42:40.000000000","uploader":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"ref":"refs/changes/92/352892/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-glanceclient","ref":"refs/changes/92/352892/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/92/352892/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/92/352892/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-glanceclient refs/changes/92/352892/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-glanceclient refs/changes/92/352892/4"}}},"commit":{"parents":[{"commit":"54e6faadf216b61d2d2f1b2ad6f4dd925f053117","subject":"Updated from global requirements","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/54e6faadf216b61d2d2f1b2ad6f4dd925f053117"}]}],"author":{"name":"Ravi Jethani","email":"ravishekar.jethani@nttdata.com","date":"2016-04-22 13:54:49.000000000","tz":0},"committer":{"name":"Abhishek Kekane","email":"abhishek.kekane@nttdata.com","date":"2017-01-20 09:20:42.000000000","tz":330},"subject":"Add request id to returned objects","message":"Add request id to returned objects\n\nAdding two classes RequestIdProxy and GeneratorProxy derived from\nwrapt.ObjectProxy to wrap objects returned from the API.\n\nGeneratorProxy class is used to wrap generator objects returned\nby cases like images.list() etc. whereas RequestIdProxy class is\nused to wrap non-generator object cases like images.create() etc.\n\nIn all cases the returned object will have the same behavior as\nthe wrapped(original) object. However now the returned objects\nwill have an extra property \u0027request_ids\u0027 which is a list of\nexactly one request id.\n\nFor generator cases the request_ids property will be an empty list\nuntil the underlying generator is invoked at-least once.\n\nCo-Authored-By: Abhishek Kekane \u003cabhishek.kekane@nttdata.com\u003e\n\nCloses-Bug: #1525259\nBlueprint: return-request-id-to-caller\nChange-Id: If8c0e0843270ff718a37ca2697afeb8da22aa3b1\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/610177a779b95f931356c1e90b05a5bffd2616b3"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-glanceclient/commit/610177a779b95f931356c1e90b05a5bffd2616b3"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
