)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"5442be699e492670014bbe820867b61cf7da2f1d","unresolved":false,"context_lines":[{"line_number":12,"context_line":"   compute node will apply security group rules in Dom0\u0027s linux bridge"},{"line_number":13,"context_line":"2. Make udp port 4789 enabled in Dom0 as VxLAN use it by default"},{"line_number":14,"context_line":"3. Configure tunnel bridge, tunnel types and tunnel endpoint IP for"},{"line_number":15,"context_line":"   both q-agt(for comupte node) and q-domua(for network node),"},{"line_number":16,"context_line":"   especially, endpoint IP of q-agt is configured as Dom0\u0027s IP"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I190adf9f91560e72c6b696fa15bce78cca785ddd"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"9a629dbe_b262403c","line":15,"range":{"start_line":15,"start_character":7,"end_line":15,"end_character":59},"updated":"2016-11-12 03:17:35.000000000","message":"Per recent discussion, is this wrongly reversed?","commit_id":"60739f39682d09bfce79211a966671e347761a52"},{"author":{"_account_id":17922,"name":"Huan Xie","email":"huan.xie@citrix.com","username":"huan"},"change_message_id":"e3c63492b3cc27b5ada7bc3483b8cbe2a027af61","unresolved":false,"context_lines":[{"line_number":12,"context_line":"   compute node will apply security group rules in Dom0\u0027s linux bridge"},{"line_number":13,"context_line":"2. Make udp port 4789 enabled in Dom0 as VxLAN use it by default"},{"line_number":14,"context_line":"3. Configure tunnel bridge, tunnel types and tunnel endpoint IP for"},{"line_number":15,"context_line":"   both q-agt(for comupte node) and q-domua(for network node),"},{"line_number":16,"context_line":"   especially, endpoint IP of q-agt is configured as Dom0\u0027s IP"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I190adf9f91560e72c6b696fa15bce78cca785ddd"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"7a77a97e_8d08752f","line":15,"range":{"start_line":15,"start_character":7,"end_line":15,"end_character":59},"in_reply_to":"9a629dbe_b262403c","updated":"2016-11-16 02:13:41.000000000","message":"Based on the patch I made, we do use this way q-agt(compute node), q-domua(network node). So when we merged the fix for the reversed, I can change this","commit_id":"60739f39682d09bfce79211a966671e347761a52"}],"lib/neutron_plugins/openvswitch_agent":[{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"d6e9404b770473a69b4974279c005bd2389aa10b","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    fi"},{"line_number":63,"context_line":"    AGENT_BINARY\u003d\"$NEUTRON_BIN_DIR/neutron-openvswitch-agent\""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    if [ \"$VIRT_DRIVER\" \u003d\u003d \u0027xenserver\u0027 ]; then"},{"line_number":66,"context_line":"        # Make a copy of our config for domU"},{"line_number":67,"context_line":"        sudo cp /$Q_PLUGIN_CONF_FILE \"/$Q_PLUGIN_CONF_FILE.domU\""},{"line_number":68,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":5,"id":"3a98d1f4_68631a1b","line":65,"updated":"2016-09-29 11:02:34.000000000","message":"I think we could do with a comment regarding why we have a seperate agent for domU and explaining the purpose of the two agents that we\u0027re setting up below; to put the code in context","commit_id":"b08a4ed59266ae60a4a7745749138e495a73acb5"},{"author":{"_account_id":17922,"name":"Huan Xie","email":"huan.xie@citrix.com","username":"huan"},"change_message_id":"87248495c4ef5dbd7e8e817e800fbbc789c7ca49","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    fi"},{"line_number":63,"context_line":"    AGENT_BINARY\u003d\"$NEUTRON_BIN_DIR/neutron-openvswitch-agent\""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    if [ \"$VIRT_DRIVER\" \u003d\u003d \u0027xenserver\u0027 ]; then"},{"line_number":66,"context_line":"        # Make a copy of our config for domU"},{"line_number":67,"context_line":"        sudo cp /$Q_PLUGIN_CONF_FILE \"/$Q_PLUGIN_CONF_FILE.domU\""},{"line_number":68,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":5,"id":"3a98d1f4_13bb7028","line":65,"in_reply_to":"3a98d1f4_68631a1b","updated":"2016-09-30 06:45:42.000000000","message":"sure","commit_id":"b08a4ed59266ae60a4a7745749138e495a73acb5"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"d6e9404b770473a69b4974279c005bd2389aa10b","unresolved":false,"context_lines":[{"line_number":131,"context_line":"            iniset /$Q_PLUGIN_CONF_FILE.domU agent tunnel_types $Q_TUNNEL_TYPES"},{"line_number":132,"context_line":"        fi"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"        iniset /$Q_PLUGIN_CONF_FILE.domU ovs datapath_type $OVS_DATAPATH_TYPE"},{"line_number":135,"context_line":"    fi"},{"line_number":136,"context_line":"    iniset /$Q_PLUGIN_CONF_FILE agent tunnel_types $Q_TUNNEL_TYPES"},{"line_number":137,"context_line":"    iniset /$Q_PLUGIN_CONF_FILE ovs datapath_type $OVS_DATAPATH_TYPE"}],"source_content_type":"application/x-shellscript","patch_set":5,"id":"3a98d1f4_08d9b6f3","line":134,"updated":"2016-09-29 11:02:34.000000000","message":"Tunnel types and datapath_type happen below this block; so if you move them to above this block *then* copy for the new domU config file, we can avoid duplication","commit_id":"b08a4ed59266ae60a4a7745749138e495a73acb5"},{"author":{"_account_id":17922,"name":"Huan Xie","email":"huan.xie@citrix.com","username":"huan"},"change_message_id":"87248495c4ef5dbd7e8e817e800fbbc789c7ca49","unresolved":false,"context_lines":[{"line_number":131,"context_line":"            iniset /$Q_PLUGIN_CONF_FILE.domU agent tunnel_types $Q_TUNNEL_TYPES"},{"line_number":132,"context_line":"        fi"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"        iniset /$Q_PLUGIN_CONF_FILE.domU ovs datapath_type $OVS_DATAPATH_TYPE"},{"line_number":135,"context_line":"    fi"},{"line_number":136,"context_line":"    iniset /$Q_PLUGIN_CONF_FILE agent tunnel_types $Q_TUNNEL_TYPES"},{"line_number":137,"context_line":"    iniset /$Q_PLUGIN_CONF_FILE ovs datapath_type $OVS_DATAPATH_TYPE"}],"source_content_type":"application/x-shellscript","patch_set":5,"id":"3a98d1f4_f3ab64d4","line":134,"in_reply_to":"3a98d1f4_08d9b6f3","updated":"2016-09-30 06:45:42.000000000","message":"yes, I see, will do","commit_id":"b08a4ed59266ae60a4a7745749138e495a73acb5"},{"author":{"_account_id":20382,"name":"YuYang","email":"yuyangwang1985@gmail.com","username":"YuYangWang"},"change_message_id":"119841bd4462dc0a86f94cca14d06b71f30756d7","unresolved":false,"context_lines":[{"line_number":130,"context_line":"            # All q-domua\u0027s OVS commands are executed in Dom0 as Xen has the privileged and unprivileged domain,"},{"line_number":131,"context_line":"            # the tunnel is established between Dom0 and DomU(where devstack runs),"},{"line_number":132,"context_line":"            # and we need to change the local_ip that is used for Dom0"},{"line_number":133,"context_line":"            iniset /$Q_PLUGIN_CONF_FILE.domU ovs local_ip $XEN_DOM0_IP"},{"line_number":134,"context_line":"        fi"},{"line_number":135,"context_line":"    fi"},{"line_number":136,"context_line":"}"}],"source_content_type":"application/x-shellscript","patch_set":13,"id":"1a6eadb0_219de559","line":133,"range":{"start_line":133,"start_character":59,"end_line":133,"end_character":70},"updated":"2016-12-19 03:29:08.000000000","message":"where is config the Xen_Dom0IP?is this the manger Ip?thanks!","commit_id":"9b30d50bf66f69553256cc41849f7e5261aecfca"},{"author":{"_account_id":17922,"name":"Huan Xie","email":"huan.xie@citrix.com","username":"huan"},"change_message_id":"86a6cb9d5804c6bd224546bc62084cbd2feed0e7","unresolved":false,"context_lines":[{"line_number":130,"context_line":"            # All q-domua\u0027s OVS commands are executed in Dom0 as Xen has the privileged and unprivileged domain,"},{"line_number":131,"context_line":"            # the tunnel is established between Dom0 and DomU(where devstack runs),"},{"line_number":132,"context_line":"            # and we need to change the local_ip that is used for Dom0"},{"line_number":133,"context_line":"            iniset /$Q_PLUGIN_CONF_FILE.domU ovs local_ip $XEN_DOM0_IP"},{"line_number":134,"context_line":"        fi"},{"line_number":135,"context_line":"    fi"},{"line_number":136,"context_line":"}"}],"source_content_type":"application/x-shellscript","patch_set":13,"id":"1a6eadb0_f16e4495","line":133,"range":{"start_line":133,"start_character":59,"end_line":133,"end_character":70},"in_reply_to":"1a6eadb0_219de559","updated":"2016-12-19 13:42:45.000000000","message":"XEN_DOM0_IP is got from L:98","commit_id":"9b30d50bf66f69553256cc41849f7e5261aecfca"}],"lib/nova_plugins/hypervisor-xenserver":[{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"7fdbb04bd45ca3fa9a73f7f9f347a0a2e04cf152","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    # Remove restriction on linux bridge in Dom0 when neutron is enabled"},{"line_number":94,"context_line":"    if is_service_enabled neutron; then"},{"line_number":95,"context_line":"        $ssh_dom0 \"rm -f /etc/modprobe.d/blacklist-bridge*\""},{"line_number":96,"context_line":"        $ssh_dom0 \"/usr/sbin/iptables -I INPUT -p udp -m multiport --dport 4789 -j ACCEPT\""},{"line_number":97,"context_line":"    fi"},{"line_number":98,"context_line":"}"},{"line_number":99,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":3,"id":"5a8bc5a2_8001b4b1","line":96,"updated":"2016-09-26 12:20:44.000000000","message":"Since devstack can run multiple times, should we have a check if this rule is needed?\nPerhaps have a custom XenServerDevstack chain which we can add rules too? Then it\u0027s easy to check if the rule is in the chain without a chance of hitting conflicts.","commit_id":"3ab07479a14b928c623a798813d2f1d6ceaf80fa"},{"author":{"_account_id":17922,"name":"Huan Xie","email":"huan.xie@citrix.com","username":"huan"},"change_message_id":"89e9935ebf98c52cf3b5473fbd55d6be2a66a0db","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    # Remove restriction on linux bridge in Dom0 when neutron is enabled"},{"line_number":94,"context_line":"    if is_service_enabled neutron; then"},{"line_number":95,"context_line":"        $ssh_dom0 \"rm -f /etc/modprobe.d/blacklist-bridge*\""},{"line_number":96,"context_line":"        $ssh_dom0 \"/usr/sbin/iptables -I INPUT -p udp -m multiport --dport 4789 -j ACCEPT\""},{"line_number":97,"context_line":"    fi"},{"line_number":98,"context_line":"}"},{"line_number":99,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":3,"id":"5a8bc5a2_53e03f96","line":96,"in_reply_to":"5a8bc5a2_8001b4b1","updated":"2016-09-27 01:01:55.000000000","message":"yes, totally agree, I was considering checking this yesteday, will add this check:)","commit_id":"3ab07479a14b928c623a798813d2f1d6ceaf80fa"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"d6e9404b770473a69b4974279c005bd2389aa10b","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        $ssh_dom0 \"rm -f /etc/modprobe.d/blacklist-bridge*\""},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        # Check iptables rules for VxLAN, add it if not exist"},{"line_number":98,"context_line":"        count\u003d`$ssh_dom0 \"iptables -t filter -L XenServerDevstack |wc -l\"`"},{"line_number":99,"context_line":"        if [ \"$count\" \u003d \"0\" ]; then"},{"line_number":100,"context_line":"        {"},{"line_number":101,"context_line":"            echo \"/usr/sbin/iptables -t filter --new XenServerDevstack\""}],"source_content_type":"application/x-shellscript","patch_set":5,"id":"3a98d1f4_48049e16","line":98,"updated":"2016-09-29 11:02:34.000000000","message":"I think we need to:\n* Check if the XenServerDevstack chain exists\n** If it doesn\u0027t, add the chain and insert it into the INPUT chain\n* Check if the required rule is on the XenServerDevstack chain\n** If it doesn\u0027t exist, add it to the chain.","commit_id":"b08a4ed59266ae60a4a7745749138e495a73acb5"},{"author":{"_account_id":17922,"name":"Huan Xie","email":"huan.xie@citrix.com","username":"huan"},"change_message_id":"87248495c4ef5dbd7e8e817e800fbbc789c7ca49","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        $ssh_dom0 \"rm -f /etc/modprobe.d/blacklist-bridge*\""},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        # Check iptables rules for VxLAN, add it if not exist"},{"line_number":98,"context_line":"        count\u003d`$ssh_dom0 \"iptables -t filter -L XenServerDevstack |wc -l\"`"},{"line_number":99,"context_line":"        if [ \"$count\" \u003d \"0\" ]; then"},{"line_number":100,"context_line":"        {"},{"line_number":101,"context_line":"            echo \"/usr/sbin/iptables -t filter --new XenServerDevstack\""}],"source_content_type":"application/x-shellscript","patch_set":5,"id":"3a98d1f4_33e4ec39","line":98,"in_reply_to":"3a98d1f4_48049e16","updated":"2016-09-30 06:45:42.000000000","message":"OK, I can do the two steps. The other concern is, when unstack.sh, should we remove the chain and rules?","commit_id":"b08a4ed59266ae60a4a7745749138e495a73acb5"},{"author":{"_account_id":17922,"name":"Huan Xie","email":"huan.xie@citrix.com","username":"huan"},"change_message_id":"e3894aab32332d3cb0decc6b0a1181ea8e6633c1","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        {"},{"line_number":101,"context_line":"            echo \"iptables -t filter --new XenServerDevstack\""},{"line_number":102,"context_line":"            echo \"iptables -t filter -I INPUT -j XenServerDevstack\""},{"line_number":103,"context_line":"            echo \"iptables -t filter -I XenServerDevstack -p udp -m multiport --dport 4789 -j ACCEPT\""},{"line_number":104,"context_line":"        } | $ssh_dom0"},{"line_number":105,"context_line":"        fi"},{"line_number":106,"context_line":"    fi"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"3a98d1f4_2c67234e","line":103,"range":{"start_line":103,"start_character":12,"end_line":103,"end_character":101},"updated":"2016-09-30 10:43:21.000000000","message":"check whether this rule exist, add it if not exist","commit_id":"d31c271a1f6f5e5d94d0358c159563befa9e9d9c"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"4c8845743c30d0c35a5b8d6347778c6886d35ebb","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        fi"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"        # Check iptables rule for VxLAN, add if not exist"},{"line_number":107,"context_line":"        bad_vxlan_count\u003d`$ssh_dom0 \"iptables -t filter -C XenServerDevstack -p udp -m multiport --dports 4789 -j ACCEPT\" 2\u003e\u00261|grep \"iptables: Bad rule\"|wc -l`"},{"line_number":108,"context_line":"        if [ \"$bad_vxlan_count\" \u003d \"1\" ]; then"},{"line_number":109,"context_line":"            $ssh_dom0 \"iptables -t filter -I XenServerDevstack -p udp -m multiport --dport 4789 -j ACCEPT\""},{"line_number":110,"context_line":"        fi"}],"source_content_type":"application/x-shellscript","patch_set":8,"id":"1a95cdbc_539903c3","line":107,"updated":"2016-10-10 13:38:52.000000000","message":"Do we have to pipe to grep + wc?\nCan this check the exit code of the ssh command, or just check the stderr output against the failure message?","commit_id":"f045a2e63df9d6df0c2b7aed31b78f91abbf6616"},{"author":{"_account_id":17922,"name":"Huan Xie","email":"huan.xie@citrix.com","username":"huan"},"change_message_id":"6ce37f1a51351ec14769c8ca39e97f15bd4d83f2","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        fi"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"        # Check iptables rule for VxLAN, add if not exist"},{"line_number":107,"context_line":"        bad_vxlan_count\u003d`$ssh_dom0 \"iptables -t filter -C XenServerDevstack -p udp -m multiport --dports 4789 -j ACCEPT\" 2\u003e\u00261|grep \"iptables: Bad rule\"|wc -l`"},{"line_number":108,"context_line":"        if [ \"$bad_vxlan_count\" \u003d \"1\" ]; then"},{"line_number":109,"context_line":"            $ssh_dom0 \"iptables -t filter -I XenServerDevstack -p udp -m multiport --dport 4789 -j ACCEPT\""},{"line_number":110,"context_line":"        fi"}],"source_content_type":"application/x-shellscript","patch_set":8,"id":"fa6399be_0bd55f42","line":107,"in_reply_to":"1a95cdbc_539903c3","updated":"2016-10-11 06:25:24.000000000","message":"yes, I will change that way","commit_id":"f045a2e63df9d6df0c2b7aed31b78f91abbf6616"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"1e26a97dea6594c2f39cfd0ac7265874b7e61b1b","unresolved":false,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        # Check internal chain, add if not exist"},{"line_number":102,"context_line":"        $ssh_dom0 \"iptables -t filter -L XenServerDevstack\""},{"line_number":103,"context_line":"        local chain_result\u003d$?"},{"line_number":104,"context_line":"        if [ \"$chain_result\" !\u003d \"0\" ]; then"},{"line_number":105,"context_line":"        {"},{"line_number":106,"context_line":"            echo \"iptables -t filter --new XenServerDevstack\""}],"source_content_type":"application/x-shellscript","patch_set":13,"id":"3a71b18c_3b07741d","line":103,"updated":"2016-12-09 12:44:03.000000000","message":"errexit should be restored here; otherwise failures from the below would not exit.\n\nA better approach might be to run \"iptables -S | awk \u0027/-N XenServerDevstack/\u0027\"\n\nIf there is no rule the return value will be the empty string and there would be no need to mess with errexit","commit_id":"9b30d50bf66f69553256cc41849f7e5261aecfca"},{"author":{"_account_id":17922,"name":"Huan Xie","email":"huan.xie@citrix.com","username":"huan"},"change_message_id":"cca12fc9e4ee6a6bbc69e9ec77bbc278f3383779","unresolved":false,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        # Check internal chain, add if not exist"},{"line_number":102,"context_line":"        $ssh_dom0 \"iptables -t filter -L XenServerDevstack\""},{"line_number":103,"context_line":"        local chain_result\u003d$?"},{"line_number":104,"context_line":"        if [ \"$chain_result\" !\u003d \"0\" ]; then"},{"line_number":105,"context_line":"        {"},{"line_number":106,"context_line":"            echo \"iptables -t filter --new XenServerDevstack\""}],"source_content_type":"application/x-shellscript","patch_set":13,"id":"1a6eadb0_6136fde8","line":103,"in_reply_to":"3a71b18c_3b07741d","updated":"2016-12-19 03:07:16.000000000","message":"yeah, we can check the empty string, but thinking togehter with your suggestion, I prefer that we check each rule and use exit code","commit_id":"9b30d50bf66f69553256cc41849f7e5261aecfca"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"1e26a97dea6594c2f39cfd0ac7265874b7e61b1b","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        local chain_result\u003d$?"},{"line_number":104,"context_line":"        if [ \"$chain_result\" !\u003d \"0\" ]; then"},{"line_number":105,"context_line":"        {"},{"line_number":106,"context_line":"            echo \"iptables -t filter --new XenServerDevstack\""},{"line_number":107,"context_line":"            echo \"iptables -t filter -I INPUT -j XenServerDevstack\""},{"line_number":108,"context_line":"            echo \"iptables -t filter -I XenServerDevstack -p tcp --dport 6640 -j ACCEPT\""},{"line_number":109,"context_line":"            echo \"iptables -t filter -I XenServerDevstack -p udp -m multiport --dport 4789 -j ACCEPT\""}],"source_content_type":"application/x-shellscript","patch_set":13,"id":"3a71b18c_f65ef143","line":106,"updated":"2016-12-09 12:44:03.000000000","message":"I wonder if we should be checking for each rule...\nWe could use iptables -C XenServerDevstack to check for the rule before adding, but that would also return a 1 exit code.","commit_id":"9b30d50bf66f69553256cc41849f7e5261aecfca"},{"author":{"_account_id":17922,"name":"Huan Xie","email":"huan.xie@citrix.com","username":"huan"},"change_message_id":"cca12fc9e4ee6a6bbc69e9ec77bbc278f3383779","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        local chain_result\u003d$?"},{"line_number":104,"context_line":"        if [ \"$chain_result\" !\u003d \"0\" ]; then"},{"line_number":105,"context_line":"        {"},{"line_number":106,"context_line":"            echo \"iptables -t filter --new XenServerDevstack\""},{"line_number":107,"context_line":"            echo \"iptables -t filter -I INPUT -j XenServerDevstack\""},{"line_number":108,"context_line":"            echo \"iptables -t filter -I XenServerDevstack -p tcp --dport 6640 -j ACCEPT\""},{"line_number":109,"context_line":"            echo \"iptables -t filter -I XenServerDevstack -p udp -m multiport --dport 4789 -j ACCEPT\""}],"source_content_type":"application/x-shellscript","patch_set":13,"id":"1a6eadb0_c12431b4","line":106,"in_reply_to":"3a71b18c_f65ef143","updated":"2016-12-19 03:07:16.000000000","message":"yes, we can check each rule, and I think we use use exit code here","commit_id":"9b30d50bf66f69553256cc41849f7e5261aecfca"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"34a10d954c09beb304c78d322d2ac132e9940f65","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        fi"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        # Check iptables for remote ovsdb connection, add if not exist"},{"line_number":119,"context_line":"        $ssh_dom0 \"iptables -t filter -C XenServerDevstack -p tcp -m tcp --dport 6640 -j ACCEPT\""},{"line_number":120,"context_line":"        local remote_conn_result\u003d$?"},{"line_number":121,"context_line":"        if [ \"$remote_conn_result\" !\u003d \"0\" ]; then"},{"line_number":122,"context_line":"            $ssh_dom0 \"iptables -t filter -I XenServerDevstack -p tcp --dport 6640 -j ACCEPT\""}],"source_content_type":"application/x-shellscript","patch_set":15,"id":"ba5201f7_d93e83d9","line":119,"updated":"2017-01-11 06:27:23.000000000","message":"nit: use a variable to hold such port# instead of hard coding at multiple places.","commit_id":"1bad2b4f53ab5e289f859b70a9a609ad1c985f9b"},{"author":{"_account_id":17922,"name":"Huan Xie","email":"huan.xie@citrix.com","username":"huan"},"change_message_id":"7ae1a283ec7230308e6bbe92f0014afca0c9d675","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        fi"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        # Check iptables for remote ovsdb connection, add if not exist"},{"line_number":119,"context_line":"        $ssh_dom0 \"iptables -t filter -C XenServerDevstack -p tcp -m tcp --dport 6640 -j ACCEPT\""},{"line_number":120,"context_line":"        local remote_conn_result\u003d$?"},{"line_number":121,"context_line":"        if [ \"$remote_conn_result\" !\u003d \"0\" ]; then"},{"line_number":122,"context_line":"            $ssh_dom0 \"iptables -t filter -I XenServerDevstack -p tcp --dport 6640 -j ACCEPT\""}],"source_content_type":"application/x-shellscript","patch_set":15,"id":"ba5201f7_a245ce43","line":119,"in_reply_to":"ba5201f7_d93e83d9","updated":"2017-01-12 03:31:24.000000000","message":"yeah, I will modify it in next patch","commit_id":"1bad2b4f53ab5e289f859b70a9a609ad1c985f9b"}]}
