public SparseConditionalConstantPropagation(BasicBlocks basicBlocks, ITraceFactory traceFactory)
        {
            this.TraceFactory = traceFactory;
            this.BasicBlocks = basicBlocks;

            MainTrace = CreateTrace("SparseConditionalConstantPropagation");

            // Method is empty - must be a plugged method
            if (BasicBlocks.HeadBlocks.Count == 0)
                return;

            blockStates = new bool[BasicBlocks.Count];

            for (int i = 0; i < BasicBlocks.Count; i++)
            {
                blockStates[i] = false;
            }

            // Initialize
            foreach (var block in BasicBlocks.HeadBlocks)
            {
                AddExecutionBlock(block);
            }

            while (blockWorklist.Count > 0 || instructionWorkList.Count > 0)
            {
                ProcessBlocks();
                ProcessInstructions();
            }

            DumpTrace();

            // Release
            phiStatements = null;
        }
Exemplo n.º 2
0
        // Consumers should use IoC or the Default UseEdge extension method to initialize this.
        public EdgeApplication(
            IFileSystem fileSystem,
            string virtualRoot,
            IRouter router,
            ICompilationManager compiler,
            IPageActivator activator,
            IPageExecutor executor,
            ITraceFactory tracer)
            : this()
        {
            Requires.NotNull(fileSystem, "fileSystem");
            Requires.NotNullOrEmpty(virtualRoot, "virtualRoot");
            Requires.NotNull(router, "router");
            Requires.NotNull(compiler, "compiler");
            Requires.NotNull(activator, "activator");
            Requires.NotNull(executor, "executor");
            Requires.NotNull(tracer, "tracer");

            FileSystem = fileSystem;
            VirtualRoot = virtualRoot;
            Router = router;
            CompilationManager = compiler;
            Executor = executor;
            Activator = activator;
            Tracer = tracer;
        }
Exemplo n.º 3
0
 public NullRepository(IEnvironment environment, ITraceFactory traceFactory, HttpContextBase httpContext)
 {
     _environment = environment;
     _traceFactory = traceFactory;
     _httpContext = httpContext;
     _changeSetKey = Path.Combine(_environment.RepositoryPath, "changeset");
 }
Exemplo n.º 4
0
        private static void OldRunsCleanup(string jobName, IFileSystem fileSystem, IEnvironment environment, ITraceFactory traceFactory, IDeploymentSettingsManager settings)
        {
            // if max is 5 and we have 5 we still want to remove one to make room for the next
            // that's why we decrement max value by 1
            int maxRuns = settings.GetMaxJobRunsHistoryCount() - 1;

            string historyPath = Path.Combine(environment.JobsDataPath, Constants.TriggeredPath, jobName);
            DirectoryInfoBase historyDirectory = fileSystem.DirectoryInfo.FromDirectoryName(historyPath);
            if (!historyDirectory.Exists)
            {
                return;
            }

            DirectoryInfoBase[] historyRunsDirectories = historyDirectory.GetDirectories();
            if (historyRunsDirectories.Length <= maxRuns)
            {
                return;
            }

            var directoriesToRemove = historyRunsDirectories.OrderByDescending(d => d.Name).Skip(maxRuns);
            foreach (DirectoryInfoBase directory in directoriesToRemove)
            {
                try
                {
                    directory.Delete(true);
                }
                catch (Exception ex)
                {
                    traceFactory.GetTracer().TraceError(ex);
                }
            }
        }
Exemplo n.º 5
0
        // Consumers should use IoC or the Default UseRazor extension method to initialize this.
        public RazorApplication(
            AppFunc nextApp,
            IFileSystem fileSystem,
            string virtualRoot,
            IRouter router,
            ICompilationManager compiler,
            IPageActivator activator,
            IPageExecutor executor,
            ITraceFactory tracer)
            : this(nextApp)
        {
            Requires.NotNull(fileSystem, "fileSystem");
            Requires.NotNullOrEmpty(virtualRoot, "virtualRoot");
            Requires.NotNull(router, "router");
            Requires.NotNull(compiler, "compiler");
            Requires.NotNull(activator, "activator");
            Requires.NotNull(executor, "executor");
            Requires.NotNull(tracer, "tracer");

            FileSystem = fileSystem;
            VirtualRoot = virtualRoot;
            Router = router;
            CompilationManager = compiler;
            Executor = executor;
            Activator = activator;
            Tracer = tracer;

            ITrace global = Tracer.ForApplication();
            global.WriteLine("Started at '{0}'", VirtualRoot);
        }
Exemplo n.º 6
0
 public LibGit2SharpRepository(IEnvironment environment, IDeploymentSettingsManager settings, ITraceFactory tracerFactory)
 {
     _tracerFactory = tracerFactory;
     _settings = settings;
     RepositoryPath = environment.RepositoryPath;
     _legacyGitExeRepository = new GitExeRepository(environment, settings, tracerFactory);
 }
