)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"2a2fa18fa41133211ddc2b942e269fe3672a2dbd","unresolved":false,"context_lines":[{"line_number":14,"context_line":"Note the XML api samples are no longer generated because"},{"line_number":15,"context_line":"bp remove-v3-xml-api has been approved."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Partially implements bp v3-admin-actions-split"},{"line_number":18,"context_line":"DocImpact: Adds os-migrate-server extension and moves migrate/live-migrate"},{"line_number":19,"context_line":"functionality out of os-admin-actions into this new extension."},{"line_number":20,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"AAAAUH%2F9j%2B4%3D","line":17,"updated":"2014-02-06 01:37:20.000000000","message":"I think you mean blueprint v3-api-admin-actions-split","commit_id":"230bc26cd64bdfe338fd167cec37fe6fb39e7cd0"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"88a8bc908b0449f5c93398a622a3ca5f9c5e4eec","unresolved":false,"context_lines":[{"line_number":14,"context_line":"Note the XML api samples are no longer generated because"},{"line_number":15,"context_line":"bp remove-v3-xml-api has been approved."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Partially implements bp v3-admin-actions-split"},{"line_number":18,"context_line":"DocImpact: Adds os-migrate-server extension and moves migrate/live-migrate"},{"line_number":19,"context_line":"functionality out of os-admin-actions into this new extension."},{"line_number":20,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"AAAAUH%2F9js8%3D","line":17,"in_reply_to":"AAAAUH%2F9j%2B4%3D","updated":"2014-02-06 02:48:59.000000000","message":"Done","commit_id":"230bc26cd64bdfe338fd167cec37fe6fb39e7cd0"}],"etc/nova/policy.json":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"207489585da82166e8bafa30b5b0cdfed4bcef17","unresolved":false,"context_lines":[{"line_number":174,"context_line":"    \"compute_extension:v3:os-lock-server:unlock\": \"rule:admin_or_owner\","},{"line_number":175,"context_line":"    \"compute_extension:v3:os-migrate-server:discoverable\": \"\","},{"line_number":176,"context_line":"    \"compute_extension:v3:os-migrate-server:migrate\": \"rule:admin_or_owner\","},{"line_number":177,"context_line":"    \"compute_extension:v3:os-migrate-server:migrate_live\": \"rule:admin_or_owner\","},{"line_number":178,"context_line":"    \"compute_extension:multinic\": \"\","},{"line_number":179,"context_line":"    \"compute_extension:v3:os-multinic\": \"\","},{"line_number":180,"context_line":"    \"compute_extension:v3:os-multinic:discoverable\": \"\","}],"source_content_type":"application/json","patch_set":7,"id":"AAAAUH%2F%2B4Fo%3D","line":177,"updated":"2014-01-21 07:03:21.000000000","message":"I feel migrate/migrate_live actions should be rule:admin_api because normal users cannot know where a server is running.","commit_id":"269f0c071dc71bee90be1ec3bbfc6d18f3b7d263"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"f5ee1e7d327de9ae727c17a052d398b94f670e05","unresolved":false,"context_lines":[{"line_number":174,"context_line":"    \"compute_extension:v3:os-lock-server:unlock\": \"rule:admin_or_owner\","},{"line_number":175,"context_line":"    \"compute_extension:v3:os-migrate-server:discoverable\": \"\","},{"line_number":176,"context_line":"    \"compute_extension:v3:os-migrate-server:migrate\": \"rule:admin_or_owner\","},{"line_number":177,"context_line":"    \"compute_extension:v3:os-migrate-server:migrate_live\": \"rule:admin_or_owner\","},{"line_number":178,"context_line":"    \"compute_extension:multinic\": \"\","},{"line_number":179,"context_line":"    \"compute_extension:v3:os-multinic\": \"\","},{"line_number":180,"context_line":"    \"compute_extension:v3:os-multinic:discoverable\": \"\","}],"source_content_type":"application/json","patch_set":7,"id":"AAAAUH%2F%2B4DU%3D","line":177,"in_reply_to":"AAAAUH%2F%2B4Fo%3D","updated":"2014-01-21 07:19:24.000000000","message":"yes you\u0027re right. I\u0027ll fix it.","commit_id":"269f0c071dc71bee90be1ec3bbfc6d18f3b7d263"}],"nova/api/openstack/compute/plugins/v3/migrate_server.py":[{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"10134134b215900766deeb15f2303defee65087b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":"# Copyright 2013 IBM Corp."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#   Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FIl8%3D","line":1,"updated":"2014-01-17 04:43:54.000000000","message":"Would be nice to remove this if you upload a new patch","commit_id":"48d8e5eda4f9f8595a72746d7c7ca4d3f60a0085"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"fd0c288224d744d487e8f8ab67d2a307966bb848","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":"# Copyright 2013 IBM Corp."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#   Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2B%2FgQ%3D","line":1,"in_reply_to":"AAAAUH%2F%2FIl8%3D","updated":"2014-01-20 00:06:58.000000000","message":"I disagree - the vast majority of existing files have this header so for consistencies sake we should keep including them until someone proposes a patch to remove them all or add them to the missing files - and enforced with flake8.","commit_id":"48d8e5eda4f9f8595a72746d7c7ca4d3f60a0085"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"2271d075e4561add527798a083aa039f6c586ad9","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        except exception.InstanceNotFound as e:"},{"line_number":62,"context_line":"            raise exc.HTTPNotFound(explanation\u003de.format_message())"},{"line_number":63,"context_line":"        except exception.FlavorNotFound as e:"},{"line_number":64,"context_line":"            raise exc.HTTPNotFound(explanation\u003de.format_message())"},{"line_number":65,"context_line":"        except exception.CannotResizeToSameFlavor as e:"},{"line_number":66,"context_line":"            raise exc.HTTPBadRequest(explanation\u003de.format_message())"},{"line_number":67,"context_line":"        return webob.Response(status_int\u003d202)"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAUH%2F9jWg%3D","line":64,"updated":"2014-02-06 04:14:58.000000000","message":"Merge the above two exceptions to one?\nexcept (exception.InstanceNotFound, exception.FlavorNotFound) as e:","commit_id":"926d15351c78bc6eb3e81ef210ac45cbad001aaa"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"ef9ff835750a727c42ef310e5e0fcfdc1a184645","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        except exception.InstanceNotFound as e:"},{"line_number":62,"context_line":"            raise exc.HTTPNotFound(explanation\u003de.format_message())"},{"line_number":63,"context_line":"        except exception.FlavorNotFound as e:"},{"line_number":64,"context_line":"            raise exc.HTTPNotFound(explanation\u003de.format_message())"},{"line_number":65,"context_line":"        except exception.CannotResizeToSameFlavor as e:"},{"line_number":66,"context_line":"            raise exc.HTTPBadRequest(explanation\u003de.format_message())"},{"line_number":67,"context_line":"        return webob.Response(status_int\u003d202)"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAUX%2F%2F8GI%3D","line":64,"in_reply_to":"AAAAUH%2F9jWg%3D","updated":"2014-02-09 06:16:27.000000000","message":"So FlavorNotFound should actually never occur within this context because the flavor is not being changed. So I\u0027ve just deleted the FlavorNotFound handling","commit_id":"926d15351c78bc6eb3e81ef210ac45cbad001aaa"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"525e5bcb94603314f82d5a0359df596ab795c676","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        except exception.FlavorNotFound as e:"},{"line_number":64,"context_line":"            raise exc.HTTPNotFound(explanation\u003de.format_message())"},{"line_number":65,"context_line":"        except exception.CannotResizeToSameFlavor as e:"},{"line_number":66,"context_line":"            raise exc.HTTPBadRequest(explanation\u003de.format_message())"},{"line_number":67,"context_line":"        return webob.Response(status_int\u003d202)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    @extensions.expected_errors((400, 404, 409))"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAUH%2F9hLo%3D","line":66,"updated":"2014-02-06 10:59:42.000000000","message":"This except should be removed.\n\nThis exception does not happen because of not passing flavor_id to self.compute_api.resize().\n\nFrom the other viewpoint, CannotResizeToSameFlavor\u0027s message is\n\n When resizing, instances must change flavor!\n\nbut a user does not specify flavor_id to this API.","commit_id":"926d15351c78bc6eb3e81ef210ac45cbad001aaa"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"ef9ff835750a727c42ef310e5e0fcfdc1a184645","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        except exception.FlavorNotFound as e:"},{"line_number":64,"context_line":"            raise exc.HTTPNotFound(explanation\u003de.format_message())"},{"line_number":65,"context_line":"        except exception.CannotResizeToSameFlavor as e:"},{"line_number":66,"context_line":"            raise exc.HTTPBadRequest(explanation\u003de.format_message())"},{"line_number":67,"context_line":"        return webob.Response(status_int\u003d202)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    @extensions.expected_errors((400, 404, 409))"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAUX%2F%2F8GE%3D","line":66,"in_reply_to":"AAAAUH%2F9hLo%3D","updated":"2014-02-09 06:16:27.000000000","message":"Great catch. thanks!","commit_id":"926d15351c78bc6eb3e81ef210ac45cbad001aaa"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"881e57bef31e3257e813407fb0c75dc450b2bd0a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2013 IBM Corp."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#   Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#   not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAUX%2F%2F7Ck%3D","line":1,"updated":"2014-02-09 18:31:18.000000000","message":"Is it really correct to claim IBM copyright over this when much of it is code that has just been moved? I feel like the previous copyright message should have been copied as well.","commit_id":"afeaaa6a05c0f930cf889c3fe39dd9f76cbfa979"}],"nova/tests/api/openstack/compute/plugins/v3/admin_only_action_common.py":[{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"10134134b215900766deeb15f2303defee65087b","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        self.mox.UnsetStubs()"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def _test_action(self, action, body\u003dNone, method\u003dNone,"},{"line_number":77,"context_line":"                     compute_api_args_map\u003dNone):"},{"line_number":78,"context_line":"        if method is None:"},{"line_number":79,"context_line":"            method \u003d action"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FImY%3D","line":77,"updated":"2014-01-17 04:43:54.000000000","message":"I think we need add some data transfer logic:\n\nif compute_api_args_map is None:\n    compute_api_args_map \u003d {}","commit_id":"48d8e5eda4f9f8595a72746d7c7ca4d3f60a0085"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"fd0c288224d744d487e8f8ab67d2a307966bb848","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        self.mox.UnsetStubs()"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def _test_action(self, action, body\u003dNone, method\u003dNone,"},{"line_number":77,"context_line":"                     compute_api_args_map\u003dNone):"},{"line_number":78,"context_line":"        if method is None:"},{"line_number":79,"context_line":"            method \u003d action"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2B%2FfQ%3D","line":77,"in_reply_to":"AAAAUH%2F%2FImY%3D","updated":"2014-01-20 00:06:58.000000000","message":"I\u0027ll make the default {}","commit_id":"48d8e5eda4f9f8595a72746d7c7ca4d3f60a0085"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"10134134b215900766deeb15f2303defee65087b","unresolved":false,"context_lines":[{"line_number":125,"context_line":"        self.mox.UnsetStubs()"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    def _test_locked_instance(self, action, method\u003dNone, body\u003dNone,"},{"line_number":128,"context_line":"                              compute_api_args_map\u003dNone):"},{"line_number":129,"context_line":"        if method is None:"},{"line_number":130,"context_line":"            method \u003d action"},{"line_number":131,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FImQ%3D","line":128,"updated":"2014-01-17 04:43:54.000000000","message":"body is no use here?\n\nI think we need add some data transfer logic:\n\nif compute_api_args_map is None:\ncompute_api_args_map \u003d {}","commit_id":"48d8e5eda4f9f8595a72746d7c7ca4d3f60a0085"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"fd0c288224d744d487e8f8ab67d2a307966bb848","unresolved":false,"context_lines":[{"line_number":125,"context_line":"        self.mox.UnsetStubs()"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    def _test_locked_instance(self, action, method\u003dNone, body\u003dNone,"},{"line_number":128,"context_line":"                              compute_api_args_map\u003dNone):"},{"line_number":129,"context_line":"        if method is None:"},{"line_number":130,"context_line":"            method \u003d action"},{"line_number":131,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2B%2Fe4%3D","line":128,"in_reply_to":"AAAAUH%2F%2FImQ%3D","updated":"2014-01-20 00:06:58.000000000","message":"body does need to be passed to the contents of the action in some cases\n\nI\u0027ll make the default for compute_api_args_map {}","commit_id":"48d8e5eda4f9f8595a72746d7c7ca4d3f60a0085"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"10134134b215900766deeb15f2303defee65087b","unresolved":false,"context_lines":[{"line_number":148,"context_line":""},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"class CommonTests(CommonMixin, test.NoDBTestCase):"},{"line_number":151,"context_line":"    def _test_actions(self, actions, method_translations\u003d{}, body_map\u003d{},"},{"line_number":152,"context_line":"                      args_map\u003d{}):"},{"line_number":153,"context_line":"        for action in actions:"},{"line_number":154,"context_line":"            method \u003d method_translations.get(action)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FInE%3D","line":151,"updated":"2014-01-17 04:43:54.000000000","message":"Should not the default value be None? Though it is OK to use {} as default value but it is better that we change it to None to follow this standard: http://effbot.org/zone/default-values.htm","commit_id":"48d8e5eda4f9f8595a72746d7c7ca4d3f60a0085"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"421591337d6dbad8f339e5306b572fb401386e33","unresolved":false,"context_lines":[{"line_number":148,"context_line":""},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"class CommonTests(CommonMixin, test.NoDBTestCase):"},{"line_number":151,"context_line":"    def _test_actions(self, actions, method_translations\u003d{}, body_map\u003d{},"},{"line_number":152,"context_line":"                      args_map\u003d{}):"},{"line_number":153,"context_line":"        for action in actions:"},{"line_number":154,"context_line":"            method \u003d method_translations.get(action)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2By70%3D","line":151,"in_reply_to":"AAAAUH%2F%2B%2Feo%3D","updated":"2014-01-22 02:41:36.000000000","message":"I\u0027m OK if we do not update values of body_map.","commit_id":"48d8e5eda4f9f8595a72746d7c7ca4d3f60a0085"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"fd0c288224d744d487e8f8ab67d2a307966bb848","unresolved":false,"context_lines":[{"line_number":148,"context_line":""},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"class CommonTests(CommonMixin, test.NoDBTestCase):"},{"line_number":151,"context_line":"    def _test_actions(self, actions, method_translations\u003d{}, body_map\u003d{},"},{"line_number":152,"context_line":"                      args_map\u003d{}):"},{"line_number":153,"context_line":"        for action in actions:"},{"line_number":154,"context_line":"            method \u003d method_translations.get(action)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2B%2Feo%3D","line":151,"in_reply_to":"AAAAUH%2F%2FInE%3D","updated":"2014-01-20 00:06:58.000000000","message":"I disagree about the defaults being None. This just means that we need to do extra logic in the function to check if its None to see if we can do a get on it.","commit_id":"48d8e5eda4f9f8595a72746d7c7ca4d3f60a0085"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"10134134b215900766deeb15f2303defee65087b","unresolved":false,"context_lines":[{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    def _test_actions_with_locked_instance(self, actions,"},{"line_number":181,"context_line":"                                           method_translations\u003d{},"},{"line_number":182,"context_line":"                                           body_map\u003d{}, args_map\u003d{}):"},{"line_number":183,"context_line":"        for action in actions:"},{"line_number":184,"context_line":"            method \u003d method_translations.get(action)"},{"line_number":185,"context_line":"            body \u003d body_map.get(action)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FImE%3D","line":182,"updated":"2014-01-17 04:43:54.000000000","message":"ditto","commit_id":"48d8e5eda4f9f8595a72746d7c7ca4d3f60a0085"}],"nova/tests/api/openstack/compute/plugins/v3/test_migrate_server.py":[{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"10134134b215900766deeb15f2303defee65087b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":"# Copyright 2013 IBM Corp."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FIlw%3D","line":1,"updated":"2014-01-17 04:43:54.000000000","message":"no use","commit_id":"48d8e5eda4f9f8595a72746d7c7ca4d3f60a0085"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"edef925129ef43b9d3e16da51f8fba0a53a4f908","unresolved":false,"context_lines":[{"line_number":165,"context_line":"        uuid \u003d uuidutils.generate_uuid()"},{"line_number":166,"context_line":"        self._test_migrate_live_failed_with_exception("},{"line_number":167,"context_line":"                exception.UnableToMigrateToSelf(instance_id\u003duuid,"},{"line_number":168,"context_line":"                                                host\u003d\u0027host\u0027),"},{"line_number":169,"context_line":"                uuid\u003duuid)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    def test_migrate_live_destination_hypervisor_too_old(self):"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAUH%2F9r9I%3D","line":168,"updated":"2014-02-05 00:10:35.000000000","message":"alignment goofed up or just gerrit?","commit_id":"230bc26cd64bdfe338fd167cec37fe6fb39e7cd0"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"88a8bc908b0449f5c93398a622a3ca5f9c5e4eec","unresolved":false,"context_lines":[{"line_number":165,"context_line":"        uuid \u003d uuidutils.generate_uuid()"},{"line_number":166,"context_line":"        self._test_migrate_live_failed_with_exception("},{"line_number":167,"context_line":"                exception.UnableToMigrateToSelf(instance_id\u003duuid,"},{"line_number":168,"context_line":"                                                host\u003d\u0027host\u0027),"},{"line_number":169,"context_line":"                uuid\u003duuid)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    def test_migrate_live_destination_hypervisor_too_old(self):"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAUH%2F9jtA%3D","line":168,"in_reply_to":"AAAAUH%2F9r9I%3D","updated":"2014-02-06 02:48:59.000000000","message":"Done","commit_id":"230bc26cd64bdfe338fd167cec37fe6fb39e7cd0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d496a695ecf2f7f0ce1b3bbc80df3414db7fa7e2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2013 IBM Corp."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAAUX%2F%2F0QY%3D","line":1,"updated":"2014-02-10 16:38:22.000000000","message":"Also need the previous copyright here?","commit_id":"650fd1a9320f1cdc2f32d12a99c4dabf98d7ca6f"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"cd20527fa7561bbc444dc2108ae4e9832138a6cf","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2013 IBM Corp."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAAUX%2F%2FmF8%3D","line":1,"in_reply_to":"AAAAUX%2F%2F0QY%3D","updated":"2014-02-12 05:20:02.000000000","message":"Done","commit_id":"650fd1a9320f1cdc2f32d12a99c4dabf98d7ca6f"}],"nova/tests/integrated/v3/test_migrate_server.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d496a695ecf2f7f0ce1b3bbc80df3414db7fa7e2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2013 IBM Corp."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAAUX%2F%2F0QI%3D","line":1,"updated":"2014-02-10 16:38:22.000000000","message":"And here?","commit_id":"650fd1a9320f1cdc2f32d12a99c4dabf98d7ca6f"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"cd20527fa7561bbc444dc2108ae4e9832138a6cf","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2013 IBM Corp."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAAUX%2F%2FmF0%3D","line":1,"in_reply_to":"AAAAUX%2F%2F0QI%3D","updated":"2014-02-12 05:20:02.000000000","message":"Done","commit_id":"650fd1a9320f1cdc2f32d12a99c4dabf98d7ca6f"}]}
