)]}'
{"nova/compute/manager.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"e0607263f858e442da64fde4a05e4928d2ce501c","unresolved":false,"context_lines":[{"line_number":871,"context_line":"        return self.driver.refresh_security_group_members(security_group_id)"},{"line_number":872,"context_line":""},{"line_number":873,"context_line":"    @wrap_exception()"},{"line_number":874,"context_line":"    @object_compat"},{"line_number":875,"context_line":"    def refresh_instance_security_rules(self, context, instance):"},{"line_number":876,"context_line":"        \"\"\"Tell the virtualization driver to refresh security rules for"},{"line_number":877,"context_line":"        an instance."}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAUX%2F%2FWrE%3D","line":874,"updated":"2014-02-13 19:16:02.000000000","message":"This needs to go above wrap_exception for proper exception handling","commit_id":"fe66f5b2c8a038de4e475af72fa0a9c68871d5d6"},{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"ee1d85ba057b2e0f792282a4372084408861ba75","unresolved":false,"context_lines":[{"line_number":871,"context_line":"        return self.driver.refresh_security_group_members(security_group_id)"},{"line_number":872,"context_line":""},{"line_number":873,"context_line":"    @wrap_exception()"},{"line_number":874,"context_line":"    @object_compat"},{"line_number":875,"context_line":"    def refresh_instance_security_rules(self, context, instance):"},{"line_number":876,"context_line":"        \"\"\"Tell the virtualization driver to refresh security rules for"},{"line_number":877,"context_line":"        an instance."}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAUX%2F%2FP20%3D","line":874,"in_reply_to":"AAAAUX%2F%2FWrE%3D","updated":"2014-02-14 15:13:06.000000000","message":"Done","commit_id":"fe66f5b2c8a038de4e475af72fa0a9c68871d5d6"}],"nova/compute/rpcapi.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"e0607263f858e442da64fde4a05e4928d2ce501c","unresolved":false,"context_lines":[{"line_number":912,"context_line":""},{"line_number":913,"context_line":"        3.0 - Identical to 2.x, but has to be bumped at the same time as the"},{"line_number":914,"context_line":"              compute API since it\u0027s all together on the server side."},{"line_number":915,"context_line":"        3.11 - Make refresh_instance_security_rules() use new-world objects"},{"line_number":916,"context_line":"    \u0027\u0027\u0027"},{"line_number":917,"context_line":""},{"line_number":918,"context_line":"    def __init__(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAUX%2F%2FWqU%3D","line":915,"updated":"2014-02-13 19:16:02.000000000","message":"Hmm, this looks wrong to me.  I think this should just be 3.1, no?","commit_id":"fe66f5b2c8a038de4e475af72fa0a9c68871d5d6"},{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"ee1d85ba057b2e0f792282a4372084408861ba75","unresolved":false,"context_lines":[{"line_number":912,"context_line":""},{"line_number":913,"context_line":"        3.0 - Identical to 2.x, but has to be bumped at the same time as the"},{"line_number":914,"context_line":"              compute API since it\u0027s all together on the server side."},{"line_number":915,"context_line":"        3.11 - Make refresh_instance_security_rules() use new-world objects"},{"line_number":916,"context_line":"    \u0027\u0027\u0027"},{"line_number":917,"context_line":""},{"line_number":918,"context_line":"    def __init__(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAUX%2F%2FPx0%3D","line":915,"in_reply_to":"AAAAUX%2F%2FWqU%3D","updated":"2014-02-14 15:13:06.000000000","message":"I think this version needs to be in sync with ComputeAPI since they share the same target.","commit_id":"fe66f5b2c8a038de4e475af72fa0a9c68871d5d6"}],"nova/tests/unit/compute/test_compute.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"5e7950364c80cd010577f8b90109ed855fad0a40","unresolved":false,"context_lines":[{"line_number":9660,"context_line":"    def test_secgroup_refresh(self):"},{"line_number":9661,"context_line":"        instance \u003d self._create_fake_instance_obj()"},{"line_number":9662,"context_line":""},{"line_number":9663,"context_line":"        self.mox.StubOutWithMock(instance_obj.InstanceList,"},{"line_number":9664,"context_line":"                                 \u0027get_by_grantee_security_group_ids\u0027)"},{"line_number":9665,"context_line":"        instance_obj.InstanceList.get_by_grantee_security_group_ids("},{"line_number":9666,"context_line":"            self.context, [1]).AndReturn([instance])"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa1b9901_b293e64e","line":9663,"updated":"2015-08-19 10:43:10.000000000","message":"We don\u0027t allow new tests using mox.\n\nPlease have all new tests using Mock.","commit_id":"cd096a9aa2e8ffdc5ece46aef716b15355790515"},{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"b2302b311d77a14ca16483a38d272bf107ed4e71","unresolved":false,"context_lines":[{"line_number":9660,"context_line":"    def test_secgroup_refresh(self):"},{"line_number":9661,"context_line":"        instance \u003d self._create_fake_instance_obj()"},{"line_number":9662,"context_line":""},{"line_number":9663,"context_line":"        self.mox.StubOutWithMock(instance_obj.InstanceList,"},{"line_number":9664,"context_line":"                                 \u0027get_by_grantee_security_group_ids\u0027)"},{"line_number":9665,"context_line":"        instance_obj.InstanceList.get_by_grantee_security_group_ids("},{"line_number":9666,"context_line":"            self.context, [1]).AndReturn([instance])"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa1b9901_0015983e","line":9663,"in_reply_to":"fa1b9901_b293e64e","updated":"2015-08-19 11:20:20.000000000","message":"Absolutely, this is a very old patch that I started to work on again.","commit_id":"cd096a9aa2e8ffdc5ece46aef716b15355790515"}],"nova/tests/unit/objects/test_instance.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"41039ec60b7fa7b38e190b31dc8c360e4d511575","unresolved":false,"context_lines":[{"line_number":1542,"context_line":"            ]"},{"line_number":1543,"context_line":""},{"line_number":1544,"context_line":"        with mock.patch.object("},{"line_number":1545,"context_line":"            db, \u0027instance_get_all_by_grantee_security_groups\u0027) as igabgsg:"},{"line_number":1546,"context_line":"            igabgsg.return_value \u003d fake_instances"},{"line_number":1547,"context_line":"            secgroup_ids \u003d [1]"},{"line_number":1548,"context_line":"            instances \u003d objects.InstanceList.get_by_grantee_security_group_ids("}],"source_content_type":"text/x-python","patch_set":8,"id":"fa1b9901_e7b18548","line":1545,"range":{"start_line":1545,"start_character":66,"end_line":1545,"end_character":73},"updated":"2015-08-19 17:45:40.000000000","message":"lol.","commit_id":"d61ac5834e717cdd602354b5029559481e18b9ef"}]}
