)]}'
{"cinder/api/contrib/services.py":[{"author":{"_account_id":20764,"name":"Sachin","email":"psachin@redhat.com","username":"psachin"},"change_message_id":"a1bc5ac4f7e27941ac4d7f6732caa3c249967436","unresolved":false,"context_lines":[{"line_number":222,"context_line":"                svc.disabled_reason \u003d ret_val[\u0027disabled_reason\u0027]"},{"line_number":223,"context_line":"            svc.save()"},{"line_number":224,"context_line":"        except exception.HostBinaryNotFound:"},{"line_number":225,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003d_(\"service not found\"))"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"        ret_val.update({\u0027host\u0027: host, \u0027service\u0027: service,"},{"line_number":228,"context_line":"                        \u0027binary\u0027: binary, \u0027status\u0027: status})"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aed3d3a_bb1f0207","line":225,"updated":"2016-02-29 07:59:11.000000000","message":"Shouldn\u0027t the explanation also be changed?","commit_id":"555fccd45b0cde999593257448873617354d7b1b"},{"author":{"_account_id":20764,"name":"Sachin","email":"psachin@redhat.com","username":"psachin"},"change_message_id":"79709b8913995c0c4002dc5d530a73970e028965","unresolved":false,"context_lines":[{"line_number":222,"context_line":"                svc.disabled_reason \u003d ret_val[\u0027disabled_reason\u0027]"},{"line_number":223,"context_line":"            svc.save()"},{"line_number":224,"context_line":"        except exception.HostBinaryNotFound:"},{"line_number":225,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003d_(\"service not found\"))"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"        ret_val.update({\u0027host\u0027: host, \u0027service\u0027: service,"},{"line_number":228,"context_line":"                        \u0027binary\u0027: binary, \u0027status\u0027: status})"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aed3d3a_ac6b4af0","line":225,"in_reply_to":"9aed3d3a_6c9dc2bb","updated":"2016-02-29 09:29:54.000000000","message":"Done","commit_id":"555fccd45b0cde999593257448873617354d7b1b"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"ffc4483e311a256ffca48b374b8f9136bb8ce7f2","unresolved":false,"context_lines":[{"line_number":222,"context_line":"                svc.disabled_reason \u003d ret_val[\u0027disabled_reason\u0027]"},{"line_number":223,"context_line":"            svc.save()"},{"line_number":224,"context_line":"        except exception.HostBinaryNotFound:"},{"line_number":225,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003d_(\"service not found\"))"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"        ret_val.update({\u0027host\u0027: host, \u0027service\u0027: service,"},{"line_number":228,"context_line":"                        \u0027binary\u0027: binary, \u0027status\u0027: status})"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aed3d3a_6c9dc2bb","line":225,"in_reply_to":"9aed3d3a_9133ff61","updated":"2016-02-29 09:18:14.000000000","message":"There\u0027s certainly no need for message change. It\u0027s PUT request on \"services\" resource, not host binary. It\u0027s fine.","commit_id":"555fccd45b0cde999593257448873617354d7b1b"},{"author":{"_account_id":15961,"name":"lisali","email":"xiaoyan.li@intel.com","username":"lisali"},"change_message_id":"3a6a6b5fa46291a4a65168ff58a148397710f308","unresolved":false,"context_lines":[{"line_number":222,"context_line":"                svc.disabled_reason \u003d ret_val[\u0027disabled_reason\u0027]"},{"line_number":223,"context_line":"            svc.save()"},{"line_number":224,"context_line":"        except exception.HostBinaryNotFound:"},{"line_number":225,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003d_(\"service not found\"))"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"        ret_val.update({\u0027host\u0027: host, \u0027service\u0027: service,"},{"line_number":228,"context_line":"                        \u0027binary\u0027: binary, \u0027status\u0027: status})"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aed3d3a_bbaf0229","line":225,"in_reply_to":"9aed3d3a_bb1f0207","updated":"2016-02-29 08:16:08.000000000","message":"I think no need to change.","commit_id":"555fccd45b0cde999593257448873617354d7b1b"},{"author":{"_account_id":20764,"name":"Sachin","email":"psachin@redhat.com","username":"psachin"},"change_message_id":"f9cb36afc68e706d3a5bcd220537909434c614b9","unresolved":false,"context_lines":[{"line_number":222,"context_line":"                svc.disabled_reason \u003d ret_val[\u0027disabled_reason\u0027]"},{"line_number":223,"context_line":"            svc.save()"},{"line_number":224,"context_line":"        except exception.HostBinaryNotFound:"},{"line_number":225,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003d_(\"service not found\"))"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"        ret_val.update({\u0027host\u0027: host, \u0027service\u0027: service,"},{"line_number":228,"context_line":"                        \u0027binary\u0027: binary, \u0027status\u0027: status})"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aed3d3a_9133ff61","line":225,"in_reply_to":"9aed3d3a_bbaf0229","updated":"2016-02-29 09:02:04.000000000","message":"This will give the user a false notification. In my opinion the explanation should be \"host binary not found\"(or similar) and you should create another exception for ServiceNotFound","commit_id":"555fccd45b0cde999593257448873617354d7b1b"}],"cinder/exception.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"a2b98ef2a9bde194ef1dcf52abaddc75bec8df89","unresolved":false,"context_lines":[{"line_number":363,"context_line":""},{"line_number":364,"context_line":"class ServiceNotFound(NotFound):"},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"    def __init__(self, message\u003dNone, **kwargs):"},{"line_number":367,"context_line":"        if kwargs.get(\u0027host\u0027, None):"},{"line_number":368,"context_line":"            self.message \u003d _(\"Service %(service_id)s could not be \""},{"line_number":369,"context_line":"                             \"found on host %(host)s.\")"},{"line_number":370,"context_line":"        else:"},{"line_number":371,"context_line":"            self.message \u003d _(\"Service %(service_id)s could not be found.\")"},{"line_number":372,"context_line":"        super(ServiceNotFound, self).__init__(None, **kwargs)"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":""},{"line_number":375,"context_line":"class ServiceTooOld(Invalid):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aed3d3a_6d1f375b","line":372,"range":{"start_line":366,"start_character":0,"end_line":372,"end_character":61},"updated":"2016-03-01 09:44:30.000000000","message":"Oh, right, I haven\u0027t foreseen that this will require it. But it looks like a correct approach.","commit_id":"4a9b05b7a049004dfe998c446f21714865fa8afc"}],"cinder/tests/unit/api/contrib/test_services.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"a2b98ef2a9bde194ef1dcf52abaddc75bec8df89","unresolved":false,"context_lines":[{"line_number":158,"context_line":"def fake_service_update(context, service_id, values):"},{"line_number":159,"context_line":"    service \u003d fake_service_get_by_id(service_id)"},{"line_number":160,"context_line":"    if service is None:"},{"line_number":161,"context_line":"        raise exception.HostBinaryNotFound(service_id\u003dservice_id)"},{"line_number":162,"context_line":"    else:"},{"line_number":163,"context_line":"        {\u0027host\u0027: \u0027host1\u0027, \u0027service\u0027: \u0027cinder-volume\u0027,"},{"line_number":164,"context_line":"         \u0027disabled\u0027: values[\u0027disabled\u0027]}"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aed3d3a_cdb3e34b","line":161,"range":{"start_line":161,"start_character":8,"end_line":161,"end_character":65},"updated":"2016-03-01 09:44:30.000000000","message":"Isn\u0027t the patch removing HostBinaryNotFound from cinder.exception module?","commit_id":"4a9b05b7a049004dfe998c446f21714865fa8afc"},{"author":{"_account_id":15961,"name":"lisali","email":"xiaoyan.li@intel.com","username":"lisali"},"change_message_id":"97aa0308ec96f3326c77175c335442ba2a9ec4b6","unresolved":false,"context_lines":[{"line_number":158,"context_line":"def fake_service_update(context, service_id, values):"},{"line_number":159,"context_line":"    service \u003d fake_service_get_by_id(service_id)"},{"line_number":160,"context_line":"    if service is None:"},{"line_number":161,"context_line":"        raise exception.HostBinaryNotFound(service_id\u003dservice_id)"},{"line_number":162,"context_line":"    else:"},{"line_number":163,"context_line":"        {\u0027host\u0027: \u0027host1\u0027, \u0027service\u0027: \u0027cinder-volume\u0027,"},{"line_number":164,"context_line":"         \u0027disabled\u0027: values[\u0027disabled\u0027]}"}],"source_content_type":"text/x-python","patch_set":2,"id":"7af24918_365990ff","line":161,"range":{"start_line":161,"start_character":8,"end_line":161,"end_character":65},"in_reply_to":"9aed3d3a_cdb3e34b","updated":"2016-03-02 05:25:06.000000000","message":"Thank you to find the point!","commit_id":"4a9b05b7a049004dfe998c446f21714865fa8afc"}]}
