docs: def process_added_port(self, device_details):
          """Process the new ports.
  
          Wraps _process_added_port, and treats the sucessful and exception
          cases.
          """
          device = device_details['device']
          port_id = device_details['port_id']
          reprocess = True
          try:
              self._process_added_port(device_details)
  
              LOG.debug("Updating cached port %s status as UP.", port_id)
              self._update_port_status_cache(device, device_bound=True)
              LOG.info("Port %s processed.", port_id)
          except os_win_exc.HyperVvNicNotFound:
              LOG.debug('vNIC %s not found. This can happen if the VM was '
                        'destroyed.', port_id)
              reprocess = False
          except os_win_exc.HyperVPortNotFoundException:
              LOG.debug('vSwitch port %s not found. This can happen if the VM '
                        'was destroyed.', port_id)
              # NOTE(claudiub): just to be on the safe side, in case Hyper-V said
              # that the port was added, but it hasn't really, we're leaving
              # reprocess = True. If the VM / vNIC was removed, on the next
              # reprocess, a HyperVvNicNotFound will be raised.
          except Exception as ex:
              # NOTE(claudiub): in case of a non-transient error, the port will
              # be processed over and over again, and will not be reported as
              # bound (e.g.: InvalidParameterValue when setting QoS), until the
              # port is deleted. These issues have to be investigated and solved
              LOG.exception("Exception encountered while processing "
                            "port %(port_id)s. Exception: %(ex)s",
                            dict(port_id=port_id, ex=ex))
          else:
              # no exception encountered, no need to reprocess.
              reprocess = False
  
          if reprocess:
              # Readd the port as "added", so it can be reprocessed.
              self._added_ports.add(device)
  
              # Force cache refresh.
              self._refresh_cache = True
              return False
  
          return True