)]}'
{"etc/tempest.conf.sample":[{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"71549b665676aa20b000f41f7021ad02ad06b36a","unresolved":false,"context_lines":[{"line_number":266,"context_line":"#image_alt_ssh_password\u003dpassword"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"# Time in seconds between build status checks. (integer value)"},{"line_number":269,"context_line":"#build_interval\u003d1"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"# Timeout in seconds to wait for an instance to build."},{"line_number":272,"context_line":"# (integer value)"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"1abeadc6_bc45eab4","side":"PARENT","line":269,"updated":"2014-08-26 11:37:15.000000000","message":"I have no idea why the script removed this and the others.\nI guess the should not be removed.","commit_id":"9cfa75e3af8098fe676d38880ab0f345df424472"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"ffd62a84ab87cb38c87ece149f76d9cec6b91ecc","unresolved":false,"context_lines":[{"line_number":363,"context_line":"#allow_tenant_isolation\u003dfalse"},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"# Time in seconds between build status checks. (integer value)"},{"line_number":366,"context_line":"#build_interval\u003d1"},{"line_number":367,"context_line":""},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"[compute-admin]"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"1abeadc6_0fc5bd3c","side":"PARENT","line":366,"updated":"2014-08-26 13:41:59.000000000","message":"I\u0027ve just run generate_sample.sh I don\u0027t know why this parameter and others were removed as I did not touch them.","commit_id":"f0b76a14273f4af84e552e3c0024b9bd09dc8a53"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"da813f8e8045531db3b6d0645657ac0d1401dc0e","unresolved":false,"context_lines":[{"line_number":363,"context_line":"#allow_tenant_isolation\u003dfalse"},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"# Time in seconds between build status checks. (integer value)"},{"line_number":366,"context_line":"#build_interval\u003d1"},{"line_number":367,"context_line":""},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"[compute-admin]"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"fa98f980_aa82dcfd","side":"PARENT","line":366,"in_reply_to":"1abeadc6_0fc5bd3c","updated":"2014-09-09 14:57:17.000000000","message":"Yeah the script behaves weirdly sometimes, especially around the options which are duplicated between groups. (which is a problem by itself)","commit_id":"f0b76a14273f4af84e552e3c0024b9bd09dc8a53"}],"tempest/scenario/test_load_balancer_basic.py":[{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"71549b665676aa20b000f41f7021ad02ad06b36a","unresolved":false,"context_lines":[{"line_number":288,"context_line":"            self.assertEqual(expected,"},{"line_number":289,"context_line":"                             set(resp))"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"    @test.attr(type\u003d\u0027gate\u0027)"},{"line_number":292,"context_line":"    @test.services(\u0027compute\u0027, \u0027network\u0027)"},{"line_number":293,"context_line":"    def test_load_balancer_basic(self):"},{"line_number":294,"context_line":"        self._create_server(\u0027server1\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_dc78e6fa","line":291,"updated":"2014-08-26 11:37:15.000000000","message":"whoops sorry this is being addressed somewhere else!","commit_id":"56f4f4653cd6429232abe2785f26e2d34a9c4980"}],"tempest/test.py":[{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"71549b665676aa20b000f41f7021ad02ad06b36a","unresolved":false,"context_lines":[{"line_number":221,"context_line":"        \u0027volume\u0027: CONF.volume_feature_disabled.api_extensions,"},{"line_number":222,"context_line":"        \u0027network\u0027: CONF.network_feature_disabled.api_extensions,"},{"line_number":223,"context_line":"        \u0027object\u0027: CONF.object_storage_feature_disabled.discoverable_apis,"},{"line_number":224,"context_line":"    }"},{"line_number":225,"context_line":"    if len(enabled_config_dict[service]) \u003d\u003d 0:"},{"line_number":226,"context_line":"        return False"},{"line_number":227,"context_line":"    if extension_name in disabled_config_dict[service]:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1abeadc6_9780098d","line":224,"updated":"2014-08-26 11:37:15.000000000","message":"The alternative approach here would be call cmd/verify_tempest_config.py -r in devstack and compute the actual list of extensions to be enabled.\n\nPro: this will save us the addition of 5 config parameters for tempest\nCons: this will add a devstack step which needs to be executed once services are up and running. Also it might end up creating extremely long lists for api_extensions in \u003cxxx\u003e_feature_enabled sections","commit_id":"56f4f4653cd6429232abe2785f26e2d34a9c4980"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"ffd62a84ab87cb38c87ece149f76d9cec6b91ecc","unresolved":false,"context_lines":[{"line_number":221,"context_line":"        \u0027volume\u0027: CONF.volume_feature_disabled.api_extensions,"},{"line_number":222,"context_line":"        \u0027network\u0027: CONF.network_feature_disabled.api_extensions,"},{"line_number":223,"context_line":"        \u0027object\u0027: CONF.object_storage_feature_disabled.discoverable_apis,"},{"line_number":224,"context_line":"    }"},{"line_number":225,"context_line":"    if len(enabled_config_dict[service]) \u003d\u003d 0:"},{"line_number":226,"context_line":"        return False"},{"line_number":227,"context_line":"    if extension_name in disabled_config_dict[service]:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1abeadc6_4f9a556f","line":224,"updated":"2014-08-26 13:41:59.000000000","message":"The alternative approach here would be to call cmd/verify_tempest_config.py -r in devstack and compute the actual list of extensions to be enabled.\n\nPros: this will save us the addition of 5 config parameters for tempest\n\nCons: this will add a devstack step which needs to be executed once services are up and running. Also it might end up creating extremely long lists for api_extensions in \u003cxxx\u003e_feature_enabled sections","commit_id":"4328ce4ec83b909ec33c1a2a89bb9cc0cfdcf0d1"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"da813f8e8045531db3b6d0645657ac0d1401dc0e","unresolved":false,"context_lines":[{"line_number":221,"context_line":"        \u0027volume\u0027: CONF.volume_feature_disabled.api_extensions,"},{"line_number":222,"context_line":"        \u0027network\u0027: CONF.network_feature_disabled.api_extensions,"},{"line_number":223,"context_line":"        \u0027object\u0027: CONF.object_storage_feature_disabled.discoverable_apis,"},{"line_number":224,"context_line":"    }"},{"line_number":225,"context_line":"    if len(enabled_config_dict[service]) \u003d\u003d 0:"},{"line_number":226,"context_line":"        return False"},{"line_number":227,"context_line":"    if extension_name in disabled_config_dict[service]:"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_e5cdf5b8","line":224,"in_reply_to":"1abeadc6_4f9a556f","updated":"2014-09-09 14:57:17.000000000","message":"I\u0027m thinking the devstack approach might be better. I think the disabled extensions opt might be a bit confusing by itself. Like what happens if you don\u0027t have enabled set to all, but then list extensions in disabled. Also have a few api tests around extension list which use the existing api_extensions options to verify that something is in the list. But if with the new options\n\nWe\u0027ve talked about doing the disabled/exclude a couple of times before, but we\u0027ve been resistant to doing it in the past. (I can try to dig them up)\n\nOn the devstack side, I\u0027m not too worried about adding the devstack step. Tempest has to be the last thing brought up anyway because it needs to know the configurations of the services, and we already run some client commands to setup up the env and images for tempest. As for the long lists I agree, it\u0027s definitely a downside with the single option approach.\n\nBut, that being said I\u0027ll defer to what you think is best, since you\u0027re the one who\u0027s actually working on this.","commit_id":"4328ce4ec83b909ec33c1a2a89bb9cc0cfdcf0d1"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"e91b7f93a07713588228e37c3d07d0317076a028","unresolved":false,"context_lines":[{"line_number":221,"context_line":"        \u0027volume\u0027: CONF.volume_feature_disabled.api_extensions,"},{"line_number":222,"context_line":"        \u0027network\u0027: CONF.network_feature_disabled.api_extensions,"},{"line_number":223,"context_line":"        \u0027object\u0027: CONF.object_storage_feature_disabled.discoverable_apis,"},{"line_number":224,"context_line":"    }"},{"line_number":225,"context_line":"    if len(enabled_config_dict[service]) \u003d\u003d 0:"},{"line_number":226,"context_line":"        return False"},{"line_number":227,"context_line":"    if extension_name in disabled_config_dict[service]:"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_16a5eab4","line":224,"in_reply_to":"fa98f980_e5cdf5b8","updated":"2014-09-17 22:44:44.000000000","message":"I agree with you that having explicit tempest options for disabled extensions can be confusing. Especially considering the semantics of enabled_extensions which by default are \u0027all\u0027. This indeed makes enabled/disabled extension options mutually exclusive.\nThis is something I\u0027ve noticed in the devstack-gate patch where we need to have this kind of behaviour as otherwise compiling features.yaml will be too difficult.\n\nAdding the devstack step should not be hard. It\u0027s definetely worth a try.\nI think the best thing I can do is to code the alternative with querying extensions in devstack once the services are running, and see what works best once the code is ready.","commit_id":"4328ce4ec83b909ec33c1a2a89bb9cc0cfdcf0d1"}]}
