)]}'
{"heat/engine/parser.py":[{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"e69d32543ee50b7ea4a66c81d5e1963b0129d885","unresolved":false,"context_lines":[{"line_number":471,"context_line":"            if (action \u003d\u003d self.ROLLBACK and"},{"line_number":472,"context_line":"                    self.state \u003d\u003d (self.UPDATE, self.IN_PROGRESS)):"},{"line_number":473,"context_line":"                logger.debug(_(\"Starting update rollback for %s\") % self.name)"},{"line_number":474,"context_line":"            elif self.state[0] !\u003d (self.CREATE):"},{"line_number":475,"context_line":"                self.state_set(action, self.FAILED,"},{"line_number":476,"context_line":"                               \u0027State invalid for %s\u0027 % action)"},{"line_number":477,"context_line":"                return"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2Bfl4%3D","line":474,"updated":"2014-01-25 00:03:34.000000000","message":"self.state is just a way (that should probably be considered deprecated) to get self.action and self.status at the same time. Also, the parentheses are redundant. So the check you want here is just \n\n  elif self.action !\u003d self.CREATE:","commit_id":"2c43c8dea2940895d18d6a48a4fc4fd3b1df0162"},{"author":{"_account_id":6488,"name":"Clint Byrum","email":"clint@fewbar.com","username":"clint-fewbar"},"change_message_id":"98c858db713e2bff5926e3c204ec3adeb2c670f4","unresolved":false,"context_lines":[{"line_number":471,"context_line":"            if (action \u003d\u003d self.ROLLBACK and"},{"line_number":472,"context_line":"                    self.state \u003d\u003d (self.UPDATE, self.IN_PROGRESS)):"},{"line_number":473,"context_line":"                logger.debug(_(\"Starting update rollback for %s\") % self.name)"},{"line_number":474,"context_line":"            elif self.state[0] !\u003d (self.CREATE):"},{"line_number":475,"context_line":"                self.state_set(action, self.FAILED,"},{"line_number":476,"context_line":"                               \u0027State invalid for %s\u0027 % action)"},{"line_number":477,"context_line":"                return"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2BfkY%3D","line":474,"in_reply_to":"AAAAUH%2F%2Bfl4%3D","updated":"2014-01-25 00:13:45.000000000","message":"ACK","commit_id":"2c43c8dea2940895d18d6a48a4fc4fd3b1df0162"}],"heat/engine/update.py":[{"author":{"_account_id":4715,"name":"Angus Salkeld","email":"asalkeld@redhat.com","username":"asalkeld"},"change_message_id":"da3e05a6b942f621bb4a8c1ad1038ecdae39c4d6","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        update \u003d scheduler.DependencyTaskGroup(self.dependencies(),"},{"line_number":66,"context_line":"                                               self._resource_update)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        if not self.rollback:"},{"line_number":69,"context_line":"            yield cleanup_failed()"},{"line_number":70,"context_line":"            yield cleanup_prev()"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAT3%2F%2FtLI%3D","line":68,"updated":"2014-01-03 06:01:57.000000000","message":"Wouldn\u0027t we want to cleanup failed if we are doing a rollback too?","commit_id":"66c1fe2e8246bb739e5409f64b9d05b3c552d1a8"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"49bf30c10c871dc84098db1e0958a2b7b1772d73","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        update \u003d scheduler.DependencyTaskGroup(self.dependencies(),"},{"line_number":66,"context_line":"                                               self._resource_update)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        if not self.rollback:"},{"line_number":69,"context_line":"            yield cleanup_failed()"},{"line_number":70,"context_line":"            yield cleanup_prev()"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2Btek%3D","line":68,"in_reply_to":"AAAAT3%2F%2FtLI%3D","updated":"2014-01-22 22:51:47.000000000","message":"No.","commit_id":"66c1fe2e8246bb739e5409f64b9d05b3c552d1a8"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"49bf30c10c871dc84098db1e0958a2b7b1772d73","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    @scheduler.wrappertask"},{"line_number":91,"context_line":"    def _remove_failed_resource(self, existing_res):"},{"line_number":92,"context_line":"        if existing_res.state[1] \u003d\u003d existing_res.FAILED:"},{"line_number":93,"context_line":"            # Delete from existing stack so it appears as a new resource in"},{"line_number":94,"context_line":"            # new stack."},{"line_number":95,"context_line":"            logger.debug(_(\"Removing failed resource %s from existing stack\") %"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2Btes%3D","line":92,"updated":"2014-01-22 22:51:47.000000000","message":"existing_res.status","commit_id":"66c1fe2e8246bb739e5409f64b9d05b3c552d1a8"}]}
