)]}'
{"nova/api/openstack/compute/helpers.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2b731198af3aee92f8e5c01973a74ae28b8a3c6c","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        operation_kwargs[\u0027auto_disk_config\u0027] \u003d auto_disk_config"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    if API_ACCESS_V4 in server_dict:"},{"line_number":66,"context_line":"        operation_kwargs[\u0027access_ip_v4\u0027] \u003d server_dict.pop(API_ACCESS_V4)"},{"line_number":67,"context_line":"    if API_ACCESS_V6 in server_dict:"},{"line_number":68,"context_line":"        operation_kwargs[\u0027access_ip_v6\u0027] \u003d server_dict.pop(API_ACCESS_V6)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3aaa91ec_d2c26b33","line":66,"range":{"start_line":66,"start_character":26,"end_line":66,"end_character":38},"updated":"2016-06-24 13:52:45.000000000","message":"we could make constants out of these keys, but meh","commit_id":"3aeaa15885de315ae2ad937bf492e69edaa3c97f"}],"nova/tests/unit/api/openstack/compute/test_access_ips.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"b72d92dcf87b6e5f96970c372c8d80a2b9cc1e39","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from nova.tests.unit.api.openstack import fakes"},{"line_number":20,"context_line":"from nova.tests.unit.image import fake"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"v4_key \u003d \"accessIPv4\""},{"line_number":23,"context_line":"v6_key \u003d \"accessIPv6\""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3aaa91ec_7c0d89e7","line":22,"updated":"2016-06-23 14:35:54.000000000","message":"nit: I quite like these being in all CAPs, but thats a bit old school.","commit_id":"656a3f4a174ad877151bca0612a8fa094793f34e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2b731198af3aee92f8e5c01973a74ae28b8a3c6c","unresolved":false,"context_lines":[{"line_number":217,"context_line":"        params \u003d {access_ips.AccessIPs.v4_key: \u0027192.168.0.10\u0027}"},{"line_number":218,"context_line":"        self._test_create(params)"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    def test_create_server_with_access_ip_pass_disabled(self):"},{"line_number":221,"context_line":"        # test with admin passwords disabled See lp bug 921814"},{"line_number":222,"context_line":"        self.flags(enable_instance_password\u003dFalse)"},{"line_number":223,"context_line":"        params \u003d {access_ips.AccessIPs.v4_key: \u0027192.168.0.10\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3aaa91ec_325daf79","side":"PARENT","line":220,"updated":"2016-06-24 13:52:45.000000000","message":"I\u0027m guessing this was removed because it\u0027s not really related to the accessIPs extension? But was the test a duplicate or copied somewhere else?","commit_id":"89a3cd86cc8c96a4dad66abaf776f7422592387f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"de5d16f90607c0c430ea2df01be90175d388c50b","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        self.controller \u003d servers_v21.ServersController("},{"line_number":50,"context_line":"                            extension_info\u003dext_info)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    # Note(gmann): V2.1 has Access IP as separate extension. This class tests"},{"line_number":53,"context_line":"    # calls controller directly so Access IPs will not be present in server"},{"line_number":54,"context_line":"    # response. Those are being tested in AccessIPsExtTest class."},{"line_number":55,"context_line":"    def _verify_update_access_ip(self, res_dict, params):"},{"line_number":56,"context_line":"        pass"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3aaa91ec_1265131d","line":54,"range":{"start_line":52,"start_character":4,"end_line":54,"end_character":65},"updated":"2016-06-24 13:54:42.000000000","message":"Remove this?","commit_id":"3aeaa15885de315ae2ad937bf492e69edaa3c97f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0aad491703ab29cbd508d3805f199a2f13bd9ee4","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        self.controller \u003d servers_v21.ServersController("},{"line_number":50,"context_line":"                            extension_info\u003dext_info)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    # Note(gmann): V2.1 has Access IP as separate extension. This class tests"},{"line_number":53,"context_line":"    # calls controller directly so Access IPs will not be present in server"},{"line_number":54,"context_line":"    # response. Those are being tested in AccessIPsExtTest class."},{"line_number":55,"context_line":"    def _verify_update_access_ip(self, res_dict, params):"}],"source_content_type":"text/x-python","patch_set":7,"id":"3aaa91ec_cdc2d033","line":52,"updated":"2016-06-24 14:04:12.000000000","message":"Can\u0027t this be removed now?","commit_id":"f1f1a337633564843195b25aff4c8f2797353a75"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"09f53d5f07d33e5c5f973ea1b4a95525fc93aa6f","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        self.controller \u003d servers_v21.ServersController("},{"line_number":50,"context_line":"                            extension_info\u003dext_info)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def _verify_update_access_ip(self, res_dict, params):"},{"line_number":53,"context_line":"        for key, value in params.items():"},{"line_number":54,"context_line":"            value \u003d value or \u0027\u0027"},{"line_number":55,"context_line":"            self.assertEqual(res_dict[\u0027server\u0027][key], value)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3aaa91ec_e39b5b16","line":52,"range":{"start_line":52,"start_character":8,"end_line":52,"end_character":32},"updated":"2016-06-24 14:40:56.000000000","message":"nit: we could just fold this into _test_update that uses it since we\u0027re no longer subclassing.","commit_id":"322240fa0bc4f244a08a46d17678a887633ee1c7"}],"nova/tests/unit/api/openstack/compute/test_server_actions.py":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"8c0e879e280eae1bdbd4d0bd4cbbe69c2665d8b2","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        if value is not None:"},{"line_number":109,"context_line":"            compute_api.API.rebuild(context, mox.IgnoreArg(), image_ref,"},{"line_number":110,"context_line":"                                    mox.IgnoreArg(),"},{"line_number":111,"context_line":"                                    preserve_ephemeral\u003dvalue)"},{"line_number":112,"context_line":"        else:"},{"line_number":113,"context_line":"            compute_api.API.rebuild(context, mox.IgnoreArg(), image_ref,"},{"line_number":114,"context_line":"                                    mox.IgnoreArg())"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a9d85d2_8812f8b2","line":111,"updated":"2016-06-20 20:53:00.000000000","message":"these changes are unneeded and need to be reverted","commit_id":"29a4ef218ed3a5f11d3909561802ed90a42f4ae7"}]}
