Skip to content

Commit

Permalink
Delete template only if it exists
Browse files Browse the repository at this point in the history
This commit deletes the index template only if it exists. Removes errors with trying to delete a
non-existent index template from integration test run logs
  • Loading branch information
russcam committed Sep 4, 2019
1 parent 564cfae commit ea2fb30
Showing 1 changed file with 30 additions and 25 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -41,18 +41,20 @@ public DefaultSeeder(IElasticClient client) : this(client, null) { }

public void SeedNode()
{
if (!TestClient.Configuration.ForceReseed && AlreadySeeded()) return;
var alreadySeeded = false;
if (!TestClient.Configuration.ForceReseed && (alreadySeeded = AlreadySeeded())) return;

var t = Task.Run(async () => await SeedNodeAsync());
var t = Task.Run(async () => await SeedNodeAsync(alreadySeeded).ConfigureAwait(false));

t.Wait(TimeSpan.FromSeconds(40));
}

public void SeedNodeNoData()
{
if (!TestClient.Configuration.ForceReseed && AlreadySeeded()) return;
var alreadySeeded = false;
if (!TestClient.Configuration.ForceReseed && (alreadySeeded = AlreadySeeded())) return;

var t = Task.Run(async () => await SeedNodeNoDataAsync());
var t = Task.Run(async () => await SeedNodeNoDataAsync(alreadySeeded).ConfigureAwait(false));

t.Wait(TimeSpan.FromSeconds(40));
}
Expand All @@ -62,23 +64,23 @@ public void SeedNodeNoData()
// If raw_fields exists assume this cluster is already seeded.
private bool AlreadySeeded() => Client.Indices.TemplateExists(TestsIndexTemplateName).Exists;

private async Task SeedNodeAsync()
private async Task SeedNodeAsync(bool alreadySeeded)
{
// Ensure a clean slate by deleting everything regardless of whether they may already exist
await DeleteIndicesAndTemplatesAsync();
await ClusterSettingsAsync();
await PutPipeline();
await DeleteIndicesAndTemplatesAsync(alreadySeeded).ConfigureAwait(false);
await ClusterSettingsAsync().ConfigureAwait(false);
await PutPipeline().ConfigureAwait(false);
// and now recreate everything
await CreateIndicesAndSeedIndexDataAsync();
await CreateIndicesAndSeedIndexDataAsync().ConfigureAwait(false);
}

private async Task SeedNodeNoDataAsync()
private async Task SeedNodeNoDataAsync(bool alreadySeeded)
{
// Ensure a clean slate by deleting everything regardless of whether they may already exist
await DeleteIndicesAndTemplatesAsync();
await ClusterSettingsAsync();
await DeleteIndicesAndTemplatesAsync(alreadySeeded).ConfigureAwait(false);
await ClusterSettingsAsync().ConfigureAwait(false);
// and now recreate everything
await CreateIndicesAsync();
await CreateIndicesAsync().ConfigureAwait(false);
}

public async Task ClusterSettingsAsync()
Expand All @@ -99,7 +101,7 @@ public async Task ClusterSettingsAsync()
var putSettingsResponse = await Client.Cluster.PutSettingsAsync(new ClusterPutSettingsRequest
{
Transient = clusterConfiguration
});
}).ConfigureAwait(false);

putSettingsResponse.ShouldBeValid();
}
Expand All @@ -113,32 +115,35 @@ public async Task PutPipeline()
.Processors(pp => pp
.Set<Project>(s => s.Field(p => p.Metadata).Value(new { x = "y" }))
)
);
).ConfigureAwait(false);
putProcessors.ShouldBeValid();
}


public async Task DeleteIndicesAndTemplatesAsync()
public async Task DeleteIndicesAndTemplatesAsync(bool alreadySeeded)
{
var tasks = new Task[]
var tasks = new List<Task>
{
Client.Indices.DeleteTemplateAsync(TestsIndexTemplateName),
Client.Indices.DeleteAsync(typeof(Project)),
Client.Indices.DeleteAsync(typeof(Developer)),
Client.Indices.DeleteAsync(typeof(ProjectPercolation))
};
await Task.WhenAll(tasks);

if (alreadySeeded)
tasks.Add(Client.Indices.DeleteTemplateAsync(TestsIndexTemplateName));

await Task.WhenAll(tasks.ToArray()).ConfigureAwait(false);
}

private async Task CreateIndicesAndSeedIndexDataAsync()
{
await CreateIndicesAsync();
await SeedIndexDataAsync();
await CreateIndicesAsync().ConfigureAwait(false);
await SeedIndexDataAsync().ConfigureAwait(false);
}

public async Task CreateIndicesAsync()
{
var indexTemplateResponse = await CreateIndexTemplateAsync();
var indexTemplateResponse = await CreateIndexTemplateAsync().ConfigureAwait(false);
indexTemplateResponse.ShouldBeValid();

var tasks = new[]
Expand All @@ -152,7 +157,7 @@ await Task.WhenAll(tasks)
{
foreach (var r in t.Result)
r.ShouldBeValid();
});
}).ConfigureAwait(false);
}

private async Task SeedIndexDataAsync()
Expand All @@ -172,8 +177,8 @@ private async Task SeedIndexDataAsync()
(d, c) => d.Document(c).Routing(c.ProjectName)
)
) };
await Task.WhenAll(tasks);
await Client.Indices.RefreshAsync(Indices.Index(typeof(Project), typeof(Developer), typeof(ProjectPercolation)));
await Task.WhenAll(tasks).ConfigureAwait(false);
await Client.Indices.RefreshAsync(Indices.Index(typeof(Project), typeof(Developer), typeof(ProjectPercolation))).ConfigureAwait(false);
}

private Task<PutIndexTemplateResponse> CreateIndexTemplateAsync() => Client.Indices.PutTemplateAsync(
Expand Down

0 comments on commit ea2fb30

Please sign in to comment.