Exemple #1
0
        private SqlConnectionStringBuilder CreateServerPointerInCatalogue(IServerDefaults defaults, string prefix, string databaseName, PermissableDefaults defaultToSet, IPatcher patcher)
        {
            var opts = new PlatformDatabaseCreationOptions()
            {
                ServerName          = TestDatabaseSettings.ServerName,
                Prefix              = prefix,
                Username            = TestDatabaseSettings.Username,
                Password            = TestDatabaseSettings.Password,
                ValidateCertificate = false
            };

            var builder = opts.GetBuilder(databaseName);

            if (string.IsNullOrWhiteSpace(databaseName))
            {
                builder.InitialCatalog = "";
            }

            //create a new pointer
            var externalServerPointer = new ExternalDatabaseServer(CatalogueRepository, databaseName ?? "RAW", patcher)
            {
                Server   = builder.DataSource,
                Database = builder.InitialCatalog,
                Password = builder.Password,
                Username = builder.UserID
            };

            externalServerPointer.SaveToDatabase();

            //now make it the default DQE
            defaults.SetDefault(defaultToSet, externalServerPointer);

            return(builder);
        }
Exemple #2
0
        public DatabaseTests()
        {
            var opts = new PlatformDatabaseCreationOptions()
            {
                ServerName = TestDatabaseSettings.ServerName,
                Prefix     = TestDatabaseNames.Prefix,
                Username   = TestDatabaseSettings.Username,
                Password   = TestDatabaseSettings.Password
            };


            RepositoryLocator = new PlatformDatabaseCreationRepositoryFinder(opts);


            Console.WriteLine("Expecting Unit Test Catalogue To Be At Server=" + CatalogueRepository.DiscoveredServer.Name + " Database=" + CatalogueRepository.DiscoveredServer.GetCurrentDatabase());
            Assert.IsTrue(CatalogueRepository.DiscoveredServer.Exists(), "Catalogue database does not exist, run 'rdmp.exe install ...' to create it (Ensure that servername and prefix in TestDatabases.txt match those you provide to CreateDatabases.exe e.g. 'rdmp.exe install localhost\\sqlexpress TEST_')");
            Console.WriteLine("Found Catalogue");

            Console.WriteLine("Expecting Unit Test Data Export To Be At Server=" + DataExportRepository.DiscoveredServer.Name + " Database= " + DataExportRepository.DiscoveredServer.GetCurrentDatabase());
            Assert.IsTrue(DataExportRepository.DiscoveredServer.Exists(), "Data Export database does not exist, run 'rdmp.exe install ...' to create it (Ensure that servername and prefix in TestDatabases.txt match those you provide to CreateDatabases.exe e.g. 'rdmp.exe install localhost\\sqlexpress TEST_')");
            Console.WriteLine("Found DataExport");

            Console.Write(Environment.NewLine + Environment.NewLine + Environment.NewLine);

            RunBlitzDatabases(RepositoryLocator);

            var defaults = CatalogueRepository.GetServerDefaults();

            DataQualityEngineConnectionString = CreateServerPointerInCatalogue(defaults, TestDatabaseNames.Prefix, PlatformDatabaseCreation.DefaultDQEDatabaseName, PermissableDefaults.DQE, new DataQualityEnginePatcher());
            UnitTestLoggingConnectionString   = CreateServerPointerInCatalogue(defaults, TestDatabaseNames.Prefix, PlatformDatabaseCreation.DefaultLoggingDatabaseName, PermissableDefaults.LiveLoggingServer_ID, new LoggingDatabasePatcher());
            DiscoveredServerICanCreateRandomDatabasesAndTablesOn = new DiscoveredServer(CreateServerPointerInCatalogue(defaults, TestDatabaseNames.Prefix, null, PermissableDefaults.RAWDataLoadServer, null));

            _discoveredSqlServer = new DiscoveredServer(TestDatabaseSettings.ServerName, null, DatabaseType.MicrosoftSQLServer, TestDatabaseSettings.Username, TestDatabaseSettings.Password);

            if (TestDatabaseSettings.MySql != null)
            {
                var builder = new MySqlConnectionStringBuilder(TestDatabaseSettings.MySql);

                foreach (string k in builder.Keys)
                {
                    if (k == "server" || k == "database" || k == "user id" || k == "password")
                    {
                        continue;
                    }

                    new ConnectionStringKeyword(CatalogueRepository, DatabaseType.MySql, k, builder[k].ToString());
                }
                _discoveredMySqlServer = new DiscoveredServer(builder);
            }

            if (TestDatabaseSettings.Oracle != null)
            {
                _discoveredOracleServer = new DiscoveredServer(TestDatabaseSettings.Oracle, DatabaseType.Oracle);
            }

            if (TestDatabaseSettings.PostgreSql != null)
            {
                _discoveredPostgresServer = new DiscoveredServer(TestDatabaseSettings.PostgreSql, DatabaseType.PostgreSql);
            }
        }
