docs: def _uncouple_nic(self, userid, vdev, active=False):
          """Uncouple NIC from vswitch"""
          if active:
              self._is_active(userid)
          msg = ('Start to uncouple nic device %(vdev)s of guest %(vm)s'
                  % {'vdev': vdev, 'vm': userid})
          LOG.info(msg)
  
          requestData = ' '.join((
              'SMAPI %s' % userid,
              "API Virtual_Network_Adapter_Disconnect_DM",
              "--operands",
              "-v %s" % vdev))
  
          try:
              self._request(requestData)
          except (exception.SDKSMTRequestFailed,
                  exception.SDKInternalError) as err:
              results = err.results
              emsg = err.format_message()
              if ((results is not None) and
                  (results['rc'] == 212) and
                  (results['rs'] == 32)):
                  LOG.warning("Virtual device %s is already disconnected "
                              "in the guest's user direct", vdev)
              else:
                  LOG.error("Failed to uncouple nic %s in the guest's user "
                            "direct, error: %s" % (vdev, emsg))
                  self._uncouple_inactive_exception(err, userid, vdev)
  
          """Update information in switch table."""
          self._NetDbOperator.switch_update_record_with_switch(userid, vdev,
                                                               None)
  
          # the inst must be active, or this call will failed
          if active:
              requestData = ' '.join((
                  'SMAPI %s' % userid,
                  'API Virtual_Network_Adapter_Disconnect',
                  "--operands",
                  "-v %s" % vdev))
              try:
                  self._request(requestData)
              except (exception.SDKSMTRequestFailed,
                      exception.SDKInternalError) as err:
                  results = err.results
                  emsg = err.format_message()
                  if ((results is not None) and
                      (results['rc'] == 204) and
                      (results['rs'] == 48)):
                      LOG.warning("Virtual device %s is already "
                                  "disconnected on the active "
                                  "guest system", vdev)
                  else:
                      LOG.error("Failed to uncouple nic %s on the active "
                                "guest system, error: %s" % (vdev, emsg))
                      self._uncouple_active_exception(err, userid, vdev)
          msg = ('Uncouple nic device %(vdev)s of guest %(vm)s successfully'
                  % {'vdev': vdev, 'vm': userid})
          LOG.info(msg)