)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"6bd0b6a1e36cb9112a1ff6dc0be4b908ec1493c5","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Moves OVS related code to a common location"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In order to a OVS vif driver for HyperV some OVS related"},{"line_number":10,"context_line":"code (methods for creating bridges etc.) must be moved"},{"line_number":11,"context_line":"to a common location."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"3a50d1a3_d0ac30a1","line":9,"updated":"2015-07-28 11:05:25.000000000","message":"In order for an OVS*","commit_id":"59fe101353d4730ff1fee14c9b6cd7285e0d5a9f"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"6bd0b6a1e36cb9112a1ff6dc0be4b908ec1493c5","unresolved":false,"context_lines":[{"line_number":11,"context_line":"to a common location."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"A new method to check if a bridge contains a specified device"},{"line_number":14,"context_line":"has been added."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I5215d16ebd65e90bf0aa278c6cb54bda8f8a3fdb"},{"line_number":17,"context_line":"Partially Implements: blueprint hyper-v-ovs-vif"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"3a50d1a3_10a7f8bd","line":14,"updated":"2015-07-28 11:05:25.000000000","message":"you could add the name of the method, so it is easier to find.","commit_id":"59fe101353d4730ff1fee14c9b6cd7285e0d5a9f"}],"nova/network/linux_net.py":[{"author":{"_account_id":15130,"name":"Sonu","email":"sonu.sudhakaran@gmail.com","username":"sonu"},"change_message_id":"aa6d1c2efee3f8ccf20ba15dd0eb9fa6170a14f4","unresolved":false,"context_lines":[{"line_number":1323,"context_line":"    return cmd"},{"line_number":1324,"context_line":""},{"line_number":1325,"context_line":""},{"line_number":1326,"context_line":"def _create_veth_pair(dev1_name, dev2_name):"},{"line_number":1327,"context_line":"    \"\"\"Create a pair of veth devices with the specified names,"},{"line_number":1328,"context_line":"    deleting any previous devices with those names."},{"line_number":1329,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":14,"id":"9a8ffd7b_1d0152af","line":1326,"updated":"2015-11-27 06:29:52.000000000","message":"uncommon way of deleting existing objects in a create function. Ideally, it should be passed as a parameter to like what OS asks, overwrite existing.\nElse the name should be _create_new_veth_pair(..)","commit_id":"cd3c0a3fff912e1e1e94a045439484f3a680231d"},{"author":{"_account_id":12604,"name":"Adelina Tuvenie","email":"atuvenie@cloudbasesolutions.com","username":"atuvenie"},"change_message_id":"b82b05597c1eac3498706685527e8cccd89fadc6","unresolved":false,"context_lines":[{"line_number":1323,"context_line":"    return cmd"},{"line_number":1324,"context_line":""},{"line_number":1325,"context_line":""},{"line_number":1326,"context_line":"def _create_veth_pair(dev1_name, dev2_name):"},{"line_number":1327,"context_line":"    \"\"\"Create a pair of veth devices with the specified names,"},{"line_number":1328,"context_line":"    deleting any previous devices with those names."},{"line_number":1329,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":14,"id":"7a740942_edc7ec95","line":1326,"in_reply_to":"9a8ffd7b_1d0152af","updated":"2015-12-08 09:58:03.000000000","message":"This patch only deals with moving some methods from linux_net to a common location to be used by both linux and windows. The implementation of this method is object of this patch.","commit_id":"cd3c0a3fff912e1e1e94a045439484f3a680231d"}],"nova/network/net_common.py":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"52041257fafd6590e381767b6c0f9e250e9111b1","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2015 Cloudbase Solutions Srl"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a8ffd7b_66a47807","line":1,"updated":"2015-11-27 14:47:16.000000000","message":"This is false, you moved already defined function and so you should to reuse copyright","commit_id":"cd3c0a3fff912e1e1e94a045439484f3a680231d"},{"author":{"_account_id":12604,"name":"Adelina Tuvenie","email":"atuvenie@cloudbasesolutions.com","username":"atuvenie"},"change_message_id":"b82b05597c1eac3498706685527e8cccd89fadc6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2015 Cloudbase Solutions Srl"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":14,"id":"7a740942_0d5b58f7","line":1,"in_reply_to":"9a8ffd7b_66a47807","updated":"2015-12-08 09:58:03.000000000","message":"Fair point.","commit_id":"cd3c0a3fff912e1e1e94a045439484f3a680231d"},{"author":{"_account_id":15130,"name":"Sonu","email":"sonu.sudhakaran@gmail.com","username":"sonu"},"change_message_id":"aa6d1c2efee3f8ccf20ba15dd0eb9fa6170a14f4","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import os"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from oslo_concurrency import processutils"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a8ffd7b_7828ace2","line":15,"updated":"2015-11-27 06:29:52.000000000","message":"Just a clarification, this module is created to separate out all utility functions related to linux networking.","commit_id":"cd3c0a3fff912e1e1e94a045439484f3a680231d"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"334addb03128b3ea6684ea121145025b95255773","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import os"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from oslo_concurrency import processutils"}],"source_content_type":"text/x-python","patch_set":14,"id":"7a740942_a9687122","line":15,"in_reply_to":"7a740942_cdf79089","updated":"2015-12-10 11:18:39.000000000","message":"which kind of errors ?","commit_id":"cd3c0a3fff912e1e1e94a045439484f3a680231d"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"52041257fafd6590e381767b6c0f9e250e9111b1","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import os"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from oslo_concurrency import processutils"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a8ffd7b_a677c09e","line":15,"in_reply_to":"9a8ffd7b_7828ace2","updated":"2015-11-27 14:47:16.000000000","message":"It\u0027s not net_common, it\u0027s clearly related to linux and should to stay in linux_net. what is problem if ovs is importing linux_net ?","commit_id":"cd3c0a3fff912e1e1e94a045439484f3a680231d"},{"author":{"_account_id":12604,"name":"Adelina Tuvenie","email":"atuvenie@cloudbasesolutions.com","username":"atuvenie"},"change_message_id":"b82b05597c1eac3498706685527e8cccd89fadc6","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import os"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from oslo_concurrency import processutils"}],"source_content_type":"text/x-python","patch_set":14,"id":"7a740942_cdf79089","line":15,"in_reply_to":"9a8ffd7b_a677c09e","updated":"2015-12-08 09:58:03.000000000","message":"The original idea was to use the already existing ovs methods on windows as well. importing linux_net on windows will result in failure and such, all the methods used by the ovs module have been moved in a common location.","commit_id":"cd3c0a3fff912e1e1e94a045439484f3a680231d"}],"nova/network/ovs_utils.py":[{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"6bd0b6a1e36cb9112a1ff6dc0be4b908ec1493c5","unresolved":false,"context_lines":[{"line_number":35,"context_line":"CONF.register_opts(ovs_cfg)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"def _ovs_vsctl(args, run_as_root\u003dTrue):"},{"line_number":39,"context_line":"    full_args \u003d [\u0027ovs-vsctl\u0027, \u0027--timeout\u003d%s\u0027 % CONF.ovs_vsctl_timeout] + args"},{"line_number":40,"context_line":"    try:"},{"line_number":41,"context_line":"        return utils.execute(*full_args, run_as_root\u003drun_as_root)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a50d1a3_50b82011","line":38,"updated":"2015-07-28 11:05:25.000000000","message":"Having a \u0027_\u0027 would make this method private by convention, but this method is still being used in other modules. Remove the \u0027_\u0027?","commit_id":"59fe101353d4730ff1fee14c9b6cd7285e0d5a9f"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"52041257fafd6590e381767b6c0f9e250e9111b1","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2015 Cloudbase Solutions Srl"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a8ffd7b_4695b484","line":1,"updated":"2015-11-27 14:47:16.000000000","message":"This is false, you moved code and so you should to reuse copyright. IMHO this line should be simply removed.","commit_id":"cd3c0a3fff912e1e1e94a045439484f3a680231d"},{"author":{"_account_id":12604,"name":"Adelina Tuvenie","email":"atuvenie@cloudbasesolutions.com","username":"atuvenie"},"change_message_id":"b82b05597c1eac3498706685527e8cccd89fadc6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2015 Cloudbase Solutions Srl"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":14,"id":"7a740942_6d477cbc","line":1,"in_reply_to":"9a8ffd7b_4695b484","updated":"2015-12-08 09:58:03.000000000","message":"Fair point.","commit_id":"cd3c0a3fff912e1e1e94a045439484f3a680231d"},{"author":{"_account_id":15130,"name":"Sonu","email":"sonu.sudhakaran@gmail.com","username":"sonu"},"change_message_id":"aa6d1c2efee3f8ccf20ba15dd0eb9fa6170a14f4","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                  {\u0027cmd\u0027: full_args, \u0027exception\u0027: e})"},{"line_number":45,"context_line":"        raise exception.AgentError(method\u003dfull_args)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"def create_ovs_vif_port(bridge, dev, iface_id, mac, instance_id, set_mtu\u003dTrue,"},{"line_number":49,"context_line":"                        run_as_root\u003dTrue):"},{"line_number":50,"context_line":"    ovs_vsctl([\u0027--\u0027, \u0027--if-exists\u0027, \u0027del-port\u0027, dev, \u0027--\u0027,"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a8ffd7b_f8b7bcd5","line":47,"updated":"2015-11-27 06:29:52.000000000","message":"Ideally, mtu setting should be carried out from the caller. MTU setting is not a property to be handled in OVS. Please correct me if I am wrong.\n\nI would prefer no dependency between ovs_util and netcommon module, since they exist as utility modules. If the functions in these two modules can be called directly from the linux_net, it would be nice.","commit_id":"cd3c0a3fff912e1e1e94a045439484f3a680231d"},{"author":{"_account_id":12604,"name":"Adelina Tuvenie","email":"atuvenie@cloudbasesolutions.com","username":"atuvenie"},"change_message_id":"b82b05597c1eac3498706685527e8cccd89fadc6","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                  {\u0027cmd\u0027: full_args, \u0027exception\u0027: e})"},{"line_number":45,"context_line":"        raise exception.AgentError(method\u003dfull_args)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"def create_ovs_vif_port(bridge, dev, iface_id, mac, instance_id, set_mtu\u003dTrue,"},{"line_number":49,"context_line":"                        run_as_root\u003dTrue):"},{"line_number":50,"context_line":"    ovs_vsctl([\u0027--\u0027, \u0027--if-exists\u0027, \u0027del-port\u0027, dev, \u0027--\u0027,"}],"source_content_type":"text/x-python","patch_set":14,"id":"7a740942_4d8080c0","line":47,"in_reply_to":"9a8ffd7b_f8b7bcd5","updated":"2015-12-08 09:58:03.000000000","message":"The specific implementation of these methods is not the object of this patch. This patch simply moves the methods from linux_net to a common location so that they can be imported in windows as well.","commit_id":"cd3c0a3fff912e1e1e94a045439484f3a680231d"},{"author":{"_account_id":15130,"name":"Sonu","email":"sonu.sudhakaran@gmail.com","username":"sonu"},"change_message_id":"aa6d1c2efee3f8ccf20ba15dd0eb9fa6170a14f4","unresolved":false,"context_lines":[{"line_number":62,"context_line":"def delete_ovs_vif_port(bridge, dev, delete_net_dev\u003dTrue, run_as_root\u003dTrue):"},{"line_number":63,"context_line":"    ovs_vsctl([\u0027--\u0027, \u0027--if-exists\u0027, \u0027del-port\u0027, bridge, dev],"},{"line_number":64,"context_line":"              run_as_root\u003drun_as_root)"},{"line_number":65,"context_line":"    if delete_net_dev is True:"},{"line_number":66,"context_line":"        net_common.delete_net_dev(dev)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"9a8ffd7b_b832945c","line":65,"updated":"2015-11-27 06:29:52.000000000","message":"Same comment as above. net dev related should be called from the linux_net module. ovs util should have no dependency on netcommon.","commit_id":"cd3c0a3fff912e1e1e94a045439484f3a680231d"},{"author":{"_account_id":12604,"name":"Adelina Tuvenie","email":"atuvenie@cloudbasesolutions.com","username":"atuvenie"},"change_message_id":"b82b05597c1eac3498706685527e8cccd89fadc6","unresolved":false,"context_lines":[{"line_number":62,"context_line":"def delete_ovs_vif_port(bridge, dev, delete_net_dev\u003dTrue, run_as_root\u003dTrue):"},{"line_number":63,"context_line":"    ovs_vsctl([\u0027--\u0027, \u0027--if-exists\u0027, \u0027del-port\u0027, bridge, dev],"},{"line_number":64,"context_line":"              run_as_root\u003drun_as_root)"},{"line_number":65,"context_line":"    if delete_net_dev is True:"},{"line_number":66,"context_line":"        net_common.delete_net_dev(dev)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"7a740942_edce0c2c","line":65,"in_reply_to":"9a8ffd7b_b832945c","updated":"2015-12-08 09:58:03.000000000","message":"same reply as above","commit_id":"cd3c0a3fff912e1e1e94a045439484f3a680231d"}],"nova/tests/unit/network/test_ovs_utils.py":[{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"100504fde9122f6c66e1008de33d9d7acc0cd9b2","unresolved":false,"context_lines":[{"line_number":84,"context_line":"                           \u0027del-port\u0027, \u0027fake-bridge\u0027, \u0027fake-dev\u0027,"},{"line_number":85,"context_line":"                            run_as_root\u003dTrue),"},{"line_number":86,"context_line":"                 mock.call(\u0027ip\u0027, \u0027link\u0027, \u0027delete\u0027, \u0027fake-dev\u0027,"},{"line_number":87,"context_line":"                          run_as_root\u003dTrue, check_exit_code\u003d[0, 2, 254])"},{"line_number":88,"context_line":"                ]"},{"line_number":89,"context_line":"        self._delete_ovs_vif_port(calls)"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3acd31a7_d847bf49","line":87,"updated":"2015-05-04 13:28:14.000000000","message":"one more space to match indentation with \u0027ip\u0027","commit_id":"93443c034c3ea7e6c66a73fd85ac5702654de475"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"100504fde9122f6c66e1008de33d9d7acc0cd9b2","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        calls \u003d [mock.call(\u0027ovs-vsctl\u0027, \u0027--timeout\u003d120\u0027, \u0027--\u0027, \u0027list-ports\u0027,"},{"line_number":110,"context_line":"                           \u0027fake-bridge\u0027, run_as_root\u003dTrue)]"},{"line_number":111,"context_line":"        self._test_check_bridge_has_dev(dev\u003d\u0027fake-dev1\u0027, expected_value\u003dTrue,"},{"line_number":112,"context_line":"                                      calls\u003dcalls)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def test_check_bridge_has_dev_false(self):"},{"line_number":115,"context_line":"        calls \u003d [mock.call(\u0027ovs-vsctl\u0027, \u0027--timeout\u003d120\u0027, \u0027--\u0027, \u0027list-ports\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3acd31a7_780aeb22","line":112,"updated":"2015-05-04 13:28:14.000000000","message":"need 2 spaces to match indentation of dev\u003d...","commit_id":"93443c034c3ea7e6c66a73fd85ac5702654de475"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"100504fde9122f6c66e1008de33d9d7acc0cd9b2","unresolved":false,"context_lines":[{"line_number":114,"context_line":"    def test_check_bridge_has_dev_false(self):"},{"line_number":115,"context_line":"        calls \u003d [mock.call(\u0027ovs-vsctl\u0027, \u0027--timeout\u003d120\u0027, \u0027--\u0027, \u0027list-ports\u0027,"},{"line_number":116,"context_line":"                           \u0027fake-bridge\u0027, run_as_root\u003dTrue)]"},{"line_number":117,"context_line":"        self._test_check_bridge_has_dev(dev\u003d\u0027fake-dev2\u0027, expected_value\u003dFalse,"},{"line_number":118,"context_line":"                                      calls\u003dcalls)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3acd31a7_580def35","line":117,"updated":"2015-05-04 13:28:14.000000000","message":"ditto","commit_id":"93443c034c3ea7e6c66a73fd85ac5702654de475"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"306e02e2952fd306b2ca95dd7c6786267998720b","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class OVSUtilsTestCase(test.NoDBTestCase):"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def setUp(self):"},{"line_number":27,"context_line":"        super(OVSUtilsTestCase, self).setUp()"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def _create_ovs_vif_port(self, calls):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a016987_2452e735","line":26,"updated":"2015-05-29 15:04:50.000000000","message":"useless setUp","commit_id":"501855b97cd3567b036a11f02145debc8d08b252"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"306e02e2952fd306b2ca95dd7c6786267998720b","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def test_create_ovs_vif_port(self):"},{"line_number":44,"context_line":"        calls \u003d ["},{"line_number":45,"context_line":"                mock.call(\u0027ovs-vsctl\u0027, \u0027--timeout\u003d120\u0027, \u0027--\u0027, \u0027--if-exists\u0027,"},{"line_number":46,"context_line":"                          \u0027del-port\u0027, \u0027fake-dev\u0027, \u0027--\u0027, \u0027add-port\u0027,"},{"line_number":47,"context_line":"                          \u0027fake-bridge\u0027, \u0027fake-dev\u0027,"},{"line_number":48,"context_line":"                          \u0027--\u0027, \u0027set\u0027, \u0027Interface\u0027, \u0027fake-dev\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a016987_f7e9231b","line":45,"updated":"2015-05-29 15:04:50.000000000","message":"overkill nit: this could be put on the previous line. Afterwards, all the block bellow will have to be indented accordingly.","commit_id":"501855b97cd3567b036a11f02145debc8d08b252"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"306e02e2952fd306b2ca95dd7c6786267998720b","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    def test_create_ovs_vif_port_with_mtu(self):"},{"line_number":58,"context_line":"        self.flags(network_device_mtu\u003d10000)"},{"line_number":59,"context_line":"        calls \u003d ["},{"line_number":60,"context_line":"                mock.call(\u0027ovs-vsctl\u0027, \u0027--timeout\u003d120\u0027, \u0027--\u0027, \u0027--if-exists\u0027,"},{"line_number":61,"context_line":"                          \u0027del-port\u0027, \u0027fake-dev\u0027, \u0027--\u0027, \u0027add-port\u0027,"},{"line_number":62,"context_line":"                          \u0027fake-bridge\u0027, \u0027fake-dev\u0027,"},{"line_number":63,"context_line":"                          \u0027--\u0027, \u0027set\u0027, \u0027Interface\u0027, \u0027fake-dev\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a016987_b7ef2b1c","line":60,"updated":"2015-05-29 15:04:50.000000000","message":"ditto","commit_id":"501855b97cd3567b036a11f02145debc8d08b252"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"306e02e2952fd306b2ca95dd7c6786267998720b","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def test_ovs_set_vhostuser_type(self):"},{"line_number":92,"context_line":"        calls \u003d ["},{"line_number":93,"context_line":"                 mock.call(\u0027ovs-vsctl\u0027, \u0027--timeout\u003d120\u0027, \u0027--\u0027, \u0027set\u0027,"},{"line_number":94,"context_line":"                           \u0027Interface\u0027, \u0027fake-dev\u0027, \u0027type\u003ddpdkvhostuser\u0027,"},{"line_number":95,"context_line":"                           run_as_root\u003dTrue)"},{"line_number":96,"context_line":"                 ]"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a016987_640a1f28","line":93,"updated":"2015-05-29 15:04:50.000000000","message":"ditto","commit_id":"501855b97cd3567b036a11f02145debc8d08b252"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"6bd0b6a1e36cb9112a1ff6dc0be4b908ec1493c5","unresolved":false,"context_lines":[{"line_number":24,"context_line":"class OVSUtilsTestCase(test.NoDBTestCase):"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def setUp(self):"},{"line_number":27,"context_line":"        super(OVSUtilsTestCase, self).setUp()"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def _create_ovs_vif_port(self, calls):"},{"line_number":30,"context_line":"        with mock.patch.object(utils, \u0027execute\u0027, return_value\u003d(\u0027\u0027, \u0027\u0027)) as ex:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a50d1a3_7042fc3f","line":27,"updated":"2015-07-28 11:05:25.000000000","message":"this setUp doesn\u0027t really do anything. Can be removed.","commit_id":"59fe101353d4730ff1fee14c9b6cd7285e0d5a9f"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"6bd0b6a1e36cb9112a1ff6dc0be4b908ec1493c5","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def test_create_ovs_vif_port(self):"},{"line_number":44,"context_line":"        calls \u003d ["},{"line_number":45,"context_line":"                mock.call(\u0027ovs-vsctl\u0027, \u0027--timeout\u003d120\u0027, \u0027--\u0027, \u0027--if-exists\u0027,"},{"line_number":46,"context_line":"                          \u0027del-port\u0027, \u0027fake-dev\u0027, \u0027--\u0027, \u0027add-port\u0027,"},{"line_number":47,"context_line":"                          \u0027fake-bridge\u0027, \u0027fake-dev\u0027,"},{"line_number":48,"context_line":"                          \u0027--\u0027, \u0027set\u0027, \u0027Interface\u0027, \u0027fake-dev\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a50d1a3_10d93857","line":45,"updated":"2015-07-28 11:05:25.000000000","message":"I know this moves the code from a file to this, but some indentation could be fixed, IMO. this can be moved into the previous line.","commit_id":"59fe101353d4730ff1fee14c9b6cd7285e0d5a9f"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"6bd0b6a1e36cb9112a1ff6dc0be4b908ec1493c5","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    def test_create_ovs_vif_port_with_mtu(self):"},{"line_number":58,"context_line":"        self.flags(network_device_mtu\u003d10000)"},{"line_number":59,"context_line":"        calls \u003d ["},{"line_number":60,"context_line":"                mock.call(\u0027ovs-vsctl\u0027, \u0027--timeout\u003d120\u0027, \u0027--\u0027, \u0027--if-exists\u0027,"},{"line_number":61,"context_line":"                          \u0027del-port\u0027, \u0027fake-dev\u0027, \u0027--\u0027, \u0027add-port\u0027,"},{"line_number":62,"context_line":"                          \u0027fake-bridge\u0027, \u0027fake-dev\u0027,"},{"line_number":63,"context_line":"                          \u0027--\u0027, \u0027set\u0027, \u0027Interface\u0027, \u0027fake-dev\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a50d1a3_b0d96458","line":60,"updated":"2015-07-28 11:05:25.000000000","message":"ditto.","commit_id":"59fe101353d4730ff1fee14c9b6cd7285e0d5a9f"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"6bd0b6a1e36cb9112a1ff6dc0be4b908ec1493c5","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def test_ovs_set_vhostuser_type(self):"},{"line_number":92,"context_line":"        calls \u003d ["},{"line_number":93,"context_line":"                 mock.call(\u0027ovs-vsctl\u0027, \u0027--timeout\u003d120\u0027, \u0027--\u0027, \u0027set\u0027,"},{"line_number":94,"context_line":"                           \u0027Interface\u0027, \u0027fake-dev\u0027, \u0027type\u003ddpdkvhostuser\u0027,"},{"line_number":95,"context_line":"                           run_as_root\u003dTrue)"},{"line_number":96,"context_line":"                 ]"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a50d1a3_3000f4aa","line":93,"updated":"2015-07-28 11:05:25.000000000","message":"ditto.","commit_id":"59fe101353d4730ff1fee14c9b6cd7285e0d5a9f"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"ff36885182ea1141a3c109ca88ddc4d2a0140c27","unresolved":false,"context_lines":[{"line_number":24,"context_line":"class OVSUtilsTestCase(test.NoDBTestCase):"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def setUp(self):"},{"line_number":27,"context_line":"        super(OVSUtilsTestCase, self).setUp()"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def _create_ovs_vif_port(self, calls):"},{"line_number":30,"context_line":"        with mock.patch.object(utils, \u0027execute\u0027, return_value\u003d(\u0027\u0027, \u0027\u0027)) as ex:"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba8a016a_9726e6cc","line":27,"updated":"2015-11-17 11:36:00.000000000","message":"unneeded setUp...","commit_id":"cd3c0a3fff912e1e1e94a045439484f3a680231d"},{"author":{"_account_id":12604,"name":"Adelina Tuvenie","email":"atuvenie@cloudbasesolutions.com","username":"atuvenie"},"change_message_id":"b82b05597c1eac3498706685527e8cccd89fadc6","unresolved":false,"context_lines":[{"line_number":24,"context_line":"class OVSUtilsTestCase(test.NoDBTestCase):"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def setUp(self):"},{"line_number":27,"context_line":"        super(OVSUtilsTestCase, self).setUp()"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def _create_ovs_vif_port(self, calls):"},{"line_number":30,"context_line":"        with mock.patch.object(utils, \u0027execute\u0027, return_value\u003d(\u0027\u0027, \u0027\u0027)) as ex:"}],"source_content_type":"text/x-python","patch_set":14,"id":"7a740942_0da2784b","line":27,"in_reply_to":"ba8a016a_9726e6cc","updated":"2015-12-08 09:58:03.000000000","message":"Done","commit_id":"cd3c0a3fff912e1e1e94a045439484f3a680231d"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"74a40c3256360e9319ebfa8015dc5dabc49485a2","unresolved":false,"context_lines":[{"line_number":34,"context_line":"            ex.assert_has_calls(calls)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def _delete_ovs_vif_port(self, calls):"},{"line_number":37,"context_line":"        with mock.patch.object(utils, \u0027execute\u0027, return_value\u003d(\u0027\u0027, \u0027 \u0027)) as ex:"},{"line_number":38,"context_line":"            with mock.patch.object(net_common, \u0027device_exists\u0027,"},{"line_number":39,"context_line":"                                   return_value\u003dTrue):"},{"line_number":40,"context_line":"                ovs_utils.delete_ovs_vif_port(\u0027fake-bridge\u0027, \u0027fake-dev\u0027)"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba8a016a_82c0e62b","line":37,"updated":"2015-11-17 11:50:24.000000000","message":"Why not simply mock utils.execute in setUp?","commit_id":"cd3c0a3fff912e1e1e94a045439484f3a680231d"},{"author":{"_account_id":12604,"name":"Adelina Tuvenie","email":"atuvenie@cloudbasesolutions.com","username":"atuvenie"},"change_message_id":"b82b05597c1eac3498706685527e8cccd89fadc6","unresolved":false,"context_lines":[{"line_number":34,"context_line":"            ex.assert_has_calls(calls)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def _delete_ovs_vif_port(self, calls):"},{"line_number":37,"context_line":"        with mock.patch.object(utils, \u0027execute\u0027, return_value\u003d(\u0027\u0027, \u0027 \u0027)) as ex:"},{"line_number":38,"context_line":"            with mock.patch.object(net_common, \u0027device_exists\u0027,"},{"line_number":39,"context_line":"                                   return_value\u003dTrue):"},{"line_number":40,"context_line":"                ovs_utils.delete_ovs_vif_port(\u0027fake-bridge\u0027, \u0027fake-dev\u0027)"}],"source_content_type":"text/x-python","patch_set":14,"id":"7a740942_cd2470c6","line":37,"in_reply_to":"ba8a016a_82c0e62b","updated":"2015-12-08 09:58:03.000000000","message":"I\u0027m trying to preserve as much of the original tests as possible given I just move them from test_linux_net to here.","commit_id":"cd3c0a3fff912e1e1e94a045439484f3a680231d"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"74a40c3256360e9319ebfa8015dc5dabc49485a2","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def test_create_ovs_vif_port(self):"},{"line_number":44,"context_line":"        calls \u003d ["},{"line_number":45,"context_line":"                mock.call(\u0027ovs-vsctl\u0027, \u0027--timeout\u003d120\u0027, \u0027--\u0027, \u0027--if-exists\u0027,"},{"line_number":46,"context_line":"                          \u0027del-port\u0027, \u0027fake-dev\u0027, \u0027--\u0027, \u0027add-port\u0027,"},{"line_number":47,"context_line":"                          \u0027fake-bridge\u0027, \u0027fake-dev\u0027,"},{"line_number":48,"context_line":"                          \u0027--\u0027, \u0027set\u0027, \u0027Interface\u0027, \u0027fake-dev\u0027,"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba8a016a_6277023b","line":45,"updated":"2015-11-17 11:50:24.000000000","message":"This could be moved to the test helper.","commit_id":"cd3c0a3fff912e1e1e94a045439484f3a680231d"},{"author":{"_account_id":12604,"name":"Adelina Tuvenie","email":"atuvenie@cloudbasesolutions.com","username":"atuvenie"},"change_message_id":"b82b05597c1eac3498706685527e8cccd89fadc6","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def test_create_ovs_vif_port(self):"},{"line_number":44,"context_line":"        calls \u003d ["},{"line_number":45,"context_line":"                mock.call(\u0027ovs-vsctl\u0027, \u0027--timeout\u003d120\u0027, \u0027--\u0027, \u0027--if-exists\u0027,"},{"line_number":46,"context_line":"                          \u0027del-port\u0027, \u0027fake-dev\u0027, \u0027--\u0027, \u0027add-port\u0027,"},{"line_number":47,"context_line":"                          \u0027fake-bridge\u0027, \u0027fake-dev\u0027,"},{"line_number":48,"context_line":"                          \u0027--\u0027, \u0027set\u0027, \u0027Interface\u0027, \u0027fake-dev\u0027,"}],"source_content_type":"text/x-python","patch_set":14,"id":"7a740942_4dc3a0ed","line":45,"in_reply_to":"ba8a016a_6277023b","updated":"2015-12-08 09:58:03.000000000","message":"I\u0027m not sure I follow?","commit_id":"cd3c0a3fff912e1e1e94a045439484f3a680231d"}]}
