public ScriptHostManager(ScriptHostConfiguration config, ScriptSettingsManager settingsManager, IScriptHostFactory scriptHostFactory, IScriptHostEnvironment environment = null) { _environment = environment ?? this; _config = config; _settingsManager = settingsManager; _scriptHostFactory = scriptHostFactory; }
private RunDependencies CreateDependencies(IScriptHostEnvironment environment = null) { var dependencies = new RunDependencies(); var scriptHostConfiguration = new ScriptHostConfiguration { HostConfig = new JobHostConfiguration(), FileLoggingMode = FileLoggingMode.Always, FileWatchingEnabled = true, BindingProviders = new List <ScriptBindingProvider>() }; TestLoggerProvider loggerProvider = new TestLoggerProvider(); ILoggerFactory loggerFactory = new LoggerFactory(); loggerFactory.AddProvider(loggerProvider); scriptHostConfiguration.HostConfig.LoggerFactory = loggerFactory; var eventManager = new ScriptEventManager(); var host = new Mock <ScriptHost>(environment ?? new NullScriptHostEnvironment(), eventManager, scriptHostConfiguration, null, null, null); host.CallBase = true; host.SetupGet(h => h.IsPrimary).Returns(true); var entrypointResolver = new Mock <IFunctionEntryPointResolver>(); var compilation = new Mock <IDotNetCompilation>(); compilation.Setup(c => c.GetDiagnostics()) .Returns(ImmutableArray <Diagnostic> .Empty); var compilationService = new Mock <ICompilationService <IDotNetCompilation> >(); compilationService.Setup(s => s.SupportedFileTypes) .Returns(() => new[] { ".csx" }); compilationService.Setup(s => s.GetFunctionCompilationAsync(It.IsAny <FunctionMetadata>())) .ReturnsAsync(compilation.Object); var compilationServiceFactory = new Mock <ICompilationServiceFactory <ICompilationService <IDotNetCompilation>, IFunctionMetadataResolver> >(); compilationServiceFactory.Setup(f => f.CreateService(ScriptType.CSharp, It.IsAny <IFunctionMetadataResolver>())) .Returns(compilationService.Object); var metricsLogger = new MetricsLogger(); scriptHostConfiguration.HostConfig.AddService <IMetricsLogger>(metricsLogger); return(new RunDependencies { Host = host, EntrypointResolver = entrypointResolver, Compilation = compilation, CompilationService = compilationService, CompilationServiceFactory = compilationServiceFactory, LoggerProvider = loggerProvider }); }
public ScriptHostManager(ScriptHostConfiguration config, IScriptHostEnvironment environment = null) : this(config, ScriptSettingsManager.Instance, new ScriptHostFactory(), environment) { if (config.FileWatchingEnabled) { _scriptFileWatcher = new AutoRecoveringFileSystemWatcher(config.RootScriptPath); _scriptFileWatcher.Changed += OnScriptFileChanged; } }
public ScriptHost Create( IScriptHostEnvironment environment, IScriptEventManager eventManager, ScriptSettingsManager settingsManager, ScriptHostConfiguration config, ILoggerProviderFactory loggerProviderFactory) { return(new ScriptHost(environment, eventManager, config, settingsManager, loggerProviderFactory)); }
public ScriptHostManager( ScriptHostConfiguration config, IScriptEventManager eventManager = null, IScriptHostEnvironment environment = null, ILoggerProviderFactory loggerProviderFactory = null, HostPerformanceManager hostPerformanceManager = null) : this(config, ScriptSettingsManager.Instance, new ScriptHostFactory(), eventManager, environment, loggerProviderFactory, hostPerformanceManager) { }
public ScriptHost Create( IScriptHostEnvironment environment, IScriptEventManager eventManager, ScriptSettingsManager settingsManager, ScriptHostConfiguration config, ILoggerFactoryBuilder loggerFactoryBuilder) { return(ScriptHost.Create(environment, eventManager, config, settingsManager, loggerFactoryBuilder)); }
public ScriptHostManager(ScriptHostConfiguration config, ScriptSettingsManager settingsManager, IScriptHostFactory scriptHostFactory, IScriptEventManager eventManager = null, IScriptHostEnvironment environment = null) { _environment = environment ?? this; _config = config; _settingsManager = settingsManager; _scriptHostFactory = scriptHostFactory; EventManager = eventManager ?? new ScriptEventManager(); _structuredLogWriter = new StructuredLogWriter(EventManager, config.RootLogPath); }
public ScriptHost Create(IScriptHostEnvironment environment, IScriptEventManager eventManager, ScriptSettingsManager settingsManager, ScriptHostConfiguration config, ILoggerFactoryBuilder loggerFactoryBuilder) { if (Throw) { throw new Exception("Kaboom!"); } var mockMetricsLogger = new Mock <IMetricsLogger>(MockBehavior.Strict); config.HostConfig.AddService <IMetricsLogger>(mockMetricsLogger.Object); mockMetricsLogger.Setup(p => p.BeginEvent(It.IsAny <string>(), It.IsAny <string>())).Returns(new object()); mockMetricsLogger.Setup(p => p.EndEvent(It.IsAny <object>())); mockMetricsLogger.Setup(p => p.LogEvent(It.IsAny <string>(), It.IsAny <string>())); mockMetricsLogger.Setup(p => p.LogEvent(It.IsAny <MetricEvent>())); return(ScriptHost.Create(environment, eventManager, config, settingsManager, loggerFactoryBuilder)); }
public ScriptHostManager( ScriptHostConfiguration config, IScriptEventManager eventManager = null, IScriptHostEnvironment environment = null, ILoggerFactoryBuilder loggerFactoryBuilder = null, HostPerformanceManager hostPerformanceManager = null) : this(config, ScriptSettingsManager.Instance, new ScriptHostFactory(), eventManager, environment, loggerFactoryBuilder, hostPerformanceManager) { if (config.FileWatchingEnabled) { // We only setup a subscription here as the actual ScriptHost will create the publisher // when initialized. _fileEventSubscription = EventManager.OfType <FileEvent>() .Where(f => string.Equals(f.Source, EventSources.ScriptFiles, StringComparison.Ordinal)) .Subscribe(e => OnScriptFileChanged(null, e.FileChangeArguments)); } }
public ScriptHostManager(ScriptHostConfiguration config, ScriptSettingsManager settingsManager, IScriptHostFactory scriptHostFactory, IScriptEventManager eventManager = null, IScriptHostEnvironment environment = null, ILoggerProviderFactory loggerProviderFactory = null, HostPerformanceManager hostPerformanceManager = null) { if (config == null) { throw new ArgumentNullException(nameof(config)); } if (settingsManager == null) { throw new ArgumentNullException(nameof(settingsManager)); } scriptHostFactory = scriptHostFactory ?? new ScriptHostFactory(); _environment = environment ?? this; _config = config; _settingsManager = settingsManager; _scriptHostFactory = scriptHostFactory; _loggerProviderFactory = loggerProviderFactory; EventManager = eventManager ?? new ScriptEventManager(); _structuredLogWriter = new StructuredLogWriter(EventManager, config.RootLogPath); _performanceManager = hostPerformanceManager ?? new HostPerformanceManager(settingsManager, _config.HostHealthMonitor); if (config.FileWatchingEnabled && !settingsManager.FileSystemIsReadOnly) { // We only setup a subscription here as the actual ScriptHost will create the publisher // when initialized. _fileEventSubscription = EventManager.OfType <FileEvent>() .Where(f => string.Equals(f.Source, EventSources.ScriptFiles, StringComparison.Ordinal)) .Subscribe(e => OnScriptFileChanged(null, e.FileChangeArguments)); } if (ShouldMonitorHostHealth) { _healthCheckWindow = new SlidingWindow <bool>(_config.HostHealthMonitor.HealthCheckWindow); _hostHealthCheckTimer = new Timer(OnHostHealthCheckTimer, null, TimeSpan.Zero, _config.HostHealthMonitor.HealthCheckInterval); } }
public ScriptHostManager(ScriptHostConfiguration config, ScriptSettingsManager settingsManager, IScriptHostFactory scriptHostFactory, IScriptEventManager eventManager = null, IScriptHostEnvironment environment = null, ILoggerFactoryBuilder loggerFactoryBuilder = null, HostPerformanceManager hostPerformanceManager = null) { if (config == null) { throw new ArgumentNullException(nameof(config)); } if (settingsManager == null) { throw new ArgumentNullException(nameof(settingsManager)); } scriptHostFactory = scriptHostFactory ?? new ScriptHostFactory(); _environment = environment ?? this; _config = config; _settingsManager = settingsManager; _scriptHostFactory = scriptHostFactory; _loggerFactoryBuilder = loggerFactoryBuilder; EventManager = eventManager ?? new ScriptEventManager(); _structuredLogWriter = new StructuredLogWriter(EventManager, config.RootLogPath); _performanceManager = hostPerformanceManager ?? new HostPerformanceManager(settingsManager); // TEMP : temporarily disabling this until the feature is improved bool periodicHealthCheckEnabled = false; if (periodicHealthCheckEnabled && config.HostHealthMonitorEnabled && settingsManager.IsAzureEnvironment) { _hostHealthCheckTimer = new Timer(OnHostHealthCheckTimer, null, TimeSpan.Zero, hostHealthCheckInterval); } }
private RunDependencies CreateDependencies(TraceLevel traceLevel = TraceLevel.Info, IScriptHostEnvironment environment = null) { var dependencies = new RunDependencies(); var functionTraceWriter = new TestTraceWriter(System.Diagnostics.TraceLevel.Verbose); var traceWriter = new TestTraceWriter(System.Diagnostics.TraceLevel.Verbose); var scriptHostConfiguration = new ScriptHostConfiguration { HostConfig = new JobHostConfiguration(), TraceWriter = traceWriter, FileLoggingMode = FileLoggingMode.Always, FileWatchingEnabled = true }; scriptHostConfiguration.HostConfig.Tracing.ConsoleLevel = System.Diagnostics.TraceLevel.Verbose; var host = new Mock <ScriptHost>(environment ?? new NullScriptHostEnvironment(), scriptHostConfiguration, null); host.SetupGet(h => h.IsPrimary).Returns(true); var entrypointResolver = new Mock <IFunctionEntryPointResolver>(); var compilation = new Mock <IDotNetCompilation>(); compilation.Setup(c => c.GetDiagnostics()) .Returns(ImmutableArray <Diagnostic> .Empty); var compilationService = new Mock <ICompilationService <IDotNetCompilation> >(); compilationService.Setup(s => s.SupportedFileTypes) .Returns(() => new[] { ".csx" }); compilationService.Setup(s => s.GetFunctionCompilationAsync(It.IsAny <FunctionMetadata>())) .ReturnsAsync(compilation.Object); var compilationServiceFactory = new Mock <ICompilationServiceFactory <ICompilationService <IDotNetCompilation>, IFunctionMetadataResolver> >(); compilationServiceFactory.Setup(f => f.CreateService(ScriptType.CSharp, It.IsAny <IFunctionMetadataResolver>())) .Returns(compilationService.Object); var traceWriterFactory = new Mock <ITraceWriterFactory>(); traceWriterFactory.Setup(f => f.Create()) .Returns(functionTraceWriter); var metricsLogger = new MetricsLogger(); scriptHostConfiguration.HostConfig.AddService <IMetricsLogger>(metricsLogger); return(new RunDependencies { Host = host, EntrypointResolver = entrypointResolver, Compilation = compilation, CompilationService = compilationService, CompilationServiceFactory = compilationServiceFactory, TraceWriterFactory = traceWriterFactory, TraceWriter = functionTraceWriter }); }
public ScriptHost Create(IScriptHostEnvironment environment, ScriptSettingsManager settingsManager, ScriptHostConfiguration config) { return(ScriptHost.Create(environment, config, settingsManager)); }