)]}'
{"heat/api/openstack/v1/__init__.py":[{"author":{"_account_id":7714,"name":"Tim Schnell","email":"tim.schnell@rackspace.com","username":"timductive"},"change_message_id":"0838ddb698642109dd7c7e16f618edcf21baafb9","unresolved":false,"context_lines":[{"line_number":113,"context_line":"                                 \"/stacks/{stack_name}/{stack_id}/abandon\","},{"line_number":114,"context_line":"                                 action\u003d\"abandon\","},{"line_number":115,"context_line":"                                 conditions\u003d{\u0027method\u0027: \u0027GET\u0027})"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        # Resources"},{"line_number":118,"context_line":"        resources_resource \u003d resources.create_resource(conf)"},{"line_number":119,"context_line":"        stack_path \u003d \"/{tenant_id}/stacks/{stack_name}/{stack_id}\""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2B5Vg%3D","line":116,"updated":"2013-11-18 21:26:29.000000000","message":"If you are changing the state of the stack I think the method should be a POST instead of GET","commit_id":"7fbcbe3dbc1d53be9393c750b4cf56281ab2359e"},{"author":{"_account_id":4715,"name":"Angus Salkeld","email":"asalkeld@redhat.com","username":"asalkeld"},"change_message_id":"462aff6635d20a2d9c3f45cd8d47c663ec2f2cc3","unresolved":false,"context_lines":[{"line_number":113,"context_line":"                                 \"/stacks/{stack_name}/{stack_id}/abandon\","},{"line_number":114,"context_line":"                                 action\u003d\"abandon\","},{"line_number":115,"context_line":"                                 conditions\u003d{\u0027method\u0027: \u0027GET\u0027})"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        # Resources"},{"line_number":118,"context_line":"        resources_resource \u003d resources.create_resource(conf)"},{"line_number":119,"context_line":"        stack_path \u003d \"/{tenant_id}/stacks/{stack_name}/{stack_id}\""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2B4Eo%3D","line":116,"in_reply_to":"AAAATn%2F%2B5Vg%3D","updated":"2013-11-19 03:12:50.000000000","message":"yes, in fact I think there was talk of something like:\nDELETE /stacks/{stack_name}/{stack_id}/db_state\n\nnow I am not sure of \"db_state\" but abandon is a delete of heat\u0027s view of the stack\nnot the actual stack.","commit_id":"7fbcbe3dbc1d53be9393c750b4cf56281ab2359e"},{"author":{"_account_id":6917,"name":"Bartosz Górski","email":"bartosz@codilime.com","username":"bartosz-gorski"},"change_message_id":"7979ec46794a7954a868f5bc83c17ef3a154b273","unresolved":false,"context_lines":[{"line_number":100,"context_line":"                                 action\u003d\"template\","},{"line_number":101,"context_line":"                                 conditions\u003d{\u0027method\u0027: \u0027GET\u0027})"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"            # Stack update/delete/abandon"},{"line_number":104,"context_line":"            stack_mapper.connect(\"stack_update\","},{"line_number":105,"context_line":"                                 \"/stacks/{stack_name}/{stack_id}\","},{"line_number":106,"context_line":"                                 action\u003d\"update\","}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2BtCM%3D","line":103,"updated":"2013-11-21 10:40:19.000000000","message":"Maybe we should create a new, separated section for abandon and adopt","commit_id":"05fbef29c9ba9059b9e98c51d610c88734e8b9a2"}],"heat/api/openstack/v1/stacks.py":[{"author":{"_account_id":7714,"name":"Tim Schnell","email":"tim.schnell@rackspace.com","username":"timductive"},"change_message_id":"0838ddb698642109dd7c7e16f618edcf21baafb9","unresolved":false,"context_lines":[{"line_number":278,"context_line":"    @util.identified_stack"},{"line_number":279,"context_line":"    def abandon(self, req, identity):"},{"line_number":280,"context_line":"        \"\"\""},{"line_number":281,"context_line":"        Delete the specified stack"},{"line_number":282,"context_line":"        \"\"\""},{"line_number":283,"context_line":"        res \u003d self.engine.abandon_stack(req.context,"},{"line_number":284,"context_line":"                                        identity)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2B5Ug%3D","line":281,"updated":"2013-11-18 21:26:29.000000000","message":"I would change this docstring to something more specific. \"Abandons the stack by deleting it from the database.\"","commit_id":"7fbcbe3dbc1d53be9393c750b4cf56281ab2359e"},{"author":{"_account_id":6917,"name":"Bartosz Górski","email":"bartosz@codilime.com","username":"bartosz-gorski"},"change_message_id":"7979ec46794a7954a868f5bc83c17ef3a154b273","unresolved":false,"context_lines":[{"line_number":279,"context_line":"    def abandon(self, req, identity):"},{"line_number":280,"context_line":"        \"\"\""},{"line_number":281,"context_line":"        Abandon the specified stack by deleting the stack and it\u0027s resources"},{"line_number":282,"context_line":"        from the database."},{"line_number":283,"context_line":"        \"\"\""},{"line_number":284,"context_line":"        res \u003d self.engine.abandon_stack(req.context,"},{"line_number":285,"context_line":"                                        identity)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2BtBo%3D","line":282,"updated":"2013-11-21 10:40:19.000000000","message":"We should clearly point out here that underlying resources will not be deleted.","commit_id":"05fbef29c9ba9059b9e98c51d610c88734e8b9a2"},{"author":{"_account_id":7256,"name":"Randall Burt","email":"randall.burt@rackspace.com","username":"randall-burt"},"change_message_id":"0aaedd74158126bcd5d7d25cc664172e94ba3eeb","unresolved":false,"context_lines":[{"line_number":281,"context_line":"        Abandons specified stack by deleting the stack and it\u0027s resources"},{"line_number":282,"context_line":"        from the database, but underlying resources will not be deleted."},{"line_number":283,"context_line":"        \"\"\""},{"line_number":284,"context_line":"        res \u003d self.engine.abandon_stack(req.context,"},{"line_number":285,"context_line":"                                        identity)"},{"line_number":286,"context_line":"        return res"},{"line_number":287,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2BlUQ%3D","line":284,"updated":"2013-11-22 20:11:03.000000000","message":"Shouldn\u0027t this check for error? I would assume, for example, that we\u0027d want this to return a 404 for an unfound stack since this isn\u0027t your traditional delete operation.","commit_id":"b2c41dd3bbbfd32a0338485c9f84b10b63d288bc"},{"author":{"_account_id":7230,"name":"Vijendar Komalla","email":"vijendar.komalla@rackspace.com","username":"vijendar"},"change_message_id":"5a9387401360091b7031f696ff7e8a9a6c6fb12a","unresolved":false,"context_lines":[{"line_number":281,"context_line":"        Abandons specified stack by deleting the stack and it\u0027s resources"},{"line_number":282,"context_line":"        from the database, but underlying resources will not be deleted."},{"line_number":283,"context_line":"        \"\"\""},{"line_number":284,"context_line":"        res \u003d self.engine.abandon_stack(req.context,"},{"line_number":285,"context_line":"                                        identity)"},{"line_number":286,"context_line":"        return res"},{"line_number":287,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2BdaI%3D","line":284,"in_reply_to":"AAAATn%2F%2BlUQ%3D","updated":"2013-11-25 20:27:42.000000000","message":"I tested this and don\u0027t need error handling here.\nengine.abandon_stack returns 404 not found error here.","commit_id":"b2c41dd3bbbfd32a0338485c9f84b10b63d288bc"}],"heat/tests/test_api_openstack_v1.py":[{"author":{"_account_id":7714,"name":"Tim Schnell","email":"tim.schnell@rackspace.com","username":"timductive"},"change_message_id":"0838ddb698642109dd7c7e16f618edcf21baafb9","unresolved":false,"context_lines":[{"line_number":258,"context_line":"        return self._simple_request(path, method\u003d\u0027DELETE\u0027)"},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"    def _abandon(self, path):"},{"line_number":261,"context_line":"        return self._simple_request(path, method\u003d\u0027GET\u0027)"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"    def _data_request(self, path, data, content_type\u003d\u0027application/json\u0027,"},{"line_number":264,"context_line":"                      method\u003d\u0027POST\u0027):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2B5UQ%3D","line":261,"updated":"2013-11-18 21:26:29.000000000","message":"Again, method should be POST.","commit_id":"7fbcbe3dbc1d53be9393c750b4cf56281ab2359e"},{"author":{"_account_id":7896,"name":"Edmund Troche","email":"edmund.troche@us.ibm.com","username":"edmund"},"change_message_id":"cbd137dc5c9151a015ab6a2dc02482f051775137","unresolved":false,"context_lines":[{"line_number":259,"context_line":""},{"line_number":260,"context_line":"    def _abandon(self, path):"},{"line_number":261,"context_line":"        return self._simple_request(path, method\u003d\u0027GET\u0027)"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"    def _data_request(self, path, data, content_type\u003d\u0027application/json\u0027,"},{"line_number":264,"context_line":"                      method\u003d\u0027POST\u0027):"},{"line_number":265,"context_line":"        environ \u003d self._environ(path)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2B4BI%3D","line":262,"updated":"2013-11-19 03:36:28.000000000","message":"… or DELETE, as Angus suggested, which may be more accurate since the intended operation on the resource is to delete it.","commit_id":"7fbcbe3dbc1d53be9393c750b4cf56281ab2359e"},{"author":{"_account_id":6917,"name":"Bartosz Górski","email":"bartosz@codilime.com","username":"bartosz-gorski"},"change_message_id":"7979ec46794a7954a868f5bc83c17ef3a154b273","unresolved":false,"context_lines":[{"line_number":1103,"context_line":"        template \u003d {u\u0027Foo\u0027: u\u0027bar\u0027}"},{"line_number":1104,"context_line":"        json_template \u003d json.dumps(template)"},{"line_number":1105,"context_line":"        parameters \u003d {u\u0027InstanceType\u0027: u\u0027m1.xlarge\u0027}"},{"line_number":1106,"context_line":"        body \u003d {\u0027template\u0027: template,"},{"line_number":1107,"context_line":"                \u0027parameters\u0027: parameters,"},{"line_number":1108,"context_line":"                \u0027timeout_mins\u0027: 30}"},{"line_number":1109,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2BtAo%3D","line":1106,"updated":"2013-11-21 10:40:19.000000000","message":"It seems to me that the body is defined but not used.","commit_id":"05fbef29c9ba9059b9e98c51d610c88734e8b9a2"}]}