Exemplo n.º 7
0
 public RepositoryFactory(IEnvironment environment, IDeploymentSettingsManager settings, ITraceFactory traceFactory, HttpContextBase httpContext)
 {
     _environment = environment;
     _settings = settings;
     _traceFactory = traceFactory;
     _httpContext = httpContext;
 }
Exemplo n.º 8
0
 public AutoSwapHandler(IDeploymentStatusManager deploymentStatusManager, IEnvironment environment, IDeploymentSettingsManager settings, ITraceFactory traceFactory)
 {
     _deploymentStatusManager = deploymentStatusManager;
     _traceFactory = traceFactory;
     _autoSwapSlotName = settings.GetValue("WEBSITE_SWAP_SLOTNAME");
     _autoSwapLockFilePath = Path.Combine(environment.LocksPath, AutoSwapLockFile);
 }
Exemplo n.º 9
0
        public SiteExtensionManager(IEnvironment environment, IDeploymentSettingsManager settings, ITraceFactory traceFactory)
        {
            _localRepository = new LocalPackageRepository(environment.RootPath + "\\SiteExtensions");
            _traceFactory = traceFactory;

            var remoteSource = new Uri(settings.GetSiteExtensionRemoteUrl());
            _remoteRepository = new DataServicePackageRepository(remoteSource);
        }
Exemplo n.º 10
0
 protected SSHKeyManager(IFileSystem fileSystem, ITraceFactory traceFactory, string sshPath)
 {
     _fileSystem = fileSystem;
     _traceFactory = traceFactory;
     _sshPath = sshPath;
     _id_rsa = Path.Combine(sshPath, PrivateKeyFile);
     _config = Path.Combine(sshPath, ConfigFile);
 }
Exemplo n.º 11
0
        public TriggeredJobsScheduler(ITriggeredJobsManager triggeredJobsManager, ITraceFactory traceFactory, IAnalytics analytics, IEnvironment environment)
        {
            _triggeredJobsManager = triggeredJobsManager;
            _traceFactory = traceFactory;
            _environment = environment;

            _jobsFileWatcher = new JobsFileWatcher(triggeredJobsManager.JobsBinariesPath, OnJobChanged, JobSettings.JobSettingsFileName, ListJobNames, traceFactory, analytics);
        }
Exemplo n.º 12
0
 public SiteExtensionController(ISiteExtensionManager manager, IEnvironment environment, ITraceFactory traceFactory, IAnalytics analytics)
 {
     _manager = manager;
     _environment = environment;
     _traceFactory = traceFactory;
     _analytics = analytics;
     _siteExtensionRoot = Path.Combine(_environment.RootPath, "SiteExtensions");
 }
Exemplo n.º 13
0
        public TriggeredJobsScheduler(ITriggeredJobsManager triggeredJobsManager, ITraceFactory traceFactory, IEnvironment environment)
        {
            _triggeredJobsManager = triggeredJobsManager;
            _traceFactory = traceFactory;
            _environment = environment;

            _triggeredJobsManager.RegisterExtraEventHandlerForFileChange(OnJobChanged);
        }
Exemplo n.º 14
0
 public GitDeploymentRepository(string path, ITraceFactory traceFactory)
 {
     _gitExe = new GitExecutable(path);
     _gitExe.SetTraceLevel(2);
     _traceFactory = traceFactory;
     _repository = new GitExeRepository(path, traceFactory);
     _repository.SetTraceLevel(2);
 }
Exemplo n.º 15
0
        protected FilePerJobLogger(string jobName, string jobType, string statusFileName, string jobLogFileName, IEnvironment environment, ITraceFactory traceFactory)
            : base(statusFileName, environment, traceFactory)
        {
            _historyPath = Path.Combine(environment.JobsDataPath, jobType, jobName);
            FileSystemHelpers.EnsureDirectory(_historyPath);

            _logFilePath = GetLogFilePath(jobLogFileName);
        }
Exemplo n.º 16
0
        public ContinuousJobRunner(string jobName, IEnvironment environment, IFileSystem fileSystem, IDeploymentSettingsManager settings, ITraceFactory traceFactory, IAnalytics analytics)
            : base(jobName, Constants.ContinuousPath, environment, fileSystem, settings, traceFactory, analytics)
        {
            _continuousJobLogger = new ContinuousJobLogger(jobName, Environment, FileSystem, TraceFactory);

            _disableFilePath = Path.Combine(JobBinariesPath, "disable.job");
            _singletonFilePath = Path.Combine(JobBinariesPath, "singleton.job");
        }
Exemplo n.º 17
0
        public ContinuousJobRunner(ContinuousJob continuousJob, IEnvironment environment, IDeploymentSettingsManager settings, ITraceFactory traceFactory, IAnalytics analytics)
            : base(continuousJob.Name, Constants.ContinuousPath, environment, settings, traceFactory, analytics)
        {
            _continuousJobLogger = new ContinuousJobLogger(continuousJob.Name, Environment, TraceFactory);

            _disableFilePath = Path.Combine(continuousJob.JobBinariesRootPath, "disable.job");

            _singletonLock = new LockFile(Path.Combine(JobDataPath, "singleton.job.lock"), TraceFactory);
        }
