)]}'
{"swift/common/storage_policy.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"98703aeb8724da5ede8a9998f6219b7a47530a0a","unresolved":false,"context_lines":[{"line_number":105,"context_line":"            self.idx, self.name, self.is_default, self.is_deprecated)"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    def __getitem__(self, key):"},{"line_number":108,"context_line":"        return self.__dict__[key]"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    def load_ring(self, swift_dir):"},{"line_number":111,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_205225de","line":108,"updated":"2015-02-12 00:05:02.000000000","message":"wat?","commit_id":"5eceff5e6e7982c1c5b4c87ef7081691d20a0a48"}],"test/probe/common.py":[{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"9421277ef2c13b3b9037a427c0d43cc27657dad1","unresolved":false,"context_lines":[{"line_number":225,"context_line":"                        config_dict[server.server][i] \u003d conf"},{"line_number":226,"context_line":"    except BaseException:"},{"line_number":227,"context_line":"        try:"},{"line_number":228,"context_line":"            raise"},{"line_number":229,"context_line":"        except AssertionError as e:"},{"line_number":230,"context_line":"            raise SkipTest(e)"},{"line_number":231,"context_line":"        finally:"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_26d96af3","side":"PARENT","line":228,"updated":"2015-02-11 19:15:58.000000000","message":"I\u0027m curious what exactly we are re-raising that can raise while being raised. I presume it\u0027s something that we derived, but I don\u0027t see any exceptions inherited anywhere around.\n\nI see the new code picked this part with no change, but I\u0027m just curious.","commit_id":"0186194e96f114017fe35a10f81f283568f23a04"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"98703aeb8724da5ede8a9998f6219b7a47530a0a","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        # TODO: for EC, pop policy type here and check it first"},{"line_number":207,"context_line":"        for key, value in kwargs.items():"},{"line_number":208,"context_line":"            try:"},{"line_number":209,"context_line":"                if policy[key] !\u003d value:"},{"line_number":210,"context_line":"                    continue"},{"line_number":211,"context_line":"            except KeyError:"},{"line_number":212,"context_line":"                continue"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_e0548d55","line":209,"updated":"2015-02-12 00:05:02.000000000","message":"better I think to just use getattr here than have the common policy code grow a new dict interface in the service of probetests","commit_id":"5eceff5e6e7982c1c5b4c87ef7081691d20a0a48"},{"author":{"_account_id":7479,"name":"paul luse","email":"paul.e.luse@intel.com","username":"peluse"},"change_message_id":"298c4b1d1310cd71ff159b323a325176d866789b","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"def get_ring(ring_name, server\u003dNone, force_validate\u003dNone,"},{"line_number":146,"context_line":"             required_replicas\u003d3, required_devices\u003d4):"},{"line_number":147,"context_line":"    if not server:"},{"line_number":148,"context_line":"        server \u003d ring_name"},{"line_number":149,"context_line":"    ring \u003d Ring(\u0027/etc/swift\u0027, ring_name\u003dring_name)"}],"source_content_type":"text/x-python","patch_set":5,"id":"da86d52c_f110bc01","line":146,"updated":"2015-02-12 18:03:39.000000000","message":"so I don\u0027t think you need to specify defaults for required_repl and req_dev here as the callers are only in this module so we might as well be clear and make them required","commit_id":"77438ad3a3225462e5d7cda985fb54d28cb27969"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"a54431fe9f52b0be626a07fda4a2bbd178f8f820","unresolved":false,"context_lines":[{"line_number":211,"context_line":"                    continue"},{"line_number":212,"context_line":"            except AttributeError:"},{"line_number":213,"context_line":"                continue"},{"line_number":214,"context_line":"        return policy"},{"line_number":215,"context_line":"    raise SkipTest(\u0027No policy matching %s\u0027 % kwargs)"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"da86d52c_0ce9b3e5","line":214,"updated":"2015-02-12 18:17:22.000000000","message":"doesn\u0027t this always return the first policy?","commit_id":"77438ad3a3225462e5d7cda985fb54d28cb27969"},{"author":{"_account_id":7479,"name":"paul luse","email":"paul.e.luse@intel.com","username":"peluse"},"change_message_id":"298c4b1d1310cd71ff159b323a325176d866789b","unresolved":false,"context_lines":[{"line_number":227,"context_line":"    replicators.once()"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"class ProbeTest(unittest.TestCase):"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"    required_replicas \u003d 3"},{"line_number":233,"context_line":"    required_devices \u003d 4"}],"source_content_type":"text/x-python","patch_set":5,"id":"da86d52c_51c26834","line":230,"updated":"2015-02-12 18:03:39.000000000","message":"so if I\u0027m reading this right this class is for the existing 3/4 SAIO replication scenario and when we add EC tests we\u0027ll create a new class, like Class ProbeTestEC(unitTest.testCase)?  Maybe a ProbeTestBase might be better with a ProbeTestRepl subclassed setting the required_replicas, etc, there.","commit_id":"77438ad3a3225462e5d7cda985fb54d28cb27969"},{"author":{"_account_id":7479,"name":"paul luse","email":"paul.e.luse@intel.com","username":"peluse"},"change_message_id":"298c4b1d1310cd71ff159b323a325176d866789b","unresolved":false,"context_lines":[{"line_number":231,"context_line":""},{"line_number":232,"context_line":"    required_replicas \u003d 3"},{"line_number":233,"context_line":"    required_devices \u003d 4"},{"line_number":234,"context_line":"    policy_requirements \u003d {\u0027name\u0027: \u0027default\u0027}"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"    def setUp(self):"},{"line_number":237,"context_line":"        p \u003d Popen(\"resetswift 2\u003e\u00261\", shell\u003dTrue, stdout\u003dPIPE)"}],"source_content_type":"text/x-python","patch_set":5,"id":"da86d52c_31ced45a","line":234,"updated":"2015-02-12 18:03:39.000000000","message":"not sure we need/want to check the same","commit_id":"77438ad3a3225462e5d7cda985fb54d28cb27969"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"a54431fe9f52b0be626a07fda4a2bbd178f8f820","unresolved":false,"context_lines":[{"line_number":231,"context_line":""},{"line_number":232,"context_line":"    required_replicas \u003d 3"},{"line_number":233,"context_line":"    required_devices \u003d 4"},{"line_number":234,"context_line":"    policy_requirements \u003d {\u0027name\u0027: \u0027default\u0027}"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"    def setUp(self):"},{"line_number":237,"context_line":"        p \u003d Popen(\"resetswift 2\u003e\u00261\", shell\u003dTrue, stdout\u003dPIPE)"}],"source_content_type":"text/x-python","patch_set":5,"id":"da86d52c_ccdb1b4d","line":234,"in_reply_to":"da86d52c_31ced45a","updated":"2015-02-12 18:17:22.000000000","message":"this doesn\u0027t work, and we wouldn\u0027t want it to - there shouldn\u0027t be a requirement that anyone have a policy *named* default - although it may be reasonable for this to filter on default: True unless a test-case over-rides it?","commit_id":"77438ad3a3225462e5d7cda985fb54d28cb27969"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"c145637735857c2b12ec33a18efe3a86dad61b62","unresolved":false,"context_lines":[{"line_number":211,"context_line":"                if getattr(policy, key) !\u003d value:"},{"line_number":212,"context_line":"                    matches \u003d False"},{"line_number":213,"context_line":"            except AttributeError:"},{"line_number":214,"context_line":"                matches \u003d False"},{"line_number":215,"context_line":"        if matches:"},{"line_number":216,"context_line":"            return policy"},{"line_number":217,"context_line":"    raise SkipTest(\u0027No policy matching %s\u0027 % kwargs)"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_9a7eb0e2","line":214,"updated":"2015-02-12 22:20:49.000000000","message":"I\u0027d bet any time you set matches \u003d False you could break the k/v checks and go onto the next policy.  This works though - it\u0027s not like anyone expects the cardinality of policies to be huge.","commit_id":"2c1b5af06218fa936c8c9fb0180f22db212bf18a"}]}
