)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"2c8c1203aa74aa7fbcf93138b23e0f749e7ddf34","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Isaku Yamahata \u003cyamahata@valinux.co.jp\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-01-16 13:07:33 +0900"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"lib/quantum: rafactor quantum plugins and third party"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"As quantum plugin support is coming like floodlight, nvp and nec,"},{"line_number":10,"context_line":"it\u0027s worth while to refactor quantum plugin logic so that each plugin can"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"AAAAM3%2F%2FeiM%3D","line":7,"updated":"2013-01-20 10:43:05.000000000","message":"rafactor \u003d\u003e refactor","commit_id":"a0dce6b0a59877211f3a4a2a785776c6b00333cc"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"d2daf81fef9ce19ed172728658661ae01aaa161a","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Isaku Yamahata \u003cyamahata@valinux.co.jp\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-01-16 13:07:33 +0900"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"lib/quantum: rafactor quantum plugins and third party"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"As quantum plugin support is coming like floodlight, nvp and nec,"},{"line_number":10,"context_line":"it\u0027s worth while to refactor quantum plugin logic so that each plugin can"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"AAAAM3%2F%2FeT0%3D","line":7,"in_reply_to":"AAAAM3%2F%2FeiM%3D","updated":"2013-01-21 02:34:38.000000000","message":"Done","commit_id":"a0dce6b0a59877211f3a4a2a785776c6b00333cc"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"2c8c1203aa74aa7fbcf93138b23e0f749e7ddf34","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"As quantum plugin support is coming like floodlight, nvp and nec,"},{"line_number":10,"context_line":"it\u0027s worth while to refactor quantum plugin logic so that each plugin can"},{"line_number":11,"context_line":"be modified/enhanced without intervening other quantum plugin."},{"line_number":12,"context_line":"And new plugin support can be added easily (hopefully) without modifying"},{"line_number":13,"context_line":"core logic."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"AAAAM3%2F%2FeiI%3D","line":11,"updated":"2013-01-20 10:43:05.000000000","message":"intervening other quantum plugin \u003d\u003e\nintervening with other quantum plugins","commit_id":"a0dce6b0a59877211f3a4a2a785776c6b00333cc"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"d2daf81fef9ce19ed172728658661ae01aaa161a","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"As quantum plugin support is coming like floodlight, nvp and nec,"},{"line_number":10,"context_line":"it\u0027s worth while to refactor quantum plugin logic so that each plugin can"},{"line_number":11,"context_line":"be modified/enhanced without intervening other quantum plugin."},{"line_number":12,"context_line":"And new plugin support can be added easily (hopefully) without modifying"},{"line_number":13,"context_line":"core logic."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"AAAAM3%2F%2FeTw%3D","line":11,"in_reply_to":"AAAAM3%2F%2FeiI%3D","updated":"2013-01-21 02:34:38.000000000","message":"Done","commit_id":"a0dce6b0a59877211f3a4a2a785776c6b00333cc"}],"lib/quantum":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"a60ce3f9ebe1ad54d58b2c58c2e191e194402104","unresolved":false,"context_lines":[{"line_number":172,"context_line":"# Quantum plugin specific functions"},{"line_number":173,"context_line":"# ---------------------------------"},{"line_number":174,"context_line":"# Each plugin have lib/quantum_plugins/$Q_PLUGIN and define the following"},{"line_number":175,"context_line":"# functions."},{"line_number":176,"context_line":"#"},{"line_number":177,"context_line":"# create_nova_conf_quantum_plugin"},{"line_number":178,"context_line":"# create_quantum_initial_network_plugin"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2FwgA%3D","line":175,"updated":"2013-01-07 14:35:34.000000000","message":"How about adding lib/quantum_plugins/README to explain it and adding a pointer to README here.","commit_id":"b40fbbeec75b7a2d685a61191dfd1be8ae00ed2d"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"dc0a3c8417f912b89dd9ab8fd1af63edfdc9a6d2","unresolved":false,"context_lines":[{"line_number":172,"context_line":"# Quantum plugin specific functions"},{"line_number":173,"context_line":"# ---------------------------------"},{"line_number":174,"context_line":"# Each plugin have lib/quantum_plugins/$Q_PLUGIN and define the following"},{"line_number":175,"context_line":"# functions."},{"line_number":176,"context_line":"#"},{"line_number":177,"context_line":"# create_nova_conf_quantum_plugin"},{"line_number":178,"context_line":"# create_quantum_initial_network_plugin"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2Fsw8%3D","line":175,"in_reply_to":"AAAAM3%2F%2FwgA%3D","updated":"2013-01-09 07:52:55.000000000","message":"Done","commit_id":"b40fbbeec75b7a2d685a61191dfd1be8ae00ed2d"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"a60ce3f9ebe1ad54d58b2c58c2e191e194402104","unresolved":false,"context_lines":[{"line_number":183,"context_line":"# configure_quantum_l3_agent_plugin"},{"line_number":184,"context_line":"# configure_quantum_plugin_agent_plugin"},{"line_number":185,"context_line":"# configure_quantum_service_plugin"},{"line_number":186,"context_line":"# quantum_setup_interface_driver_plugin"},{"line_number":187,"context_line":"#"},{"line_number":188,"context_line":"source $TOP_DIR/lib/quantum_plugins/$Q_PLUGIN"},{"line_number":189,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2FwgY%3D","line":186,"updated":"2013-01-07 14:35:34.000000000","message":"I prefer to quantum_plugin_* as function names like:\nquantum_plugin_create_nova_conf\nquantum_pluign_create_initial_network\nquantum_pluign_configure_plugin_agent\n\nI think it is easy to read.","commit_id":"b40fbbeec75b7a2d685a61191dfd1be8ae00ed2d"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"dc0a3c8417f912b89dd9ab8fd1af63edfdc9a6d2","unresolved":false,"context_lines":[{"line_number":183,"context_line":"# configure_quantum_l3_agent_plugin"},{"line_number":184,"context_line":"# configure_quantum_plugin_agent_plugin"},{"line_number":185,"context_line":"# configure_quantum_service_plugin"},{"line_number":186,"context_line":"# quantum_setup_interface_driver_plugin"},{"line_number":187,"context_line":"#"},{"line_number":188,"context_line":"source $TOP_DIR/lib/quantum_plugins/$Q_PLUGIN"},{"line_number":189,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2FsyU%3D","line":186,"in_reply_to":"AAAAM3%2F%2FwgY%3D","updated":"2013-01-09 07:52:55.000000000","message":"Done","commit_id":"b40fbbeec75b7a2d685a61191dfd1be8ae00ed2d"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"a60ce3f9ebe1ad54d58b2c58c2e191e194402104","unresolved":false,"context_lines":[{"line_number":293,"context_line":"        EXT_GW_IP\u003d$(quantum subnet-create --ip_version 4 $EXT_NET_ID $FLOATING_RANGE -- --enable_dhcp\u003dFalse | grep \u0027gateway_ip\u0027 | get_field 2)"},{"line_number":294,"context_line":"        quantum router-gateway-set $ROUTER_ID $EXT_NET_ID"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"\tcreate_quantum_initial_network_plugin"},{"line_number":297,"context_line":"        if [[ \"$Q_USE_NAMESPACE\" \u003d\u003d \"False\" ]]; then"},{"line_number":298,"context_line":"            # Explicitly set router id in l3 agent configuration"},{"line_number":299,"context_line":"            iniset $Q_L3_CONF_FILE DEFAULT router_id $ROUTER_ID"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2FwhM%3D","line":296,"updated":"2013-01-07 14:35:34.000000000","message":"I would not like to introduce this function. Ideally there is no difference among quantum plugins in network creation.\nAlso we don\u0027t know where is the right space to insert plugin-specific configurations.\n\nIf we define ROUTE_GW_IP and EXT_GW_IP/$CIDR_LEN as configuration variables, these setup may be moved to other places.","commit_id":"b40fbbeec75b7a2d685a61191dfd1be8ae00ed2d"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"dc0a3c8417f912b89dd9ab8fd1af63edfdc9a6d2","unresolved":false,"context_lines":[{"line_number":293,"context_line":"        EXT_GW_IP\u003d$(quantum subnet-create --ip_version 4 $EXT_NET_ID $FLOATING_RANGE -- --enable_dhcp\u003dFalse | grep \u0027gateway_ip\u0027 | get_field 2)"},{"line_number":294,"context_line":"        quantum router-gateway-set $ROUTER_ID $EXT_NET_ID"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"\tcreate_quantum_initial_network_plugin"},{"line_number":297,"context_line":"        if [[ \"$Q_USE_NAMESPACE\" \u003d\u003d \"False\" ]]; then"},{"line_number":298,"context_line":"            # Explicitly set router id in l3 agent configuration"},{"line_number":299,"context_line":"            iniset $Q_L3_CONF_FILE DEFAULT router_id $ROUTER_ID"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2Fsv4%3D","line":296,"in_reply_to":"AAAAM3%2F%2FwhM%3D","updated":"2013-01-09 07:52:55.000000000","message":"Okay. I\u0027ll leave this as is for now.","commit_id":"b40fbbeec75b7a2d685a61191dfd1be8ae00ed2d"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"a60ce3f9ebe1ad54d58b2c58c2e191e194402104","unresolved":false,"context_lines":[{"line_number":639,"context_line":"}"},{"line_number":640,"context_line":""},{"line_number":641,"context_line":"# Quantum 3rd party programs"},{"line_number":642,"context_line":"#---------------------------"},{"line_number":643,"context_line":"# A comma-separated list of 3rd party programs"},{"line_number":644,"context_line":"QUANTUM_THIRD_PARTIES\u003d\"\""},{"line_number":645,"context_line":"for f in $TOP_DIR/lib/quantum_thirdparty/*; do"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2Fwfs%3D","line":642,"updated":"2013-01-07 14:35:34.000000000","message":"It would be better to add lib/quantum_thirdparty/README to explain what functions should be implemented.\nREADME also should mentions a service name and a filename must be same.","commit_id":"b40fbbeec75b7a2d685a61191dfd1be8ae00ed2d"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"dc0a3c8417f912b89dd9ab8fd1af63edfdc9a6d2","unresolved":false,"context_lines":[{"line_number":639,"context_line":"}"},{"line_number":640,"context_line":""},{"line_number":641,"context_line":"# Quantum 3rd party programs"},{"line_number":642,"context_line":"#---------------------------"},{"line_number":643,"context_line":"# A comma-separated list of 3rd party programs"},{"line_number":644,"context_line":"QUANTUM_THIRD_PARTIES\u003d\"\""},{"line_number":645,"context_line":"for f in $TOP_DIR/lib/quantum_thirdparty/*; do"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2Fszk%3D","line":642,"in_reply_to":"AAAAM3%2F%2Fwfs%3D","updated":"2013-01-09 07:52:55.000000000","message":"Done","commit_id":"b40fbbeec75b7a2d685a61191dfd1be8ae00ed2d"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"a60ce3f9ebe1ad54d58b2c58c2e191e194402104","unresolved":false,"context_lines":[{"line_number":640,"context_line":""},{"line_number":641,"context_line":"# Quantum 3rd party programs"},{"line_number":642,"context_line":"#---------------------------"},{"line_number":643,"context_line":"# A comma-separated list of 3rd party programs"},{"line_number":644,"context_line":"QUANTUM_THIRD_PARTIES\u003d\"\""},{"line_number":645,"context_line":"for f in $TOP_DIR/lib/quantum_thirdparty/*; do"},{"line_number":646,"context_line":"     third_party\u003d$(basename $f)"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2Fwf4%3D","line":643,"updated":"2013-01-07 14:35:34.000000000","message":"no longer required","commit_id":"b40fbbeec75b7a2d685a61191dfd1be8ae00ed2d"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"dc0a3c8417f912b89dd9ab8fd1af63edfdc9a6d2","unresolved":false,"context_lines":[{"line_number":640,"context_line":""},{"line_number":641,"context_line":"# Quantum 3rd party programs"},{"line_number":642,"context_line":"#---------------------------"},{"line_number":643,"context_line":"# A comma-separated list of 3rd party programs"},{"line_number":644,"context_line":"QUANTUM_THIRD_PARTIES\u003d\"\""},{"line_number":645,"context_line":"for f in $TOP_DIR/lib/quantum_thirdparty/*; do"},{"line_number":646,"context_line":"     third_party\u003d$(basename $f)"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2Fs08%3D","line":643,"in_reply_to":"AAAAM3%2F%2Fwf4%3D","updated":"2013-01-09 07:52:55.000000000","message":"Done","commit_id":"b40fbbeec75b7a2d685a61191dfd1be8ae00ed2d"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"2c8c1203aa74aa7fbcf93138b23e0f749e7ddf34","unresolved":false,"context_lines":[{"line_number":173,"context_line":""},{"line_number":174,"context_line":"# Quantum plugin specific functions"},{"line_number":175,"context_line":"# ---------------------------------"},{"line_number":176,"context_line":"# Please refer lib/quantum_plugins/README.md for details."},{"line_number":177,"context_line":"source $TOP_DIR/lib/quantum_plugins/$Q_PLUGIN"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"# Entry Points"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"AAAAM3%2F%2FeiE%3D","line":176,"updated":"2013-01-20 10:43:05.000000000","message":"refer \u003d\u003e refer to","commit_id":"a0dce6b0a59877211f3a4a2a785776c6b00333cc"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"d2daf81fef9ce19ed172728658661ae01aaa161a","unresolved":false,"context_lines":[{"line_number":173,"context_line":""},{"line_number":174,"context_line":"# Quantum plugin specific functions"},{"line_number":175,"context_line":"# ---------------------------------"},{"line_number":176,"context_line":"# Please refer lib/quantum_plugins/README.md for details."},{"line_number":177,"context_line":"source $TOP_DIR/lib/quantum_plugins/$Q_PLUGIN"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"# Entry Points"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"AAAAM3%2F%2FeTs%3D","line":176,"in_reply_to":"AAAAM3%2F%2FeiE%3D","updated":"2013-01-21 02:34:38.000000000","message":"Done","commit_id":"a0dce6b0a59877211f3a4a2a785776c6b00333cc"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"2c8c1203aa74aa7fbcf93138b23e0f749e7ddf34","unresolved":false,"context_lines":[{"line_number":478,"context_line":"    iniset /$Q_PLUGIN_CONF_FILE AGENT root_helper \"$Q_RR_COMMAND\""},{"line_number":479,"context_line":""},{"line_number":480,"context_line":"    # Configure agent for plugin"},{"line_number":481,"context_line":"    qauntum_plugin_configure_plugin_agent"},{"line_number":482,"context_line":"}"},{"line_number":483,"context_line":""},{"line_number":484,"context_line":"# _configure_quantum_service() - Set config files for quantum service"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"AAAAM3%2F%2FeiA%3D","line":481,"updated":"2013-01-20 10:43:05.000000000","message":"qauntum_plugin_configure_plugin_agent - quantum_plugin_configure_plugin_agent","commit_id":"a0dce6b0a59877211f3a4a2a785776c6b00333cc"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"d2daf81fef9ce19ed172728658661ae01aaa161a","unresolved":false,"context_lines":[{"line_number":478,"context_line":"    iniset /$Q_PLUGIN_CONF_FILE AGENT root_helper \"$Q_RR_COMMAND\""},{"line_number":479,"context_line":""},{"line_number":480,"context_line":"    # Configure agent for plugin"},{"line_number":481,"context_line":"    qauntum_plugin_configure_plugin_agent"},{"line_number":482,"context_line":"}"},{"line_number":483,"context_line":""},{"line_number":484,"context_line":"# _configure_quantum_service() - Set config files for quantum service"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"AAAAM3%2F%2FeTo%3D","line":481,"in_reply_to":"AAAAM3%2F%2FeiA%3D","updated":"2013-01-21 02:34:38.000000000","message":"Done","commit_id":"a0dce6b0a59877211f3a4a2a785776c6b00333cc"}],"lib/quantum_plugins/README.md":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"613f11aadfd9b2c7e4a7eaa98f4f418dc4ff67ce","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"functions"},{"line_number":10,"context_line":"---------"},{"line_number":11,"context_line":"lib/quantum calls the following functions when the \u003cthird_party\u003e is enabled"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"filename: \u003cplugin\u003e"},{"line_number":14,"context_line":"   The corresponding file name should be same to plugin name, $Q_PLUGIN."}],"source_content_type":"text/x-gfm","patch_set":5,"id":"AAAAM3%2F%2Fo5k%3D","line":11,"updated":"2013-01-11 16:52:12.000000000","message":"\u003cthird_party\u003e -\u003e \u003cplugin\u003e","commit_id":"9c8429ae63535b054f63e77f1a6734a679235bac"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"613f11aadfd9b2c7e4a7eaa98f4f418dc4ff67ce","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"filename: \u003cplugin\u003e"},{"line_number":14,"context_line":"   The corresponding file name should be same to plugin name, $Q_PLUGIN."},{"line_number":15,"context_line":"   third party specific configuration variables should be in this file."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"functions to be implemented"},{"line_number":18,"context_line":"lib/quantum calls those entry points"}],"source_content_type":"text/x-gfm","patch_set":5,"id":"AAAAM3%2F%2Fo5g%3D","line":15,"updated":"2013-01-11 16:52:12.000000000","message":"plugin specific","commit_id":"9c8429ae63535b054f63e77f1a6734a679235bac"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"2c8c1203aa74aa7fbcf93138b23e0f749e7ddf34","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Quantum plugin specific files"},{"line_number":2,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":3,"context_line":"Quantum plugins requires plugin specific behavior."},{"line_number":4,"context_line":"The files under the directory, ``lib/quantum_plugins/``, will be used"},{"line_number":5,"context_line":"when their service are enabled."},{"line_number":6,"context_line":"Each plugin have ``lib/quantum_plugins/$Q_PLUGIN`` and define the following"}],"source_content_type":"text/x-gfm","patch_set":8,"id":"AAAAM3%2F%2Feh8%3D","line":3,"updated":"2013-01-20 10:43:05.000000000","message":"requires - require","commit_id":"a0dce6b0a59877211f3a4a2a785776c6b00333cc"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"d2daf81fef9ce19ed172728658661ae01aaa161a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Quantum plugin specific files"},{"line_number":2,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":3,"context_line":"Quantum plugins requires plugin specific behavior."},{"line_number":4,"context_line":"The files under the directory, ``lib/quantum_plugins/``, will be used"},{"line_number":5,"context_line":"when their service are enabled."},{"line_number":6,"context_line":"Each plugin have ``lib/quantum_plugins/$Q_PLUGIN`` and define the following"}],"source_content_type":"text/x-gfm","patch_set":8,"id":"AAAAM3%2F%2FeTk%3D","line":3,"in_reply_to":"AAAAM3%2F%2Feh8%3D","updated":"2013-01-21 02:34:38.000000000","message":"Done","commit_id":"a0dce6b0a59877211f3a4a2a785776c6b00333cc"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"2c8c1203aa74aa7fbcf93138b23e0f749e7ddf34","unresolved":false,"context_lines":[{"line_number":2,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":3,"context_line":"Quantum plugins requires plugin specific behavior."},{"line_number":4,"context_line":"The files under the directory, ``lib/quantum_plugins/``, will be used"},{"line_number":5,"context_line":"when their service are enabled."},{"line_number":6,"context_line":"Each plugin have ``lib/quantum_plugins/$Q_PLUGIN`` and define the following"},{"line_number":7,"context_line":"functions."},{"line_number":8,"context_line":"Plugin specific configuration variables should be in this file."}],"source_content_type":"text/x-gfm","patch_set":8,"id":"AAAAM3%2F%2Feh4%3D","line":5,"updated":"2013-01-20 10:43:05.000000000","message":"are \u003d\u003e is","commit_id":"a0dce6b0a59877211f3a4a2a785776c6b00333cc"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"d2daf81fef9ce19ed172728658661ae01aaa161a","unresolved":false,"context_lines":[{"line_number":2,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":3,"context_line":"Quantum plugins requires plugin specific behavior."},{"line_number":4,"context_line":"The files under the directory, ``lib/quantum_plugins/``, will be used"},{"line_number":5,"context_line":"when their service are enabled."},{"line_number":6,"context_line":"Each plugin have ``lib/quantum_plugins/$Q_PLUGIN`` and define the following"},{"line_number":7,"context_line":"functions."},{"line_number":8,"context_line":"Plugin specific configuration variables should be in this file."}],"source_content_type":"text/x-gfm","patch_set":8,"id":"AAAAM3%2F%2FeTg%3D","line":5,"in_reply_to":"AAAAM3%2F%2Feh4%3D","updated":"2013-01-21 02:34:38.000000000","message":"Done","commit_id":"a0dce6b0a59877211f3a4a2a785776c6b00333cc"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"2c8c1203aa74aa7fbcf93138b23e0f749e7ddf34","unresolved":false,"context_lines":[{"line_number":3,"context_line":"Quantum plugins requires plugin specific behavior."},{"line_number":4,"context_line":"The files under the directory, ``lib/quantum_plugins/``, will be used"},{"line_number":5,"context_line":"when their service are enabled."},{"line_number":6,"context_line":"Each plugin have ``lib/quantum_plugins/$Q_PLUGIN`` and define the following"},{"line_number":7,"context_line":"functions."},{"line_number":8,"context_line":"Plugin specific configuration variables should be in this file."},{"line_number":9,"context_line":""}],"source_content_type":"text/x-gfm","patch_set":8,"id":"AAAAM3%2F%2Feh0%3D","line":6,"updated":"2013-01-20 10:43:05.000000000","message":"have \u003d\u003e has","commit_id":"a0dce6b0a59877211f3a4a2a785776c6b00333cc"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"d2daf81fef9ce19ed172728658661ae01aaa161a","unresolved":false,"context_lines":[{"line_number":3,"context_line":"Quantum plugins requires plugin specific behavior."},{"line_number":4,"context_line":"The files under the directory, ``lib/quantum_plugins/``, will be used"},{"line_number":5,"context_line":"when their service are enabled."},{"line_number":6,"context_line":"Each plugin have ``lib/quantum_plugins/$Q_PLUGIN`` and define the following"},{"line_number":7,"context_line":"functions."},{"line_number":8,"context_line":"Plugin specific configuration variables should be in this file."},{"line_number":9,"context_line":""}],"source_content_type":"text/x-gfm","patch_set":8,"id":"AAAAM3%2F%2FeTc%3D","line":6,"in_reply_to":"AAAAM3%2F%2Feh0%3D","updated":"2013-01-21 02:34:38.000000000","message":"Done","commit_id":"a0dce6b0a59877211f3a4a2a785776c6b00333cc"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"2c8c1203aa74aa7fbcf93138b23e0f749e7ddf34","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Plugin specific configuration variables should be in this file."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"* filename: ``$Q_PLUGIN``"},{"line_number":11,"context_line":"  * The corresponding file name MUST be same to plugin name ``$Q_PLUGIN``."},{"line_number":12,"context_line":"    Plugin specific configuration variables should be in this file."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"functions"}],"source_content_type":"text/x-gfm","patch_set":8,"id":"AAAAM3%2F%2Fehw%3D","line":11,"updated":"2013-01-20 10:43:05.000000000","message":"be same to plugin name \u003d\u003e be the same as the plugin name","commit_id":"a0dce6b0a59877211f3a4a2a785776c6b00333cc"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"d2daf81fef9ce19ed172728658661ae01aaa161a","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Plugin specific configuration variables should be in this file."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"* filename: ``$Q_PLUGIN``"},{"line_number":11,"context_line":"  * The corresponding file name MUST be same to plugin name ``$Q_PLUGIN``."},{"line_number":12,"context_line":"    Plugin specific configuration variables should be in this file."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"functions"}],"source_content_type":"text/x-gfm","patch_set":8,"id":"AAAAM3%2F%2FeTY%3D","line":11,"in_reply_to":"AAAAM3%2F%2Fehw%3D","updated":"2013-01-21 02:34:38.000000000","message":"Done","commit_id":"a0dce6b0a59877211f3a4a2a785776c6b00333cc"}],"lib/quantum_plugins/bigswitch_floodlight":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"2c8c1203aa74aa7fbcf93138b23e0f749e7ddf34","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Quantum Big Switch/FloodLight plugin"},{"line_number":2,"context_line":"# ------------------"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"# Save trace setting"},{"line_number":5,"context_line":"XTRACE\u003d$(set +o | grep xtrace)"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"AAAAM3%2F%2Fehs%3D","line":2,"updated":"2013-01-20 10:43:05.000000000","message":"Can you update the length here (sorry for being really picky)","commit_id":"a0dce6b0a59877211f3a4a2a785776c6b00333cc"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"d2daf81fef9ce19ed172728658661ae01aaa161a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Quantum Big Switch/FloodLight plugin"},{"line_number":2,"context_line":"# ------------------"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"# Save trace setting"},{"line_number":5,"context_line":"XTRACE\u003d$(set +o | grep xtrace)"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"AAAAM3%2F%2FeTQ%3D","line":2,"in_reply_to":"AAAAM3%2F%2Fehs%3D","updated":"2013-01-21 02:34:38.000000000","message":"Done","commit_id":"a0dce6b0a59877211f3a4a2a785776c6b00333cc"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"change_message_id":"a98301a11ab4cd4b744055e44d0fced8ac11fe72","unresolved":false,"context_lines":[{"line_number":6,"context_line":"set +o xtrace"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"source $TOP_DIR/lib/quantum_plugins/ovs_base"},{"line_number":9,"context_line":"source $TOP_DIR/lib/quantum_thirdparty/bigswitch_floodlight     # for configuration value"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"function quantum_plugin_create_nova_conf() {"},{"line_number":12,"context_line":"    NOVA_VIF_DRIVER\u003d${NOVA_VIF_DRIVER:-\"nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver\"}"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"AAAAM3%2F%2FeaY%3D","line":9,"updated":"2013-01-20 22:28:02.000000000","message":"Did you want to say - \"for third party service specific configuration values\"","commit_id":"a0dce6b0a59877211f3a4a2a785776c6b00333cc"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"d2daf81fef9ce19ed172728658661ae01aaa161a","unresolved":false,"context_lines":[{"line_number":6,"context_line":"set +o xtrace"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"source $TOP_DIR/lib/quantum_plugins/ovs_base"},{"line_number":9,"context_line":"source $TOP_DIR/lib/quantum_thirdparty/bigswitch_floodlight     # for configuration value"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"function quantum_plugin_create_nova_conf() {"},{"line_number":12,"context_line":"    NOVA_VIF_DRIVER\u003d${NOVA_VIF_DRIVER:-\"nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver\"}"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"AAAAM3%2F%2FeTU%3D","line":9,"in_reply_to":"AAAAM3%2F%2FeaY%3D","updated":"2013-01-21 02:34:38.000000000","message":"Done","commit_id":"a0dce6b0a59877211f3a4a2a785776c6b00333cc"}],"lib/quantum_plugins/ovs_base":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"a60ce3f9ebe1ad54d58b2c58c2e191e194402104","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# common functions for ovs based plugin"},{"line_number":2,"context_line":"# -------------------------------------"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"# Save trace setting"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2Fwcg%3D","line":1,"updated":"2013-01-07 14:35:34.000000000","message":"How about the following naming policy? It is easy to understand which required function is defined here.\n- Names of functions called from lib/quantum starts with [A-Z]\n- Names of functions not called from lib/quantum start with _ (even when the functions are called from lib/quantum_plugins/*)","commit_id":"b40fbbeec75b7a2d685a61191dfd1be8ae00ed2d"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"dc0a3c8417f912b89dd9ab8fd1af63edfdc9a6d2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# common functions for ovs based plugin"},{"line_number":2,"context_line":"# -------------------------------------"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"# Save trace setting"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2Fsxg%3D","line":1,"in_reply_to":"AAAAM3%2F%2Fwcg%3D","updated":"2013-01-09 07:52:55.000000000","message":"Done","commit_id":"b40fbbeec75b7a2d685a61191dfd1be8ae00ed2d"}],"lib/quantum_thirdparty/README.md":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"613f11aadfd9b2c7e4a7eaa98f4f418dc4ff67ce","unresolved":false,"context_lines":[{"line_number":9,"context_line":"lib/quantum calls the following functions when the \u003cthird_party\u003e is enabled"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"filename: \u003cthird_party\u003e"},{"line_number":12,"context_line":"   The corresponding file name should be same to service name, \u003cthird_party\u003e."},{"line_number":13,"context_line":"   third party specific configuration variables should be in this file."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"functions to be implemented"}],"source_content_type":"text/x-gfm","patch_set":5,"id":"AAAAM3%2F%2Fo5o%3D","line":12,"updated":"2013-01-11 16:52:12.000000000","message":"same to -\u003e same as","commit_id":"9c8429ae63535b054f63e77f1a6734a679235bac"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"2c8c1203aa74aa7fbcf93138b23e0f749e7ddf34","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Quantum third party specific files"},{"line_number":2,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":3,"context_line":"Quantum plugins requires third party programs to function."},{"line_number":4,"context_line":"The files under the directory, ``lib/quantum_thirdparty/``, will be used"},{"line_number":5,"context_line":"when their service are enabled."},{"line_number":6,"context_line":"Third party program specific configuration variables should be in this file."}],"source_content_type":"text/x-gfm","patch_set":8,"id":"AAAAM3%2F%2Feho%3D","line":3,"updated":"2013-01-20 10:43:05.000000000","message":"Quantum plugins requires third party programs to function \u003d\u003e\nSome Quantum plugins may require third party programs to function","commit_id":"a0dce6b0a59877211f3a4a2a785776c6b00333cc"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"d2daf81fef9ce19ed172728658661ae01aaa161a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Quantum third party specific files"},{"line_number":2,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":3,"context_line":"Quantum plugins requires third party programs to function."},{"line_number":4,"context_line":"The files under the directory, ``lib/quantum_thirdparty/``, will be used"},{"line_number":5,"context_line":"when their service are enabled."},{"line_number":6,"context_line":"Third party program specific configuration variables should be in this file."}],"source_content_type":"text/x-gfm","patch_set":8,"id":"AAAAM3%2F%2FeTM%3D","line":3,"in_reply_to":"AAAAM3%2F%2Feho%3D","updated":"2013-01-21 02:34:38.000000000","message":"Done","commit_id":"a0dce6b0a59877211f3a4a2a785776c6b00333cc"}],"lib/quantum_thirdparty/ryu":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"a60ce3f9ebe1ad54d58b2c58c2e191e194402104","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"AAAAM3%2F%2FwcU%3D","side":"PARENT","line":52,"updated":"2013-01-07 14:35:34.000000000","message":"Thanks for removing it. I forgot to remove it in my patch :-(","commit_id":"5d8ae5bb6b6cde7f14e0b5ff554a177fc53b9271"}],"lib/rpc_backend":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"a60ce3f9ebe1ad54d58b2c58c2e191e194402104","unresolved":false,"context_lines":[{"line_number":11,"context_line":"        iniset $file $section rabbit_host $RABBIT_HOST"},{"line_number":12,"context_line":"        iniset $file $section rabbit_password $RABBIT_PASSWORD"},{"line_number":13,"context_line":"    fi"},{"line_number":14,"context_line":"}"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2Fwhc%3D","line":14,"updated":"2013-01-07 14:35:34.000000000","message":"I prefer to defining rpc_backend check (around L.160 in stack.sh) and package installatoin (around L.670 in stack.sh) in this file.","commit_id":"b40fbbeec75b7a2d685a61191dfd1be8ae00ed2d"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"dc0a3c8417f912b89dd9ab8fd1af63edfdc9a6d2","unresolved":false,"context_lines":[{"line_number":11,"context_line":"        iniset $file $section rabbit_host $RABBIT_HOST"},{"line_number":12,"context_line":"        iniset $file $section rabbit_password $RABBIT_PASSWORD"},{"line_number":13,"context_line":"    fi"},{"line_number":14,"context_line":"}"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAM3%2F%2Fs1M%3D","line":14,"in_reply_to":"AAAAM3%2F%2Fwhc%3D","updated":"2013-01-09 07:52:55.000000000","message":"Done\n\nAlso refactor restarting part.","commit_id":"b40fbbeec75b7a2d685a61191dfd1be8ae00ed2d"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"ffa56b0542b1b8e08efbea8350280ae480fe236e","unresolved":false,"context_lines":[{"line_number":13,"context_line":"function check_rpc_backend() {"},{"line_number":14,"context_line":"    local rpc_backend_cnt\u003d0"},{"line_number":15,"context_line":"    for svc in qpid zeromq rabbit; do"},{"line_number":16,"context_line":"\tis_service_enabled $svc \u0026\u0026"},{"line_number":17,"context_line":"        ((rpc_backend_cnt++))"},{"line_number":18,"context_line":"    done"},{"line_number":19,"context_line":"    if [ \"$rpc_backend_cnt\" -gt 1 ]; then"}],"source_content_type":"application/octet-stream","patch_set":5,"id":"AAAAM3%2F%2FpGc%3D","line":16,"updated":"2013-01-11 12:55:47.000000000","message":"hard tabs","commit_id":"9c8429ae63535b054f63e77f1a6734a679235bac"}]}