Exemplo n.º 18
0
 public GitExeServer(string path, IOperationLock initLock, ITraceFactory traceFactory)
 {
     _gitExe = new GitExecutable(path);
     _gitExe.SetTraceLevel(2);
     _traceFactory = traceFactory;
     _repository = new GitExeRepository(path, traceFactory);
     _repository.SetTraceLevel(2);
     _initLock = initLock;
 }
Exemplo n.º 19
0
        public SiteExtensionManager(IEnvironment environment, IDeploymentSettingsManager settings, ITraceFactory traceFactory, HttpContextBase context)
        {
            _localRepository = new LocalPackageRepository(environment.RootPath + "\\SiteExtensions");
            _traceFactory = traceFactory;

            var remoteSource = new Uri(settings.GetSiteExtensionRemoteUrl());
            _remoteRepository = new DataServicePackageRepository(remoteSource);

            _baseUrl = context.Request.Url == null ? "" : context.Request.Url.GetLeftPart(UriPartial.Authority).TrimEnd('/');
        }
Exemplo n.º 20
0
        private TriggeredJobRunLogger(string jobName, string id, IEnvironment environment, ITraceFactory traceFactory)
            : base(TriggeredStatusFile, environment, traceFactory)
        {
            _id = id;

            _historyPath = Path.Combine(Environment.JobsDataPath, Constants.TriggeredPath, jobName, _id);
            FileSystemHelpers.EnsureDirectory(_historyPath);

            _outputFilePath = Path.Combine(_historyPath, OutputLogFileName);
        }
Exemplo n.º 21
0
        public GitExeRepository(string path, string homePath, ITraceFactory profilerFactory)
        {
            _gitExe = new GitExecutable(path);
            _tracerFactory = profilerFactory;

            if (!String.IsNullOrEmpty(homePath))
            {
                _gitExe.SetHomePath(homePath);
            }
        }
Exemplo n.º 22
0
        public ContinuousJobLogger(string jobName, IEnvironment environment, IFileSystem fileSystem, ITraceFactory traceFactory)
            : base(GetStatusFileName(), environment, fileSystem, traceFactory)
        {
            _historyPath = Path.Combine(Environment.JobsDataPath, Constants.ContinuousPath, jobName);
            FileSystemHelpers.EnsureDirectory(_historyPath);

            // Lock status file (allowing read and write but not delete) as a way to notify that this status file is valid (shows status of a current working instance)
            _logFilePath = GetLogFilePath(JobLogFileName);
            _lockedStatusFile = File.Open(GetStatusFilePath(), FileMode.OpenOrCreate, FileAccess.Read, FileShare.ReadWrite);
        }
Exemplo n.º 23
0
        public GitExeRepository(string path, string homePath, IDeploymentSettingsManager settings, ITraceFactory profilerFactory)
        {
            _gitExe = new GitExecutable(path, settings.GetCommandIdleTimeout());
            _tracerFactory = profilerFactory;
            _settings = settings;

            if (!String.IsNullOrEmpty(homePath))
            {
                _gitExe.SetHomePath(homePath);
            }
        }
Exemplo n.º 24
0
        public GitExeServer(string path, IOperationLock initLock, IDeploymentEnvironment deploymentEnvironment, ITraceFactory traceFactory)
        {
            _gitExe = new GitExecutable(path);
            _traceFactory = traceFactory;
            _repository = new GitExeRepository(path, traceFactory);
            _initLock = initLock;

            // Setup the deployment environment variable to be used by the post receive hook
            _gitExe.EnvironmentVariables[KnownEnviornment.EXEPATH] = deploymentEnvironment.ExePath;
            _gitExe.EnvironmentVariables[KnownEnviornment.APPPATH] = deploymentEnvironment.ApplicationPath;
            _gitExe.EnvironmentVariables[KnownEnviornment.MSBUILD] = deploymentEnvironment.MSBuildExtensionsPath;
            _gitExe.EnvironmentVariables[KnownEnviornment.DEPLOYER] = "";
        }
Exemplo n.º 25
0
        public GitExeServer(string path, IOperationLock initLock, IDeploymentCommandGenerator deploymentCommandGenerator, ITraceFactory traceFactory)
        {
            _gitExe = new GitExecutable(path);
            _gitExe.SetTraceLevel(2);
            _traceFactory = traceFactory;
            _repository = new GitExeRepository(path, traceFactory);
            _repository.SetTraceLevel(2);
            _initLock = initLock;
            _deploymentCommandGenerator = deploymentCommandGenerator;

            // Setup the deployment environment variable to be used by the post receive hook
            _gitExe.EnvironmentVariables[_deploymentCommandGenerator.DeploymentEnvironmentVariable] = _deploymentCommandGenerator.GetDeploymentExePath();
        }
