Beispiel #1
0
        public static bool Set()
        {
            var current = Application.CurrentConfiguration.SetupCommands;

            if (current == null)
            {
                return(false);
            }
            var setupLines = new string[current.Length];

            for (var i = 0; i < current.Length; i++)
            {
                var setupCommand = current[i];
                var exe          = true;
                if (!string.IsNullOrEmpty(setupCommand.ControlBashCommand) && !string.IsNullOrEmpty(setupCommand.ControlResult))
                {
                    var setupCheckResult = CommonProcess.Execute(bashFileLocation, SetBahArguments(setupCommand.ControlBashCommand));
                    if (setupCheckResult.Any(_ => _.Contains(setupCommand.ControlResult)))
                    {
                        exe = false;
                    }
                }
                if (exe)
                {
                    ConsoleLogger.Log($"[setup] {setupCommand.BashCommand}");
                    CommonProcess.Do(bashFileLocation, SetBahArguments(setupCommand.BashCommand));
                }
                setupLines[i] = setupCommand.BashCommand;
            }
            //File.WriteAllLines($"{Parameter.AntdCfgSetup}/{setupFilename}", setupLines);
            return(true);
        }
Beispiel #2
0
            /// <summary>
            /// Lista effettiva degli snapshot da rimuovere
            /// Viene generata partendo dalla lista completa degli snapshot dopo essere stata filtrata secondo le Regole definite sotto
            /// </summary>
            public static HashSet <string> GetRemovableZfsSnapshotModels()
            {
                var result    = CommonProcess.Execute(zfsFileLocation, snapshotCleanupArgs).Skip(1).ToArray();
                var snapshots = new List <Model>();

                foreach (var line in result)
                {
                    var attr = line.Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries);
                    if (attr.Length < 1)
                    {
                        continue;
                    }
                    var snap = new Model();
                    snap.Name      = attr[0];
                    snap.PoolName  = attr[0].Split('@').FirstOrDefault();
                    snap.Dimension = Convert.ToInt64(attr[1]);
                    snap.Created   = GetZfsSnapshotModelDate(snap.Name);
                    snapshots.Add(snap);
                }

                var list           = new HashSet <string>();
                var snapshotGroups = snapshots.GroupBy(_ => _.PoolName);

                foreach (var snpgrp in snapshotGroups)
                {
                    var filter = Filter(snpgrp);
                    foreach (var snp in filter)
                    {
                        list.Add(snp.Name);
                    }
                }
                return(list);
            }
Beispiel #3
0
        public static IEnumerable <string> GetNetworkAdapterRouting(string networkAdapter)
        {
            //todo map to model
            var args = CommonString.Append("route show ", networkAdapter);

            return(CommonProcess.Execute(ipFileLocation, args));
        }
Beispiel #4
0
        public static ZpoolModel[] GetPools()
        {
            var result = CommonProcess.Execute(zpoolFileLocation, "list").ToArray();

            if (result.Length < 1)
            {
                return(new ZpoolModel[0]);
            }
            if (result[0].Contains(zpoolEmptyMessage))
            {
                return(new ZpoolModel[0]);
            }
            var pools = new ZpoolModel[result.Length];

            for (var i = 0; i < pools.Length; i++)
            {
                var currentData = result[i].Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                pools[i] = new ZpoolModel {
                    Name     = currentData[0],
                    Size     = currentData[1],
                    Alloc    = currentData[2],
                    Free     = currentData[3],
                    Expandsz = currentData[4],
                    Frag     = currentData[5],
                    Cap      = currentData[6],
                    Dedup    = currentData[7],
                    Health   = currentData[8],
                    Altroot  = currentData[9],
                    Status   = Bash.Execute($"zpool status {currentData[0]}")
                };
            }
            return(pools);
        }
Beispiel #5
0
        public static ZfsSnapshotModel[] GetSnapshots()
        {
            var result = CommonProcess.Execute(zfsFileLocation, "list -t snap").ToArray();

            if (result.Length < 1)
            {
                return(new ZfsSnapshotModel[0]);
            }
            if (result[0].Contains(zfsEmptyMessage))
            {
                return(new ZfsSnapshotModel[0]);
            }
            var snap = new ZfsSnapshotModel[result.Length];

            for (var i = 0; i < snap.Length; i++)
            {
                var currentData = result[i].Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                snap[i] = new ZfsSnapshotModel {
                    Name       = currentData[0],
                    Used       = currentData[1],
                    Available  = currentData[2],
                    Refer      = currentData[3],
                    Mountpoint = currentData[4]
                };
            }
            return(snap);
        }
