)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"b520d29b3f47083fd501ff171b9b2b67a33bcbe7","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Fixes bug 1153087"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Note live migration between cells is not supported"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Ic8777c376883eaf6ff9cb4b379e0bacbfe5635b7"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"AAAAOn%2F%2Fg30%3D","line":11,"updated":"2013-05-07 08:49:40.000000000","message":"I think this deserves a docimpact here.","commit_id":"f8d62bfea0c4270fd8b921aea599cf2b7dd81f52"}],"nova/compute/cells_api.py":[{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"00cf4bee386c4744da26ae6591bb9803ab09b3ea","unresolved":false,"context_lines":[{"line_number":568,"context_line":""},{"line_number":569,"context_line":"        self._cast_to_cells(context, instance, \u0027live_migrate\u0027,"},{"line_number":570,"context_line":"                            block_migration, disk_over_commit, host_name)"},{"line_number":571,"context_line":""},{"line_number":572,"context_line":""},{"line_number":573,"context_line":"class HostAPI(compute_api.HostAPI):"},{"line_number":574,"context_line":"    \"\"\"HostAPI() class for cells."}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPH%2F%2F4z4%3D","line":571,"updated":"2013-05-20 22:34:45.000000000","message":"This appears to work.  But I think that instead of creating this method here, I would, instead, create a \u0027live_migration\u0027 method in the SchedulerRPCAPIRedirect class that exists at the top of this file.  Then you don\u0027t need to override this live_migrate() method at all here.","commit_id":"f53a4b2d517141026a055efa08251434f173582f"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"8c298f58efd3bedcbc106ba3976ec12191825600","unresolved":false,"context_lines":[{"line_number":568,"context_line":""},{"line_number":569,"context_line":"        self._cast_to_cells(context, instance, \u0027live_migrate\u0027,"},{"line_number":570,"context_line":"                            block_migration, disk_over_commit, host_name)"},{"line_number":571,"context_line":""},{"line_number":572,"context_line":""},{"line_number":573,"context_line":"class HostAPI(compute_api.HostAPI):"},{"line_number":574,"context_line":"    \"\"\"HostAPI() class for cells."}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPH%2F%2F06Y%3D","line":571,"in_reply_to":"AAAAPH%2F%2F1G0%3D","updated":"2013-05-22 06:16:22.000000000","message":"Yeah, it\u0027s more complicated than I thought.  Bummer.  The only use right now is \u0027run_instance\u0027.  But that works much differently than live_migrate... because it hits the cells scheduler on every hop down.  For live_migrate, you want to route to the appropriate cell..  but you don\u0027t know what cell to route to if you use the SchedulerRPCAPIRedirect class.\n\nLooks like your patch is the best solution ATM :)","commit_id":"f53a4b2d517141026a055efa08251434f173582f"},{"author":{"_account_id":3031,"name":"Sam Morrison","email":"sorrison@gmail.com","username":"sorrison"},"change_message_id":"f97191612d087f9e3b4756bd6aa14fffd524c92c","unresolved":false,"context_lines":[{"line_number":568,"context_line":""},{"line_number":569,"context_line":"        self._cast_to_cells(context, instance, \u0027live_migrate\u0027,"},{"line_number":570,"context_line":"                            block_migration, disk_over_commit, host_name)"},{"line_number":571,"context_line":""},{"line_number":572,"context_line":""},{"line_number":573,"context_line":"class HostAPI(compute_api.HostAPI):"},{"line_number":574,"context_line":"    \"\"\"HostAPI() class for cells."}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPH%2F%2F1G0%3D","line":571,"in_reply_to":"AAAAPH%2F%2F1to%3D","updated":"2013-05-22 04:43:13.000000000","message":"Upon further looking this is getting a bit confusing. I can\u0027t see any example of using the scheduler.rpcapi with any of the current cells stuff. Can you give me some more pointers?\n\nDoes the SchedulerRPCAPIRedirect class need some generic method to proxy calls/casts down to the scheduler.rpcapi on the target cell?","commit_id":"f53a4b2d517141026a055efa08251434f173582f"},{"author":{"_account_id":3031,"name":"Sam Morrison","email":"sorrison@gmail.com","username":"sorrison"},"change_message_id":"54c9694e97c6caaea652718b3ae9aa7e568a02c0","unresolved":false,"context_lines":[{"line_number":568,"context_line":""},{"line_number":569,"context_line":"        self._cast_to_cells(context, instance, \u0027live_migrate\u0027,"},{"line_number":570,"context_line":"                            block_migration, disk_over_commit, host_name)"},{"line_number":571,"context_line":""},{"line_number":572,"context_line":""},{"line_number":573,"context_line":"class HostAPI(compute_api.HostAPI):"},{"line_number":574,"context_line":"    \"\"\"HostAPI() class for cells."}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPH%2F%2F1to%3D","line":571,"in_reply_to":"AAAAPH%2F%2F4z4%3D","updated":"2013-05-21 22:53:00.000000000","message":"OK I\u0027ll give it a go. \n\nWould you add a _cast_to_cells() method to the SchedulerRPCAPIRedirect to pass it down?","commit_id":"f53a4b2d517141026a055efa08251434f173582f"}],"nova/tests/compute/test_compute_cells.py":[{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"97fe6b0f1be3a1e043c39e286326ddcfdc56b910","unresolved":false,"context_lines":[{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def test_live_migrate(self):"},{"line_number":149,"context_line":"        return super(CellsComputeAPITestCase,"},{"line_number":150,"context_line":"                self).test_live_migrate()"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def test_snapshot_given_image_uuid(self):"},{"line_number":153,"context_line":"        self.skipTest(\"Test doesn\u0027t apply to API cell.\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPH%2F%2F06I%3D","line":150,"updated":"2013-05-22 06:17:52.000000000","message":"Oh, you can just remove this test completely from here.  It\u0027ll get run since it\u0027s inheriting it.","commit_id":"f53a4b2d517141026a055efa08251434f173582f"}]}
