public void DeleteBootFiles(ComputerEntity computer) { if (new ComputerServices().IsComputerActive(computer.Id)) { return; //Files Will Be Processed When task is done } var pxeMac = StringManipulationServices.MacToPxeMac(computer.Mac); var list = new List <Tuple <string, string> > { Tuple.Create("bios", ""), Tuple.Create("bios", ".ipxe"), Tuple.Create("efi32", ""), Tuple.Create("efi32", ".ipxe"), Tuple.Create("efi64", ""), Tuple.Create("efi64", ".ipxe"), Tuple.Create("efi64", ".cfg") }; foreach (var tuple in list) { new FileOpsServices().DeletePath(SettingServices.GetSettingValue(SettingStrings.TftpPath) + "proxy" + Path.DirectorySeparatorChar + tuple.Item1 + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeMac + tuple.Item2); } foreach (var ext in new[] { "", ".ipxe", ".cfg" }) { new FileOpsServices().DeletePath(SettingServices.GetSettingValue(SettingStrings.TftpPath) + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeMac + ext); } }
public string GetComputerNonProxyPath(int computerId, bool isActiveOrCustom) { var computer = GetComputer(computerId); var mode = SettingServices.GetSettingValue(SettingStrings.PxeMode); var pxeComputerMac = StringManipulationServices.MacToPxeMac(computer.Mac); string path; var fileName = isActiveOrCustom ? pxeComputerMac : "default"; if (mode.Contains("ipxe")) { path = SettingServices.GetSettingValue(SettingStrings.TftpPath) + "pxelinux.cfg" + Path.DirectorySeparatorChar + fileName + ".ipxe"; } else if (mode.Contains("grub")) { if (isActiveOrCustom) { path = SettingServices.GetSettingValue(SettingStrings.TftpPath) + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeComputerMac + ".cfg"; } else { path = SettingServices.GetSettingValue(SettingStrings.TftpPath) + "grub" + Path.DirectorySeparatorChar + "grub.cfg"; } } else { path = SettingServices.GetSettingValue(SettingStrings.TftpPath) + "pxelinux.cfg" + Path.DirectorySeparatorChar + fileName; } return(path); }
public string GetComputerProxyPath(int computerId, bool isActiveOrCustom, string proxyType) { var computer = GetComputer(computerId); var pxeComputerMac = StringManipulationServices.MacToPxeMac(computer.Mac); string path = null; var biosFile = SettingServices.GetSettingValue(SettingStrings.ProxyBiosFile); var efi32File = SettingServices.GetSettingValue(SettingStrings.ProxyEfi32File); var efi64File = SettingServices.GetSettingValue(SettingStrings.ProxyEfi64File); var fileName = isActiveOrCustom ? pxeComputerMac : "default"; switch (proxyType) { case "bios": if (biosFile.Contains("ipxe")) { path = SettingServices.GetSettingValue(SettingStrings.TftpPath) + "proxy" + Path.DirectorySeparatorChar + proxyType + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + fileName + ".ipxe"; } else { path = SettingServices.GetSettingValue(SettingStrings.TftpPath) + "proxy" + Path.DirectorySeparatorChar + proxyType + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + fileName; } break; case "efi32": if (efi32File.Contains("ipxe")) { path = SettingServices.GetSettingValue(SettingStrings.TftpPath) + "proxy" + Path.DirectorySeparatorChar + proxyType + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + fileName + ".ipxe"; } else { path = SettingServices.GetSettingValue(SettingStrings.TftpPath) + "proxy" + Path.DirectorySeparatorChar + proxyType + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + fileName; } break; case "efi64": if (efi64File.Contains("ipxe")) { path = SettingServices.GetSettingValue(SettingStrings.TftpPath) + "proxy" + Path.DirectorySeparatorChar + proxyType + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + fileName + ".ipxe"; } else if (efi64File.Contains("grub")) { if (isActiveOrCustom) { path = SettingServices.GetSettingValue(SettingStrings.TftpPath) + "proxy" + Path.DirectorySeparatorChar + proxyType + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeComputerMac + ".cfg"; } else { path = SettingServices.GetSettingValue(SettingStrings.TftpPath) + "grub" + Path.DirectorySeparatorChar + "grub.cfg"; } } else { path = SettingServices.GetSettingValue(SettingStrings.TftpPath) + "proxy" + Path.DirectorySeparatorChar + proxyType + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + fileName; } break; } return(path); }
public bool CreateBootFiles(int id) { var computer = GetComputer(id); if (new ComputerServices().IsComputerActive(computer.Id)) { return(false); //Files Will Be Processed When task is done } var bootMenu = new ComputerServices().GetComputerBootMenu(computer.Id); if (bootMenu == null) { return(false); } var pxeMac = StringManipulationServices.MacToPxeMac(computer.Mac); string path; if (SettingServices.GetSettingValue(SettingStrings.ProxyDhcp) == "Yes") { var list = new List <Tuple <string, string, string> > { Tuple.Create("bios", "", bootMenu.BiosMenu), Tuple.Create("bios", ".ipxe", bootMenu.BiosMenu), Tuple.Create("efi32", "", bootMenu.Efi32Menu), Tuple.Create("efi32", ".ipxe", bootMenu.Efi32Menu), Tuple.Create("efi64", "", bootMenu.Efi64Menu), Tuple.Create("efi64", ".ipxe", bootMenu.Efi64Menu), Tuple.Create("efi64", ".cfg", bootMenu.Efi64Menu) }; if (SettingServices.ServerIsNotClustered) { foreach (var tuple in list) { path = SettingServices.GetSettingValue(SettingStrings.TftpPath) + "proxy" + Path.DirectorySeparatorChar + tuple.Item1 + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeMac + tuple.Item2; if (!string.IsNullOrEmpty(tuple.Item3)) { new FileOpsServices().WritePath(path, tuple.Item3); } } } else { if (SettingServices.TftpServerRole) { foreach (var tuple in list) { path = SettingServices.GetSettingValue(SettingStrings.TftpPath) + "proxy" + Path.DirectorySeparatorChar + tuple.Item1 + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeMac + tuple.Item2; if (!string.IsNullOrEmpty(tuple.Item3)) { new FileOpsServices().WritePath(path, tuple.Item3); } } } var secondaryServers = new SecondaryServerServices().SearchSecondaryServers().Where(x => x.TftpRole == 1 && x.IsActive == 1); foreach (var server in secondaryServers) { var tftpPath = new APICall(new SecondaryServerServices().GetToken(server.Name)) .SettingApi.GetSetting("Tftp Path").Value; foreach (var tuple in list) { path = tftpPath + "proxy" + Path.DirectorySeparatorChar + tuple.Item1 + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeMac + tuple.Item2; new APICall(new SecondaryServerServices().GetToken(server.Name)) .ServiceAccountApi.WriteTftpFile(new TftpFileDTO { Path = path, Contents = tuple.Item3 }); } } } } else { var mode = SettingServices.GetSettingValue(SettingStrings.PxeMode); path = SettingServices.GetSettingValue(SettingStrings.TftpPath) + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeMac; if (SettingServices.ServerIsNotClustered) { if (mode.Contains("ipxe")) { path += ".ipxe"; } else if (mode.Contains("grub")) { path += ".cfg"; } if (!string.IsNullOrEmpty(bootMenu.BiosMenu)) { new FileOpsServices().WritePath(path, bootMenu.BiosMenu); } } else { if (SettingServices.TftpServerRole) { path = SettingServices.GetSettingValue(SettingStrings.TftpPath) + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeMac; if (mode.Contains("ipxe")) { path += ".ipxe"; } else if (mode.Contains("grub")) { path += ".cfg"; } if (!string.IsNullOrEmpty(bootMenu.BiosMenu)) { new FileOpsServices().WritePath(path, bootMenu.BiosMenu); } } var secondaryServers = new SecondaryServerServices().SearchSecondaryServers().Where(x => x.TftpRole == 1 && x.IsActive == 1); foreach (var server in secondaryServers) { var tftpPath = new APICall(new SecondaryServerServices().GetToken(server.Name)) .SettingApi.GetSetting("Tftp Path").Value; path = tftpPath + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeMac; if (mode.Contains("ipxe")) { path += ".ipxe"; } else if (mode.Contains("grub")) { path += ".cfg"; } new APICall(new SecondaryServerServices().GetToken(server.Name)) .ServiceAccountApi.WriteTftpFile(new TftpFileDTO { Path = path, Contents = bootMenu.BiosMenu }); } } } return(true); }