Beispiel #6
0
        public static VirshDomainModel GetDomainInfo(string domain)
        {
            //todo map to model
            var arg    = CommonString.Append(dominfoArg, " ", domain);
            var result = CommonProcess.Execute(virshFileLocation, arg).Skip(2).ToArray();
            var info   = new VirshDomainModel();

            return(info);
        }
Beispiel #7
0
        public static IEnumerable <string> GetNetworkAdapter(string networkAdapter)
        {
            //todo map to model
            //dict["ip4-show-if-addr"] = new Command {
            //dict["ip4-show-if-link"] = new Command {
            var args = CommonString.Append("addr show ", networkAdapter);

            return(CommonProcess.Execute(ipFileLocation, args));
        }
Beispiel #8
0
        public static string[] GetImportPools()
        {
            var result = CommonProcess.Execute(zpoolFileLocation, zpoolImportArgs).Where(_ => _.Contains(zpoolImportFilter)).ToArray();
            var pools  = new string[result.Length];

            for (var i = 0; i < result.Length; i++)
            {
                var currentData = result[i].Split(new[] { ':' }, 2, StringSplitOptions.RemoveEmptyEntries);
                pools[i] = currentData[1].Trim();
            }
            return(pools);
        }
Beispiel #9
0
        private static string GetVersion(string file)
        {
            var result = CommonProcess.Execute(fileLocation, file).ToArray();

            if (result.Length == 0)
            {
                return(string.Empty);
            }
            var version = Help.CaptureGroup(result[0], "([0-9]{8,12})");

            return(version);
        }
Beispiel #10
0
        public static void SaveDefaultValues()
        {
            if (File.Exists(sysctlEtcConfFile))
            {
                return;
            }
            CommonProcess.Do(sysctlFileLocation, "--system");
            var result = CommonProcess.Execute(sysctlFileLocation, "-a");

            File.WriteAllLines(sysctlEtcConfFile, result);
            File.Copy(sysctlEtcConfFile, sysctlConfFile, true);
            ConsoleLogger.Log("[sysctl] save default values");
        }
Beispiel #11
0
        public static string[] GetList()
        {
            var args   = CommonString.Append("--no-pager --no-legend list-units");
            var result = CommonProcess.Execute(systemctlFileLocation, args).Where(_ => !_.Contains("device")).ToArray();
            var status = new string[result.Length];

            for (var i = 0; i < result.Length; i++)
            {
                var currentLineData = result[i].Split(new[] { ' ' }, 2, StringSplitOptions.RemoveEmptyEntries);
                status[i] = currentLineData[0];
            }
            return(status);
        }
Beispiel #12
0
        public static string Get()
        {
            var result = CommonProcess.Execute(unameFileLocation, argument).ToArray();

            if (result == null)
            {
                return(string.Empty);
            }
            if (result.Length < 1)
            {
                return(string.Empty);
            }
            return(result[0].Trim());
        }
Beispiel #13
0
        public static Status Get()
        {
            var result = CommonProcess.Execute(timedatectlFileLocation);

            if (result.Count() < 1)
            {
                return(new Status());
            }
            var status = new Status {
                Timezone = result.FirstOrDefault(_ => _.Contains("Time zone:")).Split(new[] { ':' }).LastOrDefault().Trim()
            };

            return(status);
        }
Beispiel #14
0
        public static SystemService[] Get(SystemctlType type = SystemctlType.none)
        {
            string filter = "";

            switch (type)
            {
            case SystemctlType.none:
                break;

            case SystemctlType.Service:
                filter = "--type=service";
                break;

            case SystemctlType.Mount:
                filter = "--type=mount";
                break;

            case SystemctlType.Timer:
                filter = "--type=timer";
                break;

            case SystemctlType.Target:
                filter = "--type=target";
                break;

            default:
                break;
            }

            var args   = CommonString.Append("--no-pager --no-legend ", filter);
            var result = CommonProcess.Execute(systemctlFileLocation, args).ToArray();
            var status = new SystemService[result.Length];

            for (var i = 0; i < result.Length; i++)
            {
                var currentLine     = result[i];
                var currentLineData = currentLine.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                status[i] = new SystemService()
                {
                    Type         = type,
                    Service      = currentLineData[0],
                    Active       = IsEnabled(currentLineData[0]) ? true : false,
                    Start        = IsActive(currentLineData[0]) ? true : false,
                    ForceRestart = false,
                    Masking      = false
                };
            }
            return(status);
        }
