)]}'
{"lib/config":[{"author":{"_account_id":7203,"name":"yuuichi fujioka","email":"fujioka.yuuichi@gmail.com","username":"FujiokaYuuichi"},"change_message_id":"88216c5fd2edfc8ef49cfd505fae011cdaf9c4c0","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    if ! [[ -r $configfile ]]; then"},{"line_number":86,"context_line":"        sudo touch $configfile"},{"line_number":87,"context_line":"        sudo chown $STACK_USER $configfile"},{"line_number":88,"context_line":"    fi"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    get_meta_section $file $matchgroup $configfile | \\"}],"source_content_type":"text/x-ini","patch_set":1,"id":"AAAAWH%2F9guI%3D","line":87,"updated":"2014-04-04 01:49:34.000000000","message":"I think configfile should be evaluated.\nbecause configfile will be \u0027$Q_PLUGIN_CONF_FILE\u0027. \nthis process hope to create \u0027/etc/neutron/plugin/....\u0027.\n\nI propose this solution:\n ...\n local configfile\u003d$3\n local evaluated_configfile\u003d`eval \"echo $3\"`\n \n if ! [[ -r $evaluated_configfile ]]; then\n     sudo touch $evaluated_configfile\n     sudo chown $STACK_USER $evaluated_configfile\n fi\n ...","commit_id":"491a09e1e0fb9c8236585bcc8c680da7a2a197db"},{"author":{"_account_id":1894,"name":"Ryota MIBU","email":"r-mibu@cq.jp.nec.com","username":"r-mibu"},"change_message_id":"a94d67ed04881a40c6d5c5c5d68a926e34e6d4eb","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    if ! [[ -r $configfile ]]; then"},{"line_number":86,"context_line":"        sudo touch $configfile"},{"line_number":87,"context_line":"        sudo chown $STACK_USER $configfile"},{"line_number":88,"context_line":"    fi"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    get_meta_section $file $matchgroup $configfile | \\"}],"source_content_type":"text/x-ini","patch_set":1,"id":"AAAAWH%2F9blk%3D","line":87,"in_reply_to":"AAAAWH%2F9guI%3D","updated":"2014-04-04 15:13:37.000000000","message":"Right. I misunderstood this bug. Thanks.","commit_id":"491a09e1e0fb9c8236585bcc8c680da7a2a197db"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"4ce777411ffa03b49789d4d85b86958db4e951a3","unresolved":false,"context_lines":[{"line_number":81,"context_line":"    local file\u003d$1"},{"line_number":82,"context_line":"    local matchgroup\u003d$2"},{"line_number":83,"context_line":"    local configfile\u003d$3"},{"line_number":84,"context_line":"    local evaluated_configfile\u003d$(eval \"echo $3\")"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    if ! [[ -r $evaluated_configfile ]]; then"},{"line_number":87,"context_line":"        sudo touch $evaluated_configfile"}],"source_content_type":"text/x-ini","patch_set":2,"id":"9ad9bd40_631b4cca","line":84,"updated":"2014-05-07 04:12:15.000000000","message":"as kaneko said, this eval should be in the caller.","commit_id":"efac13611a6b9212adf390c4d7d7291600543ecc"},{"author":{"_account_id":4726,"name":"Yoshihiro Kaneko","email":"ykaneko0929@gmail.com","username":"ykaneko0929"},"change_message_id":"72df635c98fd3e44c21c35c7e8fe0842054c9700","unresolved":false,"context_lines":[{"line_number":81,"context_line":"    local file\u003d$1"},{"line_number":82,"context_line":"    local matchgroup\u003d$2"},{"line_number":83,"context_line":"    local configfile\u003d$3"},{"line_number":84,"context_line":"    local evaluated_configfile\u003d$(eval \"echo $3\")"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    if ! [[ -r $evaluated_configfile ]]; then"},{"line_number":87,"context_line":"        sudo touch $evaluated_configfile"}],"source_content_type":"text/x-ini","patch_set":2,"id":"7adec928_6a6e1903","line":84,"in_reply_to":"7adec928_4716b6a8","updated":"2014-05-12 06:06:28.000000000","message":"I agree that it does not make sense to fix the caller.\n\nHowever, if fixing all callers is inefficient, I think that it is better to fix get_meta_section_files()  and get_meta_section().","commit_id":"efac13611a6b9212adf390c4d7d7291600543ecc"},{"author":{"_account_id":1894,"name":"Ryota MIBU","email":"r-mibu@cq.jp.nec.com","username":"r-mibu"},"change_message_id":"11b56265d629b86b7cb748648f71337af134170d","unresolved":false,"context_lines":[{"line_number":81,"context_line":"    local file\u003d$1"},{"line_number":82,"context_line":"    local matchgroup\u003d$2"},{"line_number":83,"context_line":"    local configfile\u003d$3"},{"line_number":84,"context_line":"    local evaluated_configfile\u003d$(eval \"echo $3\")"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    if ! [[ -r $evaluated_configfile ]]; then"},{"line_number":87,"context_line":"        sudo touch $evaluated_configfile"}],"source_content_type":"text/x-ini","patch_set":2,"id":"3ae8d1ca_33439315","line":84,"in_reply_to":"7adec928_6a6e1903","updated":"2014-05-29 15:09:39.000000000","message":"OK, I understand that \u0027configfile\u0027 must keep not-evaluated string for get_meta_section() to match group string.\n\nThis \u0027eval\u0027 is no longer required, see my comments below.","commit_id":"efac13611a6b9212adf390c4d7d7291600543ecc"},{"author":{"_account_id":7203,"name":"yuuichi fujioka","email":"fujioka.yuuichi@gmail.com","username":"FujiokaYuuichi"},"change_message_id":"951e119b997247aa2c9165a3f34f20bdbd8eef7c","unresolved":false,"context_lines":[{"line_number":81,"context_line":"    local file\u003d$1"},{"line_number":82,"context_line":"    local matchgroup\u003d$2"},{"line_number":83,"context_line":"    local configfile\u003d$3"},{"line_number":84,"context_line":"    local evaluated_configfile\u003d$(eval \"echo $3\")"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    if ! [[ -r $evaluated_configfile ]]; then"},{"line_number":87,"context_line":"        sudo touch $evaluated_configfile"}],"source_content_type":"text/x-ini","patch_set":2,"id":"7adec928_4716b6a8","line":84,"in_reply_to":"9ad9bd40_631b4cca","updated":"2014-05-12 01:48:15.000000000","message":"I think not evaluated configfilename is required.\nbecause, get_meta_section requests the not evaluated configfilename.\n\nand I feel fixing all callers is inefficient and it will be cause of a bug.","commit_id":"efac13611a6b9212adf390c4d7d7291600543ecc"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"4ce777411ffa03b49789d4d85b86958db4e951a3","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    if ! [[ -r $evaluated_configfile ]]; then"},{"line_number":87,"context_line":"        sudo touch $evaluated_configfile"},{"line_number":88,"context_line":"        sudo chown $STACK_USER $evaluated_configfile"},{"line_number":89,"context_line":"    fi"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    get_meta_section $file $matchgroup $configfile | \\"}],"source_content_type":"text/x-ini","patch_set":2,"id":"9ad9bd40_8362103c","line":88,"updated":"2014-05-07 04:12:15.000000000","message":"these sudo stuffs look scaring and unnecessary.","commit_id":"efac13611a6b9212adf390c4d7d7291600543ecc"},{"author":{"_account_id":1894,"name":"Ryota MIBU","email":"r-mibu@cq.jp.nec.com","username":"r-mibu"},"change_message_id":"11b56265d629b86b7cb748648f71337af134170d","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    if ! [[ -r $evaluated_configfile ]]; then"},{"line_number":87,"context_line":"        sudo touch $evaluated_configfile"},{"line_number":88,"context_line":"        sudo chown $STACK_USER $evaluated_configfile"},{"line_number":89,"context_line":"    fi"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    get_meta_section $file $matchgroup $configfile | \\"}],"source_content_type":"text/x-ini","patch_set":2,"id":"3ae8d1ca_18287633","line":88,"in_reply_to":"9ad9bd40_8362103c","updated":"2014-05-29 15:09:39.000000000","message":"I noticed that \u0027iniset\u0027 will make the file, so we don\u0027t need this \u0027touch\u0027.","commit_id":"efac13611a6b9212adf390c4d7d7291600543ecc"},{"author":{"_account_id":1894,"name":"Ryota MIBU","email":"r-mibu@cq.jp.nec.com","username":"r-mibu"},"change_message_id":"11b56265d629b86b7cb748648f71337af134170d","unresolved":false,"context_lines":[{"line_number":117,"context_line":"    [[ -r $localfile ]] || return 0"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    for group in $matchgroups; do"},{"line_number":120,"context_line":"        for configfile in $(get_meta_section_files $localfile $group); do"},{"line_number":121,"context_line":"            if [[ -d $(dirname $configfile) ]]; then"},{"line_number":122,"context_line":"                merge_config_file $localfile $group $configfile"},{"line_number":123,"context_line":"            fi"}],"source_content_type":"text/x-ini","patch_set":2,"id":"3ae8d1ca_73dc3be5","line":120,"updated":"2014-05-29 15:09:39.000000000","message":"Non-evaluated \u0027configfile\u0027 is used here, so this is the one to fix.","commit_id":"efac13611a6b9212adf390c4d7d7291600543ecc"}],"tests/test_config.sh":[{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"7b09f78326c1289f4a2ce794d60f645dd615ae80","unresolved":false,"context_lines":[{"line_number":43,"context_line":"}"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"function setup_test4 {"},{"line_number":46,"context_line":"    mkdir -p test-etc"},{"line_number":47,"context_line":"    cat \u003etest-etc/test4.conf \u003c\u003cEOF"},{"line_number":48,"context_line":"[fff]"},{"line_number":49,"context_line":"# original comment"}],"source_content_type":"text/x-sh","patch_set":5,"id":"1ae5cdf2_3a59da8e","line":46,"range":{"start_line":46,"start_character":10,"end_line":46,"end_character":12},"updated":"2014-06-17 04:49:16.000000000","message":"why -p ?","commit_id":"731c900ce2e12ac08afa63be3f33b1208f1e8ca3"},{"author":{"_account_id":1894,"name":"Ryota MIBU","email":"r-mibu@cq.jp.nec.com","username":"r-mibu"},"change_message_id":"9ac044e6d9f2feaa97f81cb966c59c1e939eb9e6","unresolved":false,"context_lines":[{"line_number":43,"context_line":"}"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"function setup_test4 {"},{"line_number":46,"context_line":"    mkdir -p test-etc"},{"line_number":47,"context_line":"    cat \u003etest-etc/test4.conf \u003c\u003cEOF"},{"line_number":48,"context_line":"[fff]"},{"line_number":49,"context_line":"# original comment"}],"source_content_type":"text/x-sh","patch_set":5,"id":"1ae5cdf2_9072cfe1","line":46,"in_reply_to":"1ae5cdf2_3a59da8e","updated":"2014-06-17 06:42:05.000000000","message":"To keep return code 0 though if the dir exists. It occurs in L219.\n\n r-mibu@dev:~/tmp$ mkdir a\n r-mibu@dev:~/tmp$ mkdir a\n mkdir: cannot create directory \u0027a\u0027: File exists\n r-mibu@dev:~/tmp$ echo $?\n 1\n r-mibu@dev:~/tmp$ mkdir -p a\n r-mibu@dev:~/tmp$ echo $?\n 0","commit_id":"731c900ce2e12ac08afa63be3f33b1208f1e8ca3"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"3a55b44e539403a6bf165389fff3200146bfdb9e","unresolved":false,"context_lines":[{"line_number":49,"context_line":"# original comment"},{"line_number":50,"context_line":"type\u003doriginal"},{"line_number":51,"context_line":"EOF"},{"line_number":52,"context_line":"    export TEST4_DIR\u003d\"test-etc\""},{"line_number":53,"context_line":"    export TEST4_FILE\u003d\"test4.conf\""},{"line_number":54,"context_line":"}"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-sh","patch_set":5,"id":"1ae5cdf2_300bbb7e","line":52,"updated":"2014-06-17 06:03:22.000000000","message":"these shouldn\u0027t need to be exported?","commit_id":"731c900ce2e12ac08afa63be3f33b1208f1e8ca3"},{"author":{"_account_id":1894,"name":"Ryota MIBU","email":"r-mibu@cq.jp.nec.com","username":"r-mibu"},"change_message_id":"9ac044e6d9f2feaa97f81cb966c59c1e939eb9e6","unresolved":false,"context_lines":[{"line_number":49,"context_line":"# original comment"},{"line_number":50,"context_line":"type\u003doriginal"},{"line_number":51,"context_line":"EOF"},{"line_number":52,"context_line":"    export TEST4_DIR\u003d\"test-etc\""},{"line_number":53,"context_line":"    export TEST4_FILE\u003d\"test4.conf\""},{"line_number":54,"context_line":"}"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-sh","patch_set":5,"id":"1ae5cdf2_d3a8e179","line":52,"in_reply_to":"1ae5cdf2_300bbb7e","updated":"2014-06-17 06:42:05.000000000","message":"Right. \u0027Q_PLUGIN_CONF_FILE\u0027 is not exported. I will change these lines.","commit_id":"731c900ce2e12ac08afa63be3f33b1208f1e8ca3"}]}
