public override void ConfigureInstalledSite(Site site, InstallationConfiguration configuration)
 {
     foreach (var directory in configuration.AdditionalDirectories)
     {
         Directory.CreateDirectory(directory);
     }
 }
Пример #2
0
        public ExistingInstallationLogic(GeneralInstallationLogic generalInstallationLogic, InstallationConfiguration runtimeConfiguration)
        {
            this.generalInstallationLogic = generalInstallationLogic;
            this.runtimeConfiguration     = runtimeConfiguration;

            database = DatabaseAbstraction.DatabaseOps.CreateDatabase(runtimeConfiguration.PrimaryDatabaseInfo);
        }
Пример #3
0
        public Site Install(InstallationConfiguration configuration)
        {
            var site = _serverManager.Sites.Add(configuration.SiteName, configuration.SitePath, 80);

            site.ServerAutoStart = configuration.SiteAutoStart;
            return(site);
        }
 public override void ConfigureInstalledSite(Site site, InstallationConfiguration configuration)
 {
     foreach (var directory in configuration.AdditionalDirectories)
     {
         _directory.CreateDirectory(directory);
     }
 }
 public ConfiguredInstallationManifest(InstallationConfiguration installationConfiguration, ISiteInstaller sourceInstaller, string path, AssemblyDetails discoveredDetails)
 {
     InstallationConfiguration = installationConfiguration;
     SourceInstaller           = sourceInstaller;
     Path = path;
     DiscoveredDetails = discoveredDetails;
 }
        public void ConfigureInstallation_CallsInstallOnISiteInstaller_ExistsToProvideACleanerApiToUsersWhileMaintainingCodeClarity()
        {
            var fakeInstaller = new Mock <ISiteInstaller>();
            var config        = new InstallationConfiguration(string.Empty);

            fakeInstaller.Object.ConfigureInstallation(config);

            fakeInstaller.Verify(x => x.Install(config));
        }
        /// <inheritdoc />
        protected override object Execute(Arguments arguments, IProgressMonitor progressMonitor)
        {
            using (progressMonitor.BeginTask("Resetting the installation id.", 1))
            {
                var config = InstallationConfiguration.LoadFromRegistry();

                config.InstallationId = Guid.NewGuid();
                config.SaveInstallationIdToRegistry();
            }

            return(null);
        }
Пример #8
0
        private void PathPreferencePane_Load(object sender, EventArgs e)
        {
            configuration = InstallationConfiguration.LoadFromRegistry();

            runtimePathTextBox.Text = configuration.InstallationFolder;

            foreach (string path in configuration.AdditionalPluginDirectories)
            {
                pluginPathListBox.Items.Add(path);
            }
            UpdateRemovePluginPathButtonVisibility();
        }
Пример #9
0
        public void Ctor_StoresProvidedArguments()
        {
            var          config            = new InstallationConfiguration("path");
            var          installer         = new TestInstaller();
            const string path              = "path";
            var          discoveredDetails = new AssemblyDetails(path, "binary.dll", typeof(TestInstaller));

            var dto = new ConfiguredInstallationManifest(config, installer, path, discoveredDetails);

            Assert.That(dto.InstallationConfiguration, Is.EqualTo(config));
            Assert.That(dto.SourceInstaller, Is.EqualTo(installer));
            Assert.That(dto.Path, Is.EqualTo(path));
            Assert.That(dto.DiscoveredDetails, Is.EqualTo(discoveredDetails));
        }
