public async Task <Vm> Revert(string id) { await Connect(); Vm vm = _vmCache[id]; _logger.LogDebug($"Stopping vm {vm.Name}"); ManagedObjectReference task = await _vim.RevertToCurrentSnapshot_TaskAsync( vm.AsVim(), null, false); TaskInfo info = await WaitForVimTask(task); if (vm.State == VmPowerState.Running) { await Start(id); } _vmCache.TryUpdate(vm.Id, vm, vm); return(vm); }