)]}'
{"trove/instance/models.py":[{"author":{"_account_id":10139,"name":"Ramashri Umale","email":"rumale@ebaysf.com","username":"rumale"},"change_message_id":"3d2ee4e8700db53871ae8f146ec5b02b797d7709","unresolved":false,"context_lines":[{"line_number":620,"context_line":"                    LOG.error(_(\"Server %(server_id)s entered ERROR status \""},{"line_number":621,"context_line":"                                \"when deleting instance %(instance_id)s!\") %"},{"line_number":622,"context_line":"                              {\u0027server_id\u0027: server.id,"},{"line_number":623,"context_line":"                               \u0027instance_id\u0027: self.id})"},{"line_number":624,"context_line":"                return False"},{"line_number":625,"context_line":"            except nova_exceptions.NotFound:"},{"line_number":626,"context_line":"                return True"}],"source_content_type":"text/x-python","patch_set":4,"id":"baa201ad_15592736","line":623,"updated":"2014-10-02 18:56:35.000000000","message":"Why not log the actual server status in the LOG.error message","commit_id":"4d3bf72bdc7e33227bd1b209107d41b08363155f"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"9cbf1f56182852afdf56e4c9aa014e942a9d34bf","unresolved":false,"context_lines":[{"line_number":620,"context_line":"                    LOG.error(_(\"Server %(server_id)s entered ERROR status \""},{"line_number":621,"context_line":"                                \"when deleting instance %(instance_id)s!\") %"},{"line_number":622,"context_line":"                              {\u0027server_id\u0027: server.id,"},{"line_number":623,"context_line":"                               \u0027instance_id\u0027: self.id})"},{"line_number":624,"context_line":"                return False"},{"line_number":625,"context_line":"            except nova_exceptions.NotFound:"},{"line_number":626,"context_line":"                return True"}],"source_content_type":"text/x-python","patch_set":4,"id":"baa201ad_7550b35e","line":623,"in_reply_to":"baa201ad_15592736","updated":"2014-10-02 19:08:08.000000000","message":"this is existing logic from taskmanager, but hey, good point, it would be useful to know. will fix.","commit_id":"4d3bf72bdc7e33227bd1b209107d41b08363155f"},{"author":{"_account_id":10139,"name":"Ramashri Umale","email":"rumale@ebaysf.com","username":"rumale"},"change_message_id":"3d2ee4e8700db53871ae8f146ec5b02b797d7709","unresolved":false,"context_lines":[{"line_number":654,"context_line":"        # Only send the \u0027delete\u0027 usage event if the server was found."},{"line_number":655,"context_line":"        # Having a compute instance id is not enough, because the \u0027active\u0027"},{"line_number":656,"context_line":"        # usage event is only sent upon a successful prepare."},{"line_number":657,"context_line":"        if old_server is not None:"},{"line_number":658,"context_line":"            self.send_usage_event(\u0027delete\u0027,"},{"line_number":659,"context_line":"                                  deleted_at\u003dtimeutils.isotime(deleted_at),"},{"line_number":660,"context_line":"                                  server\u003dold_server)"}],"source_content_type":"text/x-python","patch_set":4,"id":"baa201ad_95c9977a","line":657,"updated":"2014-10-02 18:56:35.000000000","message":"should also check for is_server_deleted \u003d True?","commit_id":"4d3bf72bdc7e33227bd1b209107d41b08363155f"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"9cbf1f56182852afdf56e4c9aa014e942a9d34bf","unresolved":false,"context_lines":[{"line_number":654,"context_line":"        # Only send the \u0027delete\u0027 usage event if the server was found."},{"line_number":655,"context_line":"        # Having a compute instance id is not enough, because the \u0027active\u0027"},{"line_number":656,"context_line":"        # usage event is only sent upon a successful prepare."},{"line_number":657,"context_line":"        if old_server is not None:"},{"line_number":658,"context_line":"            self.send_usage_event(\u0027delete\u0027,"},{"line_number":659,"context_line":"                                  deleted_at\u003dtimeutils.isotime(deleted_at),"},{"line_number":660,"context_line":"                                  server\u003dold_server)"}],"source_content_type":"text/x-python","patch_set":4,"id":"baa201ad_95e6f7b2","line":657,"in_reply_to":"baa201ad_95c9977a","updated":"2014-10-02 19:08:08.000000000","message":"we got old_server before the delete, for the express purpose of using it in send_usage_event to get extra data (like OS-EXT-AZ:availability_zone, etc.); so this should be fine.","commit_id":"4d3bf72bdc7e33227bd1b209107d41b08363155f"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"e3d9bf6b057a79f15c98cd507a0a886d045ce584","unresolved":false,"context_lines":[{"line_number":654,"context_line":"        # Only send the \u0027delete\u0027 usage event if the server was found."},{"line_number":655,"context_line":"        # Having a compute instance id is not enough, because the \u0027active\u0027"},{"line_number":656,"context_line":"        # usage event is only sent upon a successful prepare."},{"line_number":657,"context_line":"        if old_server is not None:"},{"line_number":658,"context_line":"            self.send_usage_event(\u0027delete\u0027,"},{"line_number":659,"context_line":"                                  deleted_at\u003dtimeutils.isotime(deleted_at),"},{"line_number":660,"context_line":"                                  server\u003dold_server)"}],"source_content_type":"text/x-python","patch_set":4,"id":"baa201ad_b0686988","line":657,"in_reply_to":"baa201ad_95e6f7b2","updated":"2014-10-02 19:35:56.000000000","message":"Hey Tim/Nikhil:\n\ni know that one or both of you use usage events for important things, so what\u0027s the better option here:\n\nshould this check be \"if old_server is not None and is_server_deleted\"? the risk of this is, if the delete fails due to a PollTimeout, you run the risk that the delete of the server actually succeeded. the consequence of this being that the \u0027delete\u0027 usage_event would never get sent, which might cause havoc if you\u0027re using this for billing purposes.\n\nalternatively, if it\u0027s left as \"if old_server is not None\", then it\u0027s possible you\u0027re sending a \u0027delete\u0027 usage_event when the server still exists (on a delete server failure).\n\nfwiw, the current logic does the latter, not the former.\n\nlet me know.","commit_id":"4d3bf72bdc7e33227bd1b209107d41b08363155f"},{"author":{"_account_id":1925,"name":"Vipul Sabhaya","email":"vipuls@gmail.com","username":"vipuls"},"change_message_id":"2e61589f5cc88ad194d64038cbf94e34d5f17afa","unresolved":false,"context_lines":[{"line_number":654,"context_line":"        # Only send the \u0027delete\u0027 usage event if the server was found."},{"line_number":655,"context_line":"        # Having a compute instance id is not enough, because the \u0027active\u0027"},{"line_number":656,"context_line":"        # usage event is only sent upon a successful prepare."},{"line_number":657,"context_line":"        if old_server is not None:"},{"line_number":658,"context_line":"            self.send_usage_event(\u0027delete\u0027,"},{"line_number":659,"context_line":"                                  deleted_at\u003dtimeutils.isotime(deleted_at),"},{"line_number":660,"context_line":"                                  server\u003dold_server)"}],"source_content_type":"text/x-python","patch_set":4,"id":"baa201ad_d693264d","line":657,"in_reply_to":"baa201ad_b0686988","updated":"2014-10-02 20:31:36.000000000","message":"Sounds like the latter is what we do today.  Send an event regardless of delete success.  \n\nTo remain backwards compatible, i would say we keep it this way.","commit_id":"4d3bf72bdc7e33227bd1b209107d41b08363155f"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"32cae033f424a3ed465f02dcc7eaedd127f3d312","unresolved":false,"context_lines":[{"line_number":591,"context_line":"                heatclient \u003d create_heat_client(self.context)"},{"line_number":592,"context_line":"                name \u003d \u0027trove-%s\u0027 % self.id"},{"line_number":593,"context_line":"                heatclient.stacks.delete(name)"},{"line_number":594,"context_line":"            except Exception as ex:"},{"line_number":595,"context_line":"                LOG.exception(_(\"Error deleting heat stack for instance %s.\")"},{"line_number":596,"context_line":"                              % self.id)"},{"line_number":597,"context_line":"        elif old_server is not None:"}],"source_content_type":"text/x-python","patch_set":5,"id":"baa201ad_de723010","line":594,"updated":"2014-10-06 10:33:32.000000000","message":"too broad exception, we should expect specific exceptions, such as HTTP 404, 413, etc.","commit_id":"b3439532d113be5e5aad951e089f20a89f081d14"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"32cae033f424a3ed465f02dcc7eaedd127f3d312","unresolved":false,"context_lines":[{"line_number":595,"context_line":"                LOG.exception(_(\"Error deleting heat stack for instance %s.\")"},{"line_number":596,"context_line":"                              % self.id)"},{"line_number":597,"context_line":"        elif old_server is not None:"},{"line_number":598,"context_line":"            self.server.delete()"},{"line_number":599,"context_line":""},{"line_number":600,"context_line":"        # DNS entry is only created if the nova boot request was accepted."},{"line_number":601,"context_line":"        if server_id is not None:"}],"source_content_type":"text/x-python","patch_set":5,"id":"baa201ad_7eddc4df","line":598,"updated":"2014-10-06 10:33:32.000000000","message":"should be covered with try:except, no?","commit_id":"b3439532d113be5e5aad951e089f20a89f081d14"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"32cae033f424a3ed465f02dcc7eaedd127f3d312","unresolved":false,"context_lines":[{"line_number":601,"context_line":"        if server_id is not None:"},{"line_number":602,"context_line":"            try:"},{"line_number":603,"context_line":"                dns_support \u003d CONF.trove_dns_support"},{"line_number":604,"context_line":"                LOG.debug(\"trove dns support \u003d %s\" % dns_support)"},{"line_number":605,"context_line":"                if dns_support:"},{"line_number":606,"context_line":"                    dns_api \u003d create_dns_client(self.context)"},{"line_number":607,"context_line":"                    dns_api.delete_instance_entry(instance_id\u003dself.db_info.id)"}],"source_content_type":"text/x-python","patch_set":5,"id":"baa201ad_fec9b426","line":604,"updated":"2014-10-06 10:33:32.000000000","message":"missing period","commit_id":"b3439532d113be5e5aad951e089f20a89f081d14"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"32cae033f424a3ed465f02dcc7eaedd127f3d312","unresolved":false,"context_lines":[{"line_number":607,"context_line":"                    dns_api.delete_instance_entry(instance_id\u003dself.db_info.id)"},{"line_number":608,"context_line":"            except Exception as ex:"},{"line_number":609,"context_line":"                LOG.exception(_(\"Error during dns entry of instance %(id)s: \""},{"line_number":610,"context_line":"                                \"%(ex)s\") % {\u0027id\u0027: self.db_info.id, \u0027ex\u0027: ex})"},{"line_number":611,"context_line":""},{"line_number":612,"context_line":"        # Poll until the server is gone."},{"line_number":613,"context_line":"        def server_is_finished():"}],"source_content_type":"text/x-python","patch_set":5,"id":"baa201ad_5e5e4077","line":610,"updated":"2014-10-06 10:33:32.000000000","message":"missing period","commit_id":"b3439532d113be5e5aad951e089f20a89f081d14"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"32cae033f424a3ed465f02dcc7eaedd127f3d312","unresolved":false,"context_lines":[{"line_number":632,"context_line":"        except exception.PollTimeOut:"},{"line_number":633,"context_line":"            is_server_deleted \u003d False"},{"line_number":634,"context_line":"            LOG.exception(_(\"Failed to delete instance %(instance_id)s: \""},{"line_number":635,"context_line":"                            \"Timeout deleting compute server %(server_id)s\") %"},{"line_number":636,"context_line":"                          {\u0027instance_id\u0027: self.id, \u0027server_id\u0027: server_id})"},{"line_number":637,"context_line":""},{"line_number":638,"context_line":"        # The volume is created prior to attempting to boot the server."}],"source_content_type":"text/x-python","patch_set":5,"id":"baa201ad_be4c8cc9","line":635,"updated":"2014-10-06 10:33:32.000000000","message":"missing period","commit_id":"b3439532d113be5e5aad951e089f20a89f081d14"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"32cae033f424a3ed465f02dcc7eaedd127f3d312","unresolved":false,"context_lines":[{"line_number":658,"context_line":"            self.send_usage_event(\u0027delete\u0027,"},{"line_number":659,"context_line":"                                  deleted_at\u003dtimeutils.isotime(deleted_at),"},{"line_number":660,"context_line":"                                  server\u003dold_server)"},{"line_number":661,"context_line":"        LOG.debug(\"End _delete_resources for instance %s\" % self.id)"},{"line_number":662,"context_line":""},{"line_number":663,"context_line":"    def delete_async(self):"},{"line_number":664,"context_line":"        deleted_at \u003d datetime.utcnow()"}],"source_content_type":"text/x-python","patch_set":5,"id":"baa201ad_de4950b8","line":661,"updated":"2014-10-06 10:33:32.000000000","message":"missing period","commit_id":"b3439532d113be5e5aad951e089f20a89f081d14"},{"author":{"_account_id":12484,"name":"jazeltq","email":"tianqing@unitedstack.com","username":"litianqing"},"change_message_id":"ab0aef395081b3af42dec2b3595b41ec26cdb770","unresolved":false,"context_lines":[{"line_number":646,"context_line":"                          \"instance %(instance_id)s.\""},{"line_number":647,"context_line":"                          % {\u0027volume_id\u0027: volume_id,"},{"line_number":648,"context_line":"                             \u0027instance_id\u0027: self.db_info.id})"},{"line_number":649,"context_line":"            except Exception:"},{"line_number":650,"context_line":"                # If the volume was already deleted as a part of deleting the"},{"line_number":651,"context_line":"                # server, or the server never existed, pass."},{"line_number":652,"context_line":"                pass"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba3cc151_03a670c1","line":649,"updated":"2015-06-29 00:06:24.000000000","message":"i think we should log debug here.","commit_id":"9b019daa972adadde6e139a5e2423d43dbc90f42"}]}