Exemplo n.º 26
0
        public SSHKeyManager(IEnvironment environment, ITraceFactory traceFactory)
        {
            if (environment == null)
            {
                throw new ArgumentNullException("environment");
            }

            _traceFactory = traceFactory ?? NullTracerFactory.Instance;
            _sshPath = environment.SSHKeyPath;
            _id_rsa = Path.Combine(_sshPath, PrivateKeyFile);
            _id_rsaPub = Path.Combine(_sshPath, PublicKeyFile);
            _config = Path.Combine(_sshPath, ConfigFile);
        }
Exemplo n.º 27
0
        public SiteExtensionManager(IContinuousJobsManager continuousJobManager, ITriggeredJobsManager triggeredJobManager, IEnvironment environment, IDeploymentSettingsManager settings, ITraceFactory traceFactory, HttpContextBase context, IAnalytics analytics)
        {
            _rootPath = Path.Combine(environment.RootPath, "SiteExtensions");
            _baseUrl = context.Request.Url == null ? String.Empty : context.Request.Url.GetLeftPart(UriPartial.Authority).TrimEnd('/');

            _localRepository = GetSourceRepository(_rootPath);
            _continuousJobManager = continuousJobManager;
            _triggeredJobManager = triggeredJobManager;
            _environment = environment;
            _settings = settings;
            _traceFactory = traceFactory;
            _analytics = analytics;
        }
Exemplo n.º 28
0
        public static TriggeredJobRunLogger LogNewRun(TriggeredJob triggeredJob, IEnvironment environment, IFileSystem fileSystem, ITraceFactory traceFactory, IDeploymentSettingsManager settings)
        {
            OldRunsCleanup(triggeredJob.Name, fileSystem, environment, traceFactory, settings);

            string id = DateTime.UtcNow.ToString("yyyyMMddHHmmssffff");
            var logger = new TriggeredJobRunLogger(triggeredJob.Name, id, environment, fileSystem, traceFactory);
            var triggeredJobStatus = new TriggeredJobStatus()
            {
                Status = "Initializing",
                StartTime = DateTime.UtcNow
            };
            logger.ReportStatus(triggeredJobStatus);
            return logger;
        }
Exemplo n.º 29
0
 public DeploymentManager(IServerRepository serverRepository,
                          ISiteBuilderFactory builderFactory,
                          IEnvironment environment,
                          IFileSystem fileSystem,
                          ITraceFactory traceFactory,
                          IOperationLock deploymentLock)
 {
     _serverRepository = serverRepository;
     _builderFactory = builderFactory;
     _environment = environment;
     _fileSystem = fileSystem;
     _traceFactory = traceFactory;
     _deploymentLock = deploymentLock;
 }
Exemplo n.º 30
0
        protected BaseJobRunner(string jobName, string jobsTypePath, IEnvironment environment,
            IDeploymentSettingsManager settings, ITraceFactory traceFactory, IAnalytics analytics)
        {
            TraceFactory = traceFactory;
            Environment = environment;
            Settings = settings;
            JobName = jobName;
            _analytics = analytics;

            JobBinariesPath = Path.Combine(Environment.JobsBinariesPath, jobsTypePath, jobName);
            JobTempPath = Path.Combine(Environment.TempPath, Constants.JobsPath, jobsTypePath, jobName);
            JobDataPath = Path.Combine(Environment.DataPath, Constants.JobsPath, jobsTypePath, jobName);

            _externalCommandFactory = new ExternalCommandFactory(Environment, Settings, Environment.RepositoryPath);
        }
Exemplo n.º 31
0
 public DeploymentManager(ISiteBuilderFactory builderFactory,
                          IEnvironment environment,
                          ITraceFactory traceFactory,
                          IAnalytics analytics,
                          IDeploymentSettingsManager settings,
                          IDeploymentStatusManager status,
                          IOperationLock deploymentLock,
                          ILogger globalLogger,
                          IWebHooksManager hooksManager)
 {
     _builderFactory = builderFactory;
     _environment    = environment;
     _traceFactory   = traceFactory;
     _analytics      = analytics;
     _deploymentLock = deploymentLock;
     _globalLogger   = globalLogger ?? NullLogger.Instance;
     _settings       = settings;
     _status         = status;
     _hooksManager   = hooksManager;
 }
        private static DeploymentManager CreateDeploymentManager(
            ISiteBuilderFactory builderFactory  = null,
            IEnvironment environment            = null,
            IFileSystem fileSystem              = null,
            ITraceFactory traceFactory          = null,
            IDeploymentSettingsManager settings = null,
            IDeploymentStatusManager status     = null,
            IOperationLock deploymentLock       = null,
            ILogger globalLogger = null)
        {
            builderFactory = builderFactory ?? Mock.Of <ISiteBuilderFactory>();
            environment    = environment ?? Mock.Of <IEnvironment>();
            fileSystem     = fileSystem ?? Mock.Of <IFileSystem>();
            traceFactory   = traceFactory ?? Mock.Of <ITraceFactory>();
            settings       = settings ?? Mock.Of <IDeploymentSettingsManager>();
            status         = status ?? Mock.Of <IDeploymentStatusManager>();
            deploymentLock = deploymentLock ?? Mock.Of <IOperationLock>();
            globalLogger   = globalLogger ?? Mock.Of <ILogger>();

            return(new DeploymentManager(builderFactory, environment, fileSystem, traceFactory, settings, status, deploymentLock, globalLogger));
        }
