)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7069,"name":"Joshua Hesketh","email":"josh@nitrotech.org","username":"jhesketh"},"change_message_id":"906e40c245b3aa97485acd0b5b5673d96360191f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Gerrit Code Review \u003creview@openstack.org\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-10-29 01:51:54 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Make the trusted_filter\u0027s cache to be global variable"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I58feb727e5d3ac59e04ce07b3326d30e08ff2696"},{"line_number":10,"context_line":"Closes-Bug: #1223450"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAATn%2F%2FXkY%3D","line":7,"updated":"2013-11-08 03:48:53.000000000","message":"A little bit more about why would be good to see here.","commit_id":"91a3917faeae3ff338876107178d9965b01fd406"}],"nova/scheduler/filters/trusted_filter.py":[{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"9fa916dfd23304d02ff863aefe6d36fb7ddc633e","unresolved":false,"context_lines":[{"line_number":277,"context_line":"        global _CACHES"},{"line_number":278,"context_line":"        if not _CACHES:"},{"line_number":279,"context_line":"            _CACHES \u003d ComputeAttestationCache()"},{"line_number":280,"context_line":"        self.caches \u003d _CACHES"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"    def is_trusted(self, host, trust):"},{"line_number":283,"context_line":"        level \u003d self.caches.get_host_attestation(host)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FNC4%3D","line":280,"updated":"2013-11-12 23:31:23.000000000","message":"Quick question - Why do we need caches? Can we change line 283 below from self.caches to _CACHES?","commit_id":"40524c7bfe33bd5acb0290cbeb94e74213d82ab8"},{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"7406312f0588afff850e326db44abd8f951f130b","unresolved":false,"context_lines":[{"line_number":277,"context_line":"        global _CACHES"},{"line_number":278,"context_line":"        if not _CACHES:"},{"line_number":279,"context_line":"            _CACHES \u003d ComputeAttestationCache()"},{"line_number":280,"context_line":"        self.caches \u003d _CACHES"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"    def is_trusted(self, host, trust):"},{"line_number":283,"context_line":"        level \u003d self.caches.get_host_attestation(host)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FMxM%3D","line":280,"in_reply_to":"AAAATn%2F%2FNC4%3D","updated":"2013-11-13 01:52:37.000000000","message":"Done","commit_id":"40524c7bfe33bd5acb0290cbeb94e74213d82ab8"},{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"31f68b62283a3b115de6e3344cf60a4aec8804a8","unresolved":false,"context_lines":[{"line_number":276,"context_line":"    def __init__(self):"},{"line_number":277,"context_line":"        global _CACHES"},{"line_number":278,"context_line":"        if not _CACHES:"},{"line_number":279,"context_line":"            _CACHES \u003d ComputeAttestationCache()"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"    def is_trusted(self, host, trust):"},{"line_number":282,"context_line":"        global _CACHES"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9tWM%3D","line":279,"updated":"2013-12-06 21:24:22.000000000","message":"This isn\u0027t threadsafe.  It\u0027s possible for a greenthread switch while creating the cache (at least because it uses LOG).","commit_id":"494d3caecd1e3c5198d91e0b3395041a7c15a964"}],"nova/tests/scheduler/test_host_filters.py":[{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"63213c12ec16cb8855425f6c4d2575fabac18c37","unresolved":false,"context_lines":[{"line_number":262,"context_line":""},{"line_number":263,"context_line":"    def tearDown(self):"},{"line_number":264,"context_line":"        super(HostFiltersTestCase, self).tearDown()"},{"line_number":265,"context_line":"        # :NOTE(Jeffrey4l) clear the trusted_filter\u0027s cache"},{"line_number":266,"context_line":"        trusted_filter._CACHES \u003d None"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"    def test_all_filters(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FK90%3D","line":265,"updated":"2013-11-13 12:04:09.000000000","message":"nit: Why include : before NOTE?","commit_id":"073ced004922edc78fbf330993550ac234d8dea0"},{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"ef2c8fc668810614b9719a668c341a07cae66e84","unresolved":false,"context_lines":[{"line_number":262,"context_line":""},{"line_number":263,"context_line":"    def tearDown(self):"},{"line_number":264,"context_line":"        super(HostFiltersTestCase, self).tearDown()"},{"line_number":265,"context_line":"        # :NOTE(Jeffrey4l) clear the trusted_filter\u0027s cache"},{"line_number":266,"context_line":"        trusted_filter._CACHES \u003d None"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"    def test_all_filters(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FHR8%3D","line":265,"in_reply_to":"AAAATn%2F%2FK90%3D","updated":"2013-11-14 10:43:48.000000000","message":"My mistake. \n\nI will fix this.","commit_id":"073ced004922edc78fbf330993550ac234d8dea0"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"313f1408f304358d70e59b65d93333010b1e9338","unresolved":false,"context_lines":[{"line_number":1332,"context_line":""},{"line_number":1333,"context_line":"        # :NOTE(Jeffrey4l) Make sure the two instances of the TrustedFilter"},{"line_number":1334,"context_line":"        # are using the same caches instance"},{"line_number":1335,"context_line":"        self.assertEqual(filt_cls1_cache,"},{"line_number":1336,"context_line":"                         filt_cls2_cache)"},{"line_number":1337,"context_line":""},{"line_number":1338,"context_line":"    def test_core_filter_passes(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FK7Y%3D","line":1335,"updated":"2013-11-13 12:14:28.000000000","message":"I\u0027d like to see an assert that the cache is not None as well - as we\u0027re using None to represent no cache and so we clearly want this test to show that they are using the same cache rather than both using no cache.","commit_id":"073ced004922edc78fbf330993550ac234d8dea0"},{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"ef2c8fc668810614b9719a668c341a07cae66e84","unresolved":false,"context_lines":[{"line_number":1332,"context_line":""},{"line_number":1333,"context_line":"        # :NOTE(Jeffrey4l) Make sure the two instances of the TrustedFilter"},{"line_number":1334,"context_line":"        # are using the same caches instance"},{"line_number":1335,"context_line":"        self.assertEqual(filt_cls1_cache,"},{"line_number":1336,"context_line":"                         filt_cls2_cache)"},{"line_number":1337,"context_line":""},{"line_number":1338,"context_line":"    def test_core_filter_passes(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FHR4%3D","line":1335,"in_reply_to":"AAAATn%2F%2FK7Y%3D","updated":"2013-11-14 10:43:48.000000000","message":"Nice catch.\n\nI will fix this.","commit_id":"073ced004922edc78fbf330993550ac234d8dea0"}]}
