)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a2be7efe6888181aec3edaebac09aae13a174940","unresolved":false,"context_lines":[{"line_number":7,"context_line":"hacking: Resolve E731 issues"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Most of these were introduced in"},{"line_number":10,"context_line":"I1ef4a23aa2bf5cb46b481045f3d968f62f74606d though I don\u0027t know how they"},{"line_number":11,"context_line":"weren\u0027t picked up before. Fix them now anyway."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I6d4c02025cf84572f2f62ac63dd706db9394849e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fce034c_88567a06","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":41},"updated":"2019-04-11 22:15:36.000000000","message":"eh?\n\nhttps://review.openstack.org/#/c/631179/ ?","commit_id":"c138cb845e8371b14f52b8148d33e32576fa058d"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a2be7efe6888181aec3edaebac09aae13a174940","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Most of these were introduced in"},{"line_number":10,"context_line":"I1ef4a23aa2bf5cb46b481045f3d968f62f74606d though I don\u0027t know how they"},{"line_number":11,"context_line":"weren\u0027t picked up before. Fix them now anyway."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I6d4c02025cf84572f2f62ac63dd706db9394849e"},{"line_number":14,"context_line":"Signed-off-by: Stephen Finucane \u003csfinucan@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fce034c_48409236","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":25},"updated":"2019-04-11 22:15:36.000000000","message":"because we weren\u0027t using hacking 1.0.0 before?","commit_id":"c138cb845e8371b14f52b8148d33e32576fa058d"}],"nova/compute/api.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"9472c98940f673f7aa4c96dc62efaa6957a47e3d","unresolved":false,"context_lines":[{"line_number":4884,"context_line":"        # out of the API."},{"line_number":4885,"context_line":"        raise exception.NovaException()"},{"line_number":4886,"context_line":""},{"line_number":4887,"context_line":"    is_uuid \u003d False"},{"line_number":4888,"context_line":"    if service_id is not None:"},{"line_number":4889,"context_line":"        is_uuid \u003d uuidutils.is_uuid_like(service_id)"},{"line_number":4890,"context_line":""},{"line_number":4891,"context_line":"    def lookup_fn(c):"},{"line_number":4892,"context_line":"        if service_id is not None:"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_f6970044","line":4889,"range":{"start_line":4887,"start_character":4,"end_line":4889,"end_character":52},"updated":"2019-06-14 18:49:25.000000000","message":"nit: is_uuid_like works on None, so this could be reduced to\n\n is_uuid \u003d uuidutils.is_uuid_like(service_id)","commit_id":"7863bcf6941007b3ec942a561aef856c038c07ea"}],"nova/db/sqlalchemy/api.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"9472c98940f673f7aa4c96dc62efaa6957a47e3d","unresolved":false,"context_lines":[{"line_number":5574,"context_line":""},{"line_number":5575,"context_line":"    if status_fn is None:"},{"line_number":5576,"context_line":"        def status_fn(m):"},{"line_number":5577,"context_line":"            return"},{"line_number":5578,"context_line":""},{"line_number":5579,"context_line":"    # Some things never get formally deleted, and thus deleted_at"},{"line_number":5580,"context_line":"    # is never set. So, prefer specific timestamp columns here"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_76855006","line":5577,"updated":"2019-06-14 18:49:25.000000000","message":"nit:\n\n return None\n\nalthough it was probably only lambda m: None because you can\u0027t do lambda: pass. So ignore me","commit_id":"7863bcf6941007b3ec942a561aef856c038c07ea"}],"nova/objects/host_mapping.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"9472c98940f673f7aa4c96dc62efaa6957a47e3d","unresolved":false,"context_lines":[{"line_number":241,"context_line":""},{"line_number":242,"context_line":"    if not status_fn:"},{"line_number":243,"context_line":"        def status_fn(x):"},{"line_number":244,"context_line":"            return None"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"    if cell_uuid:"},{"line_number":247,"context_line":"        cell_mappings \u003d [objects.CellMapping.get_by_uuid(ctxt, cell_uuid)]"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_168094f4","line":244,"updated":"2019-06-14 18:49:25.000000000","message":"ditto","commit_id":"7863bcf6941007b3ec942a561aef856c038c07ea"}],"nova/tests/functional/db/test_host_mapping.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"9472c98940f673f7aa4c96dc62efaa6957a47e3d","unresolved":false,"context_lines":[{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    def test_discover_hosts(self):"},{"line_number":182,"context_line":"        def status(m):"},{"line_number":183,"context_line":"            return"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":186,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_5697ec3a","line":183,"updated":"2019-06-14 18:49:25.000000000","message":"ditto","commit_id":"7863bcf6941007b3ec942a561aef856c038c07ea"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"9472c98940f673f7aa4c96dc62efaa6957a47e3d","unresolved":false,"context_lines":[{"line_number":197,"context_line":""},{"line_number":198,"context_line":"    def test_discover_hosts_one_cell(self):"},{"line_number":199,"context_line":"        def status(m):"},{"line_number":200,"context_line":"            return"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":203,"context_line":"        cells \u003d objects.CellMappingList.get_all(ctxt)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_769a3062","line":200,"updated":"2019-06-14 18:49:25.000000000","message":"ditto","commit_id":"7863bcf6941007b3ec942a561aef856c038c07ea"}],"nova/tests/unit/objects/test_flavor.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"ce83b380673c698d71978246ce9ea2b4e50403c7","unresolved":false,"context_lines":[{"line_number":361,"context_line":""},{"line_number":362,"context_line":"        # Test compatibility."},{"line_number":363,"context_line":"        flavor.description \u003d \u0027flavor descriptions are not backward compatible\u0027"},{"line_number":364,"context_line":"        flavor_primitive \u003d flavor.obj_to_primitive()"},{"line_number":365,"context_line":"        self.assertIn(\u0027description\u0027, flavor_primitive[\u0027nova_object.data\u0027])"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"        flavor.obj_make_compatible(flavor_primitive, \u00271.1\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fce034c_22bbcce2","line":364,"updated":"2019-04-13 00:38:27.000000000","message":"f me, I have no idea why this doesn\u0027t work, some more arcane ovo hocus pocus? But this works:\n\n diff --git a/nova/tests/unit/objects/test_flavor.py \n b/nova/tests/unit/objects/test_flavor.py\n index 86804aefa3..8d9d82f22a 100644\n --- a/nova/tests/unit/objects/test_flavor.py\n +++ b/nova/tests/unit/objects/test_flavor.py\n @@ -361,12 +361,15 @@ class TestFlavor(test_objects._LocalTest, _TestFlavor):\n  \n          # Test compatibility.\n          flavor.description \u003d \u0027flavor descriptions are not backward compatible\u0027\n -        flavor_primitive \u003d flavor.obj_to_primitive()\n -        self.assertIn(\u0027description\u0027, flavor_primitive[\u0027nova_object.data\u0027])\n +\n +        def data(prim):\n +            return prim[\u0027nova_object.data\u0027]\n +        flavor_primitive \u003d data(flavor.obj_to_primitive())\n +        self.assertIn(\u0027description\u0027, flavor_primitive)\n  \n          flavor.obj_make_compatible(flavor_primitive, \u00271.1\u0027)\n -        self.assertIn(\u0027name\u0027, flavor_primitive[\u0027nova_object.data\u0027])\n -        self.assertNotIn(\u0027description\u0027, \n flavor_primitive[\u0027nova_object.data\u0027])\n +        self.assertIn(\u0027name\u0027, flavor_primitive)\n +        self.assertNotIn(\u0027description\u0027, flavor_primitive)\n  \n  \n  class TestFlavorRemote(test_objects._RemoteTest, _TestFlavor):","commit_id":"3c74496d19beed40521def14a878e9c15d5e4a99"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9c5e8f220174ff40346d7091bc375f234360cf39","unresolved":false,"context_lines":[{"line_number":361,"context_line":""},{"line_number":362,"context_line":"        # Test compatibility."},{"line_number":363,"context_line":"        flavor.description \u003d \u0027flavor descriptions are not backward compatible\u0027"},{"line_number":364,"context_line":"        flavor_primitive \u003d flavor.obj_to_primitive()"},{"line_number":365,"context_line":"        self.assertIn(\u0027description\u0027, flavor_primitive[\u0027nova_object.data\u0027])"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"        flavor.obj_make_compatible(flavor_primitive, \u00271.1\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fce034c_4aea9f75","line":364,"in_reply_to":"3fce034c_22bbcce2","updated":"2019-04-15 10:51:58.000000000","message":"Turns out you have to call \u0027obj_make_compatible\u0027 on the \u0027nova_object.data\u0027 field. I\u0027d missed that here","commit_id":"3c74496d19beed40521def14a878e9c15d5e4a99"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"9472c98940f673f7aa4c96dc62efaa6957a47e3d","unresolved":false,"context_lines":[{"line_number":8943,"context_line":"                fileutils.ensure_tree(inst_base)"},{"line_number":8944,"context_line":""},{"line_number":8945,"context_line":"            def on_execute(process):"},{"line_number":8946,"context_line":"                self.job_tracker.add_job(instance, process.pid)"},{"line_number":8947,"context_line":""},{"line_number":8948,"context_line":"            def on_completion(process):"},{"line_number":8949,"context_line":"                self.job_tracker.remove_job(instance, process.pid)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_56b04cdd","line":8946,"updated":"2019-06-14 18:49:25.000000000","message":"Without looking at how this is actually being used,\n\n return ...\n\n[Later] I didn\u0027t want to seem silly holding just for this, so I did go look at how this is actually being used. It appears to end up in processutils.execute -- probably -- where its return value isn\u0027t used -- probably. That said, the add_job and remove_job methods themselves don\u0027t return anything, so it should be fine regardless.","commit_id":"7863bcf6941007b3ec942a561aef856c038c07ea"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"9472c98940f673f7aa4c96dc62efaa6957a47e3d","unresolved":false,"context_lines":[{"line_number":8946,"context_line":"                self.job_tracker.add_job(instance, process.pid)"},{"line_number":8947,"context_line":""},{"line_number":8948,"context_line":"            def on_completion(process):"},{"line_number":8949,"context_line":"                self.job_tracker.remove_job(instance, process.pid)"},{"line_number":8950,"context_line":""},{"line_number":8951,"context_line":"            for info in disk_info:"},{"line_number":8952,"context_line":"                # assume inst_base \u003d\u003d dirname(info[\u0027path\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_76b310ea","line":8949,"updated":"2019-06-14 18:49:25.000000000","message":"ditto","commit_id":"7863bcf6941007b3ec942a561aef856c038c07ea"}],"tox.ini":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a2be7efe6888181aec3edaebac09aae13a174940","unresolved":false,"context_lines":[{"line_number":251,"context_line":"#"},{"line_number":252,"context_line":"# E251 Skipped due to https://github.com/jcrocholl/pep8/issues/301"},{"line_number":253,"context_line":"#"},{"line_number":254,"context_line":"# W503, E731 temporarily skipped because of the number of these that have to be"},{"line_number":255,"context_line":"# fixed"},{"line_number":256,"context_line":"enable-extensions \u003d H106,H203,H904"},{"line_number":257,"context_line":"ignore \u003d E121,E122,E123,E124,E125,E126,E127,E128,E129,E131,E251,H405,W503"}],"source_content_type":"text/x-properties","patch_set":1,"id":"3fce034c_081cca68","line":254,"range":{"start_line":254,"start_character":8,"end_line":254,"end_character":12},"updated":"2019-04-11 22:15:36.000000000","message":"strike","commit_id":"c138cb845e8371b14f52b8148d33e32576fa058d"}]}
