)]}'
{"tempest/scenario/manager.py":[{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"993020de491b553862851517ef82f67ac04c2431","unresolved":false,"context_lines":[{"line_number":986,"context_line":"        self.assertEqual(secgroup.name, sg_name)"},{"line_number":987,"context_line":"        self.assertEqual(tenant_id, secgroup.tenant_id)"},{"line_number":988,"context_line":"        self.assertEqual(secgroup.description, sg_desc)"},{"line_number":989,"context_line":"        self.addCleanup(tempest.test.call_and_ignore_notfound_exc,"},{"line_number":990,"context_line":"                        secgroup.delete)"},{"line_number":991,"context_line":"        return secgroup"},{"line_number":992,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1a122d0e_b41e6cb9","line":989,"updated":"2016-05-02 06:00:17.000000000","message":"I feel this cleanup is a little late. I think we should this after L.985. But it\u0027s not this patch\u0027s scope.","commit_id":"0ba668c778fc4002c673a5a719b6ec68c1c04935"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"993020de491b553862851517ef82f67ac04c2431","unresolved":false,"context_lines":[{"line_number":1048,"context_line":"            client\u003dsec_group_rules_client,"},{"line_number":1049,"context_line":"            **sg_rule[\u0027security_group_rule\u0027]"},{"line_number":1050,"context_line":"        )"},{"line_number":1051,"context_line":"        self.addCleanup(tempest.test.call_and_ignore_notfound_exc,"},{"line_number":1052,"context_line":"                        sg_rule.delete)"},{"line_number":1053,"context_line":"        self.assertEqual(secgroup.tenant_id, sg_rule.tenant_id)"},{"line_number":1054,"context_line":"        self.assertEqual(secgroup.id, sg_rule.security_group_id)"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a122d0e_94ed30ba","line":1051,"updated":"2016-05-02 06:00:17.000000000","message":"oh, this is a kind of a bug fix :)","commit_id":"0ba668c778fc4002c673a5a719b6ec68c1c04935"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"f952534d2d3e98f6e2f97670661ff5091b91bc55","unresolved":false,"context_lines":[{"line_number":1048,"context_line":"            client\u003dsec_group_rules_client,"},{"line_number":1049,"context_line":"            **sg_rule[\u0027security_group_rule\u0027]"},{"line_number":1050,"context_line":"        )"},{"line_number":1051,"context_line":"        self.addCleanup(tempest.test.call_and_ignore_notfound_exc,"},{"line_number":1052,"context_line":"                        sg_rule.delete)"},{"line_number":1053,"context_line":"        self.assertEqual(secgroup.tenant_id, sg_rule.tenant_id)"},{"line_number":1054,"context_line":"        self.assertEqual(secgroup.id, sg_rule.security_group_id)"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a122d0e_11a48db7","line":1051,"in_reply_to":"1a122d0e_94ed30ba","updated":"2016-05-02 10:19:21.000000000","message":"Humm no, it\u0027s a left over. This was already fixed by Sean here https://review.openstack.org/#/c/273002/6/tempest/scenario/manager.py\n\nBut I reintroduced it because of a bad rebase.","commit_id":"0ba668c778fc4002c673a5a719b6ec68c1c04935"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"993020de491b553862851517ef82f67ac04c2431","unresolved":false,"context_lines":[{"line_number":1148,"context_line":"        router \u003d net_resources.DeletableRouter(routers_client\u003dclient,"},{"line_number":1149,"context_line":"                                               **result[\u0027router\u0027])"},{"line_number":1150,"context_line":"        self.assertEqual(router.name, name)"},{"line_number":1151,"context_line":"        self.addCleanup(tempest.test.call_and_ignore_notfound_exc,"},{"line_number":1152,"context_line":"                        router.delete)"},{"line_number":1153,"context_line":"        return router"},{"line_number":1154,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1a122d0e_543a7835","line":1151,"updated":"2016-05-02 06:00:17.000000000","message":"ditto about the order","commit_id":"0ba668c778fc4002c673a5a719b6ec68c1c04935"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"993020de491b553862851517ef82f67ac04c2431","unresolved":false,"context_lines":[{"line_number":1426,"context_line":"        # look for the container to assure it is created"},{"line_number":1427,"context_line":"        self.list_and_check_container_objects(name)"},{"line_number":1428,"context_line":"        LOG.debug(\u0027Container %s created\u0027 % (name))"},{"line_number":1429,"context_line":"        self.addCleanup(tempest.test.call_and_ignore_notfound_exc,"},{"line_number":1430,"context_line":"                        self.container_client.delete_container,"},{"line_number":1431,"context_line":"                        name)"},{"line_number":1432,"context_line":"        return name"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a122d0e_f40f4489","line":1429,"updated":"2016-05-02 06:00:17.000000000","message":"ditto","commit_id":"0ba668c778fc4002c673a5a719b6ec68c1c04935"}],"tempest/test.py":[{"author":{"_account_id":97,"name":"Daryl Walleck","email":"daryl.walleck@rackspace.com","username":"dwalleck"},"change_message_id":"b3bb21bd854a952f37e21c580c117eac79fbbdfc","unresolved":false,"context_lines":[{"line_number":860,"context_line":"    return False"},{"line_number":861,"context_line":""},{"line_number":862,"context_line":""},{"line_number":863,"context_line":"def call_and_ignore_notfound_exc(func, *args, **kwargs):"},{"line_number":864,"context_line":"    \"\"\"Call the given function and pass if a `NotFound` exception is raised.\"\"\""},{"line_number":865,"context_line":""},{"line_number":866,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a57f1b5_ed355df7","line":863,"updated":"2016-02-09 18:25:16.000000000","message":"I see the problem you\u0027re trying to solve, I\u0027m not sure putting this function as a member of the base test class makes the most sense. Also, it is likely that additional call_and_ignore_(some_other_exception)_exc functions will be added.\n\nA more direct solution would be to add a parameter to client calls to ignore the exception raising behavior.\n\nIdeally the clients shouldn\u0027t be raising exceptions at all so the responses can be examined by the test, but that\u0027s an even larger issue.","commit_id":"d96342a5e157a5a9b8fb87e1284c84b9abf20a24"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"7ca809835dd9ffbbc15bc64beb347de5011cbe2b","unresolved":false,"context_lines":[{"line_number":860,"context_line":"    return False"},{"line_number":861,"context_line":""},{"line_number":862,"context_line":""},{"line_number":863,"context_line":"def call_and_ignore_notfound_exc(func, *args, **kwargs):"},{"line_number":864,"context_line":"    \"\"\"Call the given function and pass if a `NotFound` exception is raised.\"\"\""},{"line_number":865,"context_line":""},{"line_number":866,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a57f1b5_8be275d4","line":863,"in_reply_to":"3a57f1b5_ed355df7","updated":"2016-02-10 08:58:58.000000000","message":"Maybe test.py is not the best place to put this function, but where else in the source tree should I put it ?\n\n\u003e Also, it is likely that additional call_and_ignore_(some_other_exception)_exc functions will be added.\n\nI am not sure we would ever need this, and even if, we could add this parameter (exception type) in a later refactoring.","commit_id":"d96342a5e157a5a9b8fb87e1284c84b9abf20a24"}]}
