Exemple #1
0
 public DtoApiBoolResponse CreateDefaultBootMenu(DtoBootMenuGenOptions bootOptions)
 {
     return(new DtoApiBoolResponse()
     {
         Value = new DefaultBootMenu().Create(bootOptions)
     });
 }
        protected void CreateStandardMenu()
        {
            var listSettings = new List <EntitySetting>
            {
                new EntitySetting
                {
                    Name  = SettingStrings.IpxeRequiresLogin,
                    Value = chkIpxeLogin.Checked.ToString(),
                    Id    = Call.SettingApi.GetSetting(SettingStrings.IpxeRequiresLogin).Id
                }
            };

            Call.SettingApi.UpdatePxeSettings(listSettings);

            var defaultBootMenuOptions = new DtoBootMenuGenOptions();
            var pxeMode = GetSetting(SettingStrings.PxeBootloader);

            if (pxeMode.Contains("grub"))
            {
                defaultBootMenuOptions.GrubUserName = txtGrubUsername.Text;
                defaultBootMenuOptions.GrubPassword = txtGrubPassword.Text;
            }
            else
            {
                defaultBootMenuOptions.DebugPwd = consoleSha.Value;
                defaultBootMenuOptions.AddPwd   = addcomputerSha.Value;
                defaultBootMenuOptions.OndPwd   = ondsha.Value;
                defaultBootMenuOptions.DiagPwd  = diagsha.Value;
            }
            defaultBootMenuOptions.Kernel    = ddlComputerKernel.SelectedValue;
            defaultBootMenuOptions.BootImage = ddlComputerBootImage.SelectedValue;
            defaultBootMenuOptions.Type      = "standard";
            Call.SettingApi.CreateDefaultBootMenu(defaultBootMenuOptions);
        }
Exemple #3
0
 public DtoApiBoolResponse CreateDefaultBootMenu(DtoBootMenuGenOptions defaultMenuOptions)
 {
     return(new DtoApiBoolResponse()
     {
         Value = new DefaultBootMenu().RunAllServers(defaultMenuOptions)
     });
 }
Exemple #4
0
        public bool CreateDefaultBootMenu(DtoBootMenuGenOptions defaultMenuOptions)
        {
            Request.Method   = Method.POST;
            Request.Resource = string.Format("{0}/CreateDefaultBootMenu/", Resource);
            Request.AddJsonBody(defaultMenuOptions);
            var response = _apiRequest.Execute <DtoApiBoolResponse>(Request);

            return(response != null && response.Value);
        }
Exemple #5
0
        public bool RunAllServers(DtoBootMenuGenOptions defaultBootMenu)
        {
            _defaultBoot = defaultBootMenu;


            var uow        = new UnitOfWork();
            var comServers = uow.ClientComServerRepository.Get(x => x.IsTftpServer);

            var intercomKey  = ServiceSetting.GetSettingValue(SettingStrings.IntercomKeyEncrypted);
            var decryptedKey = new EncryptionServices().DecryptText(intercomKey);
            var NoErrors     = true;

            foreach (var com in comServers)
            {
                if (!new APICall().ClientComServerApi.CreateDefaultBootMenu(com.Url, "", decryptedKey, defaultBootMenu))
                {
                    NoErrors = false;
                }
            }

            return(NoErrors);
        }
        protected void CreateProxyMenu()
        {
            var listSettings = new List <EntitySetting>
            {
                new EntitySetting
                {
                    Name  = SettingStrings.IpxeRequiresLogin,
                    Value = chkIpxeProxy.Checked.ToString(),
                    Id    = Call.SettingApi.GetSetting(SettingStrings.IpxeRequiresLogin).Id
                }
            };

            Call.SettingApi.UpdatePxeSettings(listSettings);

            var defaultBootMenuOptions = new DtoBootMenuGenOptions()
            {
                DebugPwd     = consoleShaProxy.Value,
                AddPwd       = addcomputerShaProxy.Value,
                OndPwd       = ondshaProxy.Value,
                DiagPwd      = diagshaProxy.Value,
                GrubUserName = txtGrubProxyUsername.Text,
                GrubPassword = txtGrubProxyPassword.Text
            };

            defaultBootMenuOptions.BiosKernel    = ddlBiosKernel.SelectedValue;
            defaultBootMenuOptions.BiosBootImage = ddlBiosBootImage.SelectedValue;


            defaultBootMenuOptions.Efi32Kernel    = ddlEfi32Kernel.SelectedValue;
            defaultBootMenuOptions.Efi32BootImage = ddlEfi32BootImage.SelectedValue;

            defaultBootMenuOptions.Efi64Kernel    = ddlEfi64Kernel.SelectedValue;
            defaultBootMenuOptions.Efi64BootImage = ddlEfi64BootImage.SelectedValue;

            Call.SettingApi.CreateDefaultBootMenu(defaultBootMenuOptions);
        }
