)]}'
{"searchlight/elasticsearch/plugins/helper.py":[{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"5c0f880413b32a724513b170d839ffb84ce10868","unresolved":false,"context_lines":[{"line_number":594,"context_line":"        search_results \u003d self.engine.search(index\u003dself.alias_name,"},{"line_number":595,"context_line":"                                            doc_type\u003dtype,"},{"line_number":596,"context_line":"                                            body\u003dquery)"},{"line_number":597,"context_line":"        return search_results[\u0027hits\u0027][\u0027hits\u0027][0]"},{"line_number":598,"context_line":""},{"line_number":599,"context_line":""},{"line_number":600,"context_line":"def _is_multiple_alias_exception(e):"}],"source_content_type":"text/x-python","patch_set":22,"id":"3a71b18c_2b6e6dc9","line":597,"range":{"start_line":597,"start_character":43,"end_line":597,"end_character":46},"updated":"2016-12-08 16:29:25.000000000","message":"I strongly suggest returning the entire [\u0027hits\u0027] list, because otherwise this function\u0027s pretty limited. If a caller expects only one result they can test it. That would also avoid the IndexError you\u0027ll hit if the search fails to return anything","commit_id":"405796c6a343d064913b1ac43f02799b455eb7b3"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"24c3a278597a6e792a94361548282474a41c6936","unresolved":false,"context_lines":[{"line_number":594,"context_line":"        search_results \u003d self.engine.search(index\u003dself.alias_name,"},{"line_number":595,"context_line":"                                            doc_type\u003dtype,"},{"line_number":596,"context_line":"                                            body\u003dquery)"},{"line_number":597,"context_line":"        return search_results[\u0027hits\u0027][\u0027hits\u0027][0]"},{"line_number":598,"context_line":""},{"line_number":599,"context_line":""},{"line_number":600,"context_line":"def _is_multiple_alias_exception(e):"}],"source_content_type":"text/x-python","patch_set":22,"id":"3a71b18c_e70d2f3f","line":597,"range":{"start_line":597,"start_character":43,"end_line":597,"end_character":46},"in_reply_to":"3a71b18c_2b6e6dc9","updated":"2016-12-12 00:40:26.000000000","message":"Done","commit_id":"405796c6a343d064913b1ac43f02799b455eb7b3"}],"searchlight/elasticsearch/plugins/nova/notification_handler.py":[{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"ed26be972cb6c127268ad64c00380217e5089d38","unresolved":false,"context_lines":[{"line_number":324,"context_line":"                        server_group_id)"},{"line_number":325,"context_line":"            self.delete(payload, timestamp)"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"    def get_event_handlers(self):"},{"line_number":328,"context_line":"        return {"},{"line_number":329,"context_line":"            \u0027servergroup.delete\u0027: self.delete,"},{"line_number":330,"context_line":"            \u0027servergroup.create\u0027: self.create_or_update,"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a77a97e_5c4b83b0","line":327,"updated":"2016-11-22 06:35:45.000000000","message":"tiny nit: i suggest move this method below \u0027_get_notification_exchanges\u0027","commit_id":"c3d21a57699f3ef3638f6ec707830067261516fd"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"14f4fedbf2f306159d211ae18d27347a1592118d","unresolved":false,"context_lines":[{"line_number":324,"context_line":"                        server_group_id)"},{"line_number":325,"context_line":"            self.delete(payload, timestamp)"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"    def get_event_handlers(self):"},{"line_number":328,"context_line":"        return {"},{"line_number":329,"context_line":"            \u0027servergroup.delete\u0027: self.delete,"},{"line_number":330,"context_line":"            \u0027servergroup.create\u0027: self.create_or_update,"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a77a97e_d724ccb0","line":327,"in_reply_to":"7a77a97e_5c4b83b0","updated":"2016-11-22 06:46:12.000000000","message":"why is that?","commit_id":"c3d21a57699f3ef3638f6ec707830067261516fd"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"62f2e677ce44180b3e6cd097bf8dfc05359c39a7","unresolved":false,"context_lines":[{"line_number":324,"context_line":"                        server_group_id)"},{"line_number":325,"context_line":"            self.delete(payload, timestamp)"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"    def get_event_handlers(self):"},{"line_number":328,"context_line":"        return {"},{"line_number":329,"context_line":"            \u0027servergroup.delete\u0027: self.delete,"},{"line_number":330,"context_line":"            \u0027servergroup.create\u0027: self.create_or_update,"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a77a97e_f7c38888","line":327,"in_reply_to":"7a77a97e_d724ccb0","updated":"2016-11-22 06:52:08.000000000","message":"I meant this:\n\n    @classmethod\n    def _get_notification_exchanges(cls):\n        return [\u0027nova\u0027]\n\n    def get_event_handlers(self):","commit_id":"c3d21a57699f3ef3638f6ec707830067261516fd"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"a138597cd799bc741304e5595350031c687e6279","unresolved":false,"context_lines":[{"line_number":324,"context_line":"                        server_group_id)"},{"line_number":325,"context_line":"            self.delete(payload, timestamp)"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"    def get_event_handlers(self):"},{"line_number":328,"context_line":"        return {"},{"line_number":329,"context_line":"            \u0027servergroup.delete\u0027: self.delete,"},{"line_number":330,"context_line":"            \u0027servergroup.create\u0027: self.create_or_update,"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a77a97e_1748042d","line":327,"in_reply_to":"7a77a97e_f7c38888","updated":"2016-11-22 06:53:22.000000000","message":"Ah, got it","commit_id":"c3d21a57699f3ef3638f6ec707830067261516fd"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"ed26be972cb6c127268ad64c00380217e5089d38","unresolved":false,"context_lines":[{"line_number":328,"context_line":"        return {"},{"line_number":329,"context_line":"            \u0027servergroup.delete\u0027: self.delete,"},{"line_number":330,"context_line":"            \u0027servergroup.create\u0027: self.create_or_update,"},{"line_number":331,"context_line":"            \u0027servergroup.update\u0027: self.create_or_update,"},{"line_number":332,"context_line":"            \u0027servergroup.addmember\u0027: self.create_or_update,"},{"line_number":333,"context_line":"            \u0027compute.instance.delete.end\u0027: self.create_or_update"},{"line_number":334,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a77a97e_fc252f0a","line":331,"updated":"2016-11-22 06:35:45.000000000","message":"is server group update called anywhere in nova?  i didn\u0027t find it(not in API [1] at least) ;( is it useless?\n\n[1]: http://developer.openstack.org/api-ref/compute/#server-groups-os-server-groups","commit_id":"c3d21a57699f3ef3638f6ec707830067261516fd"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"14f4fedbf2f306159d211ae18d27347a1592118d","unresolved":false,"context_lines":[{"line_number":328,"context_line":"        return {"},{"line_number":329,"context_line":"            \u0027servergroup.delete\u0027: self.delete,"},{"line_number":330,"context_line":"            \u0027servergroup.create\u0027: self.create_or_update,"},{"line_number":331,"context_line":"            \u0027servergroup.update\u0027: self.create_or_update,"},{"line_number":332,"context_line":"            \u0027servergroup.addmember\u0027: self.create_or_update,"},{"line_number":333,"context_line":"            \u0027compute.instance.delete.end\u0027: self.create_or_update"},{"line_number":334,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a77a97e_173724e4","line":331,"in_reply_to":"7a77a97e_fc252f0a","updated":"2016-11-22 06:46:12.000000000","message":"Hmm, I will check","commit_id":"c3d21a57699f3ef3638f6ec707830067261516fd"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"ed26be972cb6c127268ad64c00380217e5089d38","unresolved":false,"context_lines":[{"line_number":347,"context_line":"                query\u003dquery, type\u003d\"OS::Nova::ServerGroup\")"},{"line_number":348,"context_line":"            for sg in search_results:"},{"line_number":349,"context_line":"                self._save_server_group(sg[\u0027_id\u0027], timestamp)"},{"line_number":350,"context_line":"                LOG.debug(\"creating or update nova server group \""},{"line_number":351,"context_line":"                          \"information for %s\", sg[\u0027_id\u0027])"},{"line_number":352,"context_line":"        else:"},{"line_number":353,"context_line":"            server_group_id \u003d payload[\u0027server_group_id\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a77a97e_7cd2ff35","line":350,"range":{"start_line":350,"start_character":39,"end_line":350,"end_character":45},"updated":"2016-11-22 06:35:45.000000000","message":"s/update/updating","commit_id":"c3d21a57699f3ef3638f6ec707830067261516fd"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"ed26be972cb6c127268ad64c00380217e5089d38","unresolved":false,"context_lines":[{"line_number":350,"context_line":"                LOG.debug(\"creating or update nova server group \""},{"line_number":351,"context_line":"                          \"information for %s\", sg[\u0027_id\u0027])"},{"line_number":352,"context_line":"        else:"},{"line_number":353,"context_line":"            server_group_id \u003d payload[\u0027server_group_id\u0027]"},{"line_number":354,"context_line":"            self._save_server_group(server_group_id, timestamp)"},{"line_number":355,"context_line":"            LOG.debug(\"creating or update nova server group\""},{"line_number":356,"context_line":"                      \"information for %s\", server_group_id)"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a77a97e_dcb4f3d2","line":353,"updated":"2016-11-22 06:35:45.000000000","message":"I did some debug and found that the create notification seems containing all the information same as the api call, so no need to call back for the create notification.","commit_id":"c3d21a57699f3ef3638f6ec707830067261516fd"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"a4d2f1aa432203370475fddac39c90f7da63b850","unresolved":false,"context_lines":[{"line_number":350,"context_line":"                LOG.debug(\"creating or update nova server group \""},{"line_number":351,"context_line":"                          \"information for %s\", sg[\u0027_id\u0027])"},{"line_number":352,"context_line":"        else:"},{"line_number":353,"context_line":"            server_group_id \u003d payload[\u0027server_group_id\u0027]"},{"line_number":354,"context_line":"            self._save_server_group(server_group_id, timestamp)"},{"line_number":355,"context_line":"            LOG.debug(\"creating or update nova server group\""},{"line_number":356,"context_line":"                      \"information for %s\", server_group_id)"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a77a97e_af561404","line":353,"in_reply_to":"7a77a97e_7773f8b4","updated":"2016-11-22 08:05:43.000000000","message":"Hi, I have tested, looks like \"members\", \"updated_at\" and \"metadata\" are missing in notification, although \"members\" and \"metadata\" will be empty and we can fill it here in SL, but \"updated_at\" is quite important for some users, and it should be the same as in Nova DB and thats we can\u0027t fill here. I suggest we just left this as is here, and improve it once versioned notification is finished; Besides, the creation of servergroup will be less frequent than operations like addMembers, so it might not be a big deal in performance.","commit_id":"c3d21a57699f3ef3638f6ec707830067261516fd"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"88f2273913c997808102606bf270d9b0c25f1691","unresolved":false,"context_lines":[{"line_number":350,"context_line":"                LOG.debug(\"creating or update nova server group \""},{"line_number":351,"context_line":"                          \"information for %s\", sg[\u0027_id\u0027])"},{"line_number":352,"context_line":"        else:"},{"line_number":353,"context_line":"            server_group_id \u003d payload[\u0027server_group_id\u0027]"},{"line_number":354,"context_line":"            self._save_server_group(server_group_id, timestamp)"},{"line_number":355,"context_line":"            LOG.debug(\"creating or update nova server group\""},{"line_number":356,"context_line":"                      \"information for %s\", server_group_id)"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a77a97e_12ce4f5a","line":353,"in_reply_to":"7a77a97e_8f087893","updated":"2016-11-22 08:35:26.000000000","message":"Hm, if update_at is added in SL, I think it is OK to fill them all here in SL","commit_id":"c3d21a57699f3ef3638f6ec707830067261516fd"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"9b1140ff811dc7df8e22d40a4593cf4bfb217015","unresolved":false,"context_lines":[{"line_number":350,"context_line":"                LOG.debug(\"creating or update nova server group \""},{"line_number":351,"context_line":"                          \"information for %s\", sg[\u0027_id\u0027])"},{"line_number":352,"context_line":"        else:"},{"line_number":353,"context_line":"            server_group_id \u003d payload[\u0027server_group_id\u0027]"},{"line_number":354,"context_line":"            self._save_server_group(server_group_id, timestamp)"},{"line_number":355,"context_line":"            LOG.debug(\"creating or update nova server group\""},{"line_number":356,"context_line":"                      \"information for %s\", server_group_id)"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a77a97e_8f087893","line":353,"in_reply_to":"7a77a97e_af561404","updated":"2016-11-22 08:17:47.000000000","message":"The members field should be always [] for create action，members is added only when instance is created in that server group.\n\nThe API doesn\u0027t return updated_at either: [1], it is added in searchlight side.\n\nFor metadata, not sure when it is added to instance group, seems not at creating time[2]\n\n[1]: http://developer.openstack.org/api-ref/compute/?expanded\u003dlist-server-groups-detail#list-server-groups\n\n[2]: http://developer.openstack.org/api-ref/compute/?expanded\u003dlist-server-groups-detail,create-server-group-detail#create-server-group","commit_id":"c3d21a57699f3ef3638f6ec707830067261516fd"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"14f4fedbf2f306159d211ae18d27347a1592118d","unresolved":false,"context_lines":[{"line_number":350,"context_line":"                LOG.debug(\"creating or update nova server group \""},{"line_number":351,"context_line":"                          \"information for %s\", sg[\u0027_id\u0027])"},{"line_number":352,"context_line":"        else:"},{"line_number":353,"context_line":"            server_group_id \u003d payload[\u0027server_group_id\u0027]"},{"line_number":354,"context_line":"            self._save_server_group(server_group_id, timestamp)"},{"line_number":355,"context_line":"            LOG.debug(\"creating or update nova server group\""},{"line_number":356,"context_line":"                      \"information for %s\", server_group_id)"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a77a97e_7773f8b4","line":353,"in_reply_to":"7a77a97e_dcb4f3d2","updated":"2016-11-22 06:46:12.000000000","message":"hmm, then I guess I have to make a new branch here.","commit_id":"c3d21a57699f3ef3638f6ec707830067261516fd"},{"author":{"_account_id":16150,"name":"Lei Zhang","email":"lei.a.zhang@intel.com","username":"leizhang"},"change_message_id":"7fa896760a7e5517806990076541aeaed4738f7d","unresolved":false,"context_lines":[{"line_number":327,"context_line":"        try:"},{"line_number":328,"context_line":"            version \u003d self.get_version(payload, timestamp)"},{"line_number":329,"context_line":"            self.index_helper.save_document(payload, version\u003dversion)"},{"line_number":330,"context_line":"        except novaclient.exceptions.NotFound:"},{"line_number":331,"context_line":"            LOG.warning(_LW(\"Server group %s not found; deleting\") %"},{"line_number":332,"context_line":"                        payload[\u0027id\u0027])"},{"line_number":333,"context_line":"            self.delete(payload, timestamp)"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a74a57a_4ce76cac","line":330,"updated":"2016-11-30 02:52:05.000000000","message":"Why catch novaclient exception here? Code in try block doesn\u0027t call novaclient.","commit_id":"f5bd224ab71db3f2eaad4d33e2cf13f3b029e237"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"9dddbaf7cdce417c5a9c4d64fe0f309bd4991c49","unresolved":false,"context_lines":[{"line_number":327,"context_line":"        try:"},{"line_number":328,"context_line":"            version \u003d self.get_version(payload, timestamp)"},{"line_number":329,"context_line":"            self.index_helper.save_document(payload, version\u003dversion)"},{"line_number":330,"context_line":"        except novaclient.exceptions.NotFound:"},{"line_number":331,"context_line":"            LOG.warning(_LW(\"Server group %s not found; deleting\") %"},{"line_number":332,"context_line":"                        payload[\u0027id\u0027])"},{"line_number":333,"context_line":"            self.delete(payload, timestamp)"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a74a57a_5a060321","line":330,"in_reply_to":"5a74a57a_4ce76cac","updated":"2016-12-01 02:49:01.000000000","message":"Done","commit_id":"f5bd224ab71db3f2eaad4d33e2cf13f3b029e237"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"99f11a36dae9f31c4fe7753f44e3d8587f6f1233","unresolved":false,"context_lines":[{"line_number":356,"context_line":"                query\u003dquery, type\u003d\"OS::Nova::ServerGroup\")"},{"line_number":357,"context_line":"            server_group_id \u003d search_result[\u0027_id\u0027]"},{"line_number":358,"context_line":"        else:"},{"line_number":359,"context_line":"            server_group_id \u003d payload[\u0027server_group_id\u0027]"},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"        payload \u003d serialize_nova_servergroup(server_group_id)"},{"line_number":362,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"5a74a57a_bc06401e","line":359,"range":{"start_line":359,"start_character":12,"end_line":359,"end_character":27},"updated":"2016-11-30 21:16:31.000000000","message":"I\u0027m getting an error during server deletion - \n\n  ERROR searchlight.elasticsearch.plugins.base Thread-15 [-] \u0027server_group_id\u0027\n\nDo deletion notifications contain the server group id?","commit_id":"f5bd224ab71db3f2eaad4d33e2cf13f3b029e237"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"9dddbaf7cdce417c5a9c4d64fe0f309bd4991c49","unresolved":false,"context_lines":[{"line_number":356,"context_line":"                query\u003dquery, type\u003d\"OS::Nova::ServerGroup\")"},{"line_number":357,"context_line":"            server_group_id \u003d search_result[\u0027_id\u0027]"},{"line_number":358,"context_line":"        else:"},{"line_number":359,"context_line":"            server_group_id \u003d payload[\u0027server_group_id\u0027]"},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"        payload \u003d serialize_nova_servergroup(server_group_id)"},{"line_number":362,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"5a74a57a_3a2067b0","line":359,"range":{"start_line":359,"start_character":12,"end_line":359,"end_character":27},"in_reply_to":"5a74a57a_bc06401e","updated":"2016-12-01 02:49:01.000000000","message":"you mean instance delete? No, but this else condition is meant to be used by add members, the instance deletion should go the \"if\" condition, I will check what going on here.","commit_id":"f5bd224ab71db3f2eaad4d33e2cf13f3b029e237"},{"author":{"_account_id":16150,"name":"Lei Zhang","email":"lei.a.zhang@intel.com","username":"leizhang"},"change_message_id":"7fa896760a7e5517806990076541aeaed4738f7d","unresolved":false,"context_lines":[{"line_number":358,"context_line":"        else:"},{"line_number":359,"context_line":"            server_group_id \u003d payload[\u0027server_group_id\u0027]"},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"        payload \u003d serialize_nova_servergroup(server_group_id)"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"        LOG.debug(\"updating nova server group information \""},{"line_number":364,"context_line":"                  \"for %s\", server_group_id)"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a74a57a_cc80dc8e","line":361,"updated":"2016-11-30 02:52:05.000000000","message":"Could we do a set and get operation to update server group. Seems no need to use api to update members. You could fetch servergroup document from db, update member info, then save it back to es.","commit_id":"f5bd224ab71db3f2eaad4d33e2cf13f3b029e237"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"9dddbaf7cdce417c5a9c4d64fe0f309bd4991c49","unresolved":false,"context_lines":[{"line_number":358,"context_line":"        else:"},{"line_number":359,"context_line":"            server_group_id \u003d payload[\u0027server_group_id\u0027]"},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"        payload \u003d serialize_nova_servergroup(server_group_id)"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"        LOG.debug(\"updating nova server group information \""},{"line_number":364,"context_line":"                  \"for %s\", server_group_id)"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a74a57a_da11335f","line":361,"in_reply_to":"5a74a57a_9c59845e","updated":"2016-12-01 02:49:01.000000000","message":"I will try to make less call-back to nova as possible, since the less traffic the better :)","commit_id":"f5bd224ab71db3f2eaad4d33e2cf13f3b029e237"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"99f11a36dae9f31c4fe7753f44e3d8587f6f1233","unresolved":false,"context_lines":[{"line_number":358,"context_line":"        else:"},{"line_number":359,"context_line":"            server_group_id \u003d payload[\u0027server_group_id\u0027]"},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"        payload \u003d serialize_nova_servergroup(server_group_id)"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"        LOG.debug(\"updating nova server group information \""},{"line_number":364,"context_line":"                  \"for %s\", server_group_id)"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a74a57a_9c59845e","line":361,"in_reply_to":"5a74a57a_cc80dc8e","updated":"2016-11-30 21:16:31.000000000","message":"We\u0027ve used the get-update method elsewhere, and it\u0027s probably ok to do so here","commit_id":"f5bd224ab71db3f2eaad4d33e2cf13f3b029e237"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"5c0f880413b32a724513b170d839ffb84ce10868","unresolved":false,"context_lines":[{"line_number":379,"context_line":"        version \u003d self.get_version(payload, timestamp)"},{"line_number":380,"context_line":"        self.index_helper.save_document(payload, version\u003dversion)"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"    def update(self, payload, timestamp):"},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"        # When an instance is deleted from Nova, its\u0027 record in"},{"line_number":385,"context_line":"        # InstanceGroup DB were cleaned directly from DB layer in"}],"source_content_type":"text/x-python","patch_set":22,"id":"3a71b18c_90724ce2","line":382,"range":{"start_line":382,"start_character":8,"end_line":382,"end_character":14},"updated":"2016-12-08 16:29:25.000000000","message":"I think it\u0027d make more sense to split this into two functions since it copes with two circumstances which don\u0027t share the same code (deleting an instance and adding a member). The update code\u0027s already factored out to the function above so you could remove the \u0027if\u0027 and make things clearer","commit_id":"405796c6a343d064913b1ac43f02799b455eb7b3"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"24c3a278597a6e792a94361548282474a41c6936","unresolved":false,"context_lines":[{"line_number":379,"context_line":"        version \u003d self.get_version(payload, timestamp)"},{"line_number":380,"context_line":"        self.index_helper.save_document(payload, version\u003dversion)"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"    def update(self, payload, timestamp):"},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"        # When an instance is deleted from Nova, its\u0027 record in"},{"line_number":385,"context_line":"        # InstanceGroup DB were cleaned directly from DB layer in"}],"source_content_type":"text/x-python","patch_set":22,"id":"3a71b18c_0295b985","line":382,"range":{"start_line":382,"start_character":8,"end_line":382,"end_character":14},"in_reply_to":"3a71b18c_90724ce2","updated":"2016-12-12 00:40:26.000000000","message":"Done","commit_id":"405796c6a343d064913b1ac43f02799b455eb7b3"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"5c0f880413b32a724513b170d839ffb84ce10868","unresolved":false,"context_lines":[{"line_number":388,"context_line":"        instance_id \u003d payload.get(\u0027instance_id\u0027, None)"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"        if instance_id:"},{"line_number":391,"context_line":"            query \u003d {\u0027filter\u0027: {\u0027term\u0027: {\u0027members\u0027: instance_id}}}"},{"line_number":392,"context_line":"            search_result \u003d self.index_helper.simple_search("},{"line_number":393,"context_line":"                query\u003dquery, type\u003d\"OS::Nova::ServerGroup\")"},{"line_number":394,"context_line":"            server_group_id \u003d search_result[\u0027_id\u0027]"}],"source_content_type":"text/x-python","patch_set":22,"id":"3a71b18c_904facbd","line":391,"range":{"start_line":391,"start_character":42,"end_line":391,"end_character":49},"updated":"2016-12-08 16:29:25.000000000","message":"Is it definitely the case that there can only be one result for this? Or can a server belong to multiple groups?","commit_id":"405796c6a343d064913b1ac43f02799b455eb7b3"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"24c3a278597a6e792a94361548282474a41c6936","unresolved":false,"context_lines":[{"line_number":388,"context_line":"        instance_id \u003d payload.get(\u0027instance_id\u0027, None)"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"        if instance_id:"},{"line_number":391,"context_line":"            query \u003d {\u0027filter\u0027: {\u0027term\u0027: {\u0027members\u0027: instance_id}}}"},{"line_number":392,"context_line":"            search_result \u003d self.index_helper.simple_search("},{"line_number":393,"context_line":"                query\u003dquery, type\u003d\"OS::Nova::ServerGroup\")"},{"line_number":394,"context_line":"            server_group_id \u003d search_result[\u0027_id\u0027]"}],"source_content_type":"text/x-python","patch_set":22,"id":"3a71b18c_22b7153b","line":391,"range":{"start_line":391,"start_character":42,"end_line":391,"end_character":49},"in_reply_to":"3a71b18c_904facbd","updated":"2016-12-12 00:40:26.000000000","message":"yes, I have checked with both client and REST API, provided server group when boot an instance is limited to a string, so only one server group for each instance.","commit_id":"405796c6a343d064913b1ac43f02799b455eb7b3"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"5c0f880413b32a724513b170d839ffb84ce10868","unresolved":false,"context_lines":[{"line_number":389,"context_line":""},{"line_number":390,"context_line":"        if instance_id:"},{"line_number":391,"context_line":"            query \u003d {\u0027filter\u0027: {\u0027term\u0027: {\u0027members\u0027: instance_id}}}"},{"line_number":392,"context_line":"            search_result \u003d self.index_helper.simple_search("},{"line_number":393,"context_line":"                query\u003dquery, type\u003d\"OS::Nova::ServerGroup\")"},{"line_number":394,"context_line":"            server_group_id \u003d search_result[\u0027_id\u0027]"},{"line_number":395,"context_line":"            self._update_server_group_members(server_group_id,"}],"source_content_type":"text/x-python","patch_set":22,"id":"3a71b18c_1098fc1a","line":392,"range":{"start_line":392,"start_character":12,"end_line":392,"end_character":25},"updated":"2016-12-08 16:29:25.000000000","message":"I\u0027m going to recommend changing simple_search to return a list for reasons I\u0027ll note in helpers.py, which will mean changing this to loop over that list (which in turn will cope with the situation where an instance isn\u0027t in a group)","commit_id":"405796c6a343d064913b1ac43f02799b455eb7b3"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"24c3a278597a6e792a94361548282474a41c6936","unresolved":false,"context_lines":[{"line_number":389,"context_line":""},{"line_number":390,"context_line":"        if instance_id:"},{"line_number":391,"context_line":"            query \u003d {\u0027filter\u0027: {\u0027term\u0027: {\u0027members\u0027: instance_id}}}"},{"line_number":392,"context_line":"            search_result \u003d self.index_helper.simple_search("},{"line_number":393,"context_line":"                query\u003dquery, type\u003d\"OS::Nova::ServerGroup\")"},{"line_number":394,"context_line":"            server_group_id \u003d search_result[\u0027_id\u0027]"},{"line_number":395,"context_line":"            self._update_server_group_members(server_group_id,"}],"source_content_type":"text/x-python","patch_set":22,"id":"3a71b18c_42b41134","line":392,"range":{"start_line":392,"start_character":12,"end_line":392,"end_character":25},"in_reply_to":"3a71b18c_1098fc1a","updated":"2016-12-12 00:40:26.000000000","message":"Done","commit_id":"405796c6a343d064913b1ac43f02799b455eb7b3"},{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"5c0f880413b32a724513b170d839ffb84ce10868","unresolved":false,"context_lines":[{"line_number":397,"context_line":"                                              delete\u003dTrue)"},{"line_number":398,"context_line":"        else:"},{"line_number":399,"context_line":"            server_group_id \u003d payload[\u0027server_group_id\u0027]"},{"line_number":400,"context_line":"            instance_id \u003d payload[\u0027instance_uuids\u0027][0]"},{"line_number":401,"context_line":"            self._update_server_group_members(server_group_id,"},{"line_number":402,"context_line":"                                              instance_id)"},{"line_number":403,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"3a71b18c_b006681e","line":400,"range":{"start_line":400,"start_character":49,"end_line":400,"end_character":52},"updated":"2016-12-08 16:29:25.000000000","message":"payload[instance_uuids] is a tuple?","commit_id":"405796c6a343d064913b1ac43f02799b455eb7b3"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"24c3a278597a6e792a94361548282474a41c6936","unresolved":false,"context_lines":[{"line_number":397,"context_line":"                                              delete\u003dTrue)"},{"line_number":398,"context_line":"        else:"},{"line_number":399,"context_line":"            server_group_id \u003d payload[\u0027server_group_id\u0027]"},{"line_number":400,"context_line":"            instance_id \u003d payload[\u0027instance_uuids\u0027][0]"},{"line_number":401,"context_line":"            self._update_server_group_members(server_group_id,"},{"line_number":402,"context_line":"                                              instance_id)"},{"line_number":403,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"3a71b18c_e297dd8d","line":400,"range":{"start_line":400,"start_character":49,"end_line":400,"end_character":52},"in_reply_to":"3a71b18c_b006681e","updated":"2016-12-12 00:40:26.000000000","message":"Done","commit_id":"405796c6a343d064913b1ac43f02799b455eb7b3"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"a4c6070fd2d50a5b8660e28bbceccae0f612b682","unresolved":false,"context_lines":[{"line_number":397,"context_line":"                                              delete\u003dTrue)"},{"line_number":398,"context_line":"        else:"},{"line_number":399,"context_line":"            server_group_id \u003d payload[\u0027server_group_id\u0027]"},{"line_number":400,"context_line":"            instance_id \u003d payload[\u0027instance_uuids\u0027][0]"},{"line_number":401,"context_line":"            self._update_server_group_members(server_group_id,"},{"line_number":402,"context_line":"                                              instance_id)"},{"line_number":403,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"3a71b18c_a2232557","line":400,"range":{"start_line":400,"start_character":49,"end_line":400,"end_character":52},"in_reply_to":"3a71b18c_b006681e","updated":"2016-12-12 06:57:14.000000000","message":"Yes, it is, it is a list but only contain one item.","commit_id":"405796c6a343d064913b1ac43f02799b455eb7b3"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"96d0033ed59bc503b2ad7cc98314530d4c7febc2","unresolved":false,"context_lines":[{"line_number":388,"context_line":""},{"line_number":389,"context_line":"        # When an instance is deleted from Nova, its\u0027 record in"},{"line_number":390,"context_line":"        # InstanceGroup DB were cleaned directly from DB layer in"},{"line_number":391,"context_line":"        # Nova, we should perform sync to keep Searchligh"},{"line_number":392,"context_line":"        # up-to-date with Nova DB."},{"line_number":393,"context_line":"        instance_id \u003d payload[\u0027instance_id\u0027]"},{"line_number":394,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"3a71b18c_1cd359d6","line":391,"range":{"start_line":391,"start_character":47,"end_line":391,"end_character":57},"updated":"2016-12-12 06:33:21.000000000","message":"Searchlight","commit_id":"29af93c9aad7412259a4301f7cd37ded732fd360"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"98bcfa35887b9f4b2bd34c083c2734d5961afed6","unresolved":false,"context_lines":[{"line_number":388,"context_line":""},{"line_number":389,"context_line":"        # When an instance is deleted from Nova, its\u0027 record in"},{"line_number":390,"context_line":"        # InstanceGroup DB were cleaned directly from DB layer in"},{"line_number":391,"context_line":"        # Nova, we should perform sync to keep Searchligh"},{"line_number":392,"context_line":"        # up-to-date with Nova DB."},{"line_number":393,"context_line":"        instance_id \u003d payload[\u0027instance_id\u0027]"},{"line_number":394,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"3a71b18c_17ea5274","line":391,"range":{"start_line":391,"start_character":47,"end_line":391,"end_character":57},"in_reply_to":"3a71b18c_1cd359d6","updated":"2016-12-12 06:38:21.000000000","message":"will fix it, please review again :)","commit_id":"29af93c9aad7412259a4301f7cd37ded732fd360"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"db7201ff82ee4b8711bb5ce41fffce9169986498","unresolved":false,"context_lines":[{"line_number":387,"context_line":"    def delete_instance(self, payload, timestamp):"},{"line_number":388,"context_line":""},{"line_number":389,"context_line":"        # When an instance is deleted from Nova, its\u0027 record in"},{"line_number":390,"context_line":"        # InstanceGroup DB were cleaned directly from DB layer in"},{"line_number":391,"context_line":"        # Nova, we should perform sync to keep Searchligh"},{"line_number":392,"context_line":"        # up-to-date with Nova DB."},{"line_number":393,"context_line":"        instance_id \u003d payload[\u0027instance_id\u0027]"}],"source_content_type":"text/x-python","patch_set":41,"id":"ba5201f7_93f897c6","line":390,"range":{"start_line":390,"start_character":27,"end_line":390,"end_character":31},"updated":"2017-01-10 02:39:36.000000000","message":"was","commit_id":"001c84d7fdf50fa7ced0122365df929b283cb5a0"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"7699ef7c844d5023370d0a8280c7ad4369a9fa0d","unresolved":false,"context_lines":[{"line_number":387,"context_line":"    def delete_instance(self, payload, timestamp):"},{"line_number":388,"context_line":""},{"line_number":389,"context_line":"        # When an instance is deleted from Nova, its\u0027 record in"},{"line_number":390,"context_line":"        # InstanceGroup DB were cleaned directly from DB layer in"},{"line_number":391,"context_line":"        # Nova, we should perform sync to keep Searchligh"},{"line_number":392,"context_line":"        # up-to-date with Nova DB."},{"line_number":393,"context_line":"        instance_id \u003d payload[\u0027instance_id\u0027]"}],"source_content_type":"text/x-python","patch_set":41,"id":"ba5201f7_d6da0d17","line":390,"range":{"start_line":390,"start_character":27,"end_line":390,"end_character":31},"in_reply_to":"ba5201f7_93f897c6","updated":"2017-01-10 02:42:32.000000000","message":"Done","commit_id":"001c84d7fdf50fa7ced0122365df929b283cb5a0"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"db7201ff82ee4b8711bb5ce41fffce9169986498","unresolved":false,"context_lines":[{"line_number":388,"context_line":""},{"line_number":389,"context_line":"        # When an instance is deleted from Nova, its\u0027 record in"},{"line_number":390,"context_line":"        # InstanceGroup DB were cleaned directly from DB layer in"},{"line_number":391,"context_line":"        # Nova, we should perform sync to keep Searchligh"},{"line_number":392,"context_line":"        # up-to-date with Nova DB."},{"line_number":393,"context_line":"        instance_id \u003d payload[\u0027instance_id\u0027]"},{"line_number":394,"context_line":""}],"source_content_type":"text/x-python","patch_set":41,"id":"ba5201f7_b3f59bcc","line":391,"range":{"start_line":391,"start_character":47,"end_line":391,"end_character":57},"updated":"2017-01-10 02:39:36.000000000","message":"Searchlight","commit_id":"001c84d7fdf50fa7ced0122365df929b283cb5a0"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"7699ef7c844d5023370d0a8280c7ad4369a9fa0d","unresolved":false,"context_lines":[{"line_number":388,"context_line":""},{"line_number":389,"context_line":"        # When an instance is deleted from Nova, its\u0027 record in"},{"line_number":390,"context_line":"        # InstanceGroup DB were cleaned directly from DB layer in"},{"line_number":391,"context_line":"        # Nova, we should perform sync to keep Searchligh"},{"line_number":392,"context_line":"        # up-to-date with Nova DB."},{"line_number":393,"context_line":"        instance_id \u003d payload[\u0027instance_id\u0027]"},{"line_number":394,"context_line":""}],"source_content_type":"text/x-python","patch_set":41,"id":"ba5201f7_f6d711eb","line":391,"range":{"start_line":391,"start_character":47,"end_line":391,"end_character":57},"in_reply_to":"ba5201f7_b3f59bcc","updated":"2017-01-10 02:42:32.000000000","message":"Done","commit_id":"001c84d7fdf50fa7ced0122365df929b283cb5a0"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"db7201ff82ee4b8711bb5ce41fffce9169986498","unresolved":false,"context_lines":[{"line_number":395,"context_line":"        query \u003d {\u0027filter\u0027: {\u0027term\u0027: {\u0027members\u0027: instance_id}}}"},{"line_number":396,"context_line":"        search_results \u003d self.index_helper.simple_search("},{"line_number":397,"context_line":"            query\u003dquery, type\u003d\"OS::Nova::ServerGroup\")"},{"line_number":398,"context_line":"        if search_results[\u0027hits\u0027][0]:"},{"line_number":399,"context_line":"            server_group_id \u003d search_results[\u0027hits\u0027][0][\u0027_id\u0027]"},{"line_number":400,"context_line":"            self._update_server_group_members(server_group_id,"},{"line_number":401,"context_line":"                                              instance_id,"}],"source_content_type":"text/x-python","patch_set":41,"id":"ba5201f7_36a519b5","line":398,"range":{"start_line":398,"start_character":11,"end_line":398,"end_character":33},"updated":"2017-01-10 02:39:36.000000000","message":"shouldn\u0027t this be a empty list [] if no result? if so this will cause index error if no result found","commit_id":"001c84d7fdf50fa7ced0122365df929b283cb5a0"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"7699ef7c844d5023370d0a8280c7ad4369a9fa0d","unresolved":false,"context_lines":[{"line_number":395,"context_line":"        query \u003d {\u0027filter\u0027: {\u0027term\u0027: {\u0027members\u0027: instance_id}}}"},{"line_number":396,"context_line":"        search_results \u003d self.index_helper.simple_search("},{"line_number":397,"context_line":"            query\u003dquery, type\u003d\"OS::Nova::ServerGroup\")"},{"line_number":398,"context_line":"        if search_results[\u0027hits\u0027][0]:"},{"line_number":399,"context_line":"            server_group_id \u003d search_results[\u0027hits\u0027][0][\u0027_id\u0027]"},{"line_number":400,"context_line":"            self._update_server_group_members(server_group_id,"},{"line_number":401,"context_line":"                                              instance_id,"}],"source_content_type":"text/x-python","patch_set":41,"id":"ba5201f7_96f7a58b","line":398,"range":{"start_line":398,"start_character":11,"end_line":398,"end_character":33},"in_reply_to":"ba5201f7_36a519b5","updated":"2017-01-10 02:42:32.000000000","message":"Yeah, correct","commit_id":"001c84d7fdf50fa7ced0122365df929b283cb5a0"},{"author":{"_account_id":16150,"name":"Lei Zhang","email":"lei.a.zhang@intel.com","username":"leizhang"},"change_message_id":"32f2f739a86c54d27e8912910ea0c19a1d9679f8","unresolved":false,"context_lines":[{"line_number":369,"context_line":""},{"line_number":370,"context_line":"    def create(self, payload, timestamp):"},{"line_number":371,"context_line":"        payload[\u0027id\u0027] \u003d payload.pop(\u0027server_group_id\u0027)"},{"line_number":372,"context_line":"        payload[\u0027metadata\u0027] \u003d {}"},{"line_number":373,"context_line":"        payload[\u0027members\u0027] \u003d []"},{"line_number":374,"context_line":"        payload[\u0027updated_at\u0027] \u003d utils.get_now_str()"},{"line_number":375,"context_line":""}],"source_content_type":"text/x-python","patch_set":42,"id":"ba5201f7_47902296","line":372,"updated":"2017-01-10 08:58:17.000000000","message":"Not seen this field in index class mapping definition.","commit_id":"4e2ab07f7b8dc7c0955b97e30f5fb05a41cb68f0"},{"author":{"_account_id":16150,"name":"Lei Zhang","email":"lei.a.zhang@intel.com","username":"leizhang"},"change_message_id":"32f2f739a86c54d27e8912910ea0c19a1d9679f8","unresolved":false,"context_lines":[{"line_number":371,"context_line":"        payload[\u0027id\u0027] \u003d payload.pop(\u0027server_group_id\u0027)"},{"line_number":372,"context_line":"        payload[\u0027metadata\u0027] \u003d {}"},{"line_number":373,"context_line":"        payload[\u0027members\u0027] \u003d []"},{"line_number":374,"context_line":"        payload[\u0027updated_at\u0027] \u003d utils.get_now_str()"},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"        LOG.debug(\"creating nova server group\""},{"line_number":377,"context_line":"                  \"information for %s\", payload[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":42,"id":"ba5201f7_27795e30","line":374,"updated":"2017-01-10 08:58:17.000000000","message":"Same as above, \u0027updated_at\u0027 not in index mapping, although it will be added dynamically.","commit_id":"4e2ab07f7b8dc7c0955b97e30f5fb05a41cb68f0"}],"searchlight/tests/unit/test_nova_servergroup_plugin.py":[{"author":{"_account_id":10063,"name":"Steve McLellan","email":"steven.j.mclellan@gmail.com","username":"sjmc7"},"change_message_id":"5c0f880413b32a724513b170d839ffb84ce10868","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"3a71b18c_2b7cad71","line":101,"updated":"2016-12-08 16:29:25.000000000","message":"Be nice to have an example notification here but I won\u0027t be too strict about that","commit_id":"405796c6a343d064913b1ac43f02799b455eb7b3"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"24c3a278597a6e792a94361548282474a41c6936","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"3a71b18c_428b3168","line":101,"in_reply_to":"3a71b18c_2b7cad71","updated":"2016-12-12 00:40:26.000000000","message":"I will try to add that.","commit_id":"405796c6a343d064913b1ac43f02799b455eb7b3"}]}