Exemplo n.º 33
0
        public JobsFileWatcher(
            string watchedDirectoryPath,
            Action <string> onJobChanged,
            string filter,
            Func <IEnumerable <string> > listJobNames,
            ITraceFactory traceFactory,
            IAnalytics analytics)
        {
            _traceFactory         = traceFactory;
            _analytics            = analytics;
            _watchedDirectoryPath = watchedDirectoryPath;
            _onJobChanged         = onJobChanged;
            _filter       = filter;
            _listJobNames = listJobNames;

            _makeChangesTimer      = new Timer(OnMakeChanges);
            _startFileWatcherTimer = new Timer(StartWatcher);
            _startFileWatcherTimer.Change(0, Timeout.Infinite);

            FirstTimeMakingChanges = true;
        }
Exemplo n.º 34
0
        public static TJobStatus ReadJobStatusFromFile <TJobStatus>(ITraceFactory traceFactory, string statusFilePath) where TJobStatus : class, IJobStatus
        {
            try
            {
                if (!FileSystemHelpers.FileExists(statusFilePath))
                {
                    return(null);
                }

                return(OperationManager.Attempt(() =>
                {
                    string content = FileSystemHelpers.ReadAllTextFromFile(statusFilePath).Trim();
                    return JsonConvert.DeserializeObject <TJobStatus>(content, JsonSerializerSettings);
                }));
            }
            catch (Exception ex)
            {
                traceFactory.GetTracer().TraceError(ex);
                return(null);
            }
        }
Exemplo n.º 35
0
        private LockFile MockLockFile(string path, ITraceFactory traceFactory = null, IFileSystem fileSystem = null)
        {
            traceFactory = traceFactory ?? NullTracerFactory.Instance;

            if (fileSystem == null)
            {
                var locked = false;
                var stream = new Mock <Stream>(MockBehavior.Strict);
                var fs     = new Mock <IFileSystem>(MockBehavior.Strict);
                stream.Setup(s => s.Close())
                .Callback(() =>
                {
                    locked = false;
                });
                fs.Setup(f => f.Directory.Exists(Path.GetDirectoryName(path)))
                .Returns(true);
                fs.Setup(f => f.File.Exists(path))
                .Returns(() => true);
                fs.Setup(f => f.File.Delete(path));
                fs.Setup(f => f.File.Open(path, It.IsAny <FileMode>(), FileAccess.Write, FileShare.None))
                .Returns(() =>
                {
                    lock (stream)
                    {
                        if (locked)
                        {
                            throw new IOException();
                        }
                        locked = true;
                        return(stream.Object);
                    }
                });

                fileSystem = fs.Object;
            }

            FileSystemHelpers.Instance = fileSystem;

            return(new LockFile(path, traceFactory));
        }
Exemplo n.º 36
0
        public async Task <IActionResult> GetEventCode([FromRoute] Guid?domainId)
        {
            IActionResult result = null;

            try
            {
                if (result == null && (!domainId.HasValue || domainId.Value.Equals(Guid.Empty)))
                {
                    result = BadRequest("Missing domain id parameter value");
                }
                if (result == null)
                {
                    using ILifetimeScope scope = _container.BeginLifetimeScope();
                    SettingsFactory settingsFactory = scope.Resolve <SettingsFactory>();
                    if (!(await VerifyDomainAccount(domainId.Value, settingsFactory, _settings.Value, scope.Resolve <IDomainService>())))
                    {
                        result = StatusCode(StatusCodes.Status401Unauthorized);
                    }
                    else
                    {
                        CoreSettings  settings     = settingsFactory.CreateCore(_settings.Value);
                        ITraceFactory traceFactory = scope.Resolve <ITraceFactory>();
                        result = Ok(
                            await traceFactory.GetEventCodes(settings, domainId.Value)
                            );
                    }
                }
            }
            catch (Exception ex)
            {
                using (ILifetimeScope scope = _container.BeginLifetimeScope())
                {
                    await LogException(ex, scope.Resolve <IExceptionService>(), scope.Resolve <SettingsFactory>(), _settings.Value);
                }
                result = StatusCode(StatusCodes.Status500InternalServerError);
            }
            return(result);
        }
