)]}'
{"tempest/api/database/__init__.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"2e579010e9ed65071eb34f541ddd08d665d382ce","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2012 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2F7IM%3D","line":1,"updated":"2014-03-03 11:59:27.000000000","message":"Is it right year?","commit_id":"c57f25674d66d9d889df996ce4f74f8f730d0d39"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"09d53e9a2bed617ab1eaef57fc3b88230d8cec3e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2012 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2F3Bs%3D","line":1,"in_reply_to":"AAAAVn%2F%2F7IM%3D","updated":"2014-03-04 02:06:57.000000000","message":"Done","commit_id":"c57f25674d66d9d889df996ce4f74f8f730d0d39"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"2e579010e9ed65071eb34f541ddd08d665d382ce","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"# All database tests -- single setup function"},{"line_number":22,"context_line":"def generic_setup_package():"},{"line_number":23,"context_line":"    LOG.debug(\"Entering tempest.api.database.setup_package\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2F7IQ%3D","line":23,"updated":"2014-03-03 11:59:27.000000000","message":"Not sure, that it is good idea to use hardcoded module path.\n\nAlso tempest.api.database.setup_package links us to nonexistent module.","commit_id":"c57f25674d66d9d889df996ce4f74f8f730d0d39"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"09d53e9a2bed617ab1eaef57fc3b88230d8cec3e","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"# All database tests -- single setup function"},{"line_number":22,"context_line":"def generic_setup_package():"},{"line_number":23,"context_line":"    LOG.debug(\"Entering tempest.api.database.setup_package\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2F3BI%3D","line":23,"in_reply_to":"AAAAVn%2F%2F7IQ%3D","updated":"2014-03-04 02:06:57.000000000","message":"Decided to remove it since it\u0027s not needed. Thanks!","commit_id":"c57f25674d66d9d889df996ce4f74f8f730d0d39"}],"tempest/api/database/base.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"aeaa58d62d58ec81109dd41b24f1f385f61644ed","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    @classmethod"},{"line_number":31,"context_line":"    def setUpClass(cls):"},{"line_number":32,"context_line":"        super(BaseDatabaseTest, cls).setUpClass()"},{"line_number":33,"context_line":"        if not cls.config.service_available.trove:"},{"line_number":34,"context_line":"            skip_msg \u003d (\"%s skipped as trove is not available\" % cls.__name__)"},{"line_number":35,"context_line":"            raise cls.skipException(skip_msg)"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2BxK0%3D","line":33,"updated":"2014-02-19 07:20:17.000000000","message":"Config should be used as global.\nLike:\n\nfrom tempest import config\n\nCONF \u003d config.CONF\n\nif not CONF.service_available.trove:\n    ...","commit_id":"0674f4abb5b4ab92198d099042a32a75eebc50de"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"0725c2615863e1fd43e1ff2b9a9aac87c6746d8f","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    @classmethod"},{"line_number":31,"context_line":"    def setUpClass(cls):"},{"line_number":32,"context_line":"        super(BaseDatabaseTest, cls).setUpClass()"},{"line_number":33,"context_line":"        if not cls.config.service_available.trove:"},{"line_number":34,"context_line":"            skip_msg \u003d (\"%s skipped as trove is not available\" % cls.__name__)"},{"line_number":35,"context_line":"            raise cls.skipException(skip_msg)"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2BsmA%3D","line":33,"in_reply_to":"AAAAUX%2F%2BxK0%3D","updated":"2014-03-03 09:58:02.000000000","message":"Done","commit_id":"0674f4abb5b4ab92198d099042a32a75eebc50de"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"aeaa58d62d58ec81109dd41b24f1f385f61644ed","unresolved":false,"context_lines":[{"line_number":34,"context_line":"            skip_msg \u003d (\"%s skipped as trove is not available\" % cls.__name__)"},{"line_number":35,"context_line":"            raise cls.skipException(skip_msg)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        cls.catalog_type \u003d cls.config.database.catalog_type"},{"line_number":38,"context_line":"        cls.flavor_ref \u003d cls.config.database.flavor_ref"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        os \u003d cls.get_client_manager()"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2BxKo%3D","line":37,"updated":"2014-02-19 07:20:17.000000000","message":"ditto","commit_id":"0674f4abb5b4ab92198d099042a32a75eebc50de"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"0725c2615863e1fd43e1ff2b9a9aac87c6746d8f","unresolved":false,"context_lines":[{"line_number":34,"context_line":"            skip_msg \u003d (\"%s skipped as trove is not available\" % cls.__name__)"},{"line_number":35,"context_line":"            raise cls.skipException(skip_msg)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        cls.catalog_type \u003d cls.config.database.catalog_type"},{"line_number":38,"context_line":"        cls.flavor_ref \u003d cls.config.database.flavor_ref"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        os \u003d cls.get_client_manager()"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2Bsl8%3D","line":37,"in_reply_to":"AAAAUX%2F%2BxKo%3D","updated":"2014-03-03 09:58:02.000000000","message":"Done","commit_id":"0674f4abb5b4ab92198d099042a32a75eebc50de"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"aeaa58d62d58ec81109dd41b24f1f385f61644ed","unresolved":false,"context_lines":[{"line_number":35,"context_line":"            raise cls.skipException(skip_msg)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        cls.catalog_type \u003d cls.config.database.catalog_type"},{"line_number":38,"context_line":"        cls.flavor_ref \u003d cls.config.database.flavor_ref"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        os \u003d cls.get_client_manager()"},{"line_number":41,"context_line":"        cls.os \u003d os"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2BxKg%3D","line":38,"updated":"2014-02-19 07:20:17.000000000","message":"ditto","commit_id":"0674f4abb5b4ab92198d099042a32a75eebc50de"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"0725c2615863e1fd43e1ff2b9a9aac87c6746d8f","unresolved":false,"context_lines":[{"line_number":35,"context_line":"            raise cls.skipException(skip_msg)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        cls.catalog_type \u003d cls.config.database.catalog_type"},{"line_number":38,"context_line":"        cls.flavor_ref \u003d cls.config.database.flavor_ref"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        os \u003d cls.get_client_manager()"},{"line_number":41,"context_line":"        cls.os \u003d os"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2Bsl4%3D","line":38,"in_reply_to":"AAAAUX%2F%2BxKg%3D","updated":"2014-03-03 09:58:02.000000000","message":"Done","commit_id":"0674f4abb5b4ab92198d099042a32a75eebc50de"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"aeaa58d62d58ec81109dd41b24f1f385f61644ed","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    @classmethod"},{"line_number":45,"context_line":"    def tearDownClass(cls):"},{"line_number":46,"context_line":"        super(BaseDatabaseTest, cls).tearDownClass()"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2BxKw%3D","line":46,"updated":"2014-02-19 07:20:17.000000000","message":"Is no new code added, it is redundant.","commit_id":"0674f4abb5b4ab92198d099042a32a75eebc50de"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"0725c2615863e1fd43e1ff2b9a9aac87c6746d8f","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    @classmethod"},{"line_number":45,"context_line":"    def tearDownClass(cls):"},{"line_number":46,"context_line":"        super(BaseDatabaseTest, cls).tearDownClass()"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2Bsl0%3D","line":46,"in_reply_to":"AAAAUX%2F%2BxKw%3D","updated":"2014-03-03 09:58:02.000000000","message":"Done","commit_id":"0674f4abb5b4ab92198d099042a32a75eebc50de"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"2e579010e9ed65071eb34f541ddd08d665d382ce","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2012 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2F7I0%3D","line":1,"updated":"2014-03-03 11:59:27.000000000","message":"Is it right year?","commit_id":"c57f25674d66d9d889df996ce4f74f8f730d0d39"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"09d53e9a2bed617ab1eaef57fc3b88230d8cec3e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2012 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2F3A8%3D","line":1,"in_reply_to":"AAAAVn%2F%2F7I0%3D","updated":"2014-03-04 02:06:57.000000000","message":"Done","commit_id":"c57f25674d66d9d889df996ce4f74f8f730d0d39"}],"tempest/api/database/flavors/test_flavors.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"aeaa58d62d58ec81109dd41b24f1f385f61644ed","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright 2012 OpenStack Foundation"},{"line_number":4,"context_line":"# All Rights Reserved."}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2BxFc%3D","line":1,"updated":"2014-02-19 07:20:17.000000000","message":"Please, remove vim tabs.","commit_id":"0674f4abb5b4ab92198d099042a32a75eebc50de"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"0725c2615863e1fd43e1ff2b9a9aac87c6746d8f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright 2012 OpenStack Foundation"},{"line_number":4,"context_line":"# All Rights Reserved."}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2BshY%3D","line":1,"in_reply_to":"AAAAUX%2F%2BxFc%3D","updated":"2014-03-03 09:58:02.000000000","message":"Done","commit_id":"0674f4abb5b4ab92198d099042a32a75eebc50de"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"aeaa58d62d58ec81109dd41b24f1f385f61644ed","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from tempest.api.database import base"},{"line_number":19,"context_line":"from tempest import exceptions"},{"line_number":20,"context_line":"from tempest.test import attr"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class FlavorsTest(base.BaseDatabaseTest):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2BxIo%3D","line":20,"updated":"2014-02-19 07:20:17.000000000","message":"Expected to import module. See http://docs.openstack.org/developer/hacking/","commit_id":"0674f4abb5b4ab92198d099042a32a75eebc50de"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"0725c2615863e1fd43e1ff2b9a9aac87c6746d8f","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from tempest.api.database import base"},{"line_number":19,"context_line":"from tempest import exceptions"},{"line_number":20,"context_line":"from tempest.test import attr"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class FlavorsTest(base.BaseDatabaseTest):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2Bsag%3D","line":20,"in_reply_to":"AAAAUX%2F%2BxIo%3D","updated":"2014-03-03 09:58:02.000000000","message":"attr is a decorator, and module.attr just looks weird, so I suggest we leave this as is. (Other projects in tempest also use this in a similar way.)","commit_id":"0674f4abb5b4ab92198d099042a32a75eebc50de"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"2e579010e9ed65071eb34f541ddd08d665d382ce","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2012 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2F7LA%3D","line":1,"updated":"2014-03-03 11:59:27.000000000","message":"Is it right year?","commit_id":"c57f25674d66d9d889df996ce4f74f8f730d0d39"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"09d53e9a2bed617ab1eaef57fc3b88230d8cec3e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2012 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2F2%2B4%3D","line":1,"in_reply_to":"AAAAVn%2F%2F7LA%3D","updated":"2014-03-04 02:06:57.000000000","message":"Done","commit_id":"c57f25674d66d9d889df996ce4f74f8f730d0d39"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"2e579010e9ed65071eb34f541ddd08d665d382ce","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from tempest.api.database import base"},{"line_number":17,"context_line":"from tempest import exceptions"},{"line_number":18,"context_line":"from tempest.test import attr"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class FlavorsTest(base.BaseDatabaseTest):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2F7KE%3D","line":18,"updated":"2014-03-03 11:59:27.000000000","message":"As mentioned in previous review, it is common recommendation.\n\nThere are a lot of code in master that doesn\u0027t fit recommendations, and master code shouldn\u0027t be first priority reference.","commit_id":"c57f25674d66d9d889df996ce4f74f8f730d0d39"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"09d53e9a2bed617ab1eaef57fc3b88230d8cec3e","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from tempest.api.database import base"},{"line_number":17,"context_line":"from tempest import exceptions"},{"line_number":18,"context_line":"from tempest.test import attr"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class FlavorsTest(base.BaseDatabaseTest):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2F29s%3D","line":18,"in_reply_to":"AAAAVn%2F%2F7KE%3D","updated":"2014-03-04 02:06:57.000000000","message":"Done","commit_id":"c57f25674d66d9d889df996ce4f74f8f730d0d39"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"2e579010e9ed65071eb34f541ddd08d665d382ce","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class FlavorsTest(base.BaseDatabaseTest):"},{"line_number":22,"context_line":"    _interface \u003d \u0027json\u0027"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    @classmethod"},{"line_number":25,"context_line":"    def setUpClass(cls):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2F7Jw%3D","line":22,"updated":"2014-03-03 11:59:27.000000000","message":"IMO, better to move _interface to base.BaseDatabaseTest, that will be used by all test suites.","commit_id":"c57f25674d66d9d889df996ce4f74f8f730d0d39"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"09d53e9a2bed617ab1eaef57fc3b88230d8cec3e","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class FlavorsTest(base.BaseDatabaseTest):"},{"line_number":22,"context_line":"    _interface \u003d \u0027json\u0027"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    @classmethod"},{"line_number":25,"context_line":"    def setUpClass(cls):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2F29k%3D","line":22,"in_reply_to":"AAAAVn%2F%2F7Jw%3D","updated":"2014-03-04 02:06:57.000000000","message":"Makes sense. Done","commit_id":"c57f25674d66d9d889df996ce4f74f8f730d0d39"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"74568f4915ae519f49d65422cf5cae78dfa9ba62","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    def test_list_flavors(self):"},{"line_number":30,"context_line":"        # List of all flavors should contain the expected flavor"},{"line_number":31,"context_line":"        resp, flavors \u003d self.client.list_flavors()"},{"line_number":32,"context_line":"        resp, flavor \u003d self.client.get_flavor_details(self.flavor_ref)"},{"line_number":33,"context_line":"        self.assertIn(flavor, flavors)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAVn%2F%2FwV4%3D","line":32,"updated":"2014-03-04 09:30:37.000000000","message":"This test is expected to test \"list\" api, not both \"list\" and \"get\".","commit_id":"4c092c81f9875c6fee0ede32365b2ebc9cdc9ecb"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"70861c3b6b5d78edc54f9b52e8eefec554c25fad","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    def test_list_flavors(self):"},{"line_number":30,"context_line":"        # List of all flavors should contain the expected flavor"},{"line_number":31,"context_line":"        resp, flavors \u003d self.client.list_flavors()"},{"line_number":32,"context_line":"        resp, flavor \u003d self.client.get_flavor_details(self.flavor_ref)"},{"line_number":33,"context_line":"        self.assertIn(flavor, flavors)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAVn%2F%2Fv%2Bo%3D","line":32,"in_reply_to":"AAAAVn%2F%2FwGY%3D","updated":"2014-03-04 10:02:52.000000000","message":"Hm, same in tempest/api/compute/flavors/test_flavors.py\n\nOk, let it be. But I don\u0027t think its good way.","commit_id":"4c092c81f9875c6fee0ede32365b2ebc9cdc9ecb"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"281c9681d7ccebc21d24cdc9c86f4696910bb15f","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    def test_list_flavors(self):"},{"line_number":30,"context_line":"        # List of all flavors should contain the expected flavor"},{"line_number":31,"context_line":"        resp, flavors \u003d self.client.list_flavors()"},{"line_number":32,"context_line":"        resp, flavor \u003d self.client.get_flavor_details(self.flavor_ref)"},{"line_number":33,"context_line":"        self.assertIn(flavor, flavors)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAVn%2F%2FwGY%3D","line":32,"in_reply_to":"AAAAVn%2F%2FwV4%3D","updated":"2014-03-04 09:49:31.000000000","message":"It tests LIST by making sure that the response body from a GET of the reference flavor is included in the response body of the LIST call. In other words,  the response of the GET call is being used to verify the response of the LIST call. I think this is a valid test scenario.","commit_id":"4c092c81f9875c6fee0ede32365b2ebc9cdc9ecb"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"74568f4915ae519f49d65422cf5cae78dfa9ba62","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    def test_get_flavor(self):"},{"line_number":37,"context_line":"        # The expected flavor details should be returned"},{"line_number":38,"context_line":"        resp, flavor \u003d self.client.get_flavor_details(self.flavor_ref)"},{"line_number":39,"context_line":"        self.assertEqual(self.flavor_ref, str(flavor[\u0027id\u0027]))"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    @test.attr(type\u003d\u0027gate\u0027)"},{"line_number":42,"context_line":"    def test_list_flavors_num_results(self):"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAVn%2F%2FwVg%3D","line":39,"updated":"2014-03-04 09:30:37.000000000","message":"Is there only one attr? Should be tested all returned attrs.","commit_id":"4c092c81f9875c6fee0ede32365b2ebc9cdc9ecb"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"604fd5e1f33e6f101a49eb81c496ac0d7ce03acd","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    def test_get_flavor(self):"},{"line_number":37,"context_line":"        # The expected flavor details should be returned"},{"line_number":38,"context_line":"        resp, flavor \u003d self.client.get_flavor_details(self.flavor_ref)"},{"line_number":39,"context_line":"        self.assertEqual(self.flavor_ref, str(flavor[\u0027id\u0027]))"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    @test.attr(type\u003d\u0027gate\u0027)"},{"line_number":42,"context_line":"    def test_list_flavors_num_results(self):"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAVn%2F%2Fv9k%3D","line":39,"in_reply_to":"AAAAVn%2F%2FwBE%3D","updated":"2014-03-04 10:26:31.000000000","message":"That sounds like a good idea. \nDone","commit_id":"4c092c81f9875c6fee0ede32365b2ebc9cdc9ecb"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"70861c3b6b5d78edc54f9b52e8eefec554c25fad","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    def test_get_flavor(self):"},{"line_number":37,"context_line":"        # The expected flavor details should be returned"},{"line_number":38,"context_line":"        resp, flavor \u003d self.client.get_flavor_details(self.flavor_ref)"},{"line_number":39,"context_line":"        self.assertEqual(self.flavor_ref, str(flavor[\u0027id\u0027]))"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    @test.attr(type\u003d\u0027gate\u0027)"},{"line_number":42,"context_line":"    def test_list_flavors_num_results(self):"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAVn%2F%2FwBE%3D","line":39,"in_reply_to":"AAAAVn%2F%2FwGU%3D","updated":"2014-03-04 10:02:52.000000000","message":"I meant existence of keys.","commit_id":"4c092c81f9875c6fee0ede32365b2ebc9cdc9ecb"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"281c9681d7ccebc21d24cdc9c86f4696910bb15f","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    def test_get_flavor(self):"},{"line_number":37,"context_line":"        # The expected flavor details should be returned"},{"line_number":38,"context_line":"        resp, flavor \u003d self.client.get_flavor_details(self.flavor_ref)"},{"line_number":39,"context_line":"        self.assertEqual(self.flavor_ref, str(flavor[\u0027id\u0027]))"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    @test.attr(type\u003d\u0027gate\u0027)"},{"line_number":42,"context_line":"    def test_list_flavors_num_results(self):"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAVn%2F%2FwGU%3D","line":39,"in_reply_to":"AAAAVn%2F%2FwVg%3D","updated":"2014-03-04 09:49:31.000000000","message":"The other attributes are changeable (eg. name, href, etc) so there\u0027s not much point in hard-coding their expected values here, I think. The flavors test for compute does something similar.","commit_id":"4c092c81f9875c6fee0ede32365b2ebc9cdc9ecb"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"74568f4915ae519f49d65422cf5cae78dfa9ba62","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    def test_list_flavors_num_results(self):"},{"line_number":43,"context_line":"        # Only the expected number of flavors should be returned"},{"line_number":44,"context_line":"        resp, flavors \u003d self.client.list_flavors()"},{"line_number":45,"context_line":"        self.assertEqual(7, len(flavors))"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":48,"context_line":"    def test_get_non_existant_flavor(self):"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAVn%2F%2FwP0%3D","line":45,"updated":"2014-03-04 09:30:37.000000000","message":"Who will create all this 7 flavors? I expect fail here for now.","commit_id":"4c092c81f9875c6fee0ede32365b2ebc9cdc9ecb"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"604fd5e1f33e6f101a49eb81c496ac0d7ce03acd","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    def test_list_flavors_num_results(self):"},{"line_number":43,"context_line":"        # Only the expected number of flavors should be returned"},{"line_number":44,"context_line":"        resp, flavors \u003d self.client.list_flavors()"},{"line_number":45,"context_line":"        self.assertEqual(7, len(flavors))"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":48,"context_line":"    def test_get_non_existant_flavor(self):"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAVn%2F%2Fv8o%3D","line":45,"in_reply_to":"AAAAVn%2F%2FwCM%3D","updated":"2014-03-04 10:26:31.000000000","message":"That\u0027s a good point. In that case, I vote for removing this test since flavor creation is not a user facing scenario.","commit_id":"4c092c81f9875c6fee0ede32365b2ebc9cdc9ecb"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"70861c3b6b5d78edc54f9b52e8eefec554c25fad","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    def test_list_flavors_num_results(self):"},{"line_number":43,"context_line":"        # Only the expected number of flavors should be returned"},{"line_number":44,"context_line":"        resp, flavors \u003d self.client.list_flavors()"},{"line_number":45,"context_line":"        self.assertEqual(7, len(flavors))"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":48,"context_line":"    def test_get_non_existant_flavor(self):"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAVn%2F%2FwCM%3D","line":45,"in_reply_to":"AAAAVn%2F%2FwMk%3D","updated":"2014-03-04 10:02:52.000000000","message":"This test suite uses common tenant, and it definitely will face race condition with other test suites, where flavors created. Also, there shouldn\u0027t be dependency on devstack-gate. \n\nIf amount of entities tested, it should use separated tenant, and all entities should be created by tempest\u0027s requests.","commit_id":"4c092c81f9875c6fee0ede32365b2ebc9cdc9ecb"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"281c9681d7ccebc21d24cdc9c86f4696910bb15f","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    def test_list_flavors_num_results(self):"},{"line_number":43,"context_line":"        # Only the expected number of flavors should be returned"},{"line_number":44,"context_line":"        resp, flavors \u003d self.client.list_flavors()"},{"line_number":45,"context_line":"        self.assertEqual(7, len(flavors))"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":48,"context_line":"    def test_get_non_existant_flavor(self):"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAVn%2F%2FwMk%3D","line":45,"in_reply_to":"AAAAVn%2F%2FwP0%3D","updated":"2014-03-04 09:49:31.000000000","message":"The trove devstack-gate scripts create the 7 flavors, so this should succeed.","commit_id":"4c092c81f9875c6fee0ede32365b2ebc9cdc9ecb"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"74568f4915ae519f49d65422cf5cae78dfa9ba62","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        self.assertEqual(7, len(flavors))"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":48,"context_line":"    def test_get_non_existant_flavor(self):"},{"line_number":49,"context_line":"        # flavor details are not returned for non-existent flavors"},{"line_number":50,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.get_flavor_details,"},{"line_number":51,"context_line":"                          999)"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAVn%2F%2FwUI%3D","line":48,"updated":"2014-03-04 09:30:37.000000000","message":"Negative tests should be in separate test suites.\n\nAnd I am not sure, but I suppose it should be like here: \n\ntempest/api/compute/flavors/test_flavors_negative.py\n\nUsing negative test-framework.\n\nIt is related to all new negative test suites.","commit_id":"4c092c81f9875c6fee0ede32365b2ebc9cdc9ecb"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"604fd5e1f33e6f101a49eb81c496ac0d7ce03acd","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        self.assertEqual(7, len(flavors))"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":48,"context_line":"    def test_get_non_existant_flavor(self):"},{"line_number":49,"context_line":"        # flavor details are not returned for non-existent flavors"},{"line_number":50,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.get_flavor_details,"},{"line_number":51,"context_line":"                          999)"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAVn%2F%2Fv9w%3D","line":48,"in_reply_to":"AAAAVn%2F%2FwB0%3D","updated":"2014-03-04 10:26:31.000000000","message":"Done","commit_id":"4c092c81f9875c6fee0ede32365b2ebc9cdc9ecb"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"70861c3b6b5d78edc54f9b52e8eefec554c25fad","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        self.assertEqual(7, len(flavors))"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":48,"context_line":"    def test_get_non_existant_flavor(self):"},{"line_number":49,"context_line":"        # flavor details are not returned for non-existent flavors"},{"line_number":50,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.get_flavor_details,"},{"line_number":51,"context_line":"                          999)"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAVn%2F%2FwB0%3D","line":48,"in_reply_to":"AAAAVn%2F%2FwLo%3D","updated":"2014-03-04 10:02:52.000000000","message":"Separation definitely should be, use or not negative test-framework - TBD.","commit_id":"4c092c81f9875c6fee0ede32365b2ebc9cdc9ecb"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"281c9681d7ccebc21d24cdc9c86f4696910bb15f","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        self.assertEqual(7, len(flavors))"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":48,"context_line":"    def test_get_non_existant_flavor(self):"},{"line_number":49,"context_line":"        # flavor details are not returned for non-existent flavors"},{"line_number":50,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.get_flavor_details,"},{"line_number":51,"context_line":"                          999)"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAVn%2F%2FwLo%3D","line":48,"in_reply_to":"AAAAVn%2F%2FwUI%3D","updated":"2014-03-04 09:49:31.000000000","message":"Any ideas why this is the case? I can move this out, but it seems a bit overkill to me to have a whole new module with just 1 negative test. Especially when the test is related to the other flavors api tests which are part of this module.","commit_id":"4c092c81f9875c6fee0ede32365b2ebc9cdc9ecb"}],"tempest/api/database/flavors/test_flavors_negative.py":[{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"535fd91e23933082d45e8ad98686abd4176aeb85","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":29,"context_line":"    def test_get_non_existant_flavor(self):"},{"line_number":30,"context_line":"        # flavor details are not returned for non-existent flavors"},{"line_number":31,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.get_flavor_details,"},{"line_number":32,"context_line":"                          999)"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAAVn%2F%2Fqm4%3D","line":31,"updated":"2014-03-04 19:17:43.000000000","message":"I\u0027m not sure it\u0027s a safe assumption that flavor 999 does not exists.","commit_id":"9b76fba42be1bc3f45935960d452d2981f176f6e"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"84394fe06ac7f8c277ceb7ba40da8fed1360d8f6","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":29,"context_line":"    def test_get_non_existant_flavor(self):"},{"line_number":30,"context_line":"        # flavor details are not returned for non-existent flavors"},{"line_number":31,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.get_flavor_details,"},{"line_number":32,"context_line":"                          999)"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAAVn%2F%2FkxY%3D","line":31,"in_reply_to":"AAAAVn%2F%2Fqm4%3D","updated":"2014-03-05 09:31:27.000000000","message":"Done, replaced with -1 which should not exist.","commit_id":"9b76fba42be1bc3f45935960d452d2981f176f6e"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"c4cda409eced98709e591033c19907e800f2e0fe","unresolved":false,"context_lines":[{"line_number":26,"context_line":"        cls.client \u003d cls.database_flavors_client"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":29,"context_line":"    def test_get_non_existant_db_flavor(self):"},{"line_number":30,"context_line":"        # flavor details are not returned for non-existent flavors"},{"line_number":31,"context_line":"        self.assertRaises(exceptions.NotFound,"},{"line_number":32,"context_line":"                          self.client.get_db_flavor_details, 999)"}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAAVn%2F%2Fl80%3D","line":29,"updated":"2014-03-05 06:38:59.000000000","message":"s/existant/existent ?","commit_id":"6296d9c47a45572bcc344b799ba3305ce76c8e9b"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"c4cda409eced98709e591033c19907e800f2e0fe","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    def test_get_non_existant_db_flavor(self):"},{"line_number":30,"context_line":"        # flavor details are not returned for non-existent flavors"},{"line_number":31,"context_line":"        self.assertRaises(exceptions.NotFound,"},{"line_number":32,"context_line":"                          self.client.get_db_flavor_details, 999)"}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAAVn%2F%2Fl7o%3D","line":32,"updated":"2014-03-05 06:38:59.000000000","message":"I feel 999 is not enough for non-existent number. Can we use -1 or 0 or 9999999999 for that?\nThis is not so strong opinion. Because I think there will be no problem in the gate with 999.","commit_id":"6296d9c47a45572bcc344b799ba3305ce76c8e9b"},{"author":{"_account_id":8085,"name":"anju Tiwari","email":"anjutiwari5@gmail.com","username":"Anju"},"change_message_id":"a0d64c65ba3c960f005762d4a3698867fcecd63c","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    def test_get_non_existent_db_flavor(self):"},{"line_number":30,"context_line":"        # flavor details are not returned for non-existent flavors"},{"line_number":31,"context_line":"        self.assertRaises(exceptions.NotFound,"},{"line_number":32,"context_line":"                          self.client.get_db_flavor_details, -1)"}],"source_content_type":"text/x-python","patch_set":21,"id":"AAAAVn%2F%2FZ%2Bk%3D","line":32,"updated":"2014-03-06 09:28:52.000000000","message":"I think in place of -1 , you should use a random flavor.","commit_id":"dd6886f7c633b2a3a49fef30cde82b7c9dee1512"}],"tempest/config.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"2e579010e9ed65071eb34f541ddd08d665d382ce","unresolved":false,"context_lines":[{"line_number":493,"context_line":"    cfg.StrOpt(\u0027catalog_type\u0027,"},{"line_number":494,"context_line":"               default\u003d\u0027database\u0027,"},{"line_number":495,"context_line":"               help\u003d\"Catalog type of the Database service.\"),"},{"line_number":496,"context_line":"    cfg.IntOpt(\u0027flavor_ref\u0027,"},{"line_number":497,"context_line":"               default\u003d1,"},{"line_number":498,"context_line":"               help\u003d\"Valid primary flavor to use in tests.\"),"},{"line_number":499,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2F7HU%3D","line":496,"updated":"2014-03-03 11:59:27.000000000","message":"This Opt should be \"StrOpt\", because id can be not only integer, but UUID4 too.","commit_id":"c57f25674d66d9d889df996ce4f74f8f730d0d39"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"09d53e9a2bed617ab1eaef57fc3b88230d8cec3e","unresolved":false,"context_lines":[{"line_number":493,"context_line":"    cfg.StrOpt(\u0027catalog_type\u0027,"},{"line_number":494,"context_line":"               default\u003d\u0027database\u0027,"},{"line_number":495,"context_line":"               help\u003d\"Catalog type of the Database service.\"),"},{"line_number":496,"context_line":"    cfg.IntOpt(\u0027flavor_ref\u0027,"},{"line_number":497,"context_line":"               default\u003d1,"},{"line_number":498,"context_line":"               help\u003d\"Valid primary flavor to use in tests.\"),"},{"line_number":499,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2F28k%3D","line":496,"in_reply_to":"AAAAVn%2F%2F7HU%3D","updated":"2014-03-04 02:06:57.000000000","message":"Done","commit_id":"c57f25674d66d9d889df996ce4f74f8f730d0d39"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"2e579010e9ed65071eb34f541ddd08d665d382ce","unresolved":false,"context_lines":[{"line_number":494,"context_line":"               default\u003d\u0027database\u0027,"},{"line_number":495,"context_line":"               help\u003d\"Catalog type of the Database service.\"),"},{"line_number":496,"context_line":"    cfg.IntOpt(\u0027flavor_ref\u0027,"},{"line_number":497,"context_line":"               default\u003d1,"},{"line_number":498,"context_line":"               help\u003d\"Valid primary flavor to use in tests.\"),"},{"line_number":499,"context_line":"]"},{"line_number":500,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2F7HI%3D","line":497,"updated":"2014-03-03 11:59:27.000000000","message":"And default value should be a string.","commit_id":"c57f25674d66d9d889df996ce4f74f8f730d0d39"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"09d53e9a2bed617ab1eaef57fc3b88230d8cec3e","unresolved":false,"context_lines":[{"line_number":494,"context_line":"               default\u003d\u0027database\u0027,"},{"line_number":495,"context_line":"               help\u003d\"Catalog type of the Database service.\"),"},{"line_number":496,"context_line":"    cfg.IntOpt(\u0027flavor_ref\u0027,"},{"line_number":497,"context_line":"               default\u003d1,"},{"line_number":498,"context_line":"               help\u003d\"Valid primary flavor to use in tests.\"),"},{"line_number":499,"context_line":"]"},{"line_number":500,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2F28g%3D","line":497,"in_reply_to":"AAAAVn%2F%2F7HI%3D","updated":"2014-03-04 02:06:57.000000000","message":"Done","commit_id":"c57f25674d66d9d889df996ce4f74f8f730d0d39"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"2e579010e9ed65071eb34f541ddd08d665d382ce","unresolved":false,"context_lines":[{"line_number":896,"context_line":"        self.object_storage \u003d cfg.CONF[\u0027object-storage\u0027]"},{"line_number":897,"context_line":"        self.object_storage_feature_enabled \u003d cfg.CONF["},{"line_number":898,"context_line":"            \u0027object-storage-feature-enabled\u0027]"},{"line_number":899,"context_line":"        self.database \u003d cfg.CONF[\u0027database\u0027]"},{"line_number":900,"context_line":"        self.orchestration \u003d cfg.CONF.orchestration"},{"line_number":901,"context_line":"        self.telemetry \u003d cfg.CONF.telemetry"},{"line_number":902,"context_line":"        self.dashboard \u003d cfg.CONF.dashboard"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2F7Gs%3D","line":899,"updated":"2014-03-03 11:59:27.000000000","message":"Why not in this way:\n\nself.database \u003d cfg.CONF.database\n\n?","commit_id":"c57f25674d66d9d889df996ce4f74f8f730d0d39"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"09d53e9a2bed617ab1eaef57fc3b88230d8cec3e","unresolved":false,"context_lines":[{"line_number":896,"context_line":"        self.object_storage \u003d cfg.CONF[\u0027object-storage\u0027]"},{"line_number":897,"context_line":"        self.object_storage_feature_enabled \u003d cfg.CONF["},{"line_number":898,"context_line":"            \u0027object-storage-feature-enabled\u0027]"},{"line_number":899,"context_line":"        self.database \u003d cfg.CONF[\u0027database\u0027]"},{"line_number":900,"context_line":"        self.orchestration \u003d cfg.CONF.orchestration"},{"line_number":901,"context_line":"        self.telemetry \u003d cfg.CONF.telemetry"},{"line_number":902,"context_line":"        self.dashboard \u003d cfg.CONF.dashboard"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2FzYc%3D","line":899,"in_reply_to":"AAAAVn%2F%2F7Gs%3D","updated":"2014-03-04 02:06:57.000000000","message":"Done","commit_id":"c57f25674d66d9d889df996ce4f74f8f730d0d39"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"74568f4915ae519f49d65422cf5cae78dfa9ba62","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAVn%2F%2FwTs%3D","line":1,"updated":"2014-03-04 09:30:37.000000000","message":"This was mentioned only for new files. Here it shouldn\u0027t be changed.","commit_id":"4c092c81f9875c6fee0ede32365b2ebc9cdc9ecb"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"281c9681d7ccebc21d24cdc9c86f4696910bb15f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAVn%2F%2FwFQ%3D","line":1,"in_reply_to":"AAAAVn%2F%2FwTs%3D","updated":"2014-03-04 09:49:31.000000000","message":"Done","commit_id":"4c092c81f9875c6fee0ede32365b2ebc9cdc9ecb"}],"tempest/services/database/json/flavors_client.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"aeaa58d62d58ec81109dd41b24f1f385f61644ed","unresolved":false,"context_lines":[{"line_number":16,"context_line":"import json"},{"line_number":17,"context_line":"import urllib"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from tempest.common.rest_client import RestClient"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"class FlavorsClientJSON(RestClient):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2BxE8%3D","line":19,"updated":"2014-02-19 07:20:17.000000000","message":"Here should be imported module. See http://docs.openstack.org/developer/hacking/","commit_id":"0674f4abb5b4ab92198d099042a32a75eebc50de"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"0725c2615863e1fd43e1ff2b9a9aac87c6746d8f","unresolved":false,"context_lines":[{"line_number":16,"context_line":"import json"},{"line_number":17,"context_line":"import urllib"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from tempest.common.rest_client import RestClient"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"class FlavorsClientJSON(RestClient):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2F8G8%3D","line":19,"in_reply_to":"AAAAUX%2F%2BxE8%3D","updated":"2014-03-03 09:58:02.000000000","message":"Done","commit_id":"0674f4abb5b4ab92198d099042a32a75eebc50de"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"aeaa58d62d58ec81109dd41b24f1f385f61644ed","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    def __init__(self, config, username, password, auth_url, tenant_name\u003dNone):"},{"line_number":25,"context_line":"        super(FlavorsClientJSON, self).__init__(config, username, password,"},{"line_number":26,"context_line":"                                                auth_url, tenant_name)"},{"line_number":27,"context_line":"        self.service \u003d self.config.compute.catalog_type"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def list_flavors(self, params\u003dNone):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2BxDc%3D","line":26,"updated":"2014-02-19 07:20:17.000000000","message":"See commit with changes to rest_client: https://github.com/openstack/tempest/commit/8bbdb1660f47ad9919ecb262801fceee3a1a5b0b\n\nThis is incompatible with current rest client.","commit_id":"0674f4abb5b4ab92198d099042a32a75eebc50de"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"0725c2615863e1fd43e1ff2b9a9aac87c6746d8f","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    def __init__(self, config, username, password, auth_url, tenant_name\u003dNone):"},{"line_number":25,"context_line":"        super(FlavorsClientJSON, self).__init__(config, username, password,"},{"line_number":26,"context_line":"                                                auth_url, tenant_name)"},{"line_number":27,"context_line":"        self.service \u003d self.config.compute.catalog_type"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def list_flavors(self, params\u003dNone):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2F8G4%3D","line":26,"in_reply_to":"AAAAUX%2F%2BxDc%3D","updated":"2014-03-03 09:58:02.000000000","message":"Done","commit_id":"0674f4abb5b4ab92198d099042a32a75eebc50de"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"aeaa58d62d58ec81109dd41b24f1f385f61644ed","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    def __init__(self, config, username, password, auth_url, tenant_name\u003dNone):"},{"line_number":25,"context_line":"        super(FlavorsClientJSON, self).__init__(config, username, password,"},{"line_number":26,"context_line":"                                                auth_url, tenant_name)"},{"line_number":27,"context_line":"        self.service \u003d self.config.compute.catalog_type"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def list_flavors(self, params\u003dNone):"},{"line_number":30,"context_line":"        url \u003d \u0027flavors\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2BxEw%3D","line":27,"updated":"2014-02-19 07:20:17.000000000","message":"self.config should be replaced with global config.","commit_id":"0674f4abb5b4ab92198d099042a32a75eebc50de"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"0725c2615863e1fd43e1ff2b9a9aac87c6746d8f","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    def __init__(self, config, username, password, auth_url, tenant_name\u003dNone):"},{"line_number":25,"context_line":"        super(FlavorsClientJSON, self).__init__(config, username, password,"},{"line_number":26,"context_line":"                                                auth_url, tenant_name)"},{"line_number":27,"context_line":"        self.service \u003d self.config.compute.catalog_type"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def list_flavors(self, params\u003dNone):"},{"line_number":30,"context_line":"        url \u003d \u0027flavors\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2F8GA%3D","line":27,"in_reply_to":"AAAAUX%2F%2BxEw%3D","updated":"2014-03-03 09:58:02.000000000","message":"Done","commit_id":"0674f4abb5b4ab92198d099042a32a75eebc50de"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"aeaa58d62d58ec81109dd41b24f1f385f61644ed","unresolved":false,"context_lines":[{"line_number":32,"context_line":"            url +\u003d \u0027?%s\u0027 % urllib.urlencode(params)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"        resp, body \u003d self.get(url)"},{"line_number":35,"context_line":"        body \u003d json.loads(body)"},{"line_number":36,"context_line":"        return resp, body[\u0027flavors\u0027]"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def get_flavor_details(self, flavor_id):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2BxEI%3D","line":35,"updated":"2014-02-19 07:20:17.000000000","message":"Lines \n\nbody \u003d json.loads(body)\n\nreturn resp, body[\u0027flavors\u0027]\n\ncan be replaced with :\n\nreturn resp, self._parse_resp(body)","commit_id":"0674f4abb5b4ab92198d099042a32a75eebc50de"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"0725c2615863e1fd43e1ff2b9a9aac87c6746d8f","unresolved":false,"context_lines":[{"line_number":32,"context_line":"            url +\u003d \u0027?%s\u0027 % urllib.urlencode(params)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"        resp, body \u003d self.get(url)"},{"line_number":35,"context_line":"        body \u003d json.loads(body)"},{"line_number":36,"context_line":"        return resp, body[\u0027flavors\u0027]"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def get_flavor_details(self, flavor_id):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2F8EU%3D","line":35,"in_reply_to":"AAAAUX%2F%2BxEI%3D","updated":"2014-03-03 09:58:02.000000000","message":"I think this is a bit more clear in detailing what is exactly being returned.","commit_id":"0674f4abb5b4ab92198d099042a32a75eebc50de"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"aeaa58d62d58ec81109dd41b24f1f385f61644ed","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def get_flavor_details(self, flavor_id):"},{"line_number":39,"context_line":"        resp, body \u003d self.get(\"flavors/%s\" % str(flavor_id))"},{"line_number":40,"context_line":"        body \u003d json.loads(body)"},{"line_number":41,"context_line":"        return resp, body[\u0027flavor\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2BxEE%3D","line":40,"updated":"2014-02-19 07:20:17.000000000","message":"ditto","commit_id":"0674f4abb5b4ab92198d099042a32a75eebc50de"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"0725c2615863e1fd43e1ff2b9a9aac87c6746d8f","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def get_flavor_details(self, flavor_id):"},{"line_number":39,"context_line":"        resp, body \u003d self.get(\"flavors/%s\" % str(flavor_id))"},{"line_number":40,"context_line":"        body \u003d json.loads(body)"},{"line_number":41,"context_line":"        return resp, body[\u0027flavor\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2F8EY%3D","line":40,"in_reply_to":"AAAAUX%2F%2BxEE%3D","updated":"2014-03-03 09:58:02.000000000","message":"I think this is a bit more clear in detailing what is exactly being returned.","commit_id":"0674f4abb5b4ab92198d099042a32a75eebc50de"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"2e579010e9ed65071eb34f541ddd08d665d382ce","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2012 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2F7L0%3D","line":1,"updated":"2014-03-03 11:59:27.000000000","message":"Is it right year?","commit_id":"c57f25674d66d9d889df996ce4f74f8f730d0d39"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"09d53e9a2bed617ab1eaef57fc3b88230d8cec3e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2012 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2F2vI%3D","line":1,"in_reply_to":"AAAAVn%2F%2F7L0%3D","updated":"2014-03-04 02:06:57.000000000","message":"Done","commit_id":"c57f25674d66d9d889df996ce4f74f8f730d0d39"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"2e579010e9ed65071eb34f541ddd08d665d382ce","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        resp, body \u003d self.get(url)"},{"line_number":36,"context_line":"        body \u003d json.loads(body)"},{"line_number":37,"context_line":"        return resp, body[\u0027flavors\u0027]"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def get_flavor_details(self, flavor_id):"},{"line_number":40,"context_line":"        resp, body \u003d self.get(\"flavors/%s\" % str(flavor_id))"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2F7LY%3D","line":37,"updated":"2014-03-03 11:59:27.000000000","message":"Lines 36_37 and 41_42 can be replaced with:\n\nreturn resp, self_parse_resp(body)","commit_id":"c57f25674d66d9d889df996ce4f74f8f730d0d39"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"09d53e9a2bed617ab1eaef57fc3b88230d8cec3e","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        resp, body \u003d self.get(url)"},{"line_number":36,"context_line":"        body \u003d json.loads(body)"},{"line_number":37,"context_line":"        return resp, body[\u0027flavors\u0027]"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def get_flavor_details(self, flavor_id):"},{"line_number":40,"context_line":"        resp, body \u003d self.get(\"flavors/%s\" % str(flavor_id))"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2F28U%3D","line":37,"in_reply_to":"AAAAVn%2F%2F7LY%3D","updated":"2014-03-04 02:06:57.000000000","message":"Done","commit_id":"c57f25674d66d9d889df996ce4f74f8f730d0d39"}]}
