)]}'
{"tempest/test.py":[{"author":{"_account_id":5174,"name":"Mauro Sergio Martins Rodrigues","email":"maurosr@linux.vnet.ibm.com","username":"maurosr"},"change_message_id":"ab16c0cd70e93bf09c25beeb28be3e74f46dd9d1","unresolved":false,"context_lines":[{"line_number":115,"context_line":"    exercised by a test case."},{"line_number":116,"context_line":"    \"\"\""},{"line_number":117,"context_line":"    def decorator(f):"},{"line_number":118,"context_line":"        services \u003d [\u0027compute\u0027, \u0027image\u0027, \u0027baremetal\u0027, \u0027volume\u0027, \u0027orchesatrtion\u0027,"},{"line_number":119,"context_line":"                    \u0027network\u0027, \u0027identity\u0027, \u0027object_storage\u0027, \u0027dashboard\u0027,"},{"line_number":120,"context_line":"                    \u0027ceilometer\u0027, \u0027data_processing\u0027]"},{"line_number":121,"context_line":"        for service in args:"}],"source_content_type":"text/x-python","patch_set":2,"id":"baada198_2cebcfdd","line":118,"updated":"2014-08-12 03:08:02.000000000","message":"typo in orchestration","commit_id":"81ee27ac7f0cf9013c97717b1463912b22f25d41"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"a32135152cf18ccf4e36350d7e6e137038f854b9","unresolved":false,"context_lines":[{"line_number":115,"context_line":"    exercised by a test case."},{"line_number":116,"context_line":"    \"\"\""},{"line_number":117,"context_line":"    def decorator(f):"},{"line_number":118,"context_line":"        services \u003d [\u0027compute\u0027, \u0027image\u0027, \u0027baremetal\u0027, \u0027volume\u0027, \u0027orchesatrtion\u0027,"},{"line_number":119,"context_line":"                    \u0027network\u0027, \u0027identity\u0027, \u0027object_storage\u0027, \u0027dashboard\u0027,"},{"line_number":120,"context_line":"                    \u0027ceilometer\u0027, \u0027data_processing\u0027]"},{"line_number":121,"context_line":"        for service in args:"}],"source_content_type":"text/x-python","patch_set":2,"id":"baada198_45a27fad","line":118,"in_reply_to":"baada198_2cebcfdd","updated":"2014-08-12 14:58:23.000000000","message":"Ugh. Thanks, nice catch.","commit_id":"81ee27ac7f0cf9013c97717b1463912b22f25d41"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"71d872387d2dc8e61413d6c4b3f89053ac5f67a0","unresolved":false,"context_lines":[{"line_number":115,"context_line":"    exercised by a test case."},{"line_number":116,"context_line":"    \"\"\""},{"line_number":117,"context_line":"    def decorator(f):"},{"line_number":118,"context_line":"        services \u003d [\u0027compute\u0027, \u0027image\u0027, \u0027baremetal\u0027, \u0027volume\u0027, \u0027orchestration\u0027,"},{"line_number":119,"context_line":"                    \u0027network\u0027, \u0027identity\u0027, \u0027object_storage\u0027, \u0027dashboard\u0027,"},{"line_number":120,"context_line":"                    \u0027ceilometer\u0027, \u0027data_processing\u0027]"},{"line_number":121,"context_line":"        for service in args:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1abeadc6_dabe45d4","line":118,"updated":"2014-08-25 18:17:12.000000000","message":"can we not get_service_list here and then use services.keys()  in line 122","commit_id":"3d8c7328e9c8fa45889ba2659fe0983023ec3431"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"1cffc5a32fc41e1a7cff86a3ef01532fac058b11","unresolved":false,"context_lines":[{"line_number":115,"context_line":"    exercised by a test case."},{"line_number":116,"context_line":"    \"\"\""},{"line_number":117,"context_line":"    def decorator(f):"},{"line_number":118,"context_line":"        services \u003d [\u0027compute\u0027, \u0027image\u0027, \u0027baremetal\u0027, \u0027volume\u0027, \u0027orchestration\u0027,"},{"line_number":119,"context_line":"                    \u0027network\u0027, \u0027identity\u0027, \u0027object_storage\u0027, \u0027dashboard\u0027,"},{"line_number":120,"context_line":"                    \u0027ceilometer\u0027, \u0027data_processing\u0027]"},{"line_number":121,"context_line":"        for service in args:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1abeadc6_ddbabfbf","line":118,"in_reply_to":"1abeadc6_9aa68d52","updated":"2014-08-25 18:48:32.000000000","message":"i see... does adding import_group to this file solve the issue to ensure we always have options loaded by runtime ie: adding the following to the beginning of file (i think this should be done in general to ensure reference CONF files are loaded)\n\nCONF.import_group(\u0027service_available\u0027, \u0027tempest.config\u0027)","commit_id":"3d8c7328e9c8fa45889ba2659fe0983023ec3431"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"d13d57921fa1d9c8b580e74c29a99ed6a0bcc586","unresolved":false,"context_lines":[{"line_number":115,"context_line":"    exercised by a test case."},{"line_number":116,"context_line":"    \"\"\""},{"line_number":117,"context_line":"    def decorator(f):"},{"line_number":118,"context_line":"        services \u003d [\u0027compute\u0027, \u0027image\u0027, \u0027baremetal\u0027, \u0027volume\u0027, \u0027orchestration\u0027,"},{"line_number":119,"context_line":"                    \u0027network\u0027, \u0027identity\u0027, \u0027object_storage\u0027, \u0027dashboard\u0027,"},{"line_number":120,"context_line":"                    \u0027ceilometer\u0027, \u0027data_processing\u0027]"},{"line_number":121,"context_line":"        for service in args:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1abeadc6_9aa68d52","line":118,"in_reply_to":"1abeadc6_dabe45d4","updated":"2014-08-25 18:28:21.000000000","message":"No we can\u0027t, that\u0027s the whole purpose of this change. (doing that is essentially what was there before) The code contained in decorator method is executed at import time, while the wrapper method is executed at run time.  If the service_list dictionary is defined at import time this will cause failures on import if there is no config file, which is something that shouldn\u0027t happen.. However, if an invalid service tag is used somewhere the InvalidServiceTag exception should to be returned at import time because it\u0027s more of a static error, that should be determined on import, it\u0027s not a run time issue.\n\nI agree that the duplication is not ideal, but it was the best compromise I could come up with to address the conflicting run time vs import time requirements. If you have a better suggestion let me know?","commit_id":"3d8c7328e9c8fa45889ba2659fe0983023ec3431"}]}
