)]}'
{"mistral/api/controllers/v2/execution.py":[{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"37e70d8fe2b0ca8fe1777c6d60f711f31503eae0","unresolved":false,"context_lines":[{"line_number":273,"context_line":"        \"\"\"Delete the specified Execution."},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"        :param id: UUID of execution to delete."},{"line_number":276,"context_line":"        :param force: Optional. Force the deletion of non stopped executions."},{"line_number":277,"context_line":"                      Default: false. While the api is backward compatible"},{"line_number":278,"context_line":"                      the behaviour is not the same. The new default is the"},{"line_number":279,"context_line":"                      safer option"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_3ceb4e13","line":276,"range":{"start_line":276,"start_character":54,"end_line":276,"end_character":65},"updated":"2018-04-13 07:21:34.000000000","message":"I\u0027d be more precise here. \"stopped\" may not mean a terminal state that you actually check with states.is_completed(). For example, PAUSED may be considered stopped but it\u0027s not a terminal state. I guess \"finished\" may be a better word here.","commit_id":"af3a8ff4d07c9cbeec4acf5bfbbfc96a50599060"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"37e70d8fe2b0ca8fe1777c6d60f711f31503eae0","unresolved":false,"context_lines":[{"line_number":281,"context_line":"        acl.enforce(\u0027executions:delete\u0027, context.ctx())"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"        LOG.debug(\"Delete execution [id\u003d%s]\", id)"},{"line_number":284,"context_line":"        execution \u003d db_api.get_workflow_execution(id)"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"        if not force and not states.is_completed(execution.state):"},{"line_number":287,"context_line":"            raise exc.NotAllowedException(\"Only completed executions \""}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_dcd9f282","line":284,"range":{"start_line":284,"start_character":8,"end_line":284,"end_character":17},"updated":"2018-04-13 07:21:34.000000000","message":"Soft: we usually use the name \"wf_ex\" for workflow executions. It\u0027s short and precise.","commit_id":"af3a8ff4d07c9cbeec4acf5bfbbfc96a50599060"},{"author":{"_account_id":9712,"name":"Dougal Matthews","email":"dougal.matthews@canonical.com","username":"dougal"},"change_message_id":"6bb6e3eae22495f709bf88ad935825e85b6fe738","unresolved":false,"context_lines":[{"line_number":273,"context_line":"        \"\"\"Delete the specified Execution."},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"        :param id: UUID of execution to delete."},{"line_number":276,"context_line":"        :param force: Optional. Force the deletion of non finished executions."},{"line_number":277,"context_line":"                      Default: false. While the api is backward compatible"},{"line_number":278,"context_line":"                      the behaviour is not the same. The new default is the"},{"line_number":279,"context_line":"                      safer option"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_48275dc8","line":276,"range":{"start_line":276,"start_character":54,"end_line":276,"end_character":66},"updated":"2018-04-13 10:02:28.000000000","message":"unfinished :)","commit_id":"d416a4c0a40d338b032264e8355449a7bdbc5409"},{"author":{"_account_id":27008,"name":"Vitalii Solodilov","email":"Mcdkr@yandex.ru","username":"mcdoker18"},"change_message_id":"2c51dc7bfffc107fafdfb64afc20616cba38f37c","unresolved":false,"context_lines":[{"line_number":281,"context_line":"        acl.enforce(\u0027executions:delete\u0027, context.ctx())"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"        LOG.debug(\"Delete execution [id\u003d%s]\", id)"},{"line_number":284,"context_line":"        wf_ex \u003d db_api.get_workflow_execution(id)"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"        if not force and not states.is_completed(wf_ex.state):"},{"line_number":287,"context_line":"            raise exc.NotAllowedException(\"Only completed executions \""}],"source_content_type":"text/x-python","patch_set":3,"id":"9f6a8fd7_60e80816","line":284,"updated":"2018-04-15 07:23:05.000000000","message":"You can do a small optimization. Do this sql query only if force is false.\nWhen we delete a bulk of executions. It\u0027s was a good performance boost.\nAnd maybe add test for this case.","commit_id":"d416a4c0a40d338b032264e8355449a7bdbc5409"}],"mistral/tests/unit/api/v2/test_executions.py":[{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"37e70d8fe2b0ca8fe1777c6d60f711f31503eae0","unresolved":false,"context_lines":[{"line_number":707,"context_line":"        MOCK_WF_EX"},{"line_number":708,"context_line":"    )"},{"line_number":709,"context_line":"    def test_delete_execution_not_complete(self):"},{"line_number":710,"context_line":""},{"line_number":711,"context_line":"        resp \u003d self.app.delete(\u0027/v2/executions/123\u0027, expect_errors\u003dTrue)"},{"line_number":712,"context_line":""},{"line_number":713,"context_line":"        self.assertEqual(403, resp.status_int)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_fcc956ab","line":710,"updated":"2018-04-13 07:21:34.000000000","message":"Remove this line please.","commit_id":"af3a8ff4d07c9cbeec4acf5bfbbfc96a50599060"},{"author":{"_account_id":27008,"name":"Vitalii Solodilov","email":"Mcdkr@yandex.ru","username":"mcdoker18"},"change_message_id":"2c51dc7bfffc107fafdfb64afc20616cba38f37c","unresolved":false,"context_lines":[{"line_number":706,"context_line":"        \u0027get_workflow_execution\u0027,"},{"line_number":707,"context_line":"        MOCK_WF_EX"},{"line_number":708,"context_line":"    )"},{"line_number":709,"context_line":"    def test_delete_execution_not_complete(self):"},{"line_number":710,"context_line":"        resp \u003d self.app.delete(\u0027/v2/executions/123\u0027, expect_errors\u003dTrue)"},{"line_number":711,"context_line":""},{"line_number":712,"context_line":"        self.assertEqual(403, resp.status_int)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f6a8fd7_00d90c82","line":709,"range":{"start_line":709,"start_character":20,"end_line":709,"end_character":42},"updated":"2018-04-15 07:23:05.000000000","message":"unfinished_execution ? :)","commit_id":"d416a4c0a40d338b032264e8355449a7bdbc5409"}],"releasenotes/notes/force-stop-executions-00cd67dbbc9b5483.yaml":[{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"37e70d8fe2b0ca8fe1777c6d60f711f31503eae0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"prelude: \u003e"},{"line_number":3,"context_line":"    Replace this text with content to appear at the top of the section for this"},{"line_number":4,"context_line":"    release. All of the prelude content is merged together and then rendered"},{"line_number":5,"context_line":"    separately from the items listed in other parts of the file, so the text"},{"line_number":6,"context_line":"    needs to be worded so that both the prelude and the other items make sense"},{"line_number":7,"context_line":"    when read independently. This may mean repeating some details. Not every"},{"line_number":8,"context_line":"    release note requires a prelude. Usually only notes describing major"},{"line_number":9,"context_line":"    features or adding release theme details should have a prelude."},{"line_number":10,"context_line":"features:"},{"line_number":11,"context_line":"  - |"},{"line_number":12,"context_line":"    List new features here, or remove this section.  All of the list items in"},{"line_number":13,"context_line":"    this section are combined when the release notes are rendered, so the text"},{"line_number":14,"context_line":"    needs to be worded so that it does not depend on any information only"},{"line_number":15,"context_line":"    available in another section, such as the prelude. This may mean repeating"},{"line_number":16,"context_line":"    some details."},{"line_number":17,"context_line":"issues:"},{"line_number":18,"context_line":"  - |"},{"line_number":19,"context_line":"    List known issues here, or remove this section.  All of the list items in"},{"line_number":20,"context_line":"    this section are combined when the release notes are rendered, so the text"},{"line_number":21,"context_line":"    needs to be worded so that it does not depend on any information only"},{"line_number":22,"context_line":"    available in another section, such as the prelude. This may mean repeating"},{"line_number":23,"context_line":"    some details."},{"line_number":24,"context_line":"upgrade:"},{"line_number":25,"context_line":"  - |"},{"line_number":26,"context_line":"    List upgrade notes here, or remove this section.  All of the list items in"},{"line_number":27,"context_line":"    this section are combined when the release notes are rendered, so the text"},{"line_number":28,"context_line":"    needs to be worded so that it does not depend on any information only"},{"line_number":29,"context_line":"    available in another section, such as the prelude. This may mean repeating"},{"line_number":30,"context_line":"    some details."},{"line_number":31,"context_line":"deprecations:"},{"line_number":32,"context_line":"  - |"},{"line_number":33,"context_line":"    List deprecations notes here, or remove this section.  All of the list"},{"line_number":34,"context_line":"    items in this section are combined when the release notes are rendered, so"},{"line_number":35,"context_line":"    the text needs to be worded so that it does not depend on any information"},{"line_number":36,"context_line":"    only available in another section, such as the prelude. This may mean"},{"line_number":37,"context_line":"    repeating some details."},{"line_number":38,"context_line":"critical:"},{"line_number":39,"context_line":"  - |"},{"line_number":40,"context_line":"    Add critical notes here, or remove this section.  All of the list items in"},{"line_number":41,"context_line":"    this section are combined when the release notes are rendered, so the text"},{"line_number":42,"context_line":"    needs to be worded so that it does not depend on any information only"},{"line_number":43,"context_line":"    available in another section, such as the prelude. This may mean repeating"},{"line_number":44,"context_line":"    some details."},{"line_number":45,"context_line":"security:"},{"line_number":46,"context_line":"  - |"},{"line_number":47,"context_line":"    Add security notes here, or remove this section.  All of the list items in"},{"line_number":48,"context_line":"    this section are combined when the release notes are rendered, so the text"},{"line_number":49,"context_line":"    needs to be worded so that it does not depend on any information only"},{"line_number":50,"context_line":"    available in another section, such as the prelude. This may mean repeating"},{"line_number":51,"context_line":"    some details."},{"line_number":52,"context_line":"fixes:"},{"line_number":53,"context_line":"  - |"},{"line_number":54,"context_line":"    Add normal bug fixes here, or remove this section.  All of the list items"},{"line_number":55,"context_line":"    in this section are combined when the release notes are rendered, so the"},{"line_number":56,"context_line":"    text needs to be worded so that it does not depend on any information only"},{"line_number":57,"context_line":"    available in another section, such as the prelude. This may mean repeating"},{"line_number":58,"context_line":"    some details."},{"line_number":59,"context_line":"other:"},{"line_number":60,"context_line":"  - |"},{"line_number":61,"context_line":"    Add other notes here, or remove this section.  All of the list items in"},{"line_number":62,"context_line":"    this section are combined when the release notes are rendered, so the text"},{"line_number":63,"context_line":"    needs to be worded so that it does not depend on any information only"},{"line_number":64,"context_line":"    available in another section, such as the prelude. This may mean repeating"},{"line_number":65,"context_line":"    some details."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"bf659307_fc3e3689","line":65,"range":{"start_line":2,"start_character":0,"end_line":65,"end_character":17},"updated":"2018-04-13 07:21:34.000000000","message":"This is an auto-generated template. Please write the relevant notes instead.","commit_id":"af3a8ff4d07c9cbeec4acf5bfbbfc96a50599060"},{"author":{"_account_id":9712,"name":"Dougal Matthews","email":"dougal.matthews@canonical.com","username":"dougal"},"change_message_id":"6bb6e3eae22495f709bf88ad935825e85b6fe738","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Use of the parameter force to forcefully delete executions. Note using this parameter"},{"line_number":4,"context_line":"    on non finished executions might cause a cascade of errors."},{"line_number":5,"context_line":"issues:"},{"line_number":6,"context_line":"  - Deleting non finished executions might cause a cascade of errors, so the standard behaviour"},{"line_number":7,"context_line":"    has been changed to delete only safe to delete executions and a new parameter force"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"bf659307_0b04ff13","line":4,"range":{"start_line":4,"start_character":7,"end_line":4,"end_character":11},"updated":"2018-04-13 10:02:28.000000000","message":"unfinished","commit_id":"d416a4c0a40d338b032264e8355449a7bdbc5409"},{"author":{"_account_id":9712,"name":"Dougal Matthews","email":"dougal.matthews@canonical.com","username":"dougal"},"change_message_id":"6bb6e3eae22495f709bf88ad935825e85b6fe738","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - Use of the parameter force to forcefully delete executions. Note using this parameter"},{"line_number":4,"context_line":"    on non finished executions might cause a cascade of errors."},{"line_number":5,"context_line":"issues:"},{"line_number":6,"context_line":"  - Deleting non finished executions might cause a cascade of errors, so the standard behaviour"},{"line_number":7,"context_line":"    has been changed to delete only safe to delete executions and a new parameter force"},{"line_number":8,"context_line":"    was added to forceful delete ignoring the state the execution is in."},{"line_number":9,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":3,"id":"bf659307_cb09272b","line":6,"range":{"start_line":6,"start_character":13,"end_line":6,"end_character":17},"updated":"2018-04-13 10:02:28.000000000","message":"ditto","commit_id":"d416a4c0a40d338b032264e8355449a7bdbc5409"}]}
