)]}'
{"nova/conductor/manager.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"78f63a1f04f9d997a9a5577c258fa87d0b3e5696","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    namespace.  See the ComputeTaskManager class for details."},{"line_number":67,"context_line":"    \"\"\""},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    RPC_API_VERSION \u003d \u00271.51\u0027"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":72,"context_line":"        super(ConductorManager, self).__init__(service_name\u003d\u0027conductor\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAPX%2F%2Fri4%3D","line":69,"updated":"2013-06-12 21:49:36.000000000","message":"1.51 is now in use, meaning this will need to be rebased…","commit_id":"5c9eaaa4ec90ef9fb1734de9a62db0f8cd7258bb"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"845efa45f08bbbbcec4a28578d7c5049e4d8e92f","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    namespace.  See the ComputeTaskManager class for details."},{"line_number":67,"context_line":"    \"\"\""},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    RPC_API_VERSION \u003d \u00271.51\u0027"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":72,"context_line":"        super(ConductorManager, self).__init__(service_name\u003d\u0027conductor\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAPX%2F%2FrUI%3D","line":69,"in_reply_to":"AAAAPX%2F%2Fri4%3D","updated":"2013-06-12 23:10:00.000000000","message":"Thanks for the heads up.","commit_id":"5c9eaaa4ec90ef9fb1734de9a62db0f8cd7258bb"}],"nova/tests/conductor/test_conductor.py":[{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"8db7bedcb9f5ccf787ad2f7bf7815ff50c4fa8a7","unresolved":false,"context_lines":[{"line_number":624,"context_line":"        self.conductor.compute_unrescue(self.context, \u0027instance\u0027)"},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"    def test_compute_reboot(self):"},{"line_number":627,"context_line":"        self.mox.StubOutWithMock(self.conductor_manager.compute_api, \u0027reboot\u0027)"},{"line_number":628,"context_line":"        reboot_types \u003d [\u0027SOFT\u0027, \u0027HARD\u0027]"},{"line_number":629,"context_line":"        for reboot_type in reboot_types:"},{"line_number":630,"context_line":"            self.conductor_manager.compute_api.reboot(self.context,"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAPX%2F%2F2Dc%3D","line":627,"updated":"2013-06-07 18:22:05.000000000","message":"Isn\u0027t this just testing the stub?  As far as I can tell, it never calls into any of the changed code this way.","commit_id":"2270005f199708fe4debd06bda6b2c5b64a81bc6"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"479338eddb2d86140b56b86f5b93704e978d714e","unresolved":false,"context_lines":[{"line_number":624,"context_line":"        self.conductor.compute_unrescue(self.context, \u0027instance\u0027)"},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"    def test_compute_reboot(self):"},{"line_number":627,"context_line":"        self.mox.StubOutWithMock(self.conductor_manager.compute_api, \u0027reboot\u0027)"},{"line_number":628,"context_line":"        reboot_types \u003d [\u0027SOFT\u0027, \u0027HARD\u0027]"},{"line_number":629,"context_line":"        for reboot_type in reboot_types:"},{"line_number":630,"context_line":"            self.conductor_manager.compute_api.reboot(self.context,"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAPX%2F%2F2AE%3D","line":627,"in_reply_to":"AAAAPX%2F%2F2Dc%3D","updated":"2013-06-07 18:40:12.000000000","message":"Yeah, I messed up. Line 635 should be:\n\n self.conductor.compute_reboot(self.context, \u0027instance\u0027, reboot_type)","commit_id":"2270005f199708fe4debd06bda6b2c5b64a81bc6"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"b689a312e8416f773f1e950271a624dd3517654e","unresolved":false,"context_lines":[{"line_number":611,"context_line":"        self.mox.StubOutWithMock(self.conductor_manager.compute_api, \u0027reboot\u0027)"},{"line_number":612,"context_line":"        reboot_types \u003d [\u0027SOFT\u0027, \u0027HARD\u0027]"},{"line_number":613,"context_line":"        for reboot_type in reboot_types:"},{"line_number":614,"context_line":"            self.conductor_manager.compute_api.reboot(self.context,"},{"line_number":615,"context_line":"                                                      \u0027instance\u0027,"},{"line_number":616,"context_line":"                                                      reboot_type)"},{"line_number":617,"context_line":"        self.mox.ReplayAll()"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAPn%2F%2FnVQ%3D","line":614,"updated":"2013-06-26 17:54:42.000000000","message":"This seems a bit odd, probably only need to test one type, for this code path?","commit_id":"2b4454b1167a7870bc152e43d3b62dca1325cff2"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"0d0cb61062fd3e3df5b8dd893362f2f457c836cd","unresolved":false,"context_lines":[{"line_number":611,"context_line":"        self.mox.StubOutWithMock(self.conductor_manager.compute_api, \u0027reboot\u0027)"},{"line_number":612,"context_line":"        reboot_types \u003d [\u0027SOFT\u0027, \u0027HARD\u0027]"},{"line_number":613,"context_line":"        for reboot_type in reboot_types:"},{"line_number":614,"context_line":"            self.conductor_manager.compute_api.reboot(self.context,"},{"line_number":615,"context_line":"                                                      \u0027instance\u0027,"},{"line_number":616,"context_line":"                                                      reboot_type)"},{"line_number":617,"context_line":"        self.mox.ReplayAll()"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAPn%2F%2FmaU%3D","line":614,"in_reply_to":"AAAAPn%2F%2FnVQ%3D","updated":"2013-06-26 23:13:07.000000000","message":"Ok, will update.","commit_id":"2b4454b1167a7870bc152e43d3b62dca1325cff2"}],"nova/tests/virt/vmwareapi/db_fakes.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d6adf22f8d2baac396036f92b934c5eccde5a6d4","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        base_options \u003d {"},{"line_number":67,"context_line":"            \u0027name\u0027: values[\u0027name\u0027],"},{"line_number":68,"context_line":"            \u0027id\u0027: values[\u0027id\u0027],"},{"line_number":69,"context_line":"            \u0027uuid\u0027: str(uuid.uuid4()),"},{"line_number":70,"context_line":"            \u0027reservation_id\u0027: utils.generate_uid(\u0027r\u0027),"},{"line_number":71,"context_line":"            \u0027image_ref\u0027: values[\u0027image_ref\u0027],"},{"line_number":72,"context_line":"            \u0027kernel_id\u0027: values[\u0027kernel_id\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPX%2F%2F%2B20%3D","line":69,"updated":"2013-06-04 16:23:06.000000000","message":"Is this change (and the one above) related to the content of the patch? I don\u0027t see it, but perhaps there\u0027s some subtle detail I\u0027m missing.","commit_id":"3561911f281e4974e6ba511de6419ed30126872f"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"91af62d7b8ebd8feea9aca11ffc6f846780879a7","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        base_options \u003d {"},{"line_number":67,"context_line":"            \u0027name\u0027: values[\u0027name\u0027],"},{"line_number":68,"context_line":"            \u0027id\u0027: values[\u0027id\u0027],"},{"line_number":69,"context_line":"            \u0027uuid\u0027: str(uuid.uuid4()),"},{"line_number":70,"context_line":"            \u0027reservation_id\u0027: utils.generate_uid(\u0027r\u0027),"},{"line_number":71,"context_line":"            \u0027image_ref\u0027: values[\u0027image_ref\u0027],"},{"line_number":72,"context_line":"            \u0027kernel_id\u0027: values[\u0027kernel_id\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPX%2F%2F%2Bd0%3D","line":69,"in_reply_to":"AAAAPX%2F%2F%2B20%3D","updated":"2013-06-04 19:12:11.000000000","message":"I had to do this to make the poll_rebooting_instances tests I added work. When rpcapi does jsonutils.to_primitive(), the model has to behave like a dict (FakeModel wasn\u0027t iterable) and content be JSON serializable (UUID object wasn\u0027t JSON serializable, raised TypeError).\n\nI think it was an error in general that the UUID object wasn\u0027t being stored as the string representation. (see https://github.com/openstack/nova/blob/master/nova/compute/api.py#L920).","commit_id":"3561911f281e4974e6ba511de6419ed30126872f"}],"nova/tests/virt/vmwareapi/test_vmwareapi.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d6adf22f8d2baac396036f92b934c5eccde5a6d4","unresolved":false,"context_lines":[{"line_number":260,"context_line":"    def test_poll_rebooting_instances(self):"},{"line_number":261,"context_line":"        self._create_vm()"},{"line_number":262,"context_line":"        instances \u003d [self.instance]"},{"line_number":263,"context_line":"        self.conn.poll_rebooting_instances(60, instances)"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"    def test_reboot_not_poweredon(self):"},{"line_number":266,"context_line":"        self._create_vm()"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPX%2F%2F%2B24%3D","line":263,"updated":"2013-06-04 16:23:06.000000000","message":"Same comment as the equivalent xenapi test.","commit_id":"3561911f281e4974e6ba511de6419ed30126872f"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"741517353a7a74c595248bbd4ff0a7e40d208be8","unresolved":false,"context_lines":[{"line_number":258,"context_line":"                          \u0027SOFT\u0027)"},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"    def test_poll_rebooting_instances(self):"},{"line_number":261,"context_line":"        from nova.compute import api as compute_api"},{"line_number":262,"context_line":"        self.mox.StubOutWithMock(compute_api.API, \u0027reboot\u0027)"},{"line_number":263,"context_line":"        from nova.conductor import api as conductor_api"},{"line_number":264,"context_line":"        self.mox.StubOutWithMock(conductor_api.API, \u0027compute_reboot\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAPX%2F%2F2Sg%3D","line":261,"updated":"2013-06-07 16:44:56.000000000","message":"Why are you importing these here?","commit_id":"9ef018b4e27043ccd9e52e1a6c30f1765e64c126"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"855381d065a067bb576c0717cd7f807d7ee56c3b","unresolved":false,"context_lines":[{"line_number":258,"context_line":"                          \u0027SOFT\u0027)"},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"    def test_poll_rebooting_instances(self):"},{"line_number":261,"context_line":"        from nova.compute import api as compute_api"},{"line_number":262,"context_line":"        self.mox.StubOutWithMock(compute_api.API, \u0027reboot\u0027)"},{"line_number":263,"context_line":"        from nova.conductor import api as conductor_api"},{"line_number":264,"context_line":"        self.mox.StubOutWithMock(conductor_api.API, \u0027compute_reboot\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAPX%2F%2F2K8%3D","line":261,"in_reply_to":"AAAAPX%2F%2F2Sg%3D","updated":"2013-06-07 17:31:17.000000000","message":"I was thinking not to affect the whole file for one test, but made a mistake in test_xenapi and double imported compute_api (error prone), and future tests may need the modules. I\u0027ll change it.","commit_id":"9ef018b4e27043ccd9e52e1a6c30f1765e64c126"}],"nova/tests/virt/xenapi/test_xenapi.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d6adf22f8d2baac396036f92b934c5eccde5a6d4","unresolved":false,"context_lines":[{"line_number":1088,"context_line":"        instance \u003d self._create_instance()"},{"line_number":1089,"context_line":"        instances \u003d [instance]"},{"line_number":1090,"context_line":"        conn \u003d xenapi_conn.XenAPIDriver(fake.FakeVirtAPI(), False)"},{"line_number":1091,"context_line":"        conn.poll_rebooting_instances(60, instances)"},{"line_number":1092,"context_line":""},{"line_number":1093,"context_line":"    def test_reboot_soft(self):"},{"line_number":1094,"context_line":"        instance \u003d self._create_instance()"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPX%2F%2F%2B3E%3D","line":1091,"updated":"2013-06-04 16:23:06.000000000","message":"How does this verify that it doesn\u0027t hit the database or that it uses the new method?","commit_id":"3561911f281e4974e6ba511de6419ed30126872f"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"91af62d7b8ebd8feea9aca11ffc6f846780879a7","unresolved":false,"context_lines":[{"line_number":1088,"context_line":"        instance \u003d self._create_instance()"},{"line_number":1089,"context_line":"        instances \u003d [instance]"},{"line_number":1090,"context_line":"        conn \u003d xenapi_conn.XenAPIDriver(fake.FakeVirtAPI(), False)"},{"line_number":1091,"context_line":"        conn.poll_rebooting_instances(60, instances)"},{"line_number":1092,"context_line":""},{"line_number":1093,"context_line":"    def test_reboot_soft(self):"},{"line_number":1094,"context_line":"        instance \u003d self._create_instance()"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPX%2F%2F%2Bdk%3D","line":1091,"in_reply_to":"AAAAPX%2F%2F%2B3E%3D","updated":"2013-06-04 19:12:11.000000000","message":"It doesn\u0027t -- I overlooked adding a check for that.\n\nThe tests only test poll_rebooting_instances in general.","commit_id":"3561911f281e4974e6ba511de6419ed30126872f"},{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"92e7e2eed95ce66afb14d861c82da2b5f24cffa9","unresolved":false,"context_lines":[{"line_number":20,"context_line":"import base64"},{"line_number":21,"context_line":"import contextlib"},{"line_number":22,"context_line":"import functools"},{"line_number":23,"context_line":"import mox"},{"line_number":24,"context_line":"import os"},{"line_number":25,"context_line":"import re"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAPX%2F%2F2Kk%3D","line":23,"updated":"2013-06-07 17:34:14.000000000","message":"mox goes down the in third-party block with oslo","commit_id":"f61fb2051bc39dda7e067227d42efa09c860ff5c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"b689a312e8416f773f1e950271a624dd3517654e","unresolved":false,"context_lines":[{"line_number":1092,"context_line":"        self.mox.StubOutWithMock(conductor_api.API, \u0027compute_reboot\u0027)"},{"line_number":1093,"context_line":"        conductor_api.API.compute_reboot(mox.IgnoreArg(), mox.IgnoreArg(),"},{"line_number":1094,"context_line":"                                         mox.IgnoreArg())"},{"line_number":1095,"context_line":"        # mox will detect if compute_api.API.reboot is called unexpectedly"},{"line_number":1096,"context_line":"        self.mox.ReplayAll()"},{"line_number":1097,"context_line":"        instance \u003d self._create_instance()"},{"line_number":1098,"context_line":"        instances \u003d [instance]"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAPn%2F%2FnVA%3D","line":1095,"updated":"2013-06-26 17:54:42.000000000","message":"not sure I like adding this extra mock, but I can\u0027t think of a better way","commit_id":"2b4454b1167a7870bc152e43d3b62dca1325cff2"}],"nova/virt/vmwareapi/vmops.py":[{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"cef10d7839c9ee8932b1cefaa1891679f1bbc3b6","unresolved":false,"context_lines":[{"line_number":1050,"context_line":"            # in its driver.reboot"},{"line_number":1051,"context_line":"            nw_info \u003d self.network_api.get_instance_nw_info("},{"line_number":1052,"context_line":"                ctxt, instance, self.conductor_api)"},{"line_number":1053,"context_line":"            self.reboot(instance, nw_info)"},{"line_number":1054,"context_line":""},{"line_number":1055,"context_line":"    def get_info(self, instance):"},{"line_number":1056,"context_line":"        \"\"\"Return data about the VM instance.\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAPH%2F%2FdXw%3D","line":1053,"updated":"2013-06-03 14:51:04.000000000","message":"How about adding reboot to the conductor API?  That way you\u0027re not bypassing the extra logic for reboot in the compute API.\n\nFor a similar example, look at \u0027compute_stop\u0027 in the conductor API.","commit_id":"adb9fc829b1384c9345a01d03482cc6b5692d463"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"39d0c8704b5aac715bf0547e13fb1af4ec4f1807","unresolved":false,"context_lines":[{"line_number":1050,"context_line":"            # in its driver.reboot"},{"line_number":1051,"context_line":"            nw_info \u003d self.network_api.get_instance_nw_info("},{"line_number":1052,"context_line":"                ctxt, instance, self.conductor_api)"},{"line_number":1053,"context_line":"            self.reboot(instance, nw_info)"},{"line_number":1054,"context_line":""},{"line_number":1055,"context_line":"    def get_info(self, instance):"},{"line_number":1056,"context_line":"        \"\"\"Return data about the VM instance.\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAPH%2F%2Fb4s%3D","line":1053,"in_reply_to":"AAAAPH%2F%2FdXw%3D","updated":"2013-06-04 00:46:28.000000000","message":"Thanks for mentioning the example. I\u0027ll give it a go.","commit_id":"adb9fc829b1384c9345a01d03482cc6b5692d463"}]}
