)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"4f113c0a14c2cfb9fd2996d0f5406fd3c7589484","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add config feature verification script"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This commit adds a new tool to tempest that will verify that will"},{"line_number":10,"context_line":"verify API queryable config options are set correctly. Right now"},{"line_number":11,"context_line":"the list of options verifies is very short. Later on additional"},{"line_number":12,"context_line":"checks will be added to verify other services features when the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATH%2F%2FHJc%3D","line":9,"updated":"2013-10-23 02:12:38.000000000","message":"typo: \"that will verify that will verify\"","commit_id":"76ce2edb6f2d8b94ac32e4cff4a6e4950b53d919"}],"tools/verify_tempest_config.py":[{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"d80ccf57d2afb991055a72a4035e5febc727e1e9","unresolved":false,"context_lines":[{"line_number":31,"context_line":"}"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"def verify_extensions(os):"},{"line_number":35,"context_line":"    results \u003d {}"},{"line_number":36,"context_line":"    extensions_client \u003d os.extensions_client"},{"line_number":37,"context_line":"    __, resp \u003d extensions_client.list_extensions()"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2F%2BC8%3D","line":34,"updated":"2013-10-24 13:35:29.000000000","message":"It is better to use \"verify_nova_extensions\" as function\u0027s name.","commit_id":"40ecdeb1ad345d2de915b780d2088304bc044e85"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"665dd4e9f5bc69f771442fa52b9b3fc9dbe04781","unresolved":false,"context_lines":[{"line_number":31,"context_line":"}"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"def verify_extensions(os):"},{"line_number":35,"context_line":"    results \u003d {}"},{"line_number":36,"context_line":"    extensions_client \u003d os.extensions_client"},{"line_number":37,"context_line":"    __, resp \u003d extensions_client.list_extensions()"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2F91Q%3D","line":34,"in_reply_to":"AAAATn%2F%2F%2BC8%3D","updated":"2013-10-24 14:19:31.000000000","message":"No the intent of this function is to check all extensions that have config options enabling them. Right now it is only nova but in the future other extensions will be added. That is why the results dict has a separate key for nova_features.","commit_id":"40ecdeb1ad345d2de915b780d2088304bc044e85"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"ee19fbe7c27cb6f4dc3c49bb28657462ee60b801","unresolved":false,"context_lines":[{"line_number":31,"context_line":"}"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"def verify_extensions(os):"},{"line_number":35,"context_line":"    results \u003d {}"},{"line_number":36,"context_line":"    extensions_client \u003d os.extensions_client"},{"line_number":37,"context_line":"    __, resp \u003d extensions_client.list_extensions()"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2F7kc%3D","line":34,"in_reply_to":"AAAATn%2F%2F91Q%3D","updated":"2013-10-25 01:55:51.000000000","message":"Thanks for your clarification!","commit_id":"40ecdeb1ad345d2de915b780d2088304bc044e85"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"286190869a0fcc0677056059fe791351260d2954","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"def display_results(results):"},{"line_number":50,"context_line":"    for option in NOVA_EXTENSIONS.keys():"},{"line_number":51,"context_line":"        config_value \u003d getattr(CONF.nova_feature_enabled, option)"},{"line_number":52,"context_line":"        if config_value !\u003d results[\u0027nova_features\u0027][option]:"},{"line_number":53,"context_line":"            print \"Config option: %s should be changed to: %s\" % ("},{"line_number":54,"context_line":"                option, not config_value)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2Fx3k%3D","line":51,"updated":"2013-10-29 07:21:25.000000000","message":"s/nova_feature_enabled/compute_feature_enabled","commit_id":"9b6ebfca03f736cfb589b93aec03512b78c362c6"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"d3cb35cb42f46cce08879f6d2f7fd77586380c12","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"def display_results(results):"},{"line_number":50,"context_line":"    for option in NOVA_EXTENSIONS.keys():"},{"line_number":51,"context_line":"        config_value \u003d getattr(CONF.nova_feature_enabled, option)"},{"line_number":52,"context_line":"        if config_value !\u003d results[\u0027nova_features\u0027][option]:"},{"line_number":53,"context_line":"            print \"Config option: %s should be changed to: %s\" % ("},{"line_number":54,"context_line":"                option, not config_value)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FwDs%3D","line":51,"in_reply_to":"AAAATn%2F%2Fx3k%3D","updated":"2013-10-29 15:14:27.000000000","message":"Done","commit_id":"9b6ebfca03f736cfb589b93aec03512b78c362c6"}]}