Exemplo n.º 37
0
        public GitExeServer(IEnvironment environment,
                            IOperationLock initLock,
                            string logFileEnv,
                            IRepositoryFactory repositoryFactory,
                            IDeploymentEnvironment deploymentEnvironment,
                            IDeploymentSettingsManager settings,
                            ITraceFactory traceFactory)
        {
            _gitExe = new GitExecutable(environment.RepositoryPath, settings.GetCommandIdleTimeout());
            _gitExe.SetHomePath(environment.SiteRootPath);
            _traceFactory      = traceFactory;
            _initLock          = initLock;
            _repositoryFactory = repositoryFactory;

            // Transfer logFileEnv => git.exe => kudu.exe, this represent per-request tracefile
            _gitExe.EnvironmentVariables[Constants.TraceFileEnvKey] = logFileEnv;

            // Setup the deployment environment variable to be used by the post receive hook
            _gitExe.EnvironmentVariables[KnownEnvironment.EXEPATH]  = deploymentEnvironment.ExePath;
            _gitExe.EnvironmentVariables[KnownEnvironment.APPPATH]  = deploymentEnvironment.ApplicationPath;
            _gitExe.EnvironmentVariables[KnownEnvironment.MSBUILD]  = deploymentEnvironment.MSBuildExtensionsPath;
            _gitExe.EnvironmentVariables[KnownEnvironment.DEPLOYER] = "";
        }
Exemplo n.º 38
0
        public SparseConditionalConstantPropagation(BasicBlocks basicBlocks, ITraceFactory traceFactory)
        {
            this.TraceFactory = traceFactory;
            this.BasicBlocks  = basicBlocks;

            MainTrace = CreateTrace("SparseConditionalConstantPropagation");

            // Method is empty - must be a plugged method
            if (BasicBlocks.HeadBlocks.Count == 0)
            {
                return;
            }

            blockStates = new bool[BasicBlocks.Count];

            for (int i = 0; i < BasicBlocks.Count; i++)
            {
                blockStates[i] = false;
            }

            // Initialize
            foreach (var block in BasicBlocks.HeadBlocks)
            {
                AddExecutionBlock(block);
            }

            while (blockWorklist.Count > 0 || instructionWorkList.Count > 0)
            {
                ProcessBlocks();
                ProcessInstructions();
            }

            DumpTrace();

            // Release
            phiStatements = null;
        }
Exemplo n.º 39
0
        private static DeploymentManager CreateDeploymentManager(
            ISiteBuilderFactory builderFactory = null,
            IEnvironment environment           = null,
            IFileSystem fileSystem             = null,
            ITraceFactory traceFactory         = null,
            IAnalytics analytics = null,
            IDeploymentSettingsManager settings = null,
            IDeploymentStatusManager status     = null,
            IOperationLock deploymentLock       = null,
            ILogger globalLogger          = null,
            IWebHooksManager hooksManager = null)
        {
            builderFactory             = builderFactory ?? Mock.Of <ISiteBuilderFactory>();
            environment                = environment ?? Mock.Of <IEnvironment>();
            FileSystemHelpers.Instance = fileSystem ?? Mock.Of <IFileSystem>();
            traceFactory               = traceFactory ?? Mock.Of <ITraceFactory>();
            analytics      = analytics ?? Mock.Of <IAnalytics>();
            settings       = settings ?? Mock.Of <IDeploymentSettingsManager>();
            status         = status ?? Mock.Of <IDeploymentStatusManager>();
            deploymentLock = deploymentLock ?? Mock.Of <IOperationLock>();
            globalLogger   = globalLogger ?? Mock.Of <ILogger>();

            return(new DeploymentManager(builderFactory, environment, traceFactory, analytics, settings, status, deploymentLock, globalLogger, hooksManager, Mock.Of <IAutoSwapHandler>(), Mock.Of <IFunctionManager>()));
        }
Exemplo n.º 40
0
 public FunctionController(IFunctionManager manager, ITraceFactory traceFactory, IEnvironment environment)
 {
     _manager      = manager;
     _traceFactory = traceFactory;
     _environment  = environment;
 }
Exemplo n.º 41
0
 public GitExeRepository(IEnvironment environment, IDeploymentSettingsManager settings, ITraceFactory profilerFactory)
 {
     _gitExe                  = new GitExecutable(environment.RepositoryPath, settings.GetCommandIdleTimeout());
     _tracerFactory           = profilerFactory;
     _settings                = settings;
     SkipPostReceiveHookCheck = false;
     _gitExe.SetHomePath(environment);
     _environment = environment;
 }
Exemplo n.º 42
0
        public SiteExtensionManager(IContinuousJobsManager continuousJobManager, ITriggeredJobsManager triggeredJobManager, IEnvironment environment, IDeploymentSettingsManager settings, ITraceFactory traceFactory, HttpContextBase context, IAnalytics analytics)
        {
            _rootPath = Path.Combine(environment.RootPath, "SiteExtensions");
            _baseUrl  = context.Request.Url == null ? String.Empty : context.Request.Url.GetLeftPart(UriPartial.Authority).TrimEnd('/');

            _localRepository      = GetSourceRepository(_rootPath);
            _continuousJobManager = continuousJobManager;
            _triggeredJobManager  = triggeredJobManager;
            _environment          = environment;
            _settings             = settings;
            _traceFactory         = traceFactory;
            _analytics            = analytics;
        }
