)]}'
{"openstack_dashboard/api/neutron.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"67b5e37edd247d84019e539dd009740f6e381225","unresolved":false,"context_lines":[{"line_number":551,"context_line":"    if net.n1kv__profile_id:"},{"line_number":552,"context_line":"        net.profile_id \u003d net.n1kv__profile_id"},{"line_number":553,"context_line":"    else:"},{"line_number":554,"context_line":"        net.profile_id \u003d False"},{"line_number":555,"context_line":""},{"line_number":556,"context_line":"    return net"},{"line_number":557,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"9aa7fdbe_512482ae","line":554,"updated":"2014-10-23 17:05:55.000000000","message":"I would like not to see unknown attribute when net profile is not supported. Please consider setting profile_id only when it is defined. It is an extension-specific attribute.\n\n  if net.n1kv__profile_id:\n      net.profile_id \u003d net.n1kv__profile_id\n\nAt least, profile_id is not a boolean value. Consider using None instead.","commit_id":"d06d476a68a9fef2192c340bbe8d5ad35aa831c3"},{"author":{"_account_id":6620,"name":"Abishek Subramanian","email":"absubram@cisco.com","username":"absubram"},"change_message_id":"ab5e3fd2a8ce98e0af07a2f3fe761b8f8448d266","unresolved":false,"context_lines":[{"line_number":551,"context_line":"    if net.n1kv__profile_id:"},{"line_number":552,"context_line":"        net.profile_id \u003d net.n1kv__profile_id"},{"line_number":553,"context_line":"    else:"},{"line_number":554,"context_line":"        net.profile_id \u003d False"},{"line_number":555,"context_line":""},{"line_number":556,"context_line":"    return net"},{"line_number":557,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"3a961159_ea52c4dc","line":554,"in_reply_to":"9aa7fdbe_512482ae","updated":"2014-12-11 21:20:17.000000000","message":"Done","commit_id":"d06d476a68a9fef2192c340bbe8d5ad35aa831c3"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"86cc78e57b0a251fe75349f326d41d2f0026ba83","unresolved":false,"context_lines":[{"line_number":550,"context_line":"        network[\u0027subnets\u0027] \u003d [subnet_get(request, sid)"},{"line_number":551,"context_line":"                              for sid in network[\u0027subnets\u0027]]"},{"line_number":552,"context_line":"    net \u003d Network(network)"},{"line_number":553,"context_line":"    net.profile_id \u003d getattr(net, \u0027n1kv__profile_id\u0027, None)"},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"    return net"},{"line_number":556,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"fa81d914_3ec121e5","line":553,"updated":"2015-01-27 20:33:23.000000000","message":"Please make this conditional.\n\nIn views.py, there is a check whether this attribute exists or not. The current logic is not compatible with that.\n\n  if hasattr(net, \u0027n1kv__profile_id\u0027):\n      net.profile_id \u003d net.n1kv__profile_id","commit_id":"8f3f4e40ee62bbfbbc39457859390514ac012e07"},{"author":{"_account_id":6620,"name":"Abishek Subramanian","email":"absubram@cisco.com","username":"absubram"},"change_message_id":"387a0667fa083769fa3270f5da28cbca45f7d5b7","unresolved":false,"context_lines":[{"line_number":550,"context_line":"        network[\u0027subnets\u0027] \u003d [subnet_get(request, sid)"},{"line_number":551,"context_line":"                              for sid in network[\u0027subnets\u0027]]"},{"line_number":552,"context_line":"    net \u003d Network(network)"},{"line_number":553,"context_line":"    net.profile_id \u003d getattr(net, \u0027n1kv__profile_id\u0027, None)"},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"    return net"},{"line_number":556,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"9a80dd14_77f3859f","line":553,"in_reply_to":"fa81d914_3ec121e5","updated":"2015-03-17 17:09:50.000000000","message":"Done","commit_id":"8f3f4e40ee62bbfbbc39457859390514ac012e07"}],"openstack_dashboard/dashboards/admin/networks/tests.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"67b5e37edd247d84019e539dd009740f6e381225","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def _test_network_detail(self, mac_learning\u003dFalse,"},{"line_number":105,"context_line":"                             test_with_profile\u003dFalse):"},{"line_number":106,"context_line":"        network_id \u003d self.networks.first().id"},{"line_number":107,"context_line":"        network \u003d self.networks.first()"},{"line_number":108,"context_line":"        if test_with_profile:"},{"line_number":109,"context_line":"            network \u003d self.networks.get(name\u003d\"net2\")"}],"source_content_type":"text/x-python","patch_set":13,"id":"9aa7fdbe_8d7fb0aa","line":106,"updated":"2014-10-23 17:05:55.000000000","message":"L.106 is no longer needed. Please consider replacing \"network_id\" with \"network.id\", or using:\n\n  network_id \u003d network.id\n\nafter \"network\" is assigned.\nThis applies to all in this patch.","commit_id":"d06d476a68a9fef2192c340bbe8d5ad35aa831c3"},{"author":{"_account_id":6620,"name":"Abishek Subramanian","email":"absubram@cisco.com","username":"absubram"},"change_message_id":"ab5e3fd2a8ce98e0af07a2f3fe761b8f8448d266","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def _test_network_detail(self, mac_learning\u003dFalse,"},{"line_number":105,"context_line":"                             test_with_profile\u003dFalse):"},{"line_number":106,"context_line":"        network_id \u003d self.networks.first().id"},{"line_number":107,"context_line":"        network \u003d self.networks.first()"},{"line_number":108,"context_line":"        if test_with_profile:"},{"line_number":109,"context_line":"            network \u003d self.networks.get(name\u003d\"net2\")"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a961159_2ad5ac1b","line":106,"in_reply_to":"9aa7fdbe_8d7fb0aa","updated":"2014-12-11 21:20:17.000000000","message":"Done","commit_id":"d06d476a68a9fef2192c340bbe8d5ad35aa831c3"},{"author":{"_account_id":14223,"name":"Brian Fischer","email":"brian.fischer@hp.com","username":"bfischer"},"change_message_id":"0ecbbb2cb30fbf2bf7ccc9ba6355f7658705253c","unresolved":false,"context_lines":[{"line_number":110,"context_line":"            network_id \u003d network.id"},{"line_number":111,"context_line":"            net_profile \u003d self.net_profiles.first()"},{"line_number":112,"context_line":"            api.neutron.profile_get(IsA(http.HttpRequest),"},{"line_number":113,"context_line":"                                    net_profile.id).AndReturn(net_profile)"},{"line_number":114,"context_line":"        api.neutron.list_dhcp_agent_hosting_networks(IsA(http.HttpRequest),"},{"line_number":115,"context_line":"                                                     network_id).\\"},{"line_number":116,"context_line":"            AndReturn(self.agents.list())"}],"source_content_type":"text/x-python","patch_set":15,"id":"3a961159_2931f6ec","line":113,"updated":"2015-01-08 19:56:28.000000000","message":"For clarity, could change above to:\n\nif test_with_profile:\n    network \u003d self.networks.get(name\u003d\"net2\")\n    net_profile \u003d self.net_profiles.first()\n    api.neutron.profile_get(IsA(http.HttpRequest),\n\t                             net_profile.id).AndReturn(net_profile)\n\nelse:\n    network \u003d self.networks.first()\n\nnetwork_id \u003d network.id","commit_id":"8f3f4e40ee62bbfbbc39457859390514ac012e07"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"86cc78e57b0a251fe75349f326d41d2f0026ba83","unresolved":false,"context_lines":[{"line_number":110,"context_line":"            network_id \u003d network.id"},{"line_number":111,"context_line":"            net_profile \u003d self.net_profiles.first()"},{"line_number":112,"context_line":"            api.neutron.profile_get(IsA(http.HttpRequest),"},{"line_number":113,"context_line":"                                    net_profile.id).AndReturn(net_profile)"},{"line_number":114,"context_line":"        api.neutron.list_dhcp_agent_hosting_networks(IsA(http.HttpRequest),"},{"line_number":115,"context_line":"                                                     network_id).\\"},{"line_number":116,"context_line":"            AndReturn(self.agents.list())"}],"source_content_type":"text/x-python","patch_set":15,"id":"fa81d914_3eccc135","line":113,"in_reply_to":"3a961159_2931f6ec","updated":"2015-01-27 20:33:23.000000000","message":"+1","commit_id":"8f3f4e40ee62bbfbbc39457859390514ac012e07"},{"author":{"_account_id":6620,"name":"Abishek Subramanian","email":"absubram@cisco.com","username":"absubram"},"change_message_id":"387a0667fa083769fa3270f5da28cbca45f7d5b7","unresolved":false,"context_lines":[{"line_number":110,"context_line":"            network_id \u003d network.id"},{"line_number":111,"context_line":"            net_profile \u003d self.net_profiles.first()"},{"line_number":112,"context_line":"            api.neutron.profile_get(IsA(http.HttpRequest),"},{"line_number":113,"context_line":"                                    net_profile.id).AndReturn(net_profile)"},{"line_number":114,"context_line":"        api.neutron.list_dhcp_agent_hosting_networks(IsA(http.HttpRequest),"},{"line_number":115,"context_line":"                                                     network_id).\\"},{"line_number":116,"context_line":"            AndReturn(self.agents.list())"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a80dd14_f72e95f9","line":113,"in_reply_to":"3a961159_2931f6ec","updated":"2015-03-17 17:09:50.000000000","message":"Done","commit_id":"8f3f4e40ee62bbfbbc39457859390514ac012e07"},{"author":{"_account_id":14223,"name":"Brian Fischer","email":"brian.fischer@hp.com","username":"bfischer"},"change_message_id":"0ecbbb2cb30fbf2bf7ccc9ba6355f7658705253c","unresolved":false,"context_lines":[{"line_number":213,"context_line":"    def _test_network_detail_subnet_exception(self, mac_learning\u003dFalse,"},{"line_number":214,"context_line":"                                              test_with_profile\u003dFalse):"},{"line_number":215,"context_line":"        network \u003d self.networks.first()"},{"line_number":216,"context_line":"        network_id \u003d network.id"},{"line_number":217,"context_line":"        if test_with_profile:"},{"line_number":218,"context_line":"            network \u003d self.networks.get(name\u003d\"net2\")"},{"line_number":219,"context_line":"            network_id \u003d network.id"}],"source_content_type":"text/x-python","patch_set":15,"id":"3a961159_ee20d44a","line":216,"updated":"2015-01-08 19:56:28.000000000","message":"Same as above.","commit_id":"8f3f4e40ee62bbfbbc39457859390514ac012e07"},{"author":{"_account_id":6620,"name":"Abishek Subramanian","email":"absubram@cisco.com","username":"absubram"},"change_message_id":"387a0667fa083769fa3270f5da28cbca45f7d5b7","unresolved":false,"context_lines":[{"line_number":213,"context_line":"    def _test_network_detail_subnet_exception(self, mac_learning\u003dFalse,"},{"line_number":214,"context_line":"                                              test_with_profile\u003dFalse):"},{"line_number":215,"context_line":"        network \u003d self.networks.first()"},{"line_number":216,"context_line":"        network_id \u003d network.id"},{"line_number":217,"context_line":"        if test_with_profile:"},{"line_number":218,"context_line":"            network \u003d self.networks.get(name\u003d\"net2\")"},{"line_number":219,"context_line":"            network_id \u003d network.id"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a80dd14_17340949","line":216,"in_reply_to":"3a961159_ee20d44a","updated":"2015-03-17 17:09:50.000000000","message":"Done","commit_id":"8f3f4e40ee62bbfbbc39457859390514ac012e07"},{"author":{"_account_id":14223,"name":"Brian Fischer","email":"brian.fischer@hp.com","username":"bfischer"},"change_message_id":"0ecbbb2cb30fbf2bf7ccc9ba6355f7658705253c","unresolved":false,"context_lines":[{"line_number":283,"context_line":"    def _test_network_detail_port_exception(self, mac_learning\u003dFalse,"},{"line_number":284,"context_line":"                                            test_with_profile\u003dFalse):"},{"line_number":285,"context_line":"        network \u003d self.networks.first()"},{"line_number":286,"context_line":"        network_id \u003d network.id"},{"line_number":287,"context_line":"        if test_with_profile:"},{"line_number":288,"context_line":"            network \u003d self.networks.get(name\u003d\"net2\")"},{"line_number":289,"context_line":"            network_id \u003d network.id"}],"source_content_type":"text/x-python","patch_set":15,"id":"3a961159_2e173cef","line":286,"updated":"2015-01-08 19:56:28.000000000","message":"Again.","commit_id":"8f3f4e40ee62bbfbbc39457859390514ac012e07"},{"author":{"_account_id":6620,"name":"Abishek Subramanian","email":"absubram@cisco.com","username":"absubram"},"change_message_id":"387a0667fa083769fa3270f5da28cbca45f7d5b7","unresolved":false,"context_lines":[{"line_number":283,"context_line":"    def _test_network_detail_port_exception(self, mac_learning\u003dFalse,"},{"line_number":284,"context_line":"                                            test_with_profile\u003dFalse):"},{"line_number":285,"context_line":"        network \u003d self.networks.first()"},{"line_number":286,"context_line":"        network_id \u003d network.id"},{"line_number":287,"context_line":"        if test_with_profile:"},{"line_number":288,"context_line":"            network \u003d self.networks.get(name\u003d\"net2\")"},{"line_number":289,"context_line":"            network_id \u003d network.id"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a80dd14_37390d42","line":286,"in_reply_to":"3a961159_2e173cef","updated":"2015-03-17 17:09:50.000000000","message":"Done","commit_id":"8f3f4e40ee62bbfbbc39457859390514ac012e07"}],"openstack_dashboard/dashboards/admin/networks/views.py":[{"author":{"_account_id":5623,"name":"David Lyle","email":"dklyle0@gmail.com","username":"david-lyle"},"change_message_id":"c6a53275d856bd77382b7ce700745b0b9427f575","unresolved":false,"context_lines":[{"line_number":148,"context_line":"            network \u003d api.neutron.network_get(self.request, network_id)"},{"line_number":149,"context_line":"            network.set_id_as_name_if_empty(length\u003d0)"},{"line_number":150,"context_line":"            if (api.neutron.is_port_profiles_supported() and"},{"line_number":151,"context_line":"                    network.n1kv__profile_id):"},{"line_number":152,"context_line":"                profile \u003d api.neutron.profile_get(self.request,"},{"line_number":153,"context_line":"                                                  network.n1kv__profile_id)"},{"line_number":154,"context_line":"                network.profile_name \u003d profile[\u0027name\u0027]"}],"source_content_type":"text/x-python","patch_set":11,"id":"baa201ad_5ec36b37","line":151,"updated":"2014-10-08 01:03:00.000000000","message":"I\u0027m really don\u0027t like the idea of introducing more hooks to a specific piece of hardware. I know we have them in neutron.py, but I don\u0027t think sprinkling hardware specific hooks throughout the code is the right course for the future.\n\nI\u0027d like to see that information abstracted out if possible in a reusable manner.","commit_id":"dc024c2af725bad3e2b13c76ad59e4d33e1b02e8"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"0184545a699cbaa0fe8e273cc60901943f670e5a","unresolved":false,"context_lines":[{"line_number":148,"context_line":"            network \u003d api.neutron.network_get(self.request, network_id)"},{"line_number":149,"context_line":"            network.set_id_as_name_if_empty(length\u003d0)"},{"line_number":150,"context_line":"            if (api.neutron.is_port_profiles_supported() and"},{"line_number":151,"context_line":"                    network.n1kv__profile_id):"},{"line_number":152,"context_line":"                profile \u003d api.neutron.profile_get(self.request,"},{"line_number":153,"context_line":"                                                  network.n1kv__profile_id)"},{"line_number":154,"context_line":"                network.profile_name \u003d profile[\u0027name\u0027]"}],"source_content_type":"text/x-python","patch_set":11,"id":"baa201ad_2f765e06","line":151,"in_reply_to":"baa201ad_3eebf2dc","updated":"2014-10-08 18:19:58.000000000","message":"I think api.neutron should be responsive for preparing \"profile\" attribute for example of \"network\" object. \"profile_name\" is still not well abstracted. IMHO \"network.profile.name\" is more generic.\n\nMoreover, though this is not a scope of this patch, it is better to avoid hardware-name dependent logic in form handle() too, e.g., if xxxx \u003d\u003d \u0027n1kv\u0027: ..... elif xxxx \u003d\u003d \u0027something\u0027 .... else ....","commit_id":"dc024c2af725bad3e2b13c76ad59e4d33e1b02e8"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"8e2955cfa79e8b69b8dca3440538b8e2efc3f5b6","unresolved":false,"context_lines":[{"line_number":148,"context_line":"            network \u003d api.neutron.network_get(self.request, network_id)"},{"line_number":149,"context_line":"            network.set_id_as_name_if_empty(length\u003d0)"},{"line_number":150,"context_line":"            if (api.neutron.is_port_profiles_supported() and"},{"line_number":151,"context_line":"                    network.n1kv__profile_id):"},{"line_number":152,"context_line":"                profile \u003d api.neutron.profile_get(self.request,"},{"line_number":153,"context_line":"                                                  network.n1kv__profile_id)"},{"line_number":154,"context_line":"                network.profile_name \u003d profile[\u0027name\u0027]"}],"source_content_type":"text/x-python","patch_set":11,"id":"baa201ad_0a20ba99","line":151,"in_reply_to":"baa201ad_5ec36b37","updated":"2014-10-08 08:04:04.000000000","message":"David\u0027s comment makes sense to me.","commit_id":"dc024c2af725bad3e2b13c76ad59e4d33e1b02e8"},{"author":{"_account_id":6620,"name":"Abishek Subramanian","email":"absubram@cisco.com","username":"absubram"},"change_message_id":"e23a11116cd7c821604bdc2feaabf0b8ee0e647c","unresolved":false,"context_lines":[{"line_number":148,"context_line":"            network \u003d api.neutron.network_get(self.request, network_id)"},{"line_number":149,"context_line":"            network.set_id_as_name_if_empty(length\u003d0)"},{"line_number":150,"context_line":"            if (api.neutron.is_port_profiles_supported() and"},{"line_number":151,"context_line":"                    network.n1kv__profile_id):"},{"line_number":152,"context_line":"                profile \u003d api.neutron.profile_get(self.request,"},{"line_number":153,"context_line":"                                                  network.n1kv__profile_id)"},{"line_number":154,"context_line":"                network.profile_name \u003d profile[\u0027name\u0027]"}],"source_content_type":"text/x-python","patch_set":11,"id":"baa201ad_3eebf2dc","line":151,"in_reply_to":"baa201ad_5ec36b37","updated":"2014-10-08 16:14:03.000000000","message":"Very well David. If I make this more generic, will it be acceptable?\nI know there are many more neutron plugins being added into Kilo - the DFA, the UCS and more enhancements that all make use of this concept of a \"profile\" associated with network creation and with instance launches.\nThey all likely will use the keyword \"profile\". \n\nAkihiro was the one who has initially pointed out this bug stating we weren\u0027t displaying any profile details in either the instance detail or network detail though we were using profiles with both.\n\nNow with the advent of \"provider segment\" as well in the ML2 plugins, if I changed this to be just a display of any generic \"profile\", would it be ok? All this bug does is display the profile name and id *if* those attributes are *happen to be used and returned* from the network_get. I can change the if statement such that it just looks for \"profile\", and if so will display it. Does that make sense? It will not be any hardware specific.","commit_id":"dc024c2af725bad3e2b13c76ad59e4d33e1b02e8"},{"author":{"_account_id":13325,"name":"Paul Karikh","email":"pkarikh@gmail.com","username":"paul.karikh"},"change_message_id":"233a95e82262cbfa630391f1cbe7610832658a51","unresolved":false,"context_lines":[{"line_number":146,"context_line":"            network_id \u003d self.kwargs[\u0027network_id\u0027]"},{"line_number":147,"context_line":"            network \u003d api.neutron.network_get(self.request, network_id)"},{"line_number":148,"context_line":"            network.set_id_as_name_if_empty(length\u003d0)"},{"line_number":149,"context_line":"            if network.profile_id:"},{"line_number":150,"context_line":"                profile \u003d api.neutron.profile_get(self.request,"},{"line_number":151,"context_line":"                                                  network.profile_id)"},{"line_number":152,"context_line":"                network.profile_name \u003d profile[\u0027name\u0027]"}],"source_content_type":"text/x-python","patch_set":13,"id":"5a890539_930ab625","line":149,"updated":"2014-12-01 09:04:55.000000000","message":"I agree with Akihiro here and in /project/networks/views.py. His version is a little bit safer.","commit_id":"d06d476a68a9fef2192c340bbe8d5ad35aa831c3"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"67b5e37edd247d84019e539dd009740f6e381225","unresolved":false,"context_lines":[{"line_number":146,"context_line":"            network_id \u003d self.kwargs[\u0027network_id\u0027]"},{"line_number":147,"context_line":"            network \u003d api.neutron.network_get(self.request, network_id)"},{"line_number":148,"context_line":"            network.set_id_as_name_if_empty(length\u003d0)"},{"line_number":149,"context_line":"            if network.profile_id:"},{"line_number":150,"context_line":"                profile \u003d api.neutron.profile_get(self.request,"},{"line_number":151,"context_line":"                                                  network.profile_id)"},{"line_number":152,"context_line":"                network.profile_name \u003d profile[\u0027name\u0027]"}],"source_content_type":"text/x-python","patch_set":13,"id":"9aa7fdbe_11d83a7a","line":149,"updated":"2014-10-23 17:05:55.000000000","message":"Per my comment in api/neutron.py, this needs to be:\n\n  if hasattr(network, \u0027profile_id\u0027):\n\nor \n\n  if getattr(network, \u0027profile_id\u0027, None):\n\nI am not sure there is a case where profile_id is None when the Cisco extension is enabled.","commit_id":"d06d476a68a9fef2192c340bbe8d5ad35aa831c3"},{"author":{"_account_id":6620,"name":"Abishek Subramanian","email":"absubram@cisco.com","username":"absubram"},"change_message_id":"ab5e3fd2a8ce98e0af07a2f3fe761b8f8448d266","unresolved":false,"context_lines":[{"line_number":146,"context_line":"            network_id \u003d self.kwargs[\u0027network_id\u0027]"},{"line_number":147,"context_line":"            network \u003d api.neutron.network_get(self.request, network_id)"},{"line_number":148,"context_line":"            network.set_id_as_name_if_empty(length\u003d0)"},{"line_number":149,"context_line":"            if network.profile_id:"},{"line_number":150,"context_line":"                profile \u003d api.neutron.profile_get(self.request,"},{"line_number":151,"context_line":"                                                  network.profile_id)"},{"line_number":152,"context_line":"                network.profile_name \u003d profile[\u0027name\u0027]"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a961159_ea73a44b","line":149,"in_reply_to":"9aa7fdbe_11d83a7a","updated":"2014-12-11 21:20:17.000000000","message":"Done. There isn\u0027t a case when the Cisco extension is applied, but in the non-Cisco cases, there isn\u0027t a profile_id. So we need to have this check to ensure that is counted for.","commit_id":"d06d476a68a9fef2192c340bbe8d5ad35aa831c3"}],"openstack_dashboard/dashboards/project/networks/templates/networks/_detail_overview.html":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"c0656d7b44839cfa1bb571c172acce6865307317","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    {% if network.n1kv__profile_id %}"},{"line_number":28,"context_line":"    \u003cdt\u003e{% trans \"Network Profile\" %}\u003c/dt\u003e"},{"line_number":29,"context_line":"    \u003cdd\u003e{% trans \"Profile ID\" %}: {{ network.n1kv__profile_id }}\u003c/dd\u003e"},{"line_number":30,"context_line":"    \u003cdd\u003e{% trans \"Profile Name\" %}: {{ network.profile_name|default:_(\"None\") }}\u003c/dd\u003e"},{"line_number":31,"context_line":"    {% endif %}"},{"line_number":32,"context_line":"  \u003c/dl\u003e"},{"line_number":33,"context_line":"\u003c/div\u003e"}],"source_content_type":"text/html","patch_set":8,"id":"da9df570_70b4a9f2","line":30,"updated":"2014-09-20 17:07:50.000000000","message":"Profile ID and Profile Name are inside of \"Network Profile\".\nTo avoid new string changes, can\u0027t you change these to \"ID\" and \"Name\" respectively?","commit_id":"a530c00643c32ca4c1f33df641c9045960dc383f"},{"author":{"_account_id":6620,"name":"Abishek Subramanian","email":"absubram@cisco.com","username":"absubram"},"change_message_id":"3bb53629b026106ec0ee1965cfd594748b684209","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    {% if network.n1kv__profile_id %}"},{"line_number":28,"context_line":"    \u003cdt\u003e{% trans \"Network Profile\" %}\u003c/dt\u003e"},{"line_number":29,"context_line":"    \u003cdd\u003e{% trans \"Profile ID\" %}: {{ network.n1kv__profile_id }}\u003c/dd\u003e"},{"line_number":30,"context_line":"    \u003cdd\u003e{% trans \"Profile Name\" %}: {{ network.profile_name|default:_(\"None\") }}\u003c/dd\u003e"},{"line_number":31,"context_line":"    {% endif %}"},{"line_number":32,"context_line":"  \u003c/dl\u003e"},{"line_number":33,"context_line":"\u003c/div\u003e"}],"source_content_type":"text/html","patch_set":8,"id":"da9df570_b07b7128","line":30,"in_reply_to":"da9df570_70b4a9f2","updated":"2014-09-20 17:16:26.000000000","message":"Done","commit_id":"a530c00643c32ca4c1f33df641c9045960dc383f"},{"author":{"_account_id":6620,"name":"Abishek Subramanian","email":"absubram@cisco.com","username":"absubram"},"change_message_id":"2a7a2758a43c957fef5af54e1232d43b4e2c099d","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    \u003cdd\u003e{% trans \"Physical Network:\" %} {{ network.provider__physical_network|default:\"-\" }}\u003c/dd\u003e"},{"line_number":25,"context_line":"    \u003cdd\u003e{% trans \"Segmentation ID:\" %} {{ network.provider__segmentation_id|default:\"-\" }}\u003c/dd\u003e"},{"line_number":26,"context_line":"    {% endif %}"},{"line_number":27,"context_line":"    {% if network.n1kv__profile_id %}"},{"line_number":28,"context_line":"    \u003cdt\u003e{% trans \"Network Profile\" %}\u003c/dt\u003e"},{"line_number":29,"context_line":"    \u003cdd\u003e{% trans \"ID:\" %} {{ network.profile_id }}\u003c/dd\u003e"},{"line_number":30,"context_line":"    \u003cdd\u003e{% trans \"Name:\" %} {{ network.profile_name|default:_(\"None\") }}\u003c/dd\u003e"}],"source_content_type":"text/html","patch_set":12,"id":"baa201ad_5f4e1e70","line":27,"updated":"2014-10-16 15:43:47.000000000","message":"Forgot to catch this. Will change and update.","commit_id":"3f539223942ab0a5b2c21c809e0e2641cc9cbbbd"}],"openstack_dashboard/dashboards/project/networks/tests.py":[{"author":{"_account_id":10521,"name":"Pablo Fernando Cargnelutti","email":"pablo.fernando.cargnelutti@intel.com","username":"pcargnel"},"change_message_id":"c5681913ca56590fb7809ca4d7b0a356003cada0","unresolved":false,"context_lines":[{"line_number":159,"context_line":"        ports \u003d res.context[\u0027ports_table\u0027].data"},{"line_number":160,"context_line":"        self.assertItemsEqual(subnets, [self.subnets.first()])"},{"line_number":161,"context_line":"        self.assertItemsEqual(ports, [self.ports.first()])"},{"line_number":162,"context_line":"        if api.neutron.is_port_profiles_supported():"},{"line_number":163,"context_line":"            profile_name \u003d res.context[\u0027network\u0027].profile_name"},{"line_number":164,"context_line":"            self.assertItemsEqual(profile_name, self.net_profiles.first().name)"},{"line_number":165,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2BJww%3D","line":162,"updated":"2014-03-28 19:01:40.000000000","message":"Avoid repeating code. This is repeated in code below.","commit_id":"9fc05be06a157880dd4fc91ee11b74b2b8641e6f"},{"author":{"_account_id":6620,"name":"Abishek Subramanian","email":"absubram@cisco.com","username":"absubram"},"change_message_id":"a5d734759f7999f020fab1b1fa62f6acd095bd16","unresolved":false,"context_lines":[{"line_number":159,"context_line":"        ports \u003d res.context[\u0027ports_table\u0027].data"},{"line_number":160,"context_line":"        self.assertItemsEqual(subnets, [self.subnets.first()])"},{"line_number":161,"context_line":"        self.assertItemsEqual(ports, [self.ports.first()])"},{"line_number":162,"context_line":"        if api.neutron.is_port_profiles_supported():"},{"line_number":163,"context_line":"            profile_name \u003d res.context[\u0027network\u0027].profile_name"},{"line_number":164,"context_line":"            self.assertItemsEqual(profile_name, self.net_profiles.first().name)"},{"line_number":165,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAXH%2F%2Fwlg%3D","line":162,"in_reply_to":"AAAAW3%2F%2FqI8%3D","updated":"2014-04-17 16:53:32.000000000","message":"Hi Akihiro, thanks for the comment.\nJust want to point out that lines 144-150 and 162-164 have different functionality.\nIn lines 148-150, I am assigning net_profile and essentially doing the mox for the profile_get API.\nIn lines 163-164, I\u0027m doing the assert to check the context data is all correct.\n\nThe only thing that is common with these two parts of code is that they are run when the port_profiles check is enabled. \n\nIdeally, I would have liked to have had a new test case - test_network_detail_with_profiles or something similar. However, when this unit test case is run with the port_profiles enabled in the test settings file, this unit test has an error when it runs the actual code. So I have to necessarily fix this particular test, make sense?","commit_id":"9fc05be06a157880dd4fc91ee11b74b2b8641e6f"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"ee9efff82940bde87541fec6b761f50bbc2cc93e","unresolved":false,"context_lines":[{"line_number":159,"context_line":"        ports \u003d res.context[\u0027ports_table\u0027].data"},{"line_number":160,"context_line":"        self.assertItemsEqual(subnets, [self.subnets.first()])"},{"line_number":161,"context_line":"        self.assertItemsEqual(ports, [self.ports.first()])"},{"line_number":162,"context_line":"        if api.neutron.is_port_profiles_supported():"},{"line_number":163,"context_line":"            profile_name \u003d res.context[\u0027network\u0027].profile_name"},{"line_number":164,"context_line":"            self.assertItemsEqual(profile_name, self.net_profiles.first().name)"},{"line_number":165,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAW3%2F%2FqI8%3D","line":162,"in_reply_to":"AAAAW3%2F%2FviM%3D","updated":"2014-04-11 11:10:21.000000000","message":"I think what Pablo points out is that L.144-150 and L.162-164 are copy-and-paste repeatedly and exactly same. It is better to define a convenient method(s) to do this at least.\n\nApart from this patch, I agree test_network_detail* tests should be refactored.","commit_id":"9fc05be06a157880dd4fc91ee11b74b2b8641e6f"},{"author":{"_account_id":6620,"name":"Abishek Subramanian","email":"absubram@cisco.com","username":"absubram"},"change_message_id":"d303c6d58645be19ff0e49040828a427beb826bd","unresolved":false,"context_lines":[{"line_number":159,"context_line":"        ports \u003d res.context[\u0027ports_table\u0027].data"},{"line_number":160,"context_line":"        self.assertItemsEqual(subnets, [self.subnets.first()])"},{"line_number":161,"context_line":"        self.assertItemsEqual(ports, [self.ports.first()])"},{"line_number":162,"context_line":"        if api.neutron.is_port_profiles_supported():"},{"line_number":163,"context_line":"            profile_name \u003d res.context[\u0027network\u0027].profile_name"},{"line_number":164,"context_line":"            self.assertItemsEqual(profile_name, self.net_profiles.first().name)"},{"line_number":165,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAW3%2F%2FviM%3D","line":162,"in_reply_to":"AAAAWH%2F%2BJww%3D","updated":"2014-04-10 17:29:59.000000000","message":"Hi Pablo,\nNot quite sure what you mean avoid repeating code? The case below and this are two separate unit test cases. You will see similar instances of such UT code throughout this file.","commit_id":"9fc05be06a157880dd4fc91ee11b74b2b8641e6f"},{"author":{"_account_id":6620,"name":"Abishek Subramanian","email":"absubram@cisco.com","username":"absubram"},"change_message_id":"a9b5cabc2562dc2007d2e5961e8db3821a92f8fd","unresolved":false,"context_lines":[{"line_number":159,"context_line":"        ports \u003d res.context[\u0027ports_table\u0027].data"},{"line_number":160,"context_line":"        self.assertItemsEqual(subnets, [self.subnets.first()])"},{"line_number":161,"context_line":"        self.assertItemsEqual(ports, [self.ports.first()])"},{"line_number":162,"context_line":"        if api.neutron.is_port_profiles_supported():"},{"line_number":163,"context_line":"            profile_name \u003d res.context[\u0027network\u0027].profile_name"},{"line_number":164,"context_line":"            self.assertItemsEqual(profile_name, self.net_profiles.first().name)"},{"line_number":165,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAXH%2F%2FwbY%3D","line":162,"in_reply_to":"AAAAXH%2F%2FwgE%3D","updated":"2014-04-17 17:14:05.000000000","message":"Sure. That sounds reasonable. Fixing the non-running of the profiles test during a regular ./run_tests should be addressed I agree and it has it\u0027s own set of issues.\nI\u0027ll get started on it and let\u0027s talk more during the summit about the solution too.","commit_id":"9fc05be06a157880dd4fc91ee11b74b2b8641e6f"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"c5f82fdf8a572cb5626a9e3df3d4edd6be07e50b","unresolved":false,"context_lines":[{"line_number":159,"context_line":"        ports \u003d res.context[\u0027ports_table\u0027].data"},{"line_number":160,"context_line":"        self.assertItemsEqual(subnets, [self.subnets.first()])"},{"line_number":161,"context_line":"        self.assertItemsEqual(ports, [self.ports.first()])"},{"line_number":162,"context_line":"        if api.neutron.is_port_profiles_supported():"},{"line_number":163,"context_line":"            profile_name \u003d res.context[\u0027network\u0027].profile_name"},{"line_number":164,"context_line":"            self.assertItemsEqual(profile_name, self.net_profiles.first().name)"},{"line_number":165,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAXH%2F%2FwgE%3D","line":162,"in_reply_to":"AAAAXH%2F%2Fwlg%3D","updated":"2014-04-17 17:05:37.000000000","message":"Why don\u0027t you fix an issue that network profile code is not tested first? It is the beginning of the new development cycle and it is a good timing to work on it. For testing configuration, @override_settings allow you to override the default setting, so the configuration does not sounds a reasonable reason.","commit_id":"9fc05be06a157880dd4fc91ee11b74b2b8641e6f"},{"author":{"_account_id":10521,"name":"Pablo Fernando Cargnelutti","email":"pablo.fernando.cargnelutti@intel.com","username":"pcargnel"},"change_message_id":"c5681913ca56590fb7809ca4d7b0a356003cada0","unresolved":false,"context_lines":[{"line_number":212,"context_line":"        self.assertEqual(len(subnets), 0)"},{"line_number":213,"context_line":"        self.assertItemsEqual(ports, [self.ports.first()])"},{"line_number":214,"context_line":"        if api.neutron.is_port_profiles_supported():"},{"line_number":215,"context_line":"            profile_name \u003d res.context[\u0027network\u0027].profile_name"},{"line_number":216,"context_line":"            self.assertItemsEqual(profile_name, self.net_profiles.first().name)"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"    @test.create_stubs({api.neutron: (\u0027network_get\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2BJwg%3D","line":215,"updated":"2014-03-28 19:01:40.000000000","message":"Same comment above about repeated code.","commit_id":"9fc05be06a157880dd4fc91ee11b74b2b8641e6f"},{"author":{"_account_id":6620,"name":"Abishek Subramanian","email":"absubram@cisco.com","username":"absubram"},"change_message_id":"d303c6d58645be19ff0e49040828a427beb826bd","unresolved":false,"context_lines":[{"line_number":212,"context_line":"        self.assertEqual(len(subnets), 0)"},{"line_number":213,"context_line":"        self.assertItemsEqual(ports, [self.ports.first()])"},{"line_number":214,"context_line":"        if api.neutron.is_port_profiles_supported():"},{"line_number":215,"context_line":"            profile_name \u003d res.context[\u0027network\u0027].profile_name"},{"line_number":216,"context_line":"            self.assertItemsEqual(profile_name, self.net_profiles.first().name)"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"    @test.create_stubs({api.neutron: (\u0027network_get\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAW3%2F%2Fvho%3D","line":215,"in_reply_to":"AAAAWH%2F%2BJwg%3D","updated":"2014-04-10 17:29:59.000000000","message":"Same as above - this is a different UT case.","commit_id":"9fc05be06a157880dd4fc91ee11b74b2b8641e6f"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"ee9efff82940bde87541fec6b761f50bbc2cc93e","unresolved":false,"context_lines":[{"line_number":236,"context_line":"        if api.neutron.is_port_profiles_supported():"},{"line_number":237,"context_line":"            net_profile \u003d self.net_profiles.first()"},{"line_number":238,"context_line":"            api.neutron.profile_get(IsA(http.HttpRequest),"},{"line_number":239,"context_line":"                                    net_profile.id).AndReturn(net_profile)"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"        self.mox.ReplayAll()"},{"line_number":242,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAW3%2F%2FqIg%3D","line":239,"updated":"2014-04-11 11:10:21.000000000","message":"A case where profile_get() raises an error is not covered.","commit_id":"9fc05be06a157880dd4fc91ee11b74b2b8641e6f"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"c0656d7b44839cfa1bb571c172acce6865307317","unresolved":false,"context_lines":[{"line_number":142,"context_line":"                                      \u0027subnet_list\u0027,"},{"line_number":143,"context_line":"                                      \u0027port_list\u0027,"},{"line_number":144,"context_line":"                                      \u0027is_extension_supported\u0027,"},{"line_number":145,"context_line":"                                      \u0027profile_get\u0027,)})"},{"line_number":146,"context_line":"    def _test_network_detail(self, mac_learning\u003dFalse,"},{"line_number":147,"context_line":"                             test_with_profile\u003dFalse):"},{"line_number":148,"context_line":"        network_id \u003d self.networks.first().id"}],"source_content_type":"text/x-python","patch_set":8,"id":"da9df570_10c51d5b","line":145,"updated":"2014-09-20 17:07:50.000000000","message":"stub for profile_get should be moved to test_network_profile_with_profile.","commit_id":"a530c00643c32ca4c1f33df641c9045960dc383f"},{"author":{"_account_id":6620,"name":"Abishek Subramanian","email":"absubram@cisco.com","username":"absubram"},"change_message_id":"3bb53629b026106ec0ee1965cfd594748b684209","unresolved":false,"context_lines":[{"line_number":142,"context_line":"                                      \u0027subnet_list\u0027,"},{"line_number":143,"context_line":"                                      \u0027port_list\u0027,"},{"line_number":144,"context_line":"                                      \u0027is_extension_supported\u0027,"},{"line_number":145,"context_line":"                                      \u0027profile_get\u0027,)})"},{"line_number":146,"context_line":"    def _test_network_detail(self, mac_learning\u003dFalse,"},{"line_number":147,"context_line":"                             test_with_profile\u003dFalse):"},{"line_number":148,"context_line":"        network_id \u003d self.networks.first().id"}],"source_content_type":"text/x-python","patch_set":8,"id":"da9df570_d078f52d","line":145,"in_reply_to":"da9df570_10c51d5b","updated":"2014-09-20 17:16:26.000000000","message":"Done","commit_id":"a530c00643c32ca4c1f33df641c9045960dc383f"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"c0656d7b44839cfa1bb571c172acce6865307317","unresolved":false,"context_lines":[{"line_number":219,"context_line":"                                      \u0027subnet_list\u0027,"},{"line_number":220,"context_line":"                                      \u0027port_list\u0027,"},{"line_number":221,"context_line":"                                      \u0027is_extension_supported\u0027,"},{"line_number":222,"context_line":"                                      \u0027profile_get\u0027,)})"},{"line_number":223,"context_line":"    def _test_network_detail_subnet_exception(self, mac_learning\u003dFalse,"},{"line_number":224,"context_line":"                                              test_with_profile\u003dFalse):"},{"line_number":225,"context_line":"        network_id \u003d self.networks.first().id"}],"source_content_type":"text/x-python","patch_set":8,"id":"da9df570_70abc989","line":222,"updated":"2014-09-20 17:07:50.000000000","message":"stub for profile_get should be moved to test_network_profile_exception_with_profile.","commit_id":"a530c00643c32ca4c1f33df641c9045960dc383f"},{"author":{"_account_id":6620,"name":"Abishek Subramanian","email":"absubram@cisco.com","username":"absubram"},"change_message_id":"3bb53629b026106ec0ee1965cfd594748b684209","unresolved":false,"context_lines":[{"line_number":219,"context_line":"                                      \u0027subnet_list\u0027,"},{"line_number":220,"context_line":"                                      \u0027port_list\u0027,"},{"line_number":221,"context_line":"                                      \u0027is_extension_supported\u0027,"},{"line_number":222,"context_line":"                                      \u0027profile_get\u0027,)})"},{"line_number":223,"context_line":"    def _test_network_detail_subnet_exception(self, mac_learning\u003dFalse,"},{"line_number":224,"context_line":"                                              test_with_profile\u003dFalse):"},{"line_number":225,"context_line":"        network_id \u003d self.networks.first().id"}],"source_content_type":"text/x-python","patch_set":8,"id":"da9df570_f075f932","line":222,"in_reply_to":"da9df570_70abc989","updated":"2014-09-20 17:16:26.000000000","message":"Done","commit_id":"a530c00643c32ca4c1f33df641c9045960dc383f"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"c0656d7b44839cfa1bb571c172acce6865307317","unresolved":false,"context_lines":[{"line_number":268,"context_line":"                                      \u0027subnet_list\u0027,"},{"line_number":269,"context_line":"                                      \u0027port_list\u0027,"},{"line_number":270,"context_line":"                                      \u0027is_extension_supported\u0027,"},{"line_number":271,"context_line":"                                      \u0027profile_get\u0027,)})"},{"line_number":272,"context_line":"    def _test_network_detail_port_exception(self, mac_learning\u003dFalse,"},{"line_number":273,"context_line":"                                            test_with_profile\u003dFalse):"},{"line_number":274,"context_line":"        network_id \u003d self.networks.first().id"}],"source_content_type":"text/x-python","patch_set":8,"id":"da9df570_90b02df6","line":271,"updated":"2014-09-20 17:07:50.000000000","message":"Ditto","commit_id":"a530c00643c32ca4c1f33df641c9045960dc383f"},{"author":{"_account_id":6620,"name":"Abishek Subramanian","email":"absubram@cisco.com","username":"absubram"},"change_message_id":"3bb53629b026106ec0ee1965cfd594748b684209","unresolved":false,"context_lines":[{"line_number":268,"context_line":"                                      \u0027subnet_list\u0027,"},{"line_number":269,"context_line":"                                      \u0027port_list\u0027,"},{"line_number":270,"context_line":"                                      \u0027is_extension_supported\u0027,"},{"line_number":271,"context_line":"                                      \u0027profile_get\u0027,)})"},{"line_number":272,"context_line":"    def _test_network_detail_port_exception(self, mac_learning\u003dFalse,"},{"line_number":273,"context_line":"                                            test_with_profile\u003dFalse):"},{"line_number":274,"context_line":"        network_id \u003d self.networks.first().id"}],"source_content_type":"text/x-python","patch_set":8,"id":"da9df570_10735d4e","line":271,"in_reply_to":"da9df570_90b02df6","updated":"2014-09-20 17:16:26.000000000","message":"Done","commit_id":"a530c00643c32ca4c1f33df641c9045960dc383f"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"67b5e37edd247d84019e539dd009740f6e381225","unresolved":false,"context_lines":[{"line_number":342,"context_line":"        ports \u003d res.context[\u0027ports_table\u0027].data"},{"line_number":343,"context_line":"        if test_with_profile:"},{"line_number":344,"context_line":"            profile_name \u003d res.context[\u0027network\u0027].profile_name"},{"line_number":345,"context_line":"            self.assertItemsEqual(profile_name, self.net_profiles.first().name)"},{"line_number":346,"context_line":"        self.assertItemsEqual(subnets, [self.subnets.first()])"},{"line_number":347,"context_line":"        self.assertEqual(len(ports), 0)"},{"line_number":348,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"9aa7fdbe_0d11005d","line":345,"updated":"2014-10-23 17:05:55.000000000","message":"Why not \"net_profile.name?","commit_id":"d06d476a68a9fef2192c340bbe8d5ad35aa831c3"},{"author":{"_account_id":6620,"name":"Abishek Subramanian","email":"absubram@cisco.com","username":"absubram"},"change_message_id":"ab5e3fd2a8ce98e0af07a2f3fe761b8f8448d266","unresolved":false,"context_lines":[{"line_number":342,"context_line":"        ports \u003d res.context[\u0027ports_table\u0027].data"},{"line_number":343,"context_line":"        if test_with_profile:"},{"line_number":344,"context_line":"            profile_name \u003d res.context[\u0027network\u0027].profile_name"},{"line_number":345,"context_line":"            self.assertItemsEqual(profile_name, self.net_profiles.first().name)"},{"line_number":346,"context_line":"        self.assertItemsEqual(subnets, [self.subnets.first()])"},{"line_number":347,"context_line":"        self.assertEqual(len(ports), 0)"},{"line_number":348,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"3a961159_eaaac46f","line":345,"in_reply_to":"9aa7fdbe_0d11005d","updated":"2014-12-11 21:20:17.000000000","message":"Done","commit_id":"d06d476a68a9fef2192c340bbe8d5ad35aa831c3"},{"author":{"_account_id":14223,"name":"Brian Fischer","email":"brian.fischer@hp.com","username":"bfischer"},"change_message_id":"0ecbbb2cb30fbf2bf7ccc9ba6355f7658705253c","unresolved":false,"context_lines":[{"line_number":181,"context_line":"            network_id \u003d network.id"},{"line_number":182,"context_line":"            net_profile \u003d self.net_profiles.first()"},{"line_number":183,"context_line":"            api.neutron.profile_get(IsA(http.HttpRequest),"},{"line_number":184,"context_line":"                                    net_profile.id).AndReturn(net_profile)"},{"line_number":185,"context_line":"        api.neutron.network_get(IsA(http.HttpRequest), network_id)\\"},{"line_number":186,"context_line":"            .AndReturn(network)"},{"line_number":187,"context_line":"        api.neutron.subnet_list(IsA(http.HttpRequest), network_id\u003dnetwork_id)\\"}],"source_content_type":"text/x-python","patch_set":15,"id":"3a961159_e9136e59","line":184,"updated":"2015-01-08 19:56:28.000000000","message":"For clarity, could change above to:\n\nif test_with_profile:\n    network \u003d self.networks.get(name\u003d\"net2\")\n    net_profile \u003d self.net_profiles.first()\n    api.neutron.profile_get(IsA(http.HttpRequest),\n\t                             net_profile.id).AndReturn(net_profile)\n\nelse:\n    network \u003d self.networks.first()\n\nnetwork_id \u003d network.id","commit_id":"8f3f4e40ee62bbfbbc39457859390514ac012e07"},{"author":{"_account_id":6620,"name":"Abishek Subramanian","email":"absubram@cisco.com","username":"absubram"},"change_message_id":"387a0667fa083769fa3270f5da28cbca45f7d5b7","unresolved":false,"context_lines":[{"line_number":181,"context_line":"            network_id \u003d network.id"},{"line_number":182,"context_line":"            net_profile \u003d self.net_profiles.first()"},{"line_number":183,"context_line":"            api.neutron.profile_get(IsA(http.HttpRequest),"},{"line_number":184,"context_line":"                                    net_profile.id).AndReturn(net_profile)"},{"line_number":185,"context_line":"        api.neutron.network_get(IsA(http.HttpRequest), network_id)\\"},{"line_number":186,"context_line":"            .AndReturn(network)"},{"line_number":187,"context_line":"        api.neutron.subnet_list(IsA(http.HttpRequest), network_id\u003dnetwork_id)\\"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a80dd14_170b297e","line":184,"in_reply_to":"3a961159_e9136e59","updated":"2015-03-17 17:09:50.000000000","message":"Done","commit_id":"8f3f4e40ee62bbfbbc39457859390514ac012e07"},{"author":{"_account_id":14223,"name":"Brian Fischer","email":"brian.fischer@hp.com","username":"bfischer"},"change_message_id":"0ecbbb2cb30fbf2bf7ccc9ba6355f7658705253c","unresolved":false,"context_lines":[{"line_number":278,"context_line":"            network_id \u003d network.id"},{"line_number":279,"context_line":"            net_profile \u003d self.net_profiles.first()"},{"line_number":280,"context_line":"            api.neutron.profile_get(IsA(http.HttpRequest),"},{"line_number":281,"context_line":"                                    net_profile.id).AndReturn(net_profile)"},{"line_number":282,"context_line":"        api.neutron.network_get(IsA(http.HttpRequest), network_id).\\"},{"line_number":283,"context_line":"            AndReturn(network)"},{"line_number":284,"context_line":"        api.neutron.subnet_list(IsA(http.HttpRequest), network_id\u003dnetwork_id).\\"}],"source_content_type":"text/x-python","patch_set":15,"id":"3a961159_892aea7b","line":281,"updated":"2015-01-08 19:56:28.000000000","message":"See above.","commit_id":"8f3f4e40ee62bbfbbc39457859390514ac012e07"},{"author":{"_account_id":6620,"name":"Abishek Subramanian","email":"absubram@cisco.com","username":"absubram"},"change_message_id":"387a0667fa083769fa3270f5da28cbca45f7d5b7","unresolved":false,"context_lines":[{"line_number":278,"context_line":"            network_id \u003d network.id"},{"line_number":279,"context_line":"            net_profile \u003d self.net_profiles.first()"},{"line_number":280,"context_line":"            api.neutron.profile_get(IsA(http.HttpRequest),"},{"line_number":281,"context_line":"                                    net_profile.id).AndReturn(net_profile)"},{"line_number":282,"context_line":"        api.neutron.network_get(IsA(http.HttpRequest), network_id).\\"},{"line_number":283,"context_line":"            AndReturn(network)"},{"line_number":284,"context_line":"        api.neutron.subnet_list(IsA(http.HttpRequest), network_id\u003dnetwork_id).\\"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a80dd14_37102da8","line":281,"in_reply_to":"3a961159_892aea7b","updated":"2015-03-17 17:09:50.000000000","message":"Done","commit_id":"8f3f4e40ee62bbfbbc39457859390514ac012e07"},{"author":{"_account_id":14223,"name":"Brian Fischer","email":"brian.fischer@hp.com","username":"bfischer"},"change_message_id":"0ecbbb2cb30fbf2bf7ccc9ba6355f7658705253c","unresolved":false,"context_lines":[{"line_number":344,"context_line":"            network_id \u003d network.id"},{"line_number":345,"context_line":"            net_profile \u003d self.net_profiles.first()"},{"line_number":346,"context_line":"            api.neutron.profile_get(IsA(http.HttpRequest),"},{"line_number":347,"context_line":"                                    net_profile.id).AndReturn(net_profile)"},{"line_number":348,"context_line":"        api.neutron.network_get(IsA(http.HttpRequest), network_id).\\"},{"line_number":349,"context_line":"            AndReturn(network)"},{"line_number":350,"context_line":"        api.neutron.subnet_list(IsA(http.HttpRequest), network_id\u003dnetwork_id).\\"}],"source_content_type":"text/x-python","patch_set":15,"id":"3a961159_c920729c","line":347,"updated":"2015-01-08 19:56:28.000000000","message":"See above.","commit_id":"8f3f4e40ee62bbfbbc39457859390514ac012e07"},{"author":{"_account_id":6620,"name":"Abishek Subramanian","email":"absubram@cisco.com","username":"absubram"},"change_message_id":"387a0667fa083769fa3270f5da28cbca45f7d5b7","unresolved":false,"context_lines":[{"line_number":344,"context_line":"            network_id \u003d network.id"},{"line_number":345,"context_line":"            net_profile \u003d self.net_profiles.first()"},{"line_number":346,"context_line":"            api.neutron.profile_get(IsA(http.HttpRequest),"},{"line_number":347,"context_line":"                                    net_profile.id).AndReturn(net_profile)"},{"line_number":348,"context_line":"        api.neutron.network_get(IsA(http.HttpRequest), network_id).\\"},{"line_number":349,"context_line":"            AndReturn(network)"},{"line_number":350,"context_line":"        api.neutron.subnet_list(IsA(http.HttpRequest), network_id\u003dnetwork_id).\\"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a80dd14_5724c10d","line":347,"in_reply_to":"3a961159_c920729c","updated":"2015-03-17 17:09:50.000000000","message":"Done","commit_id":"8f3f4e40ee62bbfbbc39457859390514ac012e07"}],"openstack_dashboard/dashboards/project/networks/views.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"8580dba244aea57c8fa6b12813735b526c088d71","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        network \u003d self._get_data()"},{"line_number":142,"context_line":"        if (api.neutron.is_port_profiles_supported() and"},{"line_number":143,"context_line":"                network.n1kv__profile_id):"},{"line_number":144,"context_line":"            profiles \u003d api.neutron.profile_list(self.request, \u0027network\u0027)"},{"line_number":145,"context_line":"            if profiles:"},{"line_number":146,"context_line":"                for p in profiles:"},{"line_number":147,"context_line":"                    if (network.n1kv__profile_id \u003d\u003d p.id):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2F3l0%3D","line":144,"updated":"2014-03-13 09:19:56.000000000","message":"It seems to cost too much. Why don\u0027t you use profile_get(network.n1kv__profileid)? If there is no way to get profile_list with specifying profile_id, it is a serious bug of API and we should not deal with it in horizon.","commit_id":"fde0edf98813ef637a72a688ac7ef7cedcf3cb56"},{"author":{"_account_id":6620,"name":"Abishek Subramanian","email":"absubram@cisco.com","username":"absubram"},"change_message_id":"cd183addbd7d04a2101307289337c16fae40dc5d","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        network \u003d self._get_data()"},{"line_number":142,"context_line":"        if (api.neutron.is_port_profiles_supported() and"},{"line_number":143,"context_line":"                network.n1kv__profile_id):"},{"line_number":144,"context_line":"            profiles \u003d api.neutron.profile_list(self.request, \u0027network\u0027)"},{"line_number":145,"context_line":"            if profiles:"},{"line_number":146,"context_line":"                for p in profiles:"},{"line_number":147,"context_line":"                    if (network.n1kv__profile_id \u003d\u003d p.id):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2F2CY%3D","line":144,"in_reply_to":"AAAAWH%2F%2F3l0%3D","updated":"2014-03-13 12:33:03.000000000","message":"Yes - you\u0027re right. Will change this to a get call.","commit_id":"fde0edf98813ef637a72a688ac7ef7cedcf3cb56"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"8580dba244aea57c8fa6b12813735b526c088d71","unresolved":false,"context_lines":[{"line_number":142,"context_line":"        if (api.neutron.is_port_profiles_supported() and"},{"line_number":143,"context_line":"                network.n1kv__profile_id):"},{"line_number":144,"context_line":"            profiles \u003d api.neutron.profile_list(self.request, \u0027network\u0027)"},{"line_number":145,"context_line":"            if profiles:"},{"line_number":146,"context_line":"                for p in profiles:"},{"line_number":147,"context_line":"                    if (network.n1kv__profile_id \u003d\u003d p.id):"},{"line_number":148,"context_line":"                        network.profile_name \u003d getattr(p, \u0027name\u0027, None)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2F3nM%3D","line":145,"updated":"2014-03-13 09:19:56.000000000","message":"\u0027if profile\u0027 looks unnecessary.","commit_id":"fde0edf98813ef637a72a688ac7ef7cedcf3cb56"},{"author":{"_account_id":6620,"name":"Abishek Subramanian","email":"absubram@cisco.com","username":"absubram"},"change_message_id":"2d2d943fbd45dd183cca25946a50e74319eafc72","unresolved":false,"context_lines":[{"line_number":142,"context_line":"        if (api.neutron.is_port_profiles_supported() and"},{"line_number":143,"context_line":"                network.n1kv__profile_id):"},{"line_number":144,"context_line":"            profiles \u003d api.neutron.profile_list(self.request, \u0027network\u0027)"},{"line_number":145,"context_line":"            if profiles:"},{"line_number":146,"context_line":"                for p in profiles:"},{"line_number":147,"context_line":"                    if (network.n1kv__profile_id \u003d\u003d p.id):"},{"line_number":148,"context_line":"                        network.profile_name \u003d getattr(p, \u0027name\u0027, None)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2Fy9g%3D","line":145,"in_reply_to":"AAAAWH%2F%2F0BI%3D","updated":"2014-03-13 18:56:56.000000000","message":"Haha yes, you\u0027re right! doh","commit_id":"fde0edf98813ef637a72a688ac7ef7cedcf3cb56"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"1e73645af40343b01c58de4848575c2db7624aad","unresolved":false,"context_lines":[{"line_number":142,"context_line":"        if (api.neutron.is_port_profiles_supported() and"},{"line_number":143,"context_line":"                network.n1kv__profile_id):"},{"line_number":144,"context_line":"            profiles \u003d api.neutron.profile_list(self.request, \u0027network\u0027)"},{"line_number":145,"context_line":"            if profiles:"},{"line_number":146,"context_line":"                for p in profiles:"},{"line_number":147,"context_line":"                    if (network.n1kv__profile_id \u003d\u003d p.id):"},{"line_number":148,"context_line":"                        network.profile_name \u003d getattr(p, \u0027name\u0027, None)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2F0BI%3D","line":145,"in_reply_to":"AAAAWH%2F%2F2Cw%3D","updated":"2014-03-13 16:52:28.000000000","message":"If you use profile_get, for-loop itself becomes unnecessary :-)","commit_id":"fde0edf98813ef637a72a688ac7ef7cedcf3cb56"},{"author":{"_account_id":6620,"name":"Abishek Subramanian","email":"absubram@cisco.com","username":"absubram"},"change_message_id":"cd183addbd7d04a2101307289337c16fae40dc5d","unresolved":false,"context_lines":[{"line_number":142,"context_line":"        if (api.neutron.is_port_profiles_supported() and"},{"line_number":143,"context_line":"                network.n1kv__profile_id):"},{"line_number":144,"context_line":"            profiles \u003d api.neutron.profile_list(self.request, \u0027network\u0027)"},{"line_number":145,"context_line":"            if profiles:"},{"line_number":146,"context_line":"                for p in profiles:"},{"line_number":147,"context_line":"                    if (network.n1kv__profile_id \u003d\u003d p.id):"},{"line_number":148,"context_line":"                        network.profile_name \u003d getattr(p, \u0027name\u0027, None)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2F2Cw%3D","line":145,"in_reply_to":"AAAAWH%2F%2F3nM%3D","updated":"2014-03-13 12:33:03.000000000","message":"Ah - because my for loop is a for p in profiles, this line becomes redundant?","commit_id":"fde0edf98813ef637a72a688ac7ef7cedcf3cb56"},{"author":{"_account_id":6610,"name":"Zhenguo Niu","email":"Niu.ZGlinux@gmail.com","username":"niu-zglinux"},"change_message_id":"0db07dfd5e074c0fe97dcd8963b1e3f0ba0202bf","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        network \u003d self._get_data()"},{"line_number":140,"context_line":"        if (api.neutron.is_port_profiles_supported() and"},{"line_number":141,"context_line":"                network.n1kv__profile_id):"},{"line_number":142,"context_line":"            profile \u003d api.neutron.profile_get(self.request,"},{"line_number":143,"context_line":"                                              network.n1kv__profile_id)"},{"line_number":144,"context_line":"            network.profile_name \u003d getattr(profile, \u0027name\u0027, None)"},{"line_number":145,"context_line":"        context[\"network\"] \u003d network"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ae8d1ca_c6a3a19c","line":142,"updated":"2014-05-29 05:26:49.000000000","message":"this should be inside a try-except block and seems you\u0027d better to do this in _get_data() instead of get_context_data().","commit_id":"de0b122bb712cdcd29aa16015aade5ebb7dd23ca"},{"author":{"_account_id":6620,"name":"Abishek Subramanian","email":"absubram@cisco.com","username":"absubram"},"change_message_id":"08622a17158cabe812783180470a7020c3b75b0c","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        network \u003d self._get_data()"},{"line_number":140,"context_line":"        if (api.neutron.is_port_profiles_supported() and"},{"line_number":141,"context_line":"                network.n1kv__profile_id):"},{"line_number":142,"context_line":"            profile \u003d api.neutron.profile_get(self.request,"},{"line_number":143,"context_line":"                                              network.n1kv__profile_id)"},{"line_number":144,"context_line":"            network.profile_name \u003d getattr(profile, \u0027name\u0027, None)"},{"line_number":145,"context_line":"        context[\"network\"] \u003d network"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_6e1ad719","line":142,"in_reply_to":"3ae8d1ca_c6a3a19c","updated":"2014-07-22 18:04:45.000000000","message":"Done","commit_id":"de0b122bb712cdcd29aa16015aade5ebb7dd23ca"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"c0656d7b44839cfa1bb571c172acce6865307317","unresolved":false,"context_lines":[{"line_number":132,"context_line":"                    network.n1kv__profile_id):"},{"line_number":133,"context_line":"                profile \u003d api.neutron.profile_get(self.request,"},{"line_number":134,"context_line":"                                                  network.n1kv__profile_id)"},{"line_number":135,"context_line":"                network.profile_name \u003d getattr(profile, \u0027name\u0027, None)"},{"line_number":136,"context_line":"        except Exception:"},{"line_number":137,"context_line":"            msg \u003d _(\u0027Unable to retrieve details for network \"%s\".\u0027) \\"},{"line_number":138,"context_line":"                % (network_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"da9df570_508de530","line":135,"updated":"2014-09-20 17:07:50.000000000","message":"I wonder why getattr is needed. Is \"name\" optional in network profile? I don\u0027t know the API definition of network profile.","commit_id":"a530c00643c32ca4c1f33df641c9045960dc383f"},{"author":{"_account_id":6620,"name":"Abishek Subramanian","email":"absubram@cisco.com","username":"absubram"},"change_message_id":"3bb53629b026106ec0ee1965cfd594748b684209","unresolved":false,"context_lines":[{"line_number":132,"context_line":"                    network.n1kv__profile_id):"},{"line_number":133,"context_line":"                profile \u003d api.neutron.profile_get(self.request,"},{"line_number":134,"context_line":"                                                  network.n1kv__profile_id)"},{"line_number":135,"context_line":"                network.profile_name \u003d getattr(profile, \u0027name\u0027, None)"},{"line_number":136,"context_line":"        except Exception:"},{"line_number":137,"context_line":"            msg \u003d _(\u0027Unable to retrieve details for network \"%s\".\u0027) \\"},{"line_number":138,"context_line":"                % (network_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"da9df570_f0ac198f","line":135,"in_reply_to":"da9df570_508de530","updated":"2014-09-20 17:16:26.000000000","message":"Yes - profile name is optional when a profile is created. Just like other network options - like network create doesn\u0027t ned a name.","commit_id":"a530c00643c32ca4c1f33df641c9045960dc383f"},{"author":{"_account_id":6620,"name":"Abishek Subramanian","email":"absubram@cisco.com","username":"absubram"},"change_message_id":"c2f3d5ad973024a6e61bff1f892b528cfa7a6a04","unresolved":false,"context_lines":[{"line_number":132,"context_line":"                    network.n1kv__profile_id):"},{"line_number":133,"context_line":"                profile \u003d api.neutron.profile_get(self.request,"},{"line_number":134,"context_line":"                                                  network.n1kv__profile_id)"},{"line_number":135,"context_line":"                network.profile_name \u003d getattr(profile, \u0027name\u0027, None)"},{"line_number":136,"context_line":"        except Exception:"},{"line_number":137,"context_line":"            msg \u003d _(\u0027Unable to retrieve details for network \"%s\".\u0027) \\"},{"line_number":138,"context_line":"                % (network_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"da9df570_7c88f222","line":135,"in_reply_to":"da9df570_d3c0ff7e","updated":"2014-09-23 14:41:36.000000000","message":"Ah yes. Got what you mean. Yes will change this.","commit_id":"a530c00643c32ca4c1f33df641c9045960dc383f"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"91066f6dae16771e03fdc3a609d4bad3b152ad38","unresolved":false,"context_lines":[{"line_number":132,"context_line":"                    network.n1kv__profile_id):"},{"line_number":133,"context_line":"                profile \u003d api.neutron.profile_get(self.request,"},{"line_number":134,"context_line":"                                                  network.n1kv__profile_id)"},{"line_number":135,"context_line":"                network.profile_name \u003d getattr(profile, \u0027name\u0027, None)"},{"line_number":136,"context_line":"        except Exception:"},{"line_number":137,"context_line":"            msg \u003d _(\u0027Unable to retrieve details for network \"%s\".\u0027) \\"},{"line_number":138,"context_line":"                % (network_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"da9df570_d3c0ff7e","line":135,"in_reply_to":"da9df570_f0ac198f","updated":"2014-09-20 19:22:34.000000000","message":"But in a case of \"network\", \"name\" attribute always exists even if it is empty, so we always access network name by \"network[\u0027name\u0027]\". Is it different for network profile?\n\nIf \"name\" attr always exists, the line should be profile[\u0027name\u0027].","commit_id":"a530c00643c32ca4c1f33df641c9045960dc383f"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"8e2955cfa79e8b69b8dca3440538b8e2efc3f5b6","unresolved":false,"context_lines":[{"line_number":132,"context_line":"                    network.n1kv__profile_id):"},{"line_number":133,"context_line":"                profile \u003d api.neutron.profile_get(self.request,"},{"line_number":134,"context_line":"                                                  network.n1kv__profile_id)"},{"line_number":135,"context_line":"                network.profile_name \u003d profile[\u0027name\u0027]"},{"line_number":136,"context_line":"        except Exception:"},{"line_number":137,"context_line":"            msg \u003d _(\u0027Unable to retrieve details for network \"%s\".\u0027) \\"},{"line_number":138,"context_line":"                % (network_id)"}],"source_content_type":"text/x-python","patch_set":11,"id":"baa201ad_8a33caf4","line":135,"updated":"2014-10-08 08:04:04.000000000","message":"Same comment for admin/networks/view","commit_id":"dc024c2af725bad3e2b13c76ad59e4d33e1b02e8"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"67b5e37edd247d84019e539dd009740f6e381225","unresolved":false,"context_lines":[{"line_number":128,"context_line":"            network_id \u003d self.kwargs[\u0027network_id\u0027]"},{"line_number":129,"context_line":"            network \u003d api.neutron.network_get(self.request, network_id)"},{"line_number":130,"context_line":"            network.set_id_as_name_if_empty(length\u003d0)"},{"line_number":131,"context_line":"            if network.profile_id:"},{"line_number":132,"context_line":"                profile \u003d api.neutron.profile_get(self.request,"},{"line_number":133,"context_line":"                                                  network.profile_id)"},{"line_number":134,"context_line":"                network.profile_name \u003d profile[\u0027name\u0027]"}],"source_content_type":"text/x-python","patch_set":13,"id":"9aa7fdbe_51ce42b5","line":131,"updated":"2014-10-23 17:05:55.000000000","message":"Same comment as for admin.network.view.","commit_id":"d06d476a68a9fef2192c340bbe8d5ad35aa831c3"},{"author":{"_account_id":6620,"name":"Abishek Subramanian","email":"absubram@cisco.com","username":"absubram"},"change_message_id":"ab5e3fd2a8ce98e0af07a2f3fe761b8f8448d266","unresolved":false,"context_lines":[{"line_number":128,"context_line":"            network_id \u003d self.kwargs[\u0027network_id\u0027]"},{"line_number":129,"context_line":"            network \u003d api.neutron.network_get(self.request, network_id)"},{"line_number":130,"context_line":"            network.set_id_as_name_if_empty(length\u003d0)"},{"line_number":131,"context_line":"            if network.profile_id:"},{"line_number":132,"context_line":"                profile \u003d api.neutron.profile_get(self.request,"},{"line_number":133,"context_line":"                                                  network.profile_id)"},{"line_number":134,"context_line":"                network.profile_name \u003d profile[\u0027name\u0027]"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a961159_eaef24af","line":131,"in_reply_to":"9aa7fdbe_51ce42b5","updated":"2014-12-11 21:20:17.000000000","message":"Done","commit_id":"d06d476a68a9fef2192c340bbe8d5ad35aa831c3"}],"openstack_dashboard/test/test_data/neutron_data.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"c0656d7b44839cfa1bb571c172acce6865307317","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                    \u0027shared\u0027: False}"},{"line_number":90,"context_line":"    # If the cisco n1k profiles are being used, assign a profile to"},{"line_number":91,"context_line":"    # the network in order for testing network details"},{"line_number":92,"context_line":"    network_dict[\u0027n1kv__profile_id\u0027] \u003d ("},{"line_number":93,"context_line":"        \u002700000000-1111-1111-1111-000000000000\u0027)"},{"line_number":94,"context_line":"    subnet_dict \u003d {\u0027allocation_pools\u0027: [{\u0027end\u0027: \u002710.0.0.254\u0027,"},{"line_number":95,"context_line":"                                         \u0027start\u0027: \u002710.0.0.2\u0027}],"}],"source_content_type":"text/x-python","patch_set":8,"id":"da9df570_d01c7516","line":92,"updated":"2014-09-20 17:07:50.000000000","message":"network_dict is a dict in Neutron API. I think it is n1kv:profile_id  in Neutron API layer.","commit_id":"a530c00643c32ca4c1f33df641c9045960dc383f"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"91066f6dae16771e03fdc3a609d4bad3b152ad38","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                    \u0027shared\u0027: False}"},{"line_number":90,"context_line":"    # If the cisco n1k profiles are being used, assign a profile to"},{"line_number":91,"context_line":"    # the network in order for testing network details"},{"line_number":92,"context_line":"    network_dict[\u0027n1kv__profile_id\u0027] \u003d ("},{"line_number":93,"context_line":"        \u002700000000-1111-1111-1111-000000000000\u0027)"},{"line_number":94,"context_line":"    subnet_dict \u003d {\u0027allocation_pools\u0027: [{\u0027end\u0027: \u002710.0.0.254\u0027,"},{"line_number":95,"context_line":"                                         \u0027start\u0027: \u002710.0.0.2\u0027}],"}],"source_content_type":"text/x-python","patch_set":8,"id":"da9df570_533c0f94","line":92,"in_reply_to":"da9df570_50bb25c4","updated":"2014-09-20 19:22:34.000000000","message":"Have you check what Neutron returns in the raw layer (i.e., socket layer)?\n\nIn Neutron API layer, \":\" is returned. api/neutron layer provides \"__\" style in addition to \":\" (with dict access). You can check what api.neutron.Neutron or NeutronAPIDictWrapper does.\n\nnetwork_dict itself should be same as data returned by Neutron API (i.e., what neutronclient library return).","commit_id":"a530c00643c32ca4c1f33df641c9045960dc383f"},{"author":{"_account_id":6620,"name":"Abishek Subramanian","email":"absubram@cisco.com","username":"absubram"},"change_message_id":"c2f3d5ad973024a6e61bff1f892b528cfa7a6a04","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                    \u0027shared\u0027: False}"},{"line_number":90,"context_line":"    # If the cisco n1k profiles are being used, assign a profile to"},{"line_number":91,"context_line":"    # the network in order for testing network details"},{"line_number":92,"context_line":"    network_dict[\u0027n1kv__profile_id\u0027] \u003d ("},{"line_number":93,"context_line":"        \u002700000000-1111-1111-1111-000000000000\u0027)"},{"line_number":94,"context_line":"    subnet_dict \u003d {\u0027allocation_pools\u0027: [{\u0027end\u0027: \u002710.0.0.254\u0027,"},{"line_number":95,"context_line":"                                         \u0027start\u0027: \u002710.0.0.2\u0027}],"}],"source_content_type":"text/x-python","patch_set":8,"id":"da9df570_9c8d9634","line":92,"in_reply_to":"da9df570_533c0f94","updated":"2014-09-23 14:41:36.000000000","message":"Got it - will check and update.","commit_id":"a530c00643c32ca4c1f33df641c9045960dc383f"},{"author":{"_account_id":6620,"name":"Abishek Subramanian","email":"absubram@cisco.com","username":"absubram"},"change_message_id":"3bb53629b026106ec0ee1965cfd594748b684209","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                    \u0027shared\u0027: False}"},{"line_number":90,"context_line":"    # If the cisco n1k profiles are being used, assign a profile to"},{"line_number":91,"context_line":"    # the network in order for testing network details"},{"line_number":92,"context_line":"    network_dict[\u0027n1kv__profile_id\u0027] \u003d ("},{"line_number":93,"context_line":"        \u002700000000-1111-1111-1111-000000000000\u0027)"},{"line_number":94,"context_line":"    subnet_dict \u003d {\u0027allocation_pools\u0027: [{\u0027end\u0027: \u002710.0.0.254\u0027,"},{"line_number":95,"context_line":"                                         \u0027start\u0027: \u002710.0.0.2\u0027}],"}],"source_content_type":"text/x-python","patch_set":8,"id":"da9df570_50bb25c4","line":92,"in_reply_to":"da9df570_d01c7516","updated":"2014-09-20 17:16:26.000000000","message":"This is true it is n1kv:profile_id.\nHowever when neutron returns the data to Horizon, it ends up being n1kv__profile_id?\nIt is why in L27 in _detail_overview, I use the same n1kv__profile_id.\nDoes \u0027:\u0027 get translated to \u0027__\u0027? Or as I imagine they are different?","commit_id":"a530c00643c32ca4c1f33df641c9045960dc383f"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"86cc78e57b0a251fe75349f326d41d2f0026ba83","unresolved":false,"context_lines":[{"line_number":106,"context_line":"    network \u003d copy.deepcopy(network_dict)"},{"line_number":107,"context_line":"    subnet \u003d neutron.Subnet(subnet_dict)"},{"line_number":108,"context_line":"    network[\u0027subnets\u0027] \u003d [subnet]"},{"line_number":109,"context_line":"    network[\u0027profile_id\u0027] \u003d False"},{"line_number":110,"context_line":"    TEST.networks.add(neutron.Network(network))"},{"line_number":111,"context_line":"    TEST.subnets.add(subnet)"},{"line_number":112,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"fa81d914_1974779b","line":109,"updated":"2015-01-27 20:33:23.000000000","message":"unnecessary","commit_id":"8f3f4e40ee62bbfbbc39457859390514ac012e07"},{"author":{"_account_id":6620,"name":"Abishek Subramanian","email":"absubram@cisco.com","username":"absubram"},"change_message_id":"387a0667fa083769fa3270f5da28cbca45f7d5b7","unresolved":false,"context_lines":[{"line_number":106,"context_line":"    network \u003d copy.deepcopy(network_dict)"},{"line_number":107,"context_line":"    subnet \u003d neutron.Subnet(subnet_dict)"},{"line_number":108,"context_line":"    network[\u0027subnets\u0027] \u003d [subnet]"},{"line_number":109,"context_line":"    network[\u0027profile_id\u0027] \u003d False"},{"line_number":110,"context_line":"    TEST.networks.add(neutron.Network(network))"},{"line_number":111,"context_line":"    TEST.subnets.add(subnet)"},{"line_number":112,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"9a80dd14_7721c5fb","line":109,"in_reply_to":"fa81d914_1974779b","updated":"2015-03-17 17:09:50.000000000","message":"Done","commit_id":"8f3f4e40ee62bbfbbc39457859390514ac012e07"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"86cc78e57b0a251fe75349f326d41d2f0026ba83","unresolved":false,"context_lines":[{"line_number":278,"context_line":"    network \u003d copy.deepcopy(network_dict)"},{"line_number":279,"context_line":"    subnet \u003d neutron.Subnet(subnet_dict)"},{"line_number":280,"context_line":"    network[\u0027subnets\u0027] \u003d [subnet]"},{"line_number":281,"context_line":"    network[\u0027profile_id\u0027] \u003d False"},{"line_number":282,"context_line":"    TEST.networks.add(neutron.Network(network))"},{"line_number":283,"context_line":"    TEST.subnets.add(subnet)"},{"line_number":284,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"fa81d914_b9928b9d","line":281,"updated":"2015-01-27 20:33:23.000000000","message":"unnecessary","commit_id":"8f3f4e40ee62bbfbbc39457859390514ac012e07"},{"author":{"_account_id":6620,"name":"Abishek Subramanian","email":"absubram@cisco.com","username":"absubram"},"change_message_id":"387a0667fa083769fa3270f5da28cbca45f7d5b7","unresolved":false,"context_lines":[{"line_number":278,"context_line":"    network \u003d copy.deepcopy(network_dict)"},{"line_number":279,"context_line":"    subnet \u003d neutron.Subnet(subnet_dict)"},{"line_number":280,"context_line":"    network[\u0027subnets\u0027] \u003d [subnet]"},{"line_number":281,"context_line":"    network[\u0027profile_id\u0027] \u003d False"},{"line_number":282,"context_line":"    TEST.networks.add(neutron.Network(network))"},{"line_number":283,"context_line":"    TEST.subnets.add(subnet)"},{"line_number":284,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"9a80dd14_971e39ba","line":281,"in_reply_to":"fa81d914_b9928b9d","updated":"2015-03-17 17:09:50.000000000","message":"Done","commit_id":"8f3f4e40ee62bbfbbc39457859390514ac012e07"}]}
