)]}'
{"specs/kilo/approved/cells-instance-migration.rst":[{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"dacc21540b1a9ae41f4ba6a658e030c86745816c","unresolved":false,"context_lines":[{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"When Nova is partitioned into cells, the compute api needs to know which cell"},{"line_number":21,"context_line":"to communicate with for a particular instance.  Instances that exist from"},{"line_number":22,"context_line":"before this mapping was maintained need to have their location added to the"},{"line_number":23,"context_line":"table."},{"line_number":24,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_81d32fd4","line":21,"updated":"2014-12-01 17:13:17.000000000","message":"I struggled to parse this sentence.  s/exist from/existed/ ?","commit_id":"69776894c77b123340f67e4e4791dc6453b76f5a"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"7ddbda684caa02376bc40ddd6b27147c6ddb348c","unresolved":false,"context_lines":[{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"When Nova is partitioned into cells, the compute api needs to know which cell"},{"line_number":21,"context_line":"to communicate with for a particular instance.  Instances that exist from"},{"line_number":22,"context_line":"before this mapping was maintained need to have their location added to the"},{"line_number":23,"context_line":"table."},{"line_number":24,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_ab729747","line":21,"in_reply_to":"5a890539_81d32fd4","updated":"2014-12-02 20:52:03.000000000","message":"Done","commit_id":"69776894c77b123340f67e4e4791dc6453b76f5a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"a2d6a7989d97319304fb9b71b02608b6d5c77ff5","unresolved":false,"context_lines":[{"line_number":51,"context_line":"names as the current cells and then instances can be mapped to the new cells"},{"line_number":52,"context_line":"one at a time."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"And there are two methods we can use to populate this data.  If a v2 cell is"},{"line_number":56,"context_line":"configured and we can match an instance to that cell then we can create the"},{"line_number":57,"context_line":"mapping as the instance is accessed through its pre cells v2 method."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a961159_765b9255","line":54,"updated":"2015-01-12 17:24:12.000000000","message":"Intentional extra line?","commit_id":"69776894c77b123340f67e4e4791dc6453b76f5a"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"03cd63950999f9be606af7bc9ca75c07771849f4","unresolved":false,"context_lines":[{"line_number":51,"context_line":"names as the current cells and then instances can be mapped to the new cells"},{"line_number":52,"context_line":"one at a time."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"And there are two methods we can use to populate this data.  If a v2 cell is"},{"line_number":56,"context_line":"configured and we can match an instance to that cell then we can create the"},{"line_number":57,"context_line":"mapping as the instance is accessed through its pre cells v2 method."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a961159_dd1d2279","line":54,"in_reply_to":"3a961159_765b9255","updated":"2015-01-14 14:44:10.000000000","message":"Nope, will remove.","commit_id":"69776894c77b123340f67e4e4791dc6453b76f5a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"a2d6a7989d97319304fb9b71b02608b6d5c77ff5","unresolved":false,"context_lines":[{"line_number":52,"context_line":"one at a time."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"And there are two methods we can use to populate this data.  If a v2 cell is"},{"line_number":56,"context_line":"configured and we can match an instance to that cell then we can create the"},{"line_number":57,"context_line":"mapping as the instance is accessed through its pre cells v2 method."},{"line_number":58,"context_line":"Additionally a new nova-manage command will be added to do an manual migration"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a961159_f62ea2aa","line":55,"updated":"2015-01-12 17:24:12.000000000","message":"I would s/And//","commit_id":"69776894c77b123340f67e4e4791dc6453b76f5a"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"03cd63950999f9be606af7bc9ca75c07771849f4","unresolved":false,"context_lines":[{"line_number":52,"context_line":"one at a time."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"And there are two methods we can use to populate this data.  If a v2 cell is"},{"line_number":56,"context_line":"configured and we can match an instance to that cell then we can create the"},{"line_number":57,"context_line":"mapping as the instance is accessed through its pre cells v2 method."},{"line_number":58,"context_line":"Additionally a new nova-manage command will be added to do an manual migration"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a961159_7d10ae59","line":55,"in_reply_to":"3a961159_f62ea2aa","updated":"2015-01-14 14:44:10.000000000","message":"Done","commit_id":"69776894c77b123340f67e4e4791dc6453b76f5a"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"dacc21540b1a9ae41f4ba6a658e030c86745816c","unresolved":false,"context_lines":[{"line_number":56,"context_line":"configured and we can match an instance to that cell then we can create the"},{"line_number":57,"context_line":"mapping as the instance is accessed through its pre cells v2 method."},{"line_number":58,"context_line":"Additionally a new nova-manage command will be added to do an manual migration"},{"line_number":59,"context_line":"at any time."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Alternatives"},{"line_number":62,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_a1d90bf6","line":59,"updated":"2014-12-01 17:13:17.000000000","message":"How do you anticipate the matching of instances to new cells working? I\u0027m worried that we\u0027re making more work for ourselves than we need to.  If the operator has to specify the new cells topology to match the existing one, then why not just move everything accross as soon as we can?  As an operator I\u0027d be wary of having both data models coexisting indefinitely, and even if I wanted to change my cells topology I don\u0027t think I\u0027d want to do it at the same time as migrating from cells v1 to cells v2 unless I was forced to.","commit_id":"69776894c77b123340f67e4e4791dc6453b76f5a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"a2d6a7989d97319304fb9b71b02608b6d5c77ff5","unresolved":false,"context_lines":[{"line_number":56,"context_line":"configured and we can match an instance to that cell then we can create the"},{"line_number":57,"context_line":"mapping as the instance is accessed through its pre cells v2 method."},{"line_number":58,"context_line":"Additionally a new nova-manage command will be added to do an manual migration"},{"line_number":59,"context_line":"at any time."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Alternatives"},{"line_number":62,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a961159_f615c24c","line":59,"in_reply_to":"3a961159_92d7a34a","updated":"2015-01-12 17:24:12.000000000","message":"Yeah, I was going to say: Should we update the mapping on every instance.save() after this migration is in place?","commit_id":"69776894c77b123340f67e4e4791dc6453b76f5a"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"7ddbda684caa02376bc40ddd6b27147c6ddb348c","unresolved":false,"context_lines":[{"line_number":56,"context_line":"configured and we can match an instance to that cell then we can create the"},{"line_number":57,"context_line":"mapping as the instance is accessed through its pre cells v2 method."},{"line_number":58,"context_line":"Additionally a new nova-manage command will be added to do an manual migration"},{"line_number":59,"context_line":"at any time."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Alternatives"},{"line_number":62,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_aea62552","line":59,"in_reply_to":"5a890539_a1d90bf6","updated":"2014-12-02 20:52:03.000000000","message":"There will be an option to move everything over at once(one cell at a timel) with nova-manage if that\u0027s what\u0027s desired.  Some deployers might want to be able to add a current cell as a new v2 cell and have the migration start to happen online.  Then the nova-manage command can be used later to move over any remaining instances.\n\nI\u0027m envisioning the matching to work as described above and Nova can attempt to access an instance via a cellsv2 mapping and if it doesn\u0027t exist then fall back to old access patterns and add a mapping if possible.","commit_id":"69776894c77b123340f67e4e4791dc6453b76f5a"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9a7e560b99727fc541a7a1109e6b3f2c23ca5dba","unresolved":false,"context_lines":[{"line_number":56,"context_line":"configured and we can match an instance to that cell then we can create the"},{"line_number":57,"context_line":"mapping as the instance is accessed through its pre cells v2 method."},{"line_number":58,"context_line":"Additionally a new nova-manage command will be added to do an manual migration"},{"line_number":59,"context_line":"at any time."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Alternatives"},{"line_number":62,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a961159_92d7a34a","line":59,"in_reply_to":"5a890539_aea62552","updated":"2014-12-12 09:56:06.000000000","message":"Could we perhaps envisage a live data migration by amending the Instance.save() method and perform the migration in there ?\n\nThat could allow a migration on the fly.","commit_id":"69776894c77b123340f67e4e4791dc6453b76f5a"},{"author":{"_account_id":2033,"name":"Belmiro Moreira","email":"moreira.belmiro.email.lists@gmail.com","username":"moreira-belmiro-email-lists"},"change_message_id":"79747ca84bc5ee2777a254450d9561e0e8733467","unresolved":false,"context_lines":[{"line_number":57,"context_line":"mapping as the instance is accessed through its pre cells v2 method."},{"line_number":58,"context_line":"Additionally a new nova-manage command will be added to do an manual migration"},{"line_number":59,"context_line":"at any time."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Alternatives"},{"line_number":62,"context_line":"------------"},{"line_number":63,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_0c2fca89","line":60,"updated":"2014-11-26 20:18:31.000000000","message":"(nova-manage) For existing deployments using cells the mapping is done in the API cell with the field \"cell_name\" in instances tables. Currently it looks like - \"cell_name: api_cell!child_cell\" for 2 levels. The tool should do some initial sanity checks to ensure that at the middle of the migration some instances can\u0027t be mapped because operational errors. Ex: a cell was not defined with the correct name.\nShould the spec anticipate this?\n\nWill migration of current cells infrastructures with more than 2 levels be supported? My understanding is no, so how to block attempt migrations?","commit_id":"69776894c77b123340f67e4e4791dc6453b76f5a"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"7ddbda684caa02376bc40ddd6b27147c6ddb348c","unresolved":false,"context_lines":[{"line_number":57,"context_line":"mapping as the instance is accessed through its pre cells v2 method."},{"line_number":58,"context_line":"Additionally a new nova-manage command will be added to do an manual migration"},{"line_number":59,"context_line":"at any time."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Alternatives"},{"line_number":62,"context_line":"------------"},{"line_number":63,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_b1edaaf2","line":60,"in_reply_to":"5a890539_0c2fca89","updated":"2014-12-02 20:52:03.000000000","message":"The migration should be done cell by cell so it should either work for that cell or not.  But every attempt will be made to ensure that the migration is robust against potential errors.\n\nMigration of cells below a 2nd level will be supported.  It could be done a couple of ways.  By specifying which new cell to map those instances to in the nova-manage command used for migrations.  Or a new cell named like api_cell!child_cell!grandchild_cell could be setup and instances could be mapped there automatically, and then the cell could be renamed if desired.","commit_id":"69776894c77b123340f67e4e4791dc6453b76f5a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"a2d6a7989d97319304fb9b71b02608b6d5c77ff5","unresolved":false,"context_lines":[{"line_number":62,"context_line":"------------"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"We could continue to use the nova-cells model in place today.  The downsides of"},{"line_number":65,"context_line":"this have been discussed in the etherpad link in the references section."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Data model impact"},{"line_number":68,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a961159_315594fa","line":65,"updated":"2015-01-12 17:24:12.000000000","message":"You could say that the alternative of cellsv1 is a property of a prior spec and that the alternatives to this instance mapping requirement of cellsv2 are nonexistent :)","commit_id":"69776894c77b123340f67e4e4791dc6453b76f5a"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"03cd63950999f9be606af7bc9ca75c07771849f4","unresolved":false,"context_lines":[{"line_number":62,"context_line":"------------"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"We could continue to use the nova-cells model in place today.  The downsides of"},{"line_number":65,"context_line":"this have been discussed in the etherpad link in the references section."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Data model impact"},{"line_number":68,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a961159_a00aed1d","line":65,"in_reply_to":"3a961159_315594fa","updated":"2015-01-14 14:44:10.000000000","message":"Works for me :)","commit_id":"69776894c77b123340f67e4e4791dc6453b76f5a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"a2d6a7989d97319304fb9b71b02608b6d5c77ff5","unresolved":false,"context_lines":[{"line_number":96,"context_line":"by later specs it does introduce another database lookup for many actions"},{"line_number":97,"context_line":"within Nova.  For example a \u0027nova show \u003cuuid\u003e\u0027 will require Nova to look up the"},{"line_number":98,"context_line":"database that an instance is in before it can query it for instance data.  This"},{"line_number":99,"context_line":"can be optimized later with a memcached cache of this mapping."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Other deployer impact"},{"line_number":102,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a961159_316cb4d0","line":99,"updated":"2015-01-12 17:24:12.000000000","message":"It may introduce a tiny penalty if we start updating it on save, right?","commit_id":"69776894c77b123340f67e4e4791dc6453b76f5a"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"a554a74f052a65a878aa39a87f638ebb4e68b2f3","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"If starting from a non-cells deployment a new v2 cell should be added which"},{"line_number":53,"context_line":"points to the current message queue and database and all instances can be"},{"line_number":54,"context_line":"mapped to that cell."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"If starting with cells v2 then new v2 cells should be created which point to"},{"line_number":57,"context_line":"the current message queues and databases.  Then instances can be mapped to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a961159_4fc31b39","line":54,"updated":"2015-01-14 09:02:55.000000000","message":"I assume that means there is no need to use the nova-manage command in this case?","commit_id":"5877b16e82b9bee579d65f5ff21c1348b1e25699"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"af2f7d8994c8d741187f5dea54bb2a9896ab56ce","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"If starting from a non-cells deployment a new v2 cell should be added which"},{"line_number":53,"context_line":"points to the current message queue and database and all instances can be"},{"line_number":54,"context_line":"mapped to that cell."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"If starting with cells v2 then new v2 cells should be created which point to"},{"line_number":57,"context_line":"the current message queues and databases.  Then instances can be mapped to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a961159_4247661d","line":54,"in_reply_to":"3a961159_4fc31b39","updated":"2015-01-14 14:43:34.000000000","message":"There is still a need for the nova-manage command to migrate instances which are not save()d during the migration period.","commit_id":"5877b16e82b9bee579d65f5ff21c1348b1e25699"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"a554a74f052a65a878aa39a87f638ebb4e68b2f3","unresolved":false,"context_lines":[{"line_number":101,"context_line":"creation of the mappings.  This should be run once for a deployment not"},{"line_number":102,"context_line":"currently using cells, and once in each cell for a deployment currently using"},{"line_number":103,"context_line":"cells.  This migration can be run at any time but should be run a final time"},{"line_number":104,"context_line":"before switching over to using cells v2."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"Developer impact"},{"line_number":107,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a961159_4f9cfb5b","line":104,"updated":"2015-01-14 09:02:55.000000000","message":"I am guessing this doesn\u0027t need to be run on v2 cells, only on older v1 cells to make them work with the new code paths? Might be good to clarify that one way or the other I guess.","commit_id":"5877b16e82b9bee579d65f5ff21c1348b1e25699"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"af2f7d8994c8d741187f5dea54bb2a9896ab56ce","unresolved":false,"context_lines":[{"line_number":101,"context_line":"creation of the mappings.  This should be run once for a deployment not"},{"line_number":102,"context_line":"currently using cells, and once in each cell for a deployment currently using"},{"line_number":103,"context_line":"cells.  This migration can be run at any time but should be run a final time"},{"line_number":104,"context_line":"before switching over to using cells v2."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"Developer impact"},{"line_number":107,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a961159_a22baa31","line":104,"in_reply_to":"3a961159_4f9cfb5b","updated":"2015-01-14 14:43:34.000000000","message":"Sure.  \"Current\" is at the time of this writing which means cellsv1, but specificity is good.","commit_id":"5877b16e82b9bee579d65f5ff21c1348b1e25699"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"a554a74f052a65a878aa39a87f638ebb4e68b2f3","unresolved":false,"context_lines":[{"line_number":143,"context_line":"visible changes the current suite of Tempest or functional tests should"},{"line_number":144,"context_line":"suffice.  At some point we will want to look at how to test multiple cells or"},{"line_number":145,"context_line":"potentially exposing the concept of a cell in the API and we will tackle"},{"line_number":146,"context_line":"testing requirements then."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a961159_efa92791","line":146,"updated":"2015-01-14 09:02:55.000000000","message":"I guess grenade style tests will need this adding.","commit_id":"5877b16e82b9bee579d65f5ff21c1348b1e25699"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"af2f7d8994c8d741187f5dea54bb2a9896ab56ce","unresolved":false,"context_lines":[{"line_number":143,"context_line":"visible changes the current suite of Tempest or functional tests should"},{"line_number":144,"context_line":"suffice.  At some point we will want to look at how to test multiple cells or"},{"line_number":145,"context_line":"potentially exposing the concept of a cell in the API and we will tackle"},{"line_number":146,"context_line":"testing requirements then."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a961159_c2a516b6","line":146,"in_reply_to":"3a961159_efa92791","updated":"2015-01-14 14:43:34.000000000","message":"There are no external changes from this so I think the current grenade tests should still suffice.","commit_id":"5877b16e82b9bee579d65f5ff21c1348b1e25699"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"1f4396de488af666815aad7994e60562f5d82fc5","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"If starting from a non-cells deployment a new v2 cell should be added which"},{"line_number":53,"context_line":"points to the current message queue and database and all instances can be"},{"line_number":54,"context_line":"mapped to that cell on instance.save()."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"If starting with cells v2 then new v2 cells should be created which point to"},{"line_number":57,"context_line":"the current message queues and databases.  Then instances can be mapped to"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a961159_838b0d68","line":54,"updated":"2015-01-14 16:47:39.000000000","message":"I would be in favor of being more precise :\n\nI\u0027m seeing the migration as online, ie. :\n\n - operator can create a new Cells V2 database whenever he wants\n - operator will nova-manage db sync this DB to fill in the tables\n - operator will have the choice to either do an offline migration by running the nova-manage migration tool that you mention,\n*or* leave the migration happen silently each time that an instance is touched (boot, resize, evacuate, etc.)\nby providing the online migration in the instance.save() method\n\nCaution, if online migration, you\u0027ll need to assume that you would have old and new models in parallel.","commit_id":"825246f4b27df276289a4b123c750162f7e2e065"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"0992ed48de3a228f13ef0f8c2fc144d4859404df","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"If starting from a non-cells deployment a new v2 cell should be added which"},{"line_number":53,"context_line":"points to the current message queue and database and all instances can be"},{"line_number":54,"context_line":"mapped to that cell on instance.save()."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"If starting with cells v2 then new v2 cells should be created which point to"},{"line_number":57,"context_line":"the current message queues and databases.  Then instances can be mapped to"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a961159_8d0948df","line":54,"in_reply_to":"3a961159_838b0d68","updated":"2015-01-15 19:23:57.000000000","message":"Okay, I can clarify this a bit.  In addition to what you have there\u0027s going to be a need for an operator to run the nova-manage migration tool at some point because there\u0027s no guarantee that every instance will have been save()d.  We could also introduce a periodic task to assist in the migration.","commit_id":"825246f4b27df276289a4b123c750162f7e2e065"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"1f4396de488af666815aad7994e60562f5d82fc5","unresolved":false,"context_lines":[{"line_number":53,"context_line":"points to the current message queue and database and all instances can be"},{"line_number":54,"context_line":"mapped to that cell on instance.save()."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"If starting with cells v2 then new v2 cells should be created which point to"},{"line_number":57,"context_line":"the current message queues and databases.  Then instances can be mapped to"},{"line_number":58,"context_line":"those cells on instance.save()."},{"line_number":59,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a961159_315d4249","line":56,"updated":"2015-01-14 16:47:39.000000000","message":"typo maybe ? \"if starting with cells v1...\" perhaps ?","commit_id":"825246f4b27df276289a4b123c750162f7e2e065"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"0992ed48de3a228f13ef0f8c2fc144d4859404df","unresolved":false,"context_lines":[{"line_number":53,"context_line":"points to the current message queue and database and all instances can be"},{"line_number":54,"context_line":"mapped to that cell on instance.save()."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"If starting with cells v2 then new v2 cells should be created which point to"},{"line_number":57,"context_line":"the current message queues and databases.  Then instances can be mapped to"},{"line_number":58,"context_line":"those cells on instance.save()."},{"line_number":59,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a961159_ad0a84ce","line":56,"in_reply_to":"3a961159_315d4249","updated":"2015-01-15 19:23:57.000000000","message":"Yep.","commit_id":"825246f4b27df276289a4b123c750162f7e2e065"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"ae70aab857671f635b97a26935adb8327f26dd1b","unresolved":false,"context_lines":[{"line_number":164,"context_line":"References"},{"line_number":165,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"``https://etherpad.openstack.org/p/kilo-nova-cells``"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a930d6b_5a6716b7","line":167,"updated":"2015-01-26 18:07:52.000000000","message":"rst nit: this isn\u0027t a link\n\nhttp://docs-draft.openstack.org/90/136490/5/check/gate-nova-specs-docs/b2a0da0//doc/build/html/specs/kilo/approved/cells-instance-migration.html#references","commit_id":"8452d65138f826f14a266f6b55688144f33dfef0"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"119fd02110d1c2e4e4f997a97a7bf57194dc7bf9","unresolved":false,"context_lines":[{"line_number":164,"context_line":"References"},{"line_number":165,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"``https://etherpad.openstack.org/p/kilo-nova-cells``"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa81d914_a02b232f","line":167,"in_reply_to":"1a930d6b_5a6716b7","updated":"2015-01-28 00:23:38.000000000","message":"Thanks, will update this.","commit_id":"8452d65138f826f14a266f6b55688144f33dfef0"}],"specs/liberty/approved/cells-instance-migration.rst":[{"author":{"_account_id":12548,"name":"Dheeraj Gupta","email":"dheeraj.gupta4@gmail.com","username":"dgupta"},"change_message_id":"5226e8aa21a392baba111172bf2e51a3865171b9","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"This can be done via a nova-manage command that will be added to look up"},{"line_number":45,"context_line":"instances in a database and add instance_mapping data for them.  Additionally"},{"line_number":46,"context_line":"this table can be updated on an instance.save() if the mapping can be"},{"line_number":47,"context_line":"determined."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"There are two cases to consider, starting from a non-cell deployment or"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7aaa499b_dc045bc1","line":46,"updated":"2015-04-15 05:41:04.000000000","message":"I am wondering how this (instance.save()) will work because it will (probably) be called in child cell and right now child cell does not know anything about the parent cell.","commit_id":"bb2e668707fd2a08332152098f37daa98911f367"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"9af1490dd17f544ec2b29cbd7fa0c302b32e48a8","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"This can be done via a nova-manage command that will be added to look up"},{"line_number":45,"context_line":"instances in a database and add instance_mapping data for them.  Additionally"},{"line_number":46,"context_line":"this table can be updated on an instance.save() if the mapping can be"},{"line_number":47,"context_line":"determined."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"There are two cases to consider, starting from a non-cell deployment or"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5aa745d1_d1d034cc","line":46,"in_reply_to":"7aaa499b_68ed7a24","updated":"2015-04-15 20:29:30.000000000","message":"This would only work for instance.save in the api cell or in a non-cells deployment.  There\u0027s going to need to be enough information available to the instance object to know which v2 cell to update when .save() is called, and that info could be used to create a mapping if necessary.","commit_id":"bb2e668707fd2a08332152098f37daa98911f367"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c5421206677e7e23ee1f1747c6aba685d2f69340","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"This can be done via a nova-manage command that will be added to look up"},{"line_number":45,"context_line":"instances in a database and add instance_mapping data for them.  Additionally"},{"line_number":46,"context_line":"this table can be updated on an instance.save() if the mapping can be"},{"line_number":47,"context_line":"determined."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"There are two cases to consider, starting from a non-cell deployment or"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7aaa499b_68ed7a24","line":46,"in_reply_to":"7aaa499b_dc045bc1","updated":"2015-04-15 09:54:23.000000000","message":"-1 the child already updates the parent DB.","commit_id":"bb2e668707fd2a08332152098f37daa98911f367"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c5421206677e7e23ee1f1747c6aba685d2f69340","unresolved":false,"context_lines":[{"line_number":55,"context_line":"  queue."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"* Instances will be added to the instance_mapping table on instance_obj.save()"},{"line_number":58,"context_line":"  calls."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"* All unpopulated instances can be added to the instance_mapping table with a"},{"line_number":61,"context_line":"  nova-manage command."}],"source_content_type":"text/x-rst","patch_set":7,"id":"7aaa499b_c86dae99","line":58,"updated":"2015-04-15 09:54:23.000000000","message":"Does that mean every instance.save() needs to access the global DB.\n\nI guess we need a way to say thats no longer required?\n\nMaybe just having a reference to its id the mapping table saved in the child cell\u0027s instance would be enough?\n\nI guess the cell_name could be populated with the cell uuid thats in the global mapping table too? But maybe thats just a sync problem waiting to happen..","commit_id":"bb2e668707fd2a08332152098f37daa98911f367"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"9af1490dd17f544ec2b29cbd7fa0c302b32e48a8","unresolved":false,"context_lines":[{"line_number":55,"context_line":"  queue."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"* Instances will be added to the instance_mapping table on instance_obj.save()"},{"line_number":58,"context_line":"  calls."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"* All unpopulated instances can be added to the instance_mapping table with a"},{"line_number":61,"context_line":"  nova-manage command."}],"source_content_type":"text/x-rst","patch_set":7,"id":"5aa745d1_1179fcfc","line":58,"in_reply_to":"7aaa499b_c86dae99","updated":"2015-04-15 20:29:30.000000000","message":"This is for a non-cells deployment, so there\u0027s only a global db.  And this is much like the flavor migration we have currently in Nova, there\u0027s an attempted migration on every save().","commit_id":"bb2e668707fd2a08332152098f37daa98911f367"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c5421206677e7e23ee1f1747c6aba685d2f69340","unresolved":false,"context_lines":[{"line_number":152,"context_line":"visible changes the current suite of Tempest or functional tests should"},{"line_number":153,"context_line":"suffice.  At some point we will want to look at how to test multiple cells or"},{"line_number":154,"context_line":"potentially exposing the concept of a cell in the API and we will tackle"},{"line_number":155,"context_line":"testing requirements then."},{"line_number":156,"context_line":""},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7aaa499b_4883de04","line":155,"updated":"2015-04-15 09:54:23.000000000","message":"Grenade testing for the transition from cells v1 to cells v2 would be awesome, but probably need more than this spec before we can test that right?","commit_id":"bb2e668707fd2a08332152098f37daa98911f367"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"9af1490dd17f544ec2b29cbd7fa0c302b32e48a8","unresolved":false,"context_lines":[{"line_number":152,"context_line":"visible changes the current suite of Tempest or functional tests should"},{"line_number":153,"context_line":"suffice.  At some point we will want to look at how to test multiple cells or"},{"line_number":154,"context_line":"potentially exposing the concept of a cell in the API and we will tackle"},{"line_number":155,"context_line":"testing requirements then."},{"line_number":156,"context_line":""},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5aa745d1_9102ac3d","line":155,"in_reply_to":"7aaa499b_4883de04","updated":"2015-04-15 20:29:30.000000000","message":"Much more.  There\u0027s still a lot needed before we can call cellsv2 usable.","commit_id":"bb2e668707fd2a08332152098f37daa98911f367"}]}