Exemplo n.º 43
0
 public LockFile(string path, ITraceFactory traceFactory)
 {
     _path         = Path.GetFullPath(path);
     _traceFactory = traceFactory;
 }
Exemplo n.º 44
0
 public RepositoryFactory(IEnvironment environment, IDeploymentSettingsManager settings, ITraceFactory traceFactory)
 {
     _environment  = environment;
     _settings     = settings;
     _traceFactory = traceFactory;
 }
Exemplo n.º 45
0
 public ArtifactDeploymentInfo(IEnvironment environment, ITraceFactory traceFactory)
 {
     _environment  = environment;
     _traceFactory = traceFactory;
 }
Exemplo n.º 46
0
 protected AggregateJobsManagerBase(JobsManagerBase <TJob> primaryManager, Func <IEnumerable <string>, JobsManagerBase <TJob> > secondaryManagerFactory, IDeploymentSettingsManager settings, IEnvironment environment, ITraceFactory traceFactory, string jobType)
 {
     PrimaryJobManager = primaryManager;
     // pass the list of primary job names so the second manager can excluded them
     SecondaryJobManager = secondaryManagerFactory(PrimaryJobManager.ListJobs(forceRefreshCache: false).Select(j => j.Name));
     _settings           = settings;
     _environment        = environment;
     _traceFactory       = traceFactory;
     _jobType            = jobType;
 }
Exemplo n.º 47
0
 public ContinuousJobsManager(ITraceFactory traceFactory, IEnvironment environment, IDeploymentSettingsManager settings, IAnalytics analytics)
     : base(traceFactory, environment, settings, analytics, Constants.ContinuousPath)
 {
     RegisterExtraEventHandlerForFileChange(OnJobChanged);
 }
Exemplo n.º 48
0
 public Analytics(IDeploymentSettingsManager settings, IServerConfiguration serverConfiguration, ITraceFactory traceFactory)
 {
     _settings            = settings;
     _serverConfiguration = serverConfiguration;
     _traceFactory        = traceFactory;
 }
Exemplo n.º 49
0
 public LockFile(string path, ITraceFactory traceFactory, bool ensureLock = false)
 {
     _path         = Path.GetFullPath(path);
     _traceFactory = traceFactory;
     _ensureLock   = ensureLock;
 }
Exemplo n.º 50
0
        public ContinuousJobRunner(string jobName, IEnvironment environment, IDeploymentSettingsManager settings, ITraceFactory traceFactory, IAnalytics analytics)
            : base(jobName, Constants.ContinuousPath, environment, settings, traceFactory, analytics)
        {
            _continuousJobLogger = new ContinuousJobLogger(jobName, Environment, TraceFactory);

            _disableFilePath = Path.Combine(JobBinariesPath, "disable.job");

            _singletonLock = new LockFile(Path.Combine(JobDataPath, "singleton.job.lock"), TraceFactory);
        }
