)]}'
{"doc/source/install.rst":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"113e6e4cc6f4c69152822c34afb63434e9035f5c","unresolved":false,"context_lines":[{"line_number":67,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"It\u0027s possible – and advised – to run Gnocchi through a WSGI service such as"},{"line_number":70,"context_line":"`mod_wsgi`_ or any other WSGI applications. The file `gnocchi/rest/app.wsgi`"},{"line_number":71,"context_line":"provided with Gnocchi allows you to enable Gnocchi as a WSGI application."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":".. _`mod_wsgi`: https://modwsgi.readthedocs.org/en/master/"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da86d52c_7cca6150","side":"PARENT","line":70,"updated":"2015-02-10 10:07:40.000000000","message":"since you\u0027re in here anyway, might depluralize application_s_","commit_id":"b3025e7e0325ea40f381eda9552675a72a8fb9bd"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"a7ad58b241bbb22529a5b2ab31aecd84438bebf9","unresolved":false,"context_lines":[{"line_number":67,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"It\u0027s possible – and advised – to run Gnocchi through a WSGI service such as"},{"line_number":70,"context_line":"`mod_wsgi`_ or any other WSGI applications. The file `gnocchi/rest/app.wsgi`"},{"line_number":71,"context_line":"provided with Gnocchi allows you to enable Gnocchi as a WSGI application."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":".. _`mod_wsgi`: https://modwsgi.readthedocs.org/en/master/"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da86d52c_dcf7cd57","side":"PARENT","line":70,"in_reply_to":"da86d52c_7cca6150","updated":"2015-02-10 10:21:05.000000000","message":"Done","commit_id":"b3025e7e0325ea40f381eda9552675a72a8fb9bd"}],"gnocchi/rest/app.py":[{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"08e4260a8404964011652d880a2bf5804a774ba3","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    cfg.MultiStrOpt(\u0027middlewares\u0027,"},{"line_number":56,"context_line":"                    default\u003d[\u0027keystonemiddleware.auth_token.AuthProtocol\u0027],"},{"line_number":57,"context_line":"                    help\u003d\u0027Middlewares to use\u0027,),"},{"line_number":58,"context_line":"    cfg.IntOpt(\u0027workers\u0027, default\u003d1,"},{"line_number":59,"context_line":"               help\u003d\u0027Number of workers for Gnocchi API server.\u0027),"},{"line_number":60,"context_line":"]"},{"line_number":61,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_bc777901","line":58,"updated":"2015-02-10 10:12:19.000000000","message":"Set None by default to have the autodetection?","commit_id":"542be29fe23b93afc3ba83c02d68688a65e5e1be"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"a7ad58b241bbb22529a5b2ab31aecd84438bebf9","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    cfg.MultiStrOpt(\u0027middlewares\u0027,"},{"line_number":56,"context_line":"                    default\u003d[\u0027keystonemiddleware.auth_token.AuthProtocol\u0027],"},{"line_number":57,"context_line":"                    help\u003d\u0027Middlewares to use\u0027,),"},{"line_number":58,"context_line":"    cfg.IntOpt(\u0027workers\u0027, default\u003d1,"},{"line_number":59,"context_line":"               help\u003d\u0027Number of workers for Gnocchi API server.\u0027),"},{"line_number":60,"context_line":"]"},{"line_number":61,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_079caebf","line":58,"in_reply_to":"da86d52c_bc777901","updated":"2015-02-10 10:21:05.000000000","message":"Done","commit_id":"542be29fe23b93afc3ba83c02d68688a65e5e1be"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"08e4260a8404964011652d880a2bf5804a774ba3","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                    default\u003d[\u0027keystonemiddleware.auth_token.AuthProtocol\u0027],"},{"line_number":57,"context_line":"                    help\u003d\u0027Middlewares to use\u0027,),"},{"line_number":58,"context_line":"    cfg.IntOpt(\u0027workers\u0027, default\u003d1,"},{"line_number":59,"context_line":"               help\u003d\u0027Number of workers for Gnocchi API server.\u0027),"},{"line_number":60,"context_line":"]"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"opt_group \u003d cfg.OptGroup(name\u003d\u0027api\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_fc601137","line":59,"updated":"2015-02-10 10:12:19.000000000","message":"Say that it\u0027s autodetected if none?","commit_id":"542be29fe23b93afc3ba83c02d68688a65e5e1be"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"a7ad58b241bbb22529a5b2ab31aecd84438bebf9","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                    default\u003d[\u0027keystonemiddleware.auth_token.AuthProtocol\u0027],"},{"line_number":57,"context_line":"                    help\u003d\u0027Middlewares to use\u0027,),"},{"line_number":58,"context_line":"    cfg.IntOpt(\u0027workers\u0027, default\u003d1,"},{"line_number":59,"context_line":"               help\u003d\u0027Number of workers for Gnocchi API server.\u0027),"},{"line_number":60,"context_line":"]"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"opt_group \u003d cfg.OptGroup(name\u003d\u0027api\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_e75dda16","line":59,"in_reply_to":"da86d52c_fc601137","updated":"2015-02-10 10:21:05.000000000","message":"Done","commit_id":"542be29fe23b93afc3ba83c02d68688a65e5e1be"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"08e4260a8404964011652d880a2bf5804a774ba3","unresolved":false,"context_lines":[{"line_number":158,"context_line":"            workers \u003d multiprocessing.cpu_count() or 1"},{"line_number":159,"context_line":"        except NotImplementedError:"},{"line_number":160,"context_line":"            workers \u003d 1"},{"line_number":161,"context_line":"    if workers and workers \u003c 1:"},{"line_number":162,"context_line":"        msg \u003d (_(\"api.workers value of %(workers)s is invalid, \""},{"line_number":163,"context_line":"                 \"must be greater than 0\") %"},{"line_number":164,"context_line":"               {\u0027workers\u0027: str(workers)})"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_1ccb251f","line":161,"updated":"2015-02-10 10:12:19.000000000","message":"Pleeeease validate using oslo.config.","commit_id":"542be29fe23b93afc3ba83c02d68688a65e5e1be"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"a7ad58b241bbb22529a5b2ab31aecd84438bebf9","unresolved":false,"context_lines":[{"line_number":158,"context_line":"            workers \u003d multiprocessing.cpu_count() or 1"},{"line_number":159,"context_line":"        except NotImplementedError:"},{"line_number":160,"context_line":"            workers \u003d 1"},{"line_number":161,"context_line":"    if workers and workers \u003c 1:"},{"line_number":162,"context_line":"        msg \u003d (_(\"api.workers value of %(workers)s is invalid, \""},{"line_number":163,"context_line":"                 \"must be greater than 0\") %"},{"line_number":164,"context_line":"               {\u0027workers\u0027: str(workers)})"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_279ff2b5","line":161,"in_reply_to":"da86d52c_1ccb251f","updated":"2015-02-10 10:21:05.000000000","message":"Done","commit_id":"542be29fe23b93afc3ba83c02d68688a65e5e1be"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"0ce6ce9126d0adf55dd25c73504f423ab498898c","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from wsgiref import simple_server"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from flask import json as flask_json"},{"line_number":25,"context_line":"import netaddr"},{"line_number":26,"context_line":"from oslo.config import cfg"},{"line_number":27,"context_line":"from oslo.utils import importutils"},{"line_number":28,"context_line":"from oslo_log import log"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_dc018d07","side":"PARENT","line":25,"updated":"2015-02-10 10:17:41.000000000","message":"I think it\u0027s the only place we use netaddr, drop it from requirements.","commit_id":"b3025e7e0325ea40f381eda9552675a72a8fb9bd"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"06350f8cc247d7b4491ce51ab45dae531f749341","unresolved":false,"context_lines":[{"line_number":57,"context_line":"                    help\u003d\u0027Middlewares to use\u0027,),"},{"line_number":58,"context_line":"    cfg.IntOpt(\u0027workers\u0027,"},{"line_number":59,"context_line":"               help\u003d\u0027Number of workers for Gnocchi API server. \u0027"},{"line_number":60,"context_line":"               \u0027By default the cpu is used\u0027),"},{"line_number":61,"context_line":"]"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"opt_group \u003d cfg.OptGroup(name\u003d\u0027api\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_672aca2d","line":60,"updated":"2015-02-10 10:26:58.000000000","message":"By default the available number of CPU is used.","commit_id":"8bce2f063f2d1487b8e4a0476b45dbd21cf82fa9"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"198477962e34f5c4fc9d088901fd77777e5e37ca","unresolved":false,"context_lines":[{"line_number":57,"context_line":"                    help\u003d\u0027Middlewares to use\u0027,),"},{"line_number":58,"context_line":"    cfg.IntOpt(\u0027workers\u0027,"},{"line_number":59,"context_line":"               help\u003d\u0027Number of workers for Gnocchi API server. \u0027"},{"line_number":60,"context_line":"               \u0027By default the cpu is used\u0027),"},{"line_number":61,"context_line":"]"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"opt_group \u003d cfg.OptGroup(name\u003d\u0027api\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_c720d6f9","line":60,"in_reply_to":"da86d52c_672aca2d","updated":"2015-02-10 10:41:25.000000000","message":"Done","commit_id":"8bce2f063f2d1487b8e4a0476b45dbd21cf82fa9"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"06350f8cc247d7b4491ce51ab45dae531f749341","unresolved":false,"context_lines":[{"line_number":158,"context_line":"    except NotImplementedError:"},{"line_number":159,"context_line":"        default_workers \u003d 1"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    cfg.set_defaults(OPTS, workers\u003ddefault_workers)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    serving.run_simple(cfg.CONF.api.host, cfg.CONF.api.port,"},{"line_number":164,"context_line":"                       setup_app(),"}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_c70376b6","line":161,"updated":"2015-02-10 10:26:58.000000000","message":"You could do that at the module level I\u0027d say.","commit_id":"8bce2f063f2d1487b8e4a0476b45dbd21cf82fa9"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"198477962e34f5c4fc9d088901fd77777e5e37ca","unresolved":false,"context_lines":[{"line_number":158,"context_line":"    except NotImplementedError:"},{"line_number":159,"context_line":"        default_workers \u003d 1"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    cfg.set_defaults(OPTS, workers\u003ddefault_workers)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    serving.run_simple(cfg.CONF.api.host, cfg.CONF.api.port,"},{"line_number":164,"context_line":"                       setup_app(),"}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_a72122fe","line":161,"in_reply_to":"da86d52c_c70376b6","updated":"2015-02-10 10:41:25.000000000","message":"Done","commit_id":"8bce2f063f2d1487b8e4a0476b45dbd21cf82fa9"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"191f7198d2c88a6c23e6d413c58d94fd34cf0350","unresolved":false,"context_lines":[{"line_number":65,"context_line":"cfg.CONF.register_opts(OPTS, opt_group)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"try:"},{"line_number":69,"context_line":"    default_workers \u003d multiprocessing.cpu_count() or 1"},{"line_number":70,"context_line":"except NotImplementedError:"},{"line_number":71,"context_line":"    default_workers \u003d 1"}],"source_content_type":"text/x-python","patch_set":5,"id":"da86d52c_a2bf50fb","line":68,"updated":"2015-02-10 10:46:22.000000000","message":"Compute before OPTS and set it in default\u003d ? :)","commit_id":"dc6a5651350163d32b488d6b490cc01945c57cc9"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"9ca4689e4d994564b80914599dd3db8c4423b535","unresolved":false,"context_lines":[{"line_number":65,"context_line":"cfg.CONF.register_opts(OPTS, opt_group)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"try:"},{"line_number":69,"context_line":"    default_workers \u003d multiprocessing.cpu_count() or 1"},{"line_number":70,"context_line":"except NotImplementedError:"},{"line_number":71,"context_line":"    default_workers \u003d 1"}],"source_content_type":"text/x-python","patch_set":5,"id":"da86d52c_a2f4b0cf","line":68,"in_reply_to":"da86d52c_a2bf50fb","updated":"2015-02-10 11:04:56.000000000","message":"If I do that, the default_workers in the autogenerated config file will be the number of cpu of the build machine instead of None.","commit_id":"dc6a5651350163d32b488d6b490cc01945c57cc9"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"191f7198d2c88a6c23e6d413c58d94fd34cf0350","unresolved":false,"context_lines":[{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    root_dir \u003d os.path.dirname(os.path.abspath(__file__))"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    # NOTE(sileht): pecan debug won\u0027t work in multi-process environment"},{"line_number":138,"context_line":"    if cfg.CONF.workers \u003d\u003d 1:"},{"line_number":139,"context_line":"        cfg.set_defaults(OPTS, pecan_debug\u003dcfg.CONF.debug)"},{"line_number":140,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"da86d52c_62ce38b6","line":137,"updated":"2015-02-10 10:46:22.000000000","message":"If does not work at all:\n\n1. it\u0027d be cool to raise to indicate it to the user rather than disabling debug in his back\n2. I think you are just changing the default, not the actual value so you might still run the app with debug enabled and workers \u003e 1","commit_id":"dc6a5651350163d32b488d6b490cc01945c57cc9"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"9ca4689e4d994564b80914599dd3db8c4423b535","unresolved":false,"context_lines":[{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    root_dir \u003d os.path.dirname(os.path.abspath(__file__))"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    # NOTE(sileht): pecan debug won\u0027t work in multi-process environment"},{"line_number":138,"context_line":"    if cfg.CONF.workers \u003d\u003d 1:"},{"line_number":139,"context_line":"        cfg.set_defaults(OPTS, pecan_debug\u003dcfg.CONF.debug)"},{"line_number":140,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"da86d52c_6271d8df","line":137,"in_reply_to":"da86d52c_62ce38b6","updated":"2015-02-10 11:04:56.000000000","message":"Done","commit_id":"dc6a5651350163d32b488d6b490cc01945c57cc9"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"7c0a09ca61ee71f7a069ffaaafcd0fee509e132c","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from wsgiref import simple_server"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from flask import json as flask_json"},{"line_number":25,"context_line":"import netaddr"},{"line_number":26,"context_line":"from oslo.config import cfg"},{"line_number":27,"context_line":"from oslo.utils import importutils"},{"line_number":28,"context_line":"from oslo_log import log"}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_d0f1606b","side":"PARENT","line":25,"updated":"2015-02-10 17:05:55.000000000","message":"drop from requirements please","commit_id":"b3025e7e0325ea40f381eda9552675a72a8fb9bd"}]}
