public static bool SetTimezone(string timezone) { var args = CommonString.Append(setTimezoneArg, " ", timezone); CommonProcess.Do(timedatectlFileLocation, args); return(true); }
public static bool SetChassis(string chassis) { var args = CommonString.Append(setChassisArg, " ", chassis); CommonProcess.Do(hostnamectlFileLocation, args); return(true); }
public static bool SetLocation(string location) { var args = CommonString.Append(setLocationArg, " ", location); CommonProcess.Do(hostnamectlFileLocation, args); return(true); }
public static bool DeleteRoute(string networkAdapter, string gateway, string destinationAddress = "default") { var args = CommonString.Append("route del ", destinationAddress, " via ", gateway, " dev ", networkAdapter); CommonProcess.Do(ipFileLocation, args); return(true); }
public static bool DisableNetworkAdapter(string networkAdapter) { var args = CommonString.Append("link set ", networkAdapter, " down"); CommonProcess.Do(ipFileLocation, args); return(true); }
public static bool AddMultipathRoute(string networkAdapter, string secondNetworkAdapter) { var args = CommonString.Append("route add default scope global nexthop dev ", networkAdapter, " dev ", secondNetworkAdapter); CommonProcess.Do(ipFileLocation, args); return(true); }
public static bool AddNetworkAdapted(string networkAdapter, string type) { var args = CommonString.Append("link add name ", networkAdapter, " type ", type); CommonProcess.Do(ipFileLocation, args); return(true); }
public static void Stop() { var conf = Application.CurrentConfiguration.Network.WpaSupplicant; var serviceName = CommonString.Append("wpa_supplicant@", conf.Interface, ".service"); Systemctl.Stop(serviceName); }
public static bool Set() { var current = Application.CurrentConfiguration.Boot.Modules; for (var i = 0; i < current.Length; i++) { var currentModule = current[i]; if (currentModule.Blacklist) { Blacklist(currentModule.Module); continue; } if (currentModule.Remove) { Remove(currentModule.Module); continue; } if (currentModule.Active) { var moduleToLoad = CommonString.Append(currentModule.Module, " ", currentModule.Arguments); Add(moduleToLoad.Trim()); } } return(true); }
public static bool MakeLabel(string diskPath, string labelType) { var args = CommonString.Append(diskPath, " -a optimal mklabel ", labelType); CommonProcess.Do(partedLocation, args); return(true); }
public static void WriteFile(WpaSupplicant conf) { if (!Directory.Exists(wpasupplicantEtcFolder)) { return; } var lines = new string[] { "###### Global Configuration ######", "ctrl_interface=/var/run/wpa_supplicant", "ctrl_interface_group=wheel", "update_config=1", "fast_reauth=1", "ap_scan=1", "country=IT", "", "network={", " priority=1", $" ssid=\"{conf.Ssid}\"", " mode=0", " key_mgmt=WPA-PSK", $" psk=\"{conf.Password}\"", "}" }; var confFilePath = CommonString.Append(wpasupplicantEtcFolder, "/wpa_supplicant-", conf.Interface, ".conf"); File.WriteAllLines(confFilePath, lines); }
public static bool MakePartition(string diskPath, string partitionName, string partitionType, string partitionStart, string partitionEnd) { var args = CommonString.Append(diskPath, " -a optimal mkpart ", partitionName, " ", partitionType, " ", partitionStart, " ", partitionEnd); CommonProcess.Do(partedLocation, args); return(true); }
public static bool Sync(string source, string destination) { var args = CommonString.Append(optionaHA, source, " ", destination); CommonProcess.Do(rsyncFileLocation, args); return(true); }
/// <summary> /// Meccanismo di autenticazione centralizzato /// Prende i parametri id e password e li confronta coi dati di Application.CurrentConfiguration.Users.ApplicativeUsers /// Flusso: /// - ci sono utenti? /// - c'è l'utente richiesto? /// - l'utente trovato è abilitato a fare l'autenticazione? /// - il parametro password corrisponde? /// </summary> /// <param name="id">Parametro dell'utente, es: username</param> /// <param name="claims">Parametri dell'utente, es: hashing della password</param> /// <returns>Restituisce un HttpStatusCode, solo se l'autenticazione è andata a buon fine restituisce OK</returns> public static HttpStatusCode Authenticate(string id, string[] claims) { var current = Application.CurrentConfiguration.Users.ApplicativeUsers; if (!current.Any()) { return(HttpStatusCode.Unauthorized); } var method = current.FirstOrDefault(_ => CommonString.AreEquals(_.Id, id) == true); if (method == null) { return(HttpStatusCode.Unauthorized); } if (!method.Active) { return(HttpStatusCode.Unauthorized); } switch (method.Type) { case AuthenticationType.none: return(HttpStatusCode.Unauthorized); case AuthenticationType.simple: return(SimpleAuthentication(claims, method.Claims)); default: return(HttpStatusCode.Unauthorized); } }
public static bool SetNetworkAdapterTxqueuelen(string networkAdapter, string txqueuelenValue) { var args = CommonString.Append("link set dev ", networkAdapter, " txqueuelen ", txqueuelenValue); CommonProcess.Do(ipFileLocation, args); return(true); }
public override void DoJob() { if (Application.CurrentConfiguration.Cluster.Active == false) { return; } var clusterStatus = Application.ClusterChecklist; if (clusterStatus == null) { return; } if (clusterStatus.Length < 1) { return; } var nodesKnownHosts = new List <KnownHost>(); for (var i = 0; i < clusterStatus.Length; i++) { var nodeIPs = clusterStatus[i].DiscoveredIpsReach; var nodeName = clusterStatus[i].Hostname; var commonNames = new string[] { CommonString.Append(nodeName, "int", i.ToString()) }; for (var p = 0; p < nodeIPs.Length; p++) { var knownHost = new KnownHost() { IpAddr = nodeIPs[p].IpAddress, CommonNames = commonNames }; nodesKnownHosts.Add(knownHost); } } var currentKnownHosts = Application.CurrentConfiguration.Network.KnownHosts.ToList(); foreach (var nodeHost in nodesKnownHosts) { //i casi possono essere tre: // 1) l'ip non è presente nella CurrentConfiguration -> aggiungo il nuovo KnownHost // 2) l'ip è presente ma i CommonNames sono differenti -> aggiorno solamente i CommonNames del KnownHost corrispondente // 3) l'ip è presente e i CommonNames coincidono -> non faccio nulla if (!currentKnownHosts.Any(_ => CommonString.AreEquals(_.IpAddr, nodeHost.IpAddr) == true)) { currentKnownHosts.Add(nodeHost); } else { var existingCn = currentKnownHosts.FirstOrDefault(_ => CommonString.AreEquals(_.IpAddr, nodeHost.IpAddr) == true).CommonNames; if (CommonString.AreEquals(CommonString.Build(existingCn), CommonString.Build(nodeHost.CommonNames)) == false) { currentKnownHosts.FirstOrDefault(_ => CommonString.AreEquals(_.IpAddr, nodeHost.IpAddr) == true).CommonNames = nodeHost.CommonNames; } } } Application.CurrentConfiguration.Network.KnownHosts = currentKnownHosts.ToArray(); ConfigRepo.Save(); Dns.Set(); }
public static IEnumerable <string> GetNetworkAdapterRouting(string networkAdapter) { //todo map to model var args = CommonString.Append("route show ", networkAdapter); return(CommonProcess.Execute(ipFileLocation, args)); }
public static void ParsePayload(string topic, byte[] payload) { if (topic.StartsWith("/control")) { var controlData = topic.Split(new[] { "/" }, StringSplitOptions.RemoveEmptyEntries); if (controlData.Length != 4) { Console.WriteLine("Invalid topic"); return; } if (CommonString.AreEquals(Application.MACHINE_ID.MachineUid.ToString(), controlData[1]) == true && CommonString.AreEquals(Application.MACHINE_ID.PartNumber.ToString(), controlData[2]) == true && CommonString.AreEquals(Application.MACHINE_ID.SerialNumber.ToString(), controlData[3])) { Console.WriteLine(string.Join(" ", payload)); if (!COMMANDS.ContainsKey(payload)) { Console.WriteLine("Invalid command"); return; } Console.WriteLine("Executing command"); Console.WriteLine(COMMANDS[payload]); ExecuteCommand(COMMANDS[payload]); } } }
public static bool AddNat(string address, string secondAddress) { var args = CommonString.Append("route add nat ", address, " via ", secondAddress); CommonProcess.Do(ipFileLocation, args); return(true); }
private ClusterNodeChecklistModel NodeStatus(ClusterNode node) { //ConsoleLogger.Log($"[hb] check node {node.Hostname} {node.MachineUid}"); var status = new ClusterNodeChecklistModel(); status.TargetNodeMachineUid = node.MachineUid; status.Hostname = node.Hostname; //controllo l'IP pubblico status.KnownPublicIpReach = PingStatus(node.PublicIp); if (status.KnownPublicIpReach == 1) { //ConsoleLogger.Warn($"[hb] {node.Hostname} is unreachable at its known public ip"); return(status); } //controllo antd var serviceStatus = ApiConsumer.Post(CommonString.Append(node.EntryPoint, serviceStatusPath)); if (serviceStatus == Nancy.HttpStatusCode.OK) { status.ServiceReach = 0; } //controllo se ho già salvato delle informazioni var storedNodeIps = Application.ClusterChecklist?.FirstOrDefault(_ => _.TargetNodeMachineUid == node.MachineUid)?.DiscoveredIpsReach?.Select(_ => _.IpAddress) ?? new string[0]; //controllo gli IP scoperti var nodeIps = ApiConsumer.Get <string[]>(CommonString.Append(node.EntryPoint, networkAddressPath)) ?? new string[0]; nodeIps = storedNodeIps.Union(nodeIps).Where(_ => _ != localIp).ToArray(); var ipStatusList = new ClusterNodeIpStatusModel[nodeIps.Length]; for (var n = 0; n < nodeIps.Length; n++) { var ipStatus = new ClusterNodeIpStatusModel(); ipStatus.IpAddress = nodeIps[n]; ipStatus.Status = PingStatus(nodeIps[n]); ipStatusList[n] = ipStatus; } status.DiscoveredIpsReach = ipStatusList; var uptime = ApiConsumer.GetString(CommonString.Append(node.EntryPoint, appUptimePath)); status.ApplicationUptime = uptime; //controllo stato nodo var nodeChecklist = ApiConsumer.Get <MachineStatusChecklistModel>(CommonString.Append(node.EntryPoint, machineChecklistPath)) ?? new MachineStatusChecklistModel(); status.InternetReach = nodeChecklist.InternetReach; status.InternetDnsReach = nodeChecklist.InternetDnsReach; //controllo servizio: virsh var virshStatus = ApiConsumer.Get <VirshModel>(CommonString.Append(node.EntryPoint, virshStatusPath)) ?? new VirshModel(); status.VirshService = virshStatus; return(status); }
public static bool DeleteBroadcast(string networkAdapter, string address, string range, string broadcast) { var args = CommonString.Append("addr del ", address, "/", range, " broadcast ", broadcast, " dev ", networkAdapter); CommonProcess.Do(ipFileLocation, args); return(true); }
public static bool AddAddress(string networkAdapter, string address, string range) { var args = CommonString.Append("addr add ", address, "/", range, " dev ", networkAdapter); CommonProcess.Do(ipFileLocation, args); return(true); }
public static bool DeleteNetworkAdapted(string networkAdapter) { var args = CommonString.Append("link del ", networkAdapter); CommonProcess.Do(ipFileLocation, args); return(true); }
public static bool FlushNetworkAdapter(string networkAdapter) { var args = CommonString.Append("addr flush dev ", networkAdapter); CommonProcess.Do(ipFileLocation, args); return(true); }
public static bool Apply() { var current = Application.CurrentConfiguration.Host; var running = Application.RunningConfiguration.Host; if (CommonString.AreEquals(current.HostName, running.HostName) == false) { ConsoleLogger.Log($"[host] name: {current.HostName}"); SetHostname(current.HostName); } if (CommonString.AreEquals(current.HostDeployment, running.HostDeployment) == false) { ConsoleLogger.Log($"[host] deployment: {current.HostDeployment}"); SetDeployment(current.HostDeployment); } if (CommonString.AreEquals(current.HostChassis, running.HostChassis) == false) { ConsoleLogger.Log($"[host] chassis: {current.HostChassis}"); SetChassis(current.HostChassis); } if (CommonString.AreEquals(current.HostLocation, running.HostLocation) == false) { ConsoleLogger.Log($"[host] location: {current.HostLocation}"); SetLocation(current.HostLocation); } return(true); }
public static bool SetNetworkAdapterPromiscOff(string networkAdapter) { var args = CommonString.Append("link set dev ", networkAdapter, " promisc off"); CommonProcess.Do(ipFileLocation, args); return(true); }
public static bool SetDeployment(string deployment) { var args = CommonString.Append(setDeploymentArg, " ", deployment); CommonProcess.Do(hostnamectlFileLocation, args); return(true); }
public static bool SetNetworkAdapterMTU(string networkAdapter, string mtuValue) { var args = CommonString.Append("link set dev ", networkAdapter, " mtu ", mtuValue); CommonProcess.Do(ipFileLocation, args); return(true); }
public static bool DeleteNetworkAdapter(string bondName, string networkAdapter) { var args = CommonString.Append("-d ", bondName, " ", networkAdapter); CommonProcess.Do(ifenslaveFileLocation, args); return(true); }
public static bool Restore(string domain) { var args = CommonString.Append(restoreArg, " ", domain); CommonProcess.Do(virshFileLocation, args); return(true); }