)]}'
{"glance/common/utils.py":[{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"6a1915bb90a70385d5e87404c6c05394ca340633","unresolved":false,"context_lines":[{"line_number":130,"context_line":"    return readfn"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"MAX_COOP_READER_BUFFER_SIZE \u003d 134217728  # 128M seems like a sane buffer limit"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"class CooperativeReader(object):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a80dd14_d4859407","line":133,"updated":"2015-03-08 16:49:06.000000000","message":"Please use the units module from oslo_utils, e.g.,\n\n    128 * units.Mi","commit_id":"461f24f5dc2b30d3fc3ae916fd4db529e81f1e19"},{"author":{"_account_id":8959,"name":"Lakshmi N Sampath","email":"lakshmi.sampath@hp.com","username":"lakshmi"},"change_message_id":"92d18acc6b30f9b66b3639bf5c53954aba6d6114","unresolved":false,"context_lines":[{"line_number":130,"context_line":"    return readfn"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"MAX_COOP_READER_BUFFER_SIZE \u003d 134217728  # 128M seems like a sane buffer limit"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"class CooperativeReader(object):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a80dd14_58070eca","line":133,"in_reply_to":"9a80dd14_d4859407","updated":"2015-03-09 07:08:25.000000000","message":"There was an issue with rebasing which was picking up committed code from master branch as new change. After fixing it, common/utils is not required any more for this patch.  Regarding the comment about using utils, this should probably go as a bug(?) since it was already commited by someone in master.","commit_id":"461f24f5dc2b30d3fc3ae916fd4db529e81f1e19"}],"glance/listener.py":[{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"99f727826db88a290ee49e8eb099b9ffad27176e","unresolved":false,"context_lines":[{"line_number":37,"context_line":"                for event in event_list:"},{"line_number":38,"context_line":"                    self.notification_target_map[event.lower()] \u003d plugin.obj"},{"line_number":39,"context_line":"            except Exception as e:"},{"line_number":40,"context_line":"                LOG.error(_LE(\"Failed to retrieve RBAC filters \""},{"line_number":41,"context_line":"                              \"from search plugins \""},{"line_number":42,"context_line":"                              \"%(ext)s: %(e)s\") %"},{"line_number":43,"context_line":"                          {\u0027ext\u0027: plugin.name, \u0027e\u0027: e})"}],"source_content_type":"text/x-python","patch_set":17,"id":"9a80dd14_deb8ceea","line":40,"updated":"2015-03-17 16:34:36.000000000","message":"It should say about invalid supported events instead of RBAC filters.","commit_id":"4a146e35e94a695efd5d1b3de679cb8dba7b642d"},{"author":{"_account_id":8959,"name":"Lakshmi N Sampath","email":"lakshmi.sampath@hp.com","username":"lakshmi"},"change_message_id":"ebd76f15723bb83b04f9c1506da24d5cd166b08b","unresolved":false,"context_lines":[{"line_number":37,"context_line":"                for event in event_list:"},{"line_number":38,"context_line":"                    self.notification_target_map[event.lower()] \u003d plugin.obj"},{"line_number":39,"context_line":"            except Exception as e:"},{"line_number":40,"context_line":"                LOG.error(_LE(\"Failed to retrieve RBAC filters \""},{"line_number":41,"context_line":"                              \"from search plugins \""},{"line_number":42,"context_line":"                              \"%(ext)s: %(e)s\") %"},{"line_number":43,"context_line":"                          {\u0027ext\u0027: plugin.name, \u0027e\u0027: e})"}],"source_content_type":"text/x-python","patch_set":17,"id":"9a80dd14_f777759d","line":40,"in_reply_to":"9a80dd14_deb8ceea","updated":"2015-03-17 18:13:40.000000000","message":"I remember changing this before but seemed to have missed in the commit. thanks for pointing out.","commit_id":"4a146e35e94a695efd5d1b3de679cb8dba7b642d"},{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"99f727826db88a290ee49e8eb099b9ffad27176e","unresolved":false,"context_lines":[{"line_number":43,"context_line":"                          {\u0027ext\u0027: plugin.name, \u0027e\u0027: e})"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def info(self, ctxt, publisher_id, event_type, payload, metadata):"},{"line_number":46,"context_line":"        if event_type.lower() in self.notification_target_map.keys():"},{"line_number":47,"context_line":"            plugin \u003d self.notification_target_map[event_type.lower()]"},{"line_number":48,"context_line":"            handler \u003d plugin.get_notification_handler()"},{"line_number":49,"context_line":"            handler.process("}],"source_content_type":"text/x-python","patch_set":17,"id":"9a80dd14_de860e16","line":46,"updated":"2015-03-17 16:34:36.000000000","message":"Don\u0027t need to call .keys() here. It\u0027s a common pattern to check for key as \u0027key\u0027 in {}.","commit_id":"4a146e35e94a695efd5d1b3de679cb8dba7b642d"},{"author":{"_account_id":8959,"name":"Lakshmi N Sampath","email":"lakshmi.sampath@hp.com","username":"lakshmi"},"change_message_id":"ebd76f15723bb83b04f9c1506da24d5cd166b08b","unresolved":false,"context_lines":[{"line_number":43,"context_line":"                          {\u0027ext\u0027: plugin.name, \u0027e\u0027: e})"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def info(self, ctxt, publisher_id, event_type, payload, metadata):"},{"line_number":46,"context_line":"        if event_type.lower() in self.notification_target_map.keys():"},{"line_number":47,"context_line":"            plugin \u003d self.notification_target_map[event_type.lower()]"},{"line_number":48,"context_line":"            handler \u003d plugin.get_notification_handler()"},{"line_number":49,"context_line":"            handler.process("}],"source_content_type":"text/x-python","patch_set":17,"id":"9a80dd14_3772edad","line":46,"in_reply_to":"9a80dd14_de860e16","updated":"2015-03-17 18:13:40.000000000","message":"Done","commit_id":"4a146e35e94a695efd5d1b3de679cb8dba7b642d"},{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"99f727826db88a290ee49e8eb099b9ffad27176e","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def info(self, ctxt, publisher_id, event_type, payload, metadata):"},{"line_number":46,"context_line":"        if event_type.lower() in self.notification_target_map.keys():"},{"line_number":47,"context_line":"            plugin \u003d self.notification_target_map[event_type.lower()]"},{"line_number":48,"context_line":"            handler \u003d plugin.get_notification_handler()"},{"line_number":49,"context_line":"            handler.process("},{"line_number":50,"context_line":"                ctxt,"}],"source_content_type":"text/x-python","patch_set":17,"id":"9a80dd14_fe2e72f9","line":47,"updated":"2015-03-17 16:34:36.000000000","message":"How about storing event_type.lower() into some variable as it is used here and in the conditional statement?","commit_id":"4a146e35e94a695efd5d1b3de679cb8dba7b642d"},{"author":{"_account_id":8959,"name":"Lakshmi N Sampath","email":"lakshmi.sampath@hp.com","username":"lakshmi"},"change_message_id":"ebd76f15723bb83b04f9c1506da24d5cd166b08b","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def info(self, ctxt, publisher_id, event_type, payload, metadata):"},{"line_number":46,"context_line":"        if event_type.lower() in self.notification_target_map.keys():"},{"line_number":47,"context_line":"            plugin \u003d self.notification_target_map[event_type.lower()]"},{"line_number":48,"context_line":"            handler \u003d plugin.get_notification_handler()"},{"line_number":49,"context_line":"            handler.process("},{"line_number":50,"context_line":"                ctxt,"}],"source_content_type":"text/x-python","patch_set":17,"id":"9a80dd14_576681ef","line":47,"in_reply_to":"9a80dd14_fe2e72f9","updated":"2015-03-17 18:13:40.000000000","message":"Done","commit_id":"4a146e35e94a695efd5d1b3de679cb8dba7b642d"},{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"c27507a02a95e528c529f3d83fd401365e5f2aab","unresolved":false,"context_lines":[{"line_number":37,"context_line":"                for event in event_list:"},{"line_number":38,"context_line":"                    self.notification_target_map[event.lower()] \u003d plugin.obj"},{"line_number":39,"context_line":"            except Exception as e:"},{"line_number":40,"context_line":"                LOG.error(_LE(\"Failed to retrieve supported notification\""},{"line_number":41,"context_line":"                              \"events from search plugins \""},{"line_number":42,"context_line":"                              \"%(ext)s: %(e)s\") %"},{"line_number":43,"context_line":"                          {\u0027ext\u0027: plugin.name, \u0027e\u0027: e})"}],"source_content_type":"text/x-python","patch_set":22,"id":"9a80dd14_deeeaf8a","line":40,"updated":"2015-03-19 10:30:10.000000000","message":"Missing space after `notification`","commit_id":"1124f03aad55a004f55f7870ed5dfcdbe827e21a"}],"glance/search/plugins/base.py":[{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"99f727826db88a290ee49e8eb099b9ffad27176e","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from elasticsearch import helpers"},{"line_number":19,"context_line":"import six"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"import glance.openstack.common.log as logging"},{"line_number":22,"context_line":"import glance.search"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":17,"id":"9a80dd14_415c03ee","line":21,"updated":"2015-03-17 16:34:36.000000000","message":"You will need to rebase the changes, because the log module has been removed.","commit_id":"4a146e35e94a695efd5d1b3de679cb8dba7b642d"},{"author":{"_account_id":8959,"name":"Lakshmi N Sampath","email":"lakshmi.sampath@hp.com","username":"lakshmi"},"change_message_id":"ebd76f15723bb83b04f9c1506da24d5cd166b08b","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from elasticsearch import helpers"},{"line_number":19,"context_line":"import six"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"import glance.openstack.common.log as logging"},{"line_number":22,"context_line":"import glance.search"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":17,"id":"9a80dd14_d777d106","line":21,"in_reply_to":"9a80dd14_415c03ee","updated":"2015-03-17 18:13:40.000000000","message":"Done","commit_id":"4a146e35e94a695efd5d1b3de679cb8dba7b642d"},{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"99f727826db88a290ee49e8eb099b9ffad27176e","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        return {}"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    def get_notification_handler(self):"},{"line_number":125,"context_line":"        \"\"\"Get an notification handler which implements NotificationBase.\"\"\""},{"line_number":126,"context_line":"        return None"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    def get_notification_supported_events(self):"}],"source_content_type":"text/x-python","patch_set":17,"id":"9a80dd14_3e100aa8","line":125,"updated":"2015-03-17 16:34:36.000000000","message":"*a notification","commit_id":"4a146e35e94a695efd5d1b3de679cb8dba7b642d"},{"author":{"_account_id":8959,"name":"Lakshmi N Sampath","email":"lakshmi.sampath@hp.com","username":"lakshmi"},"change_message_id":"ebd76f15723bb83b04f9c1506da24d5cd166b08b","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        return {}"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    def get_notification_handler(self):"},{"line_number":125,"context_line":"        \"\"\"Get an notification handler which implements NotificationBase.\"\"\""},{"line_number":126,"context_line":"        return None"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    def get_notification_supported_events(self):"}],"source_content_type":"text/x-python","patch_set":17,"id":"9a80dd14_7768e521","line":125,"in_reply_to":"9a80dd14_3e100aa8","updated":"2015-03-17 18:13:40.000000000","message":"Was keeping it same as get_xxx messages. Anyway reworded it.","commit_id":"4a146e35e94a695efd5d1b3de679cb8dba7b642d"}],"glance/search/plugins/images_notification_handler.py":[{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"99f727826db88a290ee49e8eb099b9ffad27176e","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        self.index_name \u003d index_name"},{"line_number":30,"context_line":"        self.document_type \u003d document_type"},{"line_number":31,"context_line":"        self.image_delete_keys \u003d [\u0027deleted_at\u0027, \u0027deleted\u0027,"},{"line_number":32,"context_line":"                                  \u0027is_public\u0027, \"properties\"]"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def process(self, ctxt, publisher_id, event_type, payload, metadata):"},{"line_number":35,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":17,"id":"9a80dd14_1ee7c6ad","line":32,"updated":"2015-03-17 16:34:36.000000000","message":"Should be single quote to keep consistency.","commit_id":"4a146e35e94a695efd5d1b3de679cb8dba7b642d"},{"author":{"_account_id":8959,"name":"Lakshmi N Sampath","email":"lakshmi.sampath@hp.com","username":"lakshmi"},"change_message_id":"ebd76f15723bb83b04f9c1506da24d5cd166b08b","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        self.index_name \u003d index_name"},{"line_number":30,"context_line":"        self.document_type \u003d document_type"},{"line_number":31,"context_line":"        self.image_delete_keys \u003d [\u0027deleted_at\u0027, \u0027deleted\u0027,"},{"line_number":32,"context_line":"                                  \u0027is_public\u0027, \"properties\"]"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def process(self, ctxt, publisher_id, event_type, payload, metadata):"},{"line_number":35,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":17,"id":"9a80dd14_d748b18c","line":32,"in_reply_to":"9a80dd14_1ee7c6ad","updated":"2015-03-17 18:13:40.000000000","message":"Done","commit_id":"4a146e35e94a695efd5d1b3de679cb8dba7b642d"},{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"99f727826db88a290ee49e8eb099b9ffad27176e","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def delete(self, payload):"},{"line_number":68,"context_line":"        id \u003d payload[\u0027id\u0027]"},{"line_number":69,"context_line":"        payload \u003d self.format_image(payload)"},{"line_number":70,"context_line":"        self.engine.delete("},{"line_number":71,"context_line":"            index\u003dself.index_name,"},{"line_number":72,"context_line":"            doc_type\u003dself.document_type,"}],"source_content_type":"text/x-python","patch_set":17,"id":"9a80dd14_5eae9e30","line":69,"updated":"2015-03-17 16:34:36.000000000","message":"The payload is unnecessary here.","commit_id":"4a146e35e94a695efd5d1b3de679cb8dba7b642d"},{"author":{"_account_id":8959,"name":"Lakshmi N Sampath","email":"lakshmi.sampath@hp.com","username":"lakshmi"},"change_message_id":"ebd76f15723bb83b04f9c1506da24d5cd166b08b","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def delete(self, payload):"},{"line_number":68,"context_line":"        id \u003d payload[\u0027id\u0027]"},{"line_number":69,"context_line":"        payload \u003d self.format_image(payload)"},{"line_number":70,"context_line":"        self.engine.delete("},{"line_number":71,"context_line":"            index\u003dself.index_name,"},{"line_number":72,"context_line":"            doc_type\u003dself.document_type,"}],"source_content_type":"text/x-python","patch_set":17,"id":"9a80dd14_37482d87","line":69,"in_reply_to":"9a80dd14_5eae9e30","updated":"2015-03-17 18:13:40.000000000","message":"right. removed it.","commit_id":"4a146e35e94a695efd5d1b3de679cb8dba7b642d"},{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"99f727826db88a290ee49e8eb099b9ffad27176e","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        payload[\u0027visibility\u0027] \u003d visibility"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        if \"properties\" in payload.keys():"},{"line_number":80,"context_line":"            payload.update(payload[\u0027properties\u0027])"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        for key in payload.keys():"},{"line_number":83,"context_line":"            if key in self.image_delete_keys:"}],"source_content_type":"text/x-python","patch_set":17,"id":"9a80dd14_fe1bd27d","line":80,"updated":"2015-03-17 16:34:36.000000000","message":"We can easily get rid of the conditional statement by using\n\npayload.update(payload.get(\u0027properties\u0027, {}))","commit_id":"4a146e35e94a695efd5d1b3de679cb8dba7b642d"},{"author":{"_account_id":8959,"name":"Lakshmi N Sampath","email":"lakshmi.sampath@hp.com","username":"lakshmi"},"change_message_id":"ebd76f15723bb83b04f9c1506da24d5cd166b08b","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        payload[\u0027visibility\u0027] \u003d visibility"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        if \"properties\" in payload.keys():"},{"line_number":80,"context_line":"            payload.update(payload[\u0027properties\u0027])"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        for key in payload.keys():"},{"line_number":83,"context_line":"            if key in self.image_delete_keys:"}],"source_content_type":"text/x-python","patch_set":17,"id":"9a80dd14_97563929","line":80,"in_reply_to":"9a80dd14_fe1bd27d","updated":"2015-03-17 18:13:40.000000000","message":"Done","commit_id":"4a146e35e94a695efd5d1b3de679cb8dba7b642d"},{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"c27507a02a95e528c529f3d83fd401365e5f2aab","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        self.engine.delete("},{"line_number":70,"context_line":"            index\u003dself.index_name,"},{"line_number":71,"context_line":"            doc_type\u003dself.document_type,"},{"line_number":72,"context_line":"            id\u003did)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    def format_image(self, payload):"},{"line_number":75,"context_line":"        visibility \u003d \u0027public\u0027 if payload[\u0027is_public\u0027] else \u0027private\u0027"}],"source_content_type":"text/x-python","patch_set":22,"id":"9a80dd14_f25ba71f","line":72,"updated":"2015-03-19 10:30:10.000000000","message":"nit: the parenthese should be placed in new line to match pattern from create \u0026 update methods.","commit_id":"1124f03aad55a004f55f7870ed5dfcdbe827e21a"},{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"69fc6f795acf3f11fe2ad41d20ece197d8cd34c8","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class ImageHandler(base.NotificationBase):"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def __init__(self, engine, index_name, document_type):"},{"line_number":28,"context_line":"        super(ImageHandler, self).__init__(engine, index_name, document_type)"},{"line_number":29,"context_line":"        self.image_delete_keys \u003d [\u0027deleted_at\u0027, \u0027deleted\u0027,"},{"line_number":30,"context_line":"                                  \u0027is_public\u0027, \u0027properties\u0027]"}],"source_content_type":"text/x-python","patch_set":23,"id":"9a80dd14_56361e04","line":27,"updated":"2015-03-19 13:35:18.000000000","message":"nit: As we don\u0027t do anything special with these args, can we just use *args, **kwargs for it?","commit_id":"53eba33817f9fd7b02f5a0b0fab43aaa236b4423"}],"glance/search/plugins/metadefs.py":[{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"c27507a02a95e528c529f3d83fd401365e5f2aab","unresolved":false,"context_lines":[{"line_number":238,"context_line":"        )"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"    def get_notification_supported_events(self):"},{"line_number":241,"context_line":"        return ["},{"line_number":242,"context_line":"            \"metadef_namespace.create\", \"metadef_namespace.update\","},{"line_number":243,"context_line":"            \"metadef_namespace.delete\", \"metadef_object.create\","},{"line_number":244,"context_line":"            \"metadef_object.update\", \"metadef_object.delete\","}],"source_content_type":"text/x-python","patch_set":22,"id":"9a80dd14_f2eba7a1","line":241,"updated":"2015-03-19 10:30:10.000000000","message":"nit: Can we put every item in new line for easier reading?","commit_id":"1124f03aad55a004f55f7870ed5dfcdbe827e21a"}],"glance/search/plugins/metadefs_notification_handler.py":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"fa70ae2e0a6c2b5562d9da8063b641757f3fad57","unresolved":false,"context_lines":[{"line_number":217,"context_line":"        self.run_update(id, payload\u003dpayload, script\u003dTrue)"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"    def format_namespace(self, payload):"},{"line_number":220,"context_line":"        del payload[\u0027deleted\u0027]"},{"line_number":221,"context_line":"        del payload[\u0027created_at\u0027]"},{"line_number":222,"context_line":"        del payload[\u0027updated_at\u0027]"},{"line_number":223,"context_line":"        del payload[\u0027deleted_at\u0027]"}],"source_content_type":"text/x-python","patch_set":11,"id":"9a80dd14_f2e79aaa","line":220,"updated":"2015-03-11 07:00:08.000000000","message":"This can be optimized by using iterating over keys:\n\nfor key in (\u0027deleted\u0027, \u0027created_at\u0027, \u0027updated_at\u0027, \u0027deleted_at\u0027, \u0027namespace_old\u0027):\n    del payload[key]","commit_id":"56954e2049e226b76f4dec7f4f88cd8ab3720d19"},{"author":{"_account_id":8959,"name":"Lakshmi N Sampath","email":"lakshmi.sampath@hp.com","username":"lakshmi"},"change_message_id":"d4f26319951217c886b9e37274393fefd262c646","unresolved":false,"context_lines":[{"line_number":217,"context_line":"        self.run_update(id, payload\u003dpayload, script\u003dTrue)"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"    def format_namespace(self, payload):"},{"line_number":220,"context_line":"        del payload[\u0027deleted\u0027]"},{"line_number":221,"context_line":"        del payload[\u0027created_at\u0027]"},{"line_number":222,"context_line":"        del payload[\u0027updated_at\u0027]"},{"line_number":223,"context_line":"        del payload[\u0027deleted_at\u0027]"}],"source_content_type":"text/x-python","patch_set":11,"id":"9a80dd14_4f543cca","line":220,"in_reply_to":"9a80dd14_f2e79aaa","updated":"2015-03-11 08:54:40.000000000","message":"Done","commit_id":"56954e2049e226b76f4dec7f4f88cd8ab3720d19"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"fa70ae2e0a6c2b5562d9da8063b641757f3fad57","unresolved":false,"context_lines":[{"line_number":241,"context_line":"        prop_data[\u0027property\u0027] \u003d payload[\u0027name\u0027]"},{"line_number":242,"context_line":"        prop_data[\u0027title\u0027] \u003d payload[\u0027title\u0027]"},{"line_number":243,"context_line":"        prop_data[\u0027type\u0027] \u003d payload[\u0027type\u0027]"},{"line_number":244,"context_line":"        if payload[\u0027description\u0027]:"},{"line_number":245,"context_line":"            prop_data[\u0027description\u0027] \u003d payload[\u0027description\u0027]"},{"line_number":246,"context_line":"        if payload[\u0027default\u0027]:"},{"line_number":247,"context_line":"            prop_data[\u0027default\u0027] \u003d payload[\u0027default\u0027]"}],"source_content_type":"text/x-python","patch_set":11,"id":"9a80dd14_f2431a6a","line":244,"updated":"2015-03-11 07:00:08.000000000","message":"Same can be optimized using for loop,\nyou can define required global list of keys and iterate it in for loop to avoid multiple if conditions\n\n(# define this at module level)\nPAYLOAD_KEYS \u003d [\u0027description\u0027, \u0027default\u0027, \u0027minLength\u0027, \u0027maxLength\u0027, \u0027minimum\u0027, \u0027minimum\u0027, \u0027enum\u0027, \u0027pattern\u0027, \u0027items\u0027, \u0027uniqueItems\u0027, \u0027minItems\u0027, \u0027maxItems\u0027, \u0027additionalItems\u0027]\n\nfor key in PAYLOAD_KEYS:\n    if payload[key]:\n\t    prop_data[key] \u003d payload[key]","commit_id":"56954e2049e226b76f4dec7f4f88cd8ab3720d19"},{"author":{"_account_id":8959,"name":"Lakshmi N Sampath","email":"lakshmi.sampath@hp.com","username":"lakshmi"},"change_message_id":"d4f26319951217c886b9e37274393fefd262c646","unresolved":false,"context_lines":[{"line_number":241,"context_line":"        prop_data[\u0027property\u0027] \u003d payload[\u0027name\u0027]"},{"line_number":242,"context_line":"        prop_data[\u0027title\u0027] \u003d payload[\u0027title\u0027]"},{"line_number":243,"context_line":"        prop_data[\u0027type\u0027] \u003d payload[\u0027type\u0027]"},{"line_number":244,"context_line":"        if payload[\u0027description\u0027]:"},{"line_number":245,"context_line":"            prop_data[\u0027description\u0027] \u003d payload[\u0027description\u0027]"},{"line_number":246,"context_line":"        if payload[\u0027default\u0027]:"},{"line_number":247,"context_line":"            prop_data[\u0027default\u0027] \u003d payload[\u0027default\u0027]"}],"source_content_type":"text/x-python","patch_set":11,"id":"9a80dd14_af6218ab","line":244,"in_reply_to":"9a80dd14_f2431a6a","updated":"2015-03-11 08:54:40.000000000","message":"Thanks for the suggestion. I have further optimized it by exclusion instead of inclusion.","commit_id":"56954e2049e226b76f4dec7f4f88cd8ab3720d19"},{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"99f727826db88a290ee49e8eb099b9ffad27176e","unresolved":false,"context_lines":[{"line_number":176,"context_line":"    def create_entity(self, id, entity, entity_data):"},{"line_number":177,"context_line":"        script \u003d \"if (ctx._source.containsKey(\u0027\" + entity + \"\u0027))\"\\"},{"line_number":178,"context_line":"                 \"{ctx._source.\" + entity + \" +\u003d entity_item }\"\\"},{"line_number":179,"context_line":"                 \"else {ctx._source.\" + entity + \"\u003dentity_list};\""},{"line_number":180,"context_line":"        params \u003d {"},{"line_number":181,"context_line":"            \"entity_item\": entity_data,"},{"line_number":182,"context_line":"            \"entity_list\": [entity_data]"}],"source_content_type":"text/x-python","patch_set":17,"id":"9a80dd14_e1b897ea","line":179,"updated":"2015-03-17 16:34:36.000000000","message":"Shouldn\u0027t we use a string formatting here to make it easier to read? Additionally the whole string could be put into parentheses to get rid of these backslashes.","commit_id":"4a146e35e94a695efd5d1b3de679cb8dba7b642d"},{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"99f727826db88a290ee49e8eb099b9ffad27176e","unresolved":false,"context_lines":[{"line_number":192,"context_line":"                 \"if(obj!\u003dnull)ctx._source.\" + entity + \".remove(obj);\"\\"},{"line_number":193,"context_line":"                 \"if (ctx._source.containsKey(\u0027\" + entity + \"\u0027))\"\\"},{"line_number":194,"context_line":"                 \"{ctx._source.\" + entity + \" +\u003d entity_item; }\"\\"},{"line_number":195,"context_line":"                 \"else {ctx._source.\" + entity + \"\u003dentity_list;}\""},{"line_number":196,"context_line":"        params \u003d {"},{"line_number":197,"context_line":"            \"entity_item\": entity_data,"},{"line_number":198,"context_line":"            \"entity_list\": [entity_data],"}],"source_content_type":"text/x-python","patch_set":17,"id":"9a80dd14_81f35b9e","line":195,"updated":"2015-03-17 16:34:36.000000000","message":"ditto","commit_id":"4a146e35e94a695efd5d1b3de679cb8dba7b642d"},{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"99f727826db88a290ee49e8eb099b9ffad27176e","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        script \u003d \"obj\u003dnull; for(entity_item :ctx._source.\" + entity + \")\"\\"},{"line_number":207,"context_line":"                 \"{if(entity_item[\u0027\" + field_name + \"\u0027].toLowerCase() \"\\"},{"line_number":208,"context_line":"                 \" \u003d\u003d entity_id ) obj\u003dentity_item;};\"\\"},{"line_number":209,"context_line":"                 \"if(obj!\u003dnull)ctx._source.\" + entity + \".remove(obj);\""},{"line_number":210,"context_line":"        params \u003d {"},{"line_number":211,"context_line":"            \"entity_id\": entity_id"},{"line_number":212,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":17,"id":"9a80dd14_e12977f3","line":209,"updated":"2015-03-17 16:34:36.000000000","message":"ditto","commit_id":"4a146e35e94a695efd5d1b3de679cb8dba7b642d"},{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"99f727826db88a290ee49e8eb099b9ffad27176e","unresolved":false,"context_lines":[{"line_number":216,"context_line":"    def delete_field(self, payload, field):"},{"line_number":217,"context_line":"        id \u003d payload[\u0027namespace\u0027]"},{"line_number":218,"context_line":"        script \u003d \"if (ctx._source.containsKey(\u0027\" + field + \"\u0027))\"\\"},{"line_number":219,"context_line":"                 \"{ctx._source.remove(\u0027\" + field + \"\u0027)}\""},{"line_number":220,"context_line":"        payload \u003d {\"script\": script}"},{"line_number":221,"context_line":"        self.run_update(id, payload\u003dpayload, script\u003dTrue)"},{"line_number":222,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"9a80dd14_01168ba7","line":219,"updated":"2015-03-17 16:34:36.000000000","message":"ditto","commit_id":"4a146e35e94a695efd5d1b3de679cb8dba7b642d"},{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"c27507a02a95e528c529f3d83fd401365e5f2aab","unresolved":false,"context_lines":[{"line_number":22,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class MetadefHandler(base.NotificationBase):"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def __init__(self, engine, index_name, document_type):"},{"line_number":28,"context_line":"        self.engine \u003d engine"}],"source_content_type":"text/x-python","patch_set":22,"id":"9a80dd14_f2d487ea","line":25,"updated":"2015-03-19 10:30:10.000000000","message":"Can we move initialization of engine, index_name and document_type to NotificationBase class? It\u0027s common code which will be probably used by all future plugins.","commit_id":"1124f03aad55a004f55f7870ed5dfcdbe827e21a"},{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"c27507a02a95e528c529f3d83fd401365e5f2aab","unresolved":false,"context_lines":[{"line_number":245,"context_line":"    def format_property(self, payload):"},{"line_number":246,"context_line":"        prop_data \u003d dict()"},{"line_number":247,"context_line":"        prop_data[\u0027property\u0027] \u003d payload[\u0027name\u0027]"},{"line_number":248,"context_line":"        for key in payload.keys():"},{"line_number":249,"context_line":"            if key not in self.property_delete_keys and payload[key]:"},{"line_number":250,"context_line":"                prop_data[key] \u003d payload[key]"},{"line_number":251,"context_line":"        return prop_data"}],"source_content_type":"text/x-python","patch_set":22,"id":"9a80dd14_b2868fb7","line":248,"updated":"2015-03-19 10:30:10.000000000","message":"nit: for key, value in payload will make the code cleaner, as we need the value in the loop which is now obtained by payload[key] twice.","commit_id":"1124f03aad55a004f55f7870ed5dfcdbe827e21a"},{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"69fc6f795acf3f11fe2ad41d20ece197d8cd34c8","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class MetadefHandler(base.NotificationBase):"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def __init__(self, engine, index_name, document_type):"},{"line_number":28,"context_line":"        super(MetadefHandler, self).__init__(engine,"},{"line_number":29,"context_line":"                                             index_name,"},{"line_number":30,"context_line":"                                             document_type)"}],"source_content_type":"text/x-python","patch_set":23,"id":"9a80dd14_9645f670","line":27,"updated":"2015-03-19 13:35:18.000000000","message":"nit: As we don\u0027t do anything special with these args, can we just use *args, **kwargs for it?","commit_id":"53eba33817f9fd7b02f5a0b0fab43aaa236b4423"},{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"69fc6f795acf3f11fe2ad41d20ece197d8cd34c8","unresolved":false,"context_lines":[{"line_number":245,"context_line":"    def format_property(self, payload):"},{"line_number":246,"context_line":"        prop_data \u003d dict()"},{"line_number":247,"context_line":"        prop_data[\u0027property\u0027] \u003d payload[\u0027name\u0027]"},{"line_number":248,"context_line":"        for key, value in payload.iteritems():"},{"line_number":249,"context_line":"            if key not in self.property_delete_keys and value:"},{"line_number":250,"context_line":"                prop_data[key] \u003d value"},{"line_number":251,"context_line":"        return prop_data"}],"source_content_type":"text/x-python","patch_set":23,"id":"9a80dd14_36636a1b","line":248,"updated":"2015-03-19 13:35:18.000000000","message":"Should be replaced with six.iteritems to support python3.x","commit_id":"53eba33817f9fd7b02f5a0b0fab43aaa236b4423"}],"glance/service.py":[{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"6a1915bb90a70385d5e87404c6c05394ca340633","unresolved":false,"context_lines":[{"line_number":28,"context_line":"OPTS \u003d ["},{"line_number":29,"context_line":"    cfg.StrOpt(\u0027host\u0027,"},{"line_number":30,"context_line":"               default\u003dsocket.gethostname(),"},{"line_number":31,"context_line":"               help\u003d\u0027Name of this node, which must be valid in an AMQP \u0027"},{"line_number":32,"context_line":"               \u0027key. Can be an opaque identifier. For ZeroMQ only, must \u0027"},{"line_number":33,"context_line":"               \u0027be a valid host name, FQDN, or IP address.\u0027),"},{"line_number":34,"context_line":"    cfg.IntOpt(\u0027listener_workers\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a80dd14_b48020f8","line":31,"updated":"2015-03-08 16:49:06.000000000","message":"Shouldn\u0027t these be translated?","commit_id":"461f24f5dc2b30d3fc3ae916fd4db529e81f1e19"}]}