Exemplo n.º 51
0
        private static int PerformDeploy(
            string appRoot,
            string wapTargets,
            string deployer,
            string lockPath,
            IEnvironment env,
            IDeploymentSettingsManager settingsManager,
            TraceLevel level,
            ITracer tracer,
            ITraceFactory traceFactory,
            IOperationLock deploymentLock)
        {
            System.Environment.SetEnvironmentVariable("GIT_DIR", null, System.EnvironmentVariableTarget.Process);

            // Skip SSL Certificate Validate
            if (System.Environment.GetEnvironmentVariable(SettingsKeys.SkipSslValidation) == "1")
            {
                ServicePointManager.ServerCertificateValidationCallback = delegate { return(true); };
            }

            // Adjust repo path
            env.RepositoryPath = Path.Combine(env.SiteRootPath, settingsManager.GetRepositoryPath());

            string statusLockPath = Path.Combine(lockPath, Constants.StatusLockFile);
            string hooksLockPath  = Path.Combine(lockPath, Constants.HooksLockFile);

            IOperationLock statusLock = new LockFile(statusLockPath, traceFactory);
            IOperationLock hooksLock  = new LockFile(hooksLockPath, traceFactory);

            IBuildPropertyProvider buildPropertyProvider = new BuildPropertyProvider();
            ISiteBuilderFactory    builderFactory        = new SiteBuilderFactory(buildPropertyProvider, env);
            var logger = new ConsoleLogger();

            IRepository gitRepository;

            if (settingsManager.UseLibGit2SharpRepository())
            {
                gitRepository = new LibGit2SharpRepository(env, settingsManager, traceFactory);
            }
            else
            {
                gitRepository = new GitExeRepository(env, settingsManager, traceFactory);
            }

            IServerConfiguration serverConfiguration = new ServerConfiguration();
            IAnalytics           analytics           = new Analytics(settingsManager, serverConfiguration, traceFactory);

            IWebHooksManager         hooksManager            = new WebHooksManager(tracer, env, hooksLock);
            IDeploymentStatusManager deploymentStatusManager = new DeploymentStatusManager(env, analytics, statusLock);
            IDeploymentManager       deploymentManager       = new DeploymentManager(builderFactory,
                                                                                     env,
                                                                                     traceFactory,
                                                                                     analytics,
                                                                                     settingsManager,
                                                                                     deploymentStatusManager,
                                                                                     deploymentLock,
                                                                                     GetLogger(env, level, logger),
                                                                                     hooksManager);

            var step = tracer.Step(XmlTracer.ExecutingExternalProcessTrace, new Dictionary <string, string>
            {
                { "type", "process" },
                { "path", "kudu.exe" },
                { "arguments", appRoot + " " + wapTargets }
            });

            using (step)
            {
                try
                {
                    // although the api is called DeployAsync, most expensive works are done synchronously.
                    // need to launch separate task to go async explicitly (consistent with FetchDeploymentManager)
                    var deploymentTask = Task.Run(async() => await deploymentManager.DeployAsync(gitRepository, changeSet: null, deployer: deployer, clean: false));

#pragma warning disable 4014
                    // Track pending task
                    PostDeploymentHelper.TrackPendingOperation(deploymentTask, TimeSpan.Zero);
#pragma warning restore 4014

                    deploymentTask.Wait();

                    if (PostDeploymentHelper.IsAutoSwapEnabled())
                    {
                        string                branch     = settingsManager.GetBranch();
                        ChangeSet             changeSet  = gitRepository.GetChangeSet(branch);
                        IDeploymentStatusFile statusFile = deploymentStatusManager.Open(changeSet.Id);
                        if (statusFile != null && statusFile.Status == DeployStatus.Success)
                        {
                            PostDeploymentHelper.PerformAutoSwap(env.RequestId, new PostDeploymentTraceListener(tracer, deploymentManager.GetLogger(changeSet.Id))).Wait();
                        }
                    }
                }
                catch (Exception e)
                {
                    tracer.TraceError(e);

                    System.Console.Error.WriteLine(e.GetBaseException().Message);
                    System.Console.Error.WriteLine(Resources.Log_DeploymentError);
                    return(1);
                }
            }

            if (logger.HasErrors)
            {
                System.Console.Error.WriteLine(Resources.Log_DeploymentError);
                return(1);
            }

            return(0);
        }
Exemplo n.º 52
0
 public ContinuousJobLogger(string jobName, IEnvironment environment, ITraceFactory traceFactory)
     : base(jobName, Constants.ContinuousPath, GetStatusFileName(), JobLogFileName, environment, traceFactory)
 {
     // Lock status file (allowing read and write but not delete) as a way to notify that this status file is valid (shows status of a current working instance)
     ResetLockedStatusFile();
 }
 public BasicRegisterAllocator(BasicBlocks basicBlocks, VirtualRegisters compilerVirtualRegisters, StackLayout stackLayout, BaseArchitecture architecture, ITraceFactory traceFactory)
     : base(basicBlocks, compilerVirtualRegisters, stackLayout, architecture, traceFactory)
 {
 }
Exemplo n.º 54
0
 public TriggeredJobRunner(string jobName, IEnvironment environment, IDeploymentSettingsManager settings, ITraceFactory traceFactory, IAnalytics analytics)
     : base(jobName, Constants.TriggeredPath, environment, settings, traceFactory, analytics)
 {
     _lockFile = BuildTriggeredJobRunnerLockFile(JobDataPath, TraceFactory);
 }
Exemplo n.º 55
0
 public DockerController(ITraceFactory traceFactory, IDeploymentSettingsManager settings, IEnvironment environment)
 {
     _traceFactory = traceFactory;
     _settings     = settings;
     _environment  = environment;
 }
Exemplo n.º 56
0
 public static LockFile BuildTriggeredJobRunnerLockFile(string jobDataPath, ITraceFactory traceFactory)
 {
     return(new LockFile(Path.Combine(jobDataPath, "triggeredJob.lock"), traceFactory));
 }
Exemplo n.º 57
0
 public LibGit2SharpRepository(IEnvironment environment, IDeploymentSettingsManager settings, ITraceFactory tracerFactory)
 {
     _tracerFactory          = tracerFactory;
     _settings               = settings;
     RepositoryPath          = environment.RepositoryPath;
     _legacyGitExeRepository = new GitExeRepository(environment, settings, tracerFactory);
 }
Exemplo n.º 58
0
 private const int lockTimeout            = 1200; //in seconds
 public AllSafeLinuxLock(string path, ITraceFactory traceFactory)
 {
     _traceFactory = traceFactory;
 }
Exemplo n.º 59
0
 public DockerController(ITraceFactory traceFactory)
 {
     _traceFactory = traceFactory;
 }
Exemplo n.º 60
0
 public FunctionManager(IEnvironment environment, ITraceFactory traceFactory)
 {
     _environment  = environment;
     _traceFactory = traceFactory;
 }