)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"423830545826dccc61fa6b9bb19fa6e9af095204","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     zhangzhang \u003czhangzh.fnst@cn.fujitsu.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-06-22 16:30:16 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"fix verifier bug"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"add some code to check rally verify related job \u0027rally deployment destroy\u0027"},{"line_number":10,"context_line":"in our CLI job"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5f201791_7c0cc83a","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":16},"updated":"2017-06-22 13:30:00.000000000","message":"Please add more info, it can help in further processing git log (for example, writing release notes).\n\n   Fix deleting verifiers while deployment destroy","commit_id":"750b25ec932e8306573a3536090e5291e5d73ad7"}],"rally/api.py":[{"author":{"_account_id":21528,"name":"chenhb","email":"chen.haibing1@zte.com.cn","username":"chenhb"},"change_message_id":"947a62f4ccad8ef24ed575074f96554bfab38e34","unresolved":false,"context_lines":[{"line_number":653,"context_line":""},{"line_number":654,"context_line":"        LOG.info(\"Verifier %s has been successfully created!\", verifier)"},{"line_number":655,"context_line":""},{"line_number":656,"context_line":"        return verifier[\"uuid\"]"},{"line_number":657,"context_line":""},{"line_number":658,"context_line":"    def _get(self, verifier_id):"},{"line_number":659,"context_line":"        \"\"\"Get a verifier."}],"source_content_type":"text/x-python","patch_set":1,"id":"5f201791_247f4068","line":656,"updated":"2017-06-23 05:35:35.000000000","message":"we could not fix this line. :)","commit_id":"750b25ec932e8306573a3536090e5291e5d73ad7"},{"author":{"_account_id":23435,"name":"zhangzhihui","email":"zhangzh.fnst@cn.fujitsu.com","username":"zhangzhang"},"change_message_id":"3fb54eeb65c9ac1c8f7df1c78cb3e23b6d7735dd","unresolved":false,"context_lines":[{"line_number":653,"context_line":""},{"line_number":654,"context_line":"        LOG.info(\"Verifier %s has been successfully created!\", verifier)"},{"line_number":655,"context_line":""},{"line_number":656,"context_line":"        return verifier[\"uuid\"]"},{"line_number":657,"context_line":""},{"line_number":658,"context_line":"    def _get(self, verifier_id):"},{"line_number":659,"context_line":"        \"\"\"Get a verifier."}],"source_content_type":"text/x-python","patch_set":1,"id":"5f201791_59d33a61","line":656,"in_reply_to":"5f201791_247f4068","updated":"2017-06-23 12:06:26.000000000","message":"Done","commit_id":"750b25ec932e8306573a3536090e5291e5d73ad7"},{"author":{"_account_id":21528,"name":"chenhb","email":"chen.haibing1@zte.com.cn","username":"chenhb"},"change_message_id":"947a62f4ccad8ef24ed575074f96554bfab38e34","unresolved":false,"context_lines":[{"line_number":809,"context_line":""},{"line_number":810,"context_line":"        LOG.info(\"Verifier %s has been successfully updated!\", verifier)"},{"line_number":811,"context_line":""},{"line_number":812,"context_line":"        return verifier[\"uuid\"]"},{"line_number":813,"context_line":""},{"line_number":814,"context_line":"    @api_wrapper(path\u003dAPI_REQUEST_PREFIX + \"/verifier/configure\", method\u003d\"PUT\")"},{"line_number":815,"context_line":"    def configure(self, verifier, deployment_id, extra_options\u003dNone,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f201791_e49828c1","line":812,"updated":"2017-06-23 05:35:35.000000000","message":"same here\nif you want to use this style, i propose to fix line #631, #803... too.","commit_id":"750b25ec932e8306573a3536090e5291e5d73ad7"},{"author":{"_account_id":23435,"name":"zhangzhihui","email":"zhangzh.fnst@cn.fujitsu.com","username":"zhangzhang"},"change_message_id":"3fb54eeb65c9ac1c8f7df1c78cb3e23b6d7735dd","unresolved":false,"context_lines":[{"line_number":809,"context_line":""},{"line_number":810,"context_line":"        LOG.info(\"Verifier %s has been successfully updated!\", verifier)"},{"line_number":811,"context_line":""},{"line_number":812,"context_line":"        return verifier[\"uuid\"]"},{"line_number":813,"context_line":""},{"line_number":814,"context_line":"    @api_wrapper(path\u003dAPI_REQUEST_PREFIX + \"/verifier/configure\", method\u003d\"PUT\")"},{"line_number":815,"context_line":"    def configure(self, verifier, deployment_id, extra_options\u003dNone,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f201791_39d63e51","line":812,"in_reply_to":"5f201791_e49828c1","updated":"2017-06-23 12:06:26.000000000","message":"Done","commit_id":"750b25ec932e8306573a3536090e5291e5d73ad7"},{"author":{"_account_id":22960,"name":"Hai Shi","email":"shihai1992@gmail.com","username":"haishi"},"change_message_id":"160827d560b1b8ffaf25ab71b33d9f395773e56c","unresolved":false,"context_lines":[{"line_number":140,"context_line":"                     % deployment[\"uuid\"])"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        for verifier in self.api.verifier.list():"},{"line_number":143,"context_line":"            self.api.verifier.delete(verifier_id\u003dverifier[\"name\"],"},{"line_number":144,"context_line":"                                     deployment_id\u003ddeployment[\"name\"],"},{"line_number":145,"context_line":"                                     force\u003dTrue)"},{"line_number":146,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5f201791_ee669ec1","line":143,"range":{"start_line":143,"start_character":37,"end_line":143,"end_character":65},"updated":"2017-06-25 13:44:42.000000000","message":"Looks you solved a potential bug. But why gate can not found this problem.","commit_id":"646825d522c6e8560ea683f1249e53e5ab7e7b2c"}],"tests/ci/rally_verify.py":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"9ef63da3744d1aa54d5546efebec9f49f4ba3a9d","unresolved":false,"context_lines":[{"line_number":443,"context_line":"    DEPENDS_ON \u003d CreateVerifier"},{"line_number":444,"context_line":""},{"line_number":445,"context_line":""},{"line_number":446,"context_line":"class DestroyDeployment(Step):"},{"line_number":447,"context_line":"    COMMAND \u003d \"deployment destroy --deployment %(id)s\""},{"line_number":448,"context_line":"    CALL_ARGS \u003d {\"id\": SetUpStep.DEPLOYMENT_NAME}"},{"line_number":449,"context_line":"    DEPENDS_ON \u003d SetUpStep"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f201791_c9e0bccf","line":446,"updated":"2017-06-22 13:28:12.000000000","message":"please add a description to this step. It is very important, since the description is used while generating html report.\n\n\"Delete the deployment, all verifiers, and verifications results\"","commit_id":"750b25ec932e8306573a3536090e5291e5d73ad7"},{"author":{"_account_id":23435,"name":"zhangzhihui","email":"zhangzh.fnst@cn.fujitsu.com","username":"zhangzhang"},"change_message_id":"3fb54eeb65c9ac1c8f7df1c78cb3e23b6d7735dd","unresolved":false,"context_lines":[{"line_number":443,"context_line":"    DEPENDS_ON \u003d CreateVerifier"},{"line_number":444,"context_line":""},{"line_number":445,"context_line":""},{"line_number":446,"context_line":"class DestroyDeployment(Step):"},{"line_number":447,"context_line":"    COMMAND \u003d \"deployment destroy --deployment %(id)s\""},{"line_number":448,"context_line":"    CALL_ARGS \u003d {\"id\": SetUpStep.DEPLOYMENT_NAME}"},{"line_number":449,"context_line":"    DEPENDS_ON \u003d SetUpStep"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f201791_f9cfa6ad","line":446,"in_reply_to":"5f201791_55c0a850","updated":"2017-06-23 12:06:26.000000000","message":"Done","commit_id":"750b25ec932e8306573a3536090e5291e5d73ad7"},{"author":{"_account_id":23435,"name":"zhangzhihui","email":"zhangzh.fnst@cn.fujitsu.com","username":"zhangzhang"},"change_message_id":"8f0b04cfcea89235aeb6b866c6963cf7d7a0fe3b","unresolved":false,"context_lines":[{"line_number":443,"context_line":"    DEPENDS_ON \u003d CreateVerifier"},{"line_number":444,"context_line":""},{"line_number":445,"context_line":""},{"line_number":446,"context_line":"class DestroyDeployment(Step):"},{"line_number":447,"context_line":"    COMMAND \u003d \"deployment destroy --deployment %(id)s\""},{"line_number":448,"context_line":"    CALL_ARGS \u003d {\"id\": SetUpStep.DEPLOYMENT_NAME}"},{"line_number":449,"context_line":"    DEPENDS_ON \u003d SetUpStep"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f201791_fe39da3e","line":446,"in_reply_to":"5f201791_c9e0bccf","updated":"2017-06-23 02:06:36.000000000","message":"when destroy deployment, only the deployment-specific data will be deleted for verifier, don\u0027t delete verifier. please look at https://github.com/openstack/rally/blob/master/rally/api.py#L143 and L685, so in the end, we need to call \u0027DeleteVerifier\u0027 to delete verifier.","commit_id":"750b25ec932e8306573a3536090e5291e5d73ad7"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"66288d4dde018d85d64e0ced2cd80383c64a0fea","unresolved":false,"context_lines":[{"line_number":443,"context_line":"    DEPENDS_ON \u003d CreateVerifier"},{"line_number":444,"context_line":""},{"line_number":445,"context_line":""},{"line_number":446,"context_line":"class DestroyDeployment(Step):"},{"line_number":447,"context_line":"    COMMAND \u003d \"deployment destroy --deployment %(id)s\""},{"line_number":448,"context_line":"    CALL_ARGS \u003d {\"id\": SetUpStep.DEPLOYMENT_NAME}"},{"line_number":449,"context_line":"    DEPENDS_ON \u003d SetUpStep"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f201791_55c0a850","line":446,"in_reply_to":"5f201791_fe39da3e","updated":"2017-06-23 07:00:21.000000000","message":"yes, you are right. but anyway please add a proper docstring:)","commit_id":"750b25ec932e8306573a3536090e5291e5d73ad7"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"9ef63da3744d1aa54d5546efebec9f49f4ba3a9d","unresolved":false,"context_lines":[{"line_number":470,"context_line":"             ListVerifications,"},{"line_number":471,"context_line":"             DeleteVerifierExtension,"},{"line_number":472,"context_line":"             DestroyDeployment,"},{"line_number":473,"context_line":"             DeleteVerifier]"},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"    if args.compare:"},{"line_number":476,"context_line":"        # need to launch one more verification"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f201791_8938843d","line":473,"range":{"start_line":473,"start_character":13,"end_line":473,"end_character":27},"updated":"2017-06-22 13:28:12.000000000","message":"We have only one verifier, so to check destroy command we need  anything there, so let just comment DeleteVerifier for now(it will fail if it is called after DestroyDeployment or DestroyDeployment will do nothing if DeleteVerifier will be called previously)","commit_id":"750b25ec932e8306573a3536090e5291e5d73ad7"}],"tests/unit/test_api.py":[{"author":{"_account_id":21528,"name":"chenhb","email":"chen.haibing1@zte.com.cn","username":"chenhb"},"change_message_id":"947a62f4ccad8ef24ed575074f96554bfab38e34","unresolved":false,"context_lines":[{"line_number":632,"context_line":"        mock_deployment_get.return_value \u003d self.deployment"},{"line_number":633,"context_line":"        mock_deployment_update.return_value \u003d self.deployment"},{"line_number":634,"context_line":""},{"line_number":635,"context_line":"        list_verifiers \u003d [mock.MagicMock(), mock.MagicMock()]"},{"line_number":636,"context_line":"        self.deployment_inst.api.verifier.list.return_value \u003d list_verifiers"},{"line_number":637,"context_line":""},{"line_number":638,"context_line":"        self.deployment_inst.destroy(deployment\u003dself.deployment_uuid)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f201791_c4c1ac82","line":635,"updated":"2017-06-23 05:35:35.000000000","message":"lets use use dict instead of mock.MagicMock","commit_id":"750b25ec932e8306573a3536090e5291e5d73ad7"},{"author":{"_account_id":23435,"name":"zhangzhihui","email":"zhangzh.fnst@cn.fujitsu.com","username":"zhangzhang"},"change_message_id":"3fb54eeb65c9ac1c8f7df1c78cb3e23b6d7735dd","unresolved":false,"context_lines":[{"line_number":632,"context_line":"        mock_deployment_get.return_value \u003d self.deployment"},{"line_number":633,"context_line":"        mock_deployment_update.return_value \u003d self.deployment"},{"line_number":634,"context_line":""},{"line_number":635,"context_line":"        list_verifiers \u003d [mock.MagicMock(), mock.MagicMock()]"},{"line_number":636,"context_line":"        self.deployment_inst.api.verifier.list.return_value \u003d list_verifiers"},{"line_number":637,"context_line":""},{"line_number":638,"context_line":"        self.deployment_inst.destroy(deployment\u003dself.deployment_uuid)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f201791_b9c12e83","line":635,"in_reply_to":"5f201791_c4c1ac82","updated":"2017-06-23 12:06:26.000000000","message":"Done","commit_id":"750b25ec932e8306573a3536090e5291e5d73ad7"}]}
