public void CanChangeIndexPriority() { using (var store = GetDocumentStore()) { var index = new Users_ByCity(); index.Execute(store); var indexStats = store.Admin.Send(new GetIndexStatisticsOperation(index.IndexName)); Assert.Equal(IndexPriority.Normal, indexStats.Priority); store.Admin.Send(new SetIndexesPriorityOperation(index.IndexName, IndexPriority.Normal)); // no-op indexStats = store.Admin.Send(new GetIndexStatisticsOperation(index.IndexName)); Assert.Equal(IndexPriority.Normal, indexStats.Priority); store.Admin.Send(new SetIndexesPriorityOperation(index.IndexName, IndexPriority.Low)); indexStats = store.Admin.Send(new GetIndexStatisticsOperation(index.IndexName)); Assert.Equal(IndexPriority.Low, indexStats.Priority); store.Admin.Send(new SetIndexesPriorityOperation(index.IndexName, IndexPriority.High)); indexStats = store.Admin.Send(new GetIndexStatisticsOperation(index.IndexName)); Assert.Equal(IndexPriority.High, indexStats.Priority); } }
public void IndexWithNonDefaultPathWillSurviveRestart() { var index = new Users_ByCity(); var name = Guid.NewGuid().ToString("N"); var path = NewDataPath(); var otherPath = NewDataPath(); using (var store = GetDocumentStore( path: path, modifyDatabaseDocument: document => document.Settings[RavenConfiguration.GetKey(x => x.Indexing.AdditionalIndexStoragePaths)] = otherPath, modifyName: n => name)) { var indexDefinition = index.CreateIndexDefinition(); indexDefinition.Configuration[RavenConfiguration.GetKey(x => x.Indexing.IndexStoragePath)] = otherPath; store.DatabaseCommands.PutIndex(index.IndexName, indexDefinition); } using (var store = GetDocumentStore( path: path, modifyDatabaseDocument: document => document.Settings[RavenConfiguration.GetKey(x => x.Indexing.AdditionalIndexStoragePaths)] = otherPath, modifyName: n => name)) { var indexDefinition = store.DatabaseCommands.GetIndex(index.IndexName); Assert.NotNull(indexDefinition); } }
public async Task CanCreateInMemoryIndex() { var index = new Users_ByCity(); var path = NewDataPath(); using (var store = GetDocumentStore(path: path)) { var indexDefinition1 = index.CreateIndexDefinition(); indexDefinition1.Configuration[RavenConfiguration.GetKey(x => x.Indexing.RunInMemory)] = "true"; store.DatabaseCommands.PutIndex(index.IndexName + "_1", indexDefinition1); var indexDefinition2 = index.CreateIndexDefinition(); indexDefinition1.Configuration[RavenConfiguration.GetKey(x => x.Indexing.RunInMemory)] = "false"; store.DatabaseCommands.PutIndex(index.IndexName + "_2", indexDefinition2); var database = await GetDocumentDatabaseInstanceFor(store); var directories = Directory.GetDirectories(database.Configuration.Indexing.IndexStoragePath); Assert.Equal(2, directories.Length); // Transformers + 1 index } using (var store = GetDocumentStore(path: path)) { var indexDefinition = store.DatabaseCommands.GetIndex(index.IndexName + "_1"); Assert.Null(indexDefinition); indexDefinition = store.DatabaseCommands.GetIndex(index.IndexName + "_2"); Assert.NotNull(indexDefinition); } }
public void CanChangeIndexPriority() { using (var store = GetDocumentStore()) { var index = new Users_ByCity(); index.Execute(store); var indexStats = store.DatabaseCommands.GetIndexStatistics(index.IndexName); Assert.Equal(IndexPriority.Normal, indexStats.Priority); store.DatabaseCommands.SetIndexPriority(index.IndexName, IndexPriority.Normal); // no-op indexStats = store.DatabaseCommands.GetIndexStatistics(index.IndexName); Assert.Equal(IndexPriority.Normal, indexStats.Priority); store.DatabaseCommands.SetIndexPriority(index.IndexName, IndexPriority.Low); indexStats = store.DatabaseCommands.GetIndexStatistics(index.IndexName); Assert.Equal(IndexPriority.Low, indexStats.Priority); store.DatabaseCommands.SetIndexPriority(index.IndexName, IndexPriority.High); indexStats = store.DatabaseCommands.GetIndexStatistics(index.IndexName); Assert.Equal(IndexPriority.High, indexStats.Priority); } }
public async Task WillNotLoadTwoIndexesWithTheSameId() { var index = new Users_ByCity(); string destPath; var name = Guid.NewGuid().ToString("N"); var path = NewDataPath(); var otherPath = NewDataPath(); using (var store = GetDocumentStore( path: path, modifyDatabaseDocument: document => document.Settings[RavenConfiguration.GetKey(x => x.Indexing.AdditionalIndexStoragePaths)] = otherPath, modifyName: n => name)) { var indexDefinition1 = index.CreateIndexDefinition(); indexDefinition1.Configuration[RavenConfiguration.GetKey(x => x.Indexing.IndexStoragePath)] = otherPath; store.DatabaseCommands.PutIndex(index.IndexName + "_1", indexDefinition1); var indexDefinition2 = index.CreateIndexDefinition(); indexDefinition2.Configuration[RavenConfiguration.GetKey(x => x.Indexing.IndexStoragePath)] = otherPath; store.DatabaseCommands.PutIndex(index.IndexName + "_2", indexDefinition2); var database = await GetDocumentDatabaseInstanceFor(store); destPath = database.Configuration.Indexing.IndexStoragePath; } var srcDirectories = Directory.GetDirectories(Path.Combine(otherPath, name)); var srcDirectory1 = new DirectoryInfo(srcDirectories[0]); var srcDirectory2 = new DirectoryInfo(srcDirectories[1]); IOExtensions.MoveDirectory(srcDirectory2.FullName, Path.Combine(destPath, srcDirectory1.Name)); using (var store = GetDocumentStore( path: path, modifyDatabaseDocument: document => { document.Settings[RavenConfiguration.GetKey(x => x.Indexing.AdditionalIndexStoragePaths)] = otherPath; document.Settings[RavenConfiguration.GetKey(x => x.Core.ThrowIfAnyIndexOrTransformerCouldNotBeOpened)] = "false"; }, modifyName: n => name)) { var indexNames = store.DatabaseCommands.GetIndexNames(0, 128); Assert.Equal(1, indexNames.Length); } }
public void WillThrowIfIndexPathIsNotDefinedInDatabaseConfiguration() { var path = NewDataPath(); var otherPath = NewDataPath(); using (var store = GetDocumentStore(path: path)) { var index = new Users_ByCity(); var indexDefinition = index.CreateIndexDefinition(); indexDefinition.Configuration[RavenConfiguration.GetKey(x => x.Indexing.IndexStoragePath)] = otherPath; var e = Assert.Throws <ErrorResponseException>(() => store.DatabaseCommands.PutIndex(index.IndexName, indexDefinition)); Assert.Contains(otherPath, e.Message); } }
public void WillNotThrowIfIndexPathIsDefinedInDatabaseConfiguration() { var path = NewDataPath(); var otherPath = NewDataPath(); using (var store = GetDocumentStore(path: path, modifyDatabaseDocument: document => document.Settings[RavenConfiguration.GetKey(x => x.Indexing.AdditionalIndexStoragePaths)] = otherPath)) { var index = new Users_ByCity(); var indexDefinition = index.CreateIndexDefinition(); indexDefinition.Configuration[RavenConfiguration.GetKey(x => x.Indexing.IndexStoragePath)] = otherPath; store.DatabaseCommands.PutIndex(index.IndexName, indexDefinition); Assert.Equal(1, Directory.GetDirectories(otherPath).Length); } }
public void CanEnableAndDisableIndex() { using (var store = GetDocumentStore()) { var index = new Users_ByCity(); index.Execute(store); var indexStats = store.Admin.Send(new GetIndexStatisticsOperation(index.IndexName)); Assert.Equal(IndexState.Normal, indexStats.State); Assert.Equal(IndexRunningStatus.Running, indexStats.Status); store.Admin.Send(new EnableIndexOperation(index.IndexName)); // no-op indexStats = store.Admin.Send(new GetIndexStatisticsOperation(index.IndexName)); Assert.Equal(IndexState.Normal, indexStats.State); Assert.Equal(IndexRunningStatus.Running, indexStats.Status); store.Admin.Send(new DisableIndexOperation(index.IndexName)); indexStats = store.Admin.Send(new GetIndexStatisticsOperation(index.IndexName)); Assert.Equal(IndexState.Disabled, indexStats.State); Assert.Equal(IndexRunningStatus.Disabled, indexStats.Status); store.Admin.Send(new DisableIndexOperation(index.IndexName)); // no-op indexStats = store.Admin.Send(new GetIndexStatisticsOperation(index.IndexName)); Assert.Equal(IndexState.Disabled, indexStats.State); Assert.Equal(IndexRunningStatus.Disabled, indexStats.Status); store.Admin.Send(new StartIndexOperation(index.IndexName)); // cannot start disabled index indexStats = store.Admin.Send(new GetIndexStatisticsOperation(index.IndexName)); Assert.Equal(IndexState.Disabled, indexStats.State); Assert.Equal(IndexRunningStatus.Disabled, indexStats.Status); store.Admin.Send(new EnableIndexOperation(index.IndexName)); indexStats = store.Admin.Send(new GetIndexStatisticsOperation(index.IndexName)); Assert.Equal(IndexState.Normal, indexStats.State); Assert.Equal(IndexRunningStatus.Running, indexStats.Status); } }