docs: def update_dvs(dvs_ref, dvs_config_spec):
      '''
      Updates a distributed virtual switch with the config_spec.
  
      dvs_ref
          The DVS reference.
  
      dvs_config_spec
          The updated config spec (vim.VMwareDVSConfigSpec) to be applied to
          the DVS.
      '''
      dvs_name = get_managed_object_name(dvs_ref)
      log.trace('Updating dvs \'%s\'', dvs_name)
      try:
          task = dvs_ref.ReconfigureDvs_Task(dvs_config_spec)
      except vim.fault.NoPermission as exc:
          log.exception(exc)
          raise salt.exceptions.VMwareApiError(
              'Not enough permissions. Required privilege: '
              '{0}'.format(exc.privilegeId))
      except vim.fault.VimFault as exc:
          log.exception(exc)
          raise salt.exceptions.VMwareApiError(exc.msg)
      except vmodl.RuntimeFault as exc:
          log.exception(exc)
          raise salt.exceptions.VMwareRuntimeError(exc.msg)
      wait_for_task(task, dvs_name, six.text_type(task.__class__))