public static void CreateBootFiles(Models.Computer computer)
{
if (BLL.ActiveImagingTask.IsComputerActive(computer.Id)) return; //Files Will Be Processed When task is done
var bootMenu = GetComputerBootMenu(computer.Id);
if (bootMenu == null) return;
var pxeMac = Utility.MacToPxeMac(computer.Mac);
string path;
if (Settings.ProxyDhcp == "Yes")
{
List<Tuple<string, string, string>> 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)
};
foreach (var tuple in list)
{
path = Settings.TftpPath + "proxy" + Path.DirectorySeparatorChar + tuple.Item1 +
Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeMac +
tuple.Item2;
if(!string.IsNullOrEmpty(tuple.Item3))
new FileOps().WritePath(path, tuple.Item3);
}
}
else
{
var mode = Settings.PxeMode;
path = Settings.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 FileOps().WritePath(path, bootMenu.BiosMenu);
}
}