Exemplo n.º 1
0
        public async Task <ActionResult> RestartVm([FromBody] VmAction vmAction)
        {
            var action = JsonConvert.DeserializeObject <TopoMojo.Models.VmAction>(
                JsonConvert.SerializeObject(vmAction)
                );
            await Mojo.ChangeVm(action);

            return(Ok());
        }
Exemplo n.º 2
0
 public async Task <IActionResult> ChangeVm([FromBody] VmAction vmAction)
 {
     return(Ok(await _engineService.ChangeVm(vmAction)));
 }
Exemplo n.º 3
0
 public async Task ChangeVm(VmAction vmAction)
 {
     await Client.PutAsync($"vm", Json(vmAction));
 }
Exemplo n.º 4
0
 public async Task ChangeVm(VmAction vmAction)
 {
     await Task.Delay(0);
 }
Exemplo n.º 5
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);
        }
Exemplo n.º 6
0
 public async Task ChangeVm(VmAction vmAction)
 {
     var data = await Http.PutAsync($"/api/mojo/vmaction", Json(vmAction));
 }