Beispiel #1
0
            public void WhenGivenExistingSiteMigrateData()
            {
                var newSiteOptions          = MockEnvironment.TableauSignInOptions("https://tableau-dev.traffk.com/#/site/TestMasterTenant").Object;
                var tableauAdminCredentials = ConfigurationHelpers.CreateOptions(TableauAdminCredentials);
                var httpClientOptions       = ConfigurationHelpers.CreateOptions(HttpClientOptions);
                var httpClientFactory       = new HttpClientFactory(httpClientOptions);

                var testAdminService =
                    new TableauAdminService(newSiteOptions, tableauAdminCredentials, httpClientFactory, Logger) as ITableauAdminService;

                var    dbUserName           = "******";
                var    dbPassword           = "******";
                var    testNewServerAddress = "traffkrdb-dev.database.windows.net/";
                var    testDbName           = "TraffkHip2";
                string path = Path.GetTempPath();

                path = path + @"TableauIntegrationTestFiles";

                var dataMigrationRequest = new TableauDataMigrationRequest("ExistingTestTenant", testNewServerAddress, testDbName, dbUserName, dbPassword, path);

                testAdminService.MigrateDataset(dataMigrationRequest);

                DirectoryInfo di = new DirectoryInfo(path);

                foreach (FileInfo file in di.GetFiles())
                {
                    file.Delete();
                }
                foreach (DirectoryInfo dir in di.GetDirectories())
                {
                    dir.Delete(true);
                }
            }
Beispiel #2
0
        SiteInfo ITableauAdminService.CreateTableauTenant(CreateTableauTenantRequest request)
        {
            var masterRestService = this as ITableauAdminService;

            //Create the site
            var newSite = CreateSite(request.TenantName);

            //Migrate the data
            var migrateDataRequest = new TableauDataMigrationRequest(request);

            masterRestService.MigrateDataset(migrateDataRequest);

            return(newSite);
        }
Beispiel #3
0
        void ITableauAdminService.MigrateDataset(TableauDataMigrationRequest request)
        {
            base.Options.UpdateForTenant(request.DestTableauTenantId);
            var destinationSiteSignInOptions = ConfigurationHelpers.CreateOptions(Options);
            var adminCredentialOptions       = ConfigurationHelpers.CreateOptions(TableauAdminCredentials);
            var destinationAdminService      = new TableauAdminService(destinationSiteSignInOptions, adminCredentialOptions, HttpClientFactory, Logger);
            var destinationSiteInfo          = destinationAdminService.GetSiteInfo();

            var sourceAdminService = this; //not normal convention, but using this to make it clearer to future devs

            //Download datasources from master site
            var dataSources = sourceAdminService.DownloadDatasourceList();

            sourceAdminService.DownloadDatasourceFiles(dataSources, request.TempFilePath);

            foreach (var datasource in Directory.GetFiles(request.TempFilePath + @"\Default"))
            {
                TableauFileEditor.UpdateDatasourceDatabaseName(datasource, request.DestDbName, request.TempFilePath);
            }

            //Upload datasources to new site
            var uploadedDataSources = destinationAdminService.UploadDatasourceFiles("Default", request.DestDbUsername, request.DestDbPassword, true, request.TempFilePath);

            //Download workbooks from master site
            var workbooksToDownload = sourceAdminService.DownloadWorkbookList();

            sourceAdminService.DownloadWorkbookFiles(workbooksToDownload, request.TempFilePath, false);

            foreach (var workbook in Directory.GetFiles(request.TempFilePath))
            {
                TableauFileEditor.UpdateWorkbookFileSiteReferences(workbook, destinationSiteInfo);
            }

            //Upload workbooks to new site
            destinationAdminService.UploadWorkbooks("Default", request.DestDbUsername, request.DestDbPassword, true, request.TempFilePath);
        }
Beispiel #4
0
 void ITenantJobs.MigrateTableauDataset(TableauDataMigrationRequest request)
 {
     TableauAdminService.MigrateDataset(request);
 }