)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"85b9eba61401d5661eef902a79930c64d370f7fd","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Vincent Hou \u003csbhou@cn.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-07-24 09:51:17 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add the notification and the migration progress indication"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The patch adds the notification support and introduces a poll"},{"line_number":10,"context_line":"mechanism to check the migration progress."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"3a50d1a3_57a98b23","line":7,"updated":"2015-07-24 01:59:40.000000000","message":"limit title to 50 characters.","commit_id":"7503abc7b43c8360a3c0ade0afd6cb30c8582b53"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e312bb9fb264c6b18d87b718e09360c8990c59d5","unresolved":false,"context_lines":[{"line_number":21,"context_line":"reference to implement."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"* For the file based migration, it is applicable to the RBD drivers"},{"line_number":24,"context_line":"only so far."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"The migration progress can be checked via the cinderclient, and the"},{"line_number":27,"context_line":"progress information can be found in the c-vol log, where the source"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":34,"id":"fa1b9901_2b3b469e","line":24,"updated":"2015-08-21 21:23:54.000000000","message":"I don\u0027t see any change in the RBD driver to add this support.","commit_id":"431db7c0c4ed3c0c5204b391425ae3f9c867df0f"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"4a2c2e4a5097d40688ad3f470029d16a7e2bf739","unresolved":false,"context_lines":[{"line_number":21,"context_line":"reference to implement."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"* For the file based migration, it is applicable to the RBD drivers"},{"line_number":24,"context_line":"only so far."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"The migration progress can be checked via the cinderclient, and the"},{"line_number":27,"context_line":"progress information can be found in the c-vol log, where the source"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":34,"id":"fa1b9901_87f2656e","line":24,"in_reply_to":"fa1b9901_2b3b469e","updated":"2015-08-24 23:28:14.000000000","message":"Yes, I just add some necessary parameters for this case and I need to wait for the other patch https://review.openstack.org/#/c/187270/ merged to test if it works for RBD.","commit_id":"431db7c0c4ed3c0c5204b391425ae3f9c867df0f"}],"cinder/volume/driver.py":[{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"0f3ae8381362df91b259a72b3c136a08028e9b21","unresolved":false,"context_lines":[{"line_number":714,"context_line":"        # \"pos:\\t550502400\\nflags:\\t0140000\\n\". The output of"},{"line_number":715,"context_line":"        # cat /proc/%s/fdinfo/1 is in the same format.\u0027."},{"line_number":716,"context_line":"        pattern \u003d re.compile(r\u0027pos:\\t(\\d+)\\nflags:\\t\\d+\\n\u0027)"},{"line_number":717,"context_line":"        m \u003d re.match(pattern, output)"},{"line_number":718,"context_line":"        if m:"},{"line_number":719,"context_line":"            try:"},{"line_number":720,"context_line":"                return int(m.groups()[0])"}],"source_content_type":"text/x-python","patch_set":26,"id":"1a4dcd0f_80801d8d","line":717,"updated":"2015-08-09 07:55:11.000000000","message":"Will you change \u0027m\u0027 to a more meaningful name?","commit_id":"3142b63dd109280da4f125d0db9479468489fe29"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"2b689be125289d0d8fc8a64af16d0dc31b022d21","unresolved":false,"context_lines":[{"line_number":714,"context_line":"        # \"pos:\\t550502400\\nflags:\\t0140000\\n\". The output of"},{"line_number":715,"context_line":"        # cat /proc/%s/fdinfo/1 is in the same format.\u0027."},{"line_number":716,"context_line":"        pattern \u003d re.compile(r\u0027pos:\\t(\\d+)\\nflags:\\t\\d+\\n\u0027)"},{"line_number":717,"context_line":"        m \u003d re.match(pattern, output)"},{"line_number":718,"context_line":"        if m:"},{"line_number":719,"context_line":"            try:"},{"line_number":720,"context_line":"                return int(m.groups()[0])"}],"source_content_type":"text/x-python","patch_set":26,"id":"1a4dcd0f_4b5eac77","line":717,"in_reply_to":"1a4dcd0f_80801d8d","updated":"2015-08-10 02:42:29.000000000","message":"Done","commit_id":"3142b63dd109280da4f125d0db9479468489fe29"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e312bb9fb264c6b18d87b718e09360c8990c59d5","unresolved":false,"context_lines":[{"line_number":372,"context_line":"            rpcapi \u003d volume_rpcapi.VolumeAPI()"},{"line_number":373,"context_line":"            rpcapi.terminate_connection(context, volume, properties,"},{"line_number":374,"context_line":"                                        force\u003dforce)"},{"line_number":375,"context_line":"            rpcapi.remove_export(context, volume)"},{"line_number":376,"context_line":"        else:"},{"line_number":377,"context_line":"            # Call local driver\u0027s terminate_connection and remove export."},{"line_number":378,"context_line":"            # NOTE(avishay) This is copied from the manager\u0027s code - need to"}],"source_content_type":"text/x-python","patch_set":34,"id":"fa1b9901_8b67f2e9","line":375,"updated":"2015-08-21 21:23:54.000000000","message":"This should not be in your patch.","commit_id":"431db7c0c4ed3c0c5204b391425ae3f9c867df0f"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"4a2c2e4a5097d40688ad3f470029d16a7e2bf739","unresolved":false,"context_lines":[{"line_number":372,"context_line":"            rpcapi \u003d volume_rpcapi.VolumeAPI()"},{"line_number":373,"context_line":"            rpcapi.terminate_connection(context, volume, properties,"},{"line_number":374,"context_line":"                                        force\u003dforce)"},{"line_number":375,"context_line":"            rpcapi.remove_export(context, volume)"},{"line_number":376,"context_line":"        else:"},{"line_number":377,"context_line":"            # Call local driver\u0027s terminate_connection and remove export."},{"line_number":378,"context_line":"            # NOTE(avishay) This is copied from the manager\u0027s code - need to"}],"source_content_type":"text/x-python","patch_set":34,"id":"fa1b9901_47ba0d70","line":375,"in_reply_to":"fa1b9901_8b67f2e9","updated":"2015-08-24 23:28:14.000000000","message":"Y, I agree.","commit_id":"431db7c0c4ed3c0c5204b391425ae3f9c867df0f"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"9db898608a0b0fc5d2573d01be856d15e58081fd","unresolved":false,"context_lines":[{"line_number":269,"context_line":"CONF \u003d cfg.CONF"},{"line_number":270,"context_line":"CONF.register_opts(volume_opts)"},{"line_number":271,"context_line":"CONF.register_opts(iser_opts)"},{"line_number":272,"context_line":"CONF.import_opt(\u0027enable_progress_notification\u0027, \u0027cinder.volume.manager\u0027)"},{"line_number":273,"context_line":"CONF.import_opt(\u0027migration_progress_report_interval\u0027, \u0027cinder.volume.manager\u0027)"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":""}],"source_content_type":"text/x-python","patch_set":41,"id":"fa1b9901_450f0939","line":272,"updated":"2015-08-25 17:12:13.000000000","message":"The necessity of importing manager options into the driver indicates to me that something isn\u0027t in the right place here.  I don\u0027t think the driver should be responsible for some of this logic.","commit_id":"40b661fde449348a58fe65b2bac4a040ff28cb0a"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"9db898608a0b0fc5d2573d01be856d15e58081fd","unresolved":false,"context_lines":[{"line_number":761,"context_line":"                                                    dest_path,"},{"line_number":762,"context_line":"                                                    migration_mode\u003dmode)"},{"line_number":763,"context_line":"        extra_usage_info \u003d {\u0027migration_progress\u0027: progress}"},{"line_number":764,"context_line":"        volume_utils.notify_about_migration(context, volume,"},{"line_number":765,"context_line":"                                            \"migrate.progress\","},{"line_number":766,"context_line":"                                            extra_usage_info\u003dextra_usage_info)"},{"line_number":767,"context_line":"        LOG.info(_LI(\u0027The source volume has been \u0027"}],"source_content_type":"text/x-python","patch_set":41,"id":"fa1b9901_a5506533","line":764,"updated":"2015-08-25 17:12:13.000000000","message":"I don\u0027t think the driver should really be sending notifications itself, this seems like more of a manager action.","commit_id":"40b661fde449348a58fe65b2bac4a040ff28cb0a"}],"cinder/volume/manager.py":[{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"0f3ae8381362df91b259a72b3c136a08028e9b21","unresolved":false,"context_lines":[{"line_number":1487,"context_line":"                               \u0027migration_status\u0027: \u0027success\u0027,"},{"line_number":1488,"context_line":"                               \u0027previous_status\u0027: volume_ref[\u0027status\u0027]}"},{"line_number":1489,"context_line":"                    LOG.info(_LI(\u0027The source volume has been \u0027"},{"line_number":1490,"context_line":"                                 \u0027completely copied to the destination pool.\u0027),"},{"line_number":1491,"context_line":"                             resource\u003dvolume_ref)"},{"line_number":1492,"context_line":"                    if status_update:"},{"line_number":1493,"context_line":"                        updates.update(status_update)"}],"source_content_type":"text/x-python","patch_set":26,"id":"1a4dcd0f_20482987","line":1490,"updated":"2015-08-09 07:55:11.000000000","message":"Is \"migrated\" more better than \"copied\"?","commit_id":"3142b63dd109280da4f125d0db9479468489fe29"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"2b689be125289d0d8fc8a64af16d0dc31b022d21","unresolved":false,"context_lines":[{"line_number":1487,"context_line":"                               \u0027migration_status\u0027: \u0027success\u0027,"},{"line_number":1488,"context_line":"                               \u0027previous_status\u0027: volume_ref[\u0027status\u0027]}"},{"line_number":1489,"context_line":"                    LOG.info(_LI(\u0027The source volume has been \u0027"},{"line_number":1490,"context_line":"                                 \u0027completely copied to the destination pool.\u0027),"},{"line_number":1491,"context_line":"                             resource\u003dvolume_ref)"},{"line_number":1492,"context_line":"                    if status_update:"},{"line_number":1493,"context_line":"                        updates.update(status_update)"}],"source_content_type":"text/x-python","patch_set":26,"id":"1a4dcd0f_2b59e08e","line":1490,"in_reply_to":"1a4dcd0f_20482987","updated":"2015-08-10 02:42:29.000000000","message":"It is accurate to use copied, before the migration still needs some db data sync after the volume is copied.","commit_id":"3142b63dd109280da4f125d0db9479468489fe29"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e312bb9fb264c6b18d87b718e09360c8990c59d5","unresolved":false,"context_lines":[{"line_number":1436,"context_line":"                 resource\u003dvolume)"},{"line_number":1437,"context_line":"        return volume[\u0027id\u0027]"},{"line_number":1438,"context_line":""},{"line_number":1439,"context_line":"    def remove_export(self, context, volume_id):"},{"line_number":1440,"context_line":"        \"\"\"Removes an export for a volume.\"\"\""},{"line_number":1441,"context_line":""},{"line_number":1442,"context_line":"        utils.require_driver_initialized(self.driver)"}],"source_content_type":"text/x-python","patch_set":34,"id":"fa1b9901_cb072a17","line":1439,"updated":"2015-08-21 21:23:54.000000000","message":"This looks wrong.  Why are you adding this function back in your patch.  Seems that you need a rebase.","commit_id":"431db7c0c4ed3c0c5204b391425ae3f9c867df0f"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"4a2c2e4a5097d40688ad3f470029d16a7e2bf739","unresolved":false,"context_lines":[{"line_number":1436,"context_line":"                 resource\u003dvolume)"},{"line_number":1437,"context_line":"        return volume[\u0027id\u0027]"},{"line_number":1438,"context_line":""},{"line_number":1439,"context_line":"    def remove_export(self, context, volume_id):"},{"line_number":1440,"context_line":"        \"\"\"Removes an export for a volume.\"\"\""},{"line_number":1441,"context_line":""},{"line_number":1442,"context_line":"        utils.require_driver_initialized(self.driver)"}],"source_content_type":"text/x-python","patch_set":34,"id":"fa1b9901_c7a61d53","line":1439,"in_reply_to":"fa1b9901_cb072a17","updated":"2015-08-24 23:28:14.000000000","message":"Y, I agree.","commit_id":"431db7c0c4ed3c0c5204b391425ae3f9c867df0f"}],"cinder/volume/rpcapi.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e312bb9fb264c6b18d87b718e09360c8990c59d5","unresolved":false,"context_lines":[{"line_number":73,"context_line":"               create_consistencygroup(), create_consistencygroup_from_src(),"},{"line_number":74,"context_line":"               update_consistencygroup() and delete_consistencygroup()."},{"line_number":75,"context_line":"        1.27 - Adds migration progress check"},{"line_number":76,"context_line":"        1.28 - Adds remove export"},{"line_number":77,"context_line":"    \"\"\""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    BASE_RPC_API_VERSION \u003d \u00271.0\u0027"}],"source_content_type":"text/x-python","patch_set":34,"id":"fa1b9901_6b305ee9","line":76,"updated":"2015-08-21 21:23:54.000000000","message":"remove export should not be in your patch.","commit_id":"431db7c0c4ed3c0c5204b391425ae3f9c867df0f"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"4a2c2e4a5097d40688ad3f470029d16a7e2bf739","unresolved":false,"context_lines":[{"line_number":73,"context_line":"               create_consistencygroup(), create_consistencygroup_from_src(),"},{"line_number":74,"context_line":"               update_consistencygroup() and delete_consistencygroup()."},{"line_number":75,"context_line":"        1.27 - Adds migration progress check"},{"line_number":76,"context_line":"        1.28 - Adds remove export"},{"line_number":77,"context_line":"    \"\"\""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    BASE_RPC_API_VERSION \u003d \u00271.0\u0027"}],"source_content_type":"text/x-python","patch_set":34,"id":"fa1b9901_078655b9","line":76,"in_reply_to":"fa1b9901_6b305ee9","updated":"2015-08-24 23:28:14.000000000","message":"Y, I agree.\nI just have a another minor bug to fix. Accidentally put it here as well.","commit_id":"431db7c0c4ed3c0c5204b391425ae3f9c867df0f"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e312bb9fb264c6b18d87b718e09360c8990c59d5","unresolved":false,"context_lines":[{"line_number":195,"context_line":"        return cctxt.call(ctxt, \u0027terminate_connection\u0027, volume_id\u003dvolume[\u0027id\u0027],"},{"line_number":196,"context_line":"                          connector\u003dconnector, force\u003dforce)"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"    def remove_export(self, ctxt, volume):"},{"line_number":199,"context_line":"        new_host \u003d utils.extract_host(volume[\u0027host\u0027])"},{"line_number":200,"context_line":"        cctxt \u003d self.client.prepare(server\u003dnew_host, version\u003d\u00271.28\u0027)"},{"line_number":201,"context_line":"        cctxt.cast(ctxt, \u0027remove_export\u0027, volume_id\u003dvolume[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":34,"id":"fa1b9901_cb1e4a5f","line":198,"updated":"2015-08-21 21:23:54.000000000","message":"This should not be part of your patch.","commit_id":"431db7c0c4ed3c0c5204b391425ae3f9c867df0f"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"4a2c2e4a5097d40688ad3f470029d16a7e2bf739","unresolved":false,"context_lines":[{"line_number":195,"context_line":"        return cctxt.call(ctxt, \u0027terminate_connection\u0027, volume_id\u003dvolume[\u0027id\u0027],"},{"line_number":196,"context_line":"                          connector\u003dconnector, force\u003dforce)"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"    def remove_export(self, ctxt, volume):"},{"line_number":199,"context_line":"        new_host \u003d utils.extract_host(volume[\u0027host\u0027])"},{"line_number":200,"context_line":"        cctxt \u003d self.client.prepare(server\u003dnew_host, version\u003d\u00271.28\u0027)"},{"line_number":201,"context_line":"        cctxt.cast(ctxt, \u0027remove_export\u0027, volume_id\u003dvolume[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":34,"id":"fa1b9901_67bb9176","line":198,"in_reply_to":"fa1b9901_cb1e4a5f","updated":"2015-08-24 23:28:14.000000000","message":"Y, I agree.","commit_id":"431db7c0c4ed3c0c5204b391425ae3f9c867df0f"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"dff47de839389de1ba5b11a7c652e1c73789bfbf","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        1.26 - Adds support for sending objects over RPC in"},{"line_number":73,"context_line":"               create_consistencygroup(), create_consistencygroup_from_src(),"},{"line_number":74,"context_line":"               update_consistencygroup() and delete_consistencygroup()."},{"line_number":75,"context_line":"        1.27 - Adds migration progress check"},{"line_number":76,"context_line":"    \"\"\""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    BASE_RPC_API_VERSION \u003d \u00271.0\u0027"}],"source_content_type":"text/x-python","patch_set":37,"id":"fa1b9901_4c2698bb","line":75,"updated":"2015-08-24 14:45:43.000000000","message":"Ok, not sure what number is right here.  You have 1.28 in the code but 1.27 here.","commit_id":"72ea759a173232de7a8c3b348f07d1a9d202ec22"}],"cinder/volume/utils.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"5092100bda48c8268d0a86cc6352f722713c6139","unresolved":false,"context_lines":[{"line_number":210,"context_line":""},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"def notify_about_migration_error(context, volume, suffix,"},{"line_number":213,"context_line":"                                 extra_error_info\u003dNone, host\u003dNone):"},{"line_number":214,"context_line":"    if not host:"},{"line_number":215,"context_line":"        host \u003d CONF.host"},{"line_number":216,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"3a50d1a3_a40874da","line":213,"updated":"2015-07-27 15:31:27.000000000","message":"This method is almost the same as notify_about_migration.","commit_id":"e8097df2d41da9a229bf1fd3a4ed5b9b13be0029"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"9c54097b827417b7ab6e56c866e12321b40a4bf3","unresolved":false,"context_lines":[{"line_number":210,"context_line":""},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"def notify_about_migration_error(context, volume, suffix,"},{"line_number":213,"context_line":"                                 extra_error_info\u003dNone, host\u003dNone):"},{"line_number":214,"context_line":"    if not host:"},{"line_number":215,"context_line":"        host \u003d CONF.host"},{"line_number":216,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"3a50d1a3_caa7a2bb","line":213,"in_reply_to":"3a50d1a3_a40874da","updated":"2015-07-28 11:22:31.000000000","message":"Yes, this code duplication cries out for some cleanup :-)","commit_id":"e8097df2d41da9a229bf1fd3a4ed5b9b13be0029"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"5f60ce04b52a7b28af1d97a15f8563a5b0363514","unresolved":false,"context_lines":[{"line_number":210,"context_line":""},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"def notify_about_migration_error(context, volume, suffix,"},{"line_number":213,"context_line":"                                 extra_error_info\u003dNone, host\u003dNone):"},{"line_number":214,"context_line":"    if not host:"},{"line_number":215,"context_line":"        host \u003d CONF.host"},{"line_number":216,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"3a50d1a3_abeb1212","line":213,"in_reply_to":"3a50d1a3_caa7a2bb","updated":"2015-07-29 01:42:42.000000000","message":"Done","commit_id":"e8097df2d41da9a229bf1fd3a4ed5b9b13be0029"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"9c54097b827417b7ab6e56c866e12321b40a4bf3","unresolved":false,"context_lines":[{"line_number":374,"context_line":"             {\u0027size_in_m\u0027: size_in_m, \u0027mbps\u0027: mbps})"},{"line_number":375,"context_line":""},{"line_number":376,"context_line":""},{"line_number":377,"context_line":"def get_process_pid(command, src_path, dest_path):"},{"line_number":378,"context_line":"    for p in process_iter():"},{"line_number":379,"context_line":"        cmd \u003d str(p.cmdline)"},{"line_number":380,"context_line":"        if (command \u003d\u003d p.name and src_path in cmd"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a50d1a3_2a0e463b","line":377,"updated":"2015-07-28 11:22:31.000000000","message":"It is confusing to have two variables called \u0027cmd\u0027 and \u0027command\u0027.\n\nI suggest \u0027command_line\u0027 and \u0027command_name\u0027.","commit_id":"e8097df2d41da9a229bf1fd3a4ed5b9b13be0029"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"5f60ce04b52a7b28af1d97a15f8563a5b0363514","unresolved":false,"context_lines":[{"line_number":374,"context_line":"             {\u0027size_in_m\u0027: size_in_m, \u0027mbps\u0027: mbps})"},{"line_number":375,"context_line":""},{"line_number":376,"context_line":""},{"line_number":377,"context_line":"def get_process_pid(command, src_path, dest_path):"},{"line_number":378,"context_line":"    for p in process_iter():"},{"line_number":379,"context_line":"        cmd \u003d str(p.cmdline)"},{"line_number":380,"context_line":"        if (command \u003d\u003d p.name and src_path in cmd"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a50d1a3_cbee9e21","line":377,"in_reply_to":"3a50d1a3_2a0e463b","updated":"2015-07-29 01:42:42.000000000","message":"Done","commit_id":"e8097df2d41da9a229bf1fd3a4ed5b9b13be0029"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"9c54097b827417b7ab6e56c866e12321b40a4bf3","unresolved":false,"context_lines":[{"line_number":388,"context_line":"                sparse\u003dFalse, migration_info\u003dNone, key\u003dNone):"},{"line_number":389,"context_line":"    # TODO(vhou): The argument migration_info is a dict, which is"},{"line_number":390,"context_line":"    # used to save some important key value pairs. The argument key"},{"line_number":391,"context_line":"    # is the key to be updated in migration_info by this method."},{"line_number":392,"context_line":"    if not throttle:"},{"line_number":393,"context_line":"        throttle \u003d throttling.Throttle.get_default()"},{"line_number":394,"context_line":"    with throttle.subcommand(srcstr, deststr) as throttle_cmd:"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a50d1a3_0aa82a76","line":391,"updated":"2015-07-28 11:22:31.000000000","message":"I see that migration_info and key are currently unused in this method but your TODO doesn\u0027t really tell me what info you plan to save or how this will be done.","commit_id":"e8097df2d41da9a229bf1fd3a4ed5b9b13be0029"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"e4978155195643945cc909250ee9082ad8b55c6e","unresolved":false,"context_lines":[{"line_number":365,"context_line":""},{"line_number":366,"context_line":"def get_process_pid(command_name, src_path, dest_path):"},{"line_number":367,"context_line":"    for p in process_iter():"},{"line_number":368,"context_line":"        command_line \u003d str(p.cmdline)"},{"line_number":369,"context_line":"        if (command_name \u003d\u003d p.name and src_path in command_line"},{"line_number":370,"context_line":"                and dest_path in command_line):"},{"line_number":371,"context_line":"            return p.pid"}],"source_content_type":"text/x-python","patch_set":15,"id":"3a50d1a3_dc9b8265","line":368,"updated":"2015-07-30 06:29:27.000000000","message":"Suggest replace (str, unicode) with six.string_types. https://wiki.openstack.org/wiki/Python3#Port_Python_2_code_to_Python_3","commit_id":"c53625619214f6ed9de3360cf925fd4d59cc4ab0"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"0bfd8e4e50794210006e11194aa9917dc9b631f9","unresolved":false,"context_lines":[{"line_number":365,"context_line":""},{"line_number":366,"context_line":"def get_process_pid(command_name, src_path, dest_path):"},{"line_number":367,"context_line":"    for p in process_iter():"},{"line_number":368,"context_line":"        command_line \u003d str(p.cmdline)"},{"line_number":369,"context_line":"        if (command_name \u003d\u003d p.name and src_path in command_line"},{"line_number":370,"context_line":"                and dest_path in command_line):"},{"line_number":371,"context_line":"            return p.pid"}],"source_content_type":"text/x-python","patch_set":15,"id":"3a50d1a3_c3d636c3","line":368,"in_reply_to":"3a50d1a3_dc9b8265","updated":"2015-07-30 10:55:25.000000000","message":"It is six.text_type()","commit_id":"c53625619214f6ed9de3360cf925fd4d59cc4ab0"}],"etc/cinder/policy.json":[{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"0dea5467ac160d4d8e482dfbad1d65402c788931","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    \"volume_extension:backup_admin_actions:force_delete\": \"rule:admin_api\","},{"line_number":44,"context_line":"    \"volume_extension:volume_admin_actions:migrate_volume\": \"rule:admin_api\","},{"line_number":45,"context_line":"    \"volume_extension:volume_admin_actions:migrate_volume_completion\": \"rule:admin_api\","},{"line_number":46,"context_line":"\t\"volume_extension:volume_admin_actions:get_migrate_volume_progress\": \"rule:admin_api\","},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    \"volume_extension:volume_host_attribute\": \"rule:admin_api\","},{"line_number":49,"context_line":"    \"volume_extension:volume_tenant_attribute\": \"rule:admin_or_owner\","}],"source_content_type":"application/json","patch_set":2,"id":"3a50d1a3_656675bc","line":46,"updated":"2015-07-23 13:37:31.000000000","message":"The extra tab isn\u0027t needed.","commit_id":"29375a4292a5ac7d15f69d8bf7748a86bfdc55e7"}]}
