public async Task <ActionResult> RestartVm([FromBody] VmAction vmAction) { var action = JsonConvert.DeserializeObject <TopoMojo.Models.VmAction>( JsonConvert.SerializeObject(vmAction) ); await Mojo.ChangeVm(action); return(Ok()); }
public async Task <IActionResult> ChangeVm([FromBody] VmAction vmAction) { return(Ok(await _engineService.ChangeVm(vmAction))); }
public async Task ChangeVm(VmAction vmAction) { await Client.PutAsync($"vm", Json(vmAction)); }
public async Task ChangeVm(VmAction vmAction) { await Task.Delay(0); }
public async Task <bool> ChangeVm(VmAction vmAction) { bool result = false; Vm vm = null; if (!Guid.TryParse(vmAction.Id, out Guid guid)) { // lookup id from name vm = await _pod.Load(vmAction.Id); vmAction.Id = vm.Id; } switch (vmAction.Type) { case "stop": try { await _pod.StopAll(vmAction.Id); } catch {} break; case "start": case "restart": try { if (vmAction.Type == "restart") { await _pod.StopAll(vmAction.Id); } } catch {} try { await _pod.StartAll(vmAction.Id); } catch {} result = true; break; case "iso": if (vm == null) { return(false); } // look up valid iso path var gamespace = await _gamespaceStore.Load(vm.Name.Tag()); var allowedIsos = await _pod.GetVmIsoOptions(gamespace.Workspace.GlobalId); string path = allowedIsos.Iso.Where(x => x.Contains(vmAction.Message)).FirstOrDefault(); _logger.LogDebug($"{vm.Name}, {vmAction.Message}, {gamespace.Workspace.Name}, {String.Join(" ", allowedIsos.Iso)}"); await _pod.ChangeConfiguration( vmAction.Id, new VmKeyValue { Key = "iso", Value = path } ); result = true; break; } return(result); }
public async Task ChangeVm(VmAction vmAction) { var data = await Http.PutAsync($"/api/mojo/vmaction", Json(vmAction)); }