)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"8d8ed5b48effec2957f7bc905a54a8923eecc10d","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"file create-and-delete-node.json remove \"args\""},{"line_number":10,"context_line":"supplement unittest"},{"line_number":11,"context_line":"add sla and fix indentation"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I6ed93d3bd752f61a00757f5df22adaa6399e86cf"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"7a77a97e_389e2507","line":11,"updated":"2016-11-18 20:10:25.000000000","message":"The commit message should be an explanation of the whole change, not a record of all of the fixes you\u0027ve had to make to get it to pass code review. Please clean this up and make it an explanation of what is actually changing in the code.","commit_id":"68c0288981041d462d04733b28a3def500ad4947"},{"author":{"_account_id":23839,"name":"zhoumingang","email":"zhoumingang@cmss.chinamobile.com","username":"zhoumingang"},"change_message_id":"c2f7899b19745eb3e2ae61c591463c4a6b969bb5","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"file create-and-delete-node.json remove \"args\""},{"line_number":10,"context_line":"supplement unittest"},{"line_number":11,"context_line":"add sla and fix indentation"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I6ed93d3bd752f61a00757f5df22adaa6399e86cf"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"7a77a97e_ea558ffa","line":11,"in_reply_to":"7a77a97e_389e2507","updated":"2016-11-21 08:00:04.000000000","message":"Done","commit_id":"68c0288981041d462d04733b28a3def500ad4947"}],"rally-jobs/rally-senlin.yaml":[{"author":{"_account_id":23435,"name":"zhangzhihui","email":"zhangzh.fnst@cn.fujitsu.com","username":"zhangzhang"},"change_message_id":"517a04b2e5e4accb66461fd61742955ec16c31ee","unresolved":false,"context_lines":[{"line_number":26,"context_line":"        failure_rate:"},{"line_number":27,"context_line":"          max: 0"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"  SenlinClusters.create_and_delete_node:"},{"line_number":30,"context_line":"    -"},{"line_number":31,"context_line":"      runner:"},{"line_number":32,"context_line":"        type: \"constant\""}],"source_content_type":"text/x-yaml","patch_set":5,"id":"7a77a97e_ad2f23a0","line":29,"range":{"start_line":29,"start_character":1,"end_line":29,"end_character":40},"updated":"2016-11-15 04:06:40.000000000","message":"Please remove empty Line51","commit_id":"68c0288981041d462d04733b28a3def500ad4947"},{"author":{"_account_id":23839,"name":"zhoumingang","email":"zhoumingang@cmss.chinamobile.com","username":"zhoumingang"},"change_message_id":"c2f7899b19745eb3e2ae61c591463c4a6b969bb5","unresolved":false,"context_lines":[{"line_number":26,"context_line":"        failure_rate:"},{"line_number":27,"context_line":"          max: 0"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"  SenlinClusters.create_and_delete_node:"},{"line_number":30,"context_line":"    -"},{"line_number":31,"context_line":"      runner:"},{"line_number":32,"context_line":"        type: \"constant\""}],"source_content_type":"text/x-yaml","patch_set":5,"id":"7a77a97e_2a406735","line":29,"range":{"start_line":29,"start_character":1,"end_line":29,"end_character":40},"in_reply_to":"7a77a97e_ad2f23a0","updated":"2016-11-21 08:00:04.000000000","message":"Done","commit_id":"68c0288981041d462d04733b28a3def500ad4947"}],"rally/plugins/openstack/scenarios/senlin/clusters.py":[{"author":{"_account_id":23094,"name":"Staroverov Anton","email":"avstaroverov@gmail.com","username":"astaroverov"},"change_message_id":"2e8f2cf355e07facc4351bb91f5f0ec93522616b","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        Measure the \"senlin node-create\" and \"senlin node-delete\""},{"line_number":62,"context_line":"        commands performance."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        \"\"\""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        profile_id \u003d self.context[\"tenant\"][\"profile\"]"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5da102_54044814","line":63,"updated":"2016-10-27 10:20:11.000000000","message":"Please remove empty string","commit_id":"681176a79467eda40ad4064e970b0442999115db"},{"author":{"_account_id":23839,"name":"zhoumingang","email":"zhoumingang@cmss.chinamobile.com","username":"zhoumingang"},"change_message_id":"0fa4ee2db81e68fe2f414f4029378315fc53e74e","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        Measure the \"senlin node-create\" and \"senlin node-delete\""},{"line_number":62,"context_line":"        commands performance."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        \"\"\""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        profile_id \u003d self.context[\"tenant\"][\"profile\"]"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5da102_b4b0448d","line":63,"in_reply_to":"ba5da102_54044814","updated":"2016-10-27 10:25:49.000000000","message":"thankyou,done","commit_id":"681176a79467eda40ad4064e970b0442999115db"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"1b682fd459da7d532e36e8cad2b53ad212a970f0","unresolved":false,"context_lines":[{"line_number":51,"context_line":"@validation.required_openstack(admin\u003dTrue)"},{"line_number":52,"context_line":"@validation.required_services(consts.Service.SENLIN)"},{"line_number":53,"context_line":"@validation.required_contexts(\"profiles\")"},{"line_number":54,"context_line":"@scenario.configure(context\u003d{\"cleanup\": [\"senlin\"]},"},{"line_number":55,"context_line":"                    name\u003d\"SenlinClusters.create_and_delete_node\")"},{"line_number":56,"context_line":"class CreateAndDeleteNode(utils.SenlinScenario):"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"5a74a57a_26a06d9f","line":54,"updated":"2016-11-23 23:21:06.000000000","message":"please use admin_cleanup here. And could you fix that in 26 line? IN current patch or other, as you wish)","commit_id":"8b469e6eb6a90eb2968efdb8791510a7778ce5dd"},{"author":{"_account_id":23839,"name":"zhoumingang","email":"zhoumingang@cmss.chinamobile.com","username":"zhoumingang"},"change_message_id":"93ee0e80e89328a33577e1d8608a4f30923d89e4","unresolved":false,"context_lines":[{"line_number":51,"context_line":"@validation.required_openstack(admin\u003dTrue)"},{"line_number":52,"context_line":"@validation.required_services(consts.Service.SENLIN)"},{"line_number":53,"context_line":"@validation.required_contexts(\"profiles\")"},{"line_number":54,"context_line":"@scenario.configure(context\u003d{\"cleanup\": [\"senlin\"]},"},{"line_number":55,"context_line":"                    name\u003d\"SenlinClusters.create_and_delete_node\")"},{"line_number":56,"context_line":"class CreateAndDeleteNode(utils.SenlinScenario):"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"5a74a57a_dc8c61dc","line":54,"in_reply_to":"5a74a57a_26a06d9f","updated":"2016-11-28 15:48:31.000000000","message":"Hi,I am confused why should we cleanup senlin resources by using admin_cleanup?\n \nhttps://github.com/openstack/rally/blob/master/rally/plugins/openstack/cleanup/resources.py#L139\n\nI think ,Cluster and profile can use \"cleanup\" to delete,need we  add Resource class for node and policy in the future?","commit_id":"8b469e6eb6a90eb2968efdb8791510a7778ce5dd"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"cd757b24d96e73c66a8a342234b0204dde4ef7b2","unresolved":false,"context_lines":[{"line_number":51,"context_line":"@validation.required_openstack(admin\u003dTrue)"},{"line_number":52,"context_line":"@validation.required_services(consts.Service.SENLIN)"},{"line_number":53,"context_line":"@validation.required_contexts(\"profiles\")"},{"line_number":54,"context_line":"@scenario.configure(context\u003d{\"cleanup\": [\"senlin\"]},"},{"line_number":55,"context_line":"                    name\u003d\"SenlinClusters.create_and_delete_node\")"},{"line_number":56,"context_line":"class CreateAndDeleteNode(utils.SenlinScenario):"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3a71b18c_afc13731","line":54,"in_reply_to":"5a74a57a_dc8c61dc","updated":"2016-12-12 13:49:25.000000000","message":"both regular and admin cleanups use the same resource classes from rally.plugins.openstack.cleanup.resources. The difference only from what \"user\" it will be called. In case of regular cleanup, simple user will be used for listing and deleting resources. In case of admin cleanup, admin user will be used. Since your new resources are created via admin user, I think regular user will be unable to find it and remove it.","commit_id":"8b469e6eb6a90eb2968efdb8791510a7778ce5dd"}],"tests/unit/plugins/openstack/scenarios/senlin/test_utils.py":[{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"8d8ed5b48effec2957f7bc905a54a8923eecc10d","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        self.admin_clients(\"senlin\").get_node.assert_called_once_with("},{"line_number":201,"context_line":"            \"fake_node_id\")"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    @mock.patch(SENLIN_UTILS + \"SenlinScenario.generate_random_name\","},{"line_number":204,"context_line":"                return_value\u003d\"test_node\")"},{"line_number":205,"context_line":"    def test_create_node(self, mock_generate_random_name):"},{"line_number":206,"context_line":"        fake_node \u003d mock.Mock(id\u003d\"fake_node_id\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a77a97e_bb330ff5","line":203,"updated":"2016-11-18 20:10:25.000000000","message":"You don\u0027t need to mock this, you can just monkey-patch it in the function:\n\n    scenario \u003d utils.SenlinScenario(self.context)\n    scenario.generate_random_name \u003d mock.Mock(return_value\u003d\"test_node\")\n\n(And there\u0027s an advantage to doing that, in case code gets moved around in the future.)","commit_id":"68c0288981041d462d04733b28a3def500ad4947"},{"author":{"_account_id":23839,"name":"zhoumingang","email":"zhoumingang@cmss.chinamobile.com","username":"zhoumingang"},"change_message_id":"c2f7899b19745eb3e2ae61c591463c4a6b969bb5","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        self.admin_clients(\"senlin\").get_node.assert_called_once_with("},{"line_number":201,"context_line":"            \"fake_node_id\")"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    @mock.patch(SENLIN_UTILS + \"SenlinScenario.generate_random_name\","},{"line_number":204,"context_line":"                return_value\u003d\"test_node\")"},{"line_number":205,"context_line":"    def test_create_node(self, mock_generate_random_name):"},{"line_number":206,"context_line":"        fake_node \u003d mock.Mock(id\u003d\"fake_node_id\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a77a97e_8a47bb4a","line":203,"in_reply_to":"7a77a97e_bb330ff5","updated":"2016-11-21 08:00:04.000000000","message":"Done","commit_id":"68c0288981041d462d04733b28a3def500ad4947"}]}
