)]}'
{"openstack_dashboard/api/rest/__init__.py":[{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"3af49706a737418c4a74aa8ce44ccfa5d85e780c","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"# import REST API modules here"},{"line_number":25,"context_line":"import keystone     #flake8: noqa"},{"line_number":26,"context_line":"import config     #flake8: noqa"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_0f48f22b","line":26,"updated":"2015-02-18 21:05:00.000000000","message":"nit: import ordering","commit_id":"7592345ada53be7cd77d3089d11060fe531462aa"}],"openstack_dashboard/api/rest/config.py":[{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"8c7520011ef04bcb7c37c5d9c60319f17c38b3dc","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    \"\"\"API for retrieving user configurations."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    This API returns read-only-default configuration values."},{"line_number":41,"context_line":"    This configuration object is ideally fetch once per application life or"},{"line_number":42,"context_line":"    when a user needs to restore the default values."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    It contains the default config values that a new user will start with."}],"source_content_type":"text/x-python","patch_set":2,"id":"fa81d914_597c2f73","line":41,"updated":"2015-01-27 20:35:12.000000000","message":"nit: \"fetched\"","commit_id":"f1598265b3fdcfbcd5ffe7422c5cb0c7ac1eb712"},{"author":{"_account_id":9576,"name":"Thai Tran","email":"tqtran@us.ibm.com","username":"tqtran"},"change_message_id":"6cd339c40ec590bc1e78c28d4a7f60cf620f28a9","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    \"\"\"API for retrieving user configurations."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    This API returns read-only-default configuration values."},{"line_number":41,"context_line":"    This configuration object is ideally fetch once per application life or"},{"line_number":42,"context_line":"    when a user needs to restore the default values."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    It contains the default config values that a new user will start with."}],"source_content_type":"text/x-python","patch_set":2,"id":"fa81d914_45ba79e2","line":41,"in_reply_to":"fa81d914_597c2f73","updated":"2015-01-27 23:51:58.000000000","message":"Done","commit_id":"f1598265b3fdcfbcd5ffe7422c5cb0c7ac1eb712"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"8c7520011ef04bcb7c37c5d9c60319f17c38b3dc","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    when a user needs to restore the default values."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    It contains the default config values that a new user will start with."},{"line_number":45,"context_line":"    Once fetched, it will remain on the client-side in localStorage."},{"line_number":46,"context_line":"    Changes to user config will only affect the object in localStorage."},{"line_number":47,"context_line":"    Examples of user config: modal_backdrop, disable_password_reveal"},{"line_number":48,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa81d914_b9d9ab85","line":45,"updated":"2015-01-27 20:35:12.000000000","message":"I\u0027m not sure this docstring cares about how client-side storage of the config is used.","commit_id":"f1598265b3fdcfbcd5ffe7422c5cb0c7ac1eb712"},{"author":{"_account_id":9576,"name":"Thai Tran","email":"tqtran@us.ibm.com","username":"tqtran"},"change_message_id":"6cd339c40ec590bc1e78c28d4a7f60cf620f28a9","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    when a user needs to restore the default values."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    It contains the default config values that a new user will start with."},{"line_number":45,"context_line":"    Once fetched, it will remain on the client-side in localStorage."},{"line_number":46,"context_line":"    Changes to user config will only affect the object in localStorage."},{"line_number":47,"context_line":"    Examples of user config: modal_backdrop, disable_password_reveal"},{"line_number":48,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa81d914_25ee65ed","line":45,"in_reply_to":"fa81d914_b9d9ab85","updated":"2015-01-27 23:51:58.000000000","message":"True, removing","commit_id":"f1598265b3fdcfbcd5ffe7422c5cb0c7ac1eb712"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"8c7520011ef04bcb7c37c5d9c60319f17c38b3dc","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    \"\"\"API for retrieving admin configurations."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    This API returns read-only admin configuration values."},{"line_number":67,"context_line":"    This configuration object can be fetch as needed."},{"line_number":68,"context_line":"    Examples of admin config: help_url, user_home"},{"line_number":69,"context_line":"    \"\"\""},{"line_number":70,"context_line":"    url_regex \u003d r\u0027config/admin/$\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa81d914_b9c0cb7d","line":67,"updated":"2015-01-27 20:35:12.000000000","message":"nit: \"fetched\"","commit_id":"f1598265b3fdcfbcd5ffe7422c5cb0c7ac1eb712"},{"author":{"_account_id":9576,"name":"Thai Tran","email":"tqtran@us.ibm.com","username":"tqtran"},"change_message_id":"6cd339c40ec590bc1e78c28d4a7f60cf620f28a9","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    \"\"\"API for retrieving admin configurations."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    This API returns read-only admin configuration values."},{"line_number":67,"context_line":"    This configuration object can be fetch as needed."},{"line_number":68,"context_line":"    Examples of admin config: help_url, user_home"},{"line_number":69,"context_line":"    \"\"\""},{"line_number":70,"context_line":"    url_regex \u003d r\u0027config/admin/$\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa81d914_e5e36d03","line":67,"in_reply_to":"fa81d914_b9c0cb7d","updated":"2015-01-27 23:51:58.000000000","message":"Done","commit_id":"f1598265b3fdcfbcd5ffe7422c5cb0c7ac1eb712"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"3af49706a737418c4a74aa8ce44ccfa5d85e780c","unresolved":false,"context_lines":[{"line_number":23,"context_line":"# properties that we know are admin config"},{"line_number":24,"context_line":"admin_configs \u003d [\u0027ajax_queue_limit\u0027, \u0027ajax_poll_interval\u0027,"},{"line_number":25,"context_line":"                 \u0027user_home\u0027, \u0027help_url\u0027,"},{"line_number":26,"context_line":"                 \u0027angular_modules\u0027, \u0027js_files\u0027,"},{"line_number":27,"context_line":"                 \u0027simple_ip_management\u0027,"},{"line_number":28,"context_line":"                 \u0027dashboards\u0027, \u0027default_dashboard\u0027,"},{"line_number":29,"context_line":"                 \u0027password_autocomplete\u0027, \u0027disable_password_reveal\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_4f474aa3","line":26,"updated":"2015-02-18 21:05:00.000000000","message":"do we need to pass the js_files?","commit_id":"7592345ada53be7cd77d3089d11060fe531462aa"},{"author":{"_account_id":9576,"name":"Thai Tran","email":"tqtran@us.ibm.com","username":"tqtran"},"change_message_id":"d811a5d673c77585df2879eb542fefb3589e9e17","unresolved":false,"context_lines":[{"line_number":23,"context_line":"# properties that we know are admin config"},{"line_number":24,"context_line":"admin_configs \u003d [\u0027ajax_queue_limit\u0027, \u0027ajax_poll_interval\u0027,"},{"line_number":25,"context_line":"                 \u0027user_home\u0027, \u0027help_url\u0027,"},{"line_number":26,"context_line":"                 \u0027angular_modules\u0027, \u0027js_files\u0027,"},{"line_number":27,"context_line":"                 \u0027simple_ip_management\u0027,"},{"line_number":28,"context_line":"                 \u0027dashboards\u0027, \u0027default_dashboard\u0027,"},{"line_number":29,"context_line":"                 \u0027password_autocomplete\u0027, \u0027disable_password_reveal\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_7136b104","line":26,"in_reply_to":"da86d52c_4f474aa3","updated":"2015-02-18 23:45:57.000000000","message":"or angular_modules, default_dashboard, dashboards for that matter. I\u0027ll remove these also for now.","commit_id":"7592345ada53be7cd77d3089d11060fe531462aa"},{"author":{"_account_id":4264,"name":"Matthias Runge","email":"mrunge@redhat.com","username":"mrunge"},"change_message_id":"d4255be2d9eafa7d2e8d80a94962ecadcde40fc0","unresolved":false,"context_lines":[{"line_number":34,"context_line":"user_configs \u003d [\u0027auto_fade_alerts\u0027, \u0027modal_backdrop\u0027, \u0027user_configs\u0027]"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"# remove these from config object before returning"},{"line_number":37,"context_line":"ignore_list \u003d [\u0027password_validator\u0027, \u0027exceptions\u0027]"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"@urls.register"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_60d33d38","line":37,"updated":"2015-02-18 22:08:18.000000000","message":"what about filtering anything looking like \"pw or password\"? I could imagine to see a database password stored in settings","commit_id":"7592345ada53be7cd77d3089d11060fe531462aa"},{"author":{"_account_id":9576,"name":"Thai Tran","email":"tqtran@us.ibm.com","username":"tqtran"},"change_message_id":"d811a5d673c77585df2879eb542fefb3589e9e17","unresolved":false,"context_lines":[{"line_number":34,"context_line":"user_configs \u003d [\u0027auto_fade_alerts\u0027, \u0027modal_backdrop\u0027, \u0027user_configs\u0027]"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"# remove these from config object before returning"},{"line_number":37,"context_line":"ignore_list \u003d [\u0027password_validator\u0027, \u0027exceptions\u0027]"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"@urls.register"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_f15aa14e","line":37,"in_reply_to":"da86d52c_60d33d38","updated":"2015-02-18 23:45:57.000000000","message":"admin and user configs are white listed. so unless they are in the list, it will not get pass to client. we actually don\u0027t even need the ignore_list, I\u0027ll remove it.","commit_id":"7592345ada53be7cd77d3089d11060fe531462aa"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"43e0f5b3005b1094ae905364a77eaa7fff962324","unresolved":false,"context_lines":[{"line_number":23,"context_line":"# properties that we know are admin config"},{"line_number":24,"context_line":"admin_configs \u003d [\u0027ajax_queue_limit\u0027, \u0027ajax_poll_interval\u0027,"},{"line_number":25,"context_line":"                 \u0027user_home\u0027, \u0027help_url\u0027,"},{"line_number":26,"context_line":"                 \u0027password_autocomplete\u0027, \u0027disable_password_reveal\u0027]"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"# properties we want know are user config"},{"line_number":29,"context_line":"# future user configs should go into \u0027user_config\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_6b3afd37","line":26,"updated":"2015-02-19 22:46:23.000000000","message":"I think these can be sets for faster iteration.\n{\u0027one\u0027, \u0027two\u0027, \u0027three\u0027}","commit_id":"714c3fb634fd45022454ea7bd12180a6ad28e58e"},{"author":{"_account_id":9576,"name":"Thai Tran","email":"tqtran@us.ibm.com","username":"tqtran"},"change_message_id":"ab53d84c234a6cc63452f4248e203d3c5863972c","unresolved":false,"context_lines":[{"line_number":23,"context_line":"# properties that we know are admin config"},{"line_number":24,"context_line":"admin_configs \u003d [\u0027ajax_queue_limit\u0027, \u0027ajax_poll_interval\u0027,"},{"line_number":25,"context_line":"                 \u0027user_home\u0027, \u0027help_url\u0027,"},{"line_number":26,"context_line":"                 \u0027password_autocomplete\u0027, \u0027disable_password_reveal\u0027]"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"# properties we want know are user config"},{"line_number":29,"context_line":"# future user configs should go into \u0027user_config\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_0e37cfb1","line":26,"in_reply_to":"ba7be1f8_6b3afd37","updated":"2015-02-19 23:05:31.000000000","message":"Done","commit_id":"714c3fb634fd45022454ea7bd12180a6ad28e58e"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"43e0f5b3005b1094ae905364a77eaa7fff962324","unresolved":false,"context_lines":[{"line_number":28,"context_line":"# properties we want know are user config"},{"line_number":29,"context_line":"# future user configs should go into \u0027user_config\u0027"},{"line_number":30,"context_line":"# TODO(Thai): move auto_fade_alerts and modal_backdrop under user_configs"},{"line_number":31,"context_line":"user_configs \u003d [\u0027auto_fade_alerts\u0027, \u0027modal_backdrop\u0027, \u0027user_configs\u0027]"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"@urls.register"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_eb734d13","line":31,"updated":"2015-02-19 22:46:23.000000000","message":"Since we couldn\u0027t figure this out even while talking to you, would be nice to add more comments explaining this or some better naming.","commit_id":"714c3fb634fd45022454ea7bd12180a6ad28e58e"},{"author":{"_account_id":9576,"name":"Thai Tran","email":"tqtran@us.ibm.com","username":"tqtran"},"change_message_id":"ab53d84c234a6cc63452f4248e203d3c5863972c","unresolved":false,"context_lines":[{"line_number":28,"context_line":"# properties we want know are user config"},{"line_number":29,"context_line":"# future user configs should go into \u0027user_config\u0027"},{"line_number":30,"context_line":"# TODO(Thai): move auto_fade_alerts and modal_backdrop under user_configs"},{"line_number":31,"context_line":"user_configs \u003d [\u0027auto_fade_alerts\u0027, \u0027modal_backdrop\u0027, \u0027user_configs\u0027]"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"@urls.register"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_eeba7b09","line":31,"in_reply_to":"ba7be1f8_eb734d13","updated":"2015-02-19 23:05:31.000000000","message":"Done","commit_id":"714c3fb634fd45022454ea7bd12180a6ad28e58e"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"4193c1ab58df9d8803c3a1518cd87d1f9c563fc7","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        \"\"\""},{"line_number":49,"context_line":"        config \u003d {}"},{"line_number":50,"context_line":"        for key in conf.HORIZON_CONFIG._wrapped:"},{"line_number":51,"context_line":"            if (key in user_configs):"},{"line_number":52,"context_line":"                config[key] \u003d conf.HORIZON_CONFIG.get(key)"},{"line_number":53,"context_line":"        return config"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_081267b4","line":51,"updated":"2015-02-19 22:54:43.000000000","message":"Brackets unnecessary.","commit_id":"714c3fb634fd45022454ea7bd12180a6ad28e58e"},{"author":{"_account_id":9576,"name":"Thai Tran","email":"tqtran@us.ibm.com","username":"tqtran"},"change_message_id":"ab53d84c234a6cc63452f4248e203d3c5863972c","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        \"\"\""},{"line_number":49,"context_line":"        config \u003d {}"},{"line_number":50,"context_line":"        for key in conf.HORIZON_CONFIG._wrapped:"},{"line_number":51,"context_line":"            if (key in user_configs):"},{"line_number":52,"context_line":"                config[key] \u003d conf.HORIZON_CONFIG.get(key)"},{"line_number":53,"context_line":"        return config"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_ce8f7774","line":51,"in_reply_to":"ba7be1f8_081267b4","updated":"2015-02-19 23:05:31.000000000","message":"Done","commit_id":"714c3fb634fd45022454ea7bd12180a6ad28e58e"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"4193c1ab58df9d8803c3a1518cd87d1f9c563fc7","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        config \u003d {}"},{"line_number":50,"context_line":"        for key in conf.HORIZON_CONFIG._wrapped:"},{"line_number":51,"context_line":"            if (key in user_configs):"},{"line_number":52,"context_line":"                config[key] \u003d conf.HORIZON_CONFIG.get(key)"},{"line_number":53,"context_line":"        return config"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_4e570703","line":52,"updated":"2015-02-19 22:54:43.000000000","message":"If you\u0027re looping over keys then .get() is not necessary.","commit_id":"714c3fb634fd45022454ea7bd12180a6ad28e58e"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"4193c1ab58df9d8803c3a1518cd87d1f9c563fc7","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        \"\"\""},{"line_number":70,"context_line":"        config \u003d {}"},{"line_number":71,"context_line":"        for key in conf.HORIZON_CONFIG._wrapped:"},{"line_number":72,"context_line":"            if (key in admin_configs):"},{"line_number":73,"context_line":"                config[key] \u003d conf.HORIZON_CONFIG.get(key)"},{"line_number":74,"context_line":"        return config"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_48353f45","line":72,"updated":"2015-02-19 22:54:43.000000000","message":"Brackets unnecessary","commit_id":"714c3fb634fd45022454ea7bd12180a6ad28e58e"},{"author":{"_account_id":9576,"name":"Thai Tran","email":"tqtran@us.ibm.com","username":"tqtran"},"change_message_id":"ab53d84c234a6cc63452f4248e203d3c5863972c","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        \"\"\""},{"line_number":70,"context_line":"        config \u003d {}"},{"line_number":71,"context_line":"        for key in conf.HORIZON_CONFIG._wrapped:"},{"line_number":72,"context_line":"            if (key in admin_configs):"},{"line_number":73,"context_line":"                config[key] \u003d conf.HORIZON_CONFIG.get(key)"},{"line_number":74,"context_line":"        return config"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_ee8c3b82","line":72,"in_reply_to":"ba7be1f8_48353f45","updated":"2015-02-19 23:05:31.000000000","message":"Done","commit_id":"714c3fb634fd45022454ea7bd12180a6ad28e58e"},{"author":{"_account_id":12071,"name":"Richard Jones","email":"r1chardj0n3s@gmail.com","username":"richard"},"change_message_id":"4193c1ab58df9d8803c3a1518cd87d1f9c563fc7","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        config \u003d {}"},{"line_number":71,"context_line":"        for key in conf.HORIZON_CONFIG._wrapped:"},{"line_number":72,"context_line":"            if (key in admin_configs):"},{"line_number":73,"context_line":"                config[key] \u003d conf.HORIZON_CONFIG.get(key)"},{"line_number":74,"context_line":"        return config"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_6e5ccb26","line":73,"updated":"2015-02-19 22:54:43.000000000","message":"If you\u0027re looping over keys then .get() is not necessary.","commit_id":"714c3fb634fd45022454ea7bd12180a6ad28e58e"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"7589ec3dad6640f121446df5e620211ad6371a83","unresolved":false,"context_lines":[{"line_number":25,"context_line":"                 \u0027user_home\u0027, \u0027help_url\u0027,"},{"line_number":26,"context_line":"                 \u0027password_autocomplete\u0027, \u0027disable_password_reveal\u0027}"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"# properties we want know are user config"},{"line_number":29,"context_line":"# this is a white list of keys under HORIZON_CONFIG in settings.pys"},{"line_number":30,"context_line":"# that we want to pass onto client"},{"line_number":31,"context_line":"user_configs \u003d {\u0027auto_fade_alerts\u0027, \u0027modal_backdrop\u0027}"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba7be1f8_ce05b715","line":28,"updated":"2015-02-19 23:25:35.000000000","message":"nit: weird grammar.  \"want know\".","commit_id":"061b68d592d1a112ab436d84e457a1c7d7547af1"},{"author":{"_account_id":9576,"name":"Thai Tran","email":"tqtran@us.ibm.com","username":"tqtran"},"change_message_id":"bdef178018d4299deb633aae0bd1e015391d21b1","unresolved":false,"context_lines":[{"line_number":25,"context_line":"                 \u0027user_home\u0027, \u0027help_url\u0027,"},{"line_number":26,"context_line":"                 \u0027password_autocomplete\u0027, \u0027disable_password_reveal\u0027}"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"# properties we want know are user config"},{"line_number":29,"context_line":"# this is a white list of keys under HORIZON_CONFIG in settings.pys"},{"line_number":30,"context_line":"# that we want to pass onto client"},{"line_number":31,"context_line":"user_configs \u003d {\u0027auto_fade_alerts\u0027, \u0027modal_backdrop\u0027}"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba7be1f8_71b02af5","line":28,"in_reply_to":"ba7be1f8_ce05b715","updated":"2015-02-19 23:35:16.000000000","message":"Done","commit_id":"061b68d592d1a112ab436d84e457a1c7d7547af1"},{"author":{"_account_id":9576,"name":"Thai Tran","email":"tqtran@us.ibm.com","username":"tqtran"},"change_message_id":"d28d17e7032e823655ec10ef8a786d6be186a49a","unresolved":false,"context_lines":[{"line_number":23,"context_line":"# properties we know are admin config"},{"line_number":24,"context_line":"admin_configs \u003d [\u0027ajax_queue_limit\u0027, \u0027ajax_poll_interval\u0027,"},{"line_number":25,"context_line":"                 \u0027user_home\u0027, \u0027help_url\u0027,"},{"line_number":26,"context_line":"                 \u0027password_autocomplete\u0027, \u0027disable_password_reveal\u0027]"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"# properties we know are user config"},{"line_number":29,"context_line":"# this is a white list of keys under HORIZON_CONFIG in settings.pys"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba7be1f8_af5661d0","line":26,"updated":"2015-02-23 19:18:26.000000000","message":"better to use dict notation instead of list as Travis mentioned.","commit_id":"1c013caa6223296abe42bb264e552f1d60581f68"},{"author":{"_account_id":9576,"name":"Thai Tran","email":"tqtran@us.ibm.com","username":"tqtran"},"change_message_id":"c616562ba459214ff0ec208e142021e7f28c8192","unresolved":false,"context_lines":[{"line_number":23,"context_line":"# properties we know are admin config"},{"line_number":24,"context_line":"admin_configs \u003d [\u0027ajax_queue_limit\u0027, \u0027ajax_poll_interval\u0027,"},{"line_number":25,"context_line":"                 \u0027user_home\u0027, \u0027help_url\u0027,"},{"line_number":26,"context_line":"                 \u0027password_autocomplete\u0027, \u0027disable_password_reveal\u0027]"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"# properties we know are user config"},{"line_number":29,"context_line":"# this is a white list of keys under HORIZON_CONFIG in settings.pys"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba7be1f8_d2edf8f0","line":26,"in_reply_to":"ba7be1f8_af5661d0","updated":"2015-02-23 19:50:16.000000000","message":"just read your comment in the commit message, its confusing?","commit_id":"1c013caa6223296abe42bb264e552f1d60581f68"}],"openstack_dashboard/local/local_settings.py.example":[{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"3af49706a737418c4a74aa8ce44ccfa5d85e780c","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                   \u0027not_found\u0027: exceptions.NOT_FOUND,"},{"line_number":66,"context_line":"                   \u0027unauthorized\u0027: exceptions.UNAUTHORIZED},"},{"line_number":67,"context_line":"    \u0027modal_backdrop\u0027: \u0027static\u0027,"},{"line_number":68,"context_line":"    \u0027user_configs\u0027: {},"},{"line_number":69,"context_line":"    \u0027angular_modules\u0027: [],"},{"line_number":70,"context_line":"    \u0027js_files\u0027: [],"},{"line_number":71,"context_line":"}"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"da86d52c_8f3142a4","line":68,"updated":"2015-02-18 21:05:00.000000000","message":"we need to document what\u0027s expected in the user_configs","commit_id":"7592345ada53be7cd77d3089d11060fe531462aa"},{"author":{"_account_id":9576,"name":"Thai Tran","email":"tqtran@us.ibm.com","username":"tqtran"},"change_message_id":"d811a5d673c77585df2879eb542fefb3589e9e17","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                   \u0027not_found\u0027: exceptions.NOT_FOUND,"},{"line_number":66,"context_line":"                   \u0027unauthorized\u0027: exceptions.UNAUTHORIZED},"},{"line_number":67,"context_line":"    \u0027modal_backdrop\u0027: \u0027static\u0027,"},{"line_number":68,"context_line":"    \u0027user_configs\u0027: {},"},{"line_number":69,"context_line":"    \u0027angular_modules\u0027: [],"},{"line_number":70,"context_line":"    \u0027js_files\u0027: [],"},{"line_number":71,"context_line":"}"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"da86d52c_9137a5fd","line":68,"in_reply_to":"da86d52c_8f3142a4","updated":"2015-02-18 23:45:57.000000000","message":"Done. Will add to documentation.","commit_id":"7592345ada53be7cd77d3089d11060fe531462aa"}],"openstack_dashboard/test/api_tests/config_rest_api.py":[{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"3af49706a737418c4a74aa8ce44ccfa5d85e780c","unresolved":false,"context_lines":[{"line_number":13,"context_line":"# limitations under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import mock"},{"line_number":16,"context_line":"import unittest2"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from horizon import conf"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_8fd86254","line":16,"updated":"2015-02-18 21:05:00.000000000","message":"moving out of unttest2 in favor of testtools","commit_id":"7592345ada53be7cd77d3089d11060fe531462aa"},{"author":{"_account_id":9576,"name":"Thai Tran","email":"tqtran@us.ibm.com","username":"tqtran"},"change_message_id":"d811a5d673c77585df2879eb542fefb3589e9e17","unresolved":false,"context_lines":[{"line_number":13,"context_line":"# limitations under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import mock"},{"line_number":16,"context_line":"import unittest2"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from horizon import conf"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_f121c1b4","line":16,"in_reply_to":"da86d52c_8fd86254","updated":"2015-02-18 23:45:57.000000000","message":"Will address in follow up patch when rest api have a base test class.","commit_id":"7592345ada53be7cd77d3089d11060fe531462aa"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"3af49706a737418c4a74aa8ce44ccfa5d85e780c","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from openstack_dashboard.api.rest import config"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from rest_test_utils import construct_request   # noqa"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class ConfigRestTestCase(unittest2.TestCase):"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_6fba4ee2","line":22,"updated":"2015-02-18 21:05:00.000000000","message":"can we use absolute path here","commit_id":"7592345ada53be7cd77d3089d11060fe531462aa"},{"author":{"_account_id":9576,"name":"Thai Tran","email":"tqtran@us.ibm.com","username":"tqtran"},"change_message_id":"d811a5d673c77585df2879eb542fefb3589e9e17","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from openstack_dashboard.api.rest import config"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from rest_test_utils import construct_request   # noqa"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class ConfigRestTestCase(unittest2.TestCase):"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_d124bdc7","line":22,"in_reply_to":"da86d52c_6fba4ee2","updated":"2015-02-18 23:45:57.000000000","message":"Done","commit_id":"7592345ada53be7cd77d3089d11060fe531462aa"},{"author":{"_account_id":5623,"name":"David Lyle","email":"dklyle0@gmail.com","username":"david-lyle"},"change_message_id":"895866408636902c65d6760d18aeea54ef4ccbe6","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from openstack_dashboard.api.rest import config"},{"line_number":21,"context_line":"from openstack_dashboard.test.api_tests import rest_test_utils as util"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class ConfigRestTestCase(unittest2.TestCase):"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def assertStatusCode(self, response, expected_code):"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_eab087df","line":23,"updated":"2015-02-20 16:53:22.000000000","message":"move from unittest2 to testtools see \nhttps://github.com/openstack/horizon/commit/25cb7c1962326ee5815c3ddd458dae22f0864179","commit_id":"1152e637cf4563d0a4aa685cad9022939c8ecc47"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"e564117e7c5c8d740637581b35a7d31057e5eff2","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class ConfigRestTestCase(unittest2.TestCase):"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def assertStatusCode(self, response, expected_code):"},{"line_number":27,"context_line":"        if response.status_code \u003d\u003d expected_code:"},{"line_number":28,"context_line":"            return"},{"line_number":29,"context_line":"        self.fail(\u0027status code %r !\u003d %r: %s\u0027 %"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_057f7ae1","line":26,"updated":"2015-02-21 03:19:42.000000000","message":"Added a new base class that you can extend from and get this function \"for free\".\n\nhttps://review.openstack.org/#/c/157258/7/openstack_dashboard/test/helpers.py","commit_id":"1152e637cf4563d0a4aa685cad9022939c8ecc47"}]}
