)]}'
{"nova/tests/network/test_manager.py":[{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"6bbb090cb5a9aa68d3676b725bf961ceadaea1a3","unresolved":false,"context_lines":[{"line_number":1043,"context_line":"        address \u003d \u00271.2.3.4\u0027"},{"line_number":1044,"context_line":"        float_ip \u003d db.floating_ip_create(context1.elevated(),"},{"line_number":1045,"context_line":"                                         {\u0027address\u0027: address,"},{"line_number":1046,"context_line":"                                         \u0027project_id\u0027: context1.project_id})"},{"line_number":1047,"context_line":"        float_addr \u003d float_ip[\u0027address\u0027]"},{"line_number":1048,"context_line":""},{"line_number":1049,"context_line":"        instance \u003d db.instance_create(context1,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2FnHY%3D","line":1046,"updated":"2013-05-01 23:00:52.000000000","message":"one space too few -- the \u0027 should line up here","commit_id":"95fa7374614910512e57008bb4dcd277bc5c55d9"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"6695d6931c0e5b85e741e525a61caf63349af1d0","unresolved":false,"context_lines":[{"line_number":1043,"context_line":"        address \u003d \u00271.2.3.4\u0027"},{"line_number":1044,"context_line":"        float_ip \u003d db.floating_ip_create(context1.elevated(),"},{"line_number":1045,"context_line":"                                         {\u0027address\u0027: address,"},{"line_number":1046,"context_line":"                                         \u0027project_id\u0027: context1.project_id})"},{"line_number":1047,"context_line":"        float_addr \u003d float_ip[\u0027address\u0027]"},{"line_number":1048,"context_line":""},{"line_number":1049,"context_line":"        instance \u003d db.instance_create(context1,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2FmuU%3D","line":1046,"in_reply_to":"AAAAOn%2F%2FnHY%3D","updated":"2013-05-02 04:41:39.000000000","message":"Done","commit_id":"95fa7374614910512e57008bb4dcd277bc5c55d9"}],"nova/tests/test_db_api.py":[{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"6bbb090cb5a9aa68d3676b725bf961ceadaea1a3","unresolved":false,"context_lines":[{"line_number":2340,"context_line":"            self._create_inst_type_access(*v)"},{"line_number":2341,"context_line":""},{"line_number":2342,"context_line":"        db.instance_type_destroy(self.ctxt, inst_type1[\u0027name\u0027])"},{"line_number":2343,"context_line":""},{"line_number":2344,"context_line":"        p \u003d (self.ctxt, inst_type1[\u0027flavorid\u0027])"},{"line_number":2345,"context_line":"        self.assertEqual(0, len(db.instance_type_access_get_by_flavor_id(*p)))"},{"line_number":2346,"context_line":"        p \u003d (self.ctxt, inst_type2[\u0027flavorid\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2FnHU%3D","side":"PARENT","line":2343,"updated":"2013-05-01 23:00:52.000000000","message":"why delete this blank line?","commit_id":"05aec6a9a3c0a844ce718da6e4ae82ed1f4e33ec"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"6695d6931c0e5b85e741e525a61caf63349af1d0","unresolved":false,"context_lines":[{"line_number":2340,"context_line":"            self._create_inst_type_access(*v)"},{"line_number":2341,"context_line":""},{"line_number":2342,"context_line":"        db.instance_type_destroy(self.ctxt, inst_type1[\u0027name\u0027])"},{"line_number":2343,"context_line":""},{"line_number":2344,"context_line":"        p \u003d (self.ctxt, inst_type1[\u0027flavorid\u0027])"},{"line_number":2345,"context_line":"        self.assertEqual(0, len(db.instance_type_access_get_by_flavor_id(*p)))"},{"line_number":2346,"context_line":"        p \u003d (self.ctxt, inst_type2[\u0027flavorid\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2Fmtw%3D","side":"PARENT","line":2343,"in_reply_to":"AAAAOn%2F%2FnHU%3D","updated":"2013-05-02 04:41:39.000000000","message":"accidentally, thanks","commit_id":"05aec6a9a3c0a844ce718da6e4ae82ed1f4e33ec"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"6bbb090cb5a9aa68d3676b725bf961ceadaea1a3","unresolved":false,"context_lines":[{"line_number":2606,"context_line":"            \u0027interface\u0027: \u0027fake_interface\u0027,"},{"line_number":2607,"context_line":"        }"},{"line_number":2608,"context_line":""},{"line_number":2609,"context_line":"    def _create_floating_ip(self, values):"},{"line_number":2610,"context_line":"        if not values:"},{"line_number":2611,"context_line":"            values \u003d {}"},{"line_number":2612,"context_line":"        vals \u003d self._get_base_values()"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2FnF8%3D","line":2609,"updated":"2013-05-01 23:00:52.000000000","message":"why not use a parameter default here? Eg,\n\n  def _create_floating_ip(self, values\u003d{}):\n    vals \u003d self._get_base_values()\n    if values:\n      vals.update(values)\n    return db.floating_ip_create(self.ctxt, vals)","commit_id":"95fa7374614910512e57008bb4dcd277bc5c55d9"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"6695d6931c0e5b85e741e525a61caf63349af1d0","unresolved":false,"context_lines":[{"line_number":2606,"context_line":"            \u0027interface\u0027: \u0027fake_interface\u0027,"},{"line_number":2607,"context_line":"        }"},{"line_number":2608,"context_line":""},{"line_number":2609,"context_line":"    def _create_floating_ip(self, values):"},{"line_number":2610,"context_line":"        if not values:"},{"line_number":2611,"context_line":"            values \u003d {}"},{"line_number":2612,"context_line":"        vals \u003d self._get_base_values()"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2Fmtc%3D","line":2609,"in_reply_to":"AAAAOn%2F%2FnF8%3D","updated":"2013-05-02 04:41:39.000000000","message":"Oh, this is very nasty thing\u003d) alaski give me next url to read about this:\n\nhttp://stackoverflow.com/questions/1132941/least-astonishment-in-python-the-mutable-default-argument\n\nSo I would prefer to avoid using of such thing even in tests\u003d)","commit_id":"95fa7374614910512e57008bb4dcd277bc5c55d9"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"6bbb090cb5a9aa68d3676b725bf961ceadaea1a3","unresolved":false,"context_lines":[{"line_number":2654,"context_line":"        project_id \u003d self._get_base_values()[\u0027project_id\u0027]"},{"line_number":2655,"context_line":"        for pool, addresses in pools.iteritems():"},{"line_number":2656,"context_line":"            alloc_addrs \u003d []"},{"line_number":2657,"context_line":"            for i in xrange(len(addresses)):"},{"line_number":2658,"context_line":"                float_addr \u003d db.floating_ip_allocate_address(self.ctxt,"},{"line_number":2659,"context_line":"                                                             project_id, pool)"},{"line_number":2660,"context_line":"                alloc_addrs.append(float_addr)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2FnFY%3D","line":2657,"updated":"2013-05-01 23:00:52.000000000","message":"Since you\u0027re not accessing addresses by index, using\n  for i in xrange\nis misleading - I immediately tried to see what you were using \"i\" for :)\n\nPerhaps you could just do this?\n  for i in addresses:","commit_id":"95fa7374614910512e57008bb4dcd277bc5c55d9"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"6695d6931c0e5b85e741e525a61caf63349af1d0","unresolved":false,"context_lines":[{"line_number":2654,"context_line":"        project_id \u003d self._get_base_values()[\u0027project_id\u0027]"},{"line_number":2655,"context_line":"        for pool, addresses in pools.iteritems():"},{"line_number":2656,"context_line":"            alloc_addrs \u003d []"},{"line_number":2657,"context_line":"            for i in xrange(len(addresses)):"},{"line_number":2658,"context_line":"                float_addr \u003d db.floating_ip_allocate_address(self.ctxt,"},{"line_number":2659,"context_line":"                                                             project_id, pool)"},{"line_number":2660,"context_line":"                alloc_addrs.append(float_addr)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2FmtQ%3D","line":2657,"in_reply_to":"AAAAOn%2F%2FnFY%3D","updated":"2013-05-02 04:41:39.000000000","message":"Done","commit_id":"95fa7374614910512e57008bb4dcd277bc5c55d9"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"6bbb090cb5a9aa68d3676b725bf961ceadaea1a3","unresolved":false,"context_lines":[{"line_number":2663,"context_line":"    def test_floating_ip_allocate_address_no_more_floating_ips(self):"},{"line_number":2664,"context_line":"        self.assertRaises(exception.NoMoreFloatingIps,"},{"line_number":2665,"context_line":"                          db.floating_ip_allocate_address,"},{"line_number":2666,"context_line":"                          self.ctxt, \u0027does_not_matter\u0027, \u0027there_is_no_such\u0027)"},{"line_number":2667,"context_line":""},{"line_number":2668,"context_line":"    def test_floating_ip_allocate_not_authorized(self):"},{"line_number":2669,"context_line":"        ctxt \u003d context.RequestContext(user_id\u003d\u0027a\u0027, project_id\u003d\u0027abc\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2FnE8%3D","line":2666,"updated":"2013-05-01 23:00:52.000000000","message":"for readability, please indicate what these place holders are for, eg:\n\n  self.ctxt, \u0027no_such_project\u0027, \u0027no_such_pool\u0027)","commit_id":"95fa7374614910512e57008bb4dcd277bc5c55d9"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"6695d6931c0e5b85e741e525a61caf63349af1d0","unresolved":false,"context_lines":[{"line_number":2663,"context_line":"    def test_floating_ip_allocate_address_no_more_floating_ips(self):"},{"line_number":2664,"context_line":"        self.assertRaises(exception.NoMoreFloatingIps,"},{"line_number":2665,"context_line":"                          db.floating_ip_allocate_address,"},{"line_number":2666,"context_line":"                          self.ctxt, \u0027does_not_matter\u0027, \u0027there_is_no_such\u0027)"},{"line_number":2667,"context_line":""},{"line_number":2668,"context_line":"    def test_floating_ip_allocate_not_authorized(self):"},{"line_number":2669,"context_line":"        ctxt \u003d context.RequestContext(user_id\u003d\u0027a\u0027, project_id\u003d\u0027abc\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2FmtI%3D","line":2666,"in_reply_to":"AAAAOn%2F%2FnE8%3D","updated":"2013-05-02 04:41:39.000000000","message":"yeah you are right, fixed","commit_id":"95fa7374614910512e57008bb4dcd277bc5c55d9"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"6bbb090cb5a9aa68d3676b725bf961ceadaea1a3","unresolved":false,"context_lines":[{"line_number":2670,"context_line":"                                      is_admin\u003dFalse)"},{"line_number":2671,"context_line":"        self.assertRaises(exception.NotAuthorized,"},{"line_number":2672,"context_line":"                          db.floating_ip_allocate_address,"},{"line_number":2673,"context_line":"                          ctxt, \u0027def\u0027, \u0027does_not_matter\u0027)"},{"line_number":2674,"context_line":""},{"line_number":2675,"context_line":"    def _get_existing_ips(self):"},{"line_number":2676,"context_line":"        return [ip[\u0027address\u0027] for ip in db.floating_ip_get_all(self.ctxt)]"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2FnE4%3D","line":2673,"updated":"2013-05-01 23:00:52.000000000","message":"same","commit_id":"95fa7374614910512e57008bb4dcd277bc5c55d9"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"6695d6931c0e5b85e741e525a61caf63349af1d0","unresolved":false,"context_lines":[{"line_number":2670,"context_line":"                                      is_admin\u003dFalse)"},{"line_number":2671,"context_line":"        self.assertRaises(exception.NotAuthorized,"},{"line_number":2672,"context_line":"                          db.floating_ip_allocate_address,"},{"line_number":2673,"context_line":"                          ctxt, \u0027def\u0027, \u0027does_not_matter\u0027)"},{"line_number":2674,"context_line":""},{"line_number":2675,"context_line":"    def _get_existing_ips(self):"},{"line_number":2676,"context_line":"        return [ip[\u0027address\u0027] for ip in db.floating_ip_get_all(self.ctxt)]"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2FmtE%3D","line":2673,"in_reply_to":"AAAAOn%2F%2FnE4%3D","updated":"2013-05-02 04:41:39.000000000","message":"Done","commit_id":"95fa7374614910512e57008bb4dcd277bc5c55d9"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"6bbb090cb5a9aa68d3676b725bf961ceadaea1a3","unresolved":false,"context_lines":[{"line_number":2689,"context_line":"        db.floating_ip_bulk_create(self.ctxt, map(prepare_ips, ips))"},{"line_number":2690,"context_line":"        self.assertRaises(exception.FloatingIpExists,"},{"line_number":2691,"context_line":"                          db.floating_ip_bulk_create,"},{"line_number":2692,"context_line":"                          self.ctxt, map(prepare_ips, [\u00271.1.1.5\u0027, \u00271.1.1.4\u0027]))"},{"line_number":2693,"context_line":""},{"line_number":2694,"context_line":"    def test_floating_ip_bulk_destroy(self):"},{"line_number":2695,"context_line":"        ips_for_delete \u003d []"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2FnE0%3D","line":2692,"updated":"2013-05-01 23:00:52.000000000","message":"This is good, but I think you should also check after this to ensure that \u00271.1.1.5\u0027 was not created.","commit_id":"95fa7374614910512e57008bb4dcd277bc5c55d9"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"6695d6931c0e5b85e741e525a61caf63349af1d0","unresolved":false,"context_lines":[{"line_number":2689,"context_line":"        db.floating_ip_bulk_create(self.ctxt, map(prepare_ips, ips))"},{"line_number":2690,"context_line":"        self.assertRaises(exception.FloatingIpExists,"},{"line_number":2691,"context_line":"                          db.floating_ip_bulk_create,"},{"line_number":2692,"context_line":"                          self.ctxt, map(prepare_ips, [\u00271.1.1.5\u0027, \u00271.1.1.4\u0027]))"},{"line_number":2693,"context_line":""},{"line_number":2694,"context_line":"    def test_floating_ip_bulk_destroy(self):"},{"line_number":2695,"context_line":"        ips_for_delete \u003d []"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2Fmss%3D","line":2692,"in_reply_to":"AAAAOn%2F%2FnE0%3D","updated":"2013-05-02 04:41:39.000000000","message":"yes we should check it.","commit_id":"95fa7374614910512e57008bb4dcd277bc5c55d9"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"6bbb090cb5a9aa68d3676b725bf961ceadaea1a3","unresolved":false,"context_lines":[{"line_number":2698,"context_line":"        def create_ips(i):"},{"line_number":2699,"context_line":"            return [{\u0027address\u0027: \u00271.1.%s.%s\u0027 % (i, k)} for k in xrange(1, 256)]"},{"line_number":2700,"context_line":""},{"line_number":2701,"context_line":"        # NOTE(boris-42): Create more then 256 ip to check tshat"},{"line_number":2702,"context_line":"        #                 _ip_range_splitter works properly."},{"line_number":2703,"context_line":"        for i in xrange(1, 3):"},{"line_number":2704,"context_line":"            ips_for_delete.extend(create_ips(i))"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2FnEw%3D","line":2701,"updated":"2013-05-01 23:00:52.000000000","message":"typo: s/tshat/that/","commit_id":"95fa7374614910512e57008bb4dcd277bc5c55d9"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"6695d6931c0e5b85e741e525a61caf63349af1d0","unresolved":false,"context_lines":[{"line_number":2698,"context_line":"        def create_ips(i):"},{"line_number":2699,"context_line":"            return [{\u0027address\u0027: \u00271.1.%s.%s\u0027 % (i, k)} for k in xrange(1, 256)]"},{"line_number":2700,"context_line":""},{"line_number":2701,"context_line":"        # NOTE(boris-42): Create more then 256 ip to check tshat"},{"line_number":2702,"context_line":"        #                 _ip_range_splitter works properly."},{"line_number":2703,"context_line":"        for i in xrange(1, 3):"},{"line_number":2704,"context_line":"            ips_for_delete.extend(create_ips(i))"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2FmtA%3D","line":2701,"in_reply_to":"AAAAOn%2F%2FnEw%3D","updated":"2013-05-02 04:41:39.000000000","message":"saving without ctrl\u003d)","commit_id":"95fa7374614910512e57008bb4dcd277bc5c55d9"}]}
