)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":23173,"name":"Maxime Cottret","email":"maxime.cottret@gmail.com","username":"aolwas"},"change_message_id":"7549a2925b316312f79c366675def28208484ee4","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Work Item: Make the devstack setup ck-api with wsgi"},{"line_number":20,"context_line":"1. Switch devstack jobs to deploy control-plane API services in WSGI with Apache."},{"line_number":21,"context_line":"2. Default to deploy with Apache by global ENABLE_HTTPD_MOD_WSGI_SERVICES, in"},{"line_number":22,"context_line":"   local.conf expose PANKO_USE_MOD_WSGI\u003dFalse to run without Apache."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Work Item: Update the docs about installation"},{"line_number":25,"context_line":"1. Installing the cloudkitty-api behind mod_wsgi."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"5ff73747_450bc38c","line":22,"range":{"start_line":22,"start_character":21,"end_line":22,"end_character":45},"updated":"2017-05-05 20:28:12.000000000","message":"Should be CLOUDKITTY_USE_MOD_WSGI, right ?","commit_id":"5ac7cd7b55eed8625f26a2e0a46fd48e18eccfb1"}],"cloudkitty/api/app.py":[{"author":{"_account_id":7923,"name":"Gauvain Pocentek","email":"gauvainpocentek@gmail.com","username":"gpocentek"},"change_message_id":"78a113161bd94c177fb668a9698522deb4edba8c","unresolved":false,"context_lines":[{"line_number":44,"context_line":"]"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"api_opts \u003d ["},{"line_number":47,"context_line":"    cfg.StrOpt(\u0027host\u0027,"},{"line_number":48,"context_line":"               default\u003d\u00270.0.0.0\u0027,"},{"line_number":49,"context_line":"               help\u003d\u0027The listen IP for the cloudkitty API server.\u0027,"},{"line_number":50,"context_line":"               ),"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a629dbe_b08720d6","line":47,"updated":"2016-11-09 10:33:11.000000000","message":"Changing this option will break the existing configuration files on upgrade.\n\nThis can be changed but you need to define a deprecation setting.","commit_id":"9dac1275060873be527feadd8f26aa5088fcafa2"},{"author":{"_account_id":7923,"name":"Gauvain Pocentek","email":"gauvainpocentek@gmail.com","username":"gpocentek"},"change_message_id":"2d4da36e8c4d7eb9cf6af3f4d688352ccf8fa428","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    cfg.IntOpt(\u0027workers\u0027,"},{"line_number":56,"context_line":"               default\u003d1,"},{"line_number":57,"context_line":"               min\u003d1,"},{"line_number":58,"context_line":"               deprecated_group\u003d\u0027DEFAULT\u0027,"},{"line_number":59,"context_line":"               deprecated_name\u003d\u0027api_workers\u0027,"},{"line_number":60,"context_line":"               help\u003d\u0027Number of workers for api, default value is 1.\u0027),"},{"line_number":61,"context_line":"]"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"1a6eadb0_39c8fa73","line":59,"range":{"start_line":58,"start_character":14,"end_line":59,"end_character":45},"updated":"2017-01-08 20:17:25.000000000","message":"Have we defined this option somewhere, or is it related to a dependency?\n\nI\u0027m not sure that we need this deprecation setting.","commit_id":"9f1469423ff145a52e330e8d6551be7d4c5c1beb"}],"devstack/plugin.sh":[{"author":{"_account_id":21797,"name":"Jeremy Liu","display_name":"Jeremy Liu","email":"liujiong.cc@gmail.com","username":"liujiong"},"change_message_id":"bb099b6e81cb3bc14da35b74a286692c45913c5e","unresolved":false,"context_lines":[{"line_number":77,"context_line":"function _cloudkitty_cleanup_apache_wsgi {"},{"line_number":78,"context_line":"    if is_service_enabled ck-api \u0026\u0026 [ \"$CLOUDKITTY_USE_MOD_WSGI\" \u003d\u003d \"True\" ]; then"},{"line_number":79,"context_line":"        sudo rm -f \"$CLOUDKITTY_WSGI_DIR\"/*"},{"line_number":80,"context_line":"        sudo rm -rf  \"$CLOUDKITTY_WSGI_DIR\""},{"line_number":81,"context_line":"        sudo rm -f $(apache_site_config_for cloudkitty)"},{"line_number":82,"context_line":"    fi"},{"line_number":83,"context_line":"}"}],"source_content_type":"text/x-sh","patch_set":15,"id":"ff0f0b1f_5f3c5cc7","line":80,"range":{"start_line":80,"start_character":13,"end_line":80,"end_character":19},"updated":"2017-05-19 09:01:46.000000000","message":"use \"rmdir\" is better here since it\u0027s an empty directory.","commit_id":"83471b8bb031f4c33471e01432b686aa9231c87f"},{"author":{"_account_id":8358,"name":"zhangguoqing","email":"zhang.guoqing@99cloud.net","username":"zhangguoqing"},"change_message_id":"b285f14412d9f3d1420f925c7499e3c1b1485fb3","unresolved":false,"context_lines":[{"line_number":77,"context_line":"function _cloudkitty_cleanup_apache_wsgi {"},{"line_number":78,"context_line":"    if is_service_enabled ck-api \u0026\u0026 [ \"$CLOUDKITTY_USE_MOD_WSGI\" \u003d\u003d \"True\" ]; then"},{"line_number":79,"context_line":"        sudo rm -f \"$CLOUDKITTY_WSGI_DIR\"/*"},{"line_number":80,"context_line":"        sudo rm -rf  \"$CLOUDKITTY_WSGI_DIR\""},{"line_number":81,"context_line":"        sudo rm -f $(apache_site_config_for cloudkitty)"},{"line_number":82,"context_line":"    fi"},{"line_number":83,"context_line":"}"}],"source_content_type":"text/x-sh","patch_set":15,"id":"ff0f0b1f_93119607","line":80,"range":{"start_line":80,"start_character":13,"end_line":80,"end_character":19},"in_reply_to":"ff0f0b1f_5f3c5cc7","updated":"2017-05-22 12:35:59.000000000","message":"Indeed in the previous patch sets I have used the rmdir, but always break the jenkins.","commit_id":"83471b8bb031f4c33471e01432b686aa9231c87f"},{"author":{"_account_id":21797,"name":"Jeremy Liu","display_name":"Jeremy Liu","email":"liujiong.cc@gmail.com","username":"liujiong"},"change_message_id":"bb099b6e81cb3bc14da35b74a286692c45913c5e","unresolved":false,"context_lines":[{"line_number":234,"context_line":"# start_cloudkitty() - Start running processes, including screen"},{"line_number":235,"context_line":"function start_cloudkitty {"},{"line_number":236,"context_line":"    screen_it ck-proc \"cd $CLOUDKITTY_DIR; $CLOUDKITTY_BIN_DIR/cloudkitty-processor --config-file\u003d$CLOUDKITTY_CONF\""},{"line_number":237,"context_line":"    if [[ \"$CLOUDKITTY_USE_MOD_WSGI\" \u003d\u003d \"False\" ]]; then"},{"line_number":238,"context_line":"        screen_it ck-api \"cd $CLOUDKITTY_DIR; $CLOUDKITTY_BIN_DIR/cloudkitty-api -p $CLOUDKITTY_SERVICE_PORT\""},{"line_number":239,"context_line":"    elif is_service_enabled ck-api; then"},{"line_number":240,"context_line":"        enable_apache_site cloudkitty"},{"line_number":241,"context_line":"        restart_apache_server"},{"line_number":242,"context_line":"        tail_log cloudkitty /var/log/$APACHE_NAME/cloudkitty.log"},{"line_number":243,"context_line":"        tail_log cloudkitty-api /var/log/$APACHE_NAME/cloudkitty_access.log"},{"line_number":244,"context_line":"    fi"},{"line_number":245,"context_line":"    echo \"Waiting for ck-api ($CLOUDKITTY_SERVICE_HOST:$CLOUDKITTY_SERVICE_PORT) to start...\""},{"line_number":246,"context_line":"    if ! timeout $SERVICE_TIMEOUT sh -c \"while ! wget --no-proxy -q -O- http://$CLOUDKITTY_SERVICE_HOST:$CLOUDKITTY_SERVICE_PORT; do sleep 1; done\"; then"},{"line_number":247,"context_line":"        die $LINENO \"ck-api did not start\""}],"source_content_type":"text/x-sh","patch_set":15,"id":"ff0f0b1f_bfec9829","line":244,"range":{"start_line":237,"start_character":0,"end_line":244,"end_character":6},"updated":"2017-05-19 09:01:46.000000000","message":"It would be good to temporarily test ck-api can be started from screen by setting CLOUDKITTY_USE_MOD_WSGI to False.","commit_id":"83471b8bb031f4c33471e01432b686aa9231c87f"},{"author":{"_account_id":21797,"name":"Jeremy Liu","display_name":"Jeremy Liu","email":"liujiong.cc@gmail.com","username":"liujiong"},"change_message_id":"bce77f4431f3a9d42b3e959403427e6ca7fafc20","unresolved":false,"context_lines":[{"line_number":234,"context_line":"# start_cloudkitty() - Start running processes, including screen"},{"line_number":235,"context_line":"function start_cloudkitty {"},{"line_number":236,"context_line":"    screen_it ck-proc \"cd $CLOUDKITTY_DIR; $CLOUDKITTY_BIN_DIR/cloudkitty-processor --config-file\u003d$CLOUDKITTY_CONF\""},{"line_number":237,"context_line":"    if [[ \"$CLOUDKITTY_USE_MOD_WSGI\" \u003d\u003d \"False\" ]]; then"},{"line_number":238,"context_line":"        screen_it ck-api \"cd $CLOUDKITTY_DIR; $CLOUDKITTY_BIN_DIR/cloudkitty-api -p $CLOUDKITTY_SERVICE_PORT\""},{"line_number":239,"context_line":"    elif is_service_enabled ck-api; then"},{"line_number":240,"context_line":"        enable_apache_site cloudkitty"},{"line_number":241,"context_line":"        restart_apache_server"},{"line_number":242,"context_line":"        tail_log cloudkitty /var/log/$APACHE_NAME/cloudkitty.log"},{"line_number":243,"context_line":"        tail_log cloudkitty-api /var/log/$APACHE_NAME/cloudkitty_access.log"},{"line_number":244,"context_line":"    fi"},{"line_number":245,"context_line":"    echo \"Waiting for ck-api ($CLOUDKITTY_SERVICE_HOST:$CLOUDKITTY_SERVICE_PORT) to start...\""},{"line_number":246,"context_line":"    if ! timeout $SERVICE_TIMEOUT sh -c \"while ! wget --no-proxy -q -O- http://$CLOUDKITTY_SERVICE_HOST:$CLOUDKITTY_SERVICE_PORT; do sleep 1; done\"; then"},{"line_number":247,"context_line":"        die $LINENO \"ck-api did not start\""}],"source_content_type":"text/x-sh","patch_set":15,"id":"ff0f0b1f_b5169e48","line":244,"range":{"start_line":237,"start_character":0,"end_line":244,"end_character":6},"in_reply_to":"ff0f0b1f_7375e263","updated":"2017-05-23 09:19:47.000000000","message":"Yes, I know this patch works. I mean we could temporarily test that ck-api can be started from screen in community\u0027s CI. Then we can see the state from devstack logs.","commit_id":"83471b8bb031f4c33471e01432b686aa9231c87f"},{"author":{"_account_id":8358,"name":"zhangguoqing","email":"zhang.guoqing@99cloud.net","username":"zhangguoqing"},"change_message_id":"a19038751c54f200f27cb838641119f10188dcfd","unresolved":false,"context_lines":[{"line_number":234,"context_line":"# start_cloudkitty() - Start running processes, including screen"},{"line_number":235,"context_line":"function start_cloudkitty {"},{"line_number":236,"context_line":"    screen_it ck-proc \"cd $CLOUDKITTY_DIR; $CLOUDKITTY_BIN_DIR/cloudkitty-processor --config-file\u003d$CLOUDKITTY_CONF\""},{"line_number":237,"context_line":"    if [[ \"$CLOUDKITTY_USE_MOD_WSGI\" \u003d\u003d \"False\" ]]; then"},{"line_number":238,"context_line":"        screen_it ck-api \"cd $CLOUDKITTY_DIR; $CLOUDKITTY_BIN_DIR/cloudkitty-api -p $CLOUDKITTY_SERVICE_PORT\""},{"line_number":239,"context_line":"    elif is_service_enabled ck-api; then"},{"line_number":240,"context_line":"        enable_apache_site cloudkitty"},{"line_number":241,"context_line":"        restart_apache_server"},{"line_number":242,"context_line":"        tail_log cloudkitty /var/log/$APACHE_NAME/cloudkitty.log"},{"line_number":243,"context_line":"        tail_log cloudkitty-api /var/log/$APACHE_NAME/cloudkitty_access.log"},{"line_number":244,"context_line":"    fi"},{"line_number":245,"context_line":"    echo \"Waiting for ck-api ($CLOUDKITTY_SERVICE_HOST:$CLOUDKITTY_SERVICE_PORT) to start...\""},{"line_number":246,"context_line":"    if ! timeout $SERVICE_TIMEOUT sh -c \"while ! wget --no-proxy -q -O- http://$CLOUDKITTY_SERVICE_HOST:$CLOUDKITTY_SERVICE_PORT; do sleep 1; done\"; then"},{"line_number":247,"context_line":"        die $LINENO \"ck-api did not start\""}],"source_content_type":"text/x-sh","patch_set":15,"id":"ff0f0b1f_adbc1206","line":244,"range":{"start_line":237,"start_character":0,"end_line":244,"end_character":6},"in_reply_to":"ff0f0b1f_b5169e48","updated":"2017-05-23 10:53:26.000000000","message":"Yes, the line of 238 will run the ck-api in screen when set the CLOUDKITTY_USE_MOD_WSGI\u003dFalse.","commit_id":"83471b8bb031f4c33471e01432b686aa9231c87f"},{"author":{"_account_id":8358,"name":"zhangguoqing","email":"zhang.guoqing@99cloud.net","username":"zhangguoqing"},"change_message_id":"b285f14412d9f3d1420f925c7499e3c1b1485fb3","unresolved":false,"context_lines":[{"line_number":234,"context_line":"# start_cloudkitty() - Start running processes, including screen"},{"line_number":235,"context_line":"function start_cloudkitty {"},{"line_number":236,"context_line":"    screen_it ck-proc \"cd $CLOUDKITTY_DIR; $CLOUDKITTY_BIN_DIR/cloudkitty-processor --config-file\u003d$CLOUDKITTY_CONF\""},{"line_number":237,"context_line":"    if [[ \"$CLOUDKITTY_USE_MOD_WSGI\" \u003d\u003d \"False\" ]]; then"},{"line_number":238,"context_line":"        screen_it ck-api \"cd $CLOUDKITTY_DIR; $CLOUDKITTY_BIN_DIR/cloudkitty-api -p $CLOUDKITTY_SERVICE_PORT\""},{"line_number":239,"context_line":"    elif is_service_enabled ck-api; then"},{"line_number":240,"context_line":"        enable_apache_site cloudkitty"},{"line_number":241,"context_line":"        restart_apache_server"},{"line_number":242,"context_line":"        tail_log cloudkitty /var/log/$APACHE_NAME/cloudkitty.log"},{"line_number":243,"context_line":"        tail_log cloudkitty-api /var/log/$APACHE_NAME/cloudkitty_access.log"},{"line_number":244,"context_line":"    fi"},{"line_number":245,"context_line":"    echo \"Waiting for ck-api ($CLOUDKITTY_SERVICE_HOST:$CLOUDKITTY_SERVICE_PORT) to start...\""},{"line_number":246,"context_line":"    if ! timeout $SERVICE_TIMEOUT sh -c \"while ! wget --no-proxy -q -O- http://$CLOUDKITTY_SERVICE_HOST:$CLOUDKITTY_SERVICE_PORT; do sleep 1; done\"; then"},{"line_number":247,"context_line":"        die $LINENO \"ck-api did not start\""}],"source_content_type":"text/x-sh","patch_set":15,"id":"ff0f0b1f_7375e263","line":244,"range":{"start_line":237,"start_character":0,"end_line":244,"end_character":6},"in_reply_to":"ff0f0b1f_bfec9829","updated":"2017-05-22 12:35:59.000000000","message":"I find that almost of other openstack projects are XXX_USE_MOD_WSGI\u003dTrue by default. (eg. keystone, ceilometer, gnocchi, panko). So I do the same. And the docs has tell us how to run the cloudkitty-api without WSGI, which starting the command line: cloudkitty-api -p 8889.","commit_id":"83471b8bb031f4c33471e01432b686aa9231c87f"},{"author":{"_account_id":21797,"name":"Jeremy Liu","display_name":"Jeremy Liu","email":"liujiong.cc@gmail.com","username":"liujiong"},"change_message_id":"391067ab54774db2e7ef854da80de8e4cb1e99a5","unresolved":false,"context_lines":[{"line_number":251,"context_line":"# stop_cloudkitty() - Stop running processes"},{"line_number":252,"context_line":"function stop_cloudkitty {"},{"line_number":253,"context_line":"    # Kill the cloudkitty screen windows"},{"line_number":254,"context_line":"    if is_service_enabled ck-api ; then"},{"line_number":255,"context_line":"        stop_process ck-proc"},{"line_number":256,"context_line":"    fi"},{"line_number":257,"context_line":""}],"source_content_type":"text/x-sh","patch_set":18,"id":"1f1a1f67_7386ca15","line":254,"range":{"start_line":254,"start_character":26,"end_line":254,"end_character":32},"updated":"2017-07-18 10:08:37.000000000","message":"This should be ck-proc, right?","commit_id":"efed7049714e2efabb51ac39876812374c76eb4e"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"6ba7a6a4edb18762618206ebfc29548fa28ab1d4","unresolved":false,"context_lines":[{"line_number":251,"context_line":"# stop_cloudkitty() - Stop running processes"},{"line_number":252,"context_line":"function stop_cloudkitty {"},{"line_number":253,"context_line":"    # Kill the cloudkitty screen windows"},{"line_number":254,"context_line":"    if is_service_enabled ck-api ; then"},{"line_number":255,"context_line":"        stop_process ck-proc"},{"line_number":256,"context_line":"    fi"},{"line_number":257,"context_line":""}],"source_content_type":"text/x-sh","patch_set":18,"id":"1f1a1f67_ae3759ff","line":254,"range":{"start_line":254,"start_character":26,"end_line":254,"end_character":32},"in_reply_to":"1f1a1f67_7386ca15","updated":"2017-07-18 10:54:07.000000000","message":"I think so, good catch!","commit_id":"efed7049714e2efabb51ac39876812374c76eb4e"}],"doc/source/installation.rst":[{"author":{"_account_id":23173,"name":"Maxime Cottret","email":"maxime.cottret@gmail.com","username":"aolwas"},"change_message_id":"7549a2925b316312f79c366675def28208484ee4","unresolved":false,"context_lines":[{"line_number":325,"context_line":"   If you are using the ``cloudkitty-api`` command it can be started"},{"line_number":326,"context_line":"   as::"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"    $ cloudkitty-api -p 8889"},{"line_number":329,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"5ff73747_d92680bb","line":328,"range":{"start_line":328,"start_character":21,"end_line":328,"end_character":28},"updated":"2017-05-05 20:28:12.000000000","message":"Why is is not the configuration file parameter anymore ? for apache or standalone method, it should get the port from the configuration file","commit_id":"5ac7cd7b55eed8625f26a2e0a46fd48e18eccfb1"},{"author":{"_account_id":8358,"name":"zhangguoqing","email":"zhang.guoqing@99cloud.net","username":"zhangguoqing"},"change_message_id":"ff809a9d4780160a55086094599af6dc7d601c28","unresolved":false,"context_lines":[{"line_number":325,"context_line":"   If you are using the ``cloudkitty-api`` command it can be started"},{"line_number":326,"context_line":"   as::"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"    $ cloudkitty-api -p 8889"},{"line_number":329,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"3f044301_6f0e523c","line":328,"range":{"start_line":328,"start_character":21,"end_line":328,"end_character":28},"in_reply_to":"5ff73747_d92680bb","updated":"2017-05-06 03:19:35.000000000","message":"Here the cloukitty-api is only a wsgi_scripts which is generated automatic.  The command line \"cloudkitty-api -p 8889\" is just its usages. So we can not assign a configuration file, it is not a python console_scripts.","commit_id":"5ac7cd7b55eed8625f26a2e0a46fd48e18eccfb1"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"a00d7d1a6830ce6e0105b94ea79d945015e277b4","unresolved":false,"context_lines":[{"line_number":302,"context_line":""},{"line_number":303,"context_line":"Start the processing services::"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"    systemctl start cloudkitty-processor.service"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"If you installed cloudkitty from sources"},{"line_number":308,"context_line":"-----------------------------------------"}],"source_content_type":"text/x-rst","patch_set":14,"id":"1f013ff3_ff0a3b88","line":305,"range":{"start_line":305,"start_character":4,"end_line":305,"end_character":48},"updated":"2017-05-15 14:00:51.000000000","message":"I think we should leave the cloudkitty-api service, as it will probably be used for small installations and POCs.","commit_id":"40f604e602a1ddbafdbc1df961573add0e30961d"},{"author":{"_account_id":8358,"name":"zhangguoqing","email":"zhang.guoqing@99cloud.net","username":"zhangguoqing"},"change_message_id":"a6f46438ec6ae986269bae6b2587074695557942","unresolved":false,"context_lines":[{"line_number":302,"context_line":""},{"line_number":303,"context_line":"Start the processing services::"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"    systemctl start cloudkitty-processor.service"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"If you installed cloudkitty from sources"},{"line_number":308,"context_line":"-----------------------------------------"}],"source_content_type":"text/x-rst","patch_set":14,"id":"1f013ff3_f4b13091","line":305,"range":{"start_line":305,"start_character":4,"end_line":305,"end_character":48},"in_reply_to":"1f013ff3_ff0a3b88","updated":"2017-05-16 01:45:12.000000000","message":"There will no the cloudkitty-api.service after this goal.","commit_id":"40f604e602a1ddbafdbc1df961573add0e30961d"}],"doc/source/mod_wsgi.rst":[{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"a00d7d1a6830ce6e0105b94ea79d945015e277b4","unresolved":false,"context_lines":[{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"The file ``cloudkitty/api/app.wsgi`` sets up the V1 API WSGI"},{"line_number":27,"context_line":"application. The file is installed with the rest of the cloudkitty"},{"line_number":28,"context_line":"application code, and should not need to be modified."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"etc/apache2/cloudkitty"},{"line_number":31,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":14,"id":"1f013ff3_5f77ef3b","line":28,"range":{"start_line":27,"start_character":13,"end_line":28,"end_character":16},"updated":"2017-05-15 14:00:51.000000000","message":"The file needs to be copied to /var/www/cloudkitty/","commit_id":"40f604e602a1ddbafdbc1df961573add0e30961d"}],"etc/apache2/cloudkitty":[{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"a00d7d1a6830ce6e0105b94ea79d945015e277b4","unresolved":false,"context_lines":[{"line_number":25,"context_line":"Listen 8889"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"\u003cVirtualHost *:8889\u003e"},{"line_number":28,"context_line":"    WSGIDaemonProcess cloudkitty-api processes\u003d2 threads\u003d10 user\u003dSOMEUSER display-name\u003d%{GROUP}"},{"line_number":29,"context_line":"    WSGIProcessGroup cloudkitty-api"},{"line_number":30,"context_line":"    WSGIScriptAlias / /var/www/cloudkitty/app.wsgi"},{"line_number":31,"context_line":"    WSGIApplicationGroup %{GLOBAL}"}],"source_content_type":"application/octet-stream","patch_set":14,"id":"1f013ff3_df0d3f91","line":28,"range":{"start_line":28,"start_character":60,"end_line":28,"end_character":72},"updated":"2017-05-15 14:00:51.000000000","message":"Setting user and group to cloudkitty would allow this to work out-of-the-box","commit_id":"40f604e602a1ddbafdbc1df961573add0e30961d"},{"author":{"_account_id":8358,"name":"zhangguoqing","email":"zhang.guoqing@99cloud.net","username":"zhangguoqing"},"change_message_id":"a6f46438ec6ae986269bae6b2587074695557942","unresolved":false,"context_lines":[{"line_number":25,"context_line":"Listen 8889"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"\u003cVirtualHost *:8889\u003e"},{"line_number":28,"context_line":"    WSGIDaemonProcess cloudkitty-api processes\u003d2 threads\u003d10 user\u003dSOMEUSER display-name\u003d%{GROUP}"},{"line_number":29,"context_line":"    WSGIProcessGroup cloudkitty-api"},{"line_number":30,"context_line":"    WSGIScriptAlias / /var/www/cloudkitty/app.wsgi"},{"line_number":31,"context_line":"    WSGIApplicationGroup %{GLOBAL}"}],"source_content_type":"application/octet-stream","patch_set":14,"id":"1f013ff3_b4e4c8ad","line":28,"range":{"start_line":28,"start_character":60,"end_line":28,"end_character":72},"in_reply_to":"1f013ff3_df0d3f91","updated":"2017-05-16 01:45:12.000000000","message":"Sorry, I don\u0027t think so, because the user is stack when in devstack.  The user and group value are also explained in the mod_wsgi.rst by Installing the API behind mod_wsgi.","commit_id":"40f604e602a1ddbafdbc1df961573add0e30961d"}],"setup.cfg":[{"author":{"_account_id":21797,"name":"Jeremy Liu","display_name":"Jeremy Liu","email":"liujiong.cc@gmail.com","username":"liujiong"},"change_message_id":"d972b004a10a6406fa38fcf613e5de4de78151dd","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"[entry_points]"},{"line_number":26,"context_line":"console_scripts \u003d"},{"line_number":27,"context_line":"    cloudkitty-api \u003d cloudkitty.cli.api:main"},{"line_number":28,"context_line":"    cloudkitty-dbsync \u003d cloudkitty.cli.dbsync:main"},{"line_number":29,"context_line":"    cloudkitty-processor \u003d cloudkitty.cli.processor:main"},{"line_number":30,"context_line":"    cloudkitty-storage-init \u003d cloudkitty.cli.storage:main"}],"source_content_type":"text/x-ttcn-cfg","patch_set":9,"id":"5ff73747_e440f9a7","side":"PARENT","line":27,"range":{"start_line":27,"start_character":4,"end_line":27,"end_character":44},"updated":"2017-04-27 13:26:45.000000000","message":"Devstack starts api service through this entrypoint, that\u0027s why test failed.","commit_id":"ccd8efa50f1d613f49d56882c2ec044e601db84e"}],"test-requirements.txt":[{"author":{"_account_id":7923,"name":"Gauvain Pocentek","email":"gauvainpocentek@gmail.com","username":"gpocentek"},"change_message_id":"78a113161bd94c177fb668a9698522deb4edba8c","unresolved":false,"context_lines":[{"line_number":14,"context_line":"oslotest\u003e\u003d1.10.0 # Apache-2.0"},{"line_number":15,"context_line":"sphinxcontrib-httpdomain # BSD"},{"line_number":16,"context_line":"sphinxcontrib-pecanwsme\u003e\u003d0.8 # Apache-2.0"},{"line_number":17,"context_line":"werkzeug"}],"source_content_type":"text/plain","patch_set":6,"id":"9a629dbe_50c88422","line":17,"updated":"2016-11-09 10:33:11.000000000","message":"It\u0027s already defined in requirements.txt, I don\u0027t think you need it here.","commit_id":"9dac1275060873be527feadd8f26aa5088fcafa2"}]}
