)]}'
{"specs/newton/approved/migration-state-machine.rst":[{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"a63df8afed5b1464387f1a9acc1225980dc02880","unresolved":false,"context_lines":[{"line_number":14,"context_line":"represented by pure string. And the transition between statuses is simply"},{"line_number":15,"context_line":"done by setting Migration.status attribute to a string. There are several"},{"line_number":16,"context_line":"demerits of this implementation. This spec aims to replace the current"},{"line_number":17,"context_line":"implementation with a finite state machine from automaton library."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Problem description"},{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9abb7d3a_e05ac282","line":17,"range":{"start_line":17,"start_character":48,"end_line":17,"end_character":57},"updated":"2016-05-28 07:18:11.000000000","message":"I think it worth to provide link to this library in the References section","commit_id":"56fa7d9f4baba0c567690d9ea5d7b94b3d3ee844"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"c6753feeec91806fd127d3afdcb4464a13061c22","unresolved":false,"context_lines":[{"line_number":14,"context_line":"represented by pure string. And the transition between statuses is simply"},{"line_number":15,"context_line":"done by setting Migration.status attribute to a string. There are several"},{"line_number":16,"context_line":"demerits of this implementation. This spec aims to replace the current"},{"line_number":17,"context_line":"implementation with a finite state machine from automaton library."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Problem description"},{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9abb7d3a_43abd874","line":17,"range":{"start_line":17,"start_character":48,"end_line":17,"end_character":57},"in_reply_to":"9abb7d3a_e05ac282","updated":"2016-05-28 08:35:30.000000000","message":"Done","commit_id":"56fa7d9f4baba0c567690d9ea5d7b94b3d3ee844"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"d4d6c1bd3141852cdc13f96d93191fd606c1852e","unresolved":false,"context_lines":[{"line_number":28,"context_line":"  \"post-migrating\" state directly. Need a check here. The FiniteMachine class"},{"line_number":29,"context_line":"  in automaton library provides this functionality."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"- Duplicated states of the same meaning. There are 4 types of migration in"},{"line_number":32,"context_line":"  nova, live-migration, resize, evacuation and migration. And there is one"},{"line_number":33,"context_line":"  state machine for each type. In these 4 state machines, we are using"},{"line_number":34,"context_line":"  different words to represent the same meaning. For example, both \"running\""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_f9bfe7f9","line":31,"updated":"2016-05-25 12:46:24.000000000","message":"Absolutely - another example is completed vs finished.\n\nNote: these are visible through the API.","commit_id":"56fa7d9f4baba0c567690d9ea5d7b94b3d3ee844"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"ef7acc32b21872486bf3549825de101d5c6b25d8","unresolved":false,"context_lines":[{"line_number":28,"context_line":"  \"post-migrating\" state directly. Need a check here. The FiniteMachine class"},{"line_number":29,"context_line":"  in automaton library provides this functionality."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"- Duplicated states of the same meaning. There are 4 types of migration in"},{"line_number":32,"context_line":"  nova, live-migration, resize, evacuation and migration. And there is one"},{"line_number":33,"context_line":"  state machine for each type. In these 4 state machines, we are using"},{"line_number":34,"context_line":"  different words to represent the same meaning. For example, both \"running\""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_5504cc16","line":31,"in_reply_to":"bab6814e_f9bfe7f9","updated":"2016-05-26 10:49:51.000000000","message":"Done","commit_id":"56fa7d9f4baba0c567690d9ea5d7b94b3d3ee844"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"a63df8afed5b1464387f1a9acc1225980dc02880","unresolved":false,"context_lines":[{"line_number":35,"context_line":"  and \"migrating\" states mean the vm is being migrated. Need to remove"},{"line_number":36,"context_line":"  confusing words."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"- Difficult to grep and debug. For example, if developer wants to find all the"},{"line_number":39,"context_line":"  code setting the status to \"migrating\", he may grep \"migrating\" in the code."},{"line_number":40,"context_line":"  But there could be many other lines containing \"migrating\" in the result."},{"line_number":41,"context_line":"  Need to use global variables like \"STATUS_MIGRATING\" to represent the status."}],"source_content_type":"text/x-rst","patch_set":1,"id":"9abb7d3a_404c6ec7","line":38,"range":{"start_line":38,"start_character":2,"end_line":38,"end_character":29},"updated":"2016-05-28 07:18:11.000000000","message":"debuging bugs in state machine could be also tricky thing","commit_id":"56fa7d9f4baba0c567690d9ea5d7b94b3d3ee844"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"4ca7815188f58849e327a9b8989bfa0a8f0a2428","unresolved":false,"context_lines":[{"line_number":35,"context_line":"  and \"migrating\" states mean the vm is being migrated. Need to remove"},{"line_number":36,"context_line":"  confusing words."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"- Difficult to grep and debug. For example, if developer wants to find all the"},{"line_number":39,"context_line":"  code setting the status to \"migrating\", he may grep \"migrating\" in the code."},{"line_number":40,"context_line":"  But there could be many other lines containing \"migrating\" in the result."},{"line_number":41,"context_line":"  Need to use global variables like \"STATUS_MIGRATING\" to represent the status."}],"source_content_type":"text/x-rst","patch_set":1,"id":"9abb7d3a_70ab29d7","line":38,"range":{"start_line":38,"start_character":2,"end_line":38,"end_character":29},"in_reply_to":"9abb7d3a_404c6ec7","updated":"2016-05-30 07:53:46.000000000","message":"Here, I mean state machine is much easier to trace than pure string, because state A -\u003e state B transition is fixed, and the state machine will check it. But string could be set to anything by any one.","commit_id":"56fa7d9f4baba0c567690d9ea5d7b94b3d3ee844"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"d4d6c1bd3141852cdc13f96d93191fd606c1852e","unresolved":false,"context_lines":[{"line_number":156,"context_line":"REST API impact"},{"line_number":157,"context_line":"---------------"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"None"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"Security impact"},{"line_number":162,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_792f773e","line":159,"updated":"2016-05-25 12:46:24.000000000","message":"If the status names are changed for consistency the difference will be visible through the API. This will need an API bump.","commit_id":"56fa7d9f4baba0c567690d9ea5d7b94b3d3ee844"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"ef7acc32b21872486bf3549825de101d5c6b25d8","unresolved":false,"context_lines":[{"line_number":156,"context_line":"REST API impact"},{"line_number":157,"context_line":"---------------"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"None"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"Security impact"},{"line_number":162,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_b514184d","line":159,"in_reply_to":"bab6814e_792f773e","updated":"2016-05-26 10:49:51.000000000","message":"Done","commit_id":"56fa7d9f4baba0c567690d9ea5d7b94b3d3ee844"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"d4d6c1bd3141852cdc13f96d93191fd606c1852e","unresolved":false,"context_lines":[{"line_number":166,"context_line":"Notifications impact"},{"line_number":167,"context_line":"--------------------"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"None"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"Other end user impact"},{"line_number":172,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_f9e24700","line":169,"updated":"2016-05-25 12:46:24.000000000","message":"Does migration status appear in notifications?","commit_id":"56fa7d9f4baba0c567690d9ea5d7b94b3d3ee844"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"4ca7815188f58849e327a9b8989bfa0a8f0a2428","unresolved":false,"context_lines":[{"line_number":166,"context_line":"Notifications impact"},{"line_number":167,"context_line":"--------------------"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"None"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"Other end user impact"},{"line_number":172,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9abb7d3a_e67c83ed","line":169,"in_reply_to":"bab6814e_43ed2bb6","updated":"2016-05-30 07:53:46.000000000","message":"Hi Paul, \n\nAccording to the doc below, there is no versioned notification for migration.\n(http://docs.openstack.org/developer/nova/notifications.html)\n\nAnd about the unversioned notification, I greped the source code, I think there are notifiers for compute service, network and scheduler, but no for migration. I\u0027m not 100% sure, but I think migration status does not appear in notifications.","commit_id":"56fa7d9f4baba0c567690d9ea5d7b94b3d3ee844"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"ef7acc32b21872486bf3549825de101d5c6b25d8","unresolved":false,"context_lines":[{"line_number":166,"context_line":"Notifications impact"},{"line_number":167,"context_line":"--------------------"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"None"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"Other end user impact"},{"line_number":172,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_43ed2bb6","line":169,"in_reply_to":"bab6814e_f9e24700","updated":"2016-05-26 10:49:51.000000000","message":"I\u0027ll confirm that.","commit_id":"56fa7d9f4baba0c567690d9ea5d7b94b3d3ee844"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"d4d6c1bd3141852cdc13f96d93191fd606c1852e","unresolved":false,"context_lines":[{"line_number":186,"context_line":"Developer impact"},{"line_number":187,"context_line":"----------------"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"None"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"Implementation"},{"line_number":192,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_b9aeff95","line":189,"updated":"2016-05-25 12:46:24.000000000","message":"Developers will need to adopt the new state machines to change status when done.","commit_id":"56fa7d9f4baba0c567690d9ea5d7b94b3d3ee844"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"ef7acc32b21872486bf3549825de101d5c6b25d8","unresolved":false,"context_lines":[{"line_number":186,"context_line":"Developer impact"},{"line_number":187,"context_line":"----------------"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"None"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"Implementation"},{"line_number":192,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_9519148b","line":189,"in_reply_to":"bab6814e_b9aeff95","updated":"2016-05-26 10:49:51.000000000","message":"Done","commit_id":"56fa7d9f4baba0c567690d9ea5d7b94b3d3ee844"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"d4d6c1bd3141852cdc13f96d93191fd606c1852e","unresolved":false,"context_lines":[{"line_number":211,"context_line":""},{"line_number":212,"context_line":"3. Use state machines to do the transition of migration status."},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"4. Remove duplicated words of the same meaning."},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"Dependencies"},{"line_number":217,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_39a96f7c","line":214,"updated":"2016-05-25 12:46:24.000000000","message":"Again: visible through API.","commit_id":"56fa7d9f4baba0c567690d9ea5d7b94b3d3ee844"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"ef7acc32b21872486bf3549825de101d5c6b25d8","unresolved":false,"context_lines":[{"line_number":211,"context_line":""},{"line_number":212,"context_line":"3. Use state machines to do the transition of migration status."},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"4. Remove duplicated words of the same meaning."},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"Dependencies"},{"line_number":217,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_751e3071","line":214,"in_reply_to":"bab6814e_39a96f7c","updated":"2016-05-26 10:49:51.000000000","message":"Done","commit_id":"56fa7d9f4baba0c567690d9ea5d7b94b3d3ee844"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"e114663beca25346221ce242134a6fe4cc6b5f07","unresolved":false,"context_lines":[{"line_number":44,"context_line":"Use Cases"},{"line_number":45,"context_line":"---------"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"This won\u0027t impact users because it is nova internal. With the finite"},{"line_number":48,"context_line":"machine in automaton, the migration code will become more robust."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9abb7d3a_2f509731","line":47,"updated":"2016-06-01 14:00:28.000000000","message":"This will impact users because these are exposed in the API. I\u0027m in favor of being consistent with the states, but it should be clear that it\u0027s a user impacting change.","commit_id":"0c2f8d311513be507ae59d404ec6db9a9f11d656"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"be61a5e00a914adba856735bb994991d727d9cd6","unresolved":false,"context_lines":[{"line_number":44,"context_line":"Use Cases"},{"line_number":45,"context_line":"---------"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"This won\u0027t impact users because it is nova internal. With the finite"},{"line_number":48,"context_line":"machine in automaton, the migration code will become more robust."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9abb7d3a_e7de8f3c","line":47,"in_reply_to":"9abb7d3a_2f509731","updated":"2016-06-02 06:04:46.000000000","message":"Done","commit_id":"0c2f8d311513be507ae59d404ec6db9a9f11d656"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"b61d73d5e86aefce07af9522078986962e3a7cb1","unresolved":false,"context_lines":[{"line_number":140,"context_line":"       |     (ERROR)          v"},{"line_number":141,"context_line":"       +------------------ finished"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"3. Use state machines to do the transition of migration status."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"4. Remove duplicated words of the same meaning."},{"line_number":146,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9abb7d3a_c542cc67","line":143,"updated":"2016-05-31 14:11:40.000000000","message":"so I think this bit need more detail.\n\nhow do we make use of this state machine?","commit_id":"0c2f8d311513be507ae59d404ec6db9a9f11d656"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"be61a5e00a914adba856735bb994991d727d9cd6","unresolved":false,"context_lines":[{"line_number":140,"context_line":"       |     (ERROR)          v"},{"line_number":141,"context_line":"       +------------------ finished"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"3. Use state machines to do the transition of migration status."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"4. Remove duplicated words of the same meaning."},{"line_number":146,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9abb7d3a_02b3c10a","line":143,"in_reply_to":"9abb7d3a_c542cc67","updated":"2016-06-02 06:04:46.000000000","message":"Will add details to \"Use case\" section.","commit_id":"0c2f8d311513be507ae59d404ec6db9a9f11d656"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"821872918853cdbea97546ea57cf4c548d5d2ce1","unresolved":false,"context_lines":[{"line_number":157,"context_line":"REST API impact"},{"line_number":158,"context_line":"---------------"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"Migration status is visible through \"os-migrations\" API."},{"line_number":161,"context_line":"(/v2.1/{tenant_id}/os-migrations)"},{"line_number":162,"context_line":"So if we remove the duplicated words and use a consistent word, API users"},{"line_number":163,"context_line":"should be informed."},{"line_number":164,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9abb7d3a_8c2efbf8","line":161,"range":{"start_line":160,"start_character":0,"end_line":161,"end_character":33},"updated":"2016-06-01 11:22:52.000000000","message":"it is visible even through:\nservers/{tenant_id}/migrations","commit_id":"0c2f8d311513be507ae59d404ec6db9a9f11d656"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"be61a5e00a914adba856735bb994991d727d9cd6","unresolved":false,"context_lines":[{"line_number":157,"context_line":"REST API impact"},{"line_number":158,"context_line":"---------------"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"Migration status is visible through \"os-migrations\" API."},{"line_number":161,"context_line":"(/v2.1/{tenant_id}/os-migrations)"},{"line_number":162,"context_line":"So if we remove the duplicated words and use a consistent word, API users"},{"line_number":163,"context_line":"should be informed."},{"line_number":164,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9abb7d3a_a7f3e771","line":161,"range":{"start_line":160,"start_character":0,"end_line":161,"end_character":33},"in_reply_to":"9abb7d3a_8c2efbf8","updated":"2016-06-02 06:04:46.000000000","message":"Hi Andrea, \n\nThanks for the review. But I cannot find this API in http://developer.openstack.org/api-ref-compute-v2.1.html\n\nDo you mean /v2.1/​{tenant_id}​/servers/​{server_id}​/action with the migrate action in the body ?\n\nIf so, there are live-migrate, resize, evacuate related APIs too.","commit_id":"0c2f8d311513be507ae59d404ec6db9a9f11d656"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"821872918853cdbea97546ea57cf4c548d5d2ce1","unresolved":false,"context_lines":[{"line_number":222,"context_line":"3. Use state machines to do the transition of migration status."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"4. Remove duplicated words of the same meaning, and update the API doc. Since"},{"line_number":225,"context_line":"   migration status is visible through the REST API \"os-migrations\", we need to"},{"line_number":226,"context_line":"   inform API users."},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9abb7d3a_2c1b8fcb","line":225,"range":{"start_line":225,"start_character":51,"end_line":225,"end_character":67},"updated":"2016-06-01 11:22:52.000000000","message":"please mention the \nGET servers/{tenant_id}/migrations","commit_id":"0c2f8d311513be507ae59d404ec6db9a9f11d656"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"b61d73d5e86aefce07af9522078986962e3a7cb1","unresolved":false,"context_lines":[{"line_number":228,"context_line":"Dependencies"},{"line_number":229,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"None"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"Testing"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9abb7d3a_8076f2a1","line":231,"updated":"2016-05-31 14:11:40.000000000","message":"I think this really depends on the work to remove compute \u003c-\u003e compute communication.\nhttps://review.openstack.org/#/c/292271/","commit_id":"0c2f8d311513be507ae59d404ec6db9a9f11d656"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"be61a5e00a914adba856735bb994991d727d9cd6","unresolved":false,"context_lines":[{"line_number":228,"context_line":"Dependencies"},{"line_number":229,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"None"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"Testing"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9abb7d3a_42eae9db","line":231,"in_reply_to":"9abb7d3a_8076f2a1","updated":"2016-06-02 06:04:46.000000000","message":"Done","commit_id":"0c2f8d311513be507ae59d404ec6db9a9f11d656"},{"author":{"_account_id":21140,"name":"wangyicheng","email":"wang.yicheng@zte.com.cn"},"change_message_id":"ddaa96f8ed1d2bcf7c47935f4268e7afbc570d70","unresolved":false,"context_lines":[{"line_number":222,"context_line":"   1) \"running\" and \"migrating\" are duplicated. I suggest \"migrating\" because"},{"line_number":223,"context_line":"       it tells users clearly that this is a migration process under going."},{"line_number":224,"context_line":"   2) \"done\", \"finished\" and \"completed\" are duplicated. I suggest \"completed\"."},{"line_number":225,"context_line":"   3) \"error\" and \"failed\" are duplicated. I suggest \"failed\"."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"Alternatives"},{"line_number":228,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9abb7d3a_c96c020b","line":225,"range":{"start_line":225,"start_character":5,"end_line":225,"end_character":62},"updated":"2016-06-17 03:52:41.000000000","message":"https://review.openstack.org/#/c/215483/ this \nSet migration status to \u0027error\u0027 on live-migration failure. is it better to set \"error\"?","commit_id":"d7b1aec569951eb674974223b3cbe6c8a6f45713"}]}
