)]}'
{"functions":[{"author":{"_account_id":6473,"name":"Sunil Thaha","email":"sthaha@redhat.com","username":"sthaha"},"change_message_id":"58a89a954c45c3354cd6a9574aae353c62163b8d","unresolved":false,"context_lines":[{"line_number":1354,"context_line":"}"},{"line_number":1355,"context_line":""},{"line_number":1356,"context_line":"# Path permissions sanity check"},{"line_number":1357,"context_line":"# path_sanity"},{"line_number":1358,"context_line":"function path_sanity() {"},{"line_number":1359,"context_line":"    # Ensure no element of the path has 0700 permissions, which is very"},{"line_number":1360,"context_line":"    # likely to cause issues for daemons.  Inspired by default 0700"}],"source_content_type":"application/octet-stream","patch_set":9,"id":"AAAAOn%2F%2FksU%3D","line":1357,"updated":"2013-05-03 11:56:38.000000000","message":"path_sanity path,  -right?","commit_id":"bc601573a204da865e61f244df8e7ab3a78b09d5"},{"author":{"_account_id":6473,"name":"Sunil Thaha","email":"sthaha@redhat.com","username":"sthaha"},"change_message_id":"58a89a954c45c3354cd6a9574aae353c62163b8d","unresolved":false,"context_lines":[{"line_number":1355,"context_line":""},{"line_number":1356,"context_line":"# Path permissions sanity check"},{"line_number":1357,"context_line":"# path_sanity"},{"line_number":1358,"context_line":"function path_sanity() {"},{"line_number":1359,"context_line":"    # Ensure no element of the path has 0700 permissions, which is very"},{"line_number":1360,"context_line":"    # likely to cause issues for daemons.  Inspired by default 0700"},{"line_number":1361,"context_line":"    # homedir permissions on RHEL and common practice of making DEST in"}],"source_content_type":"application/octet-stream","patch_set":9,"id":"AAAAOn%2F%2Fksc%3D","line":1358,"updated":"2013-05-03 11:56:38.000000000","message":"how about sanity_check $path ?\nthan path_sanity $path","commit_id":"bc601573a204da865e61f244df8e7ab3a78b09d5"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"1794b7b6de79041da89775e0f259c7261b62bdaa","unresolved":false,"context_lines":[{"line_number":1355,"context_line":""},{"line_number":1356,"context_line":"# Path permissions sanity check"},{"line_number":1357,"context_line":"# path_sanity"},{"line_number":1358,"context_line":"function path_sanity() {"},{"line_number":1359,"context_line":"    # Ensure no element of the path has 0700 permissions, which is very"},{"line_number":1360,"context_line":"    # likely to cause issues for daemons.  Inspired by default 0700"},{"line_number":1361,"context_line":"    # homedir permissions on RHEL and common practice of making DEST in"}],"source_content_type":"application/octet-stream","patch_set":9,"id":"AAAAOn%2F%2FiPM%3D","line":1358,"in_reply_to":"AAAAOn%2F%2Fi5Q%3D","updated":"2013-05-06 15:25:41.000000000","message":"That\u0027s fine, I was just concerned about specifying _what_ was being checked.","commit_id":"bc601573a204da865e61f244df8e7ab3a78b09d5"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"9ef345e5165538b94fd3e1869bc48cf64dac0c77","unresolved":false,"context_lines":[{"line_number":1355,"context_line":""},{"line_number":1356,"context_line":"# Path permissions sanity check"},{"line_number":1357,"context_line":"# path_sanity"},{"line_number":1358,"context_line":"function path_sanity() {"},{"line_number":1359,"context_line":"    # Ensure no element of the path has 0700 permissions, which is very"},{"line_number":1360,"context_line":"    # likely to cause issues for daemons.  Inspired by default 0700"},{"line_number":1361,"context_line":"    # homedir permissions on RHEL and common practice of making DEST in"}],"source_content_type":"application/octet-stream","patch_set":9,"id":"AAAAOn%2F%2FfgU%3D","line":1358,"in_reply_to":"AAAAOn%2F%2FiPM%3D","updated":"2013-05-07 23:31:05.000000000","message":"Done","commit_id":"bc601573a204da865e61f244df8e7ab3a78b09d5"},{"author":{"_account_id":6473,"name":"Sunil Thaha","email":"sthaha@redhat.com","username":"sthaha"},"change_message_id":"9cc5a640b74e982520fb7bef744248296e810e12","unresolved":false,"context_lines":[{"line_number":1355,"context_line":""},{"line_number":1356,"context_line":"# Path permissions sanity check"},{"line_number":1357,"context_line":"# path_sanity"},{"line_number":1358,"context_line":"function path_sanity() {"},{"line_number":1359,"context_line":"    # Ensure no element of the path has 0700 permissions, which is very"},{"line_number":1360,"context_line":"    # likely to cause issues for daemons.  Inspired by default 0700"},{"line_number":1361,"context_line":"    # homedir permissions on RHEL and common practice of making DEST in"}],"source_content_type":"application/octet-stream","patch_set":9,"id":"AAAAOn%2F%2Fi5Q%3D","line":1358,"in_reply_to":"AAAAOn%2F%2Fj4Y%3D","updated":"2013-05-06 00:34:05.000000000","message":"Sure, how about check_path_sanity? I am just more inclined to having a verb_noun format which is what all the functions in the devstack follows.","commit_id":"bc601573a204da865e61f244df8e7ab3a78b09d5"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"c1f5d6789729fc8b136239ffc5e58b3786913ebd","unresolved":false,"context_lines":[{"line_number":1355,"context_line":""},{"line_number":1356,"context_line":"# Path permissions sanity check"},{"line_number":1357,"context_line":"# path_sanity"},{"line_number":1358,"context_line":"function path_sanity() {"},{"line_number":1359,"context_line":"    # Ensure no element of the path has 0700 permissions, which is very"},{"line_number":1360,"context_line":"    # likely to cause issues for daemons.  Inspired by default 0700"},{"line_number":1361,"context_line":"    # homedir permissions on RHEL and common practice of making DEST in"}],"source_content_type":"application/octet-stream","patch_set":9,"id":"AAAAOn%2F%2Fj4Y%3D","line":1358,"in_reply_to":"AAAAOn%2F%2Fksc%3D","updated":"2013-05-03 20:47:53.000000000","message":"sanity_check is not specific enough for a function that only checks specific attributes of a directory path.","commit_id":"bc601573a204da865e61f244df8e7ab3a78b09d5"},{"author":{"_account_id":6473,"name":"Sunil Thaha","email":"sthaha@redhat.com","username":"sthaha"},"change_message_id":"58a89a954c45c3354cd6a9574aae353c62163b8d","unresolved":false,"context_lines":[{"line_number":1361,"context_line":"    # homedir permissions on RHEL and common practice of making DEST in"},{"line_number":1362,"context_line":"    # the stack user\u0027s homedir."},{"line_number":1363,"context_line":""},{"line_number":1364,"context_line":"    real_path\u003d$(readlink -f $*)"},{"line_number":1365,"context_line":"    rebuilt_path\u003d\"\""},{"line_number":1366,"context_line":"    for i in $(echo ${real_path} | tr \"/\" \" \");"},{"line_number":1367,"context_line":"    do"}],"source_content_type":"application/octet-stream","patch_set":9,"id":"AAAAOn%2F%2FksY%3D","line":1364,"updated":"2013-05-03 11:56:38.000000000","message":"did you mean $1 instead of $* ?\ndo you want to use local?","commit_id":"bc601573a204da865e61f244df8e7ab3a78b09d5"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"9ef345e5165538b94fd3e1869bc48cf64dac0c77","unresolved":false,"context_lines":[{"line_number":1361,"context_line":"    # homedir permissions on RHEL and common practice of making DEST in"},{"line_number":1362,"context_line":"    # the stack user\u0027s homedir."},{"line_number":1363,"context_line":""},{"line_number":1364,"context_line":"    real_path\u003d$(readlink -f $*)"},{"line_number":1365,"context_line":"    rebuilt_path\u003d\"\""},{"line_number":1366,"context_line":"    for i in $(echo ${real_path} | tr \"/\" \" \");"},{"line_number":1367,"context_line":"    do"}],"source_content_type":"application/octet-stream","patch_set":9,"id":"AAAAOn%2F%2FfhY%3D","line":1364,"in_reply_to":"AAAAOn%2F%2FksY%3D","updated":"2013-05-07 23:31:05.000000000","message":"Done","commit_id":"bc601573a204da865e61f244df8e7ab3a78b09d5"},{"author":{"_account_id":6473,"name":"Sunil Thaha","email":"sthaha@redhat.com","username":"sthaha"},"change_message_id":"58a89a954c45c3354cd6a9574aae353c62163b8d","unresolved":false,"context_lines":[{"line_number":1362,"context_line":"    # the stack user\u0027s homedir."},{"line_number":1363,"context_line":""},{"line_number":1364,"context_line":"    real_path\u003d$(readlink -f $*)"},{"line_number":1365,"context_line":"    rebuilt_path\u003d\"\""},{"line_number":1366,"context_line":"    for i in $(echo ${real_path} | tr \"/\" \" \");"},{"line_number":1367,"context_line":"    do"},{"line_number":1368,"context_line":"        rebuilt_path\u003d$rebuilt_path\"/\"$i"}],"source_content_type":"application/octet-stream","patch_set":9,"id":"AAAAOn%2F%2FksI%3D","line":1365,"updated":"2013-05-03 11:56:38.000000000","message":"local ?","commit_id":"bc601573a204da865e61f244df8e7ab3a78b09d5"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"9ef345e5165538b94fd3e1869bc48cf64dac0c77","unresolved":false,"context_lines":[{"line_number":1362,"context_line":"    # the stack user\u0027s homedir."},{"line_number":1363,"context_line":""},{"line_number":1364,"context_line":"    real_path\u003d$(readlink -f $*)"},{"line_number":1365,"context_line":"    rebuilt_path\u003d\"\""},{"line_number":1366,"context_line":"    for i in $(echo ${real_path} | tr \"/\" \" \");"},{"line_number":1367,"context_line":"    do"},{"line_number":1368,"context_line":"        rebuilt_path\u003d$rebuilt_path\"/\"$i"}],"source_content_type":"application/octet-stream","patch_set":9,"id":"AAAAOn%2F%2FfhU%3D","line":1365,"in_reply_to":"AAAAOn%2F%2FksI%3D","updated":"2013-05-07 23:31:05.000000000","message":"Done","commit_id":"bc601573a204da865e61f244df8e7ab3a78b09d5"},{"author":{"_account_id":6473,"name":"Sunil Thaha","email":"sthaha@redhat.com","username":"sthaha"},"change_message_id":"58a89a954c45c3354cd6a9574aae353c62163b8d","unresolved":false,"context_lines":[{"line_number":1363,"context_line":""},{"line_number":1364,"context_line":"    real_path\u003d$(readlink -f $*)"},{"line_number":1365,"context_line":"    rebuilt_path\u003d\"\""},{"line_number":1366,"context_line":"    for i in $(echo ${real_path} | tr \"/\" \" \");"},{"line_number":1367,"context_line":"    do"},{"line_number":1368,"context_line":"        rebuilt_path\u003d$rebuilt_path\"/\"$i"},{"line_number":1369,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":9,"id":"AAAAOn%2F%2Fksg%3D","line":1366,"updated":"2013-05-03 11:56:38.000000000","message":"do on the same line as for ... ;","commit_id":"bc601573a204da865e61f244df8e7ab3a78b09d5"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"9ef345e5165538b94fd3e1869bc48cf64dac0c77","unresolved":false,"context_lines":[{"line_number":1363,"context_line":""},{"line_number":1364,"context_line":"    real_path\u003d$(readlink -f $*)"},{"line_number":1365,"context_line":"    rebuilt_path\u003d\"\""},{"line_number":1366,"context_line":"    for i in $(echo ${real_path} | tr \"/\" \" \");"},{"line_number":1367,"context_line":"    do"},{"line_number":1368,"context_line":"        rebuilt_path\u003d$rebuilt_path\"/\"$i"},{"line_number":1369,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":9,"id":"AAAAOn%2F%2FfhI%3D","line":1366,"in_reply_to":"AAAAOn%2F%2Fksg%3D","updated":"2013-05-07 23:31:05.000000000","message":"Done","commit_id":"bc601573a204da865e61f244df8e7ab3a78b09d5"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"c1f5d6789729fc8b136239ffc5e58b3786913ebd","unresolved":false,"context_lines":[{"line_number":1376,"context_line":"            if [[ -n \"$SKIP_PATH_SANITY\" ]]; then"},{"line_number":1377,"context_line":"                return"},{"line_number":1378,"context_line":"            else"},{"line_number":1379,"context_line":"                echo \"*** Set SKIP_PATH_SANITY to skip this check\""},{"line_number":1380,"context_line":"                exit 1"},{"line_number":1381,"context_line":"            fi"},{"line_number":1382,"context_line":"        fi"}],"source_content_type":"application/octet-stream","patch_set":9,"id":"AAAAOn%2F%2Fj4M%3D","line":1379,"updated":"2013-05-03 20:47:53.000000000","message":"use die() here to be more consistent with the logging","commit_id":"bc601573a204da865e61f244df8e7ab3a78b09d5"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"9ef345e5165538b94fd3e1869bc48cf64dac0c77","unresolved":false,"context_lines":[{"line_number":1376,"context_line":"            if [[ -n \"$SKIP_PATH_SANITY\" ]]; then"},{"line_number":1377,"context_line":"                return"},{"line_number":1378,"context_line":"            else"},{"line_number":1379,"context_line":"                echo \"*** Set SKIP_PATH_SANITY to skip this check\""},{"line_number":1380,"context_line":"                exit 1"},{"line_number":1381,"context_line":"            fi"},{"line_number":1382,"context_line":"        fi"}],"source_content_type":"application/octet-stream","patch_set":9,"id":"AAAAOn%2F%2FfgY%3D","line":1379,"in_reply_to":"AAAAOn%2F%2Fj4M%3D","updated":"2013-05-07 23:31:05.000000000","message":"Done","commit_id":"bc601573a204da865e61f244df8e7ab3a78b09d5"},{"author":{"_account_id":6526,"name":"David Geng","email":"gengjh@cn.ibm.com","username":"genggjh"},"change_message_id":"4f0fd52530b1d9e993d8b038e1b352aac6f4ebab","unresolved":false,"context_lines":[{"line_number":1430,"context_line":"            echo \"*** appears to have 0700 permissions.\""},{"line_number":1431,"context_line":"            echo \"*** This is very likely to cause fatal issues for devstack daemons.\""},{"line_number":1432,"context_line":""},{"line_number":1433,"context_line":"            if [[ -n \"$SKIP_PATH_SANITY\" ]]; then"},{"line_number":1434,"context_line":"                return"},{"line_number":1435,"context_line":"            else"},{"line_number":1436,"context_line":"                echo \"*** Set SKIP_PATH_SANITY to skip this check\""}],"source_content_type":"application/octet-stream","patch_set":11,"id":"AAAAOn%2F%2FfRE%3D","line":1433,"updated":"2013-05-08 03:31:53.000000000","message":"It\u0027s better to move the \u0027if [[ -n \"$SKIP_PATH_SANITY\" ]]\u0027 outside the for loop to improve the performance.\nIf we set SKIP_PATH_SANITY to skip this check we never need to scan the whole DEST dir, right?","commit_id":"0488edda8a34b0be6693cafdf506cfc8185a2a83"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"f8bc6f915d39dc06a22040efc8c06bd506a4e775","unresolved":false,"context_lines":[{"line_number":1430,"context_line":"            echo \"*** appears to have 0700 permissions.\""},{"line_number":1431,"context_line":"            echo \"*** This is very likely to cause fatal issues for devstack daemons.\""},{"line_number":1432,"context_line":""},{"line_number":1433,"context_line":"            if [[ -n \"$SKIP_PATH_SANITY\" ]]; then"},{"line_number":1434,"context_line":"                return"},{"line_number":1435,"context_line":"            else"},{"line_number":1436,"context_line":"                echo \"*** Set SKIP_PATH_SANITY to skip this check\""}],"source_content_type":"application/octet-stream","patch_set":11,"id":"AAAAOn%2F%2FfQY%3D","line":1433,"in_reply_to":"AAAAOn%2F%2FfRE%3D","updated":"2013-05-08 03:52:10.000000000","message":"This was intentional to always provide some output in the stored logs, which might be helpful when you\u0027re grepping through to debug your errors (which I\u0027m pretty sure you\u0027ll get if you force trying to run like this :)","commit_id":"0488edda8a34b0be6693cafdf506cfc8185a2a83"}],"stack.sh":[{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"e8a91ad007e7edff944dc57546520788f9b9f0cb","unresolved":false,"context_lines":[{"line_number":201,"context_line":"# logs and httpd being able to run horizon."},{"line_number":202,"context_line":"if [[ ${DEST} \u003d /home/* ]]; then"},{"line_number":203,"context_line":"    if [[ $(stat -c \u0027%a\u0027 ~) \u003d 700 ]]; then"},{"line_number":204,"context_line":"\techo \"*** You appear to have DEST set to a subdirectory\""},{"line_number":205,"context_line":"\techo \"*** of a home directory with 700 permissions.  This\""},{"line_number":206,"context_line":"\techo \"*** will cause problems for the daemons Open Stack\""},{"line_number":207,"context_line":"\techo \"*** runs.  Permissions on should be 755\""}],"source_content_type":"text/x-sh","patch_set":3,"id":"AAAAOH%2F%2FtnY%3D","line":204,"updated":"2013-04-01 23:09:28.000000000","message":"Please change tabs to spaces.","commit_id":"f5668ceb8d7c4d71adbe116020411f203edea942"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"651dc16fc97522e2dc1ffc3c1be65600619960f3","unresolved":false,"context_lines":[{"line_number":201,"context_line":"# logs and httpd being able to run horizon."},{"line_number":202,"context_line":"if [[ ${DEST} \u003d /home/* ]]; then"},{"line_number":203,"context_line":"    if [[ $(stat -c \u0027%a\u0027 ~) \u003d 700 ]]; then"},{"line_number":204,"context_line":"\techo \"*** You appear to have DEST set to a subdirectory\""},{"line_number":205,"context_line":"\techo \"*** of a home directory with 700 permissions.  This\""},{"line_number":206,"context_line":"\techo \"*** will cause problems for the daemons Open Stack\""},{"line_number":207,"context_line":"\techo \"*** runs.  Permissions on should be 755\""}],"source_content_type":"text/x-sh","patch_set":3,"id":"AAAAOH%2F%2Ftlc%3D","line":204,"in_reply_to":"AAAAOH%2F%2FtnY%3D","updated":"2013-04-01 23:23:26.000000000","message":"Yes, sorry, I had a slight .emacs issue, you\u0027ll see no more tabs from me :)","commit_id":"f5668ceb8d7c4d71adbe116020411f203edea942"},{"author":{"_account_id":6473,"name":"Sunil Thaha","email":"sthaha@redhat.com","username":"sthaha"},"change_message_id":"c71ad2d203ded199959a2ca91966ded495d83902","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"# Warn users who aren\u0027t on an explicitly supported distro, but allow them to"},{"line_number":91,"context_line":"# override check and attempt installation with ``FORCE\u003dyes ./stack``"},{"line_number":92,"context_line":"if [[ ! ${DISTRO} \u003d~ (oneiric|precise|quantal|raring|f16|f17|f18|opensuse-12.2) ]]; then"},{"line_number":93,"context_line":"    echo \"WARNING: this script has not been tested on $DISTRO\""},{"line_number":94,"context_line":"    if [[ \"$FORCE\" !\u003d \"yes\" ]]; then"},{"line_number":95,"context_line":"        die $LINENO \"If you wish to run this script anyway run with FORCE\u003dyes\""}],"source_content_type":"text/x-sh","patch_set":4,"id":"AAAAOH%2F%2FtQk%3D","line":92,"updated":"2013-04-02 06:04:36.000000000","message":"why did the rhel6 get removed?","commit_id":"b05eb9dc1a5d0aa990d0fc4c141aa8a8ca5b97db"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"1b8f86e4a8847e75eda47bc579fed2821bf57025","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"# Warn users who aren\u0027t on an explicitly supported distro, but allow them to"},{"line_number":91,"context_line":"# override check and attempt installation with ``FORCE\u003dyes ./stack``"},{"line_number":92,"context_line":"if [[ ! ${DISTRO} \u003d~ (oneiric|precise|quantal|raring|f16|f17|f18|opensuse-12.2) ]]; then"},{"line_number":93,"context_line":"    echo \"WARNING: this script has not been tested on $DISTRO\""},{"line_number":94,"context_line":"    if [[ \"$FORCE\" !\u003d \"yes\" ]]; then"},{"line_number":95,"context_line":"        die $LINENO \"If you wish to run this script anyway run with FORCE\u003dyes\""}],"source_content_type":"text/x-sh","patch_set":4,"id":"AAAAOX%2F%2F%2F7s%3D","line":92,"in_reply_to":"AAAAOH%2F%2FtQk%3D","updated":"2013-04-03 02:05:53.000000000","message":"I reordered this before that patch","commit_id":"b05eb9dc1a5d0aa990d0fc4c141aa8a8ca5b97db"},{"author":{"_account_id":6473,"name":"Sunil Thaha","email":"sthaha@redhat.com","username":"sthaha"},"change_message_id":"c71ad2d203ded199959a2ca91966ded495d83902","unresolved":false,"context_lines":[{"line_number":199,"context_line":"# but on distributions like centos and rhel the homedir is created 700"},{"line_number":200,"context_line":"# which causes problems for things like qemu attaching to console"},{"line_number":201,"context_line":"# logs and httpd being able to run horizon."},{"line_number":202,"context_line":"if [[ ${DEST} \u003d /home/* ]]; then"},{"line_number":203,"context_line":"    if [[ $(stat -c \u0027%a\u0027 ~) \u003d 700 ]]; then"},{"line_number":204,"context_line":"        echo \"*** You appear to have DEST set to a subdirectory\""},{"line_number":205,"context_line":"        echo \"*** of a home directory with 700 permissions.  This\""}],"source_content_type":"text/x-sh","patch_set":4,"id":"AAAAOH%2F%2FtQc%3D","line":202,"updated":"2013-04-02 06:04:36.000000000","message":"nested if is not needed, you can replace it with an \u0027and\u0027 \n\n    if  (it-is-home and doesn\u0027t-have-permission) {\n    }","commit_id":"b05eb9dc1a5d0aa990d0fc4c141aa8a8ca5b97db"}]}
