)]}'
{"functions":[{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"cecec3550883050fc472d2b369c59b921979acaf","unresolved":false,"context_lines":[{"line_number":480,"context_line":"# if address is not in network or netaddr library"},{"line_number":481,"context_line":"# is not installed."},{"line_number":482,"context_line":"function address_in_net() {"},{"line_number":483,"context_line":"    python -c \""},{"line_number":484,"context_line":"import netaddr"},{"line_number":485,"context_line":"import sys"},{"line_number":486,"context_line":"sys.exit(netaddr.IPAddress(\u0027$1\u0027) not in netaddr.IPNetwork(\u0027$2\u0027))"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAKX%2F%2F86U%3D","line":483,"updated":"2012-07-12 17:06:55.000000000","message":"The functions are sorted alphabetically here unless there is a precedence problem.\n\nI suppose if we need to use Python in DevStack wrapping it in a function is the right way to do it...","commit_id":"0330e50caec095fd54081350b3714cc609bdfc88"},{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"44f2c73fee8ace8eda8fc703ed8c67cd69d987f1","unresolved":false,"context_lines":[{"line_number":480,"context_line":"# if address is not in network or netaddr library"},{"line_number":481,"context_line":"# is not installed."},{"line_number":482,"context_line":"function address_in_net() {"},{"line_number":483,"context_line":"    python -c \""},{"line_number":484,"context_line":"import netaddr"},{"line_number":485,"context_line":"import sys"},{"line_number":486,"context_line":"sys.exit(netaddr.IPAddress(\u0027$1\u0027) not in netaddr.IPNetwork(\u0027$2\u0027))"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAKX%2F%2F7gQ%3D","line":483,"in_reply_to":"AAAAKX%2F%2F86U%3D","updated":"2012-07-14 00:16:28.000000000","message":"ok will move it.","commit_id":"0330e50caec095fd54081350b3714cc609bdfc88"}],"stack.sh":[{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"2ac87f0d905f7ca98572f44100918dba16c7e311","unresolved":false,"context_lines":[{"line_number":293,"context_line":"# cases."},{"line_number":294,"context_line":"SCHEDULER\u003d${SCHEDULER:-nova.scheduler.filter_scheduler.FilterScheduler}"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"HOST_IP_IFACES\u003d${HOST_IP_IFACES:-br100 eth0 en0}"},{"line_number":297,"context_line":"# Search for an IP unless an explicit is set by ``HOST_IP`` environment variable"},{"line_number":298,"context_line":"if [ -z \"$HOST_IP\" -o \"$HOST_IP\" \u003d\u003d \"dhcp\" ]; then"},{"line_number":299,"context_line":"    for HOST_IP_IFACE in $HOST_IP_IFACES; do"}],"source_content_type":"text/x-sh","patch_set":1,"id":"AAAAJ3%2F%2F9sQ%3D","line":296,"updated":"2012-07-04 01:53:33.000000000","message":"Could you throw \"em1\" in this list, too?  That would be handy to Fedora users.","commit_id":"a51ce2846d9eb3ce21f66076a3cf9bc4d3d5be20"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"cecec3550883050fc472d2b369c59b921979acaf","unresolved":false,"context_lines":[{"line_number":308,"context_line":"            # python library is installed. If it is not installed, an error"},{"line_number":309,"context_line":"            # will be printed and the first ip from the interface will be used."},{"line_number":310,"context_line":"            if ! (address_in_net $IP $FIXED_RANGE || address_in_net $IP $FLOATING_RANGE); then"},{"line_number":311,"context_line":"                break;"},{"line_number":312,"context_line":"            fi"},{"line_number":313,"context_line":"        done"},{"line_number":314,"context_line":"        if [ \"$HOST_IP\" !\u003d \"\" ]; then"}],"source_content_type":"text/x-sh","patch_set":3,"id":"AAAAKX%2F%2F86k%3D","line":311,"updated":"2012-07-12 17:06:55.000000000","message":"Should PUBLIC_INTERFACE be updated with the interface that is selected here?  Also, if it is set should it be used instead of a search?","commit_id":"0330e50caec095fd54081350b3714cc609bdfc88"},{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"44f2c73fee8ace8eda8fc703ed8c67cd69d987f1","unresolved":false,"context_lines":[{"line_number":308,"context_line":"            # python library is installed. If it is not installed, an error"},{"line_number":309,"context_line":"            # will be printed and the first ip from the interface will be used."},{"line_number":310,"context_line":"            if ! (address_in_net $IP $FIXED_RANGE || address_in_net $IP $FLOATING_RANGE); then"},{"line_number":311,"context_line":"                break;"},{"line_number":312,"context_line":"            fi"},{"line_number":313,"context_line":"        done"},{"line_number":314,"context_line":"        if [ \"$HOST_IP\" !\u003d \"\" ]; then"}],"source_content_type":"text/x-sh","patch_set":3,"id":"AAAAKX%2F%2F7gU%3D","line":311,"in_reply_to":"AAAAKX%2F%2F86k%3D","updated":"2012-07-14 00:16:28.000000000","message":"If the user is going to set PUBLIC_INTERFACE I think it is ok that he also has to set HOST_IP_IFACES  or HOST_IP as well. Automatically updating PUBLIC_INTERFACE is somewhat interesting, but I think it runs the risk of being \u0027too smart\u0027 and confusing people.","commit_id":"0330e50caec095fd54081350b3714cc609bdfc88"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"d7f4829c9342a7fdbc29231ff2d6e079c128ebc0","unresolved":false,"context_lines":[{"line_number":288,"context_line":"FIXED_RANGE\u003d${FIXED_RANGE:-10.0.0.0/24}"},{"line_number":289,"context_line":"FLOATING_RANGE\u003d${FLOATING_RANGE:-172.24.4.224/28}"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"HOST_IP_IFACE\u003d${HOST_IP_IFACE:-eth0}"},{"line_number":292,"context_line":"# Search for an IP unless an explicit is set by ``HOST_IP`` environment variable"},{"line_number":293,"context_line":"if [ -z \"$HOST_IP\" -o \"$HOST_IP\" \u003d\u003d \"dhcp\" ]; then"},{"line_number":294,"context_line":"    HOST_IP\u003d\"\""}],"source_content_type":"text/x-sh","patch_set":6,"id":"AAAALH%2F%2F8qU%3D","line":291,"updated":"2012-07-30 22:05:04.000000000","message":"I\u0027m not sure this line is still needed...however...","commit_id":"11afa7b8211d2589ef8b274f04ed8c8d69ce8c93"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"d7f4829c9342a7fdbc29231ff2d6e079c128ebc0","unresolved":false,"context_lines":[{"line_number":293,"context_line":"if [ -z \"$HOST_IP\" -o \"$HOST_IP\" \u003d\u003d \"dhcp\" ]; then"},{"line_number":294,"context_line":"    HOST_IP\u003d\"\""},{"line_number":295,"context_line":"    # Find the interface used for the default route"},{"line_number":296,"context_line":"    HOST_IP_IFACE\u003d$(ip route | sed -n \u0027/^default/{ s/.*dev \\(\\w\\+\\)\\s\\+.*/\\1/; p; }\u0027)"},{"line_number":297,"context_line":"    HOST_IPS\u003d`LC_ALL\u003dC ip -f inet addr show ${HOST_IP_IFACE} | awk \u0027/inet/ {split($2,parts,\"/\");  print parts[1]}\u0027`"},{"line_number":298,"context_line":"    for IP in $HOST_IPS; do"},{"line_number":299,"context_line":"        # Attempt to filter out ip addresses that are part of the fixed and"}],"source_content_type":"text/x-sh","patch_set":6,"id":"AAAALH%2F%2F8qI%3D","line":296,"updated":"2012-07-30 22:05:04.000000000","message":"I would still like the ability to override this interface and not always blindly use the default route interface.  Move the above here like this: ??\n\n HOST_IP_IFACE\u003d${HOST_IP_IFACE:-$(ip route | sed ... )}","commit_id":"11afa7b8211d2589ef8b274f04ed8c8d69ce8c93"}]}
