)]}'
{"tempest/tests/compute/test_live_block_migration.py":[{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"070393fc1a053b3c7920f7953e35cdfaba212efc","unresolved":false,"context_lines":[{"line_number":89,"context_line":"    @attr(type\u003d\u0027positive\u0027)"},{"line_number":90,"context_line":"    def test_live_block_migration(self):"},{"line_number":91,"context_line":"        # Live block migrate an instance to another host"},{"line_number":92,"context_line":"        if not self.config.compute.live_migration_available:"},{"line_number":93,"context_line":"            raise self.skipTest("},{"line_number":94,"context_line":"                \"Block live migration not configured\")"},{"line_number":95,"context_line":"        if len(self._get_compute_hostnames()) \u003c 2:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2F99Q%3D","line":92,"updated":"2013-04-09 19:45:48.000000000","message":"Why you can\u0027t keep it as a decorator ?","commit_id":"d50f8b26d45b27de983c9e36b54d7073f7e3858d"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"af9ce8b174e9bbbdbdd85092344f8b6dfe59dc8f","unresolved":false,"context_lines":[{"line_number":89,"context_line":"    @attr(type\u003d\u0027positive\u0027)"},{"line_number":90,"context_line":"    def test_live_block_migration(self):"},{"line_number":91,"context_line":"        # Live block migrate an instance to another host"},{"line_number":92,"context_line":"        if not self.config.compute.live_migration_available:"},{"line_number":93,"context_line":"            raise self.skipTest("},{"line_number":94,"context_line":"                \"Block live migration not configured\")"},{"line_number":95,"context_line":"        if len(self._get_compute_hostnames()) \u003c 2:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2F9IE%3D","line":92,"in_reply_to":"AAAAOn%2F%2F90A%3D","updated":"2013-04-10 10:23:04.000000000","message":"Agreed regarding prefering the decorator.  I tested using BaseTestCase and base.BaseComputeAdminTest (which we inherit from in this test case) - neither know of config at the time of a skipIf decorator.  Is this the condition that your change is intending to resolve?\n\n    @testtools.skipIf(not BaseTestCase.config.live_migration_available,\nAttributeError: type object \u0027BaseTestCase\u0027 has no attribute \u0027config\u0027","commit_id":"d50f8b26d45b27de983c9e36b54d7073f7e3858d"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"04fb62d43d4113b85983f7bd1059d886296fc6a9","unresolved":false,"context_lines":[{"line_number":89,"context_line":"    @attr(type\u003d\u0027positive\u0027)"},{"line_number":90,"context_line":"    def test_live_block_migration(self):"},{"line_number":91,"context_line":"        # Live block migrate an instance to another host"},{"line_number":92,"context_line":"        if not self.config.compute.live_migration_available:"},{"line_number":93,"context_line":"            raise self.skipTest("},{"line_number":94,"context_line":"                \"Block live migration not configured\")"},{"line_number":95,"context_line":"        if len(self._get_compute_hostnames()) \u003c 2:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2F90A%3D","line":92,"in_reply_to":"AAAAOn%2F%2F97A%3D","updated":"2013-04-09 21:27:13.000000000","message":"Config is a class variable.\n\nBaseTestCase.config \u003d config.TempestConfig()\n\nYou should be able it access it as a base class without self.\nThe real question does it gets the correct value in time.\nhttps://review.openstack.org/#/c/26534/\n\nWhy you can not use multiple decorators ?\n\nI prefer the decorators because easier to find (grep) them.","commit_id":"d50f8b26d45b27de983c9e36b54d7073f7e3858d"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"1bd41041670b3402683f251c903c9fb789826cbb","unresolved":false,"context_lines":[{"line_number":89,"context_line":"    @attr(type\u003d\u0027positive\u0027)"},{"line_number":90,"context_line":"    def test_live_block_migration(self):"},{"line_number":91,"context_line":"        # Live block migrate an instance to another host"},{"line_number":92,"context_line":"        if not self.config.compute.live_migration_available:"},{"line_number":93,"context_line":"            raise self.skipTest("},{"line_number":94,"context_line":"                \"Block live migration not configured\")"},{"line_number":95,"context_line":"        if len(self._get_compute_hostnames()) \u003c 2:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2F97A%3D","line":92,"in_reply_to":"AAAAOn%2F%2F99Q%3D","updated":"2013-04-09 20:11:13.000000000","message":"The decorator doesn\u0027t have access to \u0027self\u0027 which is why they were defined on the class.\n\nThis way we can separate the messages based on which config value is not set.","commit_id":"d50f8b26d45b27de983c9e36b54d7073f7e3858d"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"c2431ed0ab929a6658a7f8c06cb945ca86091d35","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    _host_key \u003d \u0027OS-EXT-SRV-ATTR:host\u0027"},{"line_number":32,"context_line":"    _interface \u003d \u0027json\u0027"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    CONF \u003d config.TempestConfig()"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    @classmethod"},{"line_number":37,"context_line":"    def setUpClass(cls):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAOn%2F%2FwkU%3D","line":34,"updated":"2013-04-24 15:13:22.000000000","message":"It will be provided by the base class when it is possible.\n\nNow, it is good.","commit_id":"0ee250c14437d2b17d0a6c02086b038bd390991d"}]}
