)]}'
{"etc/dhcp_agent.ini":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"00051b7267496bd05ce28f4ff66b0b7c11696900","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"# Timeout for ovs-vsctl commands."},{"line_number":86,"context_line":"# If the timeout expires, ovs commands will fail with ALARMCLOCK error."},{"line_number":87,"context_line":"# ovsvsctl_timeout \u003d 2"}],"source_content_type":"text/x-properties","patch_set":3,"id":"AAAATn%2F9KOM%3D","line":87,"updated":"2013-12-16 06:44:51.000000000","message":"ovs_vsctl_timeout","commit_id":"885c85c5b49b7a3b319936ee31662d9c7bea2258"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"c09a5de34e06b623ef9f8f75a1f20593181d1e6c","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"# Timeout for ovs-vsctl commands."},{"line_number":86,"context_line":"# If the timeout expires, ovs commands will fail with ALARMCLOCK error."},{"line_number":87,"context_line":"# ovsvsctl_timeout \u003d 2"}],"source_content_type":"text/x-properties","patch_set":3,"id":"AAAATn%2F9Jok%3D","line":87,"in_reply_to":"AAAATn%2F9KOM%3D","updated":"2013-12-16 09:40:26.000000000","message":"Done","commit_id":"885c85c5b49b7a3b319936ee31662d9c7bea2258"}],"etc/l3_agent.ini":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"00051b7267496bd05ce28f4ff66b0b7c11696900","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"# Timeout for ovs-vsctl commands."},{"line_number":76,"context_line":"# If the timeout expires, ovs commands will fail with ALARMCLOCK error."},{"line_number":77,"context_line":"# ovsvsctl_timeout \u003d 2"}],"source_content_type":"text/x-properties","patch_set":3,"id":"AAAATn%2F9KOI%3D","line":77,"updated":"2013-12-16 06:44:51.000000000","message":"ovs_vsctl_timeout","commit_id":"885c85c5b49b7a3b319936ee31662d9c7bea2258"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"c09a5de34e06b623ef9f8f75a1f20593181d1e6c","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"# Timeout for ovs-vsctl commands."},{"line_number":76,"context_line":"# If the timeout expires, ovs commands will fail with ALARMCLOCK error."},{"line_number":77,"context_line":"# ovsvsctl_timeout \u003d 2"}],"source_content_type":"text/x-properties","patch_set":3,"id":"AAAATn%2F9Jog%3D","line":77,"in_reply_to":"AAAATn%2F9KOI%3D","updated":"2013-12-16 09:40:26.000000000","message":"Done","commit_id":"885c85c5b49b7a3b319936ee31662d9c7bea2258"}],"neutron/agent/linux/ovs_lib.py":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"3e8a8d0a15eca4e28976655e536dab8657d184f8","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from neutron.plugins.openvswitch.common import constants"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"OPTS \u003d ["},{"line_number":32,"context_line":"    cfg.BoolOpt(\u0027ovsvsctl_timeout\u0027,"},{"line_number":33,"context_line":"                default\u003dconstants.DEFAULT_OVSVSCTL_TIMEOUT,"},{"line_number":34,"context_line":"                help\u003d_(\u0027Timeout in seconds for ovs-vsctl commands\u0027)),"},{"line_number":35,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9ij0%3D","line":32,"updated":"2013-12-10 13:11:37.000000000","message":"IntOpt?","commit_id":"38462198b1f348c12f60cffdcac33bc7ceccf404"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"a4af660b9923da14365d09ee765789a9722219eb","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from neutron.plugins.openvswitch.common import constants"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"OPTS \u003d ["},{"line_number":32,"context_line":"    cfg.IntOpt(\u0027ovsvsctl_timeout\u0027,"},{"line_number":33,"context_line":"               default\u003dconstants.DEFAULT_OVSVSCTL_TIMEOUT,"},{"line_number":34,"context_line":"               help\u003d_(\u0027Timeout in seconds for ovs-vsctl commands\u0027)),"},{"line_number":35,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F9cUg%3D","line":32,"updated":"2013-12-11 13:49:32.000000000","message":"In nova we have: https://review.openstack.org/#/c/47788/8/etc/nova/nova.conf.sample (ovs_vsctl_timeout) - it may be worthwhile being inline with that ...","commit_id":"fd19839fb0384201f8951a1019e0d5805109f777"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"f70e564fa85e6a9e5e555cee3f512ee0923395d7","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from neutron.plugins.openvswitch.common import constants"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"OPTS \u003d ["},{"line_number":32,"context_line":"    cfg.IntOpt(\u0027ovsvsctl_timeout\u0027,"},{"line_number":33,"context_line":"               default\u003dconstants.DEFAULT_OVSVSCTL_TIMEOUT,"},{"line_number":34,"context_line":"               help\u003d_(\u0027Timeout in seconds for ovs-vsctl commands\u0027)),"},{"line_number":35,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F9hnA%3D","line":32,"updated":"2013-12-10 15:48:15.000000000","message":"My suggestion would be to name it ovs_vsctl_timeout. Somehow it is more pleasant to see and read than this line of 7 consonants.\nIt\u0027s just an opinion and it will require to fix in a lot of places in this patch, so feel free to ignore.","commit_id":"fd19839fb0384201f8951a1019e0d5805109f777"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"39830354d3cbb4bd241d948c129bcd4242f78e5f","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from neutron.plugins.openvswitch.common import constants"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"OPTS \u003d ["},{"line_number":32,"context_line":"    cfg.IntOpt(\u0027ovsvsctl_timeout\u0027,"},{"line_number":33,"context_line":"               default\u003dconstants.DEFAULT_OVSVSCTL_TIMEOUT,"},{"line_number":34,"context_line":"               help\u003d_(\u0027Timeout in seconds for ovs-vsctl commands\u0027)),"},{"line_number":35,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F9b78%3D","line":32,"in_reply_to":"AAAATn%2F9dFo%3D","updated":"2013-12-11 14:45:56.000000000","message":"nice trolling! ;-) i wish i knew what was behind those \u0027?\u0027","commit_id":"fd19839fb0384201f8951a1019e0d5805109f777"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"4712b068a0ecfeb1393d55be778067aa8a227725","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from neutron.plugins.openvswitch.common import constants"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"OPTS \u003d ["},{"line_number":32,"context_line":"    cfg.IntOpt(\u0027ovsvsctl_timeout\u0027,"},{"line_number":33,"context_line":"               default\u003dconstants.DEFAULT_OVSVSCTL_TIMEOUT,"},{"line_number":34,"context_line":"               help\u003d_(\u0027Timeout in seconds for ovs-vsctl commands\u0027)),"},{"line_number":35,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F9dFU%3D","line":32,"in_reply_to":"AAAATn%2F9dFo%3D","updated":"2013-12-11 11:11:38.000000000","message":"the question marks were supposed to be ciryllic","commit_id":"fd19839fb0384201f8951a1019e0d5805109f777"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"aa3e6d8e45cff608a2edb263f1913b718111f29d","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from neutron.plugins.openvswitch.common import constants"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"OPTS \u003d ["},{"line_number":32,"context_line":"    cfg.IntOpt(\u0027ovsvsctl_timeout\u0027,"},{"line_number":33,"context_line":"               default\u003dconstants.DEFAULT_OVSVSCTL_TIMEOUT,"},{"line_number":34,"context_line":"               help\u003d_(\u0027Timeout in seconds for ovs-vsctl commands\u0027)),"},{"line_number":35,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F9dFo%3D","line":32,"in_reply_to":"AAAATn%2F9flo%3D","updated":"2013-12-11 11:11:09.000000000","message":"I was thinking too the change made sense but did not made it out of lazyness maybe.\n\nAllow me to say however, that I find surprising that Eugene finds difficult pronouncing a word with 7 consonants, he should be used to this! Example: ??????????????","commit_id":"fd19839fb0384201f8951a1019e0d5805109f777"},{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"change_message_id":"b312819c61cbf9eaf39a1207010848b6f1318f35","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from neutron.plugins.openvswitch.common import constants"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"OPTS \u003d ["},{"line_number":32,"context_line":"    cfg.IntOpt(\u0027ovsvsctl_timeout\u0027,"},{"line_number":33,"context_line":"               default\u003dconstants.DEFAULT_OVSVSCTL_TIMEOUT,"},{"line_number":34,"context_line":"               help\u003d_(\u0027Timeout in seconds for ovs-vsctl commands\u0027)),"},{"line_number":35,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F9flo%3D","line":32,"in_reply_to":"AAAATn%2F9hnA%3D","updated":"2013-12-10 22:56:42.000000000","message":"I tend to agree with Eugene here, it\u0027s much easier on the eyeballs to read ovs_vsctl_timeout. However, it is a rather onerous change, so please only modify or ignore.","commit_id":"fd19839fb0384201f8951a1019e0d5805109f777"},{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"b51ce00eb9acd88c83d9d46015ce5514f7c4e004","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from neutron.plugins.openvswitch.common import constants"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"OPTS \u003d ["},{"line_number":32,"context_line":"    cfg.IntOpt(\u0027ovs_vsctl_timeout\u0027,"},{"line_number":33,"context_line":"               default\u003dconstants.DEFAULT_OVS_VSCTL_TIMEOUT,"},{"line_number":34,"context_line":"               help\u003d_(\u0027Timeout in seconds for ovs-vsctl commands\u0027)),"},{"line_number":35,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2F7fk%3D","line":32,"updated":"2014-01-06 16:50:57.000000000","message":"Instead of introducing this new set of options here and having to add OVS-specific dependencies to l3_agent.py and dhcp_agent.py (and probably loadbalancer and firewall agents too), why not define this option alongside the other OVS options in neutron/agent/linux/interface.py (for the l3-agent, dhcp-agent, ...) and in neutron/plugins/openvswitch/common/config.py, and pass the timeout into BaseOVS.__init__() as a parameter, like root_helter? This approach (with a default value) would also resolve Yong\u0027s comment below.","commit_id":"047ab21796fcceb4e08c96171d678ebda9462898"},{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"0198a913f69754d467bc993bc2e1a914c3bdb124","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from neutron.plugins.openvswitch.common import constants"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"OPTS \u003d ["},{"line_number":32,"context_line":"    cfg.IntOpt(\u0027ovs_vsctl_timeout\u0027,"},{"line_number":33,"context_line":"               default\u003dconstants.DEFAULT_OVS_VSCTL_TIMEOUT,"},{"line_number":34,"context_line":"               help\u003d_(\u0027Timeout in seconds for ovs-vsctl commands\u0027)),"},{"line_number":35,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2F7R8%3D","line":32,"in_reply_to":"AAAAUH%2F%2F7b4%3D","updated":"2014-01-06 17:53:04.000000000","message":"This module would not need to import neutron.agent.linux.interface because the timeout value would be passed to the constructor, just like root_helper. That also preserves the flexibility for various users of this library.","commit_id":"047ab21796fcceb4e08c96171d678ebda9462898"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"e668a274a36d11d55c957362063bdc5c8798cbc7","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from neutron.plugins.openvswitch.common import constants"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"OPTS \u003d ["},{"line_number":32,"context_line":"    cfg.IntOpt(\u0027ovs_vsctl_timeout\u0027,"},{"line_number":33,"context_line":"               default\u003dconstants.DEFAULT_OVS_VSCTL_TIMEOUT,"},{"line_number":34,"context_line":"               help\u003d_(\u0027Timeout in seconds for ovs-vsctl commands\u0027)),"},{"line_number":35,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2F7b4%3D","line":32,"in_reply_to":"AAAAUH%2F%2F7fk%3D","updated":"2014-01-06 17:10:42.000000000","message":"I\u0027ve considered what you said and I\u0027ve decided to follow instead this path which is actually consistent with similar libraries, such as, for instance, ip_lib.\n\nDefining the configuration parameter in neutron.agent.linux.interface would make this module dependent on the other, and indeed one would have to import it.\n\nBeing this module a library, it could be used in several ways. For instance callers might decide to not make it configurable, and hence the exception raised below; again, this is still consistent to ip_lib.","commit_id":"047ab21796fcceb4e08c96171d678ebda9462898"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"f6dea5739f1ce83c122637eeacafe535e9998cd3","unresolved":false,"context_lines":[{"line_number":40,"context_line":"def _get_ovs_vsctl_timeout():"},{"line_number":41,"context_line":"    try:"},{"line_number":42,"context_line":"        return cfg.CONF.ovs_vsctl_timeout"},{"line_number":43,"context_line":"    except cfg.NoSuchOptError:"},{"line_number":44,"context_line":"        # Use the default value if the caller did not set up"},{"line_number":45,"context_line":"        # the configuration option"},{"line_number":46,"context_line":"        return constants.DEFAULT_OVS_VSCTL_TIMEOUT"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2F58M%3D","line":43,"updated":"2014-01-07 00:22:56.000000000","message":"I thought I\u0027d answer this since I had to figure out the answer for myself.\n\nThis is necessary because the caller is responsible for registering the options (as was done in l3_agent, dhcp_agent, and others in this patch).  There may be some contexts where the callers have not done this and the exception would be raised.","commit_id":"047ab21796fcceb4e08c96171d678ebda9462898"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"9b248a9c2565791a6702fc1a10b0a99174263966","unresolved":false,"context_lines":[{"line_number":40,"context_line":"def _get_ovs_vsctl_timeout():"},{"line_number":41,"context_line":"    try:"},{"line_number":42,"context_line":"        return cfg.CONF.ovs_vsctl_timeout"},{"line_number":43,"context_line":"    except cfg.NoSuchOptError:"},{"line_number":44,"context_line":"        # Use the default value if the caller did not set up"},{"line_number":45,"context_line":"        # the configuration option"},{"line_number":46,"context_line":"        return constants.DEFAULT_OVS_VSCTL_TIMEOUT"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAT3%2F%2Fsds%3D","line":43,"updated":"2014-01-03 10:18:15.000000000","message":"why will the exception happen?","commit_id":"047ab21796fcceb4e08c96171d678ebda9462898"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"586f8d8da73cbf75f9bb61a4944c5bb4a7e9df3d","unresolved":false,"context_lines":[{"line_number":40,"context_line":"def _get_ovs_vsctl_timeout():"},{"line_number":41,"context_line":"    try:"},{"line_number":42,"context_line":"        return cfg.CONF.ovs_vsctl_timeout"},{"line_number":43,"context_line":"    except cfg.NoSuchOptError:"},{"line_number":44,"context_line":"        # Use the default value if the caller did not set up"},{"line_number":45,"context_line":"        # the configuration option"},{"line_number":46,"context_line":"        return constants.DEFAULT_OVS_VSCTL_TIMEOUT"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2FvuU%3D","line":43,"in_reply_to":"AAAAUH%2F%2F58M%3D","updated":"2014-01-08 23:02:41.000000000","message":"You are reading it correctly, but I will remove this once I move the option to the other module as asked.","commit_id":"047ab21796fcceb4e08c96171d678ebda9462898"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"7ae55c74eaa8a9569b9c3627d7daa595087514a2","unresolved":false,"context_lines":[{"line_number":450,"context_line":"        LOG.exception(_(\"Unable to retrieve OVS kernel module version.\"))"},{"line_number":451,"context_line":""},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"def get_bridge_external_bridge_id(root_helper, bridge):"},{"line_number":454,"context_line":"    args \u003d [\"ovs-vsctl\", \"--timeout\u003d2\", \"br-get-external-id\","},{"line_number":455,"context_line":"            bridge, \"bridge-id\"]"},{"line_number":456,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2F9Lg%3D","line":453,"updated":"2014-01-06 08:47:21.000000000","message":"Forgot to convert? or intentional?\nWould it better to consolidate [\"ovs-vsctl\", \u0027--timeout\u003d%d\u0027] to something like OVS_VSCTL_TIMEOUT?","commit_id":"047ab21796fcceb4e08c96171d678ebda9462898"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"e668a274a36d11d55c957362063bdc5c8798cbc7","unresolved":false,"context_lines":[{"line_number":450,"context_line":"        LOG.exception(_(\"Unable to retrieve OVS kernel module version.\"))"},{"line_number":451,"context_line":""},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"def get_bridge_external_bridge_id(root_helper, bridge):"},{"line_number":454,"context_line":"    args \u003d [\"ovs-vsctl\", \"--timeout\u003d2\", \"br-get-external-id\","},{"line_number":455,"context_line":"            bridge, \"bridge-id\"]"},{"line_number":456,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2F7dw%3D","line":453,"in_reply_to":"AAAAUH%2F%2F9Lg%3D","updated":"2014-01-06 17:10:42.000000000","message":"I honestly thought I had already converted all method.\nAs this patch has been in review for ages perhaps this method has been introduced in the meanwhile?","commit_id":"047ab21796fcceb4e08c96171d678ebda9462898"},{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"9960b061bf043b3356e243a94c2b0732e15d2e67","unresolved":false,"context_lines":[{"line_number":37,"context_line":"               default\u003dDEFAULT_OVS_VSCTL_TIMEOUT,"},{"line_number":38,"context_line":"               help\u003d_(\u0027Timeout in seconds for ovs-vsctl commands\u0027)),"},{"line_number":39,"context_line":"]"},{"line_number":40,"context_line":"cfg.CONF.register_opts(OPTS)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2FeQo%3D","line":40,"updated":"2014-01-13 14:55:35.000000000","message":"I had suggested passing the timeout value into the BaseOVS class constructor rather than building the configuration item into this module, but I guess this works OK.","commit_id":"4af2163bd41648d64cf1c3c838990737955d2133"}],"neutron/agent/netns_cleanup_util.py":[{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"60455956b6557ef37ab5fe58bd2c940cdffc70a2","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    conf.register_opts(opts)"},{"line_number":66,"context_line":"    agent_config.register_root_helper(conf)"},{"line_number":67,"context_line":"    conf.register_opts(dhcp.OPTS)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    return conf"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FvVg%3D","line":68,"updated":"2014-01-09 00:49:38.000000000","message":"Unrelated formatting change","commit_id":"e22b28e2fbe17ca5feecb1f4587ea242c503009d"}],"neutron/plugins/openvswitch/common/constants.py":[{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"e5e2bb5512ea1874658d47b4390b4e44dc5f8e6b","unresolved":false,"context_lines":[{"line_number":53,"context_line":"DEFAULT_OVSDBMON_RESPAWN \u003d 30"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"# Default timeout for ovs-vsctl command"},{"line_number":56,"context_line":"DEFAULT_OVSVSCTL_TIMEOUT \u003d 2"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F9NPk%3D","line":56,"updated":"2013-12-14 03:49:36.000000000","message":"I think we should set this to -1","commit_id":"fd19839fb0384201f8951a1019e0d5805109f777"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"60455956b6557ef37ab5fe58bd2c940cdffc70a2","unresolved":false,"context_lines":[{"line_number":50,"context_line":"# The default respawn interval for the ovsdb monitor"},{"line_number":51,"context_line":"DEFAULT_OVSDBMON_RESPAWN \u003d 30"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"# Default timeout for ovs-vsctl command"},{"line_number":54,"context_line":"DEFAULT_OVS_VSCTL_TIMEOUT \u003d 10"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FvSM%3D","line":53,"updated":"2014-01-09 00:49:38.000000000","message":"Is there justification to define a constant if the only place it\u0027s only used to set the default for the configuration value?","commit_id":"e22b28e2fbe17ca5feecb1f4587ea242c503009d"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"d4e22ab0cc362c94c4679f7e7be9ca26dad6b32e","unresolved":false,"context_lines":[{"line_number":50,"context_line":"# The default respawn interval for the ovsdb monitor"},{"line_number":51,"context_line":"DEFAULT_OVSDBMON_RESPAWN \u003d 30"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"# Default timeout for ovs-vsctl command"},{"line_number":54,"context_line":"DEFAULT_OVS_VSCTL_TIMEOUT \u003d 10"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FpXk%3D","line":53,"in_reply_to":"AAAAUH%2F%2FvSM%3D","updated":"2014-01-10 05:37:16.000000000","message":"I am ok with this constant and the place along with the DEFAULT_OVSDBMON_RESPAWN.","commit_id":"e22b28e2fbe17ca5feecb1f4587ea242c503009d"}],"neutron/tests/unit/openvswitch/test_ovs_lib.py":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"00051b7267496bd05ce28f4ff66b0b7c11696900","unresolved":false,"context_lines":[{"line_number":18,"context_line":"import mock"},{"line_number":19,"context_line":"import testtools"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from oslo.config import cfg"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from neutron.agent.linux import ovs_lib"},{"line_number":24,"context_line":"from neutron.agent.linux import utils"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9KOo%3D","line":21,"updated":"2013-12-16 06:44:51.000000000","message":"should be in third party import section along with mock and testtools","commit_id":"885c85c5b49b7a3b319936ee31662d9c7bea2258"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"c09a5de34e06b623ef9f8f75a1f20593181d1e6c","unresolved":false,"context_lines":[{"line_number":18,"context_line":"import mock"},{"line_number":19,"context_line":"import testtools"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from oslo.config import cfg"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from neutron.agent.linux import ovs_lib"},{"line_number":24,"context_line":"from neutron.agent.linux import utils"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9JoI%3D","line":21,"in_reply_to":"AAAATn%2F9KOo%3D","updated":"2013-12-16 09:40:26.000000000","message":"Done","commit_id":"885c85c5b49b7a3b319936ee31662d9c7bea2258"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"00051b7267496bd05ce28f4ff66b0b7c11696900","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        self.br \u003d ovs_lib.OVSBridge(self.BR_NAME, self.root_helper)"},{"line_number":119,"context_line":"        self.execute \u003d mock.patch.object(utils, \"execute\").start()"},{"line_number":120,"context_line":"        self.addCleanup(mock.patch.stopall)"},{"line_number":121,"context_line":"        self.addCleanup(cfg.CONF.reset)"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    def test_vifport(self):"},{"line_number":124,"context_line":"        \"\"\"Create and stringify vif port, confirm no exceptions.\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9KOU%3D","line":121,"updated":"2013-12-16 06:44:51.000000000","message":"nit: base.BaseTestCase already has this cleanup","commit_id":"885c85c5b49b7a3b319936ee31662d9c7bea2258"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"c09a5de34e06b623ef9f8f75a1f20593181d1e6c","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        self.br \u003d ovs_lib.OVSBridge(self.BR_NAME, self.root_helper)"},{"line_number":119,"context_line":"        self.execute \u003d mock.patch.object(utils, \"execute\").start()"},{"line_number":120,"context_line":"        self.addCleanup(mock.patch.stopall)"},{"line_number":121,"context_line":"        self.addCleanup(cfg.CONF.reset)"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    def test_vifport(self):"},{"line_number":124,"context_line":"        \"\"\"Create and stringify vif port, confirm no exceptions.\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9JoE%3D","line":121,"in_reply_to":"AAAATn%2F9KOU%3D","updated":"2013-12-16 09:40:26.000000000","message":"Done","commit_id":"885c85c5b49b7a3b319936ee31662d9c7bea2258"},{"author":{"_account_id":8282,"name":"Dong Liu","email":"willowd878@gmail.com","username":"liudong"},"change_message_id":"1e04b4111893df2bc6114d1aea520dc2549c9208","unresolved":false,"context_lines":[{"line_number":587,"context_line":"    def test_get_bridges(self):"},{"line_number":588,"context_line":"        self._test_get_bridges()"},{"line_number":589,"context_line":""},{"line_number":590,"context_line":"    def test_get_bridges_not_default_timeout(self):"},{"line_number":591,"context_line":"        new_timeout \u003d 5"},{"line_number":592,"context_line":"        old_timeout \u003d cfg.CONF.ovs_vsctl_timeout"},{"line_number":593,"context_line":"        # NOTE(salv-orlando): This is not yet full concurrency-safe,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F8rwI%3D","line":590,"updated":"2013-12-23 09:19:12.000000000","message":"nit: should be non_default like test_call_command_non_default_timeput and test_iface_to_br_non_default_timeout, feel free to ignore.","commit_id":"047ab21796fcceb4e08c96171d678ebda9462898"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"e668a274a36d11d55c957362063bdc5c8798cbc7","unresolved":false,"context_lines":[{"line_number":587,"context_line":"    def test_get_bridges(self):"},{"line_number":588,"context_line":"        self._test_get_bridges()"},{"line_number":589,"context_line":""},{"line_number":590,"context_line":"    def test_get_bridges_not_default_timeout(self):"},{"line_number":591,"context_line":"        new_timeout \u003d 5"},{"line_number":592,"context_line":"        old_timeout \u003d cfg.CONF.ovs_vsctl_timeout"},{"line_number":593,"context_line":"        # NOTE(salv-orlando): This is not yet full concurrency-safe,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2F7bs%3D","line":590,"in_reply_to":"AAAATn%2F8rwI%3D","updated":"2014-01-06 17:10:42.000000000","message":"no worries, I\u0027ll do this change","commit_id":"047ab21796fcceb4e08c96171d678ebda9462898"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"60455956b6557ef37ab5fe58bd2c940cdffc70a2","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        self.br.reset_bridge()"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    def _test_delete_port(self, exp_timeout\u003dNone):"},{"line_number":156,"context_line":"        exp_timeout_str \u003d (\"--timeout\u003d%d\" % exp_timeout if exp_timeout"},{"line_number":157,"context_line":"                           else self.TO)"},{"line_number":158,"context_line":"        pname \u003d \"tap5\""},{"line_number":159,"context_line":"        self.br.delete_port(pname)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FvTc%3D","line":156,"updated":"2014-01-09 00:49:38.000000000","message":"(Suggestion only) This repeated pattern suggests a simple method.","commit_id":"e22b28e2fbe17ca5feecb1f4587ea242c503009d"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"5f674cf9dc8d93e285d6707f5041e1bfe232d1fc","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        self.br.reset_bridge()"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    def _test_delete_port(self, exp_timeout\u003dNone):"},{"line_number":156,"context_line":"        exp_timeout_str \u003d (\"--timeout\u003d%d\" % exp_timeout if exp_timeout"},{"line_number":157,"context_line":"                           else self.TO)"},{"line_number":158,"context_line":"        pname \u003d \"tap5\""},{"line_number":159,"context_line":"        self.br.delete_port(pname)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FqqQ%3D","line":156,"in_reply_to":"AAAAUH%2F%2FrZM%3D","updated":"2014-01-09 21:47:33.000000000","message":"Oh, right :) Shame on me. Thanks","commit_id":"e22b28e2fbe17ca5feecb1f4587ea242c503009d"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"c4c84167fd47cf45dee25200be2154a8b8918cb6","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        self.br.reset_bridge()"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    def _test_delete_port(self, exp_timeout\u003dNone):"},{"line_number":156,"context_line":"        exp_timeout_str \u003d (\"--timeout\u003d%d\" % exp_timeout if exp_timeout"},{"line_number":157,"context_line":"                           else self.TO)"},{"line_number":158,"context_line":"        pname \u003d \"tap5\""},{"line_number":159,"context_line":"        self.br.delete_port(pname)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FrZM%3D","line":156,"in_reply_to":"AAAAUH%2F%2Ft7U%3D","updated":"2014-01-09 17:52:30.000000000","message":"I\u0027m afraid that\u0027s incorrect.  Operator binding ensures that the statement is effectively the following:\n\n(\"--timeout\u003d%d\" % exp_timeout) if exp_timeout else self.TO","commit_id":"e22b28e2fbe17ca5feecb1f4587ea242c503009d"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"83aa7fc188c770e5bfdf32fef34ac82607cc5be8","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        self.br.reset_bridge()"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    def _test_delete_port(self, exp_timeout\u003dNone):"},{"line_number":156,"context_line":"        exp_timeout_str \u003d (\"--timeout\u003d%d\" % exp_timeout if exp_timeout"},{"line_number":157,"context_line":"                           else self.TO)"},{"line_number":158,"context_line":"        pname \u003d \"tap5\""},{"line_number":159,"context_line":"        self.br.delete_port(pname)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2Ft7U%3D","line":156,"in_reply_to":"AAAAUH%2F%2FvTc%3D","updated":"2014-01-09 09:01:12.000000000","message":"Seems like if exp_timeout is None, the exp_timeout_str will be --timeout\u003d--timeout\u003d10 because self.TO is \"--timeout\u003d10\"","commit_id":"e22b28e2fbe17ca5feecb1f4587ea242c503009d"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"60455956b6557ef37ab5fe58bd2c940cdffc70a2","unresolved":false,"context_lines":[{"line_number":533,"context_line":""},{"line_number":534,"context_line":"    def test_iface_to_br_non_default_timeout(self):"},{"line_number":535,"context_line":"        new_timeout \u003d 5"},{"line_number":536,"context_line":"        old_timeout \u003d cfg.CONF.ovs_vsctl_timeout"},{"line_number":537,"context_line":"        # NOTE(salv-orlando): This is not yet full concurrency-safe,"},{"line_number":538,"context_line":"        # but it\u0027s the best that can be done about it"},{"line_number":539,"context_line":"        cfg.CONF.set_override(\u0027ovs_vsctl_timeout\u0027, new_timeout)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FvUU%3D","line":536,"updated":"2014-01-09 00:49:38.000000000","message":"Please avoid manually reseting configuration state, since the base class is already doing it (via a call to reset() on cleanup).\n\nThis comment also applies to the method starting on line 589.","commit_id":"e22b28e2fbe17ca5feecb1f4587ea242c503009d"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"bdd19716db3174ee3d7cff01d9e9e7c1863a1586","unresolved":false,"context_lines":[{"line_number":533,"context_line":""},{"line_number":534,"context_line":"    def test_iface_to_br_non_default_timeout(self):"},{"line_number":535,"context_line":"        new_timeout \u003d 5"},{"line_number":536,"context_line":"        old_timeout \u003d cfg.CONF.ovs_vsctl_timeout"},{"line_number":537,"context_line":"        # NOTE(salv-orlando): This is not yet full concurrency-safe,"},{"line_number":538,"context_line":"        # but it\u0027s the best that can be done about it"},{"line_number":539,"context_line":"        cfg.CONF.set_override(\u0027ovs_vsctl_timeout\u0027, new_timeout)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2Fork%3D","line":536,"in_reply_to":"AAAAUH%2F%2FpXQ%3D","updated":"2014-01-10 08:44:58.000000000","message":"I did this because sometimes I am more pedant than usual.\nThe backup of the configuration variable would tolerate an unlikely case in which parallel testing will provide the overriden value to other tests.\nBut this is unlikely, and possibly even harmless in this case.\nAlso, no other unit test worries about this.","commit_id":"e22b28e2fbe17ca5feecb1f4587ea242c503009d"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"d4e22ab0cc362c94c4679f7e7be9ca26dad6b32e","unresolved":false,"context_lines":[{"line_number":533,"context_line":""},{"line_number":534,"context_line":"    def test_iface_to_br_non_default_timeout(self):"},{"line_number":535,"context_line":"        new_timeout \u003d 5"},{"line_number":536,"context_line":"        old_timeout \u003d cfg.CONF.ovs_vsctl_timeout"},{"line_number":537,"context_line":"        # NOTE(salv-orlando): This is not yet full concurrency-safe,"},{"line_number":538,"context_line":"        # but it\u0027s the best that can be done about it"},{"line_number":539,"context_line":"        cfg.CONF.set_override(\u0027ovs_vsctl_timeout\u0027, new_timeout)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FpXQ%3D","line":536,"in_reply_to":"AAAAUH%2F%2FvUU%3D","updated":"2014-01-10 05:37:16.000000000","message":"how about:\nmock.patch.object(cfg.CONF, \u0027ovs_vsctl_timeout\u0027,5) as (_timeout):","commit_id":"e22b28e2fbe17ca5feecb1f4587ea242c503009d"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"027aa79c072748b78a80e1df47aca813280ab666","unresolved":false,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        self.root_helper \u003d \u0027sudo\u0027"},{"line_number":116,"context_line":"        self.br \u003d ovs_lib.OVSBridge(self.BR_NAME, self.root_helper)"},{"line_number":117,"context_line":"        self.execute \u003d mock.patch.object(utils, \"execute\").start()"},{"line_number":118,"context_line":"        self.addCleanup(mock.patch.stopall)"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def test_vifport(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2Fk30%3D","line":117,"updated":"2014-01-10 21:06:42.000000000","message":"We need to start policing better usage of patch() - if the spec parameter is not provided misspelled assert methods will be silently passed over as occurred on line 162.\n\nSo, please fix this line to pass spec\u003dutils.execute to ensure that this does not recur.\n\nReference: See the spec argument documented here: http://docs.python.org/dev/library/unittest.mock#unittest.mock.Mock","commit_id":"90e38b93a6cee7d2b9342ba4e76fb0b0be16ee4b"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"cf01c439e931e55aefe1583eb3fced4dc0ba2755","unresolved":false,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        self.root_helper \u003d \u0027sudo\u0027"},{"line_number":116,"context_line":"        self.br \u003d ovs_lib.OVSBridge(self.BR_NAME, self.root_helper)"},{"line_number":117,"context_line":"        self.execute \u003d mock.patch.object(utils, \"execute\").start()"},{"line_number":118,"context_line":"        self.addCleanup(mock.patch.stopall)"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def test_vifport(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2FkzQ%3D","line":117,"in_reply_to":"AAAAUH%2F%2Fk30%3D","updated":"2014-01-10 21:17:49.000000000","message":"Actually, autospec\u003dTrue makes more sense.","commit_id":"90e38b93a6cee7d2b9342ba4e76fb0b0be16ee4b"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"6dd56e2004183b5b813466cdb7279d396d850c4c","unresolved":false,"context_lines":[{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        self.br.reset_bridge()"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    def _build_timeout_opt(self, exp_timeout\u003dNone):"},{"line_number":156,"context_line":"        return \"--timeout\u003d%d\" % exp_timeout if exp_timeout else self.TO"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    def _test_delete_port(self, exp_timeout\u003dNone):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2FlAY%3D","line":155,"updated":"2014-01-10 20:48:21.000000000","message":"(Suggestion only) exp_timeout can probably be a non-optional parameter here since all callers are providing a value.","commit_id":"90e38b93a6cee7d2b9342ba4e76fb0b0be16ee4b"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"6dd56e2004183b5b813466cdb7279d396d850c4c","unresolved":false,"context_lines":[{"line_number":156,"context_line":"        return \"--timeout\u003d%d\" % exp_timeout if exp_timeout else self.TO"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    def _test_delete_port(self, exp_timeout\u003dNone):"},{"line_number":159,"context_line":"        exp_timeout_str \u003d self._build_timeout_opt(exp_timeout\u003dNone)"},{"line_number":160,"context_line":"        pname \u003d \"tap5\""},{"line_number":161,"context_line":"        self.br.delete_port(pname)"},{"line_number":162,"context_line":"        self.execute.asoptt_called_once_with("}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2FlAg%3D","line":159,"updated":"2014-01-10 20:48:21.000000000","message":"I\u0027m assuming you meant to pass the exp_timeout parameter instead of None?","commit_id":"90e38b93a6cee7d2b9342ba4e76fb0b0be16ee4b"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"d2d34d62378dd8aba7a7a5f9314abbba12b74c6e","unresolved":false,"context_lines":[{"line_number":156,"context_line":"        return \"--timeout\u003d%d\" % exp_timeout if exp_timeout else self.TO"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    def _test_delete_port(self, exp_timeout\u003dNone):"},{"line_number":159,"context_line":"        exp_timeout_str \u003d self._build_timeout_opt(exp_timeout\u003dNone)"},{"line_number":160,"context_line":"        pname \u003d \"tap5\""},{"line_number":161,"context_line":"        self.br.delete_port(pname)"},{"line_number":162,"context_line":"        self.execute.asoptt_called_once_with("}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2Fkk4%3D","line":159,"in_reply_to":"AAAAUH%2F%2FlAg%3D","updated":"2014-01-10 22:13:27.000000000","message":"copy and paste gone wrong","commit_id":"90e38b93a6cee7d2b9342ba4e76fb0b0be16ee4b"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"6dd56e2004183b5b813466cdb7279d396d850c4c","unresolved":false,"context_lines":[{"line_number":159,"context_line":"        exp_timeout_str \u003d self._build_timeout_opt(exp_timeout\u003dNone)"},{"line_number":160,"context_line":"        pname \u003d \"tap5\""},{"line_number":161,"context_line":"        self.br.delete_port(pname)"},{"line_number":162,"context_line":"        self.execute.asoptt_called_once_with("},{"line_number":163,"context_line":"            [\"ovs-vsctl\", exp_timeout_str, \"--\", \"--if-exists\","},{"line_number":164,"context_line":"             \"del-port\", self.BR_NAME, pname],"},{"line_number":165,"context_line":"            root_helper\u003dself.root_helper)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2FlAA%3D","line":162,"updated":"2014-01-10 20:48:21.000000000","message":"asoptt -\u003e assert","commit_id":"90e38b93a6cee7d2b9342ba4e76fb0b0be16ee4b"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"d2d34d62378dd8aba7a7a5f9314abbba12b74c6e","unresolved":false,"context_lines":[{"line_number":159,"context_line":"        exp_timeout_str \u003d self._build_timeout_opt(exp_timeout\u003dNone)"},{"line_number":160,"context_line":"        pname \u003d \"tap5\""},{"line_number":161,"context_line":"        self.br.delete_port(pname)"},{"line_number":162,"context_line":"        self.execute.asoptt_called_once_with("},{"line_number":163,"context_line":"            [\"ovs-vsctl\", exp_timeout_str, \"--\", \"--if-exists\","},{"line_number":164,"context_line":"             \"del-port\", self.BR_NAME, pname],"},{"line_number":165,"context_line":"            root_helper\u003dself.root_helper)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2Fkks%3D","line":162,"in_reply_to":"AAAAUH%2F%2FlAA%3D","updated":"2014-01-10 22:13:27.000000000","message":"I\u0027ve invented a new method!","commit_id":"90e38b93a6cee7d2b9342ba4e76fb0b0be16ee4b"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"6dd56e2004183b5b813466cdb7279d396d850c4c","unresolved":false,"context_lines":[{"line_number":575,"context_line":"        bridges \u003d [\u0027br-int\u0027, \u0027br-ex\u0027]"},{"line_number":576,"context_line":"        root_helper \u003d \u0027sudo\u0027"},{"line_number":577,"context_line":"        self.execute.return_value \u003d \u0027br-int\\nbr-ex\\n\u0027"},{"line_number":578,"context_line":"        timeout_str \u003d \"--timeout\u003d%d\" % exp_timeout if exp_timeout else self.TO"},{"line_number":579,"context_line":"        self.assertEqual(ovs_lib.get_bridges(root_helper), bridges)"},{"line_number":580,"context_line":"        self.execute.assert_called_once_with("},{"line_number":581,"context_line":"            [\"ovs-vsctl\", timeout_str, \"list-br\"],"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2Fk9E%3D","line":578,"updated":"2014-01-10 20:48:21.000000000","message":"This line could use the new helper method.","commit_id":"90e38b93a6cee7d2b9342ba4e76fb0b0be16ee4b"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"6dd56e2004183b5b813466cdb7279d396d850c4c","unresolved":false,"context_lines":[{"line_number":586,"context_line":""},{"line_number":587,"context_line":"    def test_get_bridges_not_default_timeout(self):"},{"line_number":588,"context_line":"        new_timeout \u003d 5"},{"line_number":589,"context_line":"        cfg.CONF.set_override(\u0027ovs_vsctl_timeout\u0027, new_timeout)"},{"line_number":590,"context_line":"        self._test_get_bridges(new_timeout)"},{"line_number":591,"context_line":""},{"line_number":592,"context_line":"    def test_get_local_port_mac_succeeds(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2Fk%2Bc%3D","line":589,"updated":"2014-01-10 20:48:21.000000000","message":"No action required, but I don\u0027t think the original concern about concurrency was warranted.  testr uses multi-process concurrency so as long as tearDown() resets state other tests in a given process will not be affected by configuration changes.","commit_id":"90e38b93a6cee7d2b9342ba4e76fb0b0be16ee4b"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"d2d34d62378dd8aba7a7a5f9314abbba12b74c6e","unresolved":false,"context_lines":[{"line_number":586,"context_line":""},{"line_number":587,"context_line":"    def test_get_bridges_not_default_timeout(self):"},{"line_number":588,"context_line":"        new_timeout \u003d 5"},{"line_number":589,"context_line":"        cfg.CONF.set_override(\u0027ovs_vsctl_timeout\u0027, new_timeout)"},{"line_number":590,"context_line":"        self._test_get_bridges(new_timeout)"},{"line_number":591,"context_line":""},{"line_number":592,"context_line":"    def test_get_local_port_mac_succeeds(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2Fkkg%3D","line":589,"in_reply_to":"AAAAUH%2F%2Fk%2Bc%3D","updated":"2014-01-10 22:13:27.000000000","message":"I did not know if several threads could run tests from the same testcase concurrently. Seems not.","commit_id":"90e38b93a6cee7d2b9342ba4e76fb0b0be16ee4b"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"159a002ae0628f9a370c3458bfab6bdb95f43e1e","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        self.root_helper \u003d \u0027sudo\u0027"},{"line_number":116,"context_line":"        self.br \u003d ovs_lib.OVSBridge(self.BR_NAME, self.root_helper)"},{"line_number":117,"context_line":"        self.execute \u003d mock.patch.object("},{"line_number":118,"context_line":"            utils, \"execute\", spec\u003dutils.execute).start()"},{"line_number":119,"context_line":"        self.addCleanup(mock.patch.stopall)"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    def test_vifport(self):"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2Fkfk%3D","line":118,"updated":"2014-01-10 22:32:11.000000000","message":"I did not use autospec as it caused a TypeError (List is not iterator)","commit_id":"4af2163bd41648d64cf1c3c838990737955d2133"}]}
