)]}'
{"neutron/plugins/hyperv/agent/hyperv_neutron_agent.py":[{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"122d8e0a786b3b7162564da1f4135d3005287f92","unresolved":false,"context_lines":[{"line_number":246,"context_line":""},{"line_number":247,"context_line":"        if network_type \u003d\u003d p_const.TYPE_VLAN:"},{"line_number":248,"context_line":"            self._utils.set_switch_external_port_trunk_vlan(vswitch_name,"},{"line_number":249,"context_line":"                                                            segmentation_id, 5)"},{"line_number":250,"context_line":"        elif network_type \u003d\u003d p_const.TYPE_FLAT:"},{"line_number":251,"context_line":"            #Nothing to do"},{"line_number":252,"context_line":"            pass"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_acfd5cb3","line":249,"updated":"2014-09-11 09:11:00.000000000","message":"you might want to avoid magic values, like 5. Have it as a constant instead. :)","commit_id":"e2517d0088c971b66ea8d37503106d1a3c1a9e5c"}],"neutron/plugins/hyperv/agent/utils.py":[{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"816269aa1f49d88f53aa38512b30ea370e189ff5","unresolved":false,"context_lines":[{"line_number":243,"context_line":"            vlan_endpoint_settings \u003d vlan_endpoint.associators("},{"line_number":244,"context_line":"                wmi_result_class\u003dself._VLAN_ENDPOINT_SET_DATA)[0]"},{"line_number":245,"context_line":"            if vlan_id not in vlan_endpoint_settings.TrunkedVLANList:"},{"line_number":246,"context_line":"                vlan_endpoint_settings.TrunkedVLANList +\u003d (vlan_id,)"},{"line_number":247,"context_line":"                vlan_endpoint_settings.put()"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"    def _get_switch_port_path_by_name(self, switch_port_name):"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa98f980_9144e847","line":246,"updated":"2014-09-14 08:17:57.000000000","message":"Just use the .append() function here rather than constructing a tuple and immediately destroying it.","commit_id":"898f3f53e231387f1b9501f42e69df44d66dedd2"},{"author":{"_account_id":12582,"name":"Simona Iuliana Toader","email":"itoader@cloudbasesolutions.com","username":"itoader"},"change_message_id":"204f9f48da390d893bdd64a2e9b2f53b7f2a85e7","unresolved":false,"context_lines":[{"line_number":243,"context_line":"            vlan_endpoint_settings \u003d vlan_endpoint.associators("},{"line_number":244,"context_line":"                wmi_result_class\u003dself._VLAN_ENDPOINT_SET_DATA)[0]"},{"line_number":245,"context_line":"            if vlan_id not in vlan_endpoint_settings.TrunkedVLANList:"},{"line_number":246,"context_line":"                vlan_endpoint_settings.TrunkedVLANList +\u003d (vlan_id,)"},{"line_number":247,"context_line":"                vlan_endpoint_settings.put()"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"    def _get_switch_port_path_by_name(self, switch_port_name):"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa98f980_9293dca3","line":246,"in_reply_to":"fa98f980_9144e847","updated":"2014-09-16 09:41:42.000000000","message":"Hello,\n\nvlan_endpoint_settings.TrunkedVLANList is a tuple and it doesn\u0027t have the method \u0027append\u0027. Here is the vlan_endpoint_settings wmi object and trying to append a vlan id: \n\n\u003e\u003e\u003e type(vlan_endpoint_settings.TrunkedVLANList)\n\u003ctype \u0027tuple\u0027\u003e\n\u003e\u003e\u003e vlan_endpoint_settings.TrunkedVLANList.append(5)\nTraceback (most recent call last):\n  File \"\u003cstdin\u003e\", line 1, in \u003cmodule\u003e\nAttributeError: \u0027tuple\u0027 object has no attribute \u0027append\u0027","commit_id":"898f3f53e231387f1b9501f42e69df44d66dedd2"}],"neutron/plugins/hyperv/common/constants.py":[{"author":{"_account_id":12737,"name":"Jacek Swiderski","email":"jacek.swiderski@codilime.com","username":"Altran"},"change_message_id":"d96e6d01a5667ddc998aaadd15821380d5243cff","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# Special vlan_id value in ovs_vlan_allocations table indicating flat network"},{"line_number":21,"context_line":"FLAT_VLAN_ID \u003d -1"},{"line_number":22,"context_line":"ACCESS_ENDPOINT_MODE \u003d 2"},{"line_number":23,"context_line":"TRUNK_ENDPOINT_MODE \u003d 5"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa98f980_e0001c68","line":22,"updated":"2014-09-12 12:41:52.000000000","message":"I think this isn\u0027t used anywhere ?","commit_id":"898f3f53e231387f1b9501f42e69df44d66dedd2"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"816269aa1f49d88f53aa38512b30ea370e189ff5","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# Special vlan_id value in ovs_vlan_allocations table indicating flat network"},{"line_number":21,"context_line":"FLAT_VLAN_ID \u003d -1"},{"line_number":22,"context_line":"ACCESS_ENDPOINT_MODE \u003d 2"},{"line_number":23,"context_line":"TRUNK_ENDPOINT_MODE \u003d 5"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa98f980_7149445f","line":22,"in_reply_to":"fa98f980_e0001c68","updated":"2014-09-14 08:17:57.000000000","message":"+1\nI only see references to TRUNK_ENDPOINT_MODE.","commit_id":"898f3f53e231387f1b9501f42e69df44d66dedd2"}],"neutron/tests/unit/hyperv/test_hyperv_neutron_agent.py":[{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"1a5e79a324a660c8d54e1be416d6cd752b0512e1","unresolved":false,"context_lines":[{"line_number":243,"context_line":"        mock_get_vswitch_name.assert_called_once_with(p_const.TYPE_VLAN,"},{"line_number":244,"context_line":"            mock.sentinel.FAKE_PHYSICAL_NETWORK)"},{"line_number":245,"context_line":"        self.agent._utils.set_switch_external_port_to_trunk(vswitch_name,"},{"line_number":246,"context_line":"            mock.sentinel.FAKE_SEGMENTATION_ID)"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"    @mock.patch.object(hyperv_neutron_agent.HyperVNeutronAgent,"},{"line_number":249,"context_line":"                       \"_get_vswitch_name\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa98f980_24f1c695","line":246,"updated":"2014-09-18 13:08:45.000000000","message":"do you mean assert_called_once_with?","commit_id":"24d69f1c70585d3b753888b5182424ec8408baa1"}],"neutron/tests/unit/hyperv/test_hyperv_utils.py":[{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"122d8e0a786b3b7162564da1f4135d3005287f92","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":14,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":15,"context_line":"#    under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import mock"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from neutron.plugins.hyperv.agent import utils"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_aceb9cda","line":16,"updated":"2014-09-11 09:11:00.000000000","message":"you could add a docstring here:\n\n\"\"\"\n\nUnit tests for the Hyper-V Utils class.\n\n\"\"\"","commit_id":"e2517d0088c971b66ea8d37503106d1a3c1a9e5c"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"122d8e0a786b3b7162564da1f4135d3005287f92","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    @mock.patch.object(utils.HyperVUtils, \"_get_vswitch_external_port\")"},{"line_number":30,"context_line":"    @mock.patch.object(utils.HyperVUtils, \"_get_vswitch\")"},{"line_number":31,"context_line":"    def _check_set_switch_ext_port_trunk_vlan(self, mock_get_vswitch,"},{"line_number":32,"context_line":"            mock_get_vswitch_external_port, vlan_id, desired_endpoint_mode,"},{"line_number":33,"context_line":"            trunked_list):"},{"line_number":34,"context_line":"        vswitch \u003d mock_get_vswitch.return_value"},{"line_number":35,"context_line":"        vswitch_external_port \u003d mock_get_vswitch_external_port.return_value"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_8c73384d","line":32,"updated":"2014-09-11 09:11:00.000000000","message":"I noticed in all tests you pass vlan_id\u003d500.\n\nThat being so, I\u0027d say you could remove that parameter, since it\u0027s not really useful.","commit_id":"e2517d0088c971b66ea8d37503106d1a3c1a9e5c"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"122d8e0a786b3b7162564da1f4135d3005287f92","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        vlan_endpoint.associators.assert_called_with("},{"line_number":51,"context_line":"            wmi_result_class\u003dself.utils._VLAN_ENDPOINT_SET_DATA)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        self.assertEqual(desired_endpoint_mode,"},{"line_number":54,"context_line":"                         vlan_endpoint.DesiredEndpointMode)"},{"line_number":55,"context_line":"        self.assertIn(vlan_id, vlan_endpoint_settings.TrunkedVLANList)"},{"line_number":56,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_ec7f64de","line":53,"updated":"2014-09-11 09:11:00.000000000","message":"Hmm, this assert will always be True. on L37, you set:\n\nvlan_endpoint.DesiredEndpointMode \u003d desired_endpoint_mode\n\nand then, you call:\n\nself.utils.set_switch_external_port_trunk_vlan(...desired_endpoint_mode)\n\nwhich will check if vlan_endpoint.DesiredEndpointMode !\u003d desired_endpoint_mode (always False).\n\nLong story short, it is never tested if vlan_endpoint.DesiredEndpointMode is set within the utils method.","commit_id":"e2517d0088c971b66ea8d37503106d1a3c1a9e5c"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"122d8e0a786b3b7162564da1f4135d3005287f92","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        mock_get_vswitch_external_port.return_value \u003d None"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        self.utils.set_switch_external_port_trunk_vlan("},{"line_number":65,"context_line":"            mock.sentinel.FAKE_VSWITCH_NAME, 500, 5)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        mock_get_vswitch.assert_called_with(mock.sentinel.FAKE_VSWITCH_NAME)"},{"line_number":68,"context_line":"        mock_get_vswitch_external_port.assert_called_with(vswitch)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_eccda432","line":65,"updated":"2014-09-11 09:11:00.000000000","message":"no magic values. :)\n\nfor the vlan_id, you might want to have it as a constant, self.FAKE_VLAN_ID.\n\nditto for the rest of the values below.","commit_id":"e2517d0088c971b66ea8d37503106d1a3c1a9e5c"}]}
