)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"09e32e9bfe7dda16433d1bf1e7436a0a951b9fc8","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Huan Xie \u003chuan.xie@citrix.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-12-08 22:35:28 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"XenAPI: support minimize polling by monitoring ovsdb"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When using XenServer as hypervisor, the ovs agent running in compute"},{"line_number":10,"context_line":"node cannot set \"minimize_polling\u003dTrue\". Because once set it True,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"1a6eadb0_401643a8","line":7,"updated":"2016-12-19 14:17:10.000000000","message":"Let\u0027s be clear, while this is useful for XenServer this change is not XenAPI specific.\n\nThe real issue is that monitoring does not respect the tcp connection details provided for connecting to the OVS.\nThis change is simply to fix that bug.\n\nThat bugfix is then useful in XenAPI, but we don\u0027t need to discuss that here.","commit_id":"8d168ff77770d462dcf14a9393f7fee60a1a45ae"}],"neutron/agent/linux/ovsdb_monitor.py":[{"author":{"_account_id":17922,"name":"Huan Xie","email":"huan.xie@citrix.com","username":"huan"},"change_message_id":"bbadc09f5befaf5d8a439343fee4f4bb65f05102","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def __init__(self, table_name, columns\u003dNone, format\u003dNone,"},{"line_number":37,"context_line":"                 respawn_interval\u003dNone):"},{"line_number":38,"context_line":"        is_xen_compute_host \u003d \u0027rootwrap-xen-dom0\u0027 in cfg.CONF.AGENT.root_helper"},{"line_number":39,"context_line":"        if is_xen_compute_host:"},{"line_number":40,"context_line":"            # If ovs agent runs in compute node and hypervisor is XenServer,"},{"line_number":41,"context_line":"            # we must set db connection obviously, e.g. tcp:dom0_ip:port"},{"line_number":42,"context_line":"            # because this ovs agent aims to monitor port or other changes in"},{"line_number":43,"context_line":"            # dom0\u0027s OVS"},{"line_number":44,"context_line":"            conn \u003d cfg.CONF.OVS.ovsdb_connection"},{"line_number":45,"context_line":"            LOG.debug(\"OvsdbMonitor for XenServer Compute Host: %s\", conn)"},{"line_number":46,"context_line":"            cmd \u003d [\u0027ovsdb-client\u0027, \u0027monitor\u0027, conn, table_name]"},{"line_number":47,"context_line":"            run_as_root \u003d False"},{"line_number":48,"context_line":"        else:"},{"line_number":49,"context_line":"            cmd \u003d [\u0027ovsdb-client\u0027, \u0027monitor\u0027, table_name]"},{"line_number":50,"context_line":"            run_as_root \u003d True"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a71b18c_cc30fe58","line":47,"range":{"start_line":38,"start_character":8,"end_line":47,"end_character":31},"updated":"2016-12-07 09:38:52.000000000","message":"Will remove such check, add a param conn_info with default value as None, if conn_info isn\u0027t None, set run_as_root\u003dFalse","commit_id":"bd7f797d9987a3505f6c68a9a9ba346844b8f27f"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"643ad48b52f543caa03dc6f2946dc6aba74dd57b","unresolved":false,"context_lines":[{"line_number":36,"context_line":"                 respawn_interval\u003dNone, ovsdb_connection\u003dNone):"},{"line_number":37,"context_line":"        if ovsdb_connection:"},{"line_number":38,"context_line":"            # ovsdb_connection format: tcp:ip:port"},{"line_number":39,"context_line":"            # If ovsdb_connection is set with localhost, don\u0027t specify it in"},{"line_number":40,"context_line":"            # ovsdb-client command, otherwise, specify it explicitly"},{"line_number":41,"context_line":"            connList \u003d ovsdb_connection.split(\":\")"},{"line_number":42,"context_line":"            if connList[1].strip() \u003d\u003d \"127.0.0.1\":"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a6eadb0_00e28b9f","line":39,"updated":"2016-12-19 14:18:42.000000000","message":"# Current behaviour is for localhost connections to use rootwrap, but\n# if we have a remote ovsdb connection then use that instead and no need to run as root.","commit_id":"8d168ff77770d462dcf14a9393f7fee60a1a45ae"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"62874b4f35342eebdac721dd6bb14a7986f7ca42","unresolved":false,"context_lines":[{"line_number":38,"context_line":"            # Current behaviour of ovsdb-client is for localhost connection"},{"line_number":39,"context_line":"            # which use rootwrap, but if we have a remote ovsdb connection,"},{"line_number":40,"context_line":"            # then use tcp:ip:port instead and there is no need to run as root"},{"line_number":41,"context_line":"            connList \u003d ovsdb_connection.split(\":\")"},{"line_number":42,"context_line":"            if connList[1].strip() \u003d\u003d \"127.0.0.1\":"},{"line_number":43,"context_line":"                cmd \u003d [\u0027ovsdb-client\u0027, \u0027monitor\u0027, table_name]"},{"line_number":44,"context_line":"                run_as_root \u003d True"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba5201f7_e3e2d12e","line":41,"updated":"2017-01-10 16:59:51.000000000","message":"I get that you were avoiding changing the default behavior (since tcp:127.0.0.1:6640 is the default ovsdb_connection), but I don\u0027t see any reason to special case that. Eventually I want to add handling of native OVSDB to the monitor since we are already getting all of the monitor events when using native anyway.","commit_id":"80e5916df9ec74a061327b8631a0141f8a375305"},{"author":{"_account_id":17922,"name":"Huan Xie","email":"huan.xie@citrix.com","username":"huan"},"change_message_id":"3604ab93334c9a3020c6053f071f2637850b8841","unresolved":false,"context_lines":[{"line_number":38,"context_line":"            # Current behaviour of ovsdb-client is for localhost connection"},{"line_number":39,"context_line":"            # which use rootwrap, but if we have a remote ovsdb connection,"},{"line_number":40,"context_line":"            # then use tcp:ip:port instead and there is no need to run as root"},{"line_number":41,"context_line":"            connList \u003d ovsdb_connection.split(\":\")"},{"line_number":42,"context_line":"            if connList[1].strip() \u003d\u003d \"127.0.0.1\":"},{"line_number":43,"context_line":"                cmd \u003d [\u0027ovsdb-client\u0027, \u0027monitor\u0027, table_name]"},{"line_number":44,"context_line":"                run_as_root \u003d True"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba5201f7_c4478275","line":41,"in_reply_to":"ba5201f7_e3e2d12e","updated":"2017-01-11 01:40:01.000000000","message":"Yes, I just want to not affect current implementation, but I really agree with you and I will change this part, hope you can review again, thanks a lot!","commit_id":"80e5916df9ec74a061327b8631a0141f8a375305"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"e5ac3aff550d1c99b2bfff5a0ebf5ec32464d1cf","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    def __init__(self, table_name, columns\u003dNone, format\u003dNone,"},{"line_number":36,"context_line":"                 respawn_interval\u003dNone, ovsdb_connection\u003dNone):"},{"line_number":37,"context_line":"        if ovsdb_connection:"},{"line_number":38,"context_line":"            # Current behaviour of ovsdb-client is for localhost connection"},{"line_number":39,"context_line":"            # which use rootwrap, but if we have a remote ovsdb connection,"},{"line_number":40,"context_line":"            # then use tcp:ip:port instead and there is no need to run as root"},{"line_number":41,"context_line":"            cmd \u003d [\u0027ovsdb-client\u0027, \u0027monitor\u0027, ovsdb_connection, table_name]"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a3c09a3_63144ff5","line":38,"updated":"2017-01-13 10:23:47.000000000","message":"This comment is not up to date any more, since we always use the connection if it is specified.","commit_id":"3015be6506d3409ae193f4c1cbb6236367d12308"},{"author":{"_account_id":17922,"name":"Huan Xie","email":"huan.xie@citrix.com","username":"huan"},"change_message_id":"a7441643f0542a358588c11d50bca22c7dd8cbc0","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    def __init__(self, table_name, columns\u003dNone, format\u003dNone,"},{"line_number":36,"context_line":"                 respawn_interval\u003dNone, ovsdb_connection\u003dNone):"},{"line_number":37,"context_line":"        if ovsdb_connection:"},{"line_number":38,"context_line":"            # Current behaviour of ovsdb-client is for localhost connection"},{"line_number":39,"context_line":"            # which use rootwrap, but if we have a remote ovsdb connection,"},{"line_number":40,"context_line":"            # then use tcp:ip:port instead and there is no need to run as root"},{"line_number":41,"context_line":"            cmd \u003d [\u0027ovsdb-client\u0027, \u0027monitor\u0027, ovsdb_connection, table_name]"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a3c09a3_8379fefe","line":38,"in_reply_to":"7a3c09a3_63144ff5","updated":"2017-01-16 02:54:31.000000000","message":"ah, I see, will change it","commit_id":"3015be6506d3409ae193f4c1cbb6236367d12308"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"0cc47e55f044388f6ac41b470c5e041479ecf242","unresolved":false,"context_lines":[{"line_number":38,"context_line":"            # if ovsdb connection is configured (e.g. tcp:ip:port), use it,"},{"line_number":39,"context_line":"            # and there is no need to run as root"},{"line_number":40,"context_line":"            cmd \u003d [\u0027ovsdb-client\u0027, \u0027monitor\u0027, ovsdb_connection, table_name]"},{"line_number":41,"context_line":"            run_as_root \u003d False"},{"line_number":42,"context_line":"        else:"},{"line_number":43,"context_line":"            cmd \u003d [\u0027ovsdb-client\u0027, \u0027monitor\u0027, table_name]"},{"line_number":44,"context_line":"            run_as_root \u003d True"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a3c09a3_4a2e1044","line":41,"updated":"2017-01-17 02:55:11.000000000","message":"i\u0027m not sure if it\u0027s a good idea to infer run_as_root from ovsdb_connection. but i don\u0027t have a good alternative right now.","commit_id":"4b86582c73ced11ed3d63efcf7de86e7db282c9a"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"b74aa71cd34e88ca31ed1d045328dca679eddd44","unresolved":false,"context_lines":[{"line_number":38,"context_line":"            # if ovsdb connection is configured (e.g. tcp:ip:port), use it,"},{"line_number":39,"context_line":"            # and there is no need to run as root"},{"line_number":40,"context_line":"            cmd \u003d [\u0027ovsdb-client\u0027, \u0027monitor\u0027, ovsdb_connection, table_name]"},{"line_number":41,"context_line":"            run_as_root \u003d False"},{"line_number":42,"context_line":"        else:"},{"line_number":43,"context_line":"            cmd \u003d [\u0027ovsdb-client\u0027, \u0027monitor\u0027, table_name]"},{"line_number":44,"context_line":"            run_as_root \u003d True"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a3c09a3_ec0fce85","line":41,"in_reply_to":"7a3c09a3_1520a847","updated":"2017-01-17 09:44:12.000000000","message":"If we have to run_as_root even when we have a connection then that will break the change for XenAPI.  This is because run_as_root uses a remoting protocol to run commands in dom0 for XenAPI which does not support monitoring the output (it will send all output when the process terminates).\n\nI think run_as_root should only be specified when it is actually needed; and as we\u0027re just connecting to a socket we know it\u0027s never needed if we use the ovsdb_connection?","commit_id":"4b86582c73ced11ed3d63efcf7de86e7db282c9a"},{"author":{"_account_id":17922,"name":"Huan Xie","email":"huan.xie@citrix.com","username":"huan"},"change_message_id":"8c38769173ac82f282484185862624f372ea143b","unresolved":false,"context_lines":[{"line_number":38,"context_line":"            # if ovsdb connection is configured (e.g. tcp:ip:port), use it,"},{"line_number":39,"context_line":"            # and there is no need to run as root"},{"line_number":40,"context_line":"            cmd \u003d [\u0027ovsdb-client\u0027, \u0027monitor\u0027, ovsdb_connection, table_name]"},{"line_number":41,"context_line":"            run_as_root \u003d False"},{"line_number":42,"context_line":"        else:"},{"line_number":43,"context_line":"            cmd \u003d [\u0027ovsdb-client\u0027, \u0027monitor\u0027, table_name]"},{"line_number":44,"context_line":"            run_as_root \u003d True"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a3c09a3_1520a847","line":41,"in_reply_to":"7a3c09a3_4a2e1044","updated":"2017-01-17 07:26:52.000000000","message":"yeah, I see your concern. ATM if we use ovsdb_connection, then we don\u0027t use \"unix:/var/run/openvswitch/db.sock\", so there is no need for run_as_root, so I set run_as_root to False, but it\u0027s OK if we run as root with ovsdb_connection","commit_id":"4b86582c73ced11ed3d63efcf7de86e7db282c9a"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"ae154a213498d83e7670ccfcc4d9e3c0e8c1c685","unresolved":false,"context_lines":[{"line_number":38,"context_line":"            # if ovsdb connection is configured (e.g. tcp:ip:port), use it,"},{"line_number":39,"context_line":"            # and there is no need to run as root"},{"line_number":40,"context_line":"            cmd \u003d [\u0027ovsdb-client\u0027, \u0027monitor\u0027, ovsdb_connection, table_name]"},{"line_number":41,"context_line":"            run_as_root \u003d False"},{"line_number":42,"context_line":"        else:"},{"line_number":43,"context_line":"            cmd \u003d [\u0027ovsdb-client\u0027, \u0027monitor\u0027, table_name]"},{"line_number":44,"context_line":"            run_as_root \u003d True"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a3c09a3_3f256c08","line":41,"updated":"2017-01-17 14:29:05.000000000","message":"Thinking about Yamamoto\u0027s comment, it would technically be possible for someone to specify an ovsdb_connection\u003dunix:/path/only/root/can/access which would cause this to break, but I think I\u0027m ok with the restriction \"if you are specifying and ovdsb_connection, the neutron user must have access to it.\" Especially since ovsdb_connection has a default value.","commit_id":"71edbb0d7de06458bb1be345e13841ad4e7c2bb9"},{"author":{"_account_id":17922,"name":"Huan Xie","email":"huan.xie@citrix.com","username":"huan"},"change_message_id":"24ae2c66779882ff014068047e0f5df461d75c8c","unresolved":false,"context_lines":[{"line_number":38,"context_line":"            # if ovsdb connection is configured (e.g. tcp:ip:port), use it,"},{"line_number":39,"context_line":"            # and there is no need to run as root"},{"line_number":40,"context_line":"            cmd \u003d [\u0027ovsdb-client\u0027, \u0027monitor\u0027, ovsdb_connection, table_name]"},{"line_number":41,"context_line":"            run_as_root \u003d False"},{"line_number":42,"context_line":"        else:"},{"line_number":43,"context_line":"            cmd \u003d [\u0027ovsdb-client\u0027, \u0027monitor\u0027, table_name]"},{"line_number":44,"context_line":"            run_as_root \u003d True"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a3c09a3_6253d7e2","line":41,"in_reply_to":"7a3c09a3_3f256c08","updated":"2017-01-17 14:36:24.000000000","message":"yeah, thanks Terry","commit_id":"71edbb0d7de06458bb1be345e13841ad4e7c2bb9"}],"neutron/agent/linux/polling.py":[{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"10e99869e8f898b122ec2c82aa145e2120843e7b","unresolved":false,"context_lines":[{"line_number":51,"context_line":"            ovsdb_monitor_respawn_interval\u003dconstants.DEFAULT_OVSDBMON_RESPAWN):"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        super(InterfacePollingMinimizer, self).__init__()"},{"line_number":54,"context_line":"        ovsdb_connection \u003d cfg.CONF.OVS.ovsdb_connection"},{"line_number":55,"context_line":"        self._monitor \u003d ovsdb_monitor.SimpleInterfaceMonitor("},{"line_number":56,"context_line":"            respawn_interval\u003dovsdb_monitor_respawn_interval,"},{"line_number":57,"context_line":"            ovsdb_connection\u003dovsdb_connection)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_a291719c","line":54,"updated":"2017-01-11 14:41:42.000000000","message":"There\u0027s no need for this temporary variable, adding cfg.CONF.OVS to the ovsdb_connection below only makes the line 60 chars long.","commit_id":"9a5bf002cd3e4ef9322ce8f980ba8aaeb6b372b6"},{"author":{"_account_id":17922,"name":"Huan Xie","email":"huan.xie@citrix.com","username":"huan"},"change_message_id":"294645b404d163801cbfa87780dfba5088045049","unresolved":false,"context_lines":[{"line_number":51,"context_line":"            ovsdb_monitor_respawn_interval\u003dconstants.DEFAULT_OVSDBMON_RESPAWN):"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        super(InterfacePollingMinimizer, self).__init__()"},{"line_number":54,"context_line":"        ovsdb_connection \u003d cfg.CONF.OVS.ovsdb_connection"},{"line_number":55,"context_line":"        self._monitor \u003d ovsdb_monitor.SimpleInterfaceMonitor("},{"line_number":56,"context_line":"            respawn_interval\u003dovsdb_monitor_respawn_interval,"},{"line_number":57,"context_line":"            ovsdb_connection\u003dovsdb_connection)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_be096c86","line":54,"in_reply_to":"ba5201f7_a291719c","updated":"2017-01-12 01:41:20.000000000","message":"yeah, I see, I will modify this","commit_id":"9a5bf002cd3e4ef9322ce8f980ba8aaeb6b372b6"}],"neutron/agent/ovsdb/api.py":[{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"215203d1c6b535a26d3a382f9d12bf55ccf32dbe","unresolved":false,"context_lines":[{"line_number":39,"context_line":"                      \u0027This can be used by ovsdb-client to monitor OVSDB. \u0027"},{"line_number":40,"context_line":"                      \u0027If using this for native openflow, ovsdb_interface \u0027"},{"line_number":41,"context_line":"                      \u0027should be configured as native.\u0027"},{"line_number":42,"context_line":"                      ))"},{"line_number":43,"context_line":"]"},{"line_number":44,"context_line":"cfg.CONF.register_opts(OPTS, \u0027OVS\u0027)"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"7a3c09a3_c2c819ab","line":42,"updated":"2017-01-17 10:12:57.000000000","message":"This isn\u0027t quite right.  Suggest:\n\"The connection string for the OVSDB backend.\"\n\"Will be used by ovsdb-client when monitoring and\n used for the all ovsdb commands when native \n ovsdb_interface is enabled\"","commit_id":"1f9b50a71213cd541793c6a9d9ce144453c1a863"},{"author":{"_account_id":17922,"name":"Huan Xie","email":"huan.xie@citrix.com","username":"huan"},"change_message_id":"58b2c4e8ff2680ac04d7770510b5d5a82e65a75a","unresolved":false,"context_lines":[{"line_number":39,"context_line":"                      \u0027This can be used by ovsdb-client to monitor OVSDB. \u0027"},{"line_number":40,"context_line":"                      \u0027If using this for native openflow, ovsdb_interface \u0027"},{"line_number":41,"context_line":"                      \u0027should be configured as native.\u0027"},{"line_number":42,"context_line":"                      ))"},{"line_number":43,"context_line":"]"},{"line_number":44,"context_line":"cfg.CONF.register_opts(OPTS, \u0027OVS\u0027)"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"7a3c09a3_f7314e5b","line":42,"in_reply_to":"7a3c09a3_c2c819ab","updated":"2017-01-17 13:38:35.000000000","message":"yeah, I will change this, thanks Bob","commit_id":"1f9b50a71213cd541793c6a9d9ce144453c1a863"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"d438e6fe0d899805cfb83904846b75e734b2c583","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    cfg.StrOpt(\u0027ovsdb_connection\u0027,"},{"line_number":36,"context_line":"               default\u003d\u0027tcp:127.0.0.1:6640\u0027,"},{"line_number":37,"context_line":"               help\u003d_(\u0027The connection string for the OVSDB backend. \u0027"},{"line_number":38,"context_line":"                      \u0027Will be used by ovsdb-client when monitoring and \u0027"},{"line_number":39,"context_line":"                      \u0027used for the all ovsdb commands when native \u0027"},{"line_number":40,"context_line":"                      \u0027ovsdb_interface is enabled\u0027"},{"line_number":41,"context_line":"                      ))"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a3c09a3_5ec92fab","line":38,"range":{"start_line":38,"start_character":39,"end_line":38,"end_character":67},"updated":"2017-01-18 07:06:01.000000000","message":"i suspect this description is a bit cryptic for average users.\nit would be easier to understand if the agent option is mentioned here, but given that this is a library, it\u0027s probably not a good idea.\ni don\u0027t have any good suggestion right now.","commit_id":"71edbb0d7de06458bb1be345e13841ad4e7c2bb9"}],"neutron/tests/unit/agent/linux/test_ovsdb_monitor.py":[{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"10e99869e8f898b122ec2c82aa145e2120843e7b","unresolved":false,"context_lines":[{"line_number":46,"context_line":"            \u0027neutron.agent.linux.async_process.AsyncProcess.__init__\u0027) as init:"},{"line_number":47,"context_line":"            ovsdb_monitor.OvsdbMonitor(\u0027Interface\u0027, columns\u003dcolumns,"},{"line_number":48,"context_line":"                                       ovsdb_connection\u003dconn_info)"},{"line_number":49,"context_line":"            cmd_all \u003d init.call_args_list[0][0][0]"},{"line_number":50,"context_line":"            cmd_expect \u003d [\u0027ovsdb-client\u0027, \u0027monitor\u0027, \u0027tcp:10.10.10.10:6640\u0027,"},{"line_number":51,"context_line":"                          \u0027Interface\u0027, \u0027col1,col2\u0027]"},{"line_number":52,"context_line":"            self.assertEqual(cmd_expect, cmd_all)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_6306ac1d","line":49,"updated":"2017-01-11 14:41:42.000000000","message":"I wonder why the other tests used call_args_list instead of call_args so this could just be:\n\n cmd_all \u003d init.call_args[0][0]\n\nOh well, consistency is good I guess. :)","commit_id":"9a5bf002cd3e4ef9322ce8f980ba8aaeb6b372b6"},{"author":{"_account_id":17922,"name":"Huan Xie","email":"huan.xie@citrix.com","username":"huan"},"change_message_id":"294645b404d163801cbfa87780dfba5088045049","unresolved":false,"context_lines":[{"line_number":46,"context_line":"            \u0027neutron.agent.linux.async_process.AsyncProcess.__init__\u0027) as init:"},{"line_number":47,"context_line":"            ovsdb_monitor.OvsdbMonitor(\u0027Interface\u0027, columns\u003dcolumns,"},{"line_number":48,"context_line":"                                       ovsdb_connection\u003dconn_info)"},{"line_number":49,"context_line":"            cmd_all \u003d init.call_args_list[0][0][0]"},{"line_number":50,"context_line":"            cmd_expect \u003d [\u0027ovsdb-client\u0027, \u0027monitor\u0027, \u0027tcp:10.10.10.10:6640\u0027,"},{"line_number":51,"context_line":"                          \u0027Interface\u0027, \u0027col1,col2\u0027]"},{"line_number":52,"context_line":"            self.assertEqual(cmd_expect, cmd_all)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_3e4c9cc7","line":49,"in_reply_to":"ba5201f7_6306ac1d","updated":"2017-01-12 01:41:20.000000000","message":"yes, just make the same style with other testcases in the same class TestOvsdbMonitor :)","commit_id":"9a5bf002cd3e4ef9322ce8f980ba8aaeb6b372b6"}]}