Beispiel #15
0
        public static bool IsEnabled(string unit)
        {
            var args   = CommonString.Append(isEnabledArg, " ", unit);
            var status = CommonProcess.Execute(systemctlFileLocation, args);

            if (status == null)
            {
                return(false);
            }
            if (string.IsNullOrEmpty(status.FirstOrDefault()))
            {
                return(false);
            }
            return(!status.FirstOrDefault().Contains("disabled"));
        }
Beispiel #16
0
        public static Status[] Get()
        {
            var result = CommonProcess.Execute(lsmodFileLocation).Skip(1).ToArray();
            var status = new Status[result.Length];

            for (var i = 0; i < result.Length; i++)
            {
                var currentLine = result[i];
                status[i] = new Status()
                {
                    Module = Help.CaptureGroup(currentLine, "([a-zA-Z_0-9]+)[\\s]*[0-9]+[0-9][\\s]+[0-9]+\\s"),
                    UsedBy = Help.CaptureGroup(currentLine, "[a-zA-Z_0-9]+[\\s]*[0-9]+[0-9][\\s]+[0-9]+\\s([a-zA-Z_0-9, ]*)").Split(',')
                };
            }
            return(status);
        }
Beispiel #17
0
        public static SystemUser[] Get()
        {
            var result = CommonProcess.Execute(getentFileLocation, shadowArg).ToArray();
            var users  = new SystemUser[result.Length];

            for (var i = 0; i < result.Length; i++)
            {
                var currentLine     = result[i];
                var currentLineData = currentLine.Split(new[] { ':' }, StringSplitOptions.RemoveEmptyEntries);
                users[i] = new SystemUser()
                {
                    Active   = true,
                    Alias    = currentLineData[0],
                    Password = currentLineData[1]
                };
            }
            return(users);
        }
Beispiel #18
0
        /// <summary>
        /// Ottiene tutte le coppie Key-Value da Sysctl
        /// </summary>
        /// <returns></returns>
        public static SystemParameter[] GetAll()
        {
            var args   = CommonString.Append("--all");
            var result = CommonProcess.Execute(sysctlFileLocation).ToArray();
            var status = new SystemParameter[result.Length];

            for (var i = 0; i < result.Length; i++)
            {
                var currentLine     = result[i];
                var currentLineData = currentLine.Split(new[] { '=' }, StringSplitOptions.RemoveEmptyEntries);
                status[i] = new SystemParameter()
                {
                    Key   = GetKeyFilePath(currentLineData[0].Trim()),
                    Value = currentLineData[1].Trim()
                };
            }
            Array.Sort(status, (a, b) => (a.Key.CompareTo(b.Key)));
            return(status);
        }
Beispiel #19
0
        public static NetRoute[] Get()
        {
            var args   = CommonString.Append(route, " ", show);
            var result = CommonProcess.Execute(ipFileLocation, args).Where(_ => !_.Contains(protoKernel)).ToArray();
            var routes = new NetRoute[result.Length];

            for (var i = 0; i < result.Length; i++)
            {
                var currentLine     = result[i];
                var currentLineData = currentLine.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                routes[i] = new NetRoute()
                {
                    Default     = currentLine.Contains(@default) ? true : false,
                    Destination = currentLine.Contains(@default) ? @default : currentLineData[0],
                    Gateway     = Help.CaptureGroup(currentLine, "(via [0-9\\.]+)").Replace("via", "").Trim(),
                    Device      = Help.CaptureGroup(currentLine, "(dev [a-zA-Z0-9\\.]+)").Replace("dev", "").Trim()
                };
            }
            return(routes);
        }
Beispiel #20
0
        public static UptimeModel Get()
        {
            if (!File.Exists(uptimeFileLocation))
            {
                return(new UptimeModel());
            }
            if (!File.Exists(loadaverageFile))
            {
                return(new UptimeModel());
            }
            var result = CommonProcess.Execute(uptimeFileLocation, since).FirstOrDefault();
            var ldavg  = File.Exists(loadaverageFile) ? File.ReadAllText(loadaverageFile) : string.Empty;
            var uptime = new UptimeModel()
            {
                Uptime      = result,
                Users       = string.Empty,
                LoadAverage = ldavg.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)[0]
            };

            return(uptime);
        }
Beispiel #21
0
        public static FreeModel[] Get()
        {
            var result = CommonProcess.Execute(freeFileLocation, freeOptions).Skip(1).Where(_ => !string.IsNullOrEmpty(_)).ToArray();
            var free   = new FreeModel[result.Length];

            for (var i = 0; i < result.Length; i++)
            {
                var currentData = result[i].Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                free[i] = new FreeModel()
                {
                    Name      = currentData[0].Trim(':'),
                    Total     = currentData[1],
                    Used      = currentData[2],
                    Free      = currentData[3],
                    Shared    = currentData.Length > 4 ? currentData[4] : string.Empty,
                    BuffCache = currentData.Length > 5 ? currentData[5] : string.Empty,
                    Available = currentData.Length > 6 ? currentData[6] : string.Empty
                };
            }
            return(free);
        }
