)]}'
{"nova_powervm/virt/powervm/vif.py":[{"author":{"_account_id":20138,"name":"Steven Royer","email":"seroyer@us.ibm.com","username":"seroyer"},"change_message_id":"33877659e292799cb180650ab7b5a4d0a92e49f1","unresolved":false,"context_lines":[{"line_number":270,"context_line":"            return vif[\u0027devname\u0027]"},{"line_number":271,"context_line":"        return (\"nic\" + vif[\u0027id\u0027])[:network_model.NIC_NAME_LEN]"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"    def post_live_migrate_at_destination(self, vif):"},{"line_number":274,"context_line":"        \"\"\"Performs live migrate cleanup on the destination host."},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"        This is optional, child classes do not need to implement this."}],"source_content_type":"text/x-python","patch_set":3,"id":"9a061dce_286fcefc","line":273,"updated":"2016-04-07 19:58:15.000000000","message":"Do we really want these available in PvmLBVifDriver?  Where do we enable migration for OVS but disable it for LB?","commit_id":"2cdee1c32ca7cdd405d4f3bd93589f3563418f40"},{"author":{"_account_id":8190,"name":"Drew Thorstensen (thorst)","email":"thorst@us.ibm.com","username":"thorst"},"change_message_id":"b2ea3be68444752980b302dcd61ab299fa4cda4f","unresolved":false,"context_lines":[{"line_number":270,"context_line":"            return vif[\u0027devname\u0027]"},{"line_number":271,"context_line":"        return (\"nic\" + vif[\u0027id\u0027])[:network_model.NIC_NAME_LEN]"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"    def post_live_migrate_at_destination(self, vif):"},{"line_number":274,"context_line":"        \"\"\"Performs live migrate cleanup on the destination host."},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"        This is optional, child classes do not need to implement this."}],"source_content_type":"text/x-python","patch_set":3,"id":"9a061dce_777b5abe","line":273,"in_reply_to":"9a061dce_286fcefc","updated":"2016-04-08 00:37:09.000000000","message":"I guess ultimately it depends on how different they would be.  Right now, I\u0027m not certain there would be significant difference.\n\nThe LB implementation needs the same \u0027p2p\u0027 code path as the OVS (they\u0027re actually quite similar).  So a lot of that would end up here.\n\nWith that said, it could just be a testability thing...\n\nI also think with the inclusion of the LB implementation, I need to change the backing PHYP switch this all runs on.  Right now its called OpenStackOVS.  I think it should change.\n\nThoughts on a better name?","commit_id":"2cdee1c32ca7cdd405d4f3bd93589f3563418f40"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e1bb20d907902b4d552d3cb69c44b47f621b9cd6","unresolved":false,"context_lines":[{"line_number":259,"context_line":"            raise VirtualInterfaceUnplugException()"},{"line_number":260,"context_line":"        return cna_w"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"    def _find_cna_for_vif(self, cna_w_list, vif):"},{"line_number":263,"context_line":"        for cna_w in cna_w_list:"},{"line_number":264,"context_line":"            # If the MAC address matched, attempt the delete."},{"line_number":265,"context_line":"            if vm.norm_mac(cna_w.mac) \u003d\u003d vif[\u0027address\u0027]:"}],"source_content_type":"text/x-python","patch_set":13,"id":"7aa08908_357dc4b1","line":262,"range":{"start_line":262,"start_character":8,"end_line":262,"end_character":25},"updated":"2016-06-07 20:15:04.000000000","message":"doc","commit_id":"c639a15d73bb682439f4a2237adb39227b469f74"},{"author":{"_account_id":8190,"name":"Drew Thorstensen (thorst)","email":"thorst@us.ibm.com","username":"thorst"},"change_message_id":"2dcaf86b1d59ad259a9c97493eb2822807ca9526","unresolved":false,"context_lines":[{"line_number":259,"context_line":"            raise VirtualInterfaceUnplugException()"},{"line_number":260,"context_line":"        return cna_w"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"    def _find_cna_for_vif(self, cna_w_list, vif):"},{"line_number":263,"context_line":"        for cna_w in cna_w_list:"},{"line_number":264,"context_line":"            # If the MAC address matched, attempt the delete."},{"line_number":265,"context_line":"            if vm.norm_mac(cna_w.mac) \u003d\u003d vif[\u0027address\u0027]:"}],"source_content_type":"text/x-python","patch_set":13,"id":"7aa08908_74aedc81","line":262,"range":{"start_line":262,"start_character":8,"end_line":262,"end_character":25},"in_reply_to":"7aa08908_357dc4b1","updated":"2016-06-14 17:48:22.000000000","message":"Not part of this change set...but ok.","commit_id":"c639a15d73bb682439f4a2237adb39227b469f74"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e1bb20d907902b4d552d3cb69c44b47f621b9cd6","unresolved":false,"context_lines":[{"line_number":303,"context_line":"class PvmLioVifDriver(PvmVifDriver):"},{"line_number":304,"context_line":"    \"\"\"An abstract VIF driver that uses Linux I/O to host.\"\"\""},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"    def get_trunk_dev_name(self, vif):"},{"line_number":307,"context_line":"        if \u0027devname\u0027 in vif:"},{"line_number":308,"context_line":"            return vif[\u0027devname\u0027]"},{"line_number":309,"context_line":"        return (\"nic\" + vif[\u0027id\u0027])[:network_model.NIC_NAME_LEN]"}],"source_content_type":"text/x-python","patch_set":13,"id":"7aa08908_d56ba0ef","line":306,"range":{"start_line":306,"start_character":8,"end_line":306,"end_character":26},"updated":"2016-06-07 20:15:04.000000000","message":"doc","commit_id":"c639a15d73bb682439f4a2237adb39227b469f74"},{"author":{"_account_id":8190,"name":"Drew Thorstensen (thorst)","email":"thorst@us.ibm.com","username":"thorst"},"change_message_id":"2dcaf86b1d59ad259a9c97493eb2822807ca9526","unresolved":false,"context_lines":[{"line_number":303,"context_line":"class PvmLioVifDriver(PvmVifDriver):"},{"line_number":304,"context_line":"    \"\"\"An abstract VIF driver that uses Linux I/O to host.\"\"\""},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"    def get_trunk_dev_name(self, vif):"},{"line_number":307,"context_line":"        if \u0027devname\u0027 in vif:"},{"line_number":308,"context_line":"            return vif[\u0027devname\u0027]"},{"line_number":309,"context_line":"        return (\"nic\" + vif[\u0027id\u0027])[:network_model.NIC_NAME_LEN]"}],"source_content_type":"text/x-python","patch_set":13,"id":"7aa08908_b46fa429","line":306,"range":{"start_line":306,"start_character":8,"end_line":306,"end_character":26},"in_reply_to":"7aa08908_d56ba0ef","updated":"2016-06-14 17:48:22.000000000","message":"Done","commit_id":"c639a15d73bb682439f4a2237adb39227b469f74"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e1bb20d907902b4d552d3cb69c44b47f621b9cd6","unresolved":false,"context_lines":[{"line_number":306,"context_line":"    def get_trunk_dev_name(self, vif):"},{"line_number":307,"context_line":"        if \u0027devname\u0027 in vif:"},{"line_number":308,"context_line":"            return vif[\u0027devname\u0027]"},{"line_number":309,"context_line":"        return (\"nic\" + vif[\u0027id\u0027])[:network_model.NIC_NAME_LEN]"},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"    def plug(self, vif, slot_num):"},{"line_number":312,"context_line":"        # Create the trunk and client adapter."}],"source_content_type":"text/x-python","patch_set":13,"id":"7aa08908_35b5c430","line":309,"range":{"start_line":309,"start_character":16,"end_line":309,"end_character":63},"updated":"2016-06-07 20:15:04.000000000","message":"Should you also save this under vif[\u0027devname\u0027]?","commit_id":"c639a15d73bb682439f4a2237adb39227b469f74"},{"author":{"_account_id":8190,"name":"Drew Thorstensen (thorst)","email":"thorst@us.ibm.com","username":"thorst"},"change_message_id":"2dcaf86b1d59ad259a9c97493eb2822807ca9526","unresolved":false,"context_lines":[{"line_number":306,"context_line":"    def get_trunk_dev_name(self, vif):"},{"line_number":307,"context_line":"        if \u0027devname\u0027 in vif:"},{"line_number":308,"context_line":"            return vif[\u0027devname\u0027]"},{"line_number":309,"context_line":"        return (\"nic\" + vif[\u0027id\u0027])[:network_model.NIC_NAME_LEN]"},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"    def plug(self, vif, slot_num):"},{"line_number":312,"context_line":"        # Create the trunk and client adapter."}],"source_content_type":"text/x-python","patch_set":13,"id":"7aa08908_34f0d466","line":309,"range":{"start_line":309,"start_character":16,"end_line":309,"end_character":63},"in_reply_to":"7aa08908_35b5c430","updated":"2016-06-14 17:48:22.000000000","message":"No.  This is taken from the libvirt model more or less.  The VIF is not something the driver modifies.","commit_id":"c639a15d73bb682439f4a2237adb39227b469f74"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e1bb20d907902b4d552d3cb69c44b47f621b9cd6","unresolved":false,"context_lines":[{"line_number":318,"context_line":"            CONF.powervm.pvm_vswitch_for_ovs, crt_vswitch\u003dTrue,"},{"line_number":319,"context_line":"            mac_addr\u003dvif[\u0027address\u0027], dev_name\u003ddev_name, slot_num\u003dslot_num)"},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"        utils.execute(\u0027ip\u0027, \u0027link\u0027, \u0027set\u0027, dev_name, \u0027up\u0027, run_as_root\u003dTrue)"},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"        return cna_w"},{"line_number":324,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"7aa08908_957bd8f4","line":321,"range":{"start_line":321,"start_character":23,"end_line":321,"end_character":25},"updated":"2016-06-07 20:15:04.000000000","message":"Should this be a fq path?","commit_id":"c639a15d73bb682439f4a2237adb39227b469f74"},{"author":{"_account_id":8190,"name":"Drew Thorstensen (thorst)","email":"thorst@us.ibm.com","username":"thorst"},"change_message_id":"2dcaf86b1d59ad259a9c97493eb2822807ca9526","unresolved":false,"context_lines":[{"line_number":318,"context_line":"            CONF.powervm.pvm_vswitch_for_ovs, crt_vswitch\u003dTrue,"},{"line_number":319,"context_line":"            mac_addr\u003dvif[\u0027address\u0027], dev_name\u003ddev_name, slot_num\u003dslot_num)"},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"        utils.execute(\u0027ip\u0027, \u0027link\u0027, \u0027set\u0027, dev_name, \u0027up\u0027, run_as_root\u003dTrue)"},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"        return cna_w"},{"line_number":324,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"7aa08908_54a00042","line":321,"range":{"start_line":321,"start_character":23,"end_line":321,"end_character":25},"in_reply_to":"7aa08908_957bd8f4","updated":"2016-06-14 17:48:22.000000000","message":"No. This mirrors Nova.","commit_id":"c639a15d73bb682439f4a2237adb39227b469f74"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e1bb20d907902b4d552d3cb69c44b47f621b9cd6","unresolved":false,"context_lines":[{"line_number":326,"context_line":"class PvmLBVifDriver(PvmLioVifDriver):"},{"line_number":327,"context_line":"    \"\"\"The Linux Bridge VIF driver for PowerVM.\"\"\""},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"    def plug(self, vif, slot_num):"},{"line_number":330,"context_line":"        cna_w \u003d super(PvmLBVifDriver, self).plug(vif, slot_num)"},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"        # Similar to libvirt\u0027s vif.py plug_bridge.  Need to attach the"}],"source_content_type":"text/x-python","patch_set":13,"id":"7aa08908_75c3cced","line":329,"range":{"start_line":329,"start_character":8,"end_line":329,"end_character":12},"updated":"2016-06-07 20:15:04.000000000","message":"doc\n\nAs a reminder, I am firmly of the belief that docstrings for overrides need *not* be direct copies from the superclass method.  It is appropriate to elucidate anything specific to the subclass that happens in the override.","commit_id":"c639a15d73bb682439f4a2237adb39227b469f74"},{"author":{"_account_id":8190,"name":"Drew Thorstensen (thorst)","email":"thorst@us.ibm.com","username":"thorst"},"change_message_id":"2dcaf86b1d59ad259a9c97493eb2822807ca9526","unresolved":false,"context_lines":[{"line_number":326,"context_line":"class PvmLBVifDriver(PvmLioVifDriver):"},{"line_number":327,"context_line":"    \"\"\"The Linux Bridge VIF driver for PowerVM.\"\"\""},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"    def plug(self, vif, slot_num):"},{"line_number":330,"context_line":"        cna_w \u003d super(PvmLBVifDriver, self).plug(vif, slot_num)"},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"        # Similar to libvirt\u0027s vif.py plug_bridge.  Need to attach the"}],"source_content_type":"text/x-python","patch_set":13,"id":"7aa08908_9486e8b6","line":329,"range":{"start_line":329,"start_character":8,"end_line":329,"end_character":12},"in_reply_to":"7aa08908_75c3cced","updated":"2016-06-14 17:48:22.000000000","message":"Done.  But this is changing the style of the class a bit.  Adding it to all the other plugs...","commit_id":"c639a15d73bb682439f4a2237adb39227b469f74"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e1bb20d907902b4d552d3cb69c44b47f621b9cd6","unresolved":false,"context_lines":[{"line_number":336,"context_line":""},{"line_number":337,"context_line":"        return cna_w"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"    def unplug(self, vif, cna_w_list\u003dNone, trunks\u003dNone):"},{"line_number":340,"context_line":"        # Need to find the adapters if they were not provided"},{"line_number":341,"context_line":"        if not cna_w_list:"},{"line_number":342,"context_line":"            cna_w_list \u003d vm.get_cnas(self.adapter, self.instance,"}],"source_content_type":"text/x-python","patch_set":13,"id":"7aa08908_d5b44083","line":339,"range":{"start_line":339,"start_character":8,"end_line":339,"end_character":14},"updated":"2016-06-07 20:15:04.000000000","message":"doc","commit_id":"c639a15d73bb682439f4a2237adb39227b469f74"},{"author":{"_account_id":8190,"name":"Drew Thorstensen (thorst)","email":"thorst@us.ibm.com","username":"thorst"},"change_message_id":"2dcaf86b1d59ad259a9c97493eb2822807ca9526","unresolved":false,"context_lines":[{"line_number":336,"context_line":""},{"line_number":337,"context_line":"        return cna_w"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"    def unplug(self, vif, cna_w_list\u003dNone, trunks\u003dNone):"},{"line_number":340,"context_line":"        # Need to find the adapters if they were not provided"},{"line_number":341,"context_line":"        if not cna_w_list:"},{"line_number":342,"context_line":"            cna_w_list \u003d vm.get_cnas(self.adapter, self.instance,"}],"source_content_type":"text/x-python","patch_set":13,"id":"7aa08908_4f586931","line":339,"range":{"start_line":339,"start_character":8,"end_line":339,"end_character":14},"in_reply_to":"7aa08908_d5b44083","updated":"2016-06-14 17:48:22.000000000","message":"Done","commit_id":"c639a15d73bb682439f4a2237adb39227b469f74"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e1bb20d907902b4d552d3cb69c44b47f621b9cd6","unresolved":false,"context_lines":[{"line_number":338,"context_line":""},{"line_number":339,"context_line":"    def unplug(self, vif, cna_w_list\u003dNone, trunks\u003dNone):"},{"line_number":340,"context_line":"        # Need to find the adapters if they were not provided"},{"line_number":341,"context_line":"        if not cna_w_list:"},{"line_number":342,"context_line":"            cna_w_list \u003d vm.get_cnas(self.adapter, self.instance,"},{"line_number":343,"context_line":"                                     self.host_uuid)"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"        # Find the CNA for this vif."},{"line_number":346,"context_line":"        cna_w \u003d self._find_cna_for_vif(cna_w_list, vif)"},{"line_number":347,"context_line":"        if not cna_w:"},{"line_number":348,"context_line":"            LOG.warning(_LW(\u0027Unable to unplug VIF with mac %(mac)s for \u0027"},{"line_number":349,"context_line":"                            \u0027instance %(inst)s.  The VIF was not found on \u0027"},{"line_number":350,"context_line":"                            \u0027the instance.\u0027),"},{"line_number":351,"context_line":"                        {\u0027mac\u0027: vif[\u0027address\u0027], \u0027inst\u0027: self.instance.name})"},{"line_number":352,"context_line":"            return None"},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"        # Find and delete the trunk adapters"},{"line_number":355,"context_line":"        if not trunks:"},{"line_number":356,"context_line":"            trunks \u003d pvm_cna.find_trunks(self.adapter, cna_w)"},{"line_number":357,"context_line":""},{"line_number":358,"context_line":"        for trunk in trunks:"},{"line_number":359,"context_line":"            dev_name \u003d self.get_trunk_dev_name(vif)"}],"source_content_type":"text/x-python","patch_set":13,"id":"7aa08908_006b24b8","line":356,"range":{"start_line":341,"start_character":0,"end_line":356,"end_character":61},"updated":"2016-06-07 20:15:04.000000000","message":"Isn\u0027t all this code common?  Factor out into the base class?","commit_id":"c639a15d73bb682439f4a2237adb39227b469f74"},{"author":{"_account_id":8190,"name":"Drew Thorstensen (thorst)","email":"thorst@us.ibm.com","username":"thorst"},"change_message_id":"2dcaf86b1d59ad259a9c97493eb2822807ca9526","unresolved":false,"context_lines":[{"line_number":338,"context_line":""},{"line_number":339,"context_line":"    def unplug(self, vif, cna_w_list\u003dNone, trunks\u003dNone):"},{"line_number":340,"context_line":"        # Need to find the adapters if they were not provided"},{"line_number":341,"context_line":"        if not cna_w_list:"},{"line_number":342,"context_line":"            cna_w_list \u003d vm.get_cnas(self.adapter, self.instance,"},{"line_number":343,"context_line":"                                     self.host_uuid)"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"        # Find the CNA for this vif."},{"line_number":346,"context_line":"        cna_w \u003d self._find_cna_for_vif(cna_w_list, vif)"},{"line_number":347,"context_line":"        if not cna_w:"},{"line_number":348,"context_line":"            LOG.warning(_LW(\u0027Unable to unplug VIF with mac %(mac)s for \u0027"},{"line_number":349,"context_line":"                            \u0027instance %(inst)s.  The VIF was not found on \u0027"},{"line_number":350,"context_line":"                            \u0027the instance.\u0027),"},{"line_number":351,"context_line":"                        {\u0027mac\u0027: vif[\u0027address\u0027], \u0027inst\u0027: self.instance.name})"},{"line_number":352,"context_line":"            return None"},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"        # Find and delete the trunk adapters"},{"line_number":355,"context_line":"        if not trunks:"},{"line_number":356,"context_line":"            trunks \u003d pvm_cna.find_trunks(self.adapter, cna_w)"},{"line_number":357,"context_line":""},{"line_number":358,"context_line":"        for trunk in trunks:"},{"line_number":359,"context_line":"            dev_name \u003d self.get_trunk_dev_name(vif)"}],"source_content_type":"text/x-python","patch_set":13,"id":"7aa08908_4fa6a90f","line":356,"range":{"start_line":341,"start_character":0,"end_line":356,"end_character":61},"in_reply_to":"7aa08908_006b24b8","updated":"2016-06-14 17:48:22.000000000","message":"Yes, but since parts of it \u0027return\u0027, it is a little hard to make common.\n\nI felt that making a new method that contained it would only save a line or two of code.","commit_id":"c639a15d73bb682439f4a2237adb39227b469f74"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e1bb20d907902b4d552d3cb69c44b47f621b9cd6","unresolved":false,"context_lines":[{"line_number":357,"context_line":""},{"line_number":358,"context_line":"        for trunk in trunks:"},{"line_number":359,"context_line":"            dev_name \u003d self.get_trunk_dev_name(vif)"},{"line_number":360,"context_line":"            utils.execute(\u0027ip\u0027, \u0027link\u0027, \u0027set\u0027, dev_name, \u0027down\u0027,"},{"line_number":361,"context_line":"                          run_as_root\u003dTrue)"},{"line_number":362,"context_line":"            utils.execute(\u0027brctl\u0027, \u0027delif\u0027, vif[\u0027network\u0027][\u0027bridge\u0027],"},{"line_number":363,"context_line":"                          dev_name, run_as_root\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":13,"id":"7aa08908_e0409836","line":360,"range":{"start_line":360,"start_character":27,"end_line":360,"end_character":29},"updated":"2016-06-07 20:15:04.000000000","message":"fq path?","commit_id":"c639a15d73bb682439f4a2237adb39227b469f74"},{"author":{"_account_id":8190,"name":"Drew Thorstensen (thorst)","email":"thorst@us.ibm.com","username":"thorst"},"change_message_id":"2dcaf86b1d59ad259a9c97493eb2822807ca9526","unresolved":false,"context_lines":[{"line_number":357,"context_line":""},{"line_number":358,"context_line":"        for trunk in trunks:"},{"line_number":359,"context_line":"            dev_name \u003d self.get_trunk_dev_name(vif)"},{"line_number":360,"context_line":"            utils.execute(\u0027ip\u0027, \u0027link\u0027, \u0027set\u0027, dev_name, \u0027down\u0027,"},{"line_number":361,"context_line":"                          run_as_root\u003dTrue)"},{"line_number":362,"context_line":"            utils.execute(\u0027brctl\u0027, \u0027delif\u0027, vif[\u0027network\u0027][\u0027bridge\u0027],"},{"line_number":363,"context_line":"                          dev_name, run_as_root\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":13,"id":"7aa08908_efb79537","line":360,"range":{"start_line":360,"start_character":27,"end_line":360,"end_character":29},"in_reply_to":"7aa08908_e0409836","updated":"2016-06-14 17:48:22.000000000","message":"Nope.  See above.","commit_id":"c639a15d73bb682439f4a2237adb39227b469f74"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e1bb20d907902b4d552d3cb69c44b47f621b9cd6","unresolved":false,"context_lines":[{"line_number":359,"context_line":"            dev_name \u003d self.get_trunk_dev_name(vif)"},{"line_number":360,"context_line":"            utils.execute(\u0027ip\u0027, \u0027link\u0027, \u0027set\u0027, dev_name, \u0027down\u0027,"},{"line_number":361,"context_line":"                          run_as_root\u003dTrue)"},{"line_number":362,"context_line":"            utils.execute(\u0027brctl\u0027, \u0027delif\u0027, vif[\u0027network\u0027][\u0027bridge\u0027],"},{"line_number":363,"context_line":"                          dev_name, run_as_root\u003dTrue)"},{"line_number":364,"context_line":"            trunk.delete()"},{"line_number":365,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"7aa08908_8076f4a1","line":362,"range":{"start_line":362,"start_character":27,"end_line":362,"end_character":32},"updated":"2016-06-07 20:15:04.000000000","message":"fq path?","commit_id":"c639a15d73bb682439f4a2237adb39227b469f74"},{"author":{"_account_id":8190,"name":"Drew Thorstensen (thorst)","email":"thorst@us.ibm.com","username":"thorst"},"change_message_id":"2dcaf86b1d59ad259a9c97493eb2822807ca9526","unresolved":false,"context_lines":[{"line_number":359,"context_line":"            dev_name \u003d self.get_trunk_dev_name(vif)"},{"line_number":360,"context_line":"            utils.execute(\u0027ip\u0027, \u0027link\u0027, \u0027set\u0027, dev_name, \u0027down\u0027,"},{"line_number":361,"context_line":"                          run_as_root\u003dTrue)"},{"line_number":362,"context_line":"            utils.execute(\u0027brctl\u0027, \u0027delif\u0027, vif[\u0027network\u0027][\u0027bridge\u0027],"},{"line_number":363,"context_line":"                          dev_name, run_as_root\u003dTrue)"},{"line_number":364,"context_line":"            trunk.delete()"},{"line_number":365,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"7aa08908_2f84fd5b","line":362,"range":{"start_line":362,"start_character":27,"end_line":362,"end_character":32},"in_reply_to":"7aa08908_8076f4a1","updated":"2016-06-14 17:48:22.000000000","message":"Nope.  See above.","commit_id":"c639a15d73bb682439f4a2237adb39227b469f74"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e1bb20d907902b4d552d3cb69c44b47f621b9cd6","unresolved":false,"context_lines":[{"line_number":370,"context_line":"class PvmOvsVifDriver(PvmLioVifDriver):"},{"line_number":371,"context_line":"    \"\"\"The Open vSwitch VIF driver for PowerVM.\"\"\""},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"    def plug(self, vif, slot_num):"},{"line_number":374,"context_line":"        cna_w \u003d super(PvmOvsVifDriver, self).plug(vif, slot_num)"},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"        # There will only be one trunk wrap, as we have created with just the"}],"source_content_type":"text/x-python","patch_set":13,"id":"7aa08908_f5afbc27","line":373,"range":{"start_line":373,"start_character":8,"end_line":373,"end_character":12},"updated":"2016-06-07 20:15:04.000000000","message":"doc","commit_id":"c639a15d73bb682439f4a2237adb39227b469f74"},{"author":{"_account_id":8190,"name":"Drew Thorstensen (thorst)","email":"thorst@us.ibm.com","username":"thorst"},"change_message_id":"2dcaf86b1d59ad259a9c97493eb2822807ca9526","unresolved":false,"context_lines":[{"line_number":370,"context_line":"class PvmOvsVifDriver(PvmLioVifDriver):"},{"line_number":371,"context_line":"    \"\"\"The Open vSwitch VIF driver for PowerVM.\"\"\""},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"    def plug(self, vif, slot_num):"},{"line_number":374,"context_line":"        cna_w \u003d super(PvmOvsVifDriver, self).plug(vif, slot_num)"},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"        # There will only be one trunk wrap, as we have created with just the"}],"source_content_type":"text/x-python","patch_set":13,"id":"7aa08908_0f878161","line":373,"range":{"start_line":373,"start_character":8,"end_line":373,"end_character":12},"in_reply_to":"7aa08908_f5afbc27","updated":"2016-06-14 17:48:22.000000000","message":"Done","commit_id":"c639a15d73bb682439f4a2237adb39227b469f74"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e1bb20d907902b4d552d3cb69c44b47f621b9cd6","unresolved":false,"context_lines":[{"line_number":383,"context_line":""},{"line_number":384,"context_line":"        return cna_w"},{"line_number":385,"context_line":""},{"line_number":386,"context_line":"    def get_ovs_interfaceid(self, vif):"},{"line_number":387,"context_line":"        return vif.get(\u0027ovs_interfaceid\u0027) or vif[\u0027id\u0027]"},{"line_number":388,"context_line":""},{"line_number":389,"context_line":"    def unplug(self, vif, cna_w_list\u003dNone):"}],"source_content_type":"text/x-python","patch_set":13,"id":"7aa08908_55a97023","line":386,"range":{"start_line":386,"start_character":8,"end_line":386,"end_character":27},"updated":"2016-06-07 20:15:04.000000000","message":"doc","commit_id":"c639a15d73bb682439f4a2237adb39227b469f74"},{"author":{"_account_id":8190,"name":"Drew Thorstensen (thorst)","email":"thorst@us.ibm.com","username":"thorst"},"change_message_id":"2dcaf86b1d59ad259a9c97493eb2822807ca9526","unresolved":false,"context_lines":[{"line_number":383,"context_line":""},{"line_number":384,"context_line":"        return cna_w"},{"line_number":385,"context_line":""},{"line_number":386,"context_line":"    def get_ovs_interfaceid(self, vif):"},{"line_number":387,"context_line":"        return vif.get(\u0027ovs_interfaceid\u0027) or vif[\u0027id\u0027]"},{"line_number":388,"context_line":""},{"line_number":389,"context_line":"    def unplug(self, vif, cna_w_list\u003dNone):"}],"source_content_type":"text/x-python","patch_set":13,"id":"7aa08908_6f7a8578","line":386,"range":{"start_line":386,"start_character":8,"end_line":386,"end_character":27},"in_reply_to":"7aa08908_55a97023","updated":"2016-06-14 17:48:22.000000000","message":"Done","commit_id":"c639a15d73bb682439f4a2237adb39227b469f74"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e1bb20d907902b4d552d3cb69c44b47f621b9cd6","unresolved":false,"context_lines":[{"line_number":386,"context_line":"    def get_ovs_interfaceid(self, vif):"},{"line_number":387,"context_line":"        return vif.get(\u0027ovs_interfaceid\u0027) or vif[\u0027id\u0027]"},{"line_number":388,"context_line":""},{"line_number":389,"context_line":"    def unplug(self, vif, cna_w_list\u003dNone):"},{"line_number":390,"context_line":"        # Need to find the adapters if they were not provided"},{"line_number":391,"context_line":"        if not cna_w_list:"},{"line_number":392,"context_line":"            cna_w_list \u003d vm.get_cnas(self.adapter, self.instance,"}],"source_content_type":"text/x-python","patch_set":13,"id":"7aa08908_35a66453","line":389,"range":{"start_line":389,"start_character":8,"end_line":389,"end_character":14},"updated":"2016-06-07 20:15:04.000000000","message":"doc","commit_id":"c639a15d73bb682439f4a2237adb39227b469f74"},{"author":{"_account_id":8190,"name":"Drew Thorstensen (thorst)","email":"thorst@us.ibm.com","username":"thorst"},"change_message_id":"2dcaf86b1d59ad259a9c97493eb2822807ca9526","unresolved":false,"context_lines":[{"line_number":386,"context_line":"    def get_ovs_interfaceid(self, vif):"},{"line_number":387,"context_line":"        return vif.get(\u0027ovs_interfaceid\u0027) or vif[\u0027id\u0027]"},{"line_number":388,"context_line":""},{"line_number":389,"context_line":"    def unplug(self, vif, cna_w_list\u003dNone):"},{"line_number":390,"context_line":"        # Need to find the adapters if they were not provided"},{"line_number":391,"context_line":"        if not cna_w_list:"},{"line_number":392,"context_line":"            cna_w_list \u003d vm.get_cnas(self.adapter, self.instance,"}],"source_content_type":"text/x-python","patch_set":13,"id":"7aa08908_efe5d537","line":389,"range":{"start_line":389,"start_character":8,"end_line":389,"end_character":14},"in_reply_to":"7aa08908_35a66453","updated":"2016-06-14 17:48:22.000000000","message":"Done","commit_id":"c639a15d73bb682439f4a2237adb39227b469f74"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"1aee168e95f957aa6beb4696682d28da983475b6","unresolved":false,"context_lines":[{"line_number":322,"context_line":"        \"\"\"Returns the device name for the trunk adapter."},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"        A given VIF in the Linux I/O model will have a trunk adapter and a"},{"line_number":325,"context_line":"        client adapter.  This will return the trunk adapters name as it"},{"line_number":326,"context_line":"        will appear on the system."},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"        :param vif: The nova network interface"}],"source_content_type":"text/x-python","patch_set":15,"id":"7aa08908_8fa09191","line":325,"range":{"start_line":325,"start_character":52,"end_line":325,"end_character":60},"updated":"2016-06-14 17:54:23.000000000","message":"adapter\u0027s","commit_id":"1c8d504396e3506e157c07c2e9d7a777e43baf7a"},{"author":{"_account_id":8190,"name":"Drew Thorstensen (thorst)","email":"thorst@us.ibm.com","username":"thorst"},"change_message_id":"36c3483c8cedae6f86c0a7022c794f8187b6df75","unresolved":false,"context_lines":[{"line_number":322,"context_line":"        \"\"\"Returns the device name for the trunk adapter."},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"        A given VIF in the Linux I/O model will have a trunk adapter and a"},{"line_number":325,"context_line":"        client adapter.  This will return the trunk adapters name as it"},{"line_number":326,"context_line":"        will appear on the system."},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"        :param vif: The nova network interface"}],"source_content_type":"text/x-python","patch_set":15,"id":"7aa08908_0db8e629","line":325,"range":{"start_line":325,"start_character":52,"end_line":325,"end_character":60},"in_reply_to":"7aa08908_8fa09191","updated":"2016-06-15 21:05:07.000000000","message":"Done","commit_id":"1c8d504396e3506e157c07c2e9d7a777e43baf7a"},{"author":{"_account_id":13883,"name":"Adam Reznechek","email":"adreznec@us.ibm.com","username":"adrez"},"change_message_id":"c2d7234aacc45f6a45e3656306359dd1f6d53f0c","unresolved":false,"context_lines":[{"line_number":323,"context_line":""},{"line_number":324,"context_line":"        A given VIF in the Linux I/O model will have a trunk adapter and a"},{"line_number":325,"context_line":"        client adapter.  This will return the trunk adapters name as it"},{"line_number":326,"context_line":"        will appear on the system."},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"        :param vif: The nova network interface"},{"line_number":329,"context_line":"        :return: The device name."}],"source_content_type":"text/x-python","patch_set":15,"id":"7aa08908_f2580bfb","line":326,"range":{"start_line":326,"start_character":27,"end_line":326,"end_character":33},"updated":"2016-06-15 01:53:16.000000000","message":"System in this context meaning the management partition, right?","commit_id":"1c8d504396e3506e157c07c2e9d7a777e43baf7a"},{"author":{"_account_id":8190,"name":"Drew Thorstensen (thorst)","email":"thorst@us.ibm.com","username":"thorst"},"change_message_id":"36c3483c8cedae6f86c0a7022c794f8187b6df75","unresolved":false,"context_lines":[{"line_number":323,"context_line":""},{"line_number":324,"context_line":"        A given VIF in the Linux I/O model will have a trunk adapter and a"},{"line_number":325,"context_line":"        client adapter.  This will return the trunk adapters name as it"},{"line_number":326,"context_line":"        will appear on the system."},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"        :param vif: The nova network interface"},{"line_number":329,"context_line":"        :return: The device name."}],"source_content_type":"text/x-python","patch_set":15,"id":"7aa08908_edb47a36","line":326,"range":{"start_line":326,"start_character":27,"end_line":326,"end_character":33},"in_reply_to":"7aa08908_f2580bfb","updated":"2016-06-15 21:05:07.000000000","message":"Done","commit_id":"1c8d504396e3506e157c07c2e9d7a777e43baf7a"},{"author":{"_account_id":13883,"name":"Adam Reznechek","email":"adreznec@us.ibm.com","username":"adrez"},"change_message_id":"c2d7234aacc45f6a45e3656306359dd1f6d53f0c","unresolved":false,"context_lines":[{"line_number":390,"context_line":"        :param cna_w_list: (Optional, Default: None) The list of Client Network"},{"line_number":391,"context_line":"                           Adapters from pypowervm.  Providing this input"},{"line_number":392,"context_line":"                           allows for an improvement in operation speed."},{"line_number":393,"context_line":"        :return cna_w: The deleted Client Network Adapter."},{"line_number":394,"context_line":"        \"\"\""},{"line_number":395,"context_line":"        # Need to find the adapters if they were not provided"},{"line_number":396,"context_line":"        if not cna_w_list:"}],"source_content_type":"text/x-python","patch_set":15,"id":"7aa08908_2f098c31","line":393,"updated":"2016-06-15 01:53:16.000000000","message":"\u0027trunks\u0027 isn\u0027t listed as a param. I\u0027m really not sure in what scenario trunks you would have enough information to pass the trunks in to this. If there is a scenario I\u0027m missing through you could skip finding the CNA for the vif below if trunks is set since it would never be used.","commit_id":"1c8d504396e3506e157c07c2e9d7a777e43baf7a"},{"author":{"_account_id":8190,"name":"Drew Thorstensen (thorst)","email":"thorst@us.ibm.com","username":"thorst"},"change_message_id":"36c3483c8cedae6f86c0a7022c794f8187b6df75","unresolved":false,"context_lines":[{"line_number":390,"context_line":"        :param cna_w_list: (Optional, Default: None) The list of Client Network"},{"line_number":391,"context_line":"                           Adapters from pypowervm.  Providing this input"},{"line_number":392,"context_line":"                           allows for an improvement in operation speed."},{"line_number":393,"context_line":"        :return cna_w: The deleted Client Network Adapter."},{"line_number":394,"context_line":"        \"\"\""},{"line_number":395,"context_line":"        # Need to find the adapters if they were not provided"},{"line_number":396,"context_line":"        if not cna_w_list:"}],"source_content_type":"text/x-python","patch_set":15,"id":"7aa08908_0dbd8602","line":393,"in_reply_to":"7aa08908_2f098c31","updated":"2016-06-15 21:05:07.000000000","message":"Done","commit_id":"1c8d504396e3506e157c07c2e9d7a777e43baf7a"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"b759d78e12b888dfb00bdd1c91cc70a9117709fb","unresolved":false,"context_lines":[{"line_number":492,"context_line":""},{"line_number":493,"context_line":"        # Now delete the client CNA"},{"line_number":494,"context_line":"        return super(PvmOvsVifDriver, self).unplug(vif, cna_w_list\u003dcna_w_list,"},{"line_number":495,"context_line":"                                                   trunks\u003dtrunks)"},{"line_number":496,"context_line":""},{"line_number":497,"context_line":"    def post_live_migrate_at_destination(self, vif):"},{"line_number":498,"context_line":"        \"\"\"Performs live migrate cleanup on the destination host."}],"source_content_type":"text/x-python","patch_set":16,"id":"7aa08908_cdc89e59","line":495,"range":{"start_line":495,"start_character":51,"end_line":495,"end_character":64},"updated":"2016-06-15 21:10:50.000000000","message":"Unless I\u0027m missing something, the superclass method doesn\u0027t take a trunks param.","commit_id":"d74026440a6d9e467f40a610c08bdaef2167ee6f"},{"author":{"_account_id":8190,"name":"Drew Thorstensen (thorst)","email":"thorst@us.ibm.com","username":"thorst"},"change_message_id":"e57931229a703948109f544d63118ebcc40f2e85","unresolved":false,"context_lines":[{"line_number":492,"context_line":""},{"line_number":493,"context_line":"        # Now delete the client CNA"},{"line_number":494,"context_line":"        return super(PvmOvsVifDriver, self).unplug(vif, cna_w_list\u003dcna_w_list,"},{"line_number":495,"context_line":"                                                   trunks\u003dtrunks)"},{"line_number":496,"context_line":""},{"line_number":497,"context_line":"    def post_live_migrate_at_destination(self, vif):"},{"line_number":498,"context_line":"        \"\"\"Performs live migrate cleanup on the destination host."}],"source_content_type":"text/x-python","patch_set":16,"id":"7aa08908_da0dcf90","line":495,"range":{"start_line":495,"start_character":51,"end_line":495,"end_character":64},"in_reply_to":"7aa08908_cdc89e59","updated":"2016-06-16 14:02:53.000000000","message":"You didn\u0027t.  Thought I caught that, but I was apparently rushing too much.","commit_id":"d74026440a6d9e467f40a610c08bdaef2167ee6f"}]}
