Example #1
0
 private static void ManageVirsh()
 {
     Virsh.PrepareDirectory();
     if (CurrentConfiguration.Services.Virsh.Active)
     {
         Virsh.StartAll();
     }
 }
Example #2
0
 public AntdVmModule()
 {
     Get["/vm"] = x => {
         var virsh  = new Virsh();
         var vmList = virsh.GetVmList().ToList();
         var model  = new PageVmModel {
             VmListAny = vmList.Any(),
             VmList    = vmList
         };
         return(JsonConvert.SerializeObject(model));
     };
 }
Example #3
0
        public VirshModule() : base("/virsh")
        {
            Get["/"] = x => {
                return(JsonConvert.SerializeObject(Application.RunningConfiguration.Services.Virsh));
            };

            Post["/save"] = x => {
                string data    = Request.Form.Data;
                var    objects = JsonConvert.DeserializeObject <VirshModel>(data);
                Application.CurrentConfiguration.Services.Virsh = objects;
                ConfigRepo.Save();
                return(HttpStatusCode.OK);
            };

            Post["/destroy"] = x => {
                string data = Request.Form.Data;
                Virsh.Destroy(data);
                return(HttpStatusCode.OK);
            };

            Post["/reboot"] = x => {
                string data = Request.Form.Data;
                Virsh.Reboot(data);
                return(HttpStatusCode.OK);
            };

            Post["/reset"] = x => {
                string data = Request.Form.Data;
                Virsh.Reset(data);
                return(HttpStatusCode.OK);
            };

            Post["/restore"] = x => {
                string data = Request.Form.Data;
                Virsh.Restore(data);
                return(HttpStatusCode.OK);
            };

            Post["/resume"] = x => {
                string data = Request.Form.Data;
                Virsh.Resume(data);
                return(HttpStatusCode.OK);
            };

            Post["/shutdown"] = x => {
                string data = Request.Form.Data;
                Virsh.Shutdown(data);
                return(HttpStatusCode.OK);
            };

            Post["/start"] = x => {
                string data = Request.Form.Data;
                Virsh.Start(data);
                return(HttpStatusCode.OK);
            };

            Post["/suspend"] = x => {
                string data = Request.Form.Data;
                Virsh.Suspend(data);
                return(HttpStatusCode.OK);
            };

            Post["/dompmsuspend"] = x => {
                string data = Request.Form.Data;
                Virsh.Dompmsuspend(data);
                return(HttpStatusCode.OK);
            };

            Post["/dompmwakeup"] = x => {
                string data = Request.Form.Data;
                Virsh.Dompmwakeup(data);
                return(HttpStatusCode.OK);
            };
        }
Example #4
0
        /// <summary>
        /// Ottiene un Master valorizzato coi valori ottenuti direttamente dal sistema operativo
        /// Potrebbe non corrispondere al Master salvato
        /// Viene utilizzato per ottenere le differenze tra i parametri salvati e quelli effettivamente applicati
        /// </summary>
        /// <returns></returns>
        public static MachineStatus GetRunning()
        {
            //var STOPWATCH = new System.Diagnostics.Stopwatch();
            //STOPWATCH.Start();
            var master = new MachineStatus();

            master.Info.Uptime    = Uptime.Get();
            master.Info.CpuInfo   = CpuInfo.Get();
            master.Info.MemInfo   = MemInfo.Get();
            master.Info.Free      = Free.Get();
            master.Info.Losetup   = Losetup.Get();
            master.Info.DiskUsage = DiskUsage.Get();
            master.Info.Versions  = Versioning.Get();

            master.Host     = Hostnamectl.Get();
            master.TimeDate = new TimeDate()
            {
                Timezone = Timedatectl.Get().Timezone
            };
            master.Boot = new Boot();
            var modules     = Mod.Get();
            var bootModules = new SystemModule[modules.Length];

            for (var i = 0; i < modules.Length; i++)
            {
                bootModules[i] = new SystemModule()
                {
                    Module = modules[i].Module, Active = true
                };
            }
            master.Boot.Modules           = bootModules;
            master.Boot.Services          = cmds.Systemctl.GetAll();
            master.Boot.Parameters        = Sysctl.Get();
            master.Users.SystemUsers      = Passwd.Get();
            master.Users.ApplicativeUsers = new ApplicativeUser[] { new ApplicativeUser()
                                                                    {
                                                                        Active = true, Type = AuthenticationType.simple, Id = "master", Claims = new[] { SHA.Generate("master") }
                                                                    } };

            master.Network.KnownDns          = Dns.GetResolv();
            master.Network.KnownHosts        = Dns.GetHosts();
            master.Network.KnownNetworks     = Dns.GetNetworks();
            master.Network.Bridges           = Brctl.Get();
            master.Network.Bonds             = Bond.Get();
            master.Network.NetworkInterfaces = cmds.Network.Get();
            master.Network.RoutingTables     = Route.GetRoutingTable();
            master.Network.Routing           = Route.Get();

            master.NsSwitch = NS.Switch.Get();

            master.Storage.Mounts       = Mount.Get();
            master.Storage.Zpools       = Zpool.GetPools();
            master.Storage.ZfsDatasets  = Zfs.GetDatasets();
            master.Storage.ZfsSnapshots = Zfs.GetSnapshots();

            master.Services.Ssh.PublicKey     = Ssh.GetRootPublicKey();
            master.Services.Ssh.PrivateKey    = Ssh.GetRootPrivateKey();
            master.Services.Ssh.AuthorizedKey = Ssh.GetAuthorizedKey();

            master.Services.Virsh.Domains = Virsh.GetDomains();

            //ConsoleLogger.Log($"[conf] loaded running conf ({STOPWATCH.ElapsedMilliseconds})");
            return(master);
        }