Пример #10
0
        public static int Main()
        {
            NativeConsole console = NativeConsole.Instance;

            var launcher = new TestLauncher
            {
                EchoResults             = true,
                Logger                  = new FilteredLogger(new RichConsoleLogger(console), Verbosity.Normal),
                ProgressMonitorProvider = new RichConsoleProgressMonitorProvider(console),
                RuntimeSetup            = new RuntimeSetup(),
                TestProject             = { TestRunnerFactoryName = StandardTestRunnerFactoryNames.Local }
            };

            string gallioBin =
                Environment.GetEnvironmentVariable(GallioBinEnvironmentVariable) ??
                InstallationConfiguration.LoadFromRegistry().InstallationFolder;

            if (string.IsNullOrEmpty(gallioBin))
            {
                Console.Error.WriteLine("Cannot find Gallio installation directory.");
                Console.Error.WriteLine("Specify it with \"{0}\" environment variable.", GallioBinEnvironmentVariable);
                return(1);
            }

            launcher.AddFilePattern(typeof(Driver).Assembly.Location);
            launcher.RuntimeSetup.AddPluginDirectory(gallioBin);

            TestLauncherResult result = launcher.Run();

            ConsoleColor originalConsoleColor = console.ForegroundColor;

            console.ForegroundColor = result.ResultCode == ResultCode.Success
                                ? ConsoleColor.DarkGreen
                                : ConsoleColor.Red;

            console.WriteLine();
            console.WriteLine(result.ResultSummary);
            console.WriteLine();

            console.ForegroundColor = originalConsoleColor;

            if (result.ResultCode != ResultCode.Success && Debugger.IsAttached)
            {
                Debugger.Break();
            }

            return(result.ResultCode);
        }
        public override void BeforeInstallation(InstallationConfiguration configuration)
        {
            if (!configuration.SiteDeleteExisting)
            {
                return;
            }

            var existingSite = ServerManager.Sites.SingleOrDefault(x =>x.Name.Equals(configuration.SiteName, StringComparison.InvariantCultureIgnoreCase));

            if (existingSite == null)
            {
                return;
            }

            ServerManager.Sites.Remove(existingSite);
        }
Пример #12
0
        public ConfiguredInstallationManifest FindFirstAvailableInstaller()
        {
            var assembliesWithInstallers = _assemblyDiscoverer.FindAssemblies(Path) ?? new List <AssemblyDetails>();
            var firstInstaller           = assembliesWithInstallers.FirstOrDefault();

            if (firstInstaller == null)
            {
                return(new NoInstallationFound());
            }

            var assemblyWithSiteInstaller = _assemblyLoader.Load(System.IO.Path.Combine(firstInstaller.Path, firstInstaller.BinaryPath));
            var siteInstaller             = assemblyWithSiteInstaller.CreateInstance(firstInstaller.InstallerType.FullName, true);
            var configuration             = new InstallationConfiguration(_scanSitePath);

            return(new ConfiguredInstallationManifest(configuration, (ISiteInstaller)siteInstaller, _scanSitePath, firstInstaller));
        }
Пример #13
0
        public override void BeforeInstallation(InstallationConfiguration configuration)
        {
            if (!configuration.SiteDeleteExisting)
            {
                return;
            }

            var existingSite = ServerManager.Sites.SingleOrDefault(x => x.Name.Equals(configuration.SiteName, StringComparison.InvariantCultureIgnoreCase));

            if (existingSite == null)
            {
                return;
            }

            ServerManager.Sites.Remove(existingSite);
        }
        private void ConfigureAppPoolIfNotExists(InstallationConfiguration configuration)
        {
            var existingPool = ServerManager.ApplicationPools.SingleOrDefault(x => x.Name.Equals(configuration.AppPoolName));

            if (existingPool != null)
            {
                return;
            }

            var newPool = ServerManager.ApplicationPools.Add(configuration.AppPoolName);

            newPool.ManagedRuntimeVersion = string.IsNullOrEmpty(configuration.AppPoolManagedRuntimeVersion)
                ? newPool.ManagedRuntimeVersion
                : configuration.AppPoolManagedRuntimeVersion;
            newPool.SetAttributeValue("startMode", 1);
        }
        public override void ConfigureInstalledSite(Site site, InstallationConfiguration configuration)
        {
            if (!configuration.Bindings.Any())
            {
                return;
            }

            site.Bindings.Clear();

            foreach (var binding in configuration.Bindings)
            {
                var b = site.Bindings.CreateElement();
                b.Protocol = binding.Protocol;
                b.BindingInformation = string.Format("{0}:{1}:{2}", binding.IPAddress, binding.Port, binding.Host);
                site.Bindings.Add(b);
            }
        }
        private void ConfigureAppPoolIfNotExists(InstallationConfiguration configuration)
        {
            var existingPool = ServerManager.ApplicationPools.SingleOrDefault(x => x.Name.Equals(configuration.AppPoolName));

            if (existingPool != null)
            {
                return;
            }

            var newPool = ServerManager.ApplicationPools.Add(configuration.AppPoolName);

            newPool.ManagedRuntimeVersion = string.IsNullOrEmpty(configuration.AppPoolManagedRuntimeVersion)
                ? newPool.ManagedRuntimeVersion
                : configuration.AppPoolManagedRuntimeVersion;

            newPool.SetAttributeValue("startMode", (int)configuration.AppPoolStartMode);
        }
