)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"91a5ce50d4dd8e66a6a78d277b62d33fb68865cc","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Remove usage of glance.generate_image_url"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"we should use image.generate_image_url instead of"},{"line_number":10,"context_line":"glance.generate_image_url in nova side to consume image API"},{"line_number":11,"context_line":"this patch changes the usage"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I6ca9aeba78f7d939a3921a368d36612f8ede44da"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"5f4e5783_9d015b3b","line":11,"range":{"start_line":9,"start_character":0,"end_line":11,"end_character":28},"updated":"2017-10-16 23:04:55.000000000","message":"I cannot understand why we need to do that from image.generate_image_url TBH from this commit message..","commit_id":"2f42fd145eecde0534ed95fc7a368aa5349f1020"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"1d1fbd401dc7fe8ba61beece9cc05a8169b48d3b","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Remove usage of glance.generate_image_url"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"we should use image.generate_image_url instead of"},{"line_number":10,"context_line":"glance.generate_image_url in nova side to consume image API"},{"line_number":11,"context_line":"this patch changes the usage"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I6ca9aeba78f7d939a3921a368d36612f8ede44da"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"3f4b6375_07913b9a","line":11,"range":{"start_line":9,"start_character":0,"end_line":11,"end_character":28},"in_reply_to":"5f4e5783_9d015b3b","updated":"2017-10-19 02:26:42.000000000","message":"ok, will elaborate","commit_id":"2f42fd145eecde0534ed95fc7a368aa5349f1020"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d975e24eafa6d9d151719b9e597f3441128300b1","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Remove usage of glance.generate_image_url"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"we abstract image (as well as volume etc) to image api and"},{"line_number":10,"context_line":"volume api instead of glance and cinder directly usage, so"},{"line_number":11,"context_line":"in most nova code we should use image.generate_image_url instead of"},{"line_number":12,"context_line":"glance.generate_image_url. Thus we can utlize generic api of"},{"line_number":13,"context_line":"image API instead of call glance client wrapper function directly."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"3f4b6375_888650db","line":10,"range":{"start_line":10,"start_character":40,"end_line":10,"end_character":54},"updated":"2017-10-30 15:13:36.000000000","message":"direct usage","commit_id":"a64d7e43872c7d4a6a2a7d85e9d69ea1a6286b47"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"7e5599c12a9913942c23c54f4b61cff894f66d3a","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Remove usage of glance.generate_image_url"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"we abstract image (as well as volume etc) to image api and"},{"line_number":10,"context_line":"volume api instead of glance and cinder directly usage, so"},{"line_number":11,"context_line":"in most nova code we should use image.generate_image_url instead of"},{"line_number":12,"context_line":"glance.generate_image_url. Thus we can utlize generic api of"},{"line_number":13,"context_line":"image API instead of call glance client wrapper function directly."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"3f4b6375_f5aa2217","line":10,"range":{"start_line":10,"start_character":40,"end_line":10,"end_character":54},"in_reply_to":"3f4b6375_888650db","updated":"2017-10-31 08:17:15.000000000","message":"Done","commit_id":"a64d7e43872c7d4a6a2a7d85e9d69ea1a6286b47"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"f08a0f822cd6be17f58b524ce7dcbf76bdc63a44","unresolved":false,"context_lines":[{"line_number":9,"context_line":"we abstract image (as well as volume etc) to image api and"},{"line_number":10,"context_line":"volume api instead of glance and cinder direct usage, so"},{"line_number":11,"context_line":"in most nova code we should use image.generate_image_url instead of"},{"line_number":12,"context_line":"glance.generate_image_url. Thus we can utlize generic api of"},{"line_number":13,"context_line":"image API instead of call glance client wrapper function directly."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I6ca9aeba78f7d939a3921a368d36612f8ede44da"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"df87a7cf_893f0f24","line":12,"range":{"start_line":12,"start_character":39,"end_line":12,"end_character":45},"updated":"2017-12-06 15:21:42.000000000","message":"utilize","commit_id":"7833ada4fd8e42a773cb6849449708fcb20cbc0c"}],"nova/api/openstack/compute/servers.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"447d1dc6b06d97e6a979cd28ad35edc89df1fb35","unresolved":false,"context_lines":[{"line_number":49,"context_line":"from nova import context as nova_context"},{"line_number":50,"context_line":"from nova import exception"},{"line_number":51,"context_line":"from nova.i18n import _"},{"line_number":52,"context_line":"from nova import images"},{"line_number":53,"context_line":"from nova import objects"},{"line_number":54,"context_line":"from nova.objects import service as service_obj"},{"line_number":55,"context_line":"from nova.policies import servers as server_policies"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f4e5783_6f8f6f23","line":52,"range":{"start_line":52,"start_character":17,"end_line":52,"end_character":23},"updated":"2017-10-12 07:19:45.000000000","message":"image","commit_id":"480b07a806321a7b86ce3807ecddab7f533f7283"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"9d1aefb8ef4e350dce7e1d2697b99a65e273803a","unresolved":false,"context_lines":[{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        super(ServersController, self).__init__(**kwargs)"},{"line_number":132,"context_line":"        self.compute_api \u003d compute.API()"},{"line_number":133,"context_line":"        self.image_api \u003d image.API()"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        # TODO(alex_xu): The final goal is that merging all of"},{"line_number":136,"context_line":"        # extended json-schema into server main json-schema."}],"source_content_type":"text/x-python","patch_set":5,"id":"5f4e5783_fa15e840","line":133,"range":{"start_line":133,"start_character":8,"end_line":133,"end_character":36},"updated":"2017-10-17 10:01:28.000000000","message":"accessing some method which does not depends on class object via class object is not good. it should be global/static method like it was in glance.py","commit_id":"2f42fd145eecde0534ed95fc7a368aa5349f1020"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"1d1fbd401dc7fe8ba61beece9cc05a8169b48d3b","unresolved":false,"context_lines":[{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        super(ServersController, self).__init__(**kwargs)"},{"line_number":132,"context_line":"        self.compute_api \u003d compute.API()"},{"line_number":133,"context_line":"        self.image_api \u003d image.API()"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        # TODO(alex_xu): The final goal is that merging all of"},{"line_number":136,"context_line":"        # extended json-schema into server main json-schema."}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_c7e8c317","line":133,"range":{"start_line":133,"start_character":8,"end_line":133,"end_character":36},"in_reply_to":"5f4e5783_fa15e840","updated":"2017-10-19 02:26:42.000000000","message":"ok, will modify, thx","commit_id":"2f42fd145eecde0534ed95fc7a368aa5349f1020"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"f08a0f822cd6be17f58b524ce7dcbf76bdc63a44","unresolved":false,"context_lines":[{"line_number":1023,"context_line":""},{"line_number":1024,"context_line":"        # build location of newly-created image entity"},{"line_number":1025,"context_line":"        image_id \u003d str(image[\u0027id\u0027])"},{"line_number":1026,"context_line":"        image_ref \u003d image_api.API().generate_image_url(image_id, context)"},{"line_number":1027,"context_line":""},{"line_number":1028,"context_line":"        resp \u003d webob.Response(status_int\u003d202)"},{"line_number":1029,"context_line":"        resp.headers[\u0027Location\u0027] \u003d image_ref"}],"source_content_type":"text/x-python","patch_set":14,"id":"df87a7cf_896dcf33","line":1026,"range":{"start_line":1026,"start_character":33,"end_line":1026,"end_character":35},"updated":"2017-12-06 15:21:42.000000000","message":"technically, since it\u0027s a staticmethod, you don\u0027t need to instantiate the API object...","commit_id":"7833ada4fd8e42a773cb6849449708fcb20cbc0c"}],"nova/notifications/base.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d975e24eafa6d9d151719b9e597f3441128300b1","unresolved":false,"context_lines":[{"line_number":394,"context_line":"        modifications."},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"    \"\"\""},{"line_number":397,"context_line":"    image_api \u003d image.API()"},{"line_number":398,"context_line":"    image_ref_url \u003d image_api.generate_image_url(instance.image_ref)"},{"line_number":399,"context_line":""},{"line_number":400,"context_line":"    instance_type \u003d instance.get_flavor()"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f4b6375_c8f32873","line":397,"updated":"2017-10-30 15:13:36.000000000","message":"no need to instantiate the API object, since generate_image_url is a @staticmethod. And, to be consistent with your changes in manager.py, it\u0027s better to just do:\n\n image_ref_url \u003d image_api.API.generate_image_url(instance.image_ref)","commit_id":"a64d7e43872c7d4a6a2a7d85e9d69ea1a6286b47"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"7e5599c12a9913942c23c54f4b61cff894f66d3a","unresolved":false,"context_lines":[{"line_number":394,"context_line":"        modifications."},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"    \"\"\""},{"line_number":397,"context_line":"    image_api \u003d image.API()"},{"line_number":398,"context_line":"    image_ref_url \u003d image_api.generate_image_url(instance.image_ref)"},{"line_number":399,"context_line":""},{"line_number":400,"context_line":"    instance_type \u003d instance.get_flavor()"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f4b6375_f59102f3","line":397,"in_reply_to":"3f4b6375_c8f32873","updated":"2017-10-31 08:17:15.000000000","message":"right, need to change accordingly","commit_id":"a64d7e43872c7d4a6a2a7d85e9d69ea1a6286b47"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"f08a0f822cd6be17f58b524ce7dcbf76bdc63a44","unresolved":false,"context_lines":[{"line_number":394,"context_line":"        modifications."},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"    \"\"\""},{"line_number":397,"context_line":"    image_ref_url \u003d image_api.API().generate_image_url(instance.image_ref,"},{"line_number":398,"context_line":"                                                       context)"},{"line_number":399,"context_line":""},{"line_number":400,"context_line":"    instance_type \u003d instance.get_flavor()"}],"source_content_type":"text/x-python","patch_set":14,"id":"df87a7cf_29660353","line":397,"range":{"start_line":397,"start_character":33,"end_line":397,"end_character":35},"updated":"2017-12-06 15:21:42.000000000","message":"ditto","commit_id":"7833ada4fd8e42a773cb6849449708fcb20cbc0c"}]}