Exemple #3
0
        private void PostFixPipelines(PlatformDatabaseCreationOptions opts)
        {
            var repo = new PlatformDatabaseCreationRepositoryFinder(opts);
            var bulkInsertCsvPipe = repo.CatalogueRepository
                                    .GetAllObjects <Pipeline>()
                                    .FirstOrDefault(p => p.Name == "BULK INSERT: CSV Import File (manual column-type editing)");

            if (bulkInsertCsvPipe != null)
            {
                var d = (PipelineComponentArgument)bulkInsertCsvPipe.Destination.GetAllArguments()
                        .Single(a => a.Name.Equals("Adjuster"));
                d.SetValue(typeof(AdjustColumnDataTypesUI));
                d.SaveToDatabase();
            }
        }
Exemple #4
0
        private static int Run(PlatformDatabaseCreationOptions opts)
        {
            var serverName = opts.ServerName;
            var prefix     = opts.Prefix;

            Console.WriteLine("About to create on server '" + serverName + "' databases with prefix '" + prefix + "'");

            try
            {
                var creator = new PlatformDatabaseCreation();
                creator.CreatePlatformDatabases(opts);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(-1);
            }
            return(0);
        }
Exemple #5
0
        private void btnCreateSuite_Click(object sender, EventArgs e)
        {
            var sb = new StringBuilder();

            try
            {
                Cursor = Cursors.WaitCursor;

                Console.SetOut(new StringWriter(sb));

                var opts = new PlatformDatabaseCreationOptions();
                opts.ServerName             = tbSuiteServer.Text;
                opts.Prefix                 = tbDatabasePrefix.Text;
                opts.Username               = tbUsername.Text;
                opts.Password               = tbPassword.Text;
                opts.ExampleDatasets        = cbCreateExampleDatasets.Checked;
                opts.Seed                   = _seed;
                opts.NumberOfPeople         = _peopleCount;
                opts.NumberOfRowsPerDataset = _rowCount;

                bool failed = false;

                var task = new Task(() =>
                {
                    try
                    {
                        var creator = new PlatformDatabaseCreation();
                        creator.CreatePlatformDatabases(opts);
                        if (!opts.SkipPipelines)
                        {
                            PostFixPipelines(opts);
                        }
                    }
                    catch (Exception ex)
                    {
                        checksUI1.OnCheckPerformed(
                            new CheckEventArgs("Database creation failed, check exception for details", CheckResult.Fail,
                                               ex));
                        failed = true;
                    }
                });
                task.Start();

                while (!task.IsCompleted)
                {
                    task.Wait(100);
                    Application.DoEvents();

                    var result = sb.ToString();

                    if (string.IsNullOrEmpty(result))
                    {
                        continue;
                    }

                    sb.Clear();

                    if (result.Contains("Exception"))
                    {
                        throw new Exception(result);
                    }

                    checksUI1.OnCheckPerformed(new CheckEventArgs(result, CheckResult.Success));
                }

                checksUI1.OnCheckPerformed(new CheckEventArgs("Finished Creating Platform Databases", CheckResult.Success));

                var cata   = opts.GetBuilder(PlatformDatabaseCreation.DefaultCatalogueDatabaseName);
                var export = opts.GetBuilder(PlatformDatabaseCreation.DefaultDataExportDatabaseName);

                UserSettings.CatalogueConnectionString  = cata.ConnectionString;
                UserSettings.DataExportConnectionString = export.ConnectionString;

                if (!failed)
                {
                    RestartApplication();
                }
            }
            catch (Exception exception)
            {
                checksUI1.OnCheckPerformed(new CheckEventArgs("Database creation failed, check exception for details", CheckResult.Fail, exception));
            }
            finally
            {
                Cursor = Cursors.Default;
            }
        }