Пример #17
0
        public override void ConfigureInstalledSite(Site site, InstallationConfiguration configuration)
        {
            if (!configuration.Bindings.Any())
            {
                return;
            }

            site.Bindings.Clear();

            foreach (var binding in configuration.Bindings)
            {
                var b = site.Bindings.CreateElement();
                b.Protocol           = binding.Protocol;
                b.BindingInformation = string.Format("{0}:{1}:{2}", binding.IPAddress, binding.Port, binding.Host);
                site.Bindings.Add(b);
            }
        }
        public override void ConfigureInstalledSite(Site site, InstallationConfiguration configuration)
        {
            if (string.IsNullOrEmpty(configuration.AppPoolName))
            {
                return;
            }

            if (configuration.AppPoolDeleteExisting)
            {
                var existingAppPool = ServerManager.ApplicationPools.SingleOrDefault(x => x.Name.Equals(configuration.AppPoolName, StringComparison.InvariantCultureIgnoreCase));
                ServerManager.ApplicationPools.Remove(existingAppPool);
            }

            site.ApplicationDefaults.ApplicationPoolName = configuration.AppPoolName;

            ConfigureAppPoolIfNotExists(configuration);
        }
        public override void ConfigureInstalledSite(Site site, InstallationConfiguration configuration)
        {
            site.LogFile.Directory = NewOrOriginal(configuration.LogFileDirectory, site.LogFile.Directory);

            if (!configuration.LogFileCreateDirectoryWithElevatedPermissions)
            {
                return;
            }

            if (!_directory.Exists(site.LogFile.Directory))
            {
                _directory.CreateDirectory(site.LogFile.Directory);
            }
            else
            {
                _directory.ElevatePermissions(site.LogFile.Directory);
            }
        }
        public override void ConfigureInstalledSite(Site site, InstallationConfiguration configuration)
        {
            if (string.IsNullOrEmpty(configuration.AppPoolName))
            {
                return;
            }

            if (configuration.AppPoolDeleteExisting)
            {
                var existingAppPool = ServerManager.ApplicationPools.SingleOrDefault(x => x.Name.Equals(configuration.AppPoolName, StringComparison.InvariantCultureIgnoreCase));

                if(existingAppPool != null)
                {
                    ServerManager.ApplicationPools.Remove(existingAppPool);
                }
            }

            site.ApplicationDefaults.ApplicationPoolName = configuration.AppPoolName;

            ConfigureAppPoolIfNotExists(configuration);
        }
        public override void ConfigureInstalledSite(Site site, InstallationConfiguration configuration)
        {
            site.LogFile.Directory = NewOrOriginal(configuration.LogFileDirectory, site.LogFile.Directory);

            if (!configuration.LogFileCreateDirectoryWithElevatedPermissions)
            {
                return;
            }

            if (!Directory.Exists(site.LogFile.Directory))
            {
                Directory.CreateDirectory(site.LogFile.Directory);
            }
            else
            {
                var account                   = new NTAccount(WindowsIdentity.GetCurrent().Name);
                var existingDirectory         = new DirectoryInfo(site.LogFile.Directory);
                var existingDirectorySecurity = existingDirectory.GetAccessControl();
                existingDirectorySecurity.SetOwner(account);
                existingDirectory.SetAccessControl(existingDirectorySecurity);
            }
        }
 public abstract void ConfigureInstalledSite(Site site, InstallationConfiguration configuration);
Пример #23
0
 public abstract void BeforeInstallation(InstallationConfiguration configuration);
 public abstract void ConfigureInstalledSite(Site site, InstallationConfiguration configuration);
Пример #25
0
 public Site Install(InstallationConfiguration configuration)
 {
     var site = _serverManager.Sites.Add(configuration.SiteName, configuration.SitePath, 80);
     site.ServerAutoStart = configuration.SiteAutoStart;
     return site;
 }
 public ExistingInstallationLogic(GeneralInstallationLogic generalInstallationLogic, InstallationConfiguration runtimeConfiguration)
 {
     this.generalInstallationLogic = generalInstallationLogic;
     this.runtimeConfiguration     = runtimeConfiguration;
 }
 public abstract void BeforeInstallation(InstallationConfiguration configuration);