)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"PLUMgrid plugin supports Quantum Core V2 APIs over an infrastructure running PLUMgrid Network Virtualization Platform."},{"line_number":10,"context_line":"The plugin will interact directly with the Hypervisor layer to provide all the networking functionality requested by Quantum APIs."},{"line_number":11,"context_line":"It will be based on a controller-mode implementation were all resources state will be controlled and handled by the plugin."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I6bc8d32b83982e10f661913e85494468cf10e0e2"},{"line_number":14,"context_line":"Implements: plumgrid-quantum-plugin"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAM3%2F%2B%2Flw%3D","line":11,"updated":"2013-02-12 07:06:31.000000000","message":"According to the convention of git commit message, it would be better each line is less than 80 chars.","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"PLUMgrid plugin supports Quantum Core V2 APIs over an infrastructure running PLUMgrid Network Virtualization Platform."},{"line_number":10,"context_line":"The plugin will interact directly with the Hypervisor layer to provide all the networking functionality requested by Quantum APIs."},{"line_number":11,"context_line":"It will be based on a controller-mode implementation were all resources state will be controlled and handled by the plugin."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I6bc8d32b83982e10f661913e85494468cf10e0e2"},{"line_number":14,"context_line":"Implements: plumgrid-quantum-plugin"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAM3%2F%2B%2Fa4%3D","line":11,"in_reply_to":"AAAAM3%2F%2B%2Flw%3D","updated":"2013-02-12 20:29:55.000000000","message":"Done","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"unresolved":false,"context_lines":[{"line_number":11,"context_line":"It will be based on a controller-mode implementation were all resources state will be controlled and handled by the plugin."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I6bc8d32b83982e10f661913e85494468cf10e0e2"},{"line_number":14,"context_line":"Implements: plumgrid-quantum-plugin"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAM3%2F%2B%2Fls%3D","line":14,"updated":"2013-02-12 07:06:31.000000000","message":"Please insert \"blueprint\" before plumgrid-quantum-plugin","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":11,"context_line":"It will be based on a controller-mode implementation were all resources state will be controlled and handled by the plugin."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I6bc8d32b83982e10f661913e85494468cf10e0e2"},{"line_number":14,"context_line":"Implements: plumgrid-quantum-plugin"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAM3%2F%2B%2Fa0%3D","line":14,"in_reply_to":"AAAAM3%2F%2B%2Fls%3D","updated":"2013-02-12 20:29:55.000000000","message":"Done","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":2031,"name":"Nachi Ueno","email":"nati.ueno@gmail.com","username":"nati-ueno"},"change_message_id":"29d0e6ab96d871ace7286532284e2a99dff5391a","unresolved":false,"context_lines":[{"line_number":11,"context_line":"It will be based on a controller-mode implementation were all resources state will be controlled and handled by the plugin."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I6bc8d32b83982e10f661913e85494468cf10e0e2"},{"line_number":14,"context_line":"Implements: plumgrid-quantum-plugin"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAM3%2F%2B%2BeU%3D","line":14,"in_reply_to":"AAAAM3%2F%2B%2Fls%3D","updated":"2013-02-12 18:39:28.000000000","message":"also L14 should be in L12","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":7,"context_line":"PLUMgrid quantum plugin"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"PLUMgrid plugin supports Quantum Core V2 APIs over an infrastructure running"},{"line_number":10,"context_line":"PLUMgrid Network Virtualization Platform."},{"line_number":11,"context_line":"The plugin will interact directly with the Hypervisor layer to provide all the"},{"line_number":12,"context_line":"networking functionality requested by Quantum APIs."},{"line_number":13,"context_line":"It will be based on a controller-mode implementation were all resources state"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAM3%2F%2B9Pc%3D","line":10,"updated":"2013-02-13 09:07:32.000000000","message":"the PLUMgrid ..","commit_id":"b32163ef8689e830a0b63a946ec7e5fe635a373d"}],"etc/quantum/plugins/plumgrid/plumgrid.ini":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"c991511938b31e576923f03371012b0d5a7c2a49","unresolved":false,"context_lines":[{"line_number":6,"context_line":"# sql_connection \u003d mysql://\u003cuser\u003e:\u003cpass\u003e@\u003chost\u003e:3306/plumgrid_quantum"},{"line_number":7,"context_line":"# Replace \u003chost\u003e above with the IP address of the database used by the"},{"line_number":8,"context_line":"# main quantum server."},{"line_number":9,"context_line":"sql_connection \u003d sqlite://"},{"line_number":10,"context_line":"# Database reconnection retry times - in event connectivity is lost"},{"line_number":11,"context_line":"# set to -1 implies an infinite retry count"},{"line_number":12,"context_line":"# sql_max_retries \u003d 10"}],"source_content_type":"text/x-properties","patch_set":2,"id":"AAAAM3%2F%2B%2Fnc%3D","line":9,"updated":"2013-02-12 06:48:09.000000000","message":"This should be commented out as it is the default value","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":6,"context_line":"# sql_connection \u003d mysql://\u003cuser\u003e:\u003cpass\u003e@\u003chost\u003e:3306/plumgrid_quantum"},{"line_number":7,"context_line":"# Replace \u003chost\u003e above with the IP address of the database used by the"},{"line_number":8,"context_line":"# main quantum server."},{"line_number":9,"context_line":"sql_connection \u003d sqlite://"},{"line_number":10,"context_line":"# Database reconnection retry times - in event connectivity is lost"},{"line_number":11,"context_line":"# set to -1 implies an infinite retry count"},{"line_number":12,"context_line":"# sql_max_retries \u003d 10"}],"source_content_type":"text/x-properties","patch_set":2,"id":"AAAAM3%2F%2B%2Fao%3D","line":9,"in_reply_to":"AAAAM3%2F%2B%2Fnc%3D","updated":"2013-02-12 20:29:55.000000000","message":"Done","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"c991511938b31e576923f03371012b0d5a7c2a49","unresolved":false,"context_lines":[{"line_number":12,"context_line":"# sql_max_retries \u003d 10"},{"line_number":13,"context_line":"# Database reconnection interval in seconds - if the initial connection to the"},{"line_number":14,"context_line":"# database fails"},{"line_number":15,"context_line":"reconnect_interval \u003d 2"},{"line_number":16,"context_line":"# Enable the use of eventlet\u0027s db_pool for MySQL. The flags sql_min_pool_size,"},{"line_number":17,"context_line":"# sql_max_pool_size and sql_idle_timeout are relevant only if this is enabled."},{"line_number":18,"context_line":"# sql_dbpool_enable \u003d False"}],"source_content_type":"text/x-properties","patch_set":2,"id":"AAAAM3%2F%2B%2FnU%3D","line":15,"updated":"2013-02-12 06:48:09.000000000","message":"ditto","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":12,"context_line":"# sql_max_retries \u003d 10"},{"line_number":13,"context_line":"# Database reconnection interval in seconds - if the initial connection to the"},{"line_number":14,"context_line":"# database fails"},{"line_number":15,"context_line":"reconnect_interval \u003d 2"},{"line_number":16,"context_line":"# Enable the use of eventlet\u0027s db_pool for MySQL. The flags sql_min_pool_size,"},{"line_number":17,"context_line":"# sql_max_pool_size and sql_idle_timeout are relevant only if this is enabled."},{"line_number":18,"context_line":"# sql_dbpool_enable \u003d False"}],"source_content_type":"text/x-properties","patch_set":2,"id":"AAAAM3%2F%2B%2Fak%3D","line":15,"in_reply_to":"AAAAM3%2F%2B%2FnU%3D","updated":"2013-02-12 20:29:55.000000000","message":"Done","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":24,"context_line":"# sql_idle_timeout \u003d 3600"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"[PLUMgridNOS]"},{"line_number":27,"context_line":"# This line should be pointing to the right NOS server"},{"line_number":28,"context_line":"# nos_server\u003d172.16.5.154"},{"line_number":29,"context_line":"# nos_server_port\u003d8080"},{"line_number":30,"context_line":"# Authentification parameters"}],"source_content_type":"text/x-properties","patch_set":3,"id":"AAAAM3%2F%2B9PY%3D","line":27,"updated":"2013-02-13 09:07:32.000000000","message":"Consider explaining each field in a little detail","commit_id":"b32163ef8689e830a0b63a946ec7e5fe635a373d"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":24,"context_line":"# sql_idle_timeout \u003d 3600"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"[PLUMgridNOS]"},{"line_number":27,"context_line":"# This line should be pointing to the right NOS server"},{"line_number":28,"context_line":"# nos_server\u003d172.16.5.154"},{"line_number":29,"context_line":"# nos_server_port\u003d8080"},{"line_number":30,"context_line":"# Authentification parameters"}],"source_content_type":"text/x-properties","patch_set":5,"id":"AAAAM3%2F%2B9OA%3D","line":27,"updated":"2013-02-13 09:09:14.000000000","message":"Consider a short explanation for each","commit_id":"d91c35944658923179bbd0e8d5029bf42a01b194"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":24,"context_line":"# sql_idle_timeout \u003d 3600"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"[PLUMgridNOS]"},{"line_number":27,"context_line":"# This line should be pointing to the right NOS server"},{"line_number":28,"context_line":"# nos_server\u003d172.16.5.154"},{"line_number":29,"context_line":"# nos_server_port\u003d8080"},{"line_number":30,"context_line":"# Authentification parameters"}],"source_content_type":"text/x-properties","patch_set":5,"id":"AAAAM3%2F%2B8kw%3D","line":27,"in_reply_to":"AAAAM3%2F%2B9OA%3D","updated":"2013-02-13 18:27:49.000000000","message":"Done","commit_id":"d91c35944658923179bbd0e8d5029bf42a01b194"}],"quantum/plugins/plumgrid/common/exceptions.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"c991511938b31e576923f03371012b0d5a7c2a49","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class PLUMgridException(base_exec.QuantumException):"},{"line_number":26,"context_line":"    message \u003d _(\"An unexpected error occurred in the PLUMgrid Plugin:\""},{"line_number":27,"context_line":"                \"%(err_msg)s\")"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class PLUMgridConnectionFailed(PLUMgridException):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B%2FnM%3D","line":27,"updated":"2013-02-12 06:48:09.000000000","message":"missing space","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class PLUMgridException(base_exec.QuantumException):"},{"line_number":26,"context_line":"    message \u003d _(\"An unexpected error occurred in the PLUMgrid Plugin:\""},{"line_number":27,"context_line":"                \"%(err_msg)s\")"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class PLUMgridConnectionFailed(PLUMgridException):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B%2Fag%3D","line":27,"in_reply_to":"AAAAM3%2F%2B%2FnM%3D","updated":"2013-02-12 20:29:55.000000000","message":"Done","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"}],"quantum/plugins/plumgrid/nova/vif.py":[{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"0b3403f69002617633d8755d347e10c2bf86de13","unresolved":false,"context_lines":[{"line_number":15,"context_line":"#    under the License."},{"line_number":16,"context_line":"#"},{"line_number":17,"context_line":"# @author: Edgar Magana, emagana@plumgrid.com, PLUMgrid, Inc."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import httplib"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B%2F6c%3D","line":18,"updated":"2013-02-12 01:34:25.000000000","message":"This should be merged into Nova, not Quantum.  Having nova vif-drivers in quantum is as bad of an idea as it was when we first allowed it, but we are now much smarter :)\n\nThis is especially true given that you\u0027re subclassing a class from nova!","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":15,"context_line":"#    under the License."},{"line_number":16,"context_line":"#"},{"line_number":17,"context_line":"# @author: Edgar Magana, emagana@plumgrid.com, PLUMgrid, Inc."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import httplib"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B%2Fxw%3D","line":18,"in_reply_to":"AAAAM3%2F%2B%2F6c%3D","updated":"2013-02-12 20:29:55.000000000","message":"ok, will remove from this patch and send one patch to nova","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"c991511938b31e576923f03371012b0d5a7c2a49","unresolved":false,"context_lines":[{"line_number":16,"context_line":"#"},{"line_number":17,"context_line":"# @author: Edgar Magana, emagana@plumgrid.com, PLUMgrid, Inc."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import httplib"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from nova import exception"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B%2FnI%3D","line":19,"updated":"2013-02-12 06:48:09.000000000","message":"agree with dan","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"}],"quantum/plugins/plumgrid/plumgrid_nos_plugin/plumgrid_nos_snippets.py":[{"author":{"_account_id":2031,"name":"Nachi Ueno","email":"nati.ueno@gmail.com","username":"nati-ueno"},"change_message_id":"29d0e6ab96d871ace7286532284e2a99dff5391a","unresolved":false,"context_lines":[{"line_number":26,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class dataNOSPLUMgrid():"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    BASE_NOS_URL \u003d \u0027/0/connectivity/domain/\u0027"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B%2Bdw%3D","line":29,"updated":"2013-02-12 18:39:28.000000000","message":"should be DataNosPLUMgrid","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":26,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class dataNOSPLUMgrid():"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    BASE_NOS_URL \u003d \u0027/0/connectivity/domain/\u0027"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B%2BVY%3D","line":29,"in_reply_to":"AAAAM3%2F%2B%2Bdw%3D","updated":"2013-02-12 20:29:55.000000000","message":"Done","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"0b3403f69002617633d8755d347e10c2bf86de13","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def create_network_body_data(self, tenant_id,):"},{"line_number":41,"context_line":"        body_data \u003d {\"config_template\": \"single_bridge\", \"container_group\":"},{"line_number":42,"context_line":"            tenant_id, \"topology_name\": \"t1\"}"},{"line_number":43,"context_line":"        return body_data"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B%2F54%3D","line":42,"updated":"2013-02-12 01:34:25.000000000","message":"mmmm... is \"t1\" a meaningful identifier here?  Should be pull it out to a well-defined variable?  Or is it throw-away?","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def create_network_body_data(self, tenant_id,):"},{"line_number":41,"context_line":"        body_data \u003d {\"config_template\": \"single_bridge\", \"container_group\":"},{"line_number":42,"context_line":"            tenant_id, \"topology_name\": \"t1\"}"},{"line_number":43,"context_line":"        return body_data"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B%2Fxs%3D","line":42,"in_reply_to":"AAAAM3%2F%2B%2F54%3D","updated":"2013-02-12 20:29:55.000000000","message":"Done","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"unresolved":false,"context_lines":[{"line_number":33,"context_line":"    def __init__(self):"},{"line_number":34,"context_line":"        LOG.info(_(\u0027QuantumPluginPLUMgrid Status: NOS Body Data Creation\u0027))"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def create_domain_body_data(self, tenant_id,):"},{"line_number":37,"context_line":"        body_data \u003d {\"container_group\": tenant_id}"},{"line_number":38,"context_line":"        return body_data"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B9Z4%3D","line":36,"updated":"2013-02-13 06:42:13.000000000","message":"trailing comma.\nPython accepts it, but this is not used in other places.","commit_id":"b32163ef8689e830a0b63a946ec7e5fe635a373d"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":33,"context_line":"    def __init__(self):"},{"line_number":34,"context_line":"        LOG.info(_(\u0027QuantumPluginPLUMgrid Status: NOS Body Data Creation\u0027))"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def create_domain_body_data(self, tenant_id,):"},{"line_number":37,"context_line":"        body_data \u003d {\"container_group\": tenant_id}"},{"line_number":38,"context_line":"        return body_data"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B9Yg%3D","line":36,"in_reply_to":"AAAAM3%2F%2B9Z4%3D","updated":"2013-02-13 07:02:20.000000000","message":"Done","commit_id":"b32163ef8689e830a0b63a946ec7e5fe635a373d"}],"quantum/plugins/plumgrid/plumgrid_nos_plugin/plumgrid_plugin.py":[{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"0b3403f69002617633d8755d347e10c2bf86de13","unresolved":false,"context_lines":[{"line_number":30,"context_line":"from quantum.plugins.plumgrid.common import exceptions as plum_excep"},{"line_number":31,"context_line":"from quantum.plugins.plumgrid.plumgrid_nos_plugin import plumgrid_nos_snippets"},{"line_number":32,"context_line":"from quantum.plugins.plumgrid.plumgrid_nos_plugin import rest_connection"},{"line_number":33,"context_line":"from quantum.plugins.plumgrid.plumgrid_nos_plugin.plumgrid_plugin_version \\"},{"line_number":34,"context_line":"    import (VERSION)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B%2F50%3D","line":33,"updated":"2013-02-12 01:34:25.000000000","message":"use parens, not \\ for continuation","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":30,"context_line":"from quantum.plugins.plumgrid.common import exceptions as plum_excep"},{"line_number":31,"context_line":"from quantum.plugins.plumgrid.plumgrid_nos_plugin import plumgrid_nos_snippets"},{"line_number":32,"context_line":"from quantum.plugins.plumgrid.plumgrid_nos_plugin import rest_connection"},{"line_number":33,"context_line":"from quantum.plugins.plumgrid.plumgrid_nos_plugin.plumgrid_plugin_version \\"},{"line_number":34,"context_line":"    import (VERSION)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B%2FxM%3D","line":33,"in_reply_to":"AAAAM3%2F%2B%2F50%3D","updated":"2013-02-12 20:29:55.000000000","message":"Done","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"0b3403f69002617633d8755d347e10c2bf86de13","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    ]"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"cfg.CONF.register_opts(nos_server_opts, \"PLUMgridNOS\")"},{"line_number":55,"context_line":"# PLUMgrid NOS configuration"},{"line_number":56,"context_line":"nos_plumgrid \u003d cfg.CONF.PLUMgridNOS.nos_server"},{"line_number":57,"context_line":"nos_port \u003d cfg.CONF.PLUMgridNOS.nos_server_port"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B%2F5Y%3D","line":54,"updated":"2013-02-12 01:34:25.000000000","message":"is there a reason these values are in the global scope rather than being in an __init__ method?","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":51,"context_line":"    ]"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"cfg.CONF.register_opts(nos_server_opts, \"PLUMgridNOS\")"},{"line_number":55,"context_line":"# PLUMgrid NOS configuration"},{"line_number":56,"context_line":"nos_plumgrid \u003d cfg.CONF.PLUMgridNOS.nos_server"},{"line_number":57,"context_line":"nos_port \u003d cfg.CONF.PLUMgridNOS.nos_server_port"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B%2FxI%3D","line":54,"in_reply_to":"AAAAM3%2F%2B%2F5Y%3D","updated":"2013-02-12 20:29:55.000000000","message":"Done","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":2031,"name":"Nachi Ueno","email":"nati.ueno@gmail.com","username":"nati-ueno"},"change_message_id":"29d0e6ab96d871ace7286532284e2a99dff5391a","unresolved":false,"context_lines":[{"line_number":102,"context_line":"            body_data \u003d snippets.create_domain_body_data(tenant_id)"},{"line_number":103,"context_line":"            rest_conn.nos_rest_conn(nos_url, \u0027PUT\u0027, body_data, headers)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        except Exception:"},{"line_number":106,"context_line":"            err_message \u003d _(\"PLUMgrid NOS communication failed\")"},{"line_number":107,"context_line":"            raise plum_excep.PLUMgridException(err_message)"},{"line_number":108,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B%2BdU%3D","line":105,"updated":"2013-02-12 18:39:28.000000000","message":"should avoid to use Exception","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":102,"context_line":"            body_data \u003d snippets.create_domain_body_data(tenant_id)"},{"line_number":103,"context_line":"            rest_conn.nos_rest_conn(nos_url, \u0027PUT\u0027, body_data, headers)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        except Exception:"},{"line_number":106,"context_line":"            err_message \u003d _(\"PLUMgrid NOS communication failed\")"},{"line_number":107,"context_line":"            raise plum_excep.PLUMgridException(err_message)"},{"line_number":108,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B%2BT8%3D","line":105,"in_reply_to":"AAAAM3%2F%2B%2BdU%3D","updated":"2013-02-12 20:29:55.000000000","message":"Done","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"c991511938b31e576923f03371012b0d5a7c2a49","unresolved":false,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        except Exception:"},{"line_number":106,"context_line":"            err_message \u003d _(\"PLUMgrid NOS communication failed\")"},{"line_number":107,"context_line":"            raise plum_excep.PLUMgridException(err_message)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        # return created network"},{"line_number":110,"context_line":"        return net"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B%2Fm8%3D","line":107,"updated":"2013-02-12 06:48:09.000000000","message":"do you want to do a rollback here with the created network?","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        except Exception:"},{"line_number":106,"context_line":"            err_message \u003d _(\"PLUMgrid NOS communication failed\")"},{"line_number":107,"context_line":"            raise plum_excep.PLUMgridException(err_message)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        # return created network"},{"line_number":110,"context_line":"        return net"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B%2BQM%3D","line":107,"in_reply_to":"AAAAM3%2F%2B%2Flk%3D","updated":"2013-02-12 20:29:55.000000000","message":"I have followed Gary\u0027s suggestion","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        except Exception:"},{"line_number":106,"context_line":"            err_message \u003d _(\"PLUMgrid NOS communication failed\")"},{"line_number":107,"context_line":"            raise plum_excep.PLUMgridException(err_message)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        # return created network"},{"line_number":110,"context_line":"        return net"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B%2BQQ%3D","line":107,"in_reply_to":"AAAAM3%2F%2B%2Fm8%3D","updated":"2013-02-12 20:29:55.000000000","message":"Done","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"unresolved":false,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        except Exception:"},{"line_number":106,"context_line":"            err_message \u003d _(\"PLUMgrid NOS communication failed\")"},{"line_number":107,"context_line":"            raise plum_excep.PLUMgridException(err_message)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        # return created network"},{"line_number":110,"context_line":"        return net"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B%2Flk%3D","line":107,"in_reply_to":"AAAAM3%2F%2B%2Fm8%3D","updated":"2013-02-12 07:06:31.000000000","message":"My suggestion is to set the status to BUILD first and change it to ACTIVE when the rest connection succeeds. If it fails set it to ERROR.","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"c991511938b31e576923f03371012b0d5a7c2a49","unresolved":false,"context_lines":[{"line_number":133,"context_line":"            rest_conn.nos_rest_conn(nos_url, \u0027PUT\u0027, body_data, headers)"},{"line_number":134,"context_line":"        except Exception:"},{"line_number":135,"context_line":"            err_message \u003d _(\"PLUMgrid NOS communication failed\")"},{"line_number":136,"context_line":"            raise plum_excep.PLUMgridException(err_message)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        # return updated network"},{"line_number":139,"context_line":"        return network_updated"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B%2Fm4%3D","line":136,"updated":"2013-02-12 06:48:09.000000000","message":"ditto","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":2031,"name":"Nachi Ueno","email":"nati.ueno@gmail.com","username":"nati-ueno"},"change_message_id":"29d0e6ab96d871ace7286532284e2a99dff5391a","unresolved":false,"context_lines":[{"line_number":154,"context_line":"            headers \u003d {}"},{"line_number":155,"context_line":"            body_data \u003d {}"},{"line_number":156,"context_line":"            rest_conn.nos_rest_conn(nos_url, \u0027DELETE\u0027, body_data, headers)"},{"line_number":157,"context_line":"        except Exception:"},{"line_number":158,"context_line":"            err_message \u003d _(\"PLUMgrid NOS communication failed\")"},{"line_number":159,"context_line":"            raise plum_excep.PLUMgridException(err_message)"},{"line_number":160,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B%2BdM%3D","line":157,"updated":"2013-02-12 18:39:28.000000000","message":"ditto","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":154,"context_line":"            headers \u003d {}"},{"line_number":155,"context_line":"            body_data \u003d {}"},{"line_number":156,"context_line":"            rest_conn.nos_rest_conn(nos_url, \u0027DELETE\u0027, body_data, headers)"},{"line_number":157,"context_line":"        except Exception:"},{"line_number":158,"context_line":"            err_message \u003d _(\"PLUMgrid NOS communication failed\")"},{"line_number":159,"context_line":"            raise plum_excep.PLUMgridException(err_message)"},{"line_number":160,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B%2BT0%3D","line":157,"in_reply_to":"AAAAM3%2F%2B%2BdM%3D","updated":"2013-02-12 20:29:55.000000000","message":"Done","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"c991511938b31e576923f03371012b0d5a7c2a49","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    def create_port(self, context, port):"},{"line_number":162,"context_line":"        \"\"\""},{"line_number":163,"context_line":"        Create port core Quantum API"},{"line_number":164,"context_line":"        \"\"\""},{"line_number":165,"context_line":"        LOG.debug(_(\"QuantumPluginPLUMgrid Status: create_port() called\"))"},{"line_number":166,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B%2Fm0%3D","line":163,"updated":"2013-02-12 06:48:09.000000000","message":"please note that the current nova vif drivers require the vif_type to be returned. i think you should consider adding that extension","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    def create_port(self, context, port):"},{"line_number":162,"context_line":"        \"\"\""},{"line_number":163,"context_line":"        Create port core Quantum API"},{"line_number":164,"context_line":"        \"\"\""},{"line_number":165,"context_line":"        LOG.debug(_(\"QuantumPluginPLUMgrid Status: create_port() called\"))"},{"line_number":166,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B%2BP4%3D","line":163,"in_reply_to":"AAAAM3%2F%2B%2Fm0%3D","updated":"2013-02-12 20:29:55.000000000","message":"will be available in the next plugin release","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"0b3403f69002617633d8755d347e10c2bf86de13","unresolved":false,"context_lines":[{"line_number":169,"context_line":"        new_port \u003d super(QuantumPluginPLUMgridV2, self).create_port(context,"},{"line_number":170,"context_line":"            port)"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"        # TODO: (Edgar) Create port on PLUMgrid NOS"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        # Set port state up and return that port"},{"line_number":175,"context_line":"        port_update \u003d {\"port\": {\"admin_state_up\": True}}"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B%2F2s%3D","line":172,"updated":"2013-02-12 01:34:25.000000000","message":"Shouldn\u0027t this TODO be implemented?","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":169,"context_line":"        new_port \u003d super(QuantumPluginPLUMgridV2, self).create_port(context,"},{"line_number":170,"context_line":"            port)"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"        # TODO: (Edgar) Create port on PLUMgrid NOS"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        # Set port state up and return that port"},{"line_number":175,"context_line":"        port_update \u003d {\"port\": {\"admin_state_up\": True}}"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B%2Fa8%3D","line":172,"in_reply_to":"AAAAM3%2F%2B%2F2s%3D","updated":"2013-02-12 20:29:55.000000000","message":"Akihiro is correct here. NOS detects a port automatically when the VIF is pugged to the bridge.","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"unresolved":false,"context_lines":[{"line_number":169,"context_line":"        new_port \u003d super(QuantumPluginPLUMgridV2, self).create_port(context,"},{"line_number":170,"context_line":"            port)"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"        # TODO: (Edgar) Create port on PLUMgrid NOS"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        # Set port state up and return that port"},{"line_number":175,"context_line":"        port_update \u003d {\"port\": {\"admin_state_up\": True}}"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B%2FlU%3D","line":172,"in_reply_to":"AAAAM3%2F%2B%2F2s%3D","updated":"2013-02-12 07:06:31.000000000","message":"Without creating a port on NOS, does this plugin work? NOS detects a port when a VIF is plugged to a bridge?","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"0b3403f69002617633d8755d347e10c2bf86de13","unresolved":false,"context_lines":[{"line_number":172,"context_line":"        # TODO: (Edgar) Create port on PLUMgrid NOS"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        # Set port state up and return that port"},{"line_number":175,"context_line":"        port_update \u003d {\"port\": {\"admin_state_up\": True}}"},{"line_number":176,"context_line":"        return super(QuantumPluginPLUMgridV2, self).update_port(context,"},{"line_number":177,"context_line":"            new_port[\"id\"], port_update)"},{"line_number":178,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B%2F2w%3D","line":175,"updated":"2013-02-12 01:34:25.000000000","message":"Are you confusing admin_state_up with status. \n\nadmin_state_up is something the tenant controls?","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":172,"context_line":"        # TODO: (Edgar) Create port on PLUMgrid NOS"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        # Set port state up and return that port"},{"line_number":175,"context_line":"        port_update \u003d {\"port\": {\"admin_state_up\": True}}"},{"line_number":176,"context_line":"        return super(QuantumPluginPLUMgridV2, self).update_port(context,"},{"line_number":177,"context_line":"            new_port[\"id\"], port_update)"},{"line_number":178,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B%2FbI%3D","line":175,"in_reply_to":"AAAAM3%2F%2B%2F2w%3D","updated":"2013-02-12 20:29:55.000000000","message":"got it! This line shouldn\u0027t be needed. I will remove this line in the following patch","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"0b3403f69002617633d8755d347e10c2bf86de13","unresolved":false,"context_lines":[{"line_number":186,"context_line":"        # Validate Args"},{"line_number":187,"context_line":"        orig_port \u003d super(QuantumPluginPLUMgridV2, self).get_port(context,"},{"line_number":188,"context_line":"            port_id)"},{"line_number":189,"context_line":"        if orig_port:"},{"line_number":190,"context_line":"            # Plugin DB - Port Update"},{"line_number":191,"context_line":"            new_port \u003d super(QuantumPluginPLUMgridV2, self).update_port("},{"line_number":192,"context_line":"                context, port_id, port)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B%2F2Y%3D","line":189,"updated":"2013-02-12 01:34:25.000000000","message":"why is this check needed?  update_port in the base class should check that the port exists itself, no?","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":186,"context_line":"        # Validate Args"},{"line_number":187,"context_line":"        orig_port \u003d super(QuantumPluginPLUMgridV2, self).get_port(context,"},{"line_number":188,"context_line":"            port_id)"},{"line_number":189,"context_line":"        if orig_port:"},{"line_number":190,"context_line":"            # Plugin DB - Port Update"},{"line_number":191,"context_line":"            new_port \u003d super(QuantumPluginPLUMgridV2, self).update_port("},{"line_number":192,"context_line":"                context, port_id, port)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B%2FbE%3D","line":189,"in_reply_to":"AAAAM3%2F%2B%2F2Y%3D","updated":"2013-02-12 20:29:55.000000000","message":"you are right, I will make the proper changes","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"unresolved":false,"context_lines":[{"line_number":221,"context_line":"        net_id \u003d subnet_details[\"network_id\"]"},{"line_number":222,"context_line":"        tenant_id \u003d subnet_details[\"tenant_id\"]"},{"line_number":223,"context_line":"        net \u003d super(QuantumPluginPLUMgridV2, self).get_network(context,"},{"line_number":224,"context_line":"            net_id)"},{"line_number":225,"context_line":"        try:"},{"line_number":226,"context_line":"            nos_url \u003d snippets.BASE_NOS_URL + net[\"id\"]"},{"line_number":227,"context_line":"            headers \u003d {}"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B%2FlA%3D","line":224,"updated":"2013-02-12 07:06:31.000000000","message":"L.223-224 seems to be unnecessary. net[\"id\"] is same as net_id from subnet_details.","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":221,"context_line":"        net_id \u003d subnet_details[\"network_id\"]"},{"line_number":222,"context_line":"        tenant_id \u003d subnet_details[\"tenant_id\"]"},{"line_number":223,"context_line":"        net \u003d super(QuantumPluginPLUMgridV2, self).get_network(context,"},{"line_number":224,"context_line":"            net_id)"},{"line_number":225,"context_line":"        try:"},{"line_number":226,"context_line":"            nos_url \u003d snippets.BASE_NOS_URL + net[\"id\"]"},{"line_number":227,"context_line":"            headers \u003d {}"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B%2BhU%3D","line":224,"in_reply_to":"AAAAM3%2F%2B%2FlA%3D","updated":"2013-02-12 20:29:55.000000000","message":"Done","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"0b3403f69002617633d8755d347e10c2bf86de13","unresolved":false,"context_lines":[{"line_number":270,"context_line":"            # PLUMgrid Server does not support updating resources yet"},{"line_number":271,"context_line":"            headers \u003d {}"},{"line_number":272,"context_line":"            body_data \u003d {}"},{"line_number":273,"context_line":"            self.cleaning_nos_subnet_structure(body_data, headers, net_id)"},{"line_number":274,"context_line":"            nos_url \u003d snippets.BASE_NOS_URL + net_id"},{"line_number":275,"context_line":"            body_data \u003d snippets.create_network_body_data(tenant_id)"},{"line_number":276,"context_line":"            rest_conn.nos_rest_conn(nos_url, \u0027PUT\u0027, body_data, headers)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B%2F3c%3D","line":273,"updated":"2013-02-12 01:34:25.000000000","message":"I don\u0027t really understand what this method does... seems to be equivalent to a delete (later followed by a recreate), which seems odd given that we may just be updating a minor attribute of the subnet.","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":270,"context_line":"            # PLUMgrid Server does not support updating resources yet"},{"line_number":271,"context_line":"            headers \u003d {}"},{"line_number":272,"context_line":"            body_data \u003d {}"},{"line_number":273,"context_line":"            self.cleaning_nos_subnet_structure(body_data, headers, net_id)"},{"line_number":274,"context_line":"            nos_url \u003d snippets.BASE_NOS_URL + net_id"},{"line_number":275,"context_line":"            body_data \u003d snippets.create_network_body_data(tenant_id)"},{"line_number":276,"context_line":"            rest_conn.nos_rest_conn(nos_url, \u0027PUT\u0027, body_data, headers)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B%2FbA%3D","line":273,"in_reply_to":"AAAAM3%2F%2B%2F3c%3D","updated":"2013-02-12 20:29:55.000000000","message":"At this time PLUMgrid platform is still getting some changes to handle updates, this is right now the only way to make it happen.","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":19,"context_line":"Quantum PLUMgrid Plug-in for PLUMgrid Virtual Technology"},{"line_number":20,"context_line":"This plugin will forward authenticated REST API calls"},{"line_number":21,"context_line":"to the Network Operating System by PLUMgrid called NOS"},{"line_number":22,"context_line":"..."},{"line_number":23,"context_line":"\"\"\""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B9PQ%3D","line":22,"updated":"2013-02-13 09:07:32.000000000","message":"?","commit_id":"b32163ef8689e830a0b63a946ec7e5fe635a373d"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"class QuantumPluginPLUMgridV2(db_base_plugin_v2.QuantumDbPluginV2):"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def __init__(self):"},{"line_number":60,"context_line":"        LOG.info(_(\u0027QuantumPluginPLUMgrid Status: Starting Plugin\u0027))"},{"line_number":61,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B9O4%3D","line":58,"updated":"2013-02-13 09:07:32.000000000","message":"Do you want to include any extensions? The port bindings may be a basic requirement for working with the nova vif driver.","commit_id":"b32163ef8689e830a0b63a946ec7e5fe635a373d"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":79,"context_line":"        LOG.info(_(\u0027QuantumPluginPLUMgrid PLUMgrid NOS: %s\u0027), nos_plumgrid)"},{"line_number":80,"context_line":"        if not nos_plumgrid:"},{"line_number":81,"context_line":"            LOG.error(_(\u0027QuantumPluginPLUMgrid Status: NOS server is not \u0027"},{"line_number":82,"context_line":"                        \u0027included in config file\u0027))"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        LOG.debug(_(\u0027QuantumPluginPLUMgrid Status: Quantum server with \u0027"},{"line_number":85,"context_line":"                    \u0027PLUMgrid Plugin has started\u0027))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B9PM%3D","line":82,"updated":"2013-02-13 09:07:32.000000000","message":"do you want to exit here or continue?","commit_id":"b32163ef8689e830a0b63a946ec7e5fe635a373d"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"unresolved":false,"context_lines":[{"line_number":108,"context_line":"        except:"},{"line_number":109,"context_line":"            # rolling back network status"},{"line_number":110,"context_line":"            super(QuantumPluginPLUMgridV2, self).delete_network(context,"},{"line_number":111,"context_line":"                                                                network)"},{"line_number":112,"context_line":"            err_message \u003d _(\"PLUMgrid NOS communication failed\")"},{"line_number":113,"context_line":"            raise plum_excep.PLUMgridException(err_message)"},{"line_number":114,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B9ZY%3D","line":111,"updated":"2013-02-13 06:42:13.000000000","message":"The error recovery should be done by aborting DB transaction.\ni.e. call super().create_network() and REST call in a db transaction.\nWhen REST call fails, the transaction will be aborted by exception.\nSame to other operations.","commit_id":"b32163ef8689e830a0b63a946ec7e5fe635a373d"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"unresolved":false,"context_lines":[{"line_number":108,"context_line":"        except:"},{"line_number":109,"context_line":"            # rolling back network status"},{"line_number":110,"context_line":"            super(QuantumPluginPLUMgridV2, self).delete_network(context,"},{"line_number":111,"context_line":"                                                                network)"},{"line_number":112,"context_line":"            err_message \u003d _(\"PLUMgrid NOS communication failed\")"},{"line_number":113,"context_line":"            raise plum_excep.PLUMgridException(err_message)"},{"line_number":114,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B9Os%3D","line":111,"in_reply_to":"AAAAM3%2F%2B9YY%3D","updated":"2013-02-13 08:58:42.000000000","message":"I meant something like\nsession \u003d context.session\ntry:\n    with session.begion():\n        super().create_network()\n        rest call\nexcept:\n    # Here transaction is aborted.\n    raise PLUMMgridException","commit_id":"b32163ef8689e830a0b63a946ec7e5fe635a373d"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":108,"context_line":"        except:"},{"line_number":109,"context_line":"            # rolling back network status"},{"line_number":110,"context_line":"            super(QuantumPluginPLUMgridV2, self).delete_network(context,"},{"line_number":111,"context_line":"                                                                network)"},{"line_number":112,"context_line":"            err_message \u003d _(\"PLUMgrid NOS communication failed\")"},{"line_number":113,"context_line":"            raise plum_excep.PLUMgridException(err_message)"},{"line_number":114,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B9YY%3D","line":111,"in_reply_to":"AAAAM3%2F%2B9ZY%3D","updated":"2013-02-13 07:02:20.000000000","message":"Could you explain a little bit more this suggestion?\nI can\u0027t make first the REST call and base on its result proceed with the DB transaction because I need the network object from the DB call.","commit_id":"b32163ef8689e830a0b63a946ec7e5fe635a373d"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":125,"context_line":"        tenant_id \u003d self._get_tenant_id_for_create(context, network[\"network\"])"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        # Get initial network details"},{"line_number":128,"context_line":"        initial_net \u003d super(QuantumPluginPLUMgridV2, self).get_network("},{"line_number":129,"context_line":"            context, net_id)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        # Plugin DB - Network Update"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B9O0%3D","line":128,"updated":"2013-02-13 09:07:32.000000000","message":"consider original_net instead of initial","commit_id":"b32163ef8689e830a0b63a946ec7e5fe635a373d"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":169,"context_line":"            self.rest_conn.nos_rest_conn(nos_url, \u0027DELETE\u0027, body_data, headers)"},{"line_number":170,"context_line":"        except:"},{"line_number":171,"context_line":"            # rolling back network status"},{"line_number":172,"context_line":"            super(QuantumPluginPLUMgridV2, self).create_network(context,"},{"line_number":173,"context_line":"                                                                net_deleted)"},{"line_number":174,"context_line":"            err_message \u003d _(\"PLUMgrid NOS communication failed\")"},{"line_number":175,"context_line":"            raise plum_excep.PLUMgridException(err_message)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B9Ow%3D","line":172,"updated":"2013-02-13 09:07:32.000000000","message":"Not 100% sure of this one. Will the network receive the same net ID? Maybe you should consider doing the rest deletion first and then the database.","commit_id":"b32163ef8689e830a0b63a946ec7e5fe635a373d"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":184,"context_line":"        # VIF driver operations in Nova."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"        # Plugin DB - Port Create"},{"line_number":187,"context_line":"        port[\"port\"][\"admin_state_up\"] \u003d True"},{"line_number":188,"context_line":"        return super(QuantumPluginPLUMgridV2, self).create_port(context,"},{"line_number":189,"context_line":"                                                                port)"},{"line_number":190,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B9Og%3D","line":187,"updated":"2013-02-13 09:07:32.000000000","message":"Not sure why this is set as True - the admin_state is True by default. Can you please explain","commit_id":"b32163ef8689e830a0b63a946ec7e5fe635a373d"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":198,"context_line":"        # Validate Args"},{"line_number":199,"context_line":"        orig_port \u003d super(QuantumPluginPLUMgridV2, self).get_port(context,"},{"line_number":200,"context_line":"                                                                  port_id)"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"        # Port operations on PLUMgrid NOS is an automatic operation from the"},{"line_number":203,"context_line":"        # VIF driver operations in Nova."},{"line_number":204,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B9OY%3D","line":201,"updated":"2013-02-13 09:07:32.000000000","message":"Not sure why you need to reas the orig port here - it is not used.","commit_id":"b32163ef8689e830a0b63a946ec7e5fe635a373d"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":207,"context_line":"            context, port_id, port)"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"    def delete_port(self, context, port_id):"},{"line_number":210,"context_line":"        \"\"\""},{"line_number":211,"context_line":"        Delete port core Quantum API"},{"line_number":212,"context_line":"        \"\"\""},{"line_number":213,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B9OU%3D","line":210,"updated":"2013-02-13 09:07:32.000000000","message":"Why do you need to implement this? There are no changes.","commit_id":"b32163ef8689e830a0b63a946ec7e5fe635a373d"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":266,"context_line":"            self.cleaning_nos_subnet_structure(body_data, headers, net_id)"},{"line_number":267,"context_line":"        except:"},{"line_number":268,"context_line":"            # rolling back subnet state"},{"line_number":269,"context_line":"            super(QuantumPluginPLUMgridV2, self).create_subnet(context,"},{"line_number":270,"context_line":"                                                               subnet_details)"},{"line_number":271,"context_line":"            err_message \u003d _(\"PLUMgrid NOS communication failed: \")"},{"line_number":272,"context_line":"            raise plum_excep.PLUMgridException(err_message)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B9OQ%3D","line":269,"updated":"2013-02-13 09:07:32.000000000","message":"Consider the plumgroid deletion before DB","commit_id":"b32163ef8689e830a0b63a946ec7e5fe635a373d"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":328,"context_line":"        if network[\"network\"].get(\"admin_state_up\"):"},{"line_number":329,"context_line":"            network_name \u003d network[\"network\"][\"name\"]"},{"line_number":330,"context_line":"            if network[\"network\"][\"admin_state_up\"] is False:"},{"line_number":331,"context_line":"                LOG.warning(_(\"Network with admin_state_up\u003dFalse are not yet \""},{"line_number":332,"context_line":"                              \"supported by this plugin. Ignoring setting for \""},{"line_number":333,"context_line":"                              \"network %s\"), network_name)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B9OM%3D","line":331,"updated":"2013-02-13 09:07:32.000000000","message":"Consider an exception here.","commit_id":"b32163ef8689e830a0b63a946ec7e5fe635a373d"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"a7b33c5757e501bde03c04128ff51138d4978cc6","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Quantum PLUMgrid Plug-in for PLUMgrid Virtual Technology"},{"line_number":20,"context_line":"This plugin will forward authenticated REST API calls"},{"line_number":21,"context_line":"to the Network Operating System by PLUMgrid called NOS"},{"line_number":22,"context_line":"..."},{"line_number":23,"context_line":"\"\"\""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2B9X8%3D","line":22,"updated":"2013-02-13 07:21:00.000000000","message":"nit ... ?","commit_id":"2c4728af4f037eba87ef6e87ac2e49ce807b2ca4"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":19,"context_line":"Quantum PLUMgrid Plug-in for PLUMgrid Virtual Technology"},{"line_number":20,"context_line":"This plugin will forward authenticated REST API calls"},{"line_number":21,"context_line":"to the Network Operating System by PLUMgrid called NOS"},{"line_number":22,"context_line":"..."},{"line_number":23,"context_line":"\"\"\""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2B9Wk%3D","line":22,"in_reply_to":"AAAAM3%2F%2B9X8%3D","updated":"2013-02-13 08:07:55.000000000","message":"Done","commit_id":"2c4728af4f037eba87ef6e87ac2e49ce807b2ca4"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"a7b33c5757e501bde03c04128ff51138d4978cc6","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        self.topology_name \u003d cfg.CONF.PLUMgridNOS.topologyname"},{"line_number":67,"context_line":"        self.snippets \u003d plumgrid_nos_snippets.DataNOSPLUMgrid()"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        # TODO: (Edgar) These are placeholders for next PLUMgrid release"},{"line_number":70,"context_line":"        nos_username \u003d cfg.CONF.PLUMgridNOS.username"},{"line_number":71,"context_line":"        nos_password \u003d cfg.CONF.PLUMgridNOS.password"},{"line_number":72,"context_line":"        self.rest_conn \u003d rest_connection.RestConnection(nos_plumgrid,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2B9X4%3D","line":69,"updated":"2013-02-13 07:21:00.000000000","message":"What does this todo mean? Why are these just placeholders?","commit_id":"2c4728af4f037eba87ef6e87ac2e49ce807b2ca4"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":66,"context_line":"        self.topology_name \u003d cfg.CONF.PLUMgridNOS.topologyname"},{"line_number":67,"context_line":"        self.snippets \u003d plumgrid_nos_snippets.DataNOSPLUMgrid()"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        # TODO: (Edgar) These are placeholders for next PLUMgrid release"},{"line_number":70,"context_line":"        nos_username \u003d cfg.CONF.PLUMgridNOS.username"},{"line_number":71,"context_line":"        nos_password \u003d cfg.CONF.PLUMgridNOS.password"},{"line_number":72,"context_line":"        self.rest_conn \u003d rest_connection.RestConnection(nos_plumgrid,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2B9Wc%3D","line":69,"in_reply_to":"AAAAM3%2F%2B9X4%3D","updated":"2013-02-13 08:07:55.000000000","message":"authentification and authorization is work in progress in NOS. I just want to have the code ready for the next release.","commit_id":"2c4728af4f037eba87ef6e87ac2e49ce807b2ca4"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"a7b33c5757e501bde03c04128ff51138d4978cc6","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        # Plugin DB - Network Create and validation"},{"line_number":95,"context_line":"        tenant_id \u003d self._get_tenant_id_for_create(context, network[\"network\"])"},{"line_number":96,"context_line":"        self.network_admin_state(network)"},{"line_number":97,"context_line":"        net \u003d super(QuantumPluginPLUMgridV2, self).create_network(context,"},{"line_number":98,"context_line":"                                                                  network)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2B9X0%3D","line":97,"updated":"2013-02-13 07:21:00.000000000","message":"Should be wrapped in with context.session.begin(subtransactions\u003dTrue): so you can remove 109-110.","commit_id":"2c4728af4f037eba87ef6e87ac2e49ce807b2ca4"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":94,"context_line":"        # Plugin DB - Network Create and validation"},{"line_number":95,"context_line":"        tenant_id \u003d self._get_tenant_id_for_create(context, network[\"network\"])"},{"line_number":96,"context_line":"        self.network_admin_state(network)"},{"line_number":97,"context_line":"        net \u003d super(QuantumPluginPLUMgridV2, self).create_network(context,"},{"line_number":98,"context_line":"                                                                  network)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2B9Vs%3D","line":97,"in_reply_to":"AAAAM3%2F%2B9X0%3D","updated":"2013-02-13 08:07:55.000000000","message":"Done","commit_id":"2c4728af4f037eba87ef6e87ac2e49ce807b2ca4"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"a7b33c5757e501bde03c04128ff51138d4978cc6","unresolved":false,"context_lines":[{"line_number":129,"context_line":"            context, net_id)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        # Plugin DB - Network Update"},{"line_number":132,"context_line":"        network_updated \u003d super(QuantumPluginPLUMgridV2, self).update_network("},{"line_number":133,"context_line":"            context, net_id, network)"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2B9Xw%3D","line":132,"updated":"2013-02-13 07:21:00.000000000","message":"Should be wrapped in with context.session.begin(subtransactions\u003dTrue):","commit_id":"2c4728af4f037eba87ef6e87ac2e49ce807b2ca4"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":129,"context_line":"            context, net_id)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        # Plugin DB - Network Update"},{"line_number":132,"context_line":"        network_updated \u003d super(QuantumPluginPLUMgridV2, self).update_network("},{"line_number":133,"context_line":"            context, net_id, network)"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2B9VU%3D","line":132,"in_reply_to":"AAAAM3%2F%2B9Xw%3D","updated":"2013-02-13 08:07:55.000000000","message":"Done","commit_id":"2c4728af4f037eba87ef6e87ac2e49ce807b2ca4"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"a7b33c5757e501bde03c04128ff51138d4978cc6","unresolved":false,"context_lines":[{"line_number":156,"context_line":"        Delete network core Quantum API"},{"line_number":157,"context_line":"        \"\"\""},{"line_number":158,"context_line":"        LOG.debug(_(\"QuantumPluginPLUMgrid Status: delete_network() called\"))"},{"line_number":159,"context_line":"        super(QuantumPluginPLUMgridV2, self).get_network(context, net_id)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        # Plugin DB - Network Delete"},{"line_number":162,"context_line":"        net_deleted \u003d super(QuantumPluginPLUMgridV2,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2B9Xs%3D","line":159,"updated":"2013-02-13 07:21:00.000000000","message":"Should be wrapped in with context.session.begin(subtransactions\u003dTrue):","commit_id":"2c4728af4f037eba87ef6e87ac2e49ce807b2ca4"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":156,"context_line":"        Delete network core Quantum API"},{"line_number":157,"context_line":"        \"\"\""},{"line_number":158,"context_line":"        LOG.debug(_(\"QuantumPluginPLUMgrid Status: delete_network() called\"))"},{"line_number":159,"context_line":"        super(QuantumPluginPLUMgridV2, self).get_network(context, net_id)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        # Plugin DB - Network Delete"},{"line_number":162,"context_line":"        net_deleted \u003d super(QuantumPluginPLUMgridV2,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2B9VY%3D","line":159,"in_reply_to":"AAAAM3%2F%2B9Xs%3D","updated":"2013-02-13 08:07:55.000000000","message":"Done","commit_id":"2c4728af4f037eba87ef6e87ac2e49ce807b2ca4"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"a7b33c5757e501bde03c04128ff51138d4978cc6","unresolved":false,"context_lines":[{"line_number":183,"context_line":"        # Port operations on PLUMgrid NOS is an automatic operation from the"},{"line_number":184,"context_line":"        # VIF driver operations in Nova."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"        # Plugin DB - Port Create"},{"line_number":187,"context_line":"        port[\"port\"][\"admin_state_up\"] \u003d True"},{"line_number":188,"context_line":"        return super(QuantumPluginPLUMgridV2, self).create_port(context,"},{"line_number":189,"context_line":"                                                                port)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2B9Xo%3D","line":186,"updated":"2013-02-13 07:21:00.000000000","message":"nit: change comment to explain why the port\u0027s admin_state_up  is automatically True rather than: Plugin DB - Port Create","commit_id":"2c4728af4f037eba87ef6e87ac2e49ce807b2ca4"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":183,"context_line":"        # Port operations on PLUMgrid NOS is an automatic operation from the"},{"line_number":184,"context_line":"        # VIF driver operations in Nova."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"        # Plugin DB - Port Create"},{"line_number":187,"context_line":"        port[\"port\"][\"admin_state_up\"] \u003d True"},{"line_number":188,"context_line":"        return super(QuantumPluginPLUMgridV2, self).create_port(context,"},{"line_number":189,"context_line":"                                                                port)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2B9WY%3D","line":186,"in_reply_to":"AAAAM3%2F%2B9Xo%3D","updated":"2013-02-13 08:07:55.000000000","message":"Done","commit_id":"2c4728af4f037eba87ef6e87ac2e49ce807b2ca4"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"a7b33c5757e501bde03c04128ff51138d4978cc6","unresolved":false,"context_lines":[{"line_number":199,"context_line":"        orig_port \u003d super(QuantumPluginPLUMgridV2, self).get_port(context,"},{"line_number":200,"context_line":"                                                                  port_id)"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"        # Port operations on PLUMgrid NOS is an automatic operation from the"},{"line_number":203,"context_line":"        # VIF driver operations in Nova."},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        # Plugin DB - Port Update"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2B9Xg%3D","line":202,"updated":"2013-02-13 07:21:00.000000000","message":"How?","commit_id":"2c4728af4f037eba87ef6e87ac2e49ce807b2ca4"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":199,"context_line":"        orig_port \u003d super(QuantumPluginPLUMgridV2, self).get_port(context,"},{"line_number":200,"context_line":"                                                                  port_id)"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"        # Port operations on PLUMgrid NOS is an automatic operation from the"},{"line_number":203,"context_line":"        # VIF driver operations in Nova."},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        # Plugin DB - Port Update"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2B9WU%3D","line":202,"in_reply_to":"AAAAM3%2F%2B9Xg%3D","updated":"2013-02-13 08:07:55.000000000","message":"This is part of the NOS functionality.","commit_id":"2c4728af4f037eba87ef6e87ac2e49ce807b2ca4"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"a7b33c5757e501bde03c04128ff51138d4978cc6","unresolved":false,"context_lines":[{"line_number":213,"context_line":""},{"line_number":214,"context_line":"        LOG.debug(_(\"QuantumPluginPLUMgrid Status: delete_port() called\"))"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"        # Port operations on PLUMgrid NOS is an automatic operation from the"},{"line_number":217,"context_line":"        # VIF driver operations in Nova."},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"        # Plugin DB - Port Delete"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2B9Xc%3D","line":216,"updated":"2013-02-13 07:21:00.000000000","message":"How?","commit_id":"2c4728af4f037eba87ef6e87ac2e49ce807b2ca4"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"a7b33c5757e501bde03c04128ff51138d4978cc6","unresolved":false,"context_lines":[{"line_number":213,"context_line":""},{"line_number":214,"context_line":"        LOG.debug(_(\"QuantumPluginPLUMgrid Status: delete_port() called\"))"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"        # Port operations on PLUMgrid NOS is an automatic operation from the"},{"line_number":217,"context_line":"        # VIF driver operations in Nova."},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"        # Plugin DB - Port Delete"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2B8CU%3D","line":216,"in_reply_to":"AAAAM3%2F%2B9WQ%3D","updated":"2013-02-13 21:08:12.000000000","message":"My question is how does this work? I don\u0027t see any agent to update the port Nor do I see a call to    self.rest_conn.nos_rest_conn() that would do this.","commit_id":"2c4728af4f037eba87ef6e87ac2e49ce807b2ca4"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":213,"context_line":""},{"line_number":214,"context_line":"        LOG.debug(_(\"QuantumPluginPLUMgrid Status: delete_port() called\"))"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"        # Port operations on PLUMgrid NOS is an automatic operation from the"},{"line_number":217,"context_line":"        # VIF driver operations in Nova."},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"        # Plugin DB - Port Delete"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2B9WQ%3D","line":216,"in_reply_to":"AAAAM3%2F%2B9Xc%3D","updated":"2013-02-13 08:07:55.000000000","message":"This is part of the NOS functionality.","commit_id":"2c4728af4f037eba87ef6e87ac2e49ce807b2ca4"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"a7b33c5757e501bde03c04128ff51138d4978cc6","unresolved":false,"context_lines":[{"line_number":225,"context_line":"        \"\"\""},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"        LOG.debug(_(\"QuantumPluginPLUMgrid Status: create_subnet() called\"))"},{"line_number":228,"context_line":"        # Plugin DB - Subnet Create"},{"line_number":229,"context_line":"        subnet \u003d super(QuantumPluginPLUMgridV2, self).create_subnet(context,"},{"line_number":230,"context_line":"                                                                    subnet)"},{"line_number":231,"context_line":"        subnet_details \u003d self._get_subnet(context, subnet[\"id\"])"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2B9XY%3D","line":228,"updated":"2013-02-13 07:21:00.000000000","message":"Should be wrapped in with context.session.begin(subtransactions\u003dTrue):","commit_id":"2c4728af4f037eba87ef6e87ac2e49ce807b2ca4"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":225,"context_line":"        \"\"\""},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"        LOG.debug(_(\"QuantumPluginPLUMgrid Status: create_subnet() called\"))"},{"line_number":228,"context_line":"        # Plugin DB - Subnet Create"},{"line_number":229,"context_line":"        subnet \u003d super(QuantumPluginPLUMgridV2, self).create_subnet(context,"},{"line_number":230,"context_line":"                                                                    subnet)"},{"line_number":231,"context_line":"        subnet_details \u003d self._get_subnet(context, subnet[\"id\"])"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2B9Vc%3D","line":228,"in_reply_to":"AAAAM3%2F%2B9XY%3D","updated":"2013-02-13 08:07:55.000000000","message":"Done","commit_id":"2c4728af4f037eba87ef6e87ac2e49ce807b2ca4"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"a7b33c5757e501bde03c04128ff51138d4978cc6","unresolved":false,"context_lines":[{"line_number":257,"context_line":"        subnet_details \u003d self._get_subnet(context, subnet_id)"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"        # Plugin DB - Subnet Delete"},{"line_number":260,"context_line":"        del_subnet \u003d super(QuantumPluginPLUMgridV2, self).delete_subnet("},{"line_number":261,"context_line":"            context, subnet_id)"},{"line_number":262,"context_line":"        try:"},{"line_number":263,"context_line":"            headers \u003d {}"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2B9XU%3D","line":260,"updated":"2013-02-13 07:21:00.000000000","message":"Should be wrapped in with context.session.begin(subtransactions\u003dTrue):","commit_id":"2c4728af4f037eba87ef6e87ac2e49ce807b2ca4"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":257,"context_line":"        subnet_details \u003d self._get_subnet(context, subnet_id)"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"        # Plugin DB - Subnet Delete"},{"line_number":260,"context_line":"        del_subnet \u003d super(QuantumPluginPLUMgridV2, self).delete_subnet("},{"line_number":261,"context_line":"            context, subnet_id)"},{"line_number":262,"context_line":"        try:"},{"line_number":263,"context_line":"            headers \u003d {}"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2B9Vg%3D","line":260,"in_reply_to":"AAAAM3%2F%2B9XU%3D","updated":"2013-02-13 08:07:55.000000000","message":"Done","commit_id":"2c4728af4f037eba87ef6e87ac2e49ce807b2ca4"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"a7b33c5757e501bde03c04128ff51138d4978cc6","unresolved":false,"context_lines":[{"line_number":287,"context_line":"        new_subnet \u003d super(QuantumPluginPLUMgridV2, self).update_subnet("},{"line_number":288,"context_line":"            context, subnet_id, subnet)"},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"        try:"},{"line_number":291,"context_line":"            # PLUMgrid Server does not support updating resources yet"},{"line_number":292,"context_line":"            headers \u003d {}"},{"line_number":293,"context_line":"            body_data \u003d {}"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2B9XM%3D","line":290,"updated":"2013-02-13 07:21:00.000000000","message":"Should be wrapped in with context.session.begin(subtransactions\u003dTrue):","commit_id":"2c4728af4f037eba87ef6e87ac2e49ce807b2ca4"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":287,"context_line":"        new_subnet \u003d super(QuantumPluginPLUMgridV2, self).update_subnet("},{"line_number":288,"context_line":"            context, subnet_id, subnet)"},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"        try:"},{"line_number":291,"context_line":"            # PLUMgrid Server does not support updating resources yet"},{"line_number":292,"context_line":"            headers \u003d {}"},{"line_number":293,"context_line":"            body_data \u003d {}"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2B9Vk%3D","line":290,"in_reply_to":"AAAAM3%2F%2B9XM%3D","updated":"2013-02-13 08:07:55.000000000","message":"Done","commit_id":"2c4728af4f037eba87ef6e87ac2e49ce807b2ca4"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"a7b33c5757e501bde03c04128ff51138d4978cc6","unresolved":false,"context_lines":[{"line_number":315,"context_line":"    Internal PLUMgrid fuctions"},{"line_number":316,"context_line":"    \"\"\""},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"    def get_plugin_version(self):"},{"line_number":319,"context_line":"        return VERSION"},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"    def cleaning_nos_subnet_structure(self, body_data, headers, net_id):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2B9W0%3D","line":318,"updated":"2013-02-13 07:22:44.000000000","message":"If these are internal lets add a _ to the start of their name.","commit_id":"2c4728af4f037eba87ef6e87ac2e49ce807b2ca4"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":315,"context_line":"    Internal PLUMgrid fuctions"},{"line_number":316,"context_line":"    \"\"\""},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"    def get_plugin_version(self):"},{"line_number":319,"context_line":"        return VERSION"},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"    def cleaning_nos_subnet_structure(self, body_data, headers, net_id):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2B9WM%3D","line":318,"in_reply_to":"AAAAM3%2F%2B9W0%3D","updated":"2013-02-13 08:07:55.000000000","message":"Done","commit_id":"2c4728af4f037eba87ef6e87ac2e49ce807b2ca4"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":68,"context_line":"        # TODO: (Edgar) These are placeholders for next PLUMgrid release"},{"line_number":69,"context_line":"        nos_username \u003d cfg.CONF.PLUMgridNOS.username"},{"line_number":70,"context_line":"        nos_password \u003d cfg.CONF.PLUMgridNOS.password"},{"line_number":71,"context_line":"        self.rest_conn \u003d rest_connection.RestConnection(nos_plumgrid,"},{"line_number":72,"context_line":"                                                        nos_port, timeout)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        # Plugin DB initialization"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9N8%3D","line":71,"updated":"2013-02-13 09:09:14.000000000","message":"If this returns None then maybe exit","commit_id":"d91c35944658923179bbd0e8d5029bf42a01b194"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":68,"context_line":"        # TODO: (Edgar) These are placeholders for next PLUMgrid release"},{"line_number":69,"context_line":"        nos_username \u003d cfg.CONF.PLUMgridNOS.username"},{"line_number":70,"context_line":"        nos_password \u003d cfg.CONF.PLUMgridNOS.password"},{"line_number":71,"context_line":"        self.rest_conn \u003d rest_connection.RestConnection(nos_plumgrid,"},{"line_number":72,"context_line":"                                                        nos_port, timeout)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        # Plugin DB initialization"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B8jw%3D","line":71,"in_reply_to":"AAAAM3%2F%2B9N8%3D","updated":"2013-02-13 18:27:49.000000000","message":"Done","commit_id":"d91c35944658923179bbd0e8d5029bf42a01b194"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":78,"context_line":"        LOG.info(_(\u0027QuantumPluginPLUMgrid PLUMgrid NOS: %s\u0027), nos_plumgrid)"},{"line_number":79,"context_line":"        if not nos_plumgrid:"},{"line_number":80,"context_line":"            LOG.error(_(\u0027QuantumPluginPLUMgrid Status: NOS server is not \u0027"},{"line_number":81,"context_line":"                        \u0027included in config file\u0027))"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        LOG.debug(_(\u0027QuantumPluginPLUMgrid Status: Quantum server with \u0027"},{"line_number":84,"context_line":"                    \u0027PLUMgrid Plugin has started\u0027))"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9N0%3D","line":81,"updated":"2013-02-13 09:09:14.000000000","message":"consider exiting","commit_id":"d91c35944658923179bbd0e8d5029bf42a01b194"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":78,"context_line":"        LOG.info(_(\u0027QuantumPluginPLUMgrid PLUMgrid NOS: %s\u0027), nos_plumgrid)"},{"line_number":79,"context_line":"        if not nos_plumgrid:"},{"line_number":80,"context_line":"            LOG.error(_(\u0027QuantumPluginPLUMgrid Status: NOS server is not \u0027"},{"line_number":81,"context_line":"                        \u0027included in config file\u0027))"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        LOG.debug(_(\u0027QuantumPluginPLUMgrid Status: Quantum server with \u0027"},{"line_number":84,"context_line":"                    \u0027PLUMgrid Plugin has started\u0027))"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B8js%3D","line":81,"in_reply_to":"AAAAM3%2F%2B9N0%3D","updated":"2013-02-13 18:27:49.000000000","message":"Done","commit_id":"d91c35944658923179bbd0e8d5029bf42a01b194"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":93,"context_line":"        # Plugin DB - Network Create and validation"},{"line_number":94,"context_line":"        tenant_id \u003d self._get_tenant_id_for_create(context,"},{"line_number":95,"context_line":"                                                   network[\"network\"])"},{"line_number":96,"context_line":"        self._network_admin_state(network)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        with context.session.begin(subtransactions\u003dTrue):"},{"line_number":99,"context_line":"            net \u003d super(QuantumPluginPLUMgridV2, self).create_network(context,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9Ns%3D","line":96,"updated":"2013-02-13 09:09:14.000000000","message":"consider having an exception in the func.","commit_id":"d91c35944658923179bbd0e8d5029bf42a01b194"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":93,"context_line":"        # Plugin DB - Network Create and validation"},{"line_number":94,"context_line":"        tenant_id \u003d self._get_tenant_id_for_create(context,"},{"line_number":95,"context_line":"                                                   network[\"network\"])"},{"line_number":96,"context_line":"        self._network_admin_state(network)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        with context.session.begin(subtransactions\u003dTrue):"},{"line_number":99,"context_line":"            net \u003d super(QuantumPluginPLUMgridV2, self).create_network(context,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B8jU%3D","line":96,"in_reply_to":"AAAAM3%2F%2B9Ns%3D","updated":"2013-02-13 18:27:49.000000000","message":"Done","commit_id":"d91c35944658923179bbd0e8d5029bf42a01b194"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":125,"context_line":"        tenant_id \u003d self._get_tenant_id_for_create(context, network[\"network\"])"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        # Get initial network details"},{"line_number":128,"context_line":"        initial_net \u003d super(QuantumPluginPLUMgridV2, self).get_network("},{"line_number":129,"context_line":"            context, net_id)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        with context.session.begin(subtransactions\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9No%3D","line":128,"updated":"2013-02-13 09:09:14.000000000","message":"consider original_net","commit_id":"d91c35944658923179bbd0e8d5029bf42a01b194"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":125,"context_line":"        tenant_id \u003d self._get_tenant_id_for_create(context, network[\"network\"])"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        # Get initial network details"},{"line_number":128,"context_line":"        initial_net \u003d super(QuantumPluginPLUMgridV2, self).get_network("},{"line_number":129,"context_line":"            context, net_id)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        with context.session.begin(subtransactions\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B8jM%3D","line":128,"in_reply_to":"AAAAM3%2F%2B9No%3D","updated":"2013-02-13 18:27:49.000000000","message":"Done","commit_id":"d91c35944658923179bbd0e8d5029bf42a01b194"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":164,"context_line":"            net_deleted \u003d super(QuantumPluginPLUMgridV2,"},{"line_number":165,"context_line":"                                self).delete_network(context, net_id)"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"            try:"},{"line_number":168,"context_line":"                nos_url \u003d self.snippets.BASE_NOS_URL + net_id"},{"line_number":169,"context_line":"                headers \u003d {}"},{"line_number":170,"context_line":"                body_data \u003d {}"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9Nk%3D","line":167,"updated":"2013-02-13 09:09:14.000000000","message":"not sure that the rest connection is good inside the database transaction. consider doing the REST deletion prior to the database deletion","commit_id":"d91c35944658923179bbd0e8d5029bf42a01b194"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":164,"context_line":"            net_deleted \u003d super(QuantumPluginPLUMgridV2,"},{"line_number":165,"context_line":"                                self).delete_network(context, net_id)"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"            try:"},{"line_number":168,"context_line":"                nos_url \u003d self.snippets.BASE_NOS_URL + net_id"},{"line_number":169,"context_line":"                headers \u003d {}"},{"line_number":170,"context_line":"                body_data \u003d {}"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B8ck%3D","line":167,"in_reply_to":"AAAAM3%2F%2B9Nk%3D","updated":"2013-02-13 18:27:49.000000000","message":"I dont understand very well your suggestion. If I move just the DELETE part of the REST call prior to the DB deletion I will end up having two REST connection, one for the delete and one for create a new one, as I mention in the code the update part is work in progress in NOS. Could you explain me better your proposal?","commit_id":"d91c35944658923179bbd0e8d5029bf42a01b194"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":182,"context_line":""},{"line_number":183,"context_line":"        # Port operations on PLUMgrid NOS is an automatic operation from the"},{"line_number":184,"context_line":"        # VIF driver operations in Nova. It requires admin_state_up to be True"},{"line_number":185,"context_line":"        port[\"port\"][\"admin_state_up\"] \u003d True"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"        # Plugin DB - Port Create and Return port"},{"line_number":188,"context_line":"        return super(QuantumPluginPLUMgridV2, self).create_port(context,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9Nc%3D","line":185,"updated":"2013-02-13 09:09:14.000000000","message":"Don\u0027t understand this","commit_id":"d91c35944658923179bbd0e8d5029bf42a01b194"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":182,"context_line":""},{"line_number":183,"context_line":"        # Port operations on PLUMgrid NOS is an automatic operation from the"},{"line_number":184,"context_line":"        # VIF driver operations in Nova. It requires admin_state_up to be True"},{"line_number":185,"context_line":"        port[\"port\"][\"admin_state_up\"] \u003d True"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"        # Plugin DB - Port Create and Return port"},{"line_number":188,"context_line":"        return super(QuantumPluginPLUMgridV2, self).create_port(context,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B8cg%3D","line":185,"in_reply_to":"AAAAM3%2F%2B9Nc%3D","updated":"2013-02-13 18:27:49.000000000","message":"I missed the part that the port is in True state by default, I will remove this line.","commit_id":"d91c35944658923179bbd0e8d5029bf42a01b194"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":189,"context_line":"                                                                port)"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"    def update_port(self, context, port_id, port):"},{"line_number":192,"context_line":"        \"\"\""},{"line_number":193,"context_line":"        Update port core Quantum API"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9NU%3D","line":192,"updated":"2013-02-13 09:09:14.000000000","message":"not sure why we need to read and then update - nothing is changed","commit_id":"d91c35944658923179bbd0e8d5029bf42a01b194"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":189,"context_line":"                                                                port)"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"    def update_port(self, context, port_id, port):"},{"line_number":192,"context_line":"        \"\"\""},{"line_number":193,"context_line":"        Update port core Quantum API"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B8cY%3D","line":192,"in_reply_to":"AAAAM3%2F%2B9NU%3D","updated":"2013-02-13 18:27:49.000000000","message":"This is just at the DB level. I just want to keep all the information correlated.","commit_id":"d91c35944658923179bbd0e8d5029bf42a01b194"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"unresolved":false,"context_lines":[{"line_number":43,"context_line":"               help\u003d_(\"PLUMgrid NOS server port to connect to\")),"},{"line_number":44,"context_line":"    cfg.StrOpt(\u0027username\u0027, default\u003d\u0027username\u0027,"},{"line_number":45,"context_line":"               help\u003d_(\"PLUMgrid NOS admin username\")),"},{"line_number":46,"context_line":"    cfg.StrOpt(\u0027password\u0027, default\u003d\u0027password\u0027,"},{"line_number":47,"context_line":"               help\u003d_(\"PLUMgrid NOS admin password\")),"},{"line_number":48,"context_line":"    cfg.IntOpt(\u0027servertimeout\u0027, default\u003d5,"},{"line_number":49,"context_line":"               help\u003d_(\"PLUMgrid NOS server timeout\")),"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B8G0%3D","line":46,"updated":"2013-02-13 21:00:20.000000000","message":"You\u0027ll want to add secret\u003dTrue so that your password is not leaked to the logging system.","commit_id":"385b42bf16202bb40967e0d368f321ae4dfad02a"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":43,"context_line":"               help\u003d_(\"PLUMgrid NOS server port to connect to\")),"},{"line_number":44,"context_line":"    cfg.StrOpt(\u0027username\u0027, default\u003d\u0027username\u0027,"},{"line_number":45,"context_line":"               help\u003d_(\"PLUMgrid NOS admin username\")),"},{"line_number":46,"context_line":"    cfg.StrOpt(\u0027password\u0027, default\u003d\u0027password\u0027,"},{"line_number":47,"context_line":"               help\u003d_(\"PLUMgrid NOS admin password\")),"},{"line_number":48,"context_line":"    cfg.IntOpt(\u0027servertimeout\u0027, default\u003d5,"},{"line_number":49,"context_line":"               help\u003d_(\"PLUMgrid NOS server timeout\")),"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B7Xg%3D","line":46,"in_reply_to":"AAAAM3%2F%2B8G0%3D","updated":"2013-02-14 05:52:05.000000000","message":"Done","commit_id":"385b42bf16202bb40967e0d368f321ae4dfad02a"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"unresolved":false,"context_lines":[{"line_number":72,"context_line":"        self.rest_conn \u003d rest_connection.RestConnection(nos_plumgrid,"},{"line_number":73,"context_line":"                                                        nos_port, timeout)"},{"line_number":74,"context_line":"        if self.rest_conn is None:"},{"line_number":75,"context_line":"            LOG.info(_(\u0027QuantumPluginPLUMgrid Status: Aborting Plugin\u0027))"},{"line_number":76,"context_line":"            sys.exit(1)"},{"line_number":77,"context_line":"        else:"},{"line_number":78,"context_line":"            # Plugin DB initialization"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B8EQ%3D","line":75,"updated":"2013-02-13 21:00:20.000000000","message":"raise SystemExit(_(..)) Easier to unit test because you can assert that SystemExit was raised.","commit_id":"385b42bf16202bb40967e0d368f321ae4dfad02a"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":72,"context_line":"        self.rest_conn \u003d rest_connection.RestConnection(nos_plumgrid,"},{"line_number":73,"context_line":"                                                        nos_port, timeout)"},{"line_number":74,"context_line":"        if self.rest_conn is None:"},{"line_number":75,"context_line":"            LOG.info(_(\u0027QuantumPluginPLUMgrid Status: Aborting Plugin\u0027))"},{"line_number":76,"context_line":"            sys.exit(1)"},{"line_number":77,"context_line":"        else:"},{"line_number":78,"context_line":"            # Plugin DB initialization"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B7Tc%3D","line":75,"in_reply_to":"AAAAM3%2F%2B8EQ%3D","updated":"2013-02-14 05:52:05.000000000","message":"Done","commit_id":"385b42bf16202bb40967e0d368f321ae4dfad02a"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"unresolved":false,"context_lines":[{"line_number":81,"context_line":"            # PLUMgrid NOS info validation"},{"line_number":82,"context_line":"            LOG.info(_(\u0027QuantumPluginPLUMgrid PLUMgrid NOS: %s\u0027), nos_plumgrid)"},{"line_number":83,"context_line":"            if not nos_plumgrid:"},{"line_number":84,"context_line":"                LOG.error(_(\u0027QuantumPluginPLUMgrid Status: NOS server is not \u0027"},{"line_number":85,"context_line":"                            \u0027included in config file\u0027))"},{"line_number":86,"context_line":"                sys.exit(1)"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B8Gk%3D","line":84,"updated":"2013-02-13 21:00:20.000000000","message":"Consider replacing lines 84-86 with:\n\nraise SystemExit(_(..))","commit_id":"385b42bf16202bb40967e0d368f321ae4dfad02a"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":81,"context_line":"            # PLUMgrid NOS info validation"},{"line_number":82,"context_line":"            LOG.info(_(\u0027QuantumPluginPLUMgrid PLUMgrid NOS: %s\u0027), nos_plumgrid)"},{"line_number":83,"context_line":"            if not nos_plumgrid:"},{"line_number":84,"context_line":"                LOG.error(_(\u0027QuantumPluginPLUMgrid Status: NOS server is not \u0027"},{"line_number":85,"context_line":"                            \u0027included in config file\u0027))"},{"line_number":86,"context_line":"                sys.exit(1)"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B7TY%3D","line":84,"in_reply_to":"AAAAM3%2F%2B8Gk%3D","updated":"2013-02-14 05:52:05.000000000","message":"Done","commit_id":"385b42bf16202bb40967e0d368f321ae4dfad02a"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"unresolved":false,"context_lines":[{"line_number":113,"context_line":"                self.rest_conn.nos_rest_conn(nos_url,"},{"line_number":114,"context_line":"                                             \u0027PUT\u0027, body_data, headers)"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"            except:"},{"line_number":117,"context_line":"                err_message \u003d _(\"PLUMgrid NOS communication failed\")"},{"line_number":118,"context_line":"                raise plum_excep.PLUMgridException(err_message)"},{"line_number":119,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B8GE%3D","line":116,"updated":"2013-02-13 21:00:20.000000000","message":"HACKING.rst compliance + you\u0027re losing the reason for the error.  Maybe log the original exception?  Consider:\n\nexcept Exception:\n    err_message \u003d _(\"PLUMgrid NOS communication failed\")\n    log.Exception(err_message)\n    raise plum_excep.PLUMgridException(err_message)","commit_id":"385b42bf16202bb40967e0d368f321ae4dfad02a"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":113,"context_line":"                self.rest_conn.nos_rest_conn(nos_url,"},{"line_number":114,"context_line":"                                             \u0027PUT\u0027, body_data, headers)"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"            except:"},{"line_number":117,"context_line":"                err_message \u003d _(\"PLUMgrid NOS communication failed\")"},{"line_number":118,"context_line":"                raise plum_excep.PLUMgridException(err_message)"},{"line_number":119,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B7Xc%3D","line":116,"in_reply_to":"AAAAM3%2F%2B8GE%3D","updated":"2013-02-14 05:52:05.000000000","message":"Done","commit_id":"385b42bf16202bb40967e0d368f321ae4dfad02a"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"unresolved":false,"context_lines":[{"line_number":150,"context_line":"                body_data \u003d self.snippets.create_domain_body_data(tenant_id)"},{"line_number":151,"context_line":"                self.rest_conn.nos_rest_conn(nos_url,"},{"line_number":152,"context_line":"                                             \u0027PUT\u0027, body_data, headers)"},{"line_number":153,"context_line":"            except:"},{"line_number":154,"context_line":"                err_message \u003d _(\"PLUMgrid NOS communication failed\")"},{"line_number":155,"context_line":"                raise plum_excep.PLUMgridException(err_message)"},{"line_number":156,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B8GA%3D","line":153,"updated":"2013-02-13 21:00:20.000000000","message":"ditto","commit_id":"385b42bf16202bb40967e0d368f321ae4dfad02a"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":150,"context_line":"                body_data \u003d self.snippets.create_domain_body_data(tenant_id)"},{"line_number":151,"context_line":"                self.rest_conn.nos_rest_conn(nos_url,"},{"line_number":152,"context_line":"                                             \u0027PUT\u0027, body_data, headers)"},{"line_number":153,"context_line":"            except:"},{"line_number":154,"context_line":"                err_message \u003d _(\"PLUMgrid NOS communication failed\")"},{"line_number":155,"context_line":"                raise plum_excep.PLUMgridException(err_message)"},{"line_number":156,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B7XE%3D","line":153,"in_reply_to":"AAAAM3%2F%2B8GA%3D","updated":"2013-02-14 05:52:05.000000000","message":"Done","commit_id":"385b42bf16202bb40967e0d368f321ae4dfad02a"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"unresolved":false,"context_lines":[{"line_number":175,"context_line":"                body_data \u003d {}"},{"line_number":176,"context_line":"                self.rest_conn.nos_rest_conn(nos_url,"},{"line_number":177,"context_line":"                                             \u0027DELETE\u0027, body_data, headers)"},{"line_number":178,"context_line":"            except:"},{"line_number":179,"context_line":"                err_message \u003d _(\"PLUMgrid NOS communication failed\")"},{"line_number":180,"context_line":"                raise plum_excep.PLUMgridException(err_message)"},{"line_number":181,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B8Fs%3D","line":178,"updated":"2013-02-13 21:00:20.000000000","message":"ditto","commit_id":"385b42bf16202bb40967e0d368f321ae4dfad02a"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":175,"context_line":"                body_data \u003d {}"},{"line_number":176,"context_line":"                self.rest_conn.nos_rest_conn(nos_url,"},{"line_number":177,"context_line":"                                             \u0027DELETE\u0027, body_data, headers)"},{"line_number":178,"context_line":"            except:"},{"line_number":179,"context_line":"                err_message \u003d _(\"PLUMgrid NOS communication failed\")"},{"line_number":180,"context_line":"                raise plum_excep.PLUMgridException(err_message)"},{"line_number":181,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B7XI%3D","line":178,"in_reply_to":"AAAAM3%2F%2B8Fs%3D","updated":"2013-02-14 05:52:05.000000000","message":"Done","commit_id":"385b42bf16202bb40967e0d368f321ae4dfad02a"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"unresolved":false,"context_lines":[{"line_number":246,"context_line":"                    tenant_id, self.topology_name)"},{"line_number":247,"context_line":"                self.rest_conn.nos_rest_conn(nos_url,"},{"line_number":248,"context_line":"                                             \u0027PUT\u0027, body_data, headers)"},{"line_number":249,"context_line":"            except:"},{"line_number":250,"context_line":"                err_message \u003d _(\"PLUMgrid NOS communication failed: \")"},{"line_number":251,"context_line":"                raise plum_excep.PLUMgridException(err_message)"},{"line_number":252,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B8Fo%3D","line":249,"updated":"2013-02-13 21:00:20.000000000","message":"ditto","commit_id":"385b42bf16202bb40967e0d368f321ae4dfad02a"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":246,"context_line":"                    tenant_id, self.topology_name)"},{"line_number":247,"context_line":"                self.rest_conn.nos_rest_conn(nos_url,"},{"line_number":248,"context_line":"                                             \u0027PUT\u0027, body_data, headers)"},{"line_number":249,"context_line":"            except:"},{"line_number":250,"context_line":"                err_message \u003d _(\"PLUMgrid NOS communication failed: \")"},{"line_number":251,"context_line":"                raise plum_excep.PLUMgridException(err_message)"},{"line_number":252,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B7XM%3D","line":249,"in_reply_to":"AAAAM3%2F%2B8Fo%3D","updated":"2013-02-14 05:52:05.000000000","message":"Done","commit_id":"385b42bf16202bb40967e0d368f321ae4dfad02a"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"unresolved":false,"context_lines":[{"line_number":270,"context_line":"                body_data \u003d {}"},{"line_number":271,"context_line":"                net_id \u003d subnet_details[\"network_id\"]"},{"line_number":272,"context_line":"                self._cleaning_nos_subnet_structure(body_data, headers, net_id)"},{"line_number":273,"context_line":"            except:"},{"line_number":274,"context_line":"                err_message \u003d _(\"PLUMgrid NOS communication failed: \")"},{"line_number":275,"context_line":"                raise plum_excep.PLUMgridException(err_message)"},{"line_number":276,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B8Fk%3D","line":273,"updated":"2013-02-13 21:00:20.000000000","message":"ditto","commit_id":"385b42bf16202bb40967e0d368f321ae4dfad02a"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":270,"context_line":"                body_data \u003d {}"},{"line_number":271,"context_line":"                net_id \u003d subnet_details[\"network_id\"]"},{"line_number":272,"context_line":"                self._cleaning_nos_subnet_structure(body_data, headers, net_id)"},{"line_number":273,"context_line":"            except:"},{"line_number":274,"context_line":"                err_message \u003d _(\"PLUMgrid NOS communication failed: \")"},{"line_number":275,"context_line":"                raise plum_excep.PLUMgridException(err_message)"},{"line_number":276,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B7XQ%3D","line":273,"in_reply_to":"AAAAM3%2F%2B8Fk%3D","updated":"2013-02-14 05:52:05.000000000","message":"Done","commit_id":"385b42bf16202bb40967e0d368f321ae4dfad02a"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"unresolved":false,"context_lines":[{"line_number":303,"context_line":"                self.rest_conn.nos_rest_conn(nos_url,"},{"line_number":304,"context_line":"                                             \u0027PUT\u0027, body_data, headers)"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"            except:"},{"line_number":307,"context_line":"                err_message \u003d _(\"PLUMgrid NOS communication failed: \")"},{"line_number":308,"context_line":"                raise plum_excep.PLUMgridException(err_message)"},{"line_number":309,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B8Fg%3D","line":306,"updated":"2013-02-13 21:00:20.000000000","message":"ditto","commit_id":"385b42bf16202bb40967e0d368f321ae4dfad02a"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":303,"context_line":"                self.rest_conn.nos_rest_conn(nos_url,"},{"line_number":304,"context_line":"                                             \u0027PUT\u0027, body_data, headers)"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"            except:"},{"line_number":307,"context_line":"                err_message \u003d _(\"PLUMgrid NOS communication failed: \")"},{"line_number":308,"context_line":"                raise plum_excep.PLUMgridException(err_message)"},{"line_number":309,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B7XU%3D","line":306,"in_reply_to":"AAAAM3%2F%2B8Fg%3D","updated":"2013-02-14 05:52:05.000000000","message":"Done","commit_id":"385b42bf16202bb40967e0d368f321ae4dfad02a"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"unresolved":false,"context_lines":[{"line_number":335,"context_line":"                    LOG.warning(_(\"Network with admin_state_up\u003dFalse are not \""},{"line_number":336,"context_line":"                                  \"supported yet by this plugin. Ignoring \""},{"line_number":337,"context_line":"                                  \"setting for network %s\"), network_name)"},{"line_number":338,"context_line":"        except:"},{"line_number":339,"context_line":"            err_message \u003d _(\"Network Admin State Validation Falied: \")"},{"line_number":340,"context_line":"            raise plum_excep.PLUMgridException(err_message)"},{"line_number":341,"context_line":"        return network"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B8Fc%3D","line":338,"updated":"2013-02-13 21:00:20.000000000","message":"ditto","commit_id":"385b42bf16202bb40967e0d368f321ae4dfad02a"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":335,"context_line":"                    LOG.warning(_(\"Network with admin_state_up\u003dFalse are not \""},{"line_number":336,"context_line":"                                  \"supported yet by this plugin. Ignoring \""},{"line_number":337,"context_line":"                                  \"setting for network %s\"), network_name)"},{"line_number":338,"context_line":"        except:"},{"line_number":339,"context_line":"            err_message \u003d _(\"Network Admin State Validation Falied: \")"},{"line_number":340,"context_line":"            raise plum_excep.PLUMgridException(err_message)"},{"line_number":341,"context_line":"        return network"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B7XY%3D","line":338,"in_reply_to":"AAAAM3%2F%2B8Fc%3D","updated":"2013-02-14 05:52:05.000000000","message":"Done","commit_id":"385b42bf16202bb40967e0d368f321ae4dfad02a"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":110,"context_line":"                nos_url \u003d self.snippets.BASE_NOS_URL + net[\"id\"]"},{"line_number":111,"context_line":"                headers \u003d {}"},{"line_number":112,"context_line":"                body_data \u003d self.snippets.create_domain_body_data(tenant_id)"},{"line_number":113,"context_line":"                self.rest_conn.nos_rest_conn(nos_url,"},{"line_number":114,"context_line":"                                             \u0027PUT\u0027, body_data, headers)"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"            except:"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAM3%2F%2B7G4%3D","line":113,"updated":"2013-02-14 09:38:55.000000000","message":"I have a problem with this being done in the database context. This could be problematic.","commit_id":"5ed374e3520307cfa2b052b1c09a1e82cc36e223"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"a7b33c5757e501bde03c04128ff51138d4978cc6","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        \"\"\""},{"line_number":204,"context_line":"        LOG.debug(_(\"QuantumPluginPLUMgrid Status: update_port() called\"))"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"        # Validate Args"},{"line_number":207,"context_line":"        orig_port \u003d super(QuantumPluginPLUMgridV2, self).get_port(context,"},{"line_number":208,"context_line":"                                                                  port_id)"},{"line_number":209,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAM3%2F%2B7Ns%3D","line":206,"updated":"2013-02-14 06:29:09.000000000","message":"Unneeded.","commit_id":"5ed374e3520307cfa2b052b1c09a1e82cc36e223"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":203,"context_line":"        \"\"\""},{"line_number":204,"context_line":"        LOG.debug(_(\"QuantumPluginPLUMgrid Status: update_port() called\"))"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"        # Validate Args"},{"line_number":207,"context_line":"        orig_port \u003d super(QuantumPluginPLUMgridV2, self).get_port(context,"},{"line_number":208,"context_line":"                                                                  port_id)"},{"line_number":209,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAM3%2F%2B7LI%3D","line":206,"in_reply_to":"AAAAM3%2F%2B7Ns%3D","updated":"2013-02-14 07:35:57.000000000","message":"will be removed in patch 8","commit_id":"5ed374e3520307cfa2b052b1c09a1e82cc36e223"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"a7b33c5757e501bde03c04128ff51138d4978cc6","unresolved":false,"context_lines":[{"line_number":207,"context_line":"        orig_port \u003d super(QuantumPluginPLUMgridV2, self).get_port(context,"},{"line_number":208,"context_line":"                                                                  port_id)"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"        # Port operations on PLUMgrid NOS is an automatic operation from the"},{"line_number":211,"context_line":"        # VIF driver operations in Nova."},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"        # Plugin DB - Port Update"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAM3%2F%2B7Nw%3D","line":210,"updated":"2013-02-14 06:29:09.000000000","message":"What does this mean? \"Automatic operation from the VIF driver operation in nova?\" There has to be something from quantum that tells the VIF driver about a change. I don\u0027t see any agent\u0027s or calls to NOS. I\u0027m curious what this is/how this update can work?","commit_id":"5ed374e3520307cfa2b052b1c09a1e82cc36e223"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":207,"context_line":"        orig_port \u003d super(QuantumPluginPLUMgridV2, self).get_port(context,"},{"line_number":208,"context_line":"                                                                  port_id)"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"        # Port operations on PLUMgrid NOS is an automatic operation from the"},{"line_number":211,"context_line":"        # VIF driver operations in Nova."},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"        # Plugin DB - Port Update"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAM3%2F%2B7K8%3D","line":210,"in_reply_to":"AAAAM3%2F%2B7Nw%3D","updated":"2013-02-14 07:35:57.000000000","message":"let me explain it this way, PLUMgrid NOS handles a very different concept about ports, therefore state of this resource is just important for Quantum side but not for NOS side. We will provide a full demo during the OpenStack summit.","commit_id":"5ed374e3520307cfa2b052b1c09a1e82cc36e223"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"a7b33c5757e501bde03c04128ff51138d4978cc6","unresolved":false,"context_lines":[{"line_number":209,"context_line":""},{"line_number":210,"context_line":"        # Port operations on PLUMgrid NOS is an automatic operation from the"},{"line_number":211,"context_line":"        # VIF driver operations in Nova."},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"        # Plugin DB - Port Update"},{"line_number":214,"context_line":"        return super(QuantumPluginPLUMgridV2, self).update_port("},{"line_number":215,"context_line":"            context, port_id, port)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAM3%2F%2B7N0%3D","line":212,"updated":"2013-02-14 06:29:09.000000000","message":"Probably also want to put:  port[\"port\"][\"admin_state_up\"] \u003d True\n as you did on line 193?","commit_id":"5ed374e3520307cfa2b052b1c09a1e82cc36e223"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":209,"context_line":""},{"line_number":210,"context_line":"        # Port operations on PLUMgrid NOS is an automatic operation from the"},{"line_number":211,"context_line":"        # VIF driver operations in Nova."},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"        # Plugin DB - Port Update"},{"line_number":214,"context_line":"        return super(QuantumPluginPLUMgridV2, self).update_port("},{"line_number":215,"context_line":"            context, port_id, port)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAM3%2F%2B7LE%3D","line":212,"in_reply_to":"AAAAM3%2F%2B7N0%3D","updated":"2013-02-14 07:35:57.000000000","message":"will be added in patch 8","commit_id":"5ed374e3520307cfa2b052b1c09a1e82cc36e223"}],"quantum/plugins/plumgrid/plumgrid_nos_plugin/rest_connection.py":[{"author":{"_account_id":2031,"name":"Nachi Ueno","email":"nati.ueno@gmail.com","username":"nati-ueno"},"change_message_id":"29d0e6ab96d871ace7286532284e2a99dff5391a","unresolved":false,"context_lines":[{"line_number":82,"context_line":"            ret \u003d (resp.status, resp.reason, resp_str)"},{"line_number":83,"context_line":"        except urllib2.HTTPError, e:"},{"line_number":84,"context_line":"            LOG.error(_(\u0027PLUMgrid_NOS_Server: %(action)s failure, %(e)r\u0027),"},{"line_number":85,"context_line":"                locals())"},{"line_number":86,"context_line":"            ret \u003d 0, None, None, None"},{"line_number":87,"context_line":"        conn.close()"},{"line_number":88,"context_line":"        LOG.debug(_(\"PLUMgrid_NOS_Server: status\u003d%(status)d, \""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B%2Bc8%3D","line":85,"updated":"2013-02-12 18:39:28.000000000","message":"we should not use locals()","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":82,"context_line":"            ret \u003d (resp.status, resp.reason, resp_str)"},{"line_number":83,"context_line":"        except urllib2.HTTPError, e:"},{"line_number":84,"context_line":"            LOG.error(_(\u0027PLUMgrid_NOS_Server: %(action)s failure, %(e)r\u0027),"},{"line_number":85,"context_line":"                locals())"},{"line_number":86,"context_line":"            ret \u003d 0, None, None, None"},{"line_number":87,"context_line":"        conn.close()"},{"line_number":88,"context_line":"        LOG.debug(_(\"PLUMgrid_NOS_Server: status\u003d%(status)d, \""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B%2BTw%3D","line":85,"in_reply_to":"AAAAM3%2F%2B%2Bc8%3D","updated":"2013-02-12 20:29:55.000000000","message":"Done","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":20,"context_line":"Quantum PLUMgrid Plug-in for PLUMgrid Virtual Technology"},{"line_number":21,"context_line":"This plugin will forward authenticated REST API calls"},{"line_number":22,"context_line":"to the Network Operating System by PLUMgrid called NOS"},{"line_number":23,"context_line":"..."},{"line_number":24,"context_line":"\"\"\""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"import httplib"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B9OI%3D","line":23,"updated":"2013-02-13 09:07:32.000000000","message":"?","commit_id":"b32163ef8689e830a0b63a946ec7e5fe635a373d"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"unresolved":false,"context_lines":[{"line_number":70,"context_line":"            LOG.debug(_(\"PLUMgrid_NOS_Server Connection Data: %s, %s\"),"},{"line_number":71,"context_line":"                      resp, resp_str)"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"            if resp.status is 200:"},{"line_number":74,"context_line":"                try:"},{"line_number":75,"context_line":"                    respdata \u003d json.loads(resp_str)"},{"line_number":76,"context_line":"                    LOG.debug(_(\"PLUMgrid_NOS_Server Connection RESP: %s\"),"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B9Zw%3D","line":73,"updated":"2013-02-13 06:42:13.000000000","message":"httplib.OK is more readable than 200.","commit_id":"b32163ef8689e830a0b63a946ec7e5fe635a373d"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":70,"context_line":"            LOG.debug(_(\"PLUMgrid_NOS_Server Connection Data: %s, %s\"),"},{"line_number":71,"context_line":"                      resp, resp_str)"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"            if resp.status is 200:"},{"line_number":74,"context_line":"                try:"},{"line_number":75,"context_line":"                    respdata \u003d json.loads(resp_str)"},{"line_number":76,"context_line":"                    LOG.debug(_(\"PLUMgrid_NOS_Server Connection RESP: %s\"),"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B9YU%3D","line":73,"in_reply_to":"AAAAM3%2F%2B9Zw%3D","updated":"2013-02-13 07:02:20.000000000","message":"Done","commit_id":"b32163ef8689e830a0b63a946ec7e5fe635a373d"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"a7b33c5757e501bde03c04128ff51138d4978cc6","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                              respdata)"},{"line_number":78,"context_line":"                    pass"},{"line_number":79,"context_line":"                except ValueError:"},{"line_number":80,"context_line":"                    # response was not JSON, ignore the exception"},{"line_number":81,"context_line":"                    pass"},{"line_number":82,"context_line":"            ret \u003d (resp.status, resp.reason, resp_str)"},{"line_number":83,"context_line":"        except urllib2.HTTPError, e:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2B9XA%3D","line":80,"updated":"2013-02-13 07:21:00.000000000","message":"Perhaps you shouldn\u0027t pass here and instead raise. What happens if resp_str is None?","commit_id":"2c4728af4f037eba87ef6e87ac2e49ce807b2ca4"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":77,"context_line":"                              respdata)"},{"line_number":78,"context_line":"                    pass"},{"line_number":79,"context_line":"                except ValueError:"},{"line_number":80,"context_line":"                    # response was not JSON, ignore the exception"},{"line_number":81,"context_line":"                    pass"},{"line_number":82,"context_line":"            ret \u003d (resp.status, resp.reason, resp_str)"},{"line_number":83,"context_line":"        except urllib2.HTTPError, e:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2B9V0%3D","line":80,"in_reply_to":"AAAAM3%2F%2B9XA%3D","updated":"2013-02-13 08:07:55.000000000","message":"Done","commit_id":"2c4728af4f037eba87ef6e87ac2e49ce807b2ca4"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"unresolved":false,"context_lines":[{"line_number":23,"context_line":"\"\"\""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"import httplib"},{"line_number":26,"context_line":"import json"},{"line_number":27,"context_line":"import urllib2"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"from quantum.openstack.common import log as logging"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B8FQ%3D","line":26,"updated":"2013-02-13 21:00:20.000000000","message":"You should use:\n\nquantum.openstack.common import jsonutils as json\n\nUnder the hood it uses anyjson to find the best json library.","commit_id":"385b42bf16202bb40967e0d368f321ae4dfad02a"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":23,"context_line":"\"\"\""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"import httplib"},{"line_number":26,"context_line":"import json"},{"line_number":27,"context_line":"import urllib2"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"from quantum.openstack.common import log as logging"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B7TM%3D","line":26,"in_reply_to":"AAAAM3%2F%2B8FQ%3D","updated":"2013-02-14 05:52:05.000000000","message":"Done","commit_id":"385b42bf16202bb40967e0d368f321ae4dfad02a"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"unresolved":false,"context_lines":[{"line_number":45,"context_line":"    def nos_rest_conn(self, nos_url, action, data, headers):"},{"line_number":46,"context_line":"        self.nos_url \u003d nos_url"},{"line_number":47,"context_line":"        body_data \u003d json.dumps(data)"},{"line_number":48,"context_line":"        if not headers:"},{"line_number":49,"context_line":"            headers \u003d {}"},{"line_number":50,"context_line":"        headers[\u0027Content-type\u0027] \u003d \u0027application/json\u0027"},{"line_number":51,"context_line":"        headers[\u0027Accept\u0027] \u003d \u0027application/json\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B8FI%3D","line":48,"updated":"2013-02-13 21:00:20.000000000","message":"headers \u003d header or {}","commit_id":"385b42bf16202bb40967e0d368f321ae4dfad02a"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":45,"context_line":"    def nos_rest_conn(self, nos_url, action, data, headers):"},{"line_number":46,"context_line":"        self.nos_url \u003d nos_url"},{"line_number":47,"context_line":"        body_data \u003d json.dumps(data)"},{"line_number":48,"context_line":"        if not headers:"},{"line_number":49,"context_line":"            headers \u003d {}"},{"line_number":50,"context_line":"        headers[\u0027Content-type\u0027] \u003d \u0027application/json\u0027"},{"line_number":51,"context_line":"        headers[\u0027Accept\u0027] \u003d \u0027application/json\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B7R4%3D","line":48,"in_reply_to":"AAAAM3%2F%2B8FI%3D","updated":"2013-02-14 05:52:05.000000000","message":"I am sorry but I dont understand your comment, could you please be more specific? Thanks!","commit_id":"385b42bf16202bb40967e0d368f321ae4dfad02a"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"unresolved":false,"context_lines":[{"line_number":58,"context_line":"        if conn is None:"},{"line_number":59,"context_line":"            LOG.error(_(\u0027PLUMgrid_NOS_Server: Could not establish HTTP \u0027"},{"line_number":60,"context_line":"                        \u0027connection\u0027))"},{"line_number":61,"context_line":"            return None"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        try:"},{"line_number":64,"context_line":"            LOG.debug(_(\"PLUMgrid_NOS_Server Sending Data: %s %s %s\"),"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B8FE%3D","line":61,"updated":"2013-02-13 21:00:20.000000000","message":"You can drop the None.  (A return w/o the value returns None)","commit_id":"385b42bf16202bb40967e0d368f321ae4dfad02a"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":58,"context_line":"        if conn is None:"},{"line_number":59,"context_line":"            LOG.error(_(\u0027PLUMgrid_NOS_Server: Could not establish HTTP \u0027"},{"line_number":60,"context_line":"                        \u0027connection\u0027))"},{"line_number":61,"context_line":"            return None"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        try:"},{"line_number":64,"context_line":"            LOG.debug(_(\"PLUMgrid_NOS_Server Sending Data: %s %s %s\"),"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B7TI%3D","line":61,"in_reply_to":"AAAAM3%2F%2B8FE%3D","updated":"2013-02-14 05:52:05.000000000","message":"Done","commit_id":"385b42bf16202bb40967e0d368f321ae4dfad02a"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"unresolved":false,"context_lines":[{"line_number":78,"context_line":"                    pass"},{"line_number":79,"context_line":"                except ValueError:"},{"line_number":80,"context_line":"                    err_message \u003d _(\"PLUMgrid HTTP Connection Failed: \")"},{"line_number":81,"context_line":"                    raise plum_excep.PLUMgridException(err_message)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"            ret \u003d (resp.status, resp.reason, resp_str)"},{"line_number":84,"context_line":"        except urllib2.HTTPError, e:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B8Es%3D","line":81,"updated":"2013-02-13 21:00:20.000000000","message":"Insert:\nLOG.exception(err_message)","commit_id":"385b42bf16202bb40967e0d368f321ae4dfad02a"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":78,"context_line":"                    pass"},{"line_number":79,"context_line":"                except ValueError:"},{"line_number":80,"context_line":"                    err_message \u003d _(\"PLUMgrid HTTP Connection Failed: \")"},{"line_number":81,"context_line":"                    raise plum_excep.PLUMgridException(err_message)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"            ret \u003d (resp.status, resp.reason, resp_str)"},{"line_number":84,"context_line":"        except urllib2.HTTPError, e:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B7TE%3D","line":81,"in_reply_to":"AAAAM3%2F%2B8Es%3D","updated":"2013-02-14 05:52:05.000000000","message":"Done","commit_id":"385b42bf16202bb40967e0d368f321ae4dfad02a"}],"quantum/tests/unit/plumgrid/test_plumgrid_plugin.py":[{"author":{"_account_id":2031,"name":"Nachi Ueno","email":"nati.ueno@gmail.com","username":"nati-ueno"},"change_message_id":"29d0e6ab96d871ace7286532284e2a99dff5391a","unresolved":false,"context_lines":[{"line_number":31,"context_line":"                   \u0027plumgrid_plugin.QuantumPluginPLUMgridV2\u0027)"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def setUp(self):"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        self.restHTTPConnection \u003d patch(\u0027httplib.HTTPConnection\u0027)"},{"line_number":36,"context_line":"        self.restHTTPConnection.start()"},{"line_number":37,"context_line":"        super(PLUMgridPluginV2TestCase, self).setUp(self._plugin_name)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B%2Bc0%3D","line":34,"updated":"2013-02-12 18:39:28.000000000","message":"nit: line 34 is not needed","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":31,"context_line":"                   \u0027plumgrid_plugin.QuantumPluginPLUMgridV2\u0027)"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def setUp(self):"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        self.restHTTPConnection \u003d patch(\u0027httplib.HTTPConnection\u0027)"},{"line_number":36,"context_line":"        self.restHTTPConnection.start()"},{"line_number":37,"context_line":"        super(PLUMgridPluginV2TestCase, self).setUp(self._plugin_name)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B%2BPs%3D","line":34,"in_reply_to":"AAAAM3%2F%2B%2Bc0%3D","updated":"2013-02-12 20:29:55.000000000","message":"Done","commit_id":"297ecd67031d5b9955468a90e764c7dd0d0747d9"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":74,"context_line":"                               \u0027admin_state_up\u0027: admin_status_up,"},{"line_number":75,"context_line":"                               \u0027tenant_id\u0027: tenant_id}}"},{"line_number":76,"context_line":"        plugin \u003d QuantumManager.get_plugin()"},{"line_number":77,"context_line":"        plugin.network_admin_state(network)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B9OE%3D","line":77,"updated":"2013-02-13 09:07:32.000000000","message":"Not sure that anything is checked here as you just have a log message","commit_id":"b32163ef8689e830a0b63a946ec7e5fe635a373d"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"unresolved":false,"context_lines":[{"line_number":74,"context_line":"                               \u0027admin_state_up\u0027: admin_status_up,"},{"line_number":75,"context_line":"                               \u0027tenant_id\u0027: tenant_id}}"},{"line_number":76,"context_line":"        plugin \u003d QuantumManager.get_plugin()"},{"line_number":77,"context_line":"        self.assertEquals(plugin._network_admin_state(network), network)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B8EY%3D","line":77,"updated":"2013-02-13 21:00:20.000000000","message":"assertEquals() has been deprecated from standard lib.  assertEqual() is preferred.","commit_id":"385b42bf16202bb40967e0d368f321ae4dfad02a"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"unresolved":false,"context_lines":[{"line_number":74,"context_line":"                               \u0027admin_state_up\u0027: admin_status_up,"},{"line_number":75,"context_line":"                               \u0027tenant_id\u0027: tenant_id}}"},{"line_number":76,"context_line":"        plugin \u003d QuantumManager.get_plugin()"},{"line_number":77,"context_line":"        self.assertEquals(plugin._network_admin_state(network), network)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2B7Ro%3D","line":77,"in_reply_to":"AAAAM3%2F%2B8EY%3D","updated":"2013-02-14 05:52:05.000000000","message":"Done","commit_id":"385b42bf16202bb40967e0d368f321ae4dfad02a"}]}
