def update_port_postcommit(self, current, original, segment): try: dvs = self._lookup_dvs_for_context(segment) if current['id'] in self.booked_ports: self.added_ports.add(current['id']) self.booked_ports.discard(current['id']) except exceptions.NoDVSForPhysicalNetwork: raise exceptions.InvalidSystemState( details=_('Port %(port_id)s belong to VMWare VM, but there is ' 'no mapping from network to DVS.') % {'port_id': current['id']}) else: self._update_admin_state_up(dvs, original, current)
def delete_port_postcommit(self, current, original, segment): try: dvs = self._lookup_dvs_for_context(segment) except exceptions.NoDVSForPhysicalNetwork: raise exceptions.InvalidSystemState( details=_('Port %(port_id)s belong to VMWare VM, but there is ' 'no mapping from network to DVS.') % {'port_id': current['id']}) else: if sg_rpc.is_firewall_enabled(): key = current.get('binding:vif_details', {}).get('dvs_port_key') if key: dvs.remove_block(key) else: dvs.release_port(current)