protected void OkButton_Click(object sender, EventArgs e) { Unicast unicast = new Unicast(); int hostID = Convert.ToInt32((string)(Session["hostID"])); Session.Remove("hostID"); string direction = (string)(Session["direction"]); Session.Remove("direction"); if (direction == "push") { Image image = new Image(); unicast = unicast.Read(hostID, unicast); string imageID = image.GetImageID(unicast.ImageName); Session["imageID"] = imageID; if (image.Check_Checksum(imageID)) { unicast.CreateUnicast(direction, hostID); } else { lblIncorrectChecksum.Text = "This Image Has Not Been Confirmed And Cannot Be Deployed. <br>Confirm It Now?"; ClientScript.RegisterStartupScript(this.GetType(), "modalscript", "$(function() { var menuTop = document.getElementById('incorrectChecksum'),body = document.body;classie.toggle(menuTop, 'confirm-box-outer-open'); });", true); } } else { unicast.CreateUnicast(direction, hostID); } Master.Msgbox(Utility.Message); }
//Делегат принимает адрес функции, вызываем ее; static void Main(string[] args) { Program program = new Program(); Unicast one_for_all = program.Input; one_for_all(); }
static void Main(string[] args) { Program program = new Program(); Unicast inputInfo = program.Input; inputInfo(); }
public string Create(Unicast unicast) { try { using (NpgsqlConnection conn = new NpgsqlConnection(Utility.DBString)) { NpgsqlCommand cmd = new NpgsqlCommand("unicast_create", conn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(new NpgsqlParameter("@taskName", unicast.HostName)); conn.Open(); string result = cmd.ExecuteScalar() as string; if (result != "0") { Utility.Message += "Successfully Started Task " + unicast.HostName + "<br>"; } else { Utility.Message += "This Host Is Already Part Of An Active Task <br>"; } return(result); } } catch (Exception ex) { Utility.Message += "Could Not Create Unicast. Check The Exception Log For More Info <br>"; Logger.Log(ex.ToString()); return("0"); } }
/// <summary> /// Starts a <see cref="ServiceHost" /> for each found service. Defaults to <see cref="BasicHttpBinding" /> if /// no user specified binding is found /// </summary> public void Startup(Unicast.UnicastBus bus) { Bus = bus; var conventions = bus.Builder.Build<Conventions>(); var components = bus.Builder.Build<IConfigureComponents>(); foreach (var serviceType in bus.Settings.GetAvailableTypes().Where(t => !t.IsAbstract && IsWcfService(t, conventions))) { var host = new WcfServiceHost(serviceType); Binding binding = new BasicHttpBinding(); if (components.HasComponent<Binding>()) { binding = bus.Builder.Build<Binding>(); } host.AddDefaultEndpoint(GetContractType(serviceType), binding , String.Empty); hosts.Add(host); logger.Debug("Going to host the WCF service: " + serviceType.AssemblyQualifiedName); host.Open(); } }
protected void btnConfirm_Click(object sender, EventArgs e) { if ((string)Session["direction"] == "delete") { Session.Remove("direction"); List <int> delList = new List <int>(); delList.Add(Convert.ToInt32(group.ID)); group.Delete(delList); if (Utility.Message.Contains("Successfully")) { Response.Redirect("~/views/groups/search.aspx"); } else { Master.Msgbox(Utility.Message); } } else { Image imageInfo = new Image(); imageInfo.ID = imageInfo.GetImageID(group.Image); Session["imageID"] = imageInfo.ID; if (imageInfo.Check_Checksum(imageInfo.ID)) { int isUnicast = Convert.ToInt32(Session["isGroupUnicast"]); if (isUnicast == 1) { Unicast unicast = new Unicast(); List <int> listHostID = new List <int>(); listHostID = unicast.UnicastFromGroup(Convert.ToInt32(group.ID)); for (int z = 0; z < listHostID.Count; z++) { unicast.CreateUnicast("push", listHostID[z]); } Utility.Message = "Started " + listHostID.Count + " Tasks"; History history = new History(); history.Event = "Unicast"; history.Type = "Group"; history.TypeID = group.ID; history.CreateEvent(history); } else { Multicast multicast = new Multicast(); multicast.CreateMulticast(Convert.ToInt32(group.ID)); } Session.Remove("isGroupUnicast"); Master.Msgbox(Utility.Message); } else { lblIncorrectChecksum.Text = "This Image Has Not Been Confirmed And Cannot Be Deployed. <br>Confirm It Now?"; ClientScript.RegisterStartupScript(this.GetType(), "modalscript", "$(function() { var menuTop = document.getElementById('incorrectChecksum'),body = document.body;classie.toggle(menuTop, 'confirm-box-outer-open'); });", true); } } }
protected void btnDeploy_Click(object sender, EventArgs e) { Unicast unicast = new Unicast(); Session["direction"] = "push"; lblTitle.Text = "Deploy The Selected Host?"; gvConfirm.DataSource = unicast.Confirm(host.ID); gvConfirm.DataBind(); ClientScript.RegisterStartupScript(this.GetType(), "modalscript", "$(function() { var menuTop = document.getElementById('confirmbox'),body = document.body;classie.toggle(menuTop, 'confirm-box-outer-open'); });", true); }
public void CreateUnicast(string direction, int hostID) { Task task = new Task(); Unicast unicast = new Unicast(); unicast = unicast.Read(hostID, unicast); if (unicast.HostName != null) { if (unicast.ImageName != null) { string taskID = unicast.Create(unicast); if (taskID != "0") { if (CreatePxeBoot(unicast, direction, "false", taskID, hostID)) { History history = new History(); history.Type = "Host"; history.Notes = unicast.HostMac; history.TypeID = hostID.ToString(); if (direction == "push") { history.Event = "Deploy"; } else { history.Event = "Upload"; } history.CreateEvent(history); Image image = new Image(); history.Type = "Image"; history.Notes = unicast.HostName; history.TypeID = image.GetImageID(unicast.ImageName); if (direction == "push") { history.Event = "Deploy"; } else { history.Event = "Upload"; } history.CreateEvent(history); task.WakeUp(unicast.HostMac); } else { unicast.Rollback(unicast); } } } } }
protected void btnUpload_Click(object sender, EventArgs e) { Unicast unicast = new Unicast(); GridViewRow gvRow = (GridViewRow)(sender as Control).Parent.Parent; string hostID = gvHosts.DataKeys[gvRow.RowIndex].Value.ToString(); Session["hostID"] = hostID; Session["direction"] = "pull"; lblTitle.Text = "Upload The Selected Host?"; gvConfirm.DataSource = unicast.Confirm(hostID); gvConfirm.DataBind(); ClientScript.RegisterStartupScript(this.GetType(), "modalscript", "$(function() { var menuTop = document.getElementById('confirmbox'),body = document.body;classie.toggle(menuTop, 'confirm-box-outer-open'); });;", true); }
protected void btnConfirm_Click(object sender, EventArgs e) { if ((string)Session["direction"] == "delete") { Session.Remove("direction"); List<int> delList = new List<int>(); delList.Add(Convert.ToInt32(group.ID)); group.Delete(delList); if (Utility.Message.Contains("Successfully")) Response.Redirect("~/views/groups/search.aspx"); else Master.Msgbox(Utility.Message); } else { Image imageInfo = new Image(); imageInfo.ID = imageInfo.GetImageID(group.Image); Session["imageID"] = imageInfo.ID; if (imageInfo.Check_Checksum(imageInfo.ID)) { int isUnicast = Convert.ToInt32(Session["isGroupUnicast"]); if (isUnicast == 1) { Unicast unicast = new Unicast(); List<int> listHostID = new List<int>(); listHostID = unicast.UnicastFromGroup(Convert.ToInt32(group.ID)); for (int z = 0; z < listHostID.Count; z++) unicast.CreateUnicast("push", listHostID[z]); Utility.Message = "Started " + listHostID.Count + " Tasks"; History history = new History(); history.Event = "Unicast"; history.Type = "Group"; history.TypeID = group.ID; history.CreateEvent(history); } else { Multicast multicast = new Multicast(); multicast.CreateMulticast(Convert.ToInt32(group.ID)); } Session.Remove("isGroupUnicast"); Master.Msgbox(Utility.Message); } else { lblIncorrectChecksum.Text = "This Image Has Not Been Confirmed And Cannot Be Deployed. <br>Confirm It Now?"; ClientScript.RegisterStartupScript(this.GetType(), "modalscript", "$(function() { var menuTop = document.getElementById('incorrectChecksum'),body = document.body;classie.toggle(menuTop, 'confirm-box-outer-open'); });", true); } } }
void ChangeInfo1.Change_Info() { Console.Write("\nВведите новое название журнала: "); NewJournal = Console.ReadLine(); Console.Write("Введите новое название книги: "); NewBook = Console.ReadLine(); Console.Write("Введите новое название печатного издания: "); NewPrintEdition = Console.ReadLine(); Console.Write("Введите новое название учебника: "); NewTextbook = Console.ReadLine(); Program program = new Program(NewJournal, NewBook, NewPrintEdition, NewTextbook); Unicast inputInfo = program.Input; inputInfo(); }
//Вводим новые данные и при помощи конструктора класса Program записываем их в свойства, вызываем функцию Input класса Program; void IReWrite.Re_Write() { Console.Write("\nВведите новый номер квартиры: "); New_Flat = Convert.ToInt32(Console.ReadLine()); Console.Write("Введите номер дома: "); New_House = Convert.ToInt32(Console.ReadLine()); Console.Write("Введите улицу: "); New_Street = Console.ReadLine(); Console.Write("Введите город: "); New_City = Console.ReadLine(); Program program = new Program(New_Flat, New_House, New_Street, New_City); Unicast one_for_all = program.Input; one_for_all(); }
void IChangeInfo.Change_Info() { Console.Write("\nВведите новое название завода: "); New_Plant = Console.ReadLine(); Console.Write("Введите новое название организации: "); New_Organization = Console.ReadLine(); Console.Write("Введите новое название cтраховой компании: "); New_InsuranceCompany = Console.ReadLine(); Console.Write("Введите новое название нефтегазовой компании: "); New_OilGasCompany = Console.ReadLine(); Program program = new Program(New_Plant, New_Organization, New_InsuranceCompany, New_OilGasCompany); Unicast inputInfo = program.Input; inputInfo(); }
protected override void Send(Unicast.Transport.TransportMessage message, Address errorQueue) { var failedQ = TransportMessageHelpers.GetReplyToAddress(message); var sat = Configure.Instance.Builder.Build<SecondLevelRetries>(); if (failedQ == sat.InputAddress) { Logger.InfoFormat("The message was sent from the SecondLevelRetries satellite. Sending the message direct to the error queue!"); base.Send(message, sat.ErrorQueue); return; } base.Send(message, errorQueue); }
protected void OkButton_Click(object sender, EventArgs e) { string direction = (string)(Session["direction"]); Session.Remove("direction"); if (direction == "delete") { List <int> delList = new List <int>(); delList.Add(Convert.ToInt32(host.ID)); host.Delete(delList); if (Utility.Message.Contains("Successfully")) { Response.Redirect("~/views/hosts/search.aspx"); } else { Master.Msgbox(Utility.Message); } } else if (direction == "push") { Unicast unicast = new Unicast(); Image image = new Image(); unicast = unicast.Read(Convert.ToInt32(host.ID), unicast); string imageID = image.GetImageID(unicast.ImageName); Session["imageID"] = imageID; if (image.Check_Checksum(imageID)) { unicast.CreateUnicast(direction, Convert.ToInt32(host.ID)); Master.Msgbox(Utility.Message); } else { lblIncorrectChecksum.Text = "This Image Has Not Been Confirmed And Cannot Be Deployed. <br>Confirm It Now?"; ClientScript.RegisterStartupScript(this.GetType(), "modalscript", "$(function() { var menuTop = document.getElementById('incorrectChecksum'),body = document.body;classie.toggle(menuTop, 'confirm-box-outer-open'); });", true); } } else { Unicast unicast = new Unicast(); unicast.CreateUnicast(direction, Convert.ToInt32(host.ID)); Master.Msgbox(Utility.Message); } }
protected void btnConfirm_Click(object sender, EventArgs e) { int groupID = Convert.ToInt32((string)(Session["groupID"])); int isUnicast = Convert.ToInt32(Session["isGroupUnicast"]); Group groupInfo = new Group(); groupInfo.ID = groupID.ToString(); groupInfo.Read(groupInfo); Image imageInfo = new Image(); imageInfo.ID = imageInfo.GetImageID(groupInfo.Image); Session["imageID"] = imageInfo.ID; if (imageInfo.Check_Checksum(imageInfo.ID)) { if (isUnicast == 1) { Unicast unicast = new Unicast(); List <int> listHostID = new List <int>(); listHostID = unicast.UnicastFromGroup(groupID); for (int z = 0; z < listHostID.Count; z++) { unicast.CreateUnicast("push", listHostID[z]); } Utility.Message = "Started " + listHostID.Count + " Tasks"; } else { Multicast multicast = new Multicast(); multicast.CreateMulticast(groupID); } Session.Remove("groupID"); Session.Remove("isGroupUnicast"); Master.Msgbox(Utility.Message); } else { lblIncorrectChecksum.Text = "This Image Has Not Been Confirmed And Cannot Be Deployed. <br>Confirm It Now?"; ClientScript.RegisterStartupScript(this.GetType(), "modalscript", "$(function() { var menuTop = document.getElementById('incorrectChecksum'),body = document.body;classie.toggle(menuTop, 'confirm-box-outer-open'); });", true); } }
protected void btnConfirm_Click(object sender, EventArgs e) { int groupID = Convert.ToInt32((string)(Session["groupID"])); int isUnicast = Convert.ToInt32(Session["isGroupUnicast"]); Group groupInfo = new Group(); groupInfo.ID = groupID.ToString(); groupInfo.Read(groupInfo); Image imageInfo = new Image(); imageInfo.ID = imageInfo.GetImageID(groupInfo.Image); Session["imageID"] = imageInfo.ID; if (imageInfo.Check_Checksum(imageInfo.ID)) { if (isUnicast == 1) { Unicast unicast = new Unicast(); List<int> listHostID = new List<int>(); listHostID = unicast.UnicastFromGroup(groupID); for (int z = 0; z < listHostID.Count; z++) unicast.CreateUnicast("push", listHostID[z]); Utility.Message = "Started " + listHostID.Count + " Tasks"; } else { Multicast multicast = new Multicast(); multicast.CreateMulticast(groupID); } Session.Remove("groupID"); Session.Remove("isGroupUnicast"); Master.Msgbox(Utility.Message); } else { lblIncorrectChecksum.Text = "This Image Has Not Been Confirmed And Cannot Be Deployed. <br>Confirm It Now?"; ClientScript.RegisterStartupScript(this.GetType(), "modalscript", "$(function() { var menuTop = document.getElementById('incorrectChecksum'),body = document.body;classie.toggle(menuTop, 'confirm-box-outer-open'); });", true); } }
public Unicast Read(int hostID, Unicast unicast) { try { using (NpgsqlConnection conn = new NpgsqlConnection(Utility.DBString)) { NpgsqlDataReader rdr = null; NpgsqlCommand cmd = new NpgsqlCommand("unicast_read", conn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(new NpgsqlParameter("@hostID", hostID)); conn.Open(); rdr = cmd.ExecuteReader(); while (rdr.Read()) { unicast.ImageName = (string)rdr["_imagename"]; unicast.ImageOS = (string)rdr["_imageos"]; unicast.HostName = (string)rdr["_hostname"]; unicast.HostKernel = (string)rdr["_hostkernel"]; unicast.HostBootImage = (string)rdr["_hostbootimage"]; unicast.HostArguments = (string)rdr["_hostarguments"]; unicast.HostMac = (string)rdr["_hostmac"]; unicast.HostScripts = rdr["_hostscripts"].ToString(); } } } catch (Exception ex) { Utility.Message = "Could Not Read Unicast Info. Check The Exception Log For More Info"; Logger.Log(ex.ToString()); } if (unicast.ImageName == null) { Utility.Message = "The Image No Longer Exists"; } return(unicast); }
public bool CreatePxeBoot(Unicast unicast, string direction, string isMulticast, string taskID, int hostID) { Utility settings = new Utility(); Task task = new Task(); string pxeHostMac = task.MacToPXE(unicast.HostMac); string proxyDHCP = settings.GetSettings("Proxy Dhcp"); string biosFile = settings.GetSettings("Proxy Bios File"); string efi32File = settings.GetSettings("Proxy Efi32 File"); string efi64File = settings.GetSettings("Proxy Efi64 File"); string biosPath = null; string efi32Path = null; string efi64Path = null; string biosPathipxe = null; string efi32Pathipxe = null; string efi64Pathipxe = null; string path = null; string[] lines = null; string wds_key = null; if (settings.GetSettings("Server Key Mode") == "Automated") wds_key = settings.GetSettings("Server Key"); else wds_key = ""; string mode = settings.GetSettings("PXE Mode"); if (proxyDHCP == "Yes") { biosPathipxe = settings.GetSettings("Tftp Path") + "proxy" + Path.DirectorySeparatorChar + "bios" + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac + ".ipxe"; string[] biosLinesipxe = {@"#!ipxe", @"kernel " + "http://"+ settings.GetServerIP() +"/cruciblewds/data/boot/kernels/" + unicast.HostKernel + ".krn" + " initrd=" + unicast.HostBootImage + " root=/dev/ram0 rw ramdisk_size=127000 ip=dhcp imgDirection=" + direction + " consoleblank=0" + " web=" + settings.GetSettings("Web Path") + " WDS_KEY=" + wds_key + " " + settings.GetSettings("Global Host Args") + " " + unicast.HostArguments, @"imgfetch " + "http://"+ settings.GetServerIP() +"/cruciblewds/data/boot/images/" + unicast.HostBootImage , @"boot"}; biosPath = settings.GetSettings("Tftp Path") + "proxy" + Path.DirectorySeparatorChar + "bios" + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac; string[] biosLines = { @"DEFAULT cruciblewds", @"LABEL cruciblewds", @"KERNEL kernels" + Path.DirectorySeparatorChar + unicast.HostKernel , @"APPEND initrd=images" + Path.DirectorySeparatorChar + unicast.HostBootImage + " root=/dev/ram0 rw ramdisk_size=127000 ip=dhcp imgDirection=" + direction + " consoleblank=0" + " web=" + settings.GetSettings("Web Path") + " WDS_KEY=" + wds_key + " " + settings.GetSettings("Global Host Args") + " " + unicast.HostArguments}; efi32Pathipxe = settings.GetSettings("Tftp Path") + "proxy" + Path.DirectorySeparatorChar + "efi32" + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac + ".ipxe"; string[] efi32Linesipxe = {@"#!ipxe", @"kernel " + "http://"+ settings.GetServerIP() +"/cruciblewds/data/boot/kernels/" + unicast.HostKernel + ".krn" + " initrd=" + unicast.HostBootImage + " root=/dev/ram0 rw ramdisk_size=127000 ip=dhcp imgDirection=" + direction + " consoleblank=0" + " web=" + settings.GetSettings("Web Path") + " WDS_KEY=" + wds_key + " " + settings.GetSettings("Global Host Args") + " " + unicast.HostArguments, @"imgfetch " + "http://"+ settings.GetServerIP() +"/cruciblewds/data/boot/images/" + unicast.HostBootImage , @"boot"}; efi32Path = settings.GetSettings("Tftp Path") + "proxy" + Path.DirectorySeparatorChar + "efi32" + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac; string[] efi32Lines = { @"DEFAULT cruciblewds", @"LABEL cruciblewds", @"KERNEL kernels" + Path.DirectorySeparatorChar + unicast.HostKernel , @"APPEND initrd=images" + Path.DirectorySeparatorChar + unicast.HostBootImage + " root=/dev/ram0 rw ramdisk_size=127000 ip=dhcp imgDirection=" + direction + " consoleblank=0" + " web=" + settings.GetSettings("Web Path") + " WDS_KEY=" + wds_key + " " + settings.GetSettings("Global Host Args") + " " + unicast.HostArguments}; efi64Pathipxe = settings.GetSettings("Tftp Path") + "proxy" + Path.DirectorySeparatorChar + "efi64" + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac + ".ipxe"; string[] efi64Linesipxe = {@"#!ipxe", @"kernel " + "http://"+ settings.GetServerIP() +"/cruciblewds/data/boot/kernels/" + unicast.HostKernel + ".krn" + " initrd=" + unicast.HostBootImage + " root=/dev/ram0 rw ramdisk_size=127000 ip=dhcp imgDirection=" + direction + " consoleblank=0" + " web=" + settings.GetSettings("Web Path") + " WDS_KEY=" + wds_key + " " + settings.GetSettings("Global Host Args") + " " + unicast.HostArguments, @"imgfetch " + "http://"+ settings.GetServerIP() +"/cruciblewds/data/boot/images/" + unicast.HostBootImage , @"boot"}; efi64Path = settings.GetSettings("Tftp Path") + "proxy" + Path.DirectorySeparatorChar + "efi64" + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac; string[] efi64Lines = { @"DEFAULT cruciblewds", @"LABEL cruciblewds", @"KERNEL kernels" + Path.DirectorySeparatorChar + unicast.HostKernel , @"APPEND initrd=images" + Path.DirectorySeparatorChar + unicast.HostBootImage + " root=/dev/ram0 rw ramdisk_size=127000 ip=dhcp imgDirection=" + direction + " consoleblank=0" + " web=" + settings.GetSettings("Web Path") + " WDS_KEY=" + wds_key + " " + settings.GetSettings("Global Host Args") + " " + unicast.HostArguments}; if (File.Exists(biosPath)) { Host hostFunction = new Host(); if (hostFunction.IsCustomBootEnabled(Task.PXEMacToMac(pxeHostMac))) { Utility.MoveFile(biosPath, biosPath + ".custom"); } else { Utility.Message = "The PXE File Already Exists"; return false; } } if (File.Exists(biosPathipxe)) { Host hostFunction = new Host(); if (hostFunction.IsCustomBootEnabled(Task.PXEMacToMac(pxeHostMac))) { Utility.MoveFile(settings.GetSettings("Tftp Path") + "proxy" + Path.DirectorySeparatorChar + "bios" + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac + ".ipxe", settings.GetSettings("Tftp Path") + "proxy" + Path.DirectorySeparatorChar + "bios" + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac + ".ipxe.custom"); } else { Utility.Message = "The PXE File Already Exists"; return false; } } if (File.Exists(efi32Path)) { Host hostFunction = new Host(); if (hostFunction.IsCustomBootEnabled(Task.PXEMacToMac(pxeHostMac))) { Utility.MoveFile(efi32Path, efi32Path + ".custom"); } else { Utility.Message = "The PXE File Already Exists"; return false; } } if (File.Exists(efi32Pathipxe)) { Host hostFunction = new Host(); if (hostFunction.IsCustomBootEnabled(Task.PXEMacToMac(pxeHostMac))) { Utility.MoveFile(settings.GetSettings("Tftp Path") + "proxy" + Path.DirectorySeparatorChar + "efi32" + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac + ".ipxe", settings.GetSettings("Tftp Path") + "proxy" + Path.DirectorySeparatorChar + "efi32" + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac + ".ipxe.custom"); } else { Utility.Message = "The PXE File Already Exists"; return false; } } if (File.Exists(efi64Path)) { Host hostFunction = new Host(); if (hostFunction.IsCustomBootEnabled(Task.PXEMacToMac(pxeHostMac))) { Utility.MoveFile(efi64Path, efi64Path + ".custom"); } else { Utility.Message = "The PXE File Already Exists"; return false; } } if (File.Exists(efi64Pathipxe)) { Host hostFunction = new Host(); if (hostFunction.IsCustomBootEnabled(Task.PXEMacToMac(pxeHostMac))) { Utility.MoveFile(settings.GetSettings("Tftp Path") + "proxy" + Path.DirectorySeparatorChar + "efi64" + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac + ".ipxe", settings.GetSettings("Tftp Path") + "proxy" + Path.DirectorySeparatorChar + "efi64" + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac + ".ipxe.custom"); } else { Utility.Message = "The PXE File Already Exists"; return false; } } try { System.IO.File.WriteAllLines(biosPath, biosLines); if (Environment.OSVersion.ToString().Contains("Unix")) Syscall.chmod(biosPath, (FilePermissions.S_IWUSR | FilePermissions.S_IRGRP | FilePermissions.S_IROTH | FilePermissions.S_IRUSR)); System.IO.File.WriteAllLines(efi32Path, efi32Lines); if (Environment.OSVersion.ToString().Contains("Unix")) Syscall.chmod(efi32Path, (FilePermissions.S_IWUSR | FilePermissions.S_IRGRP | FilePermissions.S_IROTH | FilePermissions.S_IRUSR)); System.IO.File.WriteAllLines(efi64Path, efi64Lines); if (Environment.OSVersion.ToString().Contains("Unix")) Syscall.chmod(efi64Path, (FilePermissions.S_IWUSR | FilePermissions.S_IRGRP | FilePermissions.S_IROTH | FilePermissions.S_IRUSR)); System.IO.File.WriteAllLines(biosPathipxe, biosLinesipxe); if (Environment.OSVersion.ToString().Contains("Unix")) Syscall.chmod(biosPathipxe, (FilePermissions.S_IWUSR | FilePermissions.S_IRGRP | FilePermissions.S_IROTH | FilePermissions.S_IRUSR)); System.IO.File.WriteAllLines(efi32Pathipxe, efi32Linesipxe); if (Environment.OSVersion.ToString().Contains("Unix")) Syscall.chmod(efi32Pathipxe, (FilePermissions.S_IWUSR | FilePermissions.S_IRGRP | FilePermissions.S_IROTH | FilePermissions.S_IRUSR)); System.IO.File.WriteAllLines(efi64Pathipxe, efi64Linesipxe); if (Environment.OSVersion.ToString().Contains("Unix")) Syscall.chmod(efi64Pathipxe, (FilePermissions.S_IWUSR | FilePermissions.S_IRGRP | FilePermissions.S_IROTH | FilePermissions.S_IRUSR)); } catch (Exception ex) { Logger.Log(ex.ToString()); Utility.Message = "Could Not Create PXE File"; return false; } } else { if (mode == "pxelinux" || mode == "syslinux_32_efi" || mode == "syslinux_64_efi") { path = settings.GetSettings("Tftp Path") + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac; string[] tmplines = { @"DEFAULT cruciblewds", @"LABEL cruciblewds", @"KERNEL " + "kernels" + Path.DirectorySeparatorChar + unicast.HostKernel , @"APPEND initrd=" + "images" + Path.DirectorySeparatorChar + unicast.HostBootImage + " root=/dev/ram0 rw ramdisk_size=127000 ip=dhcp imgDirection=" + direction + " consoleblank=0" + " web=" + settings.GetSettings("Web Path") + " WDS_KEY=" + wds_key + " " + settings.GetSettings("Global Host Args") + " " + unicast.HostArguments}; lines = tmplines; } else if (mode.Contains("ipxe")) { path = settings.GetSettings("Tftp Path") + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac + ".ipxe"; string[] tmplines = {@"#!ipxe", @"kernel " + "http://"+ settings.GetServerIP() +"/cruciblewds/data/boot/kernels/" + unicast.HostKernel + ".krn" + " initrd=" + unicast.HostBootImage + " root=/dev/ram0 rw ramdisk_size=127000 ip=dhcp imgDirection=" + direction + " consoleblank=0" + " web=" + settings.GetSettings("Web Path") + " WDS_KEY=" + wds_key + " " + settings.GetSettings("Global Host Args") + " " + unicast.HostArguments, @"imgfetch " + "http://"+ settings.GetServerIP() +"/cruciblewds/data/boot/images/" + unicast.HostBootImage , @"boot"}; lines = tmplines; } else { Utility.Message = "PXE Mode Is Not Set Correctly"; return false; } if (File.Exists(path)) { Host hostFunction = new Host(); if (hostFunction.IsCustomBootEnabled(Task.PXEMacToMac(pxeHostMac))) { if (mode.Contains("ipxe")) Utility.MoveFile(settings.GetSettings("Tftp Path") + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac + ".ipxe", settings.GetSettings("Tftp Path") + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac + ".ipxe.custom"); else Utility.MoveFile(settings.GetSettings("Tftp Path") + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac, settings.GetSettings("Tftp Path") + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac + ".custom"); } else { Utility.Message = "The PXE File Already Exists"; return false; } } try { System.IO.File.WriteAllLines(path, lines); if (Environment.OSVersion.ToString().Contains("Unix")) { Syscall.chmod(path, (FilePermissions.S_IWUSR | FilePermissions.S_IRGRP | FilePermissions.S_IROTH | FilePermissions.S_IRUSR)); } } catch (Exception ex) { Logger.Log(ex.ToString()); Utility.Message = "Could Not Create PXE File"; return false; } } try { string storagePath = null; string xferMode = settings.GetSettings("Image Transfer Mode"); if (xferMode == "smb" || xferMode == "smb+http") storagePath = "SMB Path"; else { if (direction == "pull") storagePath = "Nfs Upload Path"; else storagePath = "Nfs Deploy Path"; } string hostArgs = "imgName=" + unicast.ImageName + " storage=" + settings.GetSettings(storagePath) + " hostID=" + hostID + " imgOS=" + unicast.ImageOS + " multicast=" + isMulticast + " hostScripts=" + unicast.HostScripts + " xferMode=" + xferMode + " serverIP=" + settings.GetSettings("Server IP") + " hostName=" + unicast.HostName + " compAlg=" + settings.GetSettings("Compression Algorithm") + " compLevel=-" + settings.GetSettings("Compression Level"); if(direction == "pull" && xferMode == "udp+http") { int portBase = task.GetPort(); hostArgs = hostArgs + " portBase=" + portBase; } if (task.CreateTaskArgs(hostArgs,taskID)) return true; else return false; } catch (Exception ex) { Logger.Log(ex.ToString()); Utility.Message = "Could Not Create PXE File"; return false; } }
public void Rollback(Unicast unicast) { try { using (NpgsqlConnection conn = new NpgsqlConnection(Utility.DBString)) { NpgsqlCommand cmd = new NpgsqlCommand("unicast_rollback", conn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(new NpgsqlParameter("@taskName", unicast.HostName)); conn.Open(); cmd.ExecuteNonQuery(); } } catch (Exception ex) { Logger.Log(ex.ToString()); } Utility settings = new Utility(); Task task = new Task(); string pxeHostMac = task.MacToPXE(unicast.HostMac); Host hostFunction = new Host(); if (hostFunction.IsCustomBootEnabled(Task.PXEMacToMac(pxeHostMac))) { string mode = settings.GetSettings("PXE Mode"); string proxyDHCP = settings.GetSettings("Proxy Dhcp"); if (proxyDHCP == "Yes") { try { Utility.MoveFile(settings.GetSettings("Tftp Path") + "proxy" + Path.DirectorySeparatorChar + "bios" + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac + ".ipxe.custom", settings.GetSettings("Tftp Path") + "proxy" + Path.DirectorySeparatorChar + "bios" + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac + ".ipxe"); } catch { } try { Utility.MoveFile(settings.GetSettings("Tftp Path") + "proxy" + Path.DirectorySeparatorChar + "bios" + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac + ".custom", settings.GetSettings("Tftp Path") + "proxy" + Path.DirectorySeparatorChar + "bios" + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac); } catch { } try { Utility.MoveFile(settings.GetSettings("Tftp Path") + "proxy" + Path.DirectorySeparatorChar + "efi32" + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac + ".ipxe.custom", settings.GetSettings("Tftp Path") + "proxy" + Path.DirectorySeparatorChar + "efi32" + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac + ".ipxe"); } catch { } try { Utility.MoveFile(settings.GetSettings("Tftp Path") + "proxy" + Path.DirectorySeparatorChar + "efi32" + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac + ".custom", settings.GetSettings("Tftp Path") + "proxy" + Path.DirectorySeparatorChar + "efi32" + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac); } catch { } try { Utility.MoveFile(settings.GetSettings("Tftp Path") + "proxy" + Path.DirectorySeparatorChar + "efi64" + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac + ".ipxe.custom", settings.GetSettings("Tftp Path") + "proxy" + Path.DirectorySeparatorChar + "efi64" + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac + ".ipxe"); } catch { } try { Utility.MoveFile(settings.GetSettings("Tftp Path") + "proxy" + Path.DirectorySeparatorChar + "efi64" + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac + ".custom", settings.GetSettings("Tftp Path") + "proxy" + Path.DirectorySeparatorChar + "efi64" + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac); } catch { } } else { try { Utility.MoveFile(settings.GetSettings("Tftp Path") + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac + ".ipxe.custom", settings.GetSettings("Tftp Path") + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac + ".ipxe"); } catch { } try { Utility.MoveFile(settings.GetSettings("Tftp Path") + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac + ".custom", settings.GetSettings("Tftp Path") + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac); } catch { } } } }
public void CreateUnicast(string direction, int hostID) { Task task = new Task(); Unicast unicast = new Unicast(); unicast = unicast.Read(hostID, unicast); if (unicast.HostName != null) { if (unicast.ImageName != null) { string taskID = unicast.Create(unicast); if (taskID != "0") { if (CreatePxeBoot(unicast, direction, "false", taskID, hostID)) { History history = new History(); history.Type = "Host"; history.Notes = unicast.HostMac; history.TypeID = hostID.ToString(); if (direction == "push") history.Event = "Deploy"; else history.Event = "Upload"; history.CreateEvent(history); Image image = new Image(); history.Type = "Image"; history.Notes = unicast.HostName; history.TypeID = image.GetImageID(unicast.ImageName); if (direction == "push") history.Event = "Deploy"; else history.Event = "Upload"; history.CreateEvent(history); task.WakeUp(unicast.HostMac); } else unicast.Rollback(unicast); } } } }
public bool CreatePxeBoot(Unicast unicast, string direction, string isMulticast, string taskID, int hostID) { Utility settings = new Utility(); Task task = new Task(); string pxeHostMac = task.MacToPXE(unicast.HostMac); string proxyDHCP = settings.GetSettings("Proxy Dhcp"); string biosFile = settings.GetSettings("Proxy Bios File"); string efi32File = settings.GetSettings("Proxy Efi32 File"); string efi64File = settings.GetSettings("Proxy Efi64 File"); string biosPath = null; string efi32Path = null; string efi64Path = null; string biosPathipxe = null; string efi32Pathipxe = null; string efi64Pathipxe = null; string path = null; string[] lines = null; string wds_key = null; if (settings.GetSettings("Server Key Mode") == "Automated") { wds_key = settings.GetSettings("Server Key"); } else { wds_key = ""; } string mode = settings.GetSettings("PXE Mode"); if (proxyDHCP == "Yes") { biosPathipxe = settings.GetSettings("Tftp Path") + "proxy" + Path.DirectorySeparatorChar + "bios" + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac + ".ipxe"; string[] biosLinesipxe = { @"#!ipxe", @"kernel " + "http://" + settings.GetServerIP() + "/cruciblewds/data/boot/kernels/" + unicast.HostKernel + ".krn" + " initrd=" + unicast.HostBootImage + " root=/dev/ram0 rw ramdisk_size=127000 ip=dhcp imgDirection=" + direction + " consoleblank=0" + " web=" + settings.GetSettings("Web Path") + " WDS_KEY=" + wds_key + " " + settings.GetSettings("Global Host Args") + " " + unicast.HostArguments, @"imgfetch " + "http://" + settings.GetServerIP() + "/cruciblewds/data/boot/images/" + unicast.HostBootImage, @"boot" }; biosPath = settings.GetSettings("Tftp Path") + "proxy" + Path.DirectorySeparatorChar + "bios" + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac; string[] biosLines = { @"DEFAULT cruciblewds", @"LABEL cruciblewds", @"KERNEL kernels" + Path.DirectorySeparatorChar + unicast.HostKernel, @"APPEND initrd=images" + Path.DirectorySeparatorChar + unicast.HostBootImage + " root=/dev/ram0 rw ramdisk_size=127000 ip=dhcp imgDirection=" + direction + " consoleblank=0" + " web=" + settings.GetSettings("Web Path") + " WDS_KEY=" + wds_key + " " + settings.GetSettings("Global Host Args") + " " + unicast.HostArguments }; efi32Pathipxe = settings.GetSettings("Tftp Path") + "proxy" + Path.DirectorySeparatorChar + "efi32" + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac + ".ipxe"; string[] efi32Linesipxe = { @"#!ipxe", @"kernel " + "http://" + settings.GetServerIP() + "/cruciblewds/data/boot/kernels/" + unicast.HostKernel + ".krn" + " initrd=" + unicast.HostBootImage + " root=/dev/ram0 rw ramdisk_size=127000 ip=dhcp imgDirection=" + direction + " consoleblank=0" + " web=" + settings.GetSettings("Web Path") + " WDS_KEY=" + wds_key + " " + settings.GetSettings("Global Host Args") + " " + unicast.HostArguments, @"imgfetch " + "http://" + settings.GetServerIP() + "/cruciblewds/data/boot/images/" + unicast.HostBootImage, @"boot" }; efi32Path = settings.GetSettings("Tftp Path") + "proxy" + Path.DirectorySeparatorChar + "efi32" + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac; string[] efi32Lines = { @"DEFAULT cruciblewds", @"LABEL cruciblewds", @"KERNEL kernels" + Path.DirectorySeparatorChar + unicast.HostKernel, @"APPEND initrd=images" + Path.DirectorySeparatorChar + unicast.HostBootImage + " root=/dev/ram0 rw ramdisk_size=127000 ip=dhcp imgDirection=" + direction + " consoleblank=0" + " web=" + settings.GetSettings("Web Path") + " WDS_KEY=" + wds_key + " " + settings.GetSettings("Global Host Args") + " " + unicast.HostArguments }; efi64Pathipxe = settings.GetSettings("Tftp Path") + "proxy" + Path.DirectorySeparatorChar + "efi64" + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac + ".ipxe"; string[] efi64Linesipxe = { @"#!ipxe", @"kernel " + "http://" + settings.GetServerIP() + "/cruciblewds/data/boot/kernels/" + unicast.HostKernel + ".krn" + " initrd=" + unicast.HostBootImage + " root=/dev/ram0 rw ramdisk_size=127000 ip=dhcp imgDirection=" + direction + " consoleblank=0" + " web=" + settings.GetSettings("Web Path") + " WDS_KEY=" + wds_key + " " + settings.GetSettings("Global Host Args") + " " + unicast.HostArguments, @"imgfetch " + "http://" + settings.GetServerIP() + "/cruciblewds/data/boot/images/" + unicast.HostBootImage, @"boot" }; efi64Path = settings.GetSettings("Tftp Path") + "proxy" + Path.DirectorySeparatorChar + "efi64" + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac; string[] efi64Lines = { @"DEFAULT cruciblewds", @"LABEL cruciblewds", @"KERNEL kernels" + Path.DirectorySeparatorChar + unicast.HostKernel, @"APPEND initrd=images" + Path.DirectorySeparatorChar + unicast.HostBootImage + " root=/dev/ram0 rw ramdisk_size=127000 ip=dhcp imgDirection=" + direction + " consoleblank=0" + " web=" + settings.GetSettings("Web Path") + " WDS_KEY=" + wds_key + " " + settings.GetSettings("Global Host Args") + " " + unicast.HostArguments }; if (File.Exists(biosPath)) { Host hostFunction = new Host(); if (hostFunction.IsCustomBootEnabled(Task.PXEMacToMac(pxeHostMac))) { Utility.MoveFile(biosPath, biosPath + ".custom"); } else { Utility.Message = "The PXE File Already Exists"; return(false); } } if (File.Exists(biosPathipxe)) { Host hostFunction = new Host(); if (hostFunction.IsCustomBootEnabled(Task.PXEMacToMac(pxeHostMac))) { Utility.MoveFile(settings.GetSettings("Tftp Path") + "proxy" + Path.DirectorySeparatorChar + "bios" + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac + ".ipxe", settings.GetSettings("Tftp Path") + "proxy" + Path.DirectorySeparatorChar + "bios" + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac + ".ipxe.custom"); } else { Utility.Message = "The PXE File Already Exists"; return(false); } } if (File.Exists(efi32Path)) { Host hostFunction = new Host(); if (hostFunction.IsCustomBootEnabled(Task.PXEMacToMac(pxeHostMac))) { Utility.MoveFile(efi32Path, efi32Path + ".custom"); } else { Utility.Message = "The PXE File Already Exists"; return(false); } } if (File.Exists(efi32Pathipxe)) { Host hostFunction = new Host(); if (hostFunction.IsCustomBootEnabled(Task.PXEMacToMac(pxeHostMac))) { Utility.MoveFile(settings.GetSettings("Tftp Path") + "proxy" + Path.DirectorySeparatorChar + "efi32" + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac + ".ipxe", settings.GetSettings("Tftp Path") + "proxy" + Path.DirectorySeparatorChar + "efi32" + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac + ".ipxe.custom"); } else { Utility.Message = "The PXE File Already Exists"; return(false); } } if (File.Exists(efi64Path)) { Host hostFunction = new Host(); if (hostFunction.IsCustomBootEnabled(Task.PXEMacToMac(pxeHostMac))) { Utility.MoveFile(efi64Path, efi64Path + ".custom"); } else { Utility.Message = "The PXE File Already Exists"; return(false); } } if (File.Exists(efi64Pathipxe)) { Host hostFunction = new Host(); if (hostFunction.IsCustomBootEnabled(Task.PXEMacToMac(pxeHostMac))) { Utility.MoveFile(settings.GetSettings("Tftp Path") + "proxy" + Path.DirectorySeparatorChar + "efi64" + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac + ".ipxe", settings.GetSettings("Tftp Path") + "proxy" + Path.DirectorySeparatorChar + "efi64" + Path.DirectorySeparatorChar + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac + ".ipxe.custom"); } else { Utility.Message = "The PXE File Already Exists"; return(false); } } try { System.IO.File.WriteAllLines(biosPath, biosLines); if (Environment.OSVersion.ToString().Contains("Unix")) { Syscall.chmod(biosPath, (FilePermissions.S_IWUSR | FilePermissions.S_IRGRP | FilePermissions.S_IROTH | FilePermissions.S_IRUSR)); } System.IO.File.WriteAllLines(efi32Path, efi32Lines); if (Environment.OSVersion.ToString().Contains("Unix")) { Syscall.chmod(efi32Path, (FilePermissions.S_IWUSR | FilePermissions.S_IRGRP | FilePermissions.S_IROTH | FilePermissions.S_IRUSR)); } System.IO.File.WriteAllLines(efi64Path, efi64Lines); if (Environment.OSVersion.ToString().Contains("Unix")) { Syscall.chmod(efi64Path, (FilePermissions.S_IWUSR | FilePermissions.S_IRGRP | FilePermissions.S_IROTH | FilePermissions.S_IRUSR)); } System.IO.File.WriteAllLines(biosPathipxe, biosLinesipxe); if (Environment.OSVersion.ToString().Contains("Unix")) { Syscall.chmod(biosPathipxe, (FilePermissions.S_IWUSR | FilePermissions.S_IRGRP | FilePermissions.S_IROTH | FilePermissions.S_IRUSR)); } System.IO.File.WriteAllLines(efi32Pathipxe, efi32Linesipxe); if (Environment.OSVersion.ToString().Contains("Unix")) { Syscall.chmod(efi32Pathipxe, (FilePermissions.S_IWUSR | FilePermissions.S_IRGRP | FilePermissions.S_IROTH | FilePermissions.S_IRUSR)); } System.IO.File.WriteAllLines(efi64Pathipxe, efi64Linesipxe); if (Environment.OSVersion.ToString().Contains("Unix")) { Syscall.chmod(efi64Pathipxe, (FilePermissions.S_IWUSR | FilePermissions.S_IRGRP | FilePermissions.S_IROTH | FilePermissions.S_IRUSR)); } } catch (Exception ex) { Logger.Log(ex.ToString()); Utility.Message = "Could Not Create PXE File"; return(false); } } else { if (mode == "pxelinux" || mode == "syslinux_32_efi" || mode == "syslinux_64_efi") { path = settings.GetSettings("Tftp Path") + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac; string[] tmplines = { @"DEFAULT cruciblewds", @"LABEL cruciblewds", @"KERNEL " + "kernels" + Path.DirectorySeparatorChar + unicast.HostKernel, @"APPEND initrd=" + "images" + Path.DirectorySeparatorChar + unicast.HostBootImage + " root=/dev/ram0 rw ramdisk_size=127000 ip=dhcp imgDirection=" + direction + " consoleblank=0" + " web=" + settings.GetSettings("Web Path") + " WDS_KEY=" + wds_key + " " + settings.GetSettings("Global Host Args") + " " + unicast.HostArguments }; lines = tmplines; } else if (mode.Contains("ipxe")) { path = settings.GetSettings("Tftp Path") + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac + ".ipxe"; string[] tmplines = { @"#!ipxe", @"kernel " + "http://" + settings.GetServerIP() + "/cruciblewds/data/boot/kernels/" + unicast.HostKernel + ".krn" + " initrd=" + unicast.HostBootImage + " root=/dev/ram0 rw ramdisk_size=127000 ip=dhcp imgDirection=" + direction + " consoleblank=0" + " web=" + settings.GetSettings("Web Path") + " WDS_KEY=" + wds_key + " " + settings.GetSettings("Global Host Args") + " " + unicast.HostArguments, @"imgfetch " + "http://" + settings.GetServerIP() + "/cruciblewds/data/boot/images/" + unicast.HostBootImage, @"boot" }; lines = tmplines; } else { Utility.Message = "PXE Mode Is Not Set Correctly"; return(false); } if (File.Exists(path)) { Host hostFunction = new Host(); if (hostFunction.IsCustomBootEnabled(Task.PXEMacToMac(pxeHostMac))) { if (mode.Contains("ipxe")) { Utility.MoveFile(settings.GetSettings("Tftp Path") + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac + ".ipxe", settings.GetSettings("Tftp Path") + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac + ".ipxe.custom"); } else { Utility.MoveFile(settings.GetSettings("Tftp Path") + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac, settings.GetSettings("Tftp Path") + "pxelinux.cfg" + Path.DirectorySeparatorChar + pxeHostMac + ".custom"); } } else { Utility.Message = "The PXE File Already Exists"; return(false); } } try { System.IO.File.WriteAllLines(path, lines); if (Environment.OSVersion.ToString().Contains("Unix")) { Syscall.chmod(path, (FilePermissions.S_IWUSR | FilePermissions.S_IRGRP | FilePermissions.S_IROTH | FilePermissions.S_IRUSR)); } } catch (Exception ex) { Logger.Log(ex.ToString()); Utility.Message = "Could Not Create PXE File"; return(false); } } try { string storagePath = null; string xferMode = settings.GetSettings("Image Transfer Mode"); if (xferMode == "smb" || xferMode == "smb+http") { storagePath = "SMB Path"; } else { if (direction == "pull") { storagePath = "Nfs Upload Path"; } else { storagePath = "Nfs Deploy Path"; } } string hostArgs = "imgName=" + unicast.ImageName + " storage=" + settings.GetSettings(storagePath) + " hostID=" + hostID + " imgOS=" + unicast.ImageOS + " multicast=" + isMulticast + " hostScripts=" + unicast.HostScripts + " xferMode=" + xferMode + " serverIP=" + settings.GetSettings("Server IP") + " hostName=" + unicast.HostName + " compAlg=" + settings.GetSettings("Compression Algorithm") + " compLevel=-" + settings.GetSettings("Compression Level"); if (direction == "pull" && xferMode == "udp+http") { int portBase = task.GetPort(); hostArgs = hostArgs + " portBase=" + portBase; } if (task.CreateTaskArgs(hostArgs, taskID)) { return(true); } else { return(false); } } catch (Exception ex) { Logger.Log(ex.ToString()); Utility.Message = "Could Not Create PXE File"; return(false); } }
protected void OkButton_Click(object sender, EventArgs e) { string direction = (string)(Session["direction"]); Session.Remove("direction"); if (direction == "delete") { List<int> delList = new List<int>(); delList.Add(Convert.ToInt32(host.ID)); host.Delete(delList); if (Utility.Message.Contains("Successfully")) Response.Redirect("~/views/hosts/search.aspx"); else Master.Msgbox(Utility.Message); } else if (direction == "push") { Unicast unicast = new Unicast(); Image image = new Image(); unicast = unicast.Read(Convert.ToInt32(host.ID), unicast); string imageID = image.GetImageID(unicast.ImageName); Session["imageID"] = imageID; if (image.Check_Checksum(imageID)) { unicast.CreateUnicast(direction, Convert.ToInt32(host.ID)); Master.Msgbox(Utility.Message); } else { lblIncorrectChecksum.Text = "This Image Has Not Been Confirmed And Cannot Be Deployed. <br>Confirm It Now?"; ClientScript.RegisterStartupScript(this.GetType(), "modalscript", "$(function() { var menuTop = document.getElementById('incorrectChecksum'),body = document.body;classie.toggle(menuTop, 'confirm-box-outer-open'); });", true); } } else { Unicast unicast = new Unicast(); unicast.CreateUnicast(direction, Convert.ToInt32(host.ID)); Master.Msgbox(Utility.Message); } }
static void More_1(IReWrite write) { Unicast one_for_all = write.Re_Write; one_for_all(); }
public string Create(Unicast unicast) { try { using (NpgsqlConnection conn = new NpgsqlConnection(Utility.DBString)) { NpgsqlCommand cmd = new NpgsqlCommand("unicast_create", conn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(new NpgsqlParameter("@taskName", unicast.HostName)); conn.Open(); string result = cmd.ExecuteScalar() as string; if (result != "0") Utility.Message += "Successfully Started Task " + unicast.HostName + "<br>"; else Utility.Message += "This Host Is Already Part Of An Active Task <br>"; return result; } } catch (Exception ex) { Utility.Message += "Could Not Create Unicast. Check The Exception Log For More Info <br>"; Logger.Log(ex.ToString()); return "0"; } }
protected void btnUpload_Click(object sender, EventArgs e) { Unicast unicast = new Unicast(); Session["direction"] = "pull"; lblTitle.Text = "Upload The Selected Host?"; gvConfirm.DataSource = unicast.Confirm(host.ID); gvConfirm.DataBind(); ClientScript.RegisterStartupScript(this.GetType(), "modalscript", "$(function() { var menuTop = document.getElementById('confirmbox'),body = document.body;classie.toggle(menuTop, 'confirm-box-outer-open'); });;", true); }
void Publish(Guid id, IMessage msg) => Client.Publish(Unicast.Of(id), msg);
public void Init(Address address, Unicast.Transport.TransactionSettings transactionSettings, Func<TransportMessage, bool> tryProcessMessage, Action<TransportMessage, Exception> endProcessMessage) { }
public Unicast Read(int hostID, Unicast unicast) { try { using (NpgsqlConnection conn = new NpgsqlConnection(Utility.DBString)) { NpgsqlDataReader rdr = null; NpgsqlCommand cmd = new NpgsqlCommand("unicast_read", conn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(new NpgsqlParameter("@hostID", hostID)); conn.Open(); rdr = cmd.ExecuteReader(); while (rdr.Read()) { unicast.ImageName = (string)rdr["_imagename"]; unicast.ImageOS = (string)rdr["_imageos"]; unicast.HostName = (string)rdr["_hostname"]; unicast.HostKernel = (string)rdr["_hostkernel"]; unicast.HostBootImage = (string)rdr["_hostbootimage"]; unicast.HostArguments = (string)rdr["_hostarguments"]; unicast.HostMac = (string)rdr["_hostmac"]; unicast.HostScripts = rdr["_hostscripts"].ToString(); } } } catch (Exception ex) { Utility.Message = "Could Not Read Unicast Info. Check The Exception Log For More Info"; Logger.Log(ex.ToString()); } if(unicast.ImageName == null) Utility.Message = "The Image No Longer Exists"; return unicast; }
protected void OkButton_Click(object sender, EventArgs e) { Unicast unicast = new Unicast(); int hostID = Convert.ToInt32((string)(Session["hostID"])); Session.Remove("hostID"); string direction = (string)(Session["direction"]); Session.Remove("direction"); if(direction == "push") { Image image = new Image(); unicast = unicast.Read(hostID,unicast); string imageID = image.GetImageID(unicast.ImageName); Session["imageID"] = imageID; if (image.Check_Checksum(imageID)) unicast.CreateUnicast(direction, hostID); else { lblIncorrectChecksum.Text = "This Image Has Not Been Confirmed And Cannot Be Deployed. <br>Confirm It Now?"; ClientScript.RegisterStartupScript(this.GetType(), "modalscript", "$(function() { var menuTop = document.getElementById('incorrectChecksum'),body = document.body;classie.toggle(menuTop, 'confirm-box-outer-open'); });", true); } } else unicast.CreateUnicast(direction, hostID); Master.Msgbox(Utility.Message); }
static void Write_1(IChangeInfo write) { Unicast writeInfo = write.Change_Info; writeInfo(); }
public void TestUnicast() { TestSomething(Unicast.Of(Guid.NewGuid())); }