Exemple #7
0
        public bool Create(DtoBootMenuGenOptions bootOptions)
        {
            _defaultBoot = bootOptions;
            var mode = ServiceSetting.GetSettingValue(SettingStrings.PxeBootloader);

            var guid = ConfigurationManager.AppSettings["ComServerUniqueId"];

            _thisComServer = new ServiceClientComServer().GetServerByGuid(guid);
            if (_thisComServer == null)
            {
                log.Error($"Com Server With Guid {guid} Not Found");
                return(false);
            }

            if (string.IsNullOrEmpty(_thisComServer.TftpPath))
            {
                log.Error($"Com Server With Guid {guid} Does Not Have A Valid Tftp Path");
                return(false);
            }

            _bootEntryServices  = new ServiceCustomBootMenu();
            _globalComputerArgs = ServiceSetting.GetSettingValue(SettingStrings.GlobalImagingArguments);

            var defaultCluster        = new UnitOfWork().ComServerClusterRepository.Get(x => x.IsDefault).FirstOrDefault();
            var defaultImagingServers = new UnitOfWork().ComServerClusterServerRepository.GetImagingClusterServers(defaultCluster.Id);

            _webPath = "\"";

            //the global default menu doesn't really have a way of knowing which imaging server to connect to since it's not related to a computer /group with
            // the com server assigned.  Instead use this server if it's an imaging server, otherwise use the default cluster.
            if (_thisComServer.IsImagingServer)
            {
                _webPath += _thisComServer.Url + "clientimaging/ ";
            }
            else
            {
                foreach (var imageServer in defaultImagingServers)
                {
                    var url = new ServiceClientComServer().GetServer(imageServer.ComServerId).Url;
                    _webPath += url + "clientimaging/ "; //adds a space delimiter
                }
            }
            _webPath  = _webPath.Trim(' ');
            _webPath += "\"";

            var webRequiresLogin     = ServiceSetting.GetSettingValue(SettingStrings.WebTasksRequireLogin);
            var consoleRequiresLogin = ServiceSetting.GetSettingValue(SettingStrings.ConsoleTasksRequireLogin);
            var globalToken          = ServiceSetting.GetSettingValue(SettingStrings.GlobalImagingToken);

            if (webRequiresLogin.Equals("False") || consoleRequiresLogin.Equals("False"))
            {
                _userToken = globalToken;
            }
            else
            {
                _userToken = "";
            }

            if (_defaultBoot.Type == "standard")
            {
                if (mode.Contains("ipxe"))
                {
                    CreateIpxeMenu(defaultCluster.Id);
                }
                else if (mode.Contains("grub"))
                {
                    CreateGrubMenu();
                }
                else
                {
                    CreateSyslinuxMenu();
                }
            }
            else
            {
                foreach (var proxyMode in new[] { "bios", "efi32", "efi64" })
                {
                    bootOptions.Type = proxyMode;
                    if (proxyMode.Equals("bios"))
                    {
                        bootOptions.Kernel    = bootOptions.BiosKernel;
                        bootOptions.BootImage = bootOptions.BiosBootImage;
                    }
                    else if (proxyMode.Equals("efi32"))
                    {
                        bootOptions.Kernel    = bootOptions.Efi32Kernel;
                        bootOptions.BootImage = bootOptions.Efi32BootImage;
                    }
                    else
                    {
                        bootOptions.Kernel    = bootOptions.Efi64Kernel;
                        bootOptions.BootImage = bootOptions.Efi64BootImage;
                    }
                    CreateIpxeMenu(defaultCluster.Id);
                    CreateSyslinuxMenu();
                    CreateGrubMenu();
                }
            }

            return(true);
        }
Exemple #8
0
        public bool CreateDefaultBootMenu(string url, string serverName, string interComKey, DtoBootMenuGenOptions bootOptions)
        {
            Request.Method   = Method.POST;
            Request.Resource = "Imaging/CreateDefaultBootMenu";
            Request.AddJsonBody(bootOptions);
            var responseData = new ApiRequest(new Uri(url)).ExecuteHMACInterCom <DtoApiBoolResponse>(Request, serverName, interComKey);

            return(responseData != null && responseData.Value);
        }