)]}'
{"networking_ovn/ovsdb/commands.py":[{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"a20cb1926cc4b4685e0bec0fcc3bf71c6aa366a6","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        try:"},{"line_number":86,"context_line":"            lswitch \u003d idlutils.row_by_value(self.api.idl, \u0027Logical_Switch\u0027,"},{"line_number":87,"context_line":"                                            \u0027name\u0027, self.lswitch)"},{"line_number":88,"context_line":"            ports \u003d getattr(lswitch, \u0027ports\u0027, \u0027asfd\u0027)"},{"line_number":89,"context_line":"        except idlutils.RowNotFound:"},{"line_number":90,"context_line":"            msg \u003d _(\"Logical Switch %s does not exist\") % self.lswitch"},{"line_number":91,"context_line":"            LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_43df540c","line":88,"updated":"2015-06-27 04:50:00.000000000","message":"what does this default means \u0027asfd\u0027 ? don\u0027t you need to return an empty list here?","commit_id":"80d23e980eefbec402877ada4c267900f687252a"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"5c68050b50988a5e10547be0370374a1d8b1ecab","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        try:"},{"line_number":86,"context_line":"            lswitch \u003d idlutils.row_by_value(self.api.idl, \u0027Logical_Switch\u0027,"},{"line_number":87,"context_line":"                                            \u0027name\u0027, self.lswitch)"},{"line_number":88,"context_line":"            ports \u003d getattr(lswitch, \u0027ports\u0027, \u0027asfd\u0027)"},{"line_number":89,"context_line":"        except idlutils.RowNotFound:"},{"line_number":90,"context_line":"            msg \u003d _(\"Logical Switch %s does not exist\") % self.lswitch"},{"line_number":91,"context_line":"            LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_9d5b22f6","line":88,"in_reply_to":"fa32b979_43df540c","updated":"2015-07-01 19:08:25.000000000","message":"I just wanted to make sure that this returned a list and not asdf.","commit_id":"80d23e980eefbec402877ada4c267900f687252a"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"a20cb1926cc4b4685e0bec0fcc3bf71c6aa366a6","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        for col, val in self.columns.items():"},{"line_number":103,"context_line":"            setattr(port, col, val)"},{"line_number":104,"context_line":"        # add the newly created port to exiting lswitch"},{"line_number":105,"context_line":"        ports.append(port.uuid)"},{"line_number":106,"context_line":"        setattr(lswitch, \u0027ports\u0027, ports)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_238ed027","line":105,"updated":"2015-06-27 04:50:00.000000000","message":"You will need lswitch.verify(\u0027ports\u0027) here to avoid dirty writes","commit_id":"80d23e980eefbec402877ada4c267900f687252a"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"5c68050b50988a5e10547be0370374a1d8b1ecab","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        for col, val in self.columns.items():"},{"line_number":103,"context_line":"            setattr(port, col, val)"},{"line_number":104,"context_line":"        # add the newly created port to exiting lswitch"},{"line_number":105,"context_line":"        ports.append(port.uuid)"},{"line_number":106,"context_line":"        setattr(lswitch, \u0027ports\u0027, ports)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_7d0dfee6","line":105,"in_reply_to":"fa32b979_238ed027","updated":"2015-07-01 19:08:25.000000000","message":"Yup, ben is actually going to provide us a mechanism here as well so we don\u0027t need to do this. I\u0027ll fix this now though.","commit_id":"80d23e980eefbec402877ada4c267900f687252a"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"543e05771e30cdbf1eaf34b63444c43f6d884f95","unresolved":false,"context_lines":[{"line_number":120,"context_line":"            msg \u003d _(\"Logical Port %s does not exist\") % self.lport"},{"line_number":121,"context_line":"            LOG.error(msg)"},{"line_number":122,"context_line":"            raise RuntimeError(msg)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        for col, val in self.columns.items():"},{"line_number":125,"context_line":"            setattr(port, col, val)"},{"line_number":126,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_c367e44f","line":123,"updated":"2015-06-27 05:13:45.000000000","message":"you will also want to edit this here, assuming a logical port can be switched between logical switches","commit_id":"80d23e980eefbec402877ada4c267900f687252a"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"5c68050b50988a5e10547be0370374a1d8b1ecab","unresolved":false,"context_lines":[{"line_number":120,"context_line":"            msg \u003d _(\"Logical Port %s does not exist\") % self.lport"},{"line_number":121,"context_line":"            LOG.error(msg)"},{"line_number":122,"context_line":"            raise RuntimeError(msg)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        for col, val in self.columns.items():"},{"line_number":125,"context_line":"            setattr(port, col, val)"},{"line_number":126,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_3d23f657","line":123,"in_reply_to":"fa32b979_c367e44f","updated":"2015-07-01 19:08:25.000000000","message":"we don\u0027t support doing this in the neutron api so I don\u0027t think we should have code ehre that does that.","commit_id":"80d23e980eefbec402877ada4c267900f687252a"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"543e05771e30cdbf1eaf34b63444c43f6d884f95","unresolved":false,"context_lines":[{"line_number":141,"context_line":"            msg \u003d _(\"Port %s does not exist\") % self.lport"},{"line_number":142,"context_line":"            LOG.error(msg)"},{"line_number":143,"context_line":"            raise RuntimeError(msg)"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        self.api._tables[\u0027Logical_Port\u0027].rows[lport.uuid].delete()"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_235fb076","line":144,"updated":"2015-06-27 05:13:45.000000000","message":"delete the logical port from the logical switch here","commit_id":"80d23e980eefbec402877ada4c267900f687252a"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"5c68050b50988a5e10547be0370374a1d8b1ecab","unresolved":false,"context_lines":[{"line_number":141,"context_line":"            msg \u003d _(\"Port %s does not exist\") % self.lport"},{"line_number":142,"context_line":"            LOG.error(msg)"},{"line_number":143,"context_line":"            raise RuntimeError(msg)"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        self.api._tables[\u0027Logical_Port\u0027].rows[lport.uuid].delete()"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_5de7da10","line":144,"in_reply_to":"fa32b979_235fb076","updated":"2015-07-01 19:08:25.000000000","message":"The ovsdb garbage collector will automatically cascade the port delete. I\u0027m not sure if there is a benefit to adding it here.","commit_id":"80d23e980eefbec402877ada4c267900f687252a"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"1defe1af33686272b0c6c9a9e3d3abe6c8b01d3e","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        try:"},{"line_number":137,"context_line":"            # NOTE(arosen): we might want to also delete the logical_port from"},{"line_number":138,"context_line":"            # the logical_switch that it\u0027s attached to. Though ovsdb is"},{"line_number":139,"context_line":"            # automatically garbage collecting this for us."},{"line_number":140,"context_line":"            lport \u003d idlutils.row_by_value(self.api.idl, \u0027Logical_Port\u0027,"},{"line_number":141,"context_line":"                                          \u0027name\u0027, self.lport)"},{"line_number":142,"context_line":"        except idlutils.RowNotFound:"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba3cc151_22c66368","line":139,"updated":"2015-07-02 03:35:13.000000000","message":"Dont you think its better to do this manually?\nIs the garbage collection process synchronous process happening after each transaction?","commit_id":"41d510a42f7f8da4f253013ef0ab2a2736cf7891"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"00408072572b79210666bc94c2f48e3e7c52a325","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        try:"},{"line_number":137,"context_line":"            # NOTE(arosen): we might want to also delete the logical_port from"},{"line_number":138,"context_line":"            # the logical_switch that it\u0027s attached to. Though ovsdb is"},{"line_number":139,"context_line":"            # automatically garbage collecting this for us."},{"line_number":140,"context_line":"            lport \u003d idlutils.row_by_value(self.api.idl, \u0027Logical_Port\u0027,"},{"line_number":141,"context_line":"                                          \u0027name\u0027, self.lport)"},{"line_number":142,"context_line":"        except idlutils.RowNotFound:"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba3cc151_22742334","line":139,"in_reply_to":"ba3cc151_22c66368","updated":"2015-07-02 03:37:05.000000000","message":"I just read all the email thread and understood what this is trying to fix..","commit_id":"41d510a42f7f8da4f253013ef0ab2a2736cf7891"}]}
