)]}'
{"rally-jobs/nova.yaml":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"e62cabf1b384141487451141ec9e2e172abd5e38","unresolved":false,"context_lines":[{"line_number":659,"context_line":"    runner:"},{"line_number":660,"context_line":"      type: \"constant\""},{"line_number":661,"context_line":"      times: 10"},{"line_number":662,"context_line":"      concurrency: 1"},{"line_number":663,"context_line":"    context:"},{"line_number":664,"context_line":"      users:"},{"line_number":665,"context_line":"        tenants: 3"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"fa6399be_83750065","line":662,"updated":"2016-10-16 22:33:46.000000000","message":"please increase it to 2. Will look how long it will take, maybe we will change one more time parameters","commit_id":"c57f4953cd78ce832165824d66b0e7f38e0bfd3a"},{"author":{"_account_id":18404,"name":"Ma Xinjian","email":"maxj.fnst@cn.fujitsu.com","username":"maxinjian"},"change_message_id":"8d17512b51a36f4be4fd91f93e52a7b8bbf0e102","unresolved":false,"context_lines":[{"line_number":659,"context_line":"    runner:"},{"line_number":660,"context_line":"      type: \"constant\""},{"line_number":661,"context_line":"      times: 10"},{"line_number":662,"context_line":"      concurrency: 1"},{"line_number":663,"context_line":"    context:"},{"line_number":664,"context_line":"      users:"},{"line_number":665,"context_line":"        tenants: 3"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"fa6399be_220579c1","line":662,"in_reply_to":"fa6399be_83750065","updated":"2016-10-20 02:23:38.000000000","message":"En,in this patch,concurrency must be \"1\". server should be evacuated one by one.May be I was wrong, hoping for more suggestion","commit_id":"c57f4953cd78ce832165824d66b0e7f38e0bfd3a"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"e62cabf1b384141487451141ec9e2e172abd5e38","unresolved":false,"context_lines":[{"line_number":667,"context_line":"      api_versions:"},{"line_number":668,"context_line":"        nova:"},{"line_number":669,"context_line":"          version: 2.11"},{"line_number":670,"context_line":"      sla:"},{"line_number":671,"context_line":"        failure_rate:"},{"line_number":672,"context_line":"          max: 0"},{"line_number":673,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":1,"id":"fa6399be_635aacf3","line":670,"updated":"2016-10-16 22:33:46.000000000","message":"this should be out of context section","commit_id":"c57f4953cd78ce832165824d66b0e7f38e0bfd3a"},{"author":{"_account_id":18404,"name":"Ma Xinjian","email":"maxj.fnst@cn.fujitsu.com","username":"maxinjian"},"change_message_id":"8d17512b51a36f4be4fd91f93e52a7b8bbf0e102","unresolved":false,"context_lines":[{"line_number":667,"context_line":"      api_versions:"},{"line_number":668,"context_line":"        nova:"},{"line_number":669,"context_line":"          version: 2.11"},{"line_number":670,"context_line":"      sla:"},{"line_number":671,"context_line":"        failure_rate:"},{"line_number":672,"context_line":"          max: 0"},{"line_number":673,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":1,"id":"fa6399be_223739b1","line":670,"in_reply_to":"fa6399be_635aacf3","updated":"2016-10-20 02:23:38.000000000","message":"Done","commit_id":"c57f4953cd78ce832165824d66b0e7f38e0bfd3a"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"efb68dccfd32c9b3fe6e1fad20ea09dc26f53af5","unresolved":false,"context_lines":[{"line_number":659,"context_line":"    runner:"},{"line_number":660,"context_line":"      type: \"constant\""},{"line_number":661,"context_line":"      times: 10"},{"line_number":662,"context_line":"      concurrency: 1"},{"line_number":663,"context_line":"    context:"},{"line_number":664,"context_line":"      users:"},{"line_number":665,"context_line":"        tenants: 3"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"da6895a0_db4b0c2a","line":662,"updated":"2016-10-27 23:44:56.000000000","message":"please increase it to 2.","commit_id":"525c83efc4bd180d0ec88b12a6c7819e2564096a"},{"author":{"_account_id":18404,"name":"Ma Xinjian","email":"maxj.fnst@cn.fujitsu.com","username":"maxinjian"},"change_message_id":"6c7231de129df08c96219470e0ced4cfc0fb503e","unresolved":false,"context_lines":[{"line_number":659,"context_line":"    runner:"},{"line_number":660,"context_line":"      type: \"constant\""},{"line_number":661,"context_line":"      times: 10"},{"line_number":662,"context_line":"      concurrency: 1"},{"line_number":663,"context_line":"    context:"},{"line_number":664,"context_line":"      users:"},{"line_number":665,"context_line":"        tenants: 3"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"ba5da102_994a62c4","line":662,"in_reply_to":"da6895a0_db4b0c2a","updated":"2016-10-31 05:20:22.000000000","message":"Done","commit_id":"525c83efc4bd180d0ec88b12a6c7819e2564096a"}],"rally/plugins/openstack/scenarios/nova/servers.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"e62cabf1b384141487451141ec9e2e172abd5e38","unresolved":false,"context_lines":[{"line_number":940,"context_line":"    def run(self, image, flavor, on_shared_storage\u003dNone,"},{"line_number":941,"context_line":"            password\u003dNone, min_sleep\u003d0,"},{"line_number":942,"context_line":"            max_sleep\u003d0, **kwargs):"},{"line_number":943,"context_line":"        \"\"\"Evacuate a server."},{"line_number":944,"context_line":""},{"line_number":945,"context_line":"        This scenario launches a VM on a compute node available in"},{"line_number":946,"context_line":"        the availability zone and then evacuates the VM to another"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa6399be_230b54d7","line":943,"updated":"2016-10-16 22:33:46.000000000","message":"boot and evacuate server","commit_id":"c57f4953cd78ce832165824d66b0e7f38e0bfd3a"},{"author":{"_account_id":18404,"name":"Ma Xinjian","email":"maxj.fnst@cn.fujitsu.com","username":"maxinjian"},"change_message_id":"8d17512b51a36f4be4fd91f93e52a7b8bbf0e102","unresolved":false,"context_lines":[{"line_number":940,"context_line":"    def run(self, image, flavor, on_shared_storage\u003dNone,"},{"line_number":941,"context_line":"            password\u003dNone, min_sleep\u003d0,"},{"line_number":942,"context_line":"            max_sleep\u003d0, **kwargs):"},{"line_number":943,"context_line":"        \"\"\"Evacuate a server."},{"line_number":944,"context_line":""},{"line_number":945,"context_line":"        This scenario launches a VM on a compute node available in"},{"line_number":946,"context_line":"        the availability zone and then evacuates the VM to another"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa6399be_02ba350a","line":943,"in_reply_to":"fa6399be_230b54d7","updated":"2016-10-20 02:23:38.000000000","message":"Done","commit_id":"c57f4953cd78ce832165824d66b0e7f38e0bfd3a"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"efb68dccfd32c9b3fe6e1fad20ea09dc26f53af5","unresolved":false,"context_lines":[{"line_number":968,"context_line":"        force_down \u003d True"},{"line_number":969,"context_line":"        self._force_down_service(ori_host, binary,"},{"line_number":970,"context_line":"                                 force_down)"},{"line_number":971,"context_line":"        self._evacuate_server(server, new_host,"},{"line_number":972,"context_line":"                              on_shared_storage, password)"},{"line_number":973,"context_line":"        force_down \u003d False"},{"line_number":974,"context_line":"        self._force_down_service(ori_host, binary,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5da102_0f3b8bd2","line":971,"updated":"2016-10-27 23:44:56.000000000","message":"\"If you omit the host, the scheduler chooses the target host.\"\nI think that this is more useful to measure, how long scheduler chooses that to measure one list of availability zone and random choose","commit_id":"525c83efc4bd180d0ec88b12a6c7819e2564096a"},{"author":{"_account_id":18404,"name":"Ma Xinjian","email":"maxj.fnst@cn.fujitsu.com","username":"maxinjian"},"change_message_id":"6c7231de129df08c96219470e0ced4cfc0fb503e","unresolved":false,"context_lines":[{"line_number":968,"context_line":"        force_down \u003d True"},{"line_number":969,"context_line":"        self._force_down_service(ori_host, binary,"},{"line_number":970,"context_line":"                                 force_down)"},{"line_number":971,"context_line":"        self._evacuate_server(server, new_host,"},{"line_number":972,"context_line":"                              on_shared_storage, password)"},{"line_number":973,"context_line":"        force_down \u003d False"},{"line_number":974,"context_line":"        self._force_down_service(ori_host, binary,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5da102_b91c86c2","line":971,"in_reply_to":"ba5da102_0f3b8bd2","updated":"2016-10-31 05:20:22.000000000","message":"Thank your for your advise, It seems good on my case.\nDone","commit_id":"525c83efc4bd180d0ec88b12a6c7819e2564096a"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"efb68dccfd32c9b3fe6e1fad20ea09dc26f53af5","unresolved":false,"context_lines":[{"line_number":973,"context_line":"        force_down \u003d False"},{"line_number":974,"context_line":"        self._force_down_service(ori_host, binary,"},{"line_number":975,"context_line":"                                 force_down)"},{"line_number":976,"context_line":"        self._delete_server(server)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da6895a0_90216ab7","line":976,"updated":"2016-10-27 23:44:56.000000000","message":"this will be included into measurements but absent in the scenario title. Make it optional or left this for clenaup","commit_id":"525c83efc4bd180d0ec88b12a6c7819e2564096a"},{"author":{"_account_id":18404,"name":"Ma Xinjian","email":"maxj.fnst@cn.fujitsu.com","username":"maxinjian"},"change_message_id":"6c7231de129df08c96219470e0ced4cfc0fb503e","unresolved":false,"context_lines":[{"line_number":973,"context_line":"        force_down \u003d False"},{"line_number":974,"context_line":"        self._force_down_service(ori_host, binary,"},{"line_number":975,"context_line":"                                 force_down)"},{"line_number":976,"context_line":"        self._delete_server(server)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5da102_e7573a00","line":976,"in_reply_to":"da6895a0_90216ab7","updated":"2016-10-31 05:20:22.000000000","message":"Done","commit_id":"525c83efc4bd180d0ec88b12a6c7819e2564096a"}],"rally/plugins/openstack/scenarios/nova/utils.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"efb68dccfd32c9b3fe6e1fad20ea09dc26f53af5","unresolved":false,"context_lines":[{"line_number":1216,"context_line":""},{"line_number":1217,"context_line":"    @atomic.action_timer(\"nova.evacuate_server\")"},{"line_number":1218,"context_line":"    def _evacuate_server(self, server, host\u003dNone, on_shared_storage\u003dNone,"},{"line_number":1219,"context_line":"                         password\u003dNone, skip_host_check\u003dFalse):"},{"line_number":1220,"context_line":"        \"\"\"Evacuate a server instance."},{"line_number":1221,"context_line":""},{"line_number":1222,"context_line":"        :param server: Server object"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5da102_0f69cbbe","line":1219,"updated":"2016-10-27 23:44:56.000000000","message":"https://github.com/openstack/python-novaclient/blob/master/novaclient/v2/servers.py#L504 \nplease change default value of on_shared_system to True","commit_id":"525c83efc4bd180d0ec88b12a6c7819e2564096a"},{"author":{"_account_id":18404,"name":"Ma Xinjian","email":"maxj.fnst@cn.fujitsu.com","username":"maxinjian"},"change_message_id":"6c7231de129df08c96219470e0ced4cfc0fb503e","unresolved":false,"context_lines":[{"line_number":1216,"context_line":""},{"line_number":1217,"context_line":"    @atomic.action_timer(\"nova.evacuate_server\")"},{"line_number":1218,"context_line":"    def _evacuate_server(self, server, host\u003dNone, on_shared_storage\u003dNone,"},{"line_number":1219,"context_line":"                         password\u003dNone, skip_host_check\u003dFalse):"},{"line_number":1220,"context_line":"        \"\"\"Evacuate a server instance."},{"line_number":1221,"context_line":""},{"line_number":1222,"context_line":"        :param server: Server object"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5da102_b94ac6aa","line":1219,"in_reply_to":"ba5da102_0f69cbbe","updated":"2016-10-31 05:20:22.000000000","message":"Done","commit_id":"525c83efc4bd180d0ec88b12a6c7819e2564096a"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"efb68dccfd32c9b3fe6e1fad20ea09dc26f53af5","unresolved":false,"context_lines":[{"line_number":1240,"context_line":"            check_interval\u003d("},{"line_number":1241,"context_line":"                CONF.benchmark.nova_server_evacuate_poll_interval)"},{"line_number":1242,"context_line":"        )"},{"line_number":1243,"context_line":"        server_admin \u003d self.admin_clients(\"nova\").servers.get(server.id)"},{"line_number":1244,"context_line":"        if (host_pre_evacuate \u003d\u003d getattr(server_admin,"},{"line_number":1245,"context_line":"                                         \"OS-EXT-SRV-ATTR:host\")"},{"line_number":1246,"context_line":"                and not skip_host_check):"}],"source_content_type":"text/x-python","patch_set":2,"id":"da6895a0_510d013d","line":1243,"updated":"2016-10-27 23:44:56.000000000","message":"isn\u0027t server_admin object updated after evacuate?","commit_id":"525c83efc4bd180d0ec88b12a6c7819e2564096a"},{"author":{"_account_id":18404,"name":"Ma Xinjian","email":"maxj.fnst@cn.fujitsu.com","username":"maxinjian"},"change_message_id":"6c7231de129df08c96219470e0ced4cfc0fb503e","unresolved":false,"context_lines":[{"line_number":1240,"context_line":"            check_interval\u003d("},{"line_number":1241,"context_line":"                CONF.benchmark.nova_server_evacuate_poll_interval)"},{"line_number":1242,"context_line":"        )"},{"line_number":1243,"context_line":"        server_admin \u003d self.admin_clients(\"nova\").servers.get(server.id)"},{"line_number":1244,"context_line":"        if (host_pre_evacuate \u003d\u003d getattr(server_admin,"},{"line_number":1245,"context_line":"                                         \"OS-EXT-SRV-ATTR:host\")"},{"line_number":1246,"context_line":"                and not skip_host_check):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5da102_c73a3698","line":1243,"in_reply_to":"da6895a0_510d013d","updated":"2016-10-31 05:20:22.000000000","message":"Yes, it changed after evacuate. So I compare hosts between before evacuate host and after evacuate host, if it\u0027s the same, it means evacuation is failed, then print error message\"Evacuation complete but instance did not change host\"","commit_id":"525c83efc4bd180d0ec88b12a6c7819e2564096a"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"efb68dccfd32c9b3fe6e1fad20ea09dc26f53af5","unresolved":false,"context_lines":[{"line_number":1264,"context_line":"                az \u003d a"},{"line_number":1265,"context_line":"                break"},{"line_number":1266,"context_line":"        try:"},{"line_number":1267,"context_line":"            new_host \u003d random.choice("},{"line_number":1268,"context_line":"                [key for key, value in six.iteritems(az.hosts)"},{"line_number":1269,"context_line":"                    if key !\u003d host and"},{"line_number":1270,"context_line":"                    value.get(\"nova-compute\", {}).get(\"available\", False)])"},{"line_number":1271,"context_line":"            return new_host"},{"line_number":1272,"context_line":"        except IndexError:"},{"line_number":1273,"context_line":"            raise exceptions.EvacuationInvalidHostException("}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5da102_0c0d593e","line":1270,"range":{"start_line":1267,"start_character":6,"end_line":1270,"end_character":75},"updated":"2016-10-27 23:44:56.000000000","message":"this is hard to read","commit_id":"525c83efc4bd180d0ec88b12a6c7819e2564096a"},{"author":{"_account_id":18404,"name":"Ma Xinjian","email":"maxj.fnst@cn.fujitsu.com","username":"maxinjian"},"change_message_id":"6c7231de129df08c96219470e0ced4cfc0fb503e","unresolved":false,"context_lines":[{"line_number":1264,"context_line":"                az \u003d a"},{"line_number":1265,"context_line":"                break"},{"line_number":1266,"context_line":"        try:"},{"line_number":1267,"context_line":"            new_host \u003d random.choice("},{"line_number":1268,"context_line":"                [key for key, value in six.iteritems(az.hosts)"},{"line_number":1269,"context_line":"                    if key !\u003d host and"},{"line_number":1270,"context_line":"                    value.get(\"nova-compute\", {}).get(\"available\", False)])"},{"line_number":1271,"context_line":"            return new_host"},{"line_number":1272,"context_line":"        except IndexError:"},{"line_number":1273,"context_line":"            raise exceptions.EvacuationInvalidHostException("}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5da102_4792a6a0","line":1270,"range":{"start_line":1267,"start_character":6,"end_line":1270,"end_character":75},"in_reply_to":"ba5da102_0c0d593e","updated":"2016-10-31 05:20:22.000000000","message":"Thanks, I have moved this whole function.","commit_id":"525c83efc4bd180d0ec88b12a6c7819e2564096a"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"efb68dccfd32c9b3fe6e1fad20ea09dc26f53af5","unresolved":false,"context_lines":[{"line_number":1274,"context_line":"                \"No valid host found to evacuate\")"},{"line_number":1275,"context_line":""},{"line_number":1276,"context_line":"    @atomic.action_timer(\"nova.find_server_host\")"},{"line_number":1277,"context_line":"    def _find_server_host(self, server):"},{"line_number":1278,"context_line":"        \"\"\"Find the server host"},{"line_number":1279,"context_line":""},{"line_number":1280,"context_line":"        :param server: Server object"}],"source_content_type":"text/x-python","patch_set":2,"id":"da6895a0_9194f9e2","line":1277,"updated":"2016-10-27 23:44:56.000000000","message":"this is pretty similar to existing one https://github.com/openstack/rally/blob/master/rally/plugins/openstack/scenarios/nova/utils.py#L174\nlets use it\nAlso if you want to measure a bit modified atomic, we have `with AtomicAction` context for such stuff","commit_id":"525c83efc4bd180d0ec88b12a6c7819e2564096a"},{"author":{"_account_id":18404,"name":"Ma Xinjian","email":"maxj.fnst@cn.fujitsu.com","username":"maxinjian"},"change_message_id":"6c7231de129df08c96219470e0ced4cfc0fb503e","unresolved":false,"context_lines":[{"line_number":1274,"context_line":"                \"No valid host found to evacuate\")"},{"line_number":1275,"context_line":""},{"line_number":1276,"context_line":"    @atomic.action_timer(\"nova.find_server_host\")"},{"line_number":1277,"context_line":"    def _find_server_host(self, server):"},{"line_number":1278,"context_line":"        \"\"\"Find the server host"},{"line_number":1279,"context_line":""},{"line_number":1280,"context_line":"        :param server: Server object"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5da102_473d46ba","line":1277,"in_reply_to":"da6895a0_9194f9e2","updated":"2016-10-31 05:20:22.000000000","message":"Hi Roman:\nI have tried to use _show_server.But it failed. Function _show_server() returns self.clients(\"nova\").servers.get(server).It has not attribute \nOS-EXT-SRV-ATTR:host.On this function server_admin \u003d self.admin_clients(\"nova\").servers.get(server.id). admin_clients makes it returns attribute OS-EXT-SRV-ATTR:host.","commit_id":"525c83efc4bd180d0ec88b12a6c7819e2564096a"}]}
