)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"04474933e01a3e3cf67c00daa45b79bb4aafef05","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"This patch also adds a check for the maximum number of ports on \u0027standard\u0027"},{"line_number":19,"context_line":"overlay networks, and performs some code refactoring for improving"},{"line_number":20,"context_line":"maintanability. For instance the NVPCluster class has been moved into its own"},{"line_number":21,"context_line":"module."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Change-Id: Ib26d327daf748cfcba9ca74e8dc2e8e89c676c2e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAMH%2F%2FyfA%3D","line":20,"updated":"2012-11-23 12:34:34.000000000","message":"typo - maintanability","commit_id":"f46294c8e2db13aa26dc4b85d78db88730dc1c49"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"This patch also adds a check for the maximum number of ports on \u0027standard\u0027"},{"line_number":19,"context_line":"overlay networks, and performs some code refactoring for improving"},{"line_number":20,"context_line":"maintanability. For instance the NVPCluster class has been moved into its own"},{"line_number":21,"context_line":"module."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Change-Id: Ib26d327daf748cfcba9ca74e8dc2e8e89c676c2e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAMH%2F%2FvF4%3D","line":20,"in_reply_to":"AAAAMH%2F%2FyfA%3D","updated":"2012-11-28 09:12:17.000000000","message":"Isn\u0027t that what I wrote?","commit_id":"f46294c8e2db13aa26dc4b85d78db88730dc1c49"}],"quantum/extensions/providernet.py":[{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"# TODO(salvatore-orlando): Devise a solution for allowing plugins"},{"line_number":23,"context_line":"# to alter the set of allowed values"},{"line_number":24,"context_line":"NETWORK_TYPE_VALUES \u003d [\u0027flat\u0027, \u0027gre\u0027, \u0027local\u0027, \u0027vlan\u0027, \u0027stt\u0027]"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"EXTENDED_ATTRIBUTES_2_0 \u003d {"},{"line_number":27,"context_line":"    \u0027networks\u0027: {"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMH%2F%2FtxI%3D","line":24,"updated":"2012-11-29 18:10:43.000000000","message":"yeah, ideally I think the extension would query the plugin to ask it what types of network types it supported, so it could actually enforce that a particular network type was valid for the current plugin.","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":20,"context_line":"SEGMENTATION_ID \u003d \u0027provider:segmentation_id\u0027"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"# TODO(salvatore-orlando): Devise a solution for allowing plugins"},{"line_number":23,"context_line":"# to alter the set of allowed values"},{"line_number":24,"context_line":"NETWORK_TYPE_VALUES \u003d [\u0027flat\u0027, \u0027gre\u0027, \u0027local\u0027, \u0027vlan\u0027, \u0027stt\u0027]"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"EXTENDED_ATTRIBUTES_2_0 \u003d {"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAM3%2F%2F3NA%3D","line":23,"updated":"2012-12-30 07:45:39.000000000","message":"That would be great. It would also be nice if the admin user was able to get the supported network types.","commit_id":"dd3735cd5830b0ac26503386186bf74c21713f0b"}],"quantum/plugins/nicira/nicira_nvp_plugin/QuantumPlugin.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"04474933e01a3e3cf67c00daa45b79bb4aafef05","unresolved":false,"context_lines":[{"line_number":23,"context_line":"import ConfigParser"},{"line_number":24,"context_line":"import json"},{"line_number":25,"context_line":"import hashlib"},{"line_number":26,"context_line":"import logging"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"import webob.exc"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMH%2F%2Fye8%3D","line":26,"updated":"2012-11-23 12:34:34.000000000","message":"please consider to use the common logging","commit_id":"f46294c8e2db13aa26dc4b85d78db88730dc1c49"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":23,"context_line":"import ConfigParser"},{"line_number":24,"context_line":"import json"},{"line_number":25,"context_line":"import hashlib"},{"line_number":26,"context_line":"import logging"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"import webob.exc"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMH%2F%2FvF0%3D","line":26,"in_reply_to":"AAAAMH%2F%2Fye8%3D","updated":"2012-11-28 09:12:17.000000000","message":"There\u0027s now a separate patch for it: https://review.openstack.org/17016","commit_id":"f46294c8e2db13aa26dc4b85d78db88730dc1c49"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"04474933e01a3e3cf67c00daa45b79bb4aafef05","unresolved":false,"context_lines":[{"line_number":208,"context_line":"            return self.novazone_cluster_map[novazone_id]"},{"line_number":209,"context_line":"        LOG.debug(\"Looking for nova zone: %s\" % novazone_id)"},{"line_number":210,"context_line":"        for x in self.clusters:"},{"line_number":211,"context_line":"            LOG.debug(\"Looking for nova zone %s in cluster: %s\","},{"line_number":212,"context_line":"                      novazone_id, x)"},{"line_number":213,"context_line":"            if x.zone \u003d\u003d str(novazone_id):"},{"line_number":214,"context_line":"                self.novazone_cluster_map[x.zone] \u003d x"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMH%2F%2Fye4%3D","line":211,"updated":"2012-11-23 12:34:34.000000000","message":"Can you use the string localization format?","commit_id":"f46294c8e2db13aa26dc4b85d78db88730dc1c49"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":208,"context_line":"            return self.novazone_cluster_map[novazone_id]"},{"line_number":209,"context_line":"        LOG.debug(\"Looking for nova zone: %s\" % novazone_id)"},{"line_number":210,"context_line":"        for x in self.clusters:"},{"line_number":211,"context_line":"            LOG.debug(\"Looking for nova zone %s in cluster: %s\","},{"line_number":212,"context_line":"                      novazone_id, x)"},{"line_number":213,"context_line":"            if x.zone \u003d\u003d str(novazone_id):"},{"line_number":214,"context_line":"                self.novazone_cluster_map[x.zone] \u003d x"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMH%2F%2FvFw%3D","line":211,"in_reply_to":"AAAAMH%2F%2Fye4%3D","updated":"2012-11-28 09:12:17.000000000","message":"Done","commit_id":"f46294c8e2db13aa26dc4b85d78db88730dc1c49"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"04474933e01a3e3cf67c00daa45b79bb4aafef05","unresolved":false,"context_lines":[{"line_number":213,"context_line":"            if x.zone \u003d\u003d str(novazone_id):"},{"line_number":214,"context_line":"                self.novazone_cluster_map[x.zone] \u003d x"},{"line_number":215,"context_line":"                return x"},{"line_number":216,"context_line":"        LOG.error(\"Unable to find cluster config entry for nova zone: %s\" %"},{"line_number":217,"context_line":"                  novazone_id)"},{"line_number":218,"context_line":"        raise nvp_exc.NvpInvalidNovaZone(nova_zone\u003dnovazone_id)"},{"line_number":219,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMH%2F%2Fye0%3D","line":216,"updated":"2012-11-23 12:34:34.000000000","message":"Ditto","commit_id":"f46294c8e2db13aa26dc4b85d78db88730dc1c49"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":213,"context_line":"            if x.zone \u003d\u003d str(novazone_id):"},{"line_number":214,"context_line":"                self.novazone_cluster_map[x.zone] \u003d x"},{"line_number":215,"context_line":"                return x"},{"line_number":216,"context_line":"        LOG.error(\"Unable to find cluster config entry for nova zone: %s\" %"},{"line_number":217,"context_line":"                  novazone_id)"},{"line_number":218,"context_line":"        raise nvp_exc.NvpInvalidNovaZone(nova_zone\u003dnovazone_id)"},{"line_number":219,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMH%2F%2FvDs%3D","line":216,"in_reply_to":"AAAAMH%2F%2Fye0%3D","updated":"2012-11-28 09:12:17.000000000","message":"Done","commit_id":"f46294c8e2db13aa26dc4b85d78db88730dc1c49"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"04474933e01a3e3cf67c00daa45b79bb4aafef05","unresolved":false,"context_lines":[{"line_number":382,"context_line":"                net_data[attr] \u003d None"},{"line_number":383,"context_line":"        # FIXME(arosen) implement admin_state_up \u003d False in NVP"},{"line_number":384,"context_line":"        if net_data[\u0027admin_state_up\u0027] is False:"},{"line_number":385,"context_line":"            LOG.warning(\"Network with admin_state_up\u003dFalse are not yet \""},{"line_number":386,"context_line":"                        \"supported by this plugin. Ignoring setting for \""},{"line_number":387,"context_line":"                        \"network %s\", net_data.get(\u0027name\u0027, \u0027\u003cunknown\u003e\u0027))"},{"line_number":388,"context_line":"        tenant_id \u003d self._get_tenant_id_for_create(context, net_data)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMH%2F%2Fyew%3D","line":385,"updated":"2012-11-23 12:34:34.000000000","message":"locallization","commit_id":"f46294c8e2db13aa26dc4b85d78db88730dc1c49"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":382,"context_line":"                net_data[attr] \u003d None"},{"line_number":383,"context_line":"        # FIXME(arosen) implement admin_state_up \u003d False in NVP"},{"line_number":384,"context_line":"        if net_data[\u0027admin_state_up\u0027] is False:"},{"line_number":385,"context_line":"            LOG.warning(\"Network with admin_state_up\u003dFalse are not yet \""},{"line_number":386,"context_line":"                        \"supported by this plugin. Ignoring setting for \""},{"line_number":387,"context_line":"                        \"network %s\", net_data.get(\u0027name\u0027, \u0027\u003cunknown\u003e\u0027))"},{"line_number":388,"context_line":"        tenant_id \u003d self._get_tenant_id_for_create(context, net_data)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMH%2F%2FvDc%3D","line":385,"in_reply_to":"AAAAMH%2F%2Fyew%3D","updated":"2012-11-28 09:12:17.000000000","message":"Done","commit_id":"f46294c8e2db13aa26dc4b85d78db88730dc1c49"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"04474933e01a3e3cf67c00daa45b79bb4aafef05","unresolved":false,"context_lines":[{"line_number":487,"context_line":"                    not lswitch_status.get(\u0027fabric_status\u0027, None)):"},{"line_number":488,"context_line":"                    net_op_status \u003d constants.NET_STATUS_DOWN"},{"line_number":489,"context_line":"                    break"},{"line_number":490,"context_line":"            LOG.debug(\"Current network status:%s; Status in Quantum DB:%s\","},{"line_number":491,"context_line":"                      net_op_status, network.status)"},{"line_number":492,"context_line":"            if net_op_status !\u003d network.status:"},{"line_number":493,"context_line":"                # update the network status"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMH%2F%2Fyeo%3D","line":490,"updated":"2012-11-23 12:34:34.000000000","message":"localization","commit_id":"f46294c8e2db13aa26dc4b85d78db88730dc1c49"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":487,"context_line":"                    not lswitch_status.get(\u0027fabric_status\u0027, None)):"},{"line_number":488,"context_line":"                    net_op_status \u003d constants.NET_STATUS_DOWN"},{"line_number":489,"context_line":"                    break"},{"line_number":490,"context_line":"            LOG.debug(\"Current network status:%s; Status in Quantum DB:%s\","},{"line_number":491,"context_line":"                      net_op_status, network.status)"},{"line_number":492,"context_line":"            if net_op_status !\u003d network.status:"},{"line_number":493,"context_line":"                # update the network status"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMH%2F%2FvDU%3D","line":490,"in_reply_to":"AAAAMH%2F%2Fyeo%3D","updated":"2012-11-28 09:12:17.000000000","message":"Done","commit_id":"f46294c8e2db13aa26dc4b85d78db88730dc1c49"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"04474933e01a3e3cf67c00daa45b79bb4aafef05","unresolved":false,"context_lines":[{"line_number":494,"context_line":"                with context.session.begin(subtransactions\u003dTrue):"},{"line_number":495,"context_line":"                    network.status \u003d net_op_status"},{"line_number":496,"context_line":"        except Exception:"},{"line_number":497,"context_line":"            err_msg \u003d \"Unable to get logical switches\""},{"line_number":498,"context_line":"            LOG.exception(err_msg)"},{"line_number":499,"context_line":"            raise nvp_exc.NvpPluginException(err_msg\u003derr_msg)"},{"line_number":500,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMH%2F%2Fyek%3D","line":497,"updated":"2012-11-23 12:34:34.000000000","message":"ditto","commit_id":"f46294c8e2db13aa26dc4b85d78db88730dc1c49"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":494,"context_line":"                with context.session.begin(subtransactions\u003dTrue):"},{"line_number":495,"context_line":"                    network.status \u003d net_op_status"},{"line_number":496,"context_line":"        except Exception:"},{"line_number":497,"context_line":"            err_msg \u003d \"Unable to get logical switches\""},{"line_number":498,"context_line":"            LOG.exception(err_msg)"},{"line_number":499,"context_line":"            raise nvp_exc.NvpPluginException(err_msg\u003derr_msg)"},{"line_number":500,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMH%2F%2FvDQ%3D","line":497,"in_reply_to":"AAAAMH%2F%2Fyek%3D","updated":"2012-11-28 09:12:17.000000000","message":"Done","commit_id":"f46294c8e2db13aa26dc4b85d78db88730dc1c49"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"04474933e01a3e3cf67c00daa45b79bb4aafef05","unresolved":false,"context_lines":[{"line_number":554,"context_line":""},{"line_number":555,"context_line":"                nvp_lswitches.extend(res)"},{"line_number":556,"context_line":"        except Exception:"},{"line_number":557,"context_line":"            err_msg \u003d \"Unable to get logical switches\""},{"line_number":558,"context_line":"            LOG.exception(err_msg)"},{"line_number":559,"context_line":"            raise nvp_exc.NvpPluginException(err_msg\u003derr_msg)"},{"line_number":560,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMH%2F%2Fyeg%3D","line":557,"updated":"2012-11-23 12:34:34.000000000","message":"ditto","commit_id":"f46294c8e2db13aa26dc4b85d78db88730dc1c49"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":554,"context_line":""},{"line_number":555,"context_line":"                nvp_lswitches.extend(res)"},{"line_number":556,"context_line":"        except Exception:"},{"line_number":557,"context_line":"            err_msg \u003d \"Unable to get logical switches\""},{"line_number":558,"context_line":"            LOG.exception(err_msg)"},{"line_number":559,"context_line":"            raise nvp_exc.NvpPluginException(err_msg\u003derr_msg)"},{"line_number":560,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMH%2F%2FvDM%3D","line":557,"in_reply_to":"AAAAMH%2F%2Fyeg%3D","updated":"2012-11-28 09:12:17.000000000","message":"Done","commit_id":"f46294c8e2db13aa26dc4b85d78db88730dc1c49"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"04474933e01a3e3cf67c00daa45b79bb4aafef05","unresolved":false,"context_lines":[{"line_number":710,"context_line":"                                nvp_lports[tag[\"tag\"]] \u003d port"},{"line_number":711,"context_line":""},{"line_number":712,"context_line":"        except Exception:"},{"line_number":713,"context_line":"            err_msg \u003d \"Unable to get ports\""},{"line_number":714,"context_line":"            LOG.exception(err_msg)"},{"line_number":715,"context_line":"            raise nvp_exc.NvpPluginException(err_msg\u003derr_msg)"},{"line_number":716,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMH%2F%2Fyec%3D","line":713,"updated":"2012-11-23 12:34:34.000000000","message":"ditto","commit_id":"f46294c8e2db13aa26dc4b85d78db88730dc1c49"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":710,"context_line":"                                nvp_lports[tag[\"tag\"]] \u003d port"},{"line_number":711,"context_line":""},{"line_number":712,"context_line":"        except Exception:"},{"line_number":713,"context_line":"            err_msg \u003d \"Unable to get ports\""},{"line_number":714,"context_line":"            LOG.exception(err_msg)"},{"line_number":715,"context_line":"            raise nvp_exc.NvpPluginException(err_msg\u003derr_msg)"},{"line_number":716,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMH%2F%2FvCw%3D","line":713,"in_reply_to":"AAAAMH%2F%2Fyec%3D","updated":"2012-11-28 09:12:17.000000000","message":"Done","commit_id":"f46294c8e2db13aa26dc4b85d78db88730dc1c49"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"04474933e01a3e3cf67c00daa45b79bb4aafef05","unresolved":false,"context_lines":[{"line_number":829,"context_line":"            super(NvpPluginV2, self).delete_port(context, port[\"port\"][\"id\"])"},{"line_number":830,"context_line":"            raise"},{"line_number":831,"context_line":""},{"line_number":832,"context_line":"        LOG.debug(\"create_port completed for tenant %s: (%s,%s)\" %"},{"line_number":833,"context_line":"                  (port_data[\u0027tenant_id\u0027],"},{"line_number":834,"context_line":"                   port_data[\u0027id\u0027],"},{"line_number":835,"context_line":"                   port_data[\u0027status\u0027]))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMH%2F%2FyeY%3D","line":832,"updated":"2012-11-23 12:34:34.000000000","message":"ditto","commit_id":"f46294c8e2db13aa26dc4b85d78db88730dc1c49"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":829,"context_line":"            super(NvpPluginV2, self).delete_port(context, port[\"port\"][\"id\"])"},{"line_number":830,"context_line":"            raise"},{"line_number":831,"context_line":""},{"line_number":832,"context_line":"        LOG.debug(\"create_port completed for tenant %s: (%s,%s)\" %"},{"line_number":833,"context_line":"                  (port_data[\u0027tenant_id\u0027],"},{"line_number":834,"context_line":"                   port_data[\u0027id\u0027],"},{"line_number":835,"context_line":"                   port_data[\u0027status\u0027]))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMH%2F%2FvCU%3D","line":832,"in_reply_to":"AAAAMH%2F%2FyeY%3D","updated":"2012-11-28 09:12:17.000000000","message":"Done","commit_id":"f46294c8e2db13aa26dc4b85d78db88730dc1c49"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"04474933e01a3e3cf67c00daa45b79bb4aafef05","unresolved":false,"context_lines":[{"line_number":877,"context_line":""},{"line_number":878,"context_line":"        params[\"cluster\"] \u003d cluster"},{"line_number":879,"context_line":"        params[\"port\"] \u003d port_quantum"},{"line_number":880,"context_line":"        LOG.debug(\"Update port request: %s\" % (params))"},{"line_number":881,"context_line":"        nvplib.update_port(port_quantum[\u0027network_id\u0027],"},{"line_number":882,"context_line":"                           port_nvp[\u0027uuid\u0027], **params)"},{"line_number":883,"context_line":"        return super(NvpPluginV2, self).update_port(context, id, port)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMH%2F%2FyeU%3D","line":880,"updated":"2012-11-23 12:34:34.000000000","message":"ditto","commit_id":"f46294c8e2db13aa26dc4b85d78db88730dc1c49"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":877,"context_line":""},{"line_number":878,"context_line":"        params[\"cluster\"] \u003d cluster"},{"line_number":879,"context_line":"        params[\"port\"] \u003d port_quantum"},{"line_number":880,"context_line":"        LOG.debug(\"Update port request: %s\" % (params))"},{"line_number":881,"context_line":"        nvplib.update_port(port_quantum[\u0027network_id\u0027],"},{"line_number":882,"context_line":"                           port_nvp[\u0027uuid\u0027], **params)"},{"line_number":883,"context_line":"        return super(NvpPluginV2, self).update_port(context, id, port)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMH%2F%2FvCQ%3D","line":880,"in_reply_to":"AAAAMH%2F%2FyeU%3D","updated":"2012-11-28 09:12:17.000000000","message":"Done","commit_id":"f46294c8e2db13aa26dc4b85d78db88730dc1c49"},{"author":{"_account_id":1994,"name":"Zhongyue Luo","email":"zhongyue.luo@gmail.com","username":"zyluo"},"change_message_id":"b273dc1f106dca80b4d3b167cf846105bb0cb3c6","unresolved":false,"context_lines":[{"line_number":206,"context_line":"    def _novazone_to_cluster(self, novazone_id):"},{"line_number":207,"context_line":"        if novazone_id in self.novazone_cluster_map:"},{"line_number":208,"context_line":"            return self.novazone_cluster_map[novazone_id]"},{"line_number":209,"context_line":"        LOG.debug(_(\"Looking for nova zone: %s\" % novazone_id))"},{"line_number":210,"context_line":"        for x in self.clusters:"},{"line_number":211,"context_line":"            LOG.debug(_(\"Looking for nova zone %(novazone_id)s in \""},{"line_number":212,"context_line":"                        \"cluster: %(x)s\""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAMH%2F%2Fuo0%3D","line":209,"updated":"2012-11-28 12:59:48.000000000","message":"LOG.debug(_(\"Looking for nova zone: %s\") % novazone_id)","commit_id":"9340f345a8066af75e27852b7ba1aa1b45df31a4"},{"author":{"_account_id":1994,"name":"Zhongyue Luo","email":"zhongyue.luo@gmail.com","username":"zyluo"},"change_message_id":"b273dc1f106dca80b4d3b167cf846105bb0cb3c6","unresolved":false,"context_lines":[{"line_number":210,"context_line":"        for x in self.clusters:"},{"line_number":211,"context_line":"            LOG.debug(_(\"Looking for nova zone %(novazone_id)s in \""},{"line_number":212,"context_line":"                        \"cluster: %(x)s\""},{"line_number":213,"context_line":"                        % locals()))"},{"line_number":214,"context_line":"            if x.zone \u003d\u003d str(novazone_id):"},{"line_number":215,"context_line":"                self.novazone_cluster_map[x.zone] \u003d x"},{"line_number":216,"context_line":"                return x"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAMH%2F%2FupI%3D","line":213,"updated":"2012-11-28 12:59:48.000000000","message":"Shouldn\u0027t this line be:\nLOG.debug(_(\"Looking for nova zone %(novazone_id)s in \"\n            \"cluster: %(x)s\") % locals())","commit_id":"9340f345a8066af75e27852b7ba1aa1b45df31a4"},{"author":{"_account_id":1994,"name":"Zhongyue Luo","email":"zhongyue.luo@gmail.com","username":"zyluo"},"change_message_id":"b273dc1f106dca80b4d3b167cf846105bb0cb3c6","unresolved":false,"context_lines":[{"line_number":215,"context_line":"                self.novazone_cluster_map[x.zone] \u003d x"},{"line_number":216,"context_line":"                return x"},{"line_number":217,"context_line":"        LOG.error(_(\"Unable to find cluster config entry for nova zone: %s\" %"},{"line_number":218,"context_line":"                    novazone_id))"},{"line_number":219,"context_line":"        raise nvp_exc.NvpInvalidNovaZone(nova_zone\u003dnovazone_id)"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"    def _find_target_cluster(self, resource):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAMH%2F%2FupA%3D","line":218,"updated":"2012-11-28 12:59:48.000000000","message":"Shouldn\u0027t it be:\n LOG.error(_(\"Unable to find cluster config entry for nova zone: %s\") % novazone_id)","commit_id":"9340f345a8066af75e27852b7ba1aa1b45df31a4"},{"author":{"_account_id":1994,"name":"Zhongyue Luo","email":"zhongyue.luo@gmail.com","username":"zyluo"},"change_message_id":"b273dc1f106dca80b4d3b167cf846105bb0cb3c6","unresolved":false,"context_lines":[{"line_number":312,"context_line":"        except IndexError:"},{"line_number":313,"context_line":"            # Too bad, no switch available"},{"line_number":314,"context_line":"            LOG.debug(_(\"No switch has available ports (%d checked)\" %"},{"line_number":315,"context_line":"                        len(lswitches)))"},{"line_number":316,"context_line":"        if allow_extra_lswitches:"},{"line_number":317,"context_line":"            main_ls \u003d [ls for ls in lswitches if ls[\u0027uuid\u0027] \u003d\u003d network.id]"},{"line_number":318,"context_line":"            nvplib.update_lswitch(cluster,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAMH%2F%2Fuow%3D","line":315,"updated":"2012-11-28 12:59:48.000000000","message":"LOG.debug(_(\"No switch has available ports (%d checked)\") % len(lswitches))","commit_id":"9340f345a8066af75e27852b7ba1aa1b45df31a4"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"d7cd77b243297d283564019b5b28735f86a03150","unresolved":false,"context_lines":[{"line_number":305,"context_line":"        # Consume from all consumers in a thread"},{"line_number":306,"context_line":"        self.conn.consume_in_thread()"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"    @property"},{"line_number":309,"context_line":"    def cluster(self):"},{"line_number":310,"context_line":"        if len(self.clusters):"},{"line_number":311,"context_line":"            return self.clusters[0]"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMX%2F%2F3Xk%3D","side":"PARENT","line":308,"updated":"2012-12-11 21:51:21.000000000","message":"Is there any reason why these two methods didn\u0027t get copied to nvp_cluster.py ? I guess we don\u0027t need them.","commit_id":"f19d4bada175ec40b93fb38f7a05c4f4c432dcff"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":305,"context_line":"        # Consume from all consumers in a thread"},{"line_number":306,"context_line":"        self.conn.consume_in_thread()"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"    @property"},{"line_number":309,"context_line":"    def cluster(self):"},{"line_number":310,"context_line":"        if len(self.clusters):"},{"line_number":311,"context_line":"            return self.clusters[0]"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMX%2F%2F3OY%3D","side":"PARENT","line":308,"in_reply_to":"AAAAMX%2F%2F3Xk%3D","updated":"2012-12-11 23:48:35.000000000","message":"This is an unrelated change (This methods are unused anyway), but we might want a separate patch)","commit_id":"f19d4bada175ec40b93fb38f7a05c4f4c432dcff"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"36547b94f5a10131a12da3e784de4e4256ef1681","unresolved":false,"context_lines":[{"line_number":20,"context_line":"# @author: Aaron Rosen, Nicira Networks, Inc."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"import ConfigParser"},{"line_number":24,"context_line":"import json"},{"line_number":25,"context_line":"import hashlib"},{"line_number":26,"context_line":"import logging"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMX%2F%2F%2FRI%3D","line":23,"updated":"2012-12-03 18:03:28.000000000","message":"unused","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":20,"context_line":"# @author: Aaron Rosen, Nicira Networks, Inc."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"import ConfigParser"},{"line_number":24,"context_line":"import json"},{"line_number":25,"context_line":"import hashlib"},{"line_number":26,"context_line":"import logging"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMX%2F%2F3Qc%3D","line":23,"in_reply_to":"AAAAMX%2F%2F%2FRI%3D","updated":"2012-12-11 23:48:35.000000000","message":"Done","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"36547b94f5a10131a12da3e784de4e4256ef1681","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"import ConfigParser"},{"line_number":24,"context_line":"import json"},{"line_number":25,"context_line":"import hashlib"},{"line_number":26,"context_line":"import logging"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMX%2F%2F%2FRA%3D","line":24,"updated":"2012-12-03 18:03:28.000000000","message":"unused","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"import ConfigParser"},{"line_number":24,"context_line":"import json"},{"line_number":25,"context_line":"import hashlib"},{"line_number":26,"context_line":"import logging"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMX%2F%2F3QY%3D","line":24,"in_reply_to":"AAAAMX%2F%2F%2FRA%3D","updated":"2012-12-11 23:48:35.000000000","message":"Done","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"import webob.exc"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"# FIXME(salvatore-orlando): get rid of relative imports"},{"line_number":31,"context_line":"from common import config"},{"line_number":32,"context_line":"from quantum.plugins.nicira.nicira_nvp_plugin.api_client import client_eventlet"},{"line_number":33,"context_line":"from nvp_plugin_version import PLUGIN_VERSION"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMH%2F%2FtxE%3D","line":30,"updated":"2012-11-29 18:10:43.000000000","message":"maybe file a bug on this?  Is there a particular reason its hard to eliminate? If so, explain in the bug.","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"import webob.exc"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"# FIXME(salvatore-orlando): get rid of relative imports"},{"line_number":31,"context_line":"from common import config"},{"line_number":32,"context_line":"from quantum.plugins.nicira.nicira_nvp_plugin.api_client import client_eventlet"},{"line_number":33,"context_line":"from nvp_plugin_version import PLUGIN_VERSION"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMX%2F%2F3QQ%3D","line":30,"in_reply_to":"AAAAMH%2F%2FtxE%3D","updated":"2012-12-11 23:48:35.000000000","message":"Unit tests starts failing. I will add a bug to track the issue.","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"unresolved":false,"context_lines":[{"line_number":81,"context_line":"    sql_max_retries \u003d cfg.CONF.DATABASE.sql_max_retries"},{"line_number":82,"context_line":"    db_options.update({\"sql_max_retries\": sql_max_retries})"},{"line_number":83,"context_line":"    reconnect_interval \u003d cfg.CONF.DATABASE.reconnect_interval"},{"line_number":84,"context_line":"    db_options.update({\"reconnect_interval\": reconnect_interval})"},{"line_number":85,"context_line":"    nvp_options \u003d cfg.CONF.NVP"},{"line_number":86,"context_line":"    nvp_conf \u003d config.ClusterConfigOptions(cfg.CONF)"},{"line_number":87,"context_line":"    cluster_names \u003d config.register_cluster_groups(nvp_conf)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMH%2F%2Ftwk%3D","line":84,"updated":"2012-11-29 18:10:43.000000000","message":"probably not something for this patch, but I wonder if we should collectively define the above DB parameters once some place, so all plugins can use them with a single line, rather than copy/paste.","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"36547b94f5a10131a12da3e784de4e4256ef1681","unresolved":false,"context_lines":[{"line_number":81,"context_line":"    sql_max_retries \u003d cfg.CONF.DATABASE.sql_max_retries"},{"line_number":82,"context_line":"    db_options.update({\"sql_max_retries\": sql_max_retries})"},{"line_number":83,"context_line":"    reconnect_interval \u003d cfg.CONF.DATABASE.reconnect_interval"},{"line_number":84,"context_line":"    db_options.update({\"reconnect_interval\": reconnect_interval})"},{"line_number":85,"context_line":"    nvp_options \u003d cfg.CONF.NVP"},{"line_number":86,"context_line":"    nvp_conf \u003d config.ClusterConfigOptions(cfg.CONF)"},{"line_number":87,"context_line":"    cluster_names \u003d config.register_cluster_groups(nvp_conf)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMX%2F%2F%2FQI%3D","line":84,"in_reply_to":"AAAAMH%2F%2Ftwk%3D","updated":"2012-12-03 18:03:28.000000000","message":"+1 That bug should also refactor this code.  db_options should be initialized with the values vs calling update() multiple times.","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":81,"context_line":"    sql_max_retries \u003d cfg.CONF.DATABASE.sql_max_retries"},{"line_number":82,"context_line":"    db_options.update({\"sql_max_retries\": sql_max_retries})"},{"line_number":83,"context_line":"    reconnect_interval \u003d cfg.CONF.DATABASE.reconnect_interval"},{"line_number":84,"context_line":"    db_options.update({\"reconnect_interval\": reconnect_interval})"},{"line_number":85,"context_line":"    nvp_options \u003d cfg.CONF.NVP"},{"line_number":86,"context_line":"    nvp_conf \u003d config.ClusterConfigOptions(cfg.CONF)"},{"line_number":87,"context_line":"    cluster_names \u003d config.register_cluster_groups(nvp_conf)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMX%2F%2F3QM%3D","line":84,"in_reply_to":"AAAAMX%2F%2F%2FQI%3D","updated":"2012-12-11 23:48:35.000000000","message":"I have a deja-vu of recalling having already done this refactor. I\u0027ll find the patch which should probably be buried somewhere in my laptop and file it separately.","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"unresolved":false,"context_lines":[{"line_number":181,"context_line":"            \u0027base\u0027: models_v2.model_base.BASEV2,"},{"line_number":182,"context_line":"        }"},{"line_number":183,"context_line":"        def_cluster_name \u003d self.nvp_opts.default_cluster_name"},{"line_number":184,"context_line":"        if def_cluster_name and def_cluster_name in self.clusters:"},{"line_number":185,"context_line":"            self.default_cluster \u003d self.clusters[def_cluster_name]"},{"line_number":186,"context_line":"        else:"},{"line_number":187,"context_line":"            # otherwise set 1st cluster as default"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMH%2F%2Ftv8%3D","line":184,"updated":"2012-11-29 18:10:43.000000000","message":"i might separate out the check of whether default cluster name is not in the set of defined clusters are log a WARN or ERORR in that case.","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"unresolved":false,"context_lines":[{"line_number":209,"context_line":"        LOG.debug(_(\"Looking for nova zone: %s\") % novazone_id)"},{"line_number":210,"context_line":"        for x in self.clusters:"},{"line_number":211,"context_line":"            LOG.debug(_(\"Looking for nova zone %(novazone_id)s in \""},{"line_number":212,"context_line":"                        \"cluster: %(x)s\") % locals())"},{"line_number":213,"context_line":"            if x.zone \u003d\u003d str(novazone_id):"},{"line_number":214,"context_line":"                self.novazone_cluster_map[x.zone] \u003d x"},{"line_number":215,"context_line":"                return x"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMH%2F%2FtvE%3D","line":212,"updated":"2012-11-29 18:10:43.000000000","message":"good work on the internationalization :)","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"unresolved":false,"context_lines":[{"line_number":261,"context_line":"        elif network_type in (NetworkTypes.GRE, NetworkTypes.STT):"},{"line_number":262,"context_line":"            if segmentation_id_set:"},{"line_number":263,"context_line":"                err_msg \u003d _(\"%(segmentation_id)s not allowed for \""},{"line_number":264,"context_line":"                            \"%(network_type)s networks\") % locals()"},{"line_number":265,"context_line":"        elif network_type \u003d\u003d NetworkTypes.FLAT:"},{"line_number":266,"context_line":"            if segmentation_id_set:"},{"line_number":267,"context_line":"                err_msg \u003d _(\"Segmentation ID cannot be specified with \""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMH%2F%2FtvY%3D","line":264,"updated":"2012-11-29 18:10:43.000000000","message":"Do you really intend to include the segmentation_id itself in the message, or do you intend to say that it is not allowed to specify a segment_id with a network of %(network_type)s ?  In fact, its not clear to me why this check is different from the FLAT check below.","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":261,"context_line":"        elif network_type in (NetworkTypes.GRE, NetworkTypes.STT):"},{"line_number":262,"context_line":"            if segmentation_id_set:"},{"line_number":263,"context_line":"                err_msg \u003d _(\"%(segmentation_id)s not allowed for \""},{"line_number":264,"context_line":"                            \"%(network_type)s networks\") % locals()"},{"line_number":265,"context_line":"        elif network_type \u003d\u003d NetworkTypes.FLAT:"},{"line_number":266,"context_line":"            if segmentation_id_set:"},{"line_number":267,"context_line":"                err_msg \u003d _(\"Segmentation ID cannot be specified with \""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMX%2F%2F3Pc%3D","line":264,"in_reply_to":"AAAAMH%2F%2FtvY%3D","updated":"2012-12-11 23:48:35.000000000","message":"Done","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":1994,"name":"Zhongyue Luo","email":"zhongyue.luo@gmail.com","username":"zyluo"},"change_message_id":"b273dc1f106dca80b4d3b167cf846105bb0cb3c6","unresolved":false,"context_lines":[{"line_number":281,"context_line":"                    raise q_exc.VlanIdInUse(vlan_id\u003dsegmentation_id,"},{"line_number":282,"context_line":"                                            physical_network\u003dphysical_network)"},{"line_number":283,"context_line":"        else:"},{"line_number":284,"context_line":"            err_msg \u003d _((\"%(pnet.NETWORK_TYPE)s %(network_type)s not \""},{"line_number":285,"context_line":"                         \"supported\") % locals())"},{"line_number":286,"context_line":"        if err_msg:"},{"line_number":287,"context_line":"            raise q_exc.InvalidInput(error_message\u003derr_msg)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMH%2F%2Ftw8%3D","line":284,"updated":"2012-11-28 23:40:39.000000000","message":"This line seems to be wrong. Maybe you meant was msg \u003d (_(...))","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"unresolved":false,"context_lines":[{"line_number":282,"context_line":"                                            physical_network\u003dphysical_network)"},{"line_number":283,"context_line":"        else:"},{"line_number":284,"context_line":"            err_msg \u003d _((\"%(pnet.NETWORK_TYPE)s %(network_type)s not \""},{"line_number":285,"context_line":"                         \"supported\") % locals())"},{"line_number":286,"context_line":"        if err_msg:"},{"line_number":287,"context_line":"            raise q_exc.InvalidInput(error_message\u003derr_msg)"},{"line_number":288,"context_line":"        # TODO(salvatore-orlando): Validate tranport zone uuid"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMH%2F%2Ftus%3D","line":285,"updated":"2012-11-29 18:10:43.000000000","message":"I think the brackets for  _(...) is not supposed to include the \"% locals()\"","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"unresolved":false,"context_lines":[{"line_number":286,"context_line":"        if err_msg:"},{"line_number":287,"context_line":"            raise q_exc.InvalidInput(error_message\u003derr_msg)"},{"line_number":288,"context_line":"        # TODO(salvatore-orlando): Validate tranport zone uuid"},{"line_number":289,"context_line":"        # which should be specified in physical_network"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"    def _extend_network_dict_provider(self, context, network, binding\u003dNone):"},{"line_number":292,"context_line":"        if self._check_provider_view_auth(context, network):"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMH%2F%2Ftuo%3D","line":289,"updated":"2012-11-29 18:10:43.000000000","message":"yes, please :)","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"unresolved":false,"context_lines":[{"line_number":293,"context_line":"            if not binding:"},{"line_number":294,"context_line":"                binding \u003d nicira_db.get_network_binding(context.session,"},{"line_number":295,"context_line":"                                                        network[\u0027id\u0027])"},{"line_number":296,"context_line":"            # With NVP plugin \u0027normal\u0027 overlay networks will have no binding"},{"line_number":297,"context_line":"            if binding:"},{"line_number":298,"context_line":"                network[pnet.NETWORK_TYPE] \u003d binding.binding_type"},{"line_number":299,"context_line":"                network[pnet.PHYSICAL_NETWORK] \u003d binding.tz_uuid"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMH%2F%2Ftr4%3D","line":296,"updated":"2012-11-29 18:10:43.000000000","message":"i can see that, though one could argue that we should show admins the network_type + tz_id.","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":293,"context_line":"            if not binding:"},{"line_number":294,"context_line":"                binding \u003d nicira_db.get_network_binding(context.session,"},{"line_number":295,"context_line":"                                                        network[\u0027id\u0027])"},{"line_number":296,"context_line":"            # With NVP plugin \u0027normal\u0027 overlay networks will have no binding"},{"line_number":297,"context_line":"            if binding:"},{"line_number":298,"context_line":"                network[pnet.NETWORK_TYPE] \u003d binding.binding_type"},{"line_number":299,"context_line":"                network[pnet.PHYSICAL_NETWORK] \u003d binding.tz_uuid"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMX%2F%2F3PM%3D","line":296,"in_reply_to":"AAAAMH%2F%2Ftr4%3D","updated":"2012-12-11 23:48:35.000000000","message":"I think we can do that...\nbut I\u0027d rather file a separate bug for this change.","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"unresolved":false,"context_lines":[{"line_number":312,"context_line":"            LOG.debug(_(\"No switch has available ports (%d checked)\") %"},{"line_number":313,"context_line":"                      len(lswitches))"},{"line_number":314,"context_line":"        if allow_extra_lswitches:"},{"line_number":315,"context_line":"            main_ls \u003d [ls for ls in lswitches if ls[\u0027uuid\u0027] \u003d\u003d network.id]"},{"line_number":316,"context_line":"            nvplib.update_lswitch(cluster,"},{"line_number":317,"context_line":"                                  main_ls[0][\u0027uuid\u0027],"},{"line_number":318,"context_line":"                                  main_ls[0][\u0027display_name\u0027],"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMH%2F%2Ftrg%3D","line":315,"updated":"2012-11-29 18:10:43.000000000","message":"nit: i\u0027d probably actually assign main_ls to the switch, not the list of length 1.  \n\nalso, if the set of lswitches here could be larger, we could combine this for-loop with the loop over all lswitches above.  That said, with 3.0, the lports per bridged network is going to go way, up, so perhaps this doesn\u0027t matter","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":312,"context_line":"            LOG.debug(_(\"No switch has available ports (%d checked)\") %"},{"line_number":313,"context_line":"                      len(lswitches))"},{"line_number":314,"context_line":"        if allow_extra_lswitches:"},{"line_number":315,"context_line":"            main_ls \u003d [ls for ls in lswitches if ls[\u0027uuid\u0027] \u003d\u003d network.id]"},{"line_number":316,"context_line":"            nvplib.update_lswitch(cluster,"},{"line_number":317,"context_line":"                                  main_ls[0][\u0027uuid\u0027],"},{"line_number":318,"context_line":"                                  main_ls[0][\u0027display_name\u0027],"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMX%2F%2F3Og%3D","line":315,"in_reply_to":"AAAAMH%2F%2Ftrg%3D","updated":"2012-12-11 23:48:35.000000000","message":"The first switch is the only one with the property that nvp_id \u003d\u003d quantum_id this is why we update only the first one.\n\nThe first loop immediately returns the uuid of the first switch which has an available port, but I guess it can be easily tweaked for getting the id of the main logical switch\n\nKeeping in mind the changes that are coming UP we act optimistically and fetch the first switch with a get /lswitch/\u003cid\u003e operations which is less expensive thant a get /lswitch?q_net_id\u003d\u003cnet_id\u003e.\n\nIf we are unlucky (multi_switch\u003dTrue), then we pay the penalty of a second query. But from NVP 3.0 the chances that we\u0027ll be unlucky will be very low.","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"unresolved":false,"context_lines":[{"line_number":319,"context_line":"                                  network[\u0027tenant_id\u0027],"},{"line_number":320,"context_line":"                                  tags\u003d[{\u0027tag\u0027: \u0027True\u0027,"},{"line_number":321,"context_line":"                                         \u0027scope\u0027:"},{"line_number":322,"context_line":"                                         \u0027quantum_multi_lswitch\u0027}])"},{"line_number":323,"context_line":"            selected_lswitch \u003d nvplib.create_lswitch("},{"line_number":324,"context_line":"                cluster, network.tenant_id,"},{"line_number":325,"context_line":"                \"%s-ext-%s\" % (network.name, len(lswitches)),"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMH%2F%2Ftrc%3D","line":322,"updated":"2012-11-29 18:10:43.000000000","message":"Does this update need to happen each time, or only if there previously was just a single lswitch?","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":319,"context_line":"                                  network[\u0027tenant_id\u0027],"},{"line_number":320,"context_line":"                                  tags\u003d[{\u0027tag\u0027: \u0027True\u0027,"},{"line_number":321,"context_line":"                                         \u0027scope\u0027:"},{"line_number":322,"context_line":"                                         \u0027quantum_multi_lswitch\u0027}])"},{"line_number":323,"context_line":"            selected_lswitch \u003d nvplib.create_lswitch("},{"line_number":324,"context_line":"                cluster, network.tenant_id,"},{"line_number":325,"context_line":"                \"%s-ext-%s\" % (network.name, len(lswitches)),"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMX%2F%2F3PI%3D","line":322,"in_reply_to":"AAAAMH%2F%2Ftrc%3D","updated":"2012-12-11 23:48:35.000000000","message":"We can easily ensure it\u0027s not edited multiple times","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"unresolved":false,"context_lines":[{"line_number":419,"context_line":"        super(NvpPluginV2, self).delete_network(context, id)"},{"line_number":420,"context_line":""},{"line_number":421,"context_line":"        # FIXME(salvatore-orlando): Failures here might lead NVP"},{"line_number":422,"context_line":"        # and quantum state to diverge"},{"line_number":423,"context_line":"        pairs \u003d self._get_lswitch_cluster_pairs(id, context.tenant_id)"},{"line_number":424,"context_line":"        for (cluster, switches) in pairs:"},{"line_number":425,"context_line":"            nvplib.delete_networks(cluster, id, switches)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMH%2F%2Ftqo%3D","line":422,"updated":"2012-11-29 18:10:43.000000000","message":"at some point we might consider logging a particular message with appropriate UUIDs at each point where this is actually detected, to aid in unwinding such issues.","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":419,"context_line":"        super(NvpPluginV2, self).delete_network(context, id)"},{"line_number":420,"context_line":""},{"line_number":421,"context_line":"        # FIXME(salvatore-orlando): Failures here might lead NVP"},{"line_number":422,"context_line":"        # and quantum state to diverge"},{"line_number":423,"context_line":"        pairs \u003d self._get_lswitch_cluster_pairs(id, context.tenant_id)"},{"line_number":424,"context_line":"        for (cluster, switches) in pairs:"},{"line_number":425,"context_line":"            nvplib.delete_networks(cluster, id, switches)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMX%2F%2F3OU%3D","line":422,"in_reply_to":"AAAAMH%2F%2Ftqo%3D","updated":"2012-12-11 23:48:35.000000000","message":"I will do that","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"unresolved":false,"context_lines":[{"line_number":493,"context_line":"            if net_op_status !\u003d network.status:"},{"line_number":494,"context_line":"                # update the network status"},{"line_number":495,"context_line":"                with context.session.begin(subtransactions\u003dTrue):"},{"line_number":496,"context_line":"                    network.status \u003d net_op_status"},{"line_number":497,"context_line":"        except Exception:"},{"line_number":498,"context_line":"            err_msg \u003d _(\"Unable to get logical switches\")"},{"line_number":499,"context_line":"            LOG.exception(err_msg)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMH%2F%2FtqI%3D","line":496,"updated":"2012-11-29 18:10:43.000000000","message":"if we query NVP each time we get a network, is there a point in storing this in the DB?","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":493,"context_line":"            if net_op_status !\u003d network.status:"},{"line_number":494,"context_line":"                # update the network status"},{"line_number":495,"context_line":"                with context.session.begin(subtransactions\u003dTrue):"},{"line_number":496,"context_line":"                    network.status \u003d net_op_status"},{"line_number":497,"context_line":"        except Exception:"},{"line_number":498,"context_line":"            err_msg \u003d _(\"Unable to get logical switches\")"},{"line_number":499,"context_line":"            LOG.exception(err_msg)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMX%2F%2F3OQ%3D","line":496,"in_reply_to":"AAAAMH%2F%2FtqI%3D","updated":"2012-12-11 23:48:35.000000000","message":"No there isn\u0027t.\nI consider this as a transition point while we get to a stage in which we don\u0027t go anymore to NVP for each request.","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"unresolved":false,"context_lines":[{"line_number":495,"context_line":"                with context.session.begin(subtransactions\u003dTrue):"},{"line_number":496,"context_line":"                    network.status \u003d net_op_status"},{"line_number":497,"context_line":"        except Exception:"},{"line_number":498,"context_line":"            err_msg \u003d _(\"Unable to get logical switches\")"},{"line_number":499,"context_line":"            LOG.exception(err_msg)"},{"line_number":500,"context_line":"            raise nvp_exc.NvpPluginException(err_msg\u003derr_msg)"},{"line_number":501,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMH%2F%2FtqE%3D","line":498,"updated":"2012-11-29 18:10:43.000000000","message":"plural \u0027lswitches\u0027?","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":495,"context_line":"                with context.session.begin(subtransactions\u003dTrue):"},{"line_number":496,"context_line":"                    network.status \u003d net_op_status"},{"line_number":497,"context_line":"        except Exception:"},{"line_number":498,"context_line":"            err_msg \u003d _(\"Unable to get logical switches\")"},{"line_number":499,"context_line":"            LOG.exception(err_msg)"},{"line_number":500,"context_line":"            raise nvp_exc.NvpPluginException(err_msg\u003derr_msg)"},{"line_number":501,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMX%2F%2F3OM%3D","line":498,"in_reply_to":"AAAAMH%2F%2FtqE%3D","updated":"2012-12-11 23:48:35.000000000","message":"Done","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"unresolved":false,"context_lines":[{"line_number":571,"context_line":"        for quantum_lswitch in quantum_lswitches:"},{"line_number":572,"context_line":"            Found \u003d False"},{"line_number":573,"context_line":"            for nvp_lswitch in nvp_lswitches:"},{"line_number":574,"context_line":"                # TODO(salvatore-orlando): watch out for \"extended\" lswitches"},{"line_number":575,"context_line":"                if nvp_lswitch[\u0027uuid\u0027] \u003d\u003d quantum_lswitch[\"id\"]:"},{"line_number":576,"context_line":"                    if (nvp_lswitch[\"_relations\"][\"LogicalSwitchStatus\"]"},{"line_number":577,"context_line":"                            [\"fabric_status\"]):"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMH%2F%2Ftpo%3D","line":574,"updated":"2012-11-29 18:10:43.000000000","message":"don\u0027t follow what you mean here.  do you mean quantum networks made up of multiple lswitches?  What is the net result of not handling them here?","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":571,"context_line":"        for quantum_lswitch in quantum_lswitches:"},{"line_number":572,"context_line":"            Found \u003d False"},{"line_number":573,"context_line":"            for nvp_lswitch in nvp_lswitches:"},{"line_number":574,"context_line":"                # TODO(salvatore-orlando): watch out for \"extended\" lswitches"},{"line_number":575,"context_line":"                if nvp_lswitch[\u0027uuid\u0027] \u003d\u003d quantum_lswitch[\"id\"]:"},{"line_number":576,"context_line":"                    if (nvp_lswitch[\"_relations\"][\"LogicalSwitchStatus\"]"},{"line_number":577,"context_line":"                            [\"fabric_status\"]):"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMX%2F%2F3OI%3D","line":574,"in_reply_to":"AAAAMH%2F%2Ftpo%3D","updated":"2012-12-11 23:48:35.000000000","message":"I\u0027ll double check. This was a TODO I put because that was something I should have been careful in testing, but I guess I can just remove the warning","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"36547b94f5a10131a12da3e784de4e4256ef1681","unresolved":false,"context_lines":[{"line_number":581,"context_line":"                    quantum_lswitch[\"name\"] \u003d nvp_lswitch[\"display_name\"]"},{"line_number":582,"context_line":"                    nvp_lswitches.remove(nvp_lswitch)"},{"line_number":583,"context_line":"                    Found \u003d True"},{"line_number":584,"context_line":"                    break"},{"line_number":585,"context_line":""},{"line_number":586,"context_line":"            if not Found:"},{"line_number":587,"context_line":"                raise nvp_exc.NvpOutOfSyncException()"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMX%2F%2F%2FCk%3D","line":584,"updated":"2012-12-03 19:55:55.000000000","message":"Python loops can have an else clause.  If you add one, you can get rid of the Found var.\n\nelse:\n     raise nvp_exc.NvpOutOfSyncException()","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":581,"context_line":"                    quantum_lswitch[\"name\"] \u003d nvp_lswitch[\"display_name\"]"},{"line_number":582,"context_line":"                    nvp_lswitches.remove(nvp_lswitch)"},{"line_number":583,"context_line":"                    Found \u003d True"},{"line_number":584,"context_line":"                    break"},{"line_number":585,"context_line":""},{"line_number":586,"context_line":"            if not Found:"},{"line_number":587,"context_line":"                raise nvp_exc.NvpOutOfSyncException()"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMX%2F%2F3OA%3D","line":584,"in_reply_to":"AAAAMX%2F%2F%2FCk%3D","updated":"2012-12-11 23:48:35.000000000","message":"I know. But my brain has a problem with for...else :)\nI will do as you suggest!","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"unresolved":false,"context_lines":[{"line_number":584,"context_line":"                    break"},{"line_number":585,"context_line":""},{"line_number":586,"context_line":"            if not Found:"},{"line_number":587,"context_line":"                raise nvp_exc.NvpOutOfSyncException()"},{"line_number":588,"context_line":"        # do not make the case in which switches are found in NVP"},{"line_number":589,"context_line":"        # but not in Quantum catastrophic."},{"line_number":590,"context_line":"        if len(nvp_lswitches):"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMH%2F%2Ftpk%3D","line":587,"updated":"2012-11-29 18:10:43.000000000","message":"I didn\u0027t see this in the fault map, but perhaps its caught before that level?","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":584,"context_line":"                    break"},{"line_number":585,"context_line":""},{"line_number":586,"context_line":"            if not Found:"},{"line_number":587,"context_line":"                raise nvp_exc.NvpOutOfSyncException()"},{"line_number":588,"context_line":"        # do not make the case in which switches are found in NVP"},{"line_number":589,"context_line":"        # but not in Quantum catastrophic."},{"line_number":590,"context_line":"        if len(nvp_lswitches):"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMX%2F%2F3N0%3D","line":587,"in_reply_to":"AAAAMH%2F%2Ftpk%3D","updated":"2012-12-11 23:48:35.000000000","message":"That\u0027s going to be raised as a 500.\nWe can fix it, but I would rather have a distinct bug.","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"36547b94f5a10131a12da3e784de4e4256ef1681","unresolved":false,"context_lines":[{"line_number":594,"context_line":""},{"line_number":595,"context_line":"        LOG.debug(\"get_networks() completed for tenant %s\" % context.tenant_id)"},{"line_number":596,"context_line":""},{"line_number":597,"context_line":"        if fields:"},{"line_number":598,"context_line":"            ret_fields \u003d []"},{"line_number":599,"context_line":"            for quantum_lswitch in quantum_lswitches:"},{"line_number":600,"context_line":"                row \u003d {}"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMX%2F%2F%2FCU%3D","line":597,"updated":"2012-12-03 19:55:55.000000000","message":"This might be sep bug, why not use self._fields() here to filter?","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":594,"context_line":""},{"line_number":595,"context_line":"        LOG.debug(\"get_networks() completed for tenant %s\" % context.tenant_id)"},{"line_number":596,"context_line":""},{"line_number":597,"context_line":"        if fields:"},{"line_number":598,"context_line":"            ret_fields \u003d []"},{"line_number":599,"context_line":"            for quantum_lswitch in quantum_lswitches:"},{"line_number":600,"context_line":"                row \u003d {}"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMX%2F%2F3Nw%3D","line":597,"in_reply_to":"AAAAMX%2F%2F%2FCU%3D","updated":"2012-12-11 23:48:35.000000000","message":"You\u0027re right. I will double check with Aaron, and if that is case, file another bug.","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"unresolved":false,"context_lines":[{"line_number":632,"context_line":"            if network[\u0027network\u0027][\"admin_state_up\"] is False:"},{"line_number":633,"context_line":"                raise q_exc.NotImplementedError(\"admin_state_up\u003dFalse \""},{"line_number":634,"context_line":"                                                \"networks are not \""},{"line_number":635,"context_line":"                                                \"supported.\")"},{"line_number":636,"context_line":"        params \u003d {}"},{"line_number":637,"context_line":"        params[\"network\"] \u003d network[\"network\"]"},{"line_number":638,"context_line":"        pairs \u003d self._get_lswitch_cluster_pairs(id, context.tenant_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMH%2F%2Ftpg%3D","line":635,"updated":"2012-11-29 18:10:43.000000000","message":"internationalize.","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":632,"context_line":"            if network[\u0027network\u0027][\"admin_state_up\"] is False:"},{"line_number":633,"context_line":"                raise q_exc.NotImplementedError(\"admin_state_up\u003dFalse \""},{"line_number":634,"context_line":"                                                \"networks are not \""},{"line_number":635,"context_line":"                                                \"supported.\")"},{"line_number":636,"context_line":"        params \u003d {}"},{"line_number":637,"context_line":"        params[\"network\"] \u003d network[\"network\"]"},{"line_number":638,"context_line":"        pairs \u003d self._get_lswitch_cluster_pairs(id, context.tenant_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMX%2F%2F3No%3D","line":635,"in_reply_to":"AAAAMH%2F%2Ftpg%3D","updated":"2012-12-11 23:48:35.000000000","message":"Done","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"unresolved":false,"context_lines":[{"line_number":792,"context_line":"        port[\"port\"].update(quantum_db)"},{"line_number":793,"context_line":"        # We want port to be up in NVP"},{"line_number":794,"context_line":"        port[\"port\"][\"admin_state_up\"] \u003d True"},{"line_number":795,"context_line":"        port_data \u003d port[\u0027port\u0027].copy()"},{"line_number":796,"context_line":"        # Fetch the network and network binding from Quantum db"},{"line_number":797,"context_line":"        network \u003d self._get_network(context, port_data[\u0027network_id\u0027])"},{"line_number":798,"context_line":"        network_binding \u003d nicira_db.get_network_binding("}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMH%2F%2FtpU%3D","line":795,"updated":"2012-11-29 18:10:43.000000000","message":"I didn\u0027t see something that made this copy necessary, but may be missing it.  I\u0027m assuming _find_target_cluster() doesn\u0027t modify it.","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":792,"context_line":"        port[\"port\"].update(quantum_db)"},{"line_number":793,"context_line":"        # We want port to be up in NVP"},{"line_number":794,"context_line":"        port[\"port\"][\"admin_state_up\"] \u003d True"},{"line_number":795,"context_line":"        port_data \u003d port[\u0027port\u0027].copy()"},{"line_number":796,"context_line":"        # Fetch the network and network binding from Quantum db"},{"line_number":797,"context_line":"        network \u003d self._get_network(context, port_data[\u0027network_id\u0027])"},{"line_number":798,"context_line":"        network_binding \u003d nicira_db.get_network_binding("}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMX%2F%2F3Ng%3D","line":795,"in_reply_to":"AAAAMH%2F%2FtpU%3D","updated":"2012-12-11 23:48:35.000000000","message":"Done","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"unresolved":false,"context_lines":[{"line_number":829,"context_line":"            LOG.exception(_(\"An exception occured while plugging \""},{"line_number":830,"context_line":"                            \"the interface\"))"},{"line_number":831,"context_line":"            super(NvpPluginV2, self).delete_port(context, port[\"port\"][\"id\"])"},{"line_number":832,"context_line":"            raise"},{"line_number":833,"context_line":""},{"line_number":834,"context_line":"        LOG.debug(_(\"create_port completed on NVP for tenant %(tenant_id)s: \""},{"line_number":835,"context_line":"                    \"(%(id)s)\") % port_data)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMH%2F%2FtpE%3D","line":832,"updated":"2012-11-29 18:10:43.000000000","message":"will this exception just be converted to a 500 for the user?  \n\nalso, we probably want to get rid of the v1 terminology about \"plugging\".","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":829,"context_line":"            LOG.exception(_(\"An exception occured while plugging \""},{"line_number":830,"context_line":"                            \"the interface\"))"},{"line_number":831,"context_line":"            super(NvpPluginV2, self).delete_port(context, port[\"port\"][\"id\"])"},{"line_number":832,"context_line":"            raise"},{"line_number":833,"context_line":""},{"line_number":834,"context_line":"        LOG.debug(_(\"create_port completed on NVP for tenant %(tenant_id)s: \""},{"line_number":835,"context_line":"                    \"(%(id)s)\") % port_data)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMX%2F%2F3Nc%3D","line":832,"in_reply_to":"AAAAMH%2F%2FtpE%3D","updated":"2012-12-11 23:48:35.000000000","message":"We should just get rid of except Exception.\nWill fix it.","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"unresolved":false,"context_lines":[{"line_number":835,"context_line":"                    \"(%(id)s)\") % port_data)"},{"line_number":836,"context_line":""},{"line_number":837,"context_line":"        # update port on Quantum DB with admin_state_up True"},{"line_number":838,"context_line":"        port_update \u003d {\"port\": {\"admin_state_up\": True}}"},{"line_number":839,"context_line":"        return super(NvpPluginV2, self).update_port(context,"},{"line_number":840,"context_line":"                                                    port[\"port\"][\"id\"],"},{"line_number":841,"context_line":"                                                    port_update)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMH%2F%2FtpA%3D","line":838,"updated":"2012-11-29 18:10:43.000000000","message":"why do we wait to do this?  I could see waiting to set the op_state_up to true, but not admin_state_up","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":835,"context_line":"                    \"(%(id)s)\") % port_data)"},{"line_number":836,"context_line":""},{"line_number":837,"context_line":"        # update port on Quantum DB with admin_state_up True"},{"line_number":838,"context_line":"        port_update \u003d {\"port\": {\"admin_state_up\": True}}"},{"line_number":839,"context_line":"        return super(NvpPluginV2, self).update_port(context,"},{"line_number":840,"context_line":"                                                    port[\"port\"][\"id\"],"},{"line_number":841,"context_line":"                                                    port_update)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMX%2F%2F3NY%3D","line":838,"in_reply_to":"AAAAMH%2F%2FtpA%3D","updated":"2012-12-11 23:48:35.000000000","message":"That is because of the logic of the create port operation\n1) Create in Quantum DB and get MAC \u0026 IP\n1.b) set status to DOWN as the port does not actually exist yet in the backend\n2) Use those info for creating NVP Port\n3) If everything goes fine bring back port up.\n\nThis is another thing we want to improve before grizzly release.","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":49,"context_line":"from quantum import policy"},{"line_number":50,"context_line":"from quantum.plugins.nicira.nicira_nvp_plugin.common import (exceptions"},{"line_number":51,"context_line":"                                                             as nvp_exc)"},{"line_number":52,"context_line":"from quantum.plugins.nicira.nicira_nvp_plugin import nvp_cluster"},{"line_number":53,"context_line":"from quantum.plugins.nicira.nicira_nvp_plugin import nicira_db"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"import NvpApiClient"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAM3%2F%2F3M8%3D","line":52,"updated":"2012-12-30 07:45:39.000000000","message":"Should be on line 53","commit_id":"dd3735cd5830b0ac26503386186bf74c21713f0b"}],"quantum/plugins/nicira/nicira_nvp_plugin/api_client/client_eventlet.py":[{"author":{"_account_id":1994,"name":"Zhongyue Luo","email":"zhongyue.luo@gmail.com","username":"zyluo"},"change_message_id":"b273dc1f106dca80b4d3b167cf846105bb0cb3c6","unresolved":false,"context_lines":[{"line_number":156,"context_line":"                 api_providers are configured."},{"line_number":157,"context_line":"        \u0027\u0027\u0027"},{"line_number":158,"context_line":"        if not self._api_providers:"},{"line_number":159,"context_line":"            LOG.warn(_(\"[%d] no API providers currently available.\" % rid))"},{"line_number":160,"context_line":"            return None"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"        # The sleep time is to give controllers time to become consistent after"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMH%2F%2Ftw0%3D","line":159,"updated":"2012-11-28 23:40:39.000000000","message":"LOG.warn(_(\"[%d] no API providers currently available.\") % rid). Also the LOGs below","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":28,"context_line":"eventlet.monkey_patch()"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"logging.basicConfig(level\u003dlogging.INFO)"},{"line_number":31,"context_line":"LOG \u003d logging.getLogger(\u0027nvp_api_client\u0027)"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"# Default parameters."},{"line_number":34,"context_line":"DEFAULT_FAILOVER_TIME \u003d 5"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAM3%2F%2F3Mo%3D","line":31,"updated":"2012-12-30 07:45:39.000000000","message":"logging.getLogger(__name__)","commit_id":"dd3735cd5830b0ac26503386186bf74c21713f0b"}],"quantum/plugins/nicira/nicira_nvp_plugin/common/config.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":28,"context_line":"    cfg.IntOpt(\u0027max_lp_per_overlay_ls\u0027, default\u003d256),"},{"line_number":29,"context_line":"    cfg.IntOpt(\u0027concurrent_connections\u0027, default\u003d5),"},{"line_number":30,"context_line":"    cfg.IntOpt(\u0027failover_time\u0027, default\u003d240),"},{"line_number":31,"context_line":"    cfg.StrOpt(\u0027default_cluster_name\u0027)"},{"line_number":32,"context_line":"]"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"cluster_opts \u003d ["}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAM3%2F%2F3M4%3D","line":31,"updated":"2012-12-30 07:45:39.000000000","message":"Is there a default value?","commit_id":"dd3735cd5830b0ac26503386186bf74c21713f0b"}],"quantum/plugins/nicira/nicira_nvp_plugin/common/exceptions.py":[{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"class NvpOutOfSyncException(NvpPluginException):"},{"line_number":42,"context_line":"    message \u003d _(\"Quantum and NVP Databases are out of Sync!\")"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMH%2F%2Fto4%3D","line":42,"updated":"2012-11-29 18:10:43.000000000","message":"I assume any time there is NVP mentioned in an error message, it will only ever be logged, and not returned to a tenant in an HTTP request.","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"}],"quantum/plugins/nicira/nicira_nvp_plugin/nicira_db.py":[{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"unresolved":false,"context_lines":[{"line_number":51,"context_line":"        binding \u003d nicira_models.NvpNetworkBinding(network_id, binding_type,"},{"line_number":52,"context_line":"                                                  tz_uuid, vlan_id)"},{"line_number":53,"context_line":"        session.add(binding)"},{"line_number":54,"context_line":"    get_network_binding(session, network_id)"},{"line_number":55,"context_line":"    return binding"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMH%2F%2Fto0%3D","line":54,"updated":"2012-11-29 18:10:43.000000000","message":"is there a point of this call?  are you intending to set binding \u003d get_network_binding(..)?","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"}],"quantum/plugins/nicira/nicira_nvp_plugin/nicira_models.py":[{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"unresolved":false,"context_lines":[{"line_number":38,"context_line":"    def __init__(self, network_id, binding_type, tz_uuid, vlan_id):"},{"line_number":39,"context_line":"        self.network_id \u003d network_id"},{"line_number":40,"context_line":"        self.binding_type \u003d binding_type"},{"line_number":41,"context_line":"        self.tz_uuid \u003d tz_uuid"},{"line_number":42,"context_line":"        self.vlan_id \u003d vlan_id"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def __repr__(self):"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMH%2F%2Ftow%3D","line":41,"updated":"2012-11-29 18:10:43.000000000","message":"I would have assumed that the tz_uuid and the network_id were the same.  Is that not the case?","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"unresolved":false,"context_lines":[{"line_number":38,"context_line":"    def __init__(self, network_id, binding_type, tz_uuid, vlan_id):"},{"line_number":39,"context_line":"        self.network_id \u003d network_id"},{"line_number":40,"context_line":"        self.binding_type \u003d binding_type"},{"line_number":41,"context_line":"        self.tz_uuid \u003d tz_uuid"},{"line_number":42,"context_line":"        self.vlan_id \u003d vlan_id"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def __repr__(self):"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2F3kM%3D","line":41,"in_reply_to":"AAAAMH%2F%2Ftow%3D","updated":"2012-12-28 20:26:04.000000000","message":"reading this again, not quite sure what I meant....","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":15,"context_line":"#    under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from sqlalchemy import Column, Enum, ForeignKey, Integer, String"},{"line_number":19,"context_line":"from quantum.db.models_v2 import model_base"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAM3%2F%2F3M0%3D","line":18,"updated":"2012-12-30 07:45:39.000000000","message":"new line","commit_id":"dd3735cd5830b0ac26503386186bf74c21713f0b"}],"quantum/plugins/nicira/nicira_nvp_plugin/nvplib.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"04474933e01a3e3cf67c00daa45b79bb4aafef05","unresolved":false,"context_lines":[{"line_number":28,"context_line":"import itertools"},{"line_number":29,"context_line":"import json"},{"line_number":30,"context_line":"import hashlib"},{"line_number":31,"context_line":"import logging"},{"line_number":32,"context_line":"import random"},{"line_number":33,"context_line":"import re"},{"line_number":34,"context_line":"import uuid"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMH%2F%2FyeQ%3D","line":31,"updated":"2012-11-23 12:34:34.000000000","message":"is common logging possible?","commit_id":"f46294c8e2db13aa26dc4b85d78db88730dc1c49"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":28,"context_line":"import itertools"},{"line_number":29,"context_line":"import json"},{"line_number":30,"context_line":"import hashlib"},{"line_number":31,"context_line":"import logging"},{"line_number":32,"context_line":"import random"},{"line_number":33,"context_line":"import re"},{"line_number":34,"context_line":"import uuid"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAMH%2F%2FvCE%3D","line":31,"in_reply_to":"AAAAMH%2F%2FyeQ%3D","updated":"2012-11-28 09:12:17.000000000","message":"Related patch is on gerrit.","commit_id":"f46294c8e2db13aa26dc4b85d78db88730dc1c49"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"unresolved":false,"context_lines":[{"line_number":45,"context_line":"HTTP_GET \u003d \"GET\""},{"line_number":46,"context_line":"HTTP_POST \u003d \"POST\""},{"line_number":47,"context_line":"# Default transport type for logical switches"},{"line_number":48,"context_line":"DEF_TRANSPORT_TYPE \u003d \"stt\""},{"line_number":49,"context_line":"# Prefix to be used for all NVP API calls"},{"line_number":50,"context_line":"URI_PREFIX \u003d \"/ws.v1\""},{"line_number":51,"context_line":"# Resources exposed by NVP API"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMH%2F%2FtoY%3D","line":48,"updated":"2012-11-29 18:10:43.000000000","message":"maybe file a bug on making this a config option.  not urgent though.","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":45,"context_line":"HTTP_GET \u003d \"GET\""},{"line_number":46,"context_line":"HTTP_POST \u003d \"POST\""},{"line_number":47,"context_line":"# Default transport type for logical switches"},{"line_number":48,"context_line":"DEF_TRANSPORT_TYPE \u003d \"stt\""},{"line_number":49,"context_line":"# Prefix to be used for all NVP API calls"},{"line_number":50,"context_line":"URI_PREFIX \u003d \"/ws.v1\""},{"line_number":51,"context_line":"# Resources exposed by NVP API"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMX%2F%2F3NU%3D","line":48,"in_reply_to":"AAAAMH%2F%2FtoY%3D","updated":"2012-12-11 23:48:35.000000000","message":"Done","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"36547b94f5a10131a12da3e784de4e4256ef1681","unresolved":false,"context_lines":[{"line_number":90,"context_line":"    else:"},{"line_number":91,"context_line":"        res_path \u003d resource + (resource_id and"},{"line_number":92,"context_line":"                               \"/%s\" % resource_id or \u0027\u0027)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    params \u003d []"},{"line_number":95,"context_line":"    params.append(fields and \"fields\u003d%s\" % fields)"},{"line_number":96,"context_line":"    params.append(relations and \"relations\u003d%s\" % relations)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMX%2F%2F%2FKw%3D","line":93,"updated":"2012-12-03 18:03:28.000000000","message":"Since filter is a dict, consider:\n\nimport urllib\n\nparams \u003d {}\nif fields:\n    params[\u0027fields\u0027] \u003d fields\nif relations:\n    params[\u0027relations\u0027] \u003d relations\nparams.update(filters or {})\n\nif params:\n    uri_path +\u003d \"?%s\" % urllib.urlencode(params)","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":90,"context_line":"    else:"},{"line_number":91,"context_line":"        res_path \u003d resource + (resource_id and"},{"line_number":92,"context_line":"                               \"/%s\" % resource_id or \u0027\u0027)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    params \u003d []"},{"line_number":95,"context_line":"    params.append(fields and \"fields\u003d%s\" % fields)"},{"line_number":96,"context_line":"    params.append(relations and \"relations\u003d%s\" % relations)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMX%2F%2F3NQ%3D","line":93,"in_reply_to":"AAAAMX%2F%2F%2FKw%3D","updated":"2012-12-11 23:48:35.000000000","message":"Done","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"unresolved":false,"context_lines":[{"line_number":267,"context_line":"                   tenant_id\u003dNone, **kwargs):"},{"line_number":268,"context_line":"    uri \u003d _build_uri_path(LSWITCH_RESOURCE, resource_id\u003dlswitch_id)"},{"line_number":269,"context_line":"    # TODO(salvatore-orlando): Make sure this operation does not remove"},{"line_number":270,"context_line":"    # any other important tag set on the lswtich object"},{"line_number":271,"context_line":"    lswitch_obj \u003d {\"display_name\": display_name,"},{"line_number":272,"context_line":"                   \"tags\": [{\"tag\": tenant_id, \"scope\": \"os_tid\"}]}"},{"line_number":273,"context_line":"    if \"tags\" in kwargs:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMH%2F%2FtoA%3D","line":270,"updated":"2012-11-29 18:10:43.000000000","message":"mmm.. good point.  why do we need to update tags at all?  I don\u0027t think its possible for the tenant_id to change on update for a quantum network, is it?","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":267,"context_line":"                   tenant_id\u003dNone, **kwargs):"},{"line_number":268,"context_line":"    uri \u003d _build_uri_path(LSWITCH_RESOURCE, resource_id\u003dlswitch_id)"},{"line_number":269,"context_line":"    # TODO(salvatore-orlando): Make sure this operation does not remove"},{"line_number":270,"context_line":"    # any other important tag set on the lswtich object"},{"line_number":271,"context_line":"    lswitch_obj \u003d {\"display_name\": display_name,"},{"line_number":272,"context_line":"                   \"tags\": [{\"tag\": tenant_id, \"scope\": \"os_tid\"}]}"},{"line_number":273,"context_line":"    if \"tags\" in kwargs:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAMX%2F%2F3NI%3D","line":270,"in_reply_to":"AAAAMH%2F%2FtoA%3D","updated":"2012-12-11 23:48:35.000000000","message":"The reason is that the update lswitch operation might add the multi_switch tag but we do not want to lose the \u0027important\u0027 tag, ie: the tenant_id.\nThis is why I am ensuring it always goes in the request body for an update. Doing this way is cheaper than doing a get and then a put, and I don\u0027t think we should worry about tags set outside from Quantum.","commit_id":"d991f1bb860eb1bf532923a3e6bfddda4a92169b"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":33,"context_line":"import re"},{"line_number":34,"context_line":"import uuid"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"from eventlet import semaphore"},{"line_number":37,"context_line":"import NvpApiClient"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"#FIXME(danwent): I\u0027d like this file to get to the point where it has"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAM3%2F%2F3Mw%3D","line":36,"updated":"2012-12-30 07:45:39.000000000","message":"new line","commit_id":"dd3735cd5830b0ac26503386186bf74c21713f0b"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":64,"context_line":"    LOG.addHandler(syslog)"},{"line_number":65,"context_line":"    LOG.setLevel(logging.DEBUG)"},{"line_number":66,"context_line":"else:"},{"line_number":67,"context_line":"    LOG \u003d logging.getLogger(\"nvplib\")"},{"line_number":68,"context_line":"    LOG.setLevel(logging.DEBUG)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"# TODO(bgh): it would be more efficient to use a bitmap"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAM3%2F%2F3Ms%3D","line":67,"updated":"2012-12-30 07:45:39.000000000","message":"logging.getLogger(__name__)","commit_id":"dd3735cd5830b0ac26503386186bf74c21713f0b"}]}
