)]}'
{"nova/compute/api.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"832cf538a2453067885acc3196ec4252a099efb2","unresolved":false,"context_lines":[{"line_number":4167,"context_line":"            context, id, columns_to_join\u003d[\u0027instances\u0027])"},{"line_number":4168,"context_line":""},{"line_number":4169,"context_line":"        for instance in security_group[\u0027instances\u0027]:"},{"line_number":4170,"context_line":"            if isinstance(instance, dict):"},{"line_number":4171,"context_line":"                instance \u003d objects.Instance._from_db_object("},{"line_number":4172,"context_line":"                    context, objects.Instance(), instance, [])"},{"line_number":4173,"context_line":"            if instance.host is not None:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_7b3cbf2f","line":4170,"updated":"2015-08-03 13:51:29.000000000","message":"See below.","commit_id":"388692cb8d00f2ef63787ea67b8518e01a57cae8"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"88a9e6d0dd6b187f07f3e66b72c50ad721402c44","unresolved":false,"context_lines":[{"line_number":4167,"context_line":"            context, id, columns_to_join\u003d[\u0027instances\u0027])"},{"line_number":4168,"context_line":""},{"line_number":4169,"context_line":"        for instance in security_group[\u0027instances\u0027]:"},{"line_number":4170,"context_line":"            if isinstance(instance, dict):"},{"line_number":4171,"context_line":"                instance \u003d objects.Instance._from_db_object("},{"line_number":4172,"context_line":"                    context, objects.Instance(), instance, [])"},{"line_number":4173,"context_line":"            if instance.host is not None:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_dee86119","line":4170,"in_reply_to":"1a4dcd0f_7b3cbf2f","updated":"2015-08-03 14:00:50.000000000","message":"Done","commit_id":"388692cb8d00f2ef63787ea67b8518e01a57cae8"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"832cf538a2453067885acc3196ec4252a099efb2","unresolved":false,"context_lines":[{"line_number":4201,"context_line":"        instances \u003d {}"},{"line_number":4202,"context_line":"        for security_group in security_groups:"},{"line_number":4203,"context_line":"            for instance in security_group[\u0027instances\u0027]:"},{"line_number":4204,"context_line":"                if isinstance(instance, dict):"},{"line_number":4205,"context_line":"                    instance \u003d objects.Instance._from_db_object("},{"line_number":4206,"context_line":"                        context, objects.Instance(), instance, [])"},{"line_number":4207,"context_line":"                if instance.uuid not in instances:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_fbba0fc0","line":4204,"updated":"2015-08-03 13:51:29.000000000","message":"Where is this still being called with a dict? If there is another place, then let\u0027s fix that too instead of doing this compatibility. This isn\u0027t an RPC interface, so we don\u0027t need to maintain compatibility.","commit_id":"388692cb8d00f2ef63787ea67b8518e01a57cae8"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"88a9e6d0dd6b187f07f3e66b72c50ad721402c44","unresolved":false,"context_lines":[{"line_number":4201,"context_line":"        instances \u003d {}"},{"line_number":4202,"context_line":"        for security_group in security_groups:"},{"line_number":4203,"context_line":"            for instance in security_group[\u0027instances\u0027]:"},{"line_number":4204,"context_line":"                if isinstance(instance, dict):"},{"line_number":4205,"context_line":"                    instance \u003d objects.Instance._from_db_object("},{"line_number":4206,"context_line":"                        context, objects.Instance(), instance, [])"},{"line_number":4207,"context_line":"                if instance.uuid not in instances:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_feed1d26","line":4204,"in_reply_to":"1a4dcd0f_fbba0fc0","updated":"2015-08-03 14:00:50.000000000","message":"Done","commit_id":"388692cb8d00f2ef63787ea67b8518e01a57cae8"}],"nova/compute/manager.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"832cf538a2453067885acc3196ec4252a099efb2","unresolved":false,"context_lines":[{"line_number":1327,"context_line":"        \"\"\""},{"line_number":1328,"context_line":"        return self.driver.refresh_security_group_members(security_group_id)"},{"line_number":1329,"context_line":""},{"line_number":1330,"context_line":"    @object_compat"},{"line_number":1331,"context_line":"    @wrap_exception()"},{"line_number":1332,"context_line":"    def refresh_instance_security_rules(self, context, instance):"},{"line_number":1333,"context_line":"        \"\"\"Tell the virtualization driver to refresh security rules for"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_7b235f06","side":"PARENT","line":1330,"updated":"2015-08-03 13:51:29.000000000","message":"You can\u0027t remove this until version 5.0","commit_id":"32aaeb3343c56682af3e1c0cc0ae95e1c6c6784f"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"88a9e6d0dd6b187f07f3e66b72c50ad721402c44","unresolved":false,"context_lines":[{"line_number":1327,"context_line":"        \"\"\""},{"line_number":1328,"context_line":"        return self.driver.refresh_security_group_members(security_group_id)"},{"line_number":1329,"context_line":""},{"line_number":1330,"context_line":"    @object_compat"},{"line_number":1331,"context_line":"    @wrap_exception()"},{"line_number":1332,"context_line":"    def refresh_instance_security_rules(self, context, instance):"},{"line_number":1333,"context_line":"        \"\"\"Tell the virtualization driver to refresh security rules for"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_3e52a5de","side":"PARENT","line":1330,"in_reply_to":"1a4dcd0f_7b235f06","updated":"2015-08-03 14:00:50.000000000","message":"Done","commit_id":"32aaeb3343c56682af3e1c0cc0ae95e1c6c6784f"}],"nova/compute/rpcapi.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"832cf538a2453067885acc3196ec4252a099efb2","unresolved":false,"context_lines":[{"line_number":929,"context_line":"        version \u003d \u00274.4\u0027"},{"line_number":930,"context_line":"        if not self.client.can_send_version(version):"},{"line_number":931,"context_line":"            version \u003d \u00274.0\u0027"},{"line_number":932,"context_line":"            instance \u003d jsonutils.to_primitive(instance)"},{"line_number":933,"context_line":"        cctxt \u003d self.client.prepare(server\u003d_compute_host(None, instance),"},{"line_number":934,"context_line":"                version\u003dversion)"},{"line_number":935,"context_line":"        cctxt.cast(ctxt, \u0027refresh_instance_security_rules\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_fb644f4a","line":932,"updated":"2015-08-03 13:51:29.000000000","message":"Please use nova.objects.obj_to_primitive() for this","commit_id":"388692cb8d00f2ef63787ea67b8518e01a57cae8"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"88a9e6d0dd6b187f07f3e66b72c50ad721402c44","unresolved":false,"context_lines":[{"line_number":929,"context_line":"        version \u003d \u00274.4\u0027"},{"line_number":930,"context_line":"        if not self.client.can_send_version(version):"},{"line_number":931,"context_line":"            version \u003d \u00274.0\u0027"},{"line_number":932,"context_line":"            instance \u003d jsonutils.to_primitive(instance)"},{"line_number":933,"context_line":"        cctxt \u003d self.client.prepare(server\u003d_compute_host(None, instance),"},{"line_number":934,"context_line":"                version\u003dversion)"},{"line_number":935,"context_line":"        cctxt.cast(ctxt, \u0027refresh_instance_security_rules\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_fe62fdac","line":932,"in_reply_to":"1a4dcd0f_fb644f4a","updated":"2015-08-03 14:00:50.000000000","message":"Done","commit_id":"388692cb8d00f2ef63787ea67b8518e01a57cae8"}],"nova/tests/unit/compute/test_compute_mgr.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"832cf538a2453067885acc3196ec4252a099efb2","unresolved":false,"context_lines":[{"line_number":2526,"context_line":"                               \u0027refresh_instance_security_rules\u0027) as mock_r:"},{"line_number":2527,"context_line":"            self.compute.refresh_instance_security_rules(self.context, inst)"},{"line_number":2528,"context_line":"            self.assertIsInstance(mock_r.call_args_list[0][0][0],"},{"line_number":2529,"context_line":"                                  objects.Instance)"},{"line_number":2530,"context_line":""},{"line_number":2531,"context_line":""},{"line_number":2532,"context_line":"class ComputeManagerBuildInstanceTestCase(test.NoDBTestCase):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_3bf9574e","side":"PARENT","line":2529,"updated":"2015-08-03 13:51:29.000000000","message":"You still need this test until we drop compatibility for the dict.","commit_id":"32aaeb3343c56682af3e1c0cc0ae95e1c6c6784f"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"88a9e6d0dd6b187f07f3e66b72c50ad721402c44","unresolved":false,"context_lines":[{"line_number":2526,"context_line":"                               \u0027refresh_instance_security_rules\u0027) as mock_r:"},{"line_number":2527,"context_line":"            self.compute.refresh_instance_security_rules(self.context, inst)"},{"line_number":2528,"context_line":"            self.assertIsInstance(mock_r.call_args_list[0][0][0],"},{"line_number":2529,"context_line":"                                  objects.Instance)"},{"line_number":2530,"context_line":""},{"line_number":2531,"context_line":""},{"line_number":2532,"context_line":"class ComputeManagerBuildInstanceTestCase(test.NoDBTestCase):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_1e76c93e","side":"PARENT","line":2529,"in_reply_to":"1a4dcd0f_3bf9574e","updated":"2015-08-03 14:00:50.000000000","message":"Done","commit_id":"32aaeb3343c56682af3e1c0cc0ae95e1c6c6784f"}]}
