private ConDepOptions GetOptions(CmdBaseParser <ConDepOptions> parser, CmdBaseValidator <ConDepOptions> validator) { var options = parser.Parse(); validator.Validate(options); var configAssemblyLoader = new ConDepAssemblyHandler(options.AssemblyName); options.Assembly = configAssemblyLoader.GetAssembly(); return(options); }
public ILoadBalance GetLoadBalancer() { if (_loadBalancerSettings != null) { if (!string.IsNullOrWhiteSpace(_loadBalancerSettings.Provider)) { var assemblyHandler = new ConDepAssemblyHandler(_loadBalancerSettings.Provider); var assembly = assemblyHandler.GetAssembly(); var type = assembly.GetTypes().Where(t => typeof(ILoadBalance).IsAssignableFrom(t)).FirstOrDefault(); var loadBalancer = Activator.CreateInstance(type, _loadBalancerSettings) as ILoadBalance; loadBalancer.Mode = _loadBalancerSettings.ModeAsEnum; return(loadBalancer); } } return(new DefaultLoadBalancer()); }
public ILoadBalance GetLoadBalancer() { if (_loadBalancerSettings != null) { if(!string.IsNullOrWhiteSpace(_loadBalancerSettings.Provider)) { var assemblyHandler = new ConDepAssemblyHandler(_loadBalancerSettings.Provider); var assembly = assemblyHandler.GetAssembly(); var type = assembly.GetTypes().FirstOrDefault(t => typeof(ILoadBalance).IsAssignableFrom(t)); var loadBalancer = Activator.CreateInstance(type, _loadBalancerSettings) as ILoadBalance; loadBalancer.Mode = _loadBalancerSettings.GetModeAsEnum(); return loadBalancer; } } return new DefaultLoadBalancer(); }
static void Main(string[] args) { var exitCode = 0; WebQueue webQ = null; try { new LogConfigLoader().Load(); Logger.TraceLevel = TraceLevel.Info; var optionHandler = new CommandLineOptionHandler(args); if (optionHandler.Params.InstallWebQ) { throw new NotImplementedException(); } else { PrintCopyrightMessage(); Logger.LogSectionStart("ConDep"); if (!string.IsNullOrWhiteSpace(optionHandler.Params.WebQAddress)) { webQ = new WebQueue(optionHandler.Params.WebQAddress, optionHandler.Params.Environment); webQ.WebQueuePositionUpdate += (sender, eventArgs) => Logger.Info(eventArgs.Message); webQ.WebQueueTimeoutUpdate += (sender, eventArgs) => Logger.Info(eventArgs.Message); Logger.LogSectionStart("Waiting in Deployment Queue"); try { webQ.WaitInQueue(TimeSpan.FromMinutes(30)); } finally { Logger.LogSectionEnd("Waiting in Deployment Queue"); } } var configAssemblyLoader = new ConDepAssemblyHandler(optionHandler.Params.AssemblyName); var assembly = configAssemblyLoader.GetAssembly(); var conDepOptions = new ConDepOptions(optionHandler.Params.DeployAllApps, optionHandler.Params.Application, optionHandler.Params.DeployOnly, optionHandler.Params.WebDeployExist, optionHandler.Params.StopAfterMarkedServer, optionHandler.Params.ContinueAfterMarkedServer, assembly); var envSettings = ConfigHandler.GetEnvConfig(optionHandler.Params.Environment, optionHandler.Params.BypassLB, assembly); var status = new WebDeploymentStatus(); ConDepConfigurationExecutor.ExecuteFromAssembly(assembly, envSettings, conDepOptions, status); if (status.HasErrors) { exitCode = 1; } else { status.EndTime = DateTime.Now; status.PrintSummary(); } } } catch (Exception ex) { exitCode = 1; Logger.Error("ConDep reported a fatal error:"); Logger.Error("Message: " + ex.Message); Logger.Verbose("Stack trace:\n" + ex.StackTrace); } finally { if (webQ != null) { webQ.LeaveQueue(); } Logger.LogSectionEnd("ConDep"); Environment.Exit(exitCode); } }