)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"2198bd3879e39aba49d3f5f206f26164f272843c","unresolved":false,"context_lines":[{"line_number":22,"context_line":"Example localrc:"},{"line_number":23,"context_line":"  ENABLED_SERVICES\u003dg-api,g-reg,key,n-api,n-crt,n-obj,n-cpu,n-net,n-vol,\\"},{"line_number":24,"context_line":"  n-sch,n-novnc,n-xvnc,n-cauth,horizon,mysql,rabbit,quantum,q-svc,q-agt,\\"},{"line_number":25,"context_line":"  ryu,r-svc"},{"line_number":26,"context_line":"  Q_PLUGIN\u003dryu"},{"line_number":27,"context_line":"  PUBLIC_INTERFACE\u003deth0"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAAKX%2F%2F2iQ%3D","line":25,"updated":"2012-07-23 07:20:10.000000000","message":"Modern fashion to enable/disable services is using enable_service and disable_service defined in $TOP_DIR/functions:\nenable_service q-svc q-agt\nenable_service ryu r-svc","commit_id":"a032b6996e013f18814f5100e27047abe6af7f3c"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"a75d78a734f20f5818cec6b5853127df62eaa03d","unresolved":false,"context_lines":[{"line_number":15,"context_line":"intend to try the plugin."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Instructions for using the ryu plugin:"},{"line_number":18,"context_line":"1. Add \"quantum\", \"q-svc\", \"q-agt\", \"ryu\", \"r-svc\" to ENABLED_SERVICES"},{"line_number":19,"context_line":"2. Set \"ryu\" to Q_PLUGIN"},{"line_number":20,"context_line":"3. Set a network interface name in RYU_EXT_INTERFACE if you need"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAALH%2F%2F56Q%3D","line":18,"updated":"2012-08-02 21:22:15.000000000","message":"Remove r-svc here and below in the example, it doesn\u0027t appear to actually be used anywhere","commit_id":"ff81d6805381674a76c7ea10ac0aa1da4d965725"}],"lib/nova":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"9039089f727fa0813a1f67fe00d6a5cb9ad4c277","unresolved":false,"context_lines":[{"line_number":213,"context_line":"            fi"},{"line_number":214,"context_line":"        fi"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"        if is_service_enabled quantum \u0026\u0026 [[ \"$Q_PLUGIN\" \u003d \"openvswitch\" || \"$Q_PLUGIN\" \u003d \"ryu\" ]] \u0026\u0026 ! sudo grep -q \u0027^cgroup_device_acl\u0027 $QEMU_CONF ; then"},{"line_number":217,"context_line":"            # Add /dev/net/tun to cgroup_device_acls, needed for type\u003dethernet interfaces"},{"line_number":218,"context_line":"            cat \u003c\u003cEOF | sudo tee -a $QEMU_CONF"},{"line_number":219,"context_line":"cgroup_device_acl \u003d ["}],"source_content_type":"application/octet-stream","patch_set":5,"id":"AAAALH%2F%2FG7U%3D","line":216,"updated":"2012-10-18 12:44:55.000000000","message":"if this is going to start being a long list of plugins, can this be abstracted to a function instead?","commit_id":"7d1250dca3a7d13dde509221348c8b28f350f40f"},{"author":{"_account_id":4726,"name":"Yoshihiro Kaneko","email":"ykaneko0929@gmail.com","username":"ykaneko0929"},"change_message_id":"dfe2da05bd84ace86f8ebb006ee6aee7afe80d13","unresolved":false,"context_lines":[{"line_number":213,"context_line":"            fi"},{"line_number":214,"context_line":"        fi"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"        if is_service_enabled quantum \u0026\u0026 [[ \"$Q_PLUGIN\" \u003d \"openvswitch\" || \"$Q_PLUGIN\" \u003d \"ryu\" ]] \u0026\u0026 ! sudo grep -q \u0027^cgroup_device_acl\u0027 $QEMU_CONF ; then"},{"line_number":217,"context_line":"            # Add /dev/net/tun to cgroup_device_acls, needed for type\u003dethernet interfaces"},{"line_number":218,"context_line":"            cat \u003c\u003cEOF | sudo tee -a $QEMU_CONF"},{"line_number":219,"context_line":"cgroup_device_acl \u003d ["}],"source_content_type":"application/octet-stream","patch_set":5,"id":"AAAALH%2F%2FGkg%3D","line":216,"in_reply_to":"AAAALH%2F%2FG7U%3D","updated":"2012-10-19 07:19:38.000000000","message":"Done","commit_id":"7d1250dca3a7d13dde509221348c8b28f350f40f"}],"stack.sh":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"2198bd3879e39aba49d3f5f206f26164f272843c","unresolved":false,"context_lines":[{"line_number":1183,"context_line":"            sudo sed -i -e \"s/.*local_ip \u003d .*/local_ip \u003d $HOST_IP/g\" /$Q_PLUGIN_CONF_FILE"},{"line_number":1184,"context_line":"            AGENT_BINARY\u003d\"$QUANTUM_DIR/quantum/plugins/openvswitch/agent/ovs_quantum_agent.py\""},{"line_number":1185,"context_line":"        elif [[ \"$Q_PLUGIN\" \u003d \"ryu\" ]]; then"},{"line_number":1186,"context_line":"            sudo ovs-vsctl --no-wait add-port $OVS_BRIDGE $PUBLIC_INTERFACE"},{"line_number":1187,"context_line":"            sudo sed -i -e \"s/^integration-bridge \u003d.*$/integration-bridge \u003d $OVS_BRIDGE/g\" /$Q_PLUGIN_CONF_FILE"},{"line_number":1188,"context_line":"            AGENT_BINARY\u003d\"$QUANTUM_DIR/quantum/plugins/ryu/agent/ryu_quantum_agent.py\""},{"line_number":1189,"context_line":"            # workaround to wait for the completion of the preparations of Ryu"}],"source_content_type":"text/x-sh","patch_set":1,"id":"AAAAKX%2F%2F2ic%3D","line":1186,"updated":"2012-07-23 07:20:10.000000000","message":"PUBLIC_INTERFACE is an Interface for public IP addresses and nova refers to this variable for the different meaning.\nIn this context, PUBLIC_INTERFACE is used as the similar meaning as VLAN_INTERFACE or FLAT_INTERFACE, so i think that another name should be used.","commit_id":"a032b6996e013f18814f5100e27047abe6af7f3c"},{"author":{"_account_id":4726,"name":"Yoshihiro Kaneko","email":"ykaneko0929@gmail.com","username":"ykaneko0929"},"change_message_id":"9914a38f30442302129a4d44449f55552302f7af","unresolved":false,"context_lines":[{"line_number":1183,"context_line":"            sudo sed -i -e \"s/.*local_ip \u003d .*/local_ip \u003d $HOST_IP/g\" /$Q_PLUGIN_CONF_FILE"},{"line_number":1184,"context_line":"            AGENT_BINARY\u003d\"$QUANTUM_DIR/quantum/plugins/openvswitch/agent/ovs_quantum_agent.py\""},{"line_number":1185,"context_line":"        elif [[ \"$Q_PLUGIN\" \u003d \"ryu\" ]]; then"},{"line_number":1186,"context_line":"            sudo ovs-vsctl --no-wait add-port $OVS_BRIDGE $PUBLIC_INTERFACE"},{"line_number":1187,"context_line":"            sudo sed -i -e \"s/^integration-bridge \u003d.*$/integration-bridge \u003d $OVS_BRIDGE/g\" /$Q_PLUGIN_CONF_FILE"},{"line_number":1188,"context_line":"            AGENT_BINARY\u003d\"$QUANTUM_DIR/quantum/plugins/ryu/agent/ryu_quantum_agent.py\""},{"line_number":1189,"context_line":"            # workaround to wait for the completion of the preparations of Ryu"}],"source_content_type":"text/x-sh","patch_set":1,"id":"AAAAKX%2F%2F2hw%3D","line":1186,"in_reply_to":"AAAAKX%2F%2F2ic%3D","updated":"2012-07-23 08:07:36.000000000","message":"Understood. I\u0027ll use another name.","commit_id":"a032b6996e013f18814f5100e27047abe6af7f3c"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"2198bd3879e39aba49d3f5f206f26164f272843c","unresolved":false,"context_lines":[{"line_number":1184,"context_line":"            AGENT_BINARY\u003d\"$QUANTUM_DIR/quantum/plugins/openvswitch/agent/ovs_quantum_agent.py\""},{"line_number":1185,"context_line":"        elif [[ \"$Q_PLUGIN\" \u003d \"ryu\" ]]; then"},{"line_number":1186,"context_line":"            sudo ovs-vsctl --no-wait add-port $OVS_BRIDGE $PUBLIC_INTERFACE"},{"line_number":1187,"context_line":"            sudo sed -i -e \"s/^integration-bridge \u003d.*$/integration-bridge \u003d $OVS_BRIDGE/g\" /$Q_PLUGIN_CONF_FILE"},{"line_number":1188,"context_line":"            AGENT_BINARY\u003d\"$QUANTUM_DIR/quantum/plugins/ryu/agent/ryu_quantum_agent.py\""},{"line_number":1189,"context_line":"            # workaround to wait for the completion of the preparations of Ryu"},{"line_number":1190,"context_line":"            sleep 5"}],"source_content_type":"text/x-sh","patch_set":1,"id":"AAAAKX%2F%2F2iY%3D","line":1187,"updated":"2012-07-23 07:20:10.000000000","message":"Why don\u0027t you the convenient function \u0027iniset\u0027?\nIf root permission is required to write /$Q_PLUGIN_CONF_FILE, we need to use \"sudo sed...\" at the moment.","commit_id":"a032b6996e013f18814f5100e27047abe6af7f3c"},{"author":{"_account_id":4726,"name":"Yoshihiro Kaneko","email":"ykaneko0929@gmail.com","username":"ykaneko0929"},"change_message_id":"9914a38f30442302129a4d44449f55552302f7af","unresolved":false,"context_lines":[{"line_number":1184,"context_line":"            AGENT_BINARY\u003d\"$QUANTUM_DIR/quantum/plugins/openvswitch/agent/ovs_quantum_agent.py\""},{"line_number":1185,"context_line":"        elif [[ \"$Q_PLUGIN\" \u003d \"ryu\" ]]; then"},{"line_number":1186,"context_line":"            sudo ovs-vsctl --no-wait add-port $OVS_BRIDGE $PUBLIC_INTERFACE"},{"line_number":1187,"context_line":"            sudo sed -i -e \"s/^integration-bridge \u003d.*$/integration-bridge \u003d $OVS_BRIDGE/g\" /$Q_PLUGIN_CONF_FILE"},{"line_number":1188,"context_line":"            AGENT_BINARY\u003d\"$QUANTUM_DIR/quantum/plugins/ryu/agent/ryu_quantum_agent.py\""},{"line_number":1189,"context_line":"            # workaround to wait for the completion of the preparations of Ryu"},{"line_number":1190,"context_line":"            sleep 5"}],"source_content_type":"text/x-sh","patch_set":1,"id":"AAAAKX%2F%2F2hk%3D","line":1187,"in_reply_to":"AAAAKX%2F%2F2iY%3D","updated":"2012-07-23 08:07:36.000000000","message":"This imitated OVS plugin\u0027s code above.\nI\u0027ll change \u0027sudo sed\u0027 into \u0027iniset\u0027.","commit_id":"a032b6996e013f18814f5100e27047abe6af7f3c"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"a75d78a734f20f5818cec6b5853127df62eaa03d","unresolved":false,"context_lines":[{"line_number":1028,"context_line":""},{"line_number":1029,"context_line":"# Ryu"},{"line_number":1030,"context_line":"# ---"},{"line_number":1031,"context_line":"# Ryu is not a part of OpenStack project. Please ignore following block if "},{"line_number":1032,"context_line":"# you are not interested in Ryu."},{"line_number":1033,"context_line":"# launch ryu manager"},{"line_number":1034,"context_line":"if is_service_enabled r-svc; then"}],"source_content_type":"text/x-sh","patch_set":2,"id":"AAAALH%2F%2F56Y%3D","line":1031,"updated":"2012-08-02 21:22:15.000000000","message":"remove trailing whitespace","commit_id":"ff81d6805381674a76c7ea10ac0aa1da4d965725"}]}
