)]}'
{"monasca_log_api/README.md":[{"author":{"_account_id":7874,"name":"Venkat Sundaram","email":"tsv@hp.com","username":"tsv"},"change_message_id":"f748918bea3a3960de2053d4faf7f056cdedfbfc","unresolved":false,"context_lines":[{"line_number":82,"context_line":"```sh"},{"line_number":83,"context_line":"    from monasca_log_api.server import get_wsgi_app"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    application \u003d get_wsgi_app()"},{"line_number":86,"context_line":"```"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":""}],"source_content_type":"text/x-gfm","patch_set":4,"id":"bae84128_4c22fcba","line":85,"range":{"start_line":85,"start_character":18,"end_line":85,"end_character":30},"updated":"2016-02-19 14:04:41.000000000","message":"Please see my comments for the server.py file. This could then become:\n\napplication \u003d get_wsgi_app(config_base_path\u003d\u0027/etc/monasca\u0027)","commit_id":"64740dd9ebdff4a301f4ad10c87ace1910925940"},{"author":{"_account_id":20033,"name":"Artur Basiak","email":"artur.basiak@ts.fujitsu.com","username":"abasiak"},"change_message_id":"627562272abd92ce733b87826485b7321c63bbb7","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    Listen 127.0.0.1:8082"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    \u003cVirtualHost *:8082\u003e"},{"line_number":56,"context_line":"        WSGIDaemonProcess log-api processes\u003d4 threads\u003d4 socket-timeout\u003d120 user\u003dlog group\u003dlog python-path\u003d/usr/local/lib/python2.7/site-packages"},{"line_number":57,"context_line":"        WSGIProcessGroup log-api"},{"line_number":58,"context_line":"        WSGIApplicationGroup log-api"},{"line_number":59,"context_line":"        WSGIScriptAlias / /var/www/log/log-api.wsgi"}],"source_content_type":"text/x-gfm","patch_set":5,"id":"bae84128_5bd26201","line":56,"updated":"2016-02-22 07:14:37.000000000","message":"I had some difficulties with configuration wsgi mode in \napache. Could you write which user and group should be \nconfigured for WSGIDeamonProcess? I gave my local user and \ngroup. Server is running and listen on a specific port but \nwhen I try to send post message to application I have error \nfrom wsgi file:\n\n  [Mon Feb 22 08:07:10.218469 2016] [:error] [pid 3476:tid  \n 140387430491904] [remote 127.0.0.1:35461] ImportError: No \n module named monasca_log_api.server","commit_id":"937987fc91b90824aef331dc9e50ca5a7871503c"},{"author":{"_account_id":20033,"name":"Artur Basiak","email":"artur.basiak@ts.fujitsu.com","username":"abasiak"},"change_message_id":"4abf4ed6318039043ccbb643e0f471c0d132200f","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    Listen 127.0.0.1:8082"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    \u003cVirtualHost *:8082\u003e"},{"line_number":56,"context_line":"        WSGIDaemonProcess log-api processes\u003d4 threads\u003d4 socket-timeout\u003d120 user\u003dlog group\u003dlog python-path\u003d/usr/local/lib/python2.7/site-packages"},{"line_number":57,"context_line":"        WSGIProcessGroup log-api"},{"line_number":58,"context_line":"        WSGIApplicationGroup log-api"},{"line_number":59,"context_line":"        WSGIScriptAlias / /var/www/log/log-api.wsgi"}],"source_content_type":"text/x-gfm","patch_set":5,"id":"bae84128_ef4a1b54","line":56,"in_reply_to":"bae84128_42c84e74","updated":"2016-02-24 07:48:43.000000000","message":"I installed monasca-log_api in virtualenv. I had some difficulties with configuration wsgi mode and virtualenv but right now everything is ok.","commit_id":"937987fc91b90824aef331dc9e50ca5a7871503c"},{"author":{"_account_id":7874,"name":"Venkat Sundaram","email":"tsv@hp.com","username":"tsv"},"change_message_id":"28f908325d1f2abe1b8a0112109d0806e2d0c10e","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    Listen 127.0.0.1:8082"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    \u003cVirtualHost *:8082\u003e"},{"line_number":56,"context_line":"        WSGIDaemonProcess log-api processes\u003d4 threads\u003d4 socket-timeout\u003d120 user\u003dlog group\u003dlog python-path\u003d/usr/local/lib/python2.7/site-packages"},{"line_number":57,"context_line":"        WSGIProcessGroup log-api"},{"line_number":58,"context_line":"        WSGIApplicationGroup log-api"},{"line_number":59,"context_line":"        WSGIScriptAlias / /var/www/log/log-api.wsgi"}],"source_content_type":"text/x-gfm","patch_set":5,"id":"bae84128_42c84e74","line":56,"in_reply_to":"bae84128_5bd26201","updated":"2016-02-23 22:39:43.000000000","message":"Artur,\nWhat is the install location of monasca_log_api in your box ? This example assumes: /usr/local/lib/python2.7/site-packages/monasca_log_api","commit_id":"937987fc91b90824aef331dc9e50ca5a7871503c"},{"author":{"_account_id":7874,"name":"Venkat Sundaram","email":"tsv@hp.com","username":"tsv"},"change_message_id":"28f908325d1f2abe1b8a0112109d0806e2d0c10e","unresolved":false,"context_lines":[{"line_number":82,"context_line":"```sh"},{"line_number":83,"context_line":"    from monasca_log_api.server import get_wsgi_app"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    application \u003d get_wsgi_app()"},{"line_number":86,"context_line":"```"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":""}],"source_content_type":"text/x-gfm","patch_set":5,"id":"bae84128_e2936259","line":85,"range":{"start_line":85,"start_character":4,"end_line":85,"end_character":15},"updated":"2016-02-23 22:39:43.000000000","message":"Jesse, shouldn\u0027t this be:\n\napplication \u003d get_wsgi_app(config_base_path\u003d\u0027/etc/monasca\u0027)","commit_id":"937987fc91b90824aef331dc9e50ca5a7871503c"},{"author":{"_account_id":17281,"name":"Jesse Olsen","email":"jesse.olsen@hpe.com","username":"jesseolsen"},"change_message_id":"df00cb3eca629fab817d51a2baabdef2515e3842","unresolved":false,"context_lines":[{"line_number":82,"context_line":"```sh"},{"line_number":83,"context_line":"    from monasca_log_api.server import get_wsgi_app"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    application \u003d get_wsgi_app()"},{"line_number":86,"context_line":"```"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":""}],"source_content_type":"text/x-gfm","patch_set":5,"id":"bae84128_519f3350","line":85,"range":{"start_line":85,"start_character":4,"end_line":85,"end_character":15},"in_reply_to":"bae84128_e2936259","updated":"2016-02-24 21:38:51.000000000","message":"Good catch... Thanks!","commit_id":"937987fc91b90824aef331dc9e50ca5a7871503c"}],"monasca_log_api/server.py":[{"author":{"_account_id":19200,"name":"Patrick Crummett","email":"patrick.crummett@hpe.com","username":"pcrumm"},"change_message_id":"ae8a00e2f145aa3c7d42c244143537b7fee7add3","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"def get_wsgi_app(base_path\u003d\u0027\u0027):"},{"line_number":74,"context_line":"    global_conf \u003d {\u0027config_file\u0027: ("},{"line_number":75,"context_line":"        \u0027%s/%s\u0027 % (base_path, \u0027etc/monasca/log-api-config.conf\u0027))}"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    wsgi_app \u003d ("},{"line_number":78,"context_line":"        paste.deploy.loadapp("}],"source_content_type":"text/x-python","patch_set":1,"id":"3a57f1b5_b41ba572","line":75,"range":{"start_line":75,"start_character":8,"end_line":75,"end_character":66},"updated":"2016-02-11 20:23:00.000000000","message":"Would more pythonic to use os.path.join","commit_id":"037afbb248aa4e09e3a8af6feea41589f4afe00b"},{"author":{"_account_id":19200,"name":"Patrick Crummett","email":"patrick.crummett@hpe.com","username":"pcrumm"},"change_message_id":"ae8a00e2f145aa3c7d42c244143537b7fee7add3","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"if __name__ \u003d\u003d \u0027__main__\u0027:"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    wsgi_app \u003d get_wsgi_app(base_path\u003d\u0027%/..\u0027 % os.getcwd())"},{"line_number":88,"context_line":"    httpd \u003d simple_server.make_server(\u0027127.0.0.1\u0027, 8080, wsgi_app)"},{"line_number":89,"context_line":"    httpd.serve_forever()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a57f1b5_744f6d6b","line":87,"range":{"start_line":87,"start_character":38,"end_line":87,"end_character":46},"updated":"2016-02-11 20:23:00.000000000","message":"Same here as well","commit_id":"037afbb248aa4e09e3a8af6feea41589f4afe00b"},{"author":{"_account_id":19200,"name":"Patrick Crummett","email":"patrick.crummett@hpe.com","username":"pcrumm"},"change_message_id":"ae8a00e2f145aa3c7d42c244143537b7fee7add3","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"if __name__ \u003d\u003d \u0027__main__\u0027:"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    wsgi_app \u003d get_wsgi_app(base_path\u003d\u0027%/..\u0027 % os.getcwd())"},{"line_number":88,"context_line":"    httpd \u003d simple_server.make_server(\u0027127.0.0.1\u0027, 8080, wsgi_app)"},{"line_number":89,"context_line":"    httpd.serve_forever()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a57f1b5_b4c64566","line":87,"range":{"start_line":87,"start_character":47,"end_line":87,"end_character":57},"updated":"2016-02-11 20:23:00.000000000","message":"Seems like we should use os.path.dirname(__file__) or something to get the directory to execute from rather than assume the current directory is always correct.","commit_id":"037afbb248aa4e09e3a8af6feea41589f4afe00b"},{"author":{"_account_id":7874,"name":"Venkat Sundaram","email":"tsv@hp.com","username":"tsv"},"change_message_id":"f748918bea3a3960de2053d4faf7f056cdedfbfc","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    app.add_route(\"/{version_id}\", versions)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"def get_wsgi_app(base_path\u003d\u0027\u0027):"},{"line_number":74,"context_line":"    global_conf \u003d {\u0027config_file\u0027: ("},{"line_number":75,"context_line":"        os.path.join(base_path, \u0027etc/monasca/log-api-config.conf\u0027))}"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"bae84128_4c74bcce","line":73,"range":{"start_line":73,"start_character":17,"end_line":73,"end_character":26},"updated":"2016-02-19 14:04:41.000000000","message":"Jesse, I think the patch 1 covered the following two cases:\n\n\n1. If run from a development box, where the intention is to use the config file from the local monasca_log_api repo folder, like the below main method\n\n2. If run from a staging/production box, where the intention is to call this with a different config file path, like the Apache example you mentioned in the Readme file\n\n\nLater patches removed the \"/\" from the base_path and this may break case 2.\n\n\nPerhaps replace base_path with config_base_path for better readability ?\n\nSet config_base_path\u003dNone in the param and then inside the method:\n\n\nif config_base_path is None:\n    config_base_path \u003d os.path.join(\n        os.path.dirname(os.path.realpath(__file__)), \u0027../etc/monasca\u0027)\n\nglobal_conf \u003d {\u0027config_file\u0027: (\n        os.path.join(config_base_path, \u0027log-api-config.conf\u0027))}\n    \nwsgi_app \u003d (\n    paste.deploy.loadapp(\n        \u0027config:log-api-config.ini\u0027,\n        relative_to\u003dconfig_base_path,\n        global_conf\u003dglobal_conf\n    )\n)","commit_id":"64740dd9ebdff4a301f4ad10c87ace1910925940"},{"author":{"_account_id":20033,"name":"Artur Basiak","email":"artur.basiak@ts.fujitsu.com","username":"abasiak"},"change_message_id":"b1beb8416ca7fa88ad814f08cb1c3b70761c6cd3","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    app.add_route(\"/{version_id}\", versions)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"def get_wsgi_app(base_path\u003d\u0027\u0027):"},{"line_number":74,"context_line":"    global_conf \u003d {\u0027config_file\u0027: ("},{"line_number":75,"context_line":"        os.path.join(base_path, \u0027etc/monasca/log-api-config.conf\u0027))}"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"bae84128_14fe446b","line":73,"range":{"start_line":73,"start_character":27,"end_line":73,"end_character":29},"updated":"2016-02-19 10:02:17.000000000","message":"Please explain why it is empty as default.","commit_id":"64740dd9ebdff4a301f4ad10c87ace1910925940"},{"author":{"_account_id":20033,"name":"Artur Basiak","email":"artur.basiak@ts.fujitsu.com","username":"abasiak"},"change_message_id":"266b113da09138d1bcf5bc505b515ee8af27f575","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    app.add_route(\"/{version_id}\", versions)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"def get_wsgi_app(base_path\u003d\u0027\u0027):"},{"line_number":74,"context_line":"    global_conf \u003d {\u0027config_file\u0027: ("},{"line_number":75,"context_line":"        os.path.join(base_path, \u0027etc/monasca/log-api-config.conf\u0027))}"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"bae84128_3409c832","line":73,"range":{"start_line":73,"start_character":27,"end_line":73,"end_character":29},"in_reply_to":"bae84128_14fe446b","updated":"2016-02-19 10:09:46.000000000","message":"Could you write a short documentation note why this variable is empty as default and what path should be passed to work properly?","commit_id":"64740dd9ebdff4a301f4ad10c87ace1910925940"},{"author":{"_account_id":7874,"name":"Venkat Sundaram","email":"tsv@hp.com","username":"tsv"},"change_message_id":"f748918bea3a3960de2053d4faf7f056cdedfbfc","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"if __name__ \u003d\u003d \u0027__main__\u0027:"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    wsgi_app \u003d get_wsgi_app(base_path\u003dos.path.join("},{"line_number":88,"context_line":"        os.path.dirname(os.path.realpath(__file__)), \u0027..\u0027))"},{"line_number":89,"context_line":"    httpd \u003d simple_server.make_server(\u0027127.0.0.1\u0027, 8080, wsgi_app)"},{"line_number":90,"context_line":"    httpd.serve_forever()"}],"source_content_type":"text/x-python","patch_set":4,"id":"bae84128_0cbbd473","line":87,"range":{"start_line":87,"start_character":4,"end_line":87,"end_character":12},"updated":"2016-02-19 14:04:41.000000000","message":"If the get_wsgi_app method is modified as above, this would then become:\n\nwsgi_app \u003d get_wsgi_app()","commit_id":"64740dd9ebdff4a301f4ad10c87ace1910925940"}]}