Beispiel #22
0
        public static Host Get()
        {
            var result = CommonProcess.Execute(hostnamectlFileLocation);

            if (result.Count() < 1)
            {
                return(new Host());
            }
            var host = new Host();

            host.HostName       = result.FirstOrDefault(_ => _.Contains("Static hostname:")).Split(new[] { ':' }).LastOrDefault().Trim();
            host.HostLocation   = result.FirstOrDefault(_ => _.Contains("Location:")).Split(new[] { ':' }).LastOrDefault().Trim();
            host.HostChassis    = result.FirstOrDefault(_ => _.Contains("Chassis:")).Split(new[] { ':' }).LastOrDefault().Trim();
            host.HostDeployment = result.FirstOrDefault(_ => _.Contains("Deployment:")).Split(new[] { ':' }).LastOrDefault().Trim();
            var machineIds = MachineIds.Get();

            host.PartNumber   = machineIds.PartNumber;
            host.SerialNumber = machineIds.SerialNumber;
            host.MachineUid   = machineIds.SerialNumber;
            return(host);
        }
Beispiel #23
0
        public static DiskUsageModel[] Get()
        {
            var result = CommonProcess.Execute(dfFileLocation, dfOptions).ToArray();
            var free   = new DiskUsageModel[result.Length];

            for (var i = 0; i < result.Length; i++)
            {
                var currentData = result[i].Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                free[i] = new DiskUsageModel()
                {
                    Filesystem    = currentData[0],
                    Type          = currentData[1],
                    Size          = currentData[2],
                    Used          = currentData[3],
                    Avail         = currentData[4],
                    UsePercentage = currentData[5],
                    MountedOn     = currentData[6]
                };
            }
            return(free);
        }
Beispiel #24
0
        public static LosetupModel[] Get()
        {
            var result = CommonProcess.Execute(losetupFileLocation, losetupOptions).Where(_ => !string.IsNullOrEmpty(_)).ToArray();
            var loetup = new LosetupModel[result.Length];

            for (var i = 0; i < result.Length; i++)
            {
                var currentData = result[i].Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                loetup[i] = new LosetupModel()
                {
                    Name      = currentData[0],
                    Sizelimit = currentData[1],
                    Offset    = currentData[2],
                    Autoclear = currentData[3],
                    Readonly  = currentData[4],
                    Backfile  = currentData[5],
                    Dio       = currentData[6]
                                //Hash = currentData[7]
                };
            }
            return(loetup);
        }
Beispiel #25
0
        public static VirshDomainModel[] GetDomains()
        {
            var result = CommonProcess.Execute(virshFileLocation, listArg).Skip(2).ToArray();

            if (result.Length - 1 <= 0)
            {
                return(new VirshDomainModel[0]);
            }
            var list = new VirshDomainModel[result.Length - 1];

            for (var i = 0; i < result.Length - 1; i++)
            {
                var currentLineData = result[i].Split(new[] { ' ', '\t' }, 3, StringSplitOptions.RemoveEmptyEntries);
                list[i] = new VirshDomainModel()
                {
                    Id    = currentLineData[0],
                    Name  = currentLineData[1],
                    State = currentLineData[2]
                };
            }
            return(list);
        }
Beispiel #26
0
 public static string Get()
 {
     return(CommonProcess.Execute(dateFileLocation).ToArray()[0]);
 }
Beispiel #27
0
        public static IEnumerable <string> TestConfiguration(string haproxyConfigurationFile)
        {
            var args = "-f " + haproxyConfigurationFile + " -c";

            return(CommonProcess.Execute(haproxyFileLocation, args));
        }
Beispiel #28
0
 public static string[] GetLog()
 {
     return(CommonProcess.Execute(journalctlFileLocation, journalctlOptions).ToArray());
 }
Beispiel #29
0
        public static string[] GetLastHours(int hours)
        {
            var args = CommonString.Append(journalctlOptions, " --since='", hours.ToString(), "h ago'");

            return(CommonProcess.Execute(journalctlFileLocation, args).ToArray());
        }
Beispiel #30
0
        public static string[] GetUnitLog(string unitName)
        {
            var args = CommonString.Append(journalctlOptions, " -u ", unitName);

            return(CommonProcess.Execute(journalctlFileLocation, args).ToArray());
        }