)]}'
{"tempest/api/data_processing/base.py":[{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"90739f943165bdb48a3a212817f7bc8f2a5f69b8","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    @classmethod"},{"line_number":23,"context_line":"    def setUpClass(cls):"},{"line_number":24,"context_line":"        super(BaseDataProcessingTest, cls).setUpClass()"},{"line_number":25,"context_line":"        os \u003d clients.Manager()"},{"line_number":26,"context_line":"        cls.cfg \u003d os.config.data_processing"},{"line_number":27,"context_line":"        if not cls.config.service_available.savanna:"},{"line_number":28,"context_line":"            raise cls.skipException(\"Savanna support is required\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F80ow%3D","line":25,"updated":"2013-12-19 22:48:46.000000000","message":"This will cause these tests to not use tenant isolation. Is that the intent? To allow tenant isolation, call os \u003d cls.get_client_manager() instead.","commit_id":"62d34c966857b0f7817b492abc65048c4854df1a"},{"author":{"_account_id":6786,"name":"Sergey Lukjanov","email":"me@slukjanov.name","username":"slukjanov"},"change_message_id":"27fa2142459bf279adf210cb547f7c7c3f109a77","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    @classmethod"},{"line_number":23,"context_line":"    def setUpClass(cls):"},{"line_number":24,"context_line":"        super(BaseDataProcessingTest, cls).setUpClass()"},{"line_number":25,"context_line":"        os \u003d clients.Manager()"},{"line_number":26,"context_line":"        cls.cfg \u003d os.config.data_processing"},{"line_number":27,"context_line":"        if not cls.config.service_available.savanna:"},{"line_number":28,"context_line":"            raise cls.skipException(\"Savanna support is required\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F8yas%3D","line":25,"in_reply_to":"AAAATn%2F80ow%3D","updated":"2013-12-20 10:09:04.000000000","message":"thanks for catching this, I\u0027ll fix it.","commit_id":"62d34c966857b0f7817b492abc65048c4854df1a"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"90739f943165bdb48a3a212817f7bc8f2a5f69b8","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    @classmethod"},{"line_number":55,"context_line":"    def tearDownClass(cls):"},{"line_number":56,"context_line":"        super(BaseDataProcessingTest, cls).tearDownClass()"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        # cleanup node group templates"},{"line_number":59,"context_line":"        for ngt_id in cls._node_group_templates:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F80o4%3D","line":56,"updated":"2013-12-19 22:48:46.000000000","message":"This needs to go at the end.","commit_id":"62d34c966857b0f7817b492abc65048c4854df1a"},{"author":{"_account_id":6786,"name":"Sergey Lukjanov","email":"me@slukjanov.name","username":"slukjanov"},"change_message_id":"27fa2142459bf279adf210cb547f7c7c3f109a77","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    @classmethod"},{"line_number":55,"context_line":"    def tearDownClass(cls):"},{"line_number":56,"context_line":"        super(BaseDataProcessingTest, cls).tearDownClass()"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        # cleanup node group templates"},{"line_number":59,"context_line":"        for ngt_id in cls._node_group_templates:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F8yak%3D","line":56,"in_reply_to":"AAAATn%2F80o4%3D","updated":"2013-12-20 10:09:04.000000000","message":"Correct, thx, I\u0027ll fix it.","commit_id":"62d34c966857b0f7817b492abc65048c4854df1a"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"6809fe4c9609b107310866086b70133556bbeae8","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        for ngt_id in cls._node_group_templates:"},{"line_number":60,"context_line":"            try:"},{"line_number":61,"context_line":"                cls.client.delete_node_group_template(ngt_id)"},{"line_number":62,"context_line":"            except Exception:"},{"line_number":63,"context_line":"                # ignore errors while auto removing created resource"},{"line_number":64,"context_line":"                pass"},{"line_number":65,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F813Y%3D","line":62,"updated":"2013-12-19 16:57:43.000000000","message":"Is it possible to ignore only the tempest.exceptions.NotFound ?","commit_id":"62d34c966857b0f7817b492abc65048c4854df1a"},{"author":{"_account_id":6786,"name":"Sergey Lukjanov","email":"me@slukjanov.name","username":"slukjanov"},"change_message_id":"5ed9cf9d5c1ee45f2b3e4faabc9dade5381a97d8","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        for ngt_id in cls._node_group_templates:"},{"line_number":60,"context_line":"            try:"},{"line_number":61,"context_line":"                cls.client.delete_node_group_template(ngt_id)"},{"line_number":62,"context_line":"            except Exception:"},{"line_number":63,"context_line":"                # ignore errors while auto removing created resource"},{"line_number":64,"context_line":"                pass"},{"line_number":65,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F81CQ%3D","line":62,"in_reply_to":"AAAATn%2F813Y%3D","updated":"2013-12-19 21:03:01.000000000","message":"I think that it\u0027ll be better to ignore any exception in cleanup code.","commit_id":"62d34c966857b0f7817b492abc65048c4854df1a"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"90739f943165bdb48a3a212817f7bc8f2a5f69b8","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        for ngt_id in cls._node_group_templates:"},{"line_number":60,"context_line":"            try:"},{"line_number":61,"context_line":"                cls.client.delete_node_group_template(ngt_id)"},{"line_number":62,"context_line":"            except Exception:"},{"line_number":63,"context_line":"                # ignore errors while auto removing created resource"},{"line_number":64,"context_line":"                pass"},{"line_number":65,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F80o8%3D","line":62,"in_reply_to":"AAAATn%2F81CQ%3D","updated":"2013-12-19 22:48:46.000000000","message":"We have some base classes that to this and some that don\u0027t. I think this is OK.","commit_id":"62d34c966857b0f7817b492abc65048c4854df1a"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"fb35963ee88716d39d7ac9b720f078e8e42cc56a","unresolved":false,"context_lines":[{"line_number":24,"context_line":"        super(BaseDataProcessingTest, cls).setUpClass()"},{"line_number":25,"context_line":"        os \u003d cls.get_client_manager()"},{"line_number":26,"context_line":"        cls.cfg \u003d os.config.data_processing"},{"line_number":27,"context_line":"        if not cls.config.service_available.savanna:"},{"line_number":28,"context_line":"            raise cls.skipException(\"Savanna support is required\")"},{"line_number":29,"context_line":"        cls.client \u003d os.data_processing_client"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2Bz%2BE%3D","line":27,"updated":"2014-01-21 20:59:50.000000000","message":"So this method of using config is deprecated see:\n\nhttp://lists.openstack.org/pipermail/openstack-dev/2013-December/022965.html\n\nwe probably don\u0027t want to set the wrong precedent for the savanna tests. So use the global CONF object.","commit_id":"cc30557176758c0c5d4791a0b047df8d8f4444b8"},{"author":{"_account_id":6786,"name":"Sergey Lukjanov","email":"me@slukjanov.name","username":"slukjanov"},"change_message_id":"32d3bcb9d26ce13d7c384ae1b27a9693cd2b3c08","unresolved":false,"context_lines":[{"line_number":24,"context_line":"        super(BaseDataProcessingTest, cls).setUpClass()"},{"line_number":25,"context_line":"        os \u003d cls.get_client_manager()"},{"line_number":26,"context_line":"        cls.cfg \u003d os.config.data_processing"},{"line_number":27,"context_line":"        if not cls.config.service_available.savanna:"},{"line_number":28,"context_line":"            raise cls.skipException(\"Savanna support is required\")"},{"line_number":29,"context_line":"        cls.client \u003d os.data_processing_client"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2BzkA%3D","line":27,"in_reply_to":"AAAAUH%2F%2Bz%2BE%3D","updated":"2014-01-21 22:22:37.000000000","message":"done","commit_id":"cc30557176758c0c5d4791a0b047df8d8f4444b8"}],"tempest/api/data_processing/test_node_group_templates.py":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"fb35963ee88716d39d7ac9b720f078e8e42cc56a","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    def test_list_node_group_templates_responds(self):"},{"line_number":25,"context_line":"        resp, templates \u003d self.client.list_node_group_templates()"},{"line_number":26,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":27,"context_line":"        self.assertEqual([], templates)"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"},{"line_number":30,"context_line":"    def test_node_group_template_crud(self):"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2Bz9U%3D","line":27,"updated":"2014-01-21 20:59:50.000000000","message":"I feel like it would be better to add a template in this test before the list command to make sure the list fields match what the expected api return in is. (which is covered by the test below) Just running list and checking that there is an empty list doesn\u0027t seem like a particularly useful test. Personally I\u0027d probably split this up to be a list test and a get test. So the test below just does a get after creating a template, and this one does a list after creating a template.\n\nAlso, not being familiar with the savanna api I\u0027m assuming that templates are tenant specific. (because this doesn\u0027t require admin creds) If they aren\u0027t than this test will have a race when additional test classes are added.","commit_id":"cc30557176758c0c5d4791a0b047df8d8f4444b8"},{"author":{"_account_id":6786,"name":"Sergey Lukjanov","email":"me@slukjanov.name","username":"slukjanov"},"change_message_id":"32d3bcb9d26ce13d7c384ae1b27a9693cd2b3c08","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    def test_list_node_group_templates_responds(self):"},{"line_number":25,"context_line":"        resp, templates \u003d self.client.list_node_group_templates()"},{"line_number":26,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":27,"context_line":"        self.assertEqual([], templates)"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"},{"line_number":30,"context_line":"    def test_node_group_template_crud(self):"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2Bzj4%3D","line":27,"in_reply_to":"AAAAUH%2F%2Bz9U%3D","updated":"2014-01-21 22:22:37.000000000","message":"Done","commit_id":"cc30557176758c0c5d4791a0b047df8d8f4444b8"}]}
