)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"8f36be462187fa68021fdfc7da391de3de00d449","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adds a new microversion to show the \u0027locked_by\u0027 information in"},{"line_number":10,"context_line":"server Show and List detail API response."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Implements blueprint add-locking-information-in-server-get-response"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I3e5dc6e37f130f70e3a861a9906bb062c6110742"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9a41bdd9_7ec27a86","line":11,"updated":"2015-07-16 11:58:41.000000000","message":"We should add APIImpact flag","commit_id":"69bcaaba8f3fe6b542ecee0e67008830d6ac924a"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"aef1079d2d9903c7f063d084cb3b2fd54e9cd46e","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"APIImpact"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Implements blueprint add-locking-information-in-server-get-response"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: I3e5dc6e37f130f70e3a861a9906bb062c6110742"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"3a50d1a3_9c53f3e1","line":17,"updated":"2015-07-29 06:49:52.000000000","message":"Current patch is different from the approved nova-spec, so here should contain\n\n Depends-on: I5be664c3e99adc37738f8b074f1891dad97497b1","commit_id":"029e34e74f3b7023504de68c80790309e927940c"}],"nova/api/openstack/compute/plugins/v3/servers.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"df4059f42f3e7fcf23318136fa1b2804d6956d71","unresolved":false,"context_lines":[{"line_number":277,"context_line":"        for server in servers[\u0027servers\u0027]:"},{"line_number":278,"context_line":"            instance \u003d next(inst for inst in instance_list"},{"line_number":279,"context_line":"                            if inst[\"uuid\"] \u003d\u003d server[\"id\"])"},{"line_number":280,"context_line":"            self._add_locking_information(req, instance, server)"},{"line_number":281,"context_line":"        return servers"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"    def _get_servers(self, req, is_detail):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a41bdd9_7e383ad3","line":280,"updated":"2015-07-16 11:58:17.000000000","message":"How about we add locking info in the view builder? Probably add parameter \u0027show_locked_by\u0027 to _view_builder.detail. In 2.7 we pass show_locked_by\u003dTrue. Then we needn\u0027t iterate the servers list again.","commit_id":"69bcaaba8f3fe6b542ecee0e67008830d6ac924a"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"8d11af94b1ad518520921bd91b343a103a814933","unresolved":false,"context_lines":[{"line_number":277,"context_line":"        for server in servers[\u0027servers\u0027]:"},{"line_number":278,"context_line":"            instance \u003d next(inst for inst in instance_list"},{"line_number":279,"context_line":"                            if inst[\"uuid\"] \u003d\u003d server[\"id\"])"},{"line_number":280,"context_line":"            self._add_locking_information(req, instance, server)"},{"line_number":281,"context_line":"        return servers"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"    def _get_servers(self, req, is_detail):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a41bdd9_64ede924","line":280,"in_reply_to":"9a41bdd9_7e383ad3","updated":"2015-07-17 01:57:01.000000000","message":"Nice approach. I like that. Thanks. ll do.","commit_id":"69bcaaba8f3fe6b542ecee0e67008830d6ac924a"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"df4059f42f3e7fcf23318136fa1b2804d6956d71","unresolved":false,"context_lines":[{"line_number":404,"context_line":"        else:"},{"line_number":405,"context_line":"            response \u003d self._view_builder.index(req, instance_list)"},{"line_number":406,"context_line":"        req.cache_db_instances(instance_list)"},{"line_number":407,"context_line":"        return response, instance_list"},{"line_number":408,"context_line":""},{"line_number":409,"context_line":"    def _get_server(self, context, req, instance_uuid):"},{"line_number":410,"context_line":"        \"\"\"Utility function for looking up an instance by uuid.\"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a41bdd9_6a0f1937","line":407,"updated":"2015-07-16 11:58:17.000000000","message":"actually you can get from req, as the line 406 cache it.","commit_id":"69bcaaba8f3fe6b542ecee0e67008830d6ac924a"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"bb735511b444b08b39e03265df7246cefb6e0718","unresolved":false,"context_lines":[{"line_number":504,"context_line":"        authorize(context, action\u003d\"show\")"},{"line_number":505,"context_line":"        req.cache_db_instance(instance)"},{"line_number":506,"context_line":"        return self._prepare_instance_info(req, instance,"},{"line_number":507,"context_line":"                                           self._view_builder.show,)"},{"line_number":508,"context_line":""},{"line_number":509,"context_line":"    @wsgi.response(202)"},{"line_number":510,"context_line":"    @extensions.expected_errors((400, 403, 409, 413))"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a41bdd9_8404a8c6","line":507,"updated":"2015-07-17 05:04:11.000000000","message":"\",\" at the end of _view_builder.show seems unnecessary but I\u0027m not sure why the test can pass..","commit_id":"f58fbee5a355c2ff92ce1ef990417bffc437a56b"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"8d625c119ecd7c85961e749aacae0c0ad27391c7","unresolved":false,"context_lines":[{"line_number":504,"context_line":"        authorize(context, action\u003d\"show\")"},{"line_number":505,"context_line":"        req.cache_db_instance(instance)"},{"line_number":506,"context_line":"        return self._prepare_instance_info(req, instance,"},{"line_number":507,"context_line":"                                           self._view_builder.show,)"},{"line_number":508,"context_line":""},{"line_number":509,"context_line":"    @wsgi.response(202)"},{"line_number":510,"context_line":"    @extensions.expected_errors((400, 403, 409, 413))"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a41bdd9_64d5e4b7","line":507,"in_reply_to":"9a41bdd9_8404a8c6","updated":"2015-07-17 05:25:15.000000000","message":"oops, even m surprised about pep8 pass :)","commit_id":"f58fbee5a355c2ff92ce1ef990417bffc437a56b"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"bfc49d85d0eb8cd389118b2bd969db1b954db721","unresolved":false,"context_lines":[{"line_number":245,"context_line":"            LOG.debug(\"Did not find any server resize schemas\")"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"    @wsgi.Controller.api_version(\u00272.1\u0027, \u00272.7\u0027)"},{"line_number":248,"context_line":"    def _prepare_instance_info(self, req, instance, func):"},{"line_number":249,"context_line":"        # NOTE(gmann): lock information is added in version \u00272.8\u0027."},{"line_number":250,"context_line":"        # it will not be added for versions below \u00272.8\u0027"},{"line_number":251,"context_line":"        return func(req, instance)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a50d1a3_61ed97b6","line":248,"updated":"2015-07-27 07:41:10.000000000","message":"Even though our spec and doc support this \n\nbut there are some discussions and disagreements on using microversion in functions other than top layer \u0027create, index etc\u0027\n\nhttp://lists.openstack.org/pipermail/openstack-dev/2015-March/059068.html","commit_id":"8bb1e2988521d1dc77aeb1ae67f196052901bc99"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"eaec8def0e6aef65355c0919b2890f614e280f8a","unresolved":false,"context_lines":[{"line_number":245,"context_line":"            LOG.debug(\"Did not find any server resize schemas\")"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"    @wsgi.Controller.api_version(\u00272.1\u0027, \u00272.7\u0027)"},{"line_number":248,"context_line":"    def _prepare_instance_info(self, req, instance, func):"},{"line_number":249,"context_line":"        # NOTE(gmann): lock information is added in version \u00272.8\u0027."},{"line_number":250,"context_line":"        # it will not be added for versions below \u00272.8\u0027"},{"line_number":251,"context_line":"        return func(req, instance)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a50d1a3_cce93b1c","line":248,"in_reply_to":"3a50d1a3_61ed97b6","updated":"2015-07-27 10:02:45.000000000","message":"Thanks jichenjc. That is nice idea, i just missed/forgot that. I like that approach.","commit_id":"8bb1e2988521d1dc77aeb1ae67f196052901bc99"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"c95c2da55682e5f5f5ebcb21743ce2216a169add","unresolved":false,"context_lines":[{"line_number":495,"context_line":"        authorize(context, action\u003d\"show\")"},{"line_number":496,"context_line":"        req.cache_db_instance(instance)"},{"line_number":497,"context_line":"        show_locked_by \u003d (req.api_version_request \u003e\u003d"},{"line_number":498,"context_line":"                          api_version_request.APIVersionRequest(\"2.9\"))"},{"line_number":499,"context_line":"        return self._view_builder.show(req, instance,"},{"line_number":500,"context_line":"                                       show_locked_by\u003dshow_locked_by)"},{"line_number":501,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"3a50d1a3_aa06d6cb","line":498,"updated":"2015-07-28 10:37:11.000000000","message":"This would be a lot less code, and a lot more understandable, if this comparison happened one more layer down.","commit_id":"875ff1f10165029c8b53ed75bba156fca78e755b"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"482f1f6bc13b7db38f4a6e1b14632e2256e526c3","unresolved":false,"context_lines":[{"line_number":495,"context_line":"        authorize(context, action\u003d\"show\")"},{"line_number":496,"context_line":"        req.cache_db_instance(instance)"},{"line_number":497,"context_line":"        show_locked_by \u003d (req.api_version_request \u003e\u003d"},{"line_number":498,"context_line":"                          api_version_request.APIVersionRequest(\"2.9\"))"},{"line_number":499,"context_line":"        return self._view_builder.show(req, instance,"},{"line_number":500,"context_line":"                                       show_locked_by\u003dshow_locked_by)"},{"line_number":501,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"3a50d1a3_4a3e3229","line":498,"in_reply_to":"3a50d1a3_aa06d6cb","updated":"2015-07-28 10:43:27.000000000","message":"Yea, actually I thought of doing it in view builder but _view_builder.show is being used by another method also like update, rebuild etc where \"locked_by\" should not gets populated in response.","commit_id":"875ff1f10165029c8b53ed75bba156fca78e755b"}],"nova/api/openstack/compute/views/servers.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"c5accf401badfa55739904bc80d9a3617eee999d","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        :param request: API request"},{"line_number":134,"context_line":"        :param servers: List of servers in dictionary format"},{"line_number":135,"context_line":"        :param coll_name: Name of collection, used to generate the next link"},{"line_number":136,"context_line":"                          for a pagination query"},{"line_number":137,"context_line":"        :returns: Server data in dictionary format"},{"line_number":138,"context_line":"        \"\"\""},{"line_number":139,"context_line":"        server_list \u003d [func(request, server, show_locked_by\u003dshow_locked_by)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a41bdd9_446d40cb","line":136,"updated":"2015-07-17 04:57:46.000000000","message":"We need to update here also for a new show_locked_by argument","commit_id":"f58fbee5a355c2ff92ce1ef990417bffc437a56b"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"8d625c119ecd7c85961e749aacae0c0ad27391c7","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        :param request: API request"},{"line_number":134,"context_line":"        :param servers: List of servers in dictionary format"},{"line_number":135,"context_line":"        :param coll_name: Name of collection, used to generate the next link"},{"line_number":136,"context_line":"                          for a pagination query"},{"line_number":137,"context_line":"        :returns: Server data in dictionary format"},{"line_number":138,"context_line":"        \"\"\""},{"line_number":139,"context_line":"        server_list \u003d [func(request, server, show_locked_by\u003dshow_locked_by)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a41bdd9_24511c63","line":136,"in_reply_to":"9a41bdd9_446d40cb","updated":"2015-07-17 05:25:15.000000000","message":"Yes, Done.","commit_id":"f58fbee5a355c2ff92ce1ef990417bffc437a56b"}],"nova/api/openstack/rest_api_version_history.rst":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"bb8189d87eef43b2ac55f91aafe039680c9d0d3d","unresolved":false,"context_lines":[{"line_number":105,"context_line":"---"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"  Show instance lock information in new response attribute \u0027locked\u0027"},{"line_number":108,"context_line":"  in server details. Returned value will be True or False."}],"source_content_type":"text/x-rst","patch_set":15,"id":"3a50d1a3_a41bedc9","line":108,"updated":"2015-07-30 12:49:22.000000000","message":"Hum i\u0027m not an expert in english but that sounds difficult to understand\n\n  Exposes ``locked`` status in server details. Returned value can be True/False.","commit_id":"49a572a043f27623a15af5f1b8e54c3a560b805c"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"db74a10cb2b72ac69b11c8c0043454a67be40c13","unresolved":false,"context_lines":[{"line_number":105,"context_line":"---"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"  Show instance lock information in new response attribute \u0027locked\u0027"},{"line_number":108,"context_line":"  in server details. Returned value will be True or False."}],"source_content_type":"text/x-rst","patch_set":15,"id":"3a50d1a3_a9db934e","line":108,"in_reply_to":"3a50d1a3_a41bedc9","updated":"2015-07-31 12:36:05.000000000","message":"I\u0027ll fix the docs in a follow on.","commit_id":"49a572a043f27623a15af5f1b8e54c3a560b805c"}],"nova/tests/unit/api/openstack/compute/plugins/v3/test_servers.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"a1b8068faadd6c6c12c984f6bce6f643dfdd076f","unresolved":false,"context_lines":[{"line_number":220,"context_line":"        CONF.set_override(\u0027host\u0027, \u0027localhost\u0027, group\u003d\u0027glance\u0027)"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    def req(self, url, use_admin_context\u003dFalse):"},{"line_number":223,"context_line":"        return fakes.HTTPRequestV3.blank(url,"},{"line_number":224,"context_line":"                                         use_admin_context\u003duse_admin_context,"},{"line_number":225,"context_line":"                                         version\u003dself.wsgi_api_version)"},{"line_number":226,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9a41bdd9_04ac13ec","line":223,"updated":"2015-07-17 08:16:12.000000000","message":"We shouldn\u0027t use HTTPRequestV3 anymore, just use HTTPRequest. But this isn\u0027t your fault, the orignal code use HTTPRequestV3 also. So we can fix this later.","commit_id":"7fbebd1f24d0b55392d2266dd32f1051f6b123a0"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4d268c7c52a4a6bf1119b5998e5dcfc8b125d2f6","unresolved":false,"context_lines":[{"line_number":220,"context_line":"        CONF.set_override(\u0027host\u0027, \u0027localhost\u0027, group\u003d\u0027glance\u0027)"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    def req(self, url, use_admin_context\u003dFalse):"},{"line_number":223,"context_line":"        return fakes.HTTPRequestV3.blank(url,"},{"line_number":224,"context_line":"                                         use_admin_context\u003duse_admin_context,"},{"line_number":225,"context_line":"                                         version\u003dself.wsgi_api_version)"},{"line_number":226,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9a41bdd9_9a1f18b7","line":223,"in_reply_to":"9a41bdd9_04ac13ec","updated":"2015-07-17 08:35:49.000000000","message":"Yes, that is issue. Actually I can fix that but that will be unrelated changes to that. \n\nI think we can fix those later, if it is ok for you?","commit_id":"7fbebd1f24d0b55392d2266dd32f1051f6b123a0"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"3c49918034e0cb32b2f7c3d0ef94ea1fa8ae18a3","unresolved":false,"context_lines":[{"line_number":220,"context_line":"        CONF.set_override(\u0027host\u0027, \u0027localhost\u0027, group\u003d\u0027glance\u0027)"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    def req(self, url, use_admin_context\u003dFalse):"},{"line_number":223,"context_line":"        return fakes.HTTPRequestV3.blank(url,"},{"line_number":224,"context_line":"                                         use_admin_context\u003duse_admin_context,"},{"line_number":225,"context_line":"                                         version\u003dself.wsgi_api_version)"},{"line_number":226,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9a41bdd9_e9954088","line":223,"in_reply_to":"9a41bdd9_2e256e5b","updated":"2015-07-17 10:04:04.000000000","message":"Yup, Done","commit_id":"7fbebd1f24d0b55392d2266dd32f1051f6b123a0"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"4283ccf8e598d74a5609f4230d7cfa405e5ab68f","unresolved":false,"context_lines":[{"line_number":220,"context_line":"        CONF.set_override(\u0027host\u0027, \u0027localhost\u0027, group\u003d\u0027glance\u0027)"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    def req(self, url, use_admin_context\u003dFalse):"},{"line_number":223,"context_line":"        return fakes.HTTPRequestV3.blank(url,"},{"line_number":224,"context_line":"                                         use_admin_context\u003duse_admin_context,"},{"line_number":225,"context_line":"                                         version\u003dself.wsgi_api_version)"},{"line_number":226,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9a41bdd9_2e256e5b","line":223,"in_reply_to":"9a41bdd9_9a1f18b7","updated":"2015-07-17 09:48:20.000000000","message":"this is new code, so it is good to avoid to use HTTPRequestV3 as possible.","commit_id":"7fbebd1f24d0b55392d2266dd32f1051f6b123a0"}]}
