Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/actions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
run: dotnet jb cleanupcode Cassandra.DistributedTaskQueue.sln --profile=CatalogueCleanup --verbosity=WARN && git diff --exit-code -- ':!./cassandra-distributed-task-queue-ui/.yarn'
- name: Check front code
run: yarn --cwd cassandra-distributed-task-queue-ui lint
- name: Build docker compose environment
- name: Build docker-compose environment
run: docker compose -f docker-compose.yaml up -d --build
env:
ES_VERSION: ${{ matrix.es-version }}
Expand All @@ -50,7 +50,7 @@ jobs:
run: dotnet test --no-build --configuration Release
env:
ES_VERSION: ${{ matrix.es-version }}
- name: Stop docker compose
- name: Stop
if: always()
run: docker compose -f docker-compose.yaml down
env:
Expand Down
2 changes: 1 addition & 1 deletion .start-all.cmd
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
wsl -u root sh -c "service docker status || (service docker start && echo 'artificially waiting 20s for docker to warmup...' && sleep 20s)"
wsl docker-compose -f docker-compose.linux.yaml up -d --build
wsl docker compose -f docker-compose.linux.yaml up -d --build
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="6.0.16" />
<PackageReference Include="SkbKontur.TypeScript.ContractGenerator" Version="2.0.131" />
</ItemGroup>

Expand Down
27 changes: 13 additions & 14 deletions Cassandra.DistributedTaskQueue.Monitoring.TestService/Startup.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,23 +6,22 @@

using SkbKontur.Cassandra.DistributedTaskQueue.Monitoring.Json;

namespace SkbKontur.Cassandra.DistributedTaskQueue.Monitoring.TestService
namespace SkbKontur.Cassandra.DistributedTaskQueue.Monitoring.TestService;

public class Startup
{
public class Startup
public void ConfigureServices(IServiceCollection services)
{
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers().AddNewtonsoftJson(options => options.SerializerSettings.Converters.Add(new LongToStringConverter()));
services.AddSingleton<IControllerFactory>(new GroboControllerFactory());
}
services.AddControllers().AddJsonOptions(options => options.JsonSerializerOptions.Converters.Add(new LongToStringConverter()));
services.AddSingleton<IControllerFactory>(new GroboControllerFactory());
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
app.UseDeveloperExceptionPage();
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
app.UseDeveloperExceptionPage();

app.UseRouting();
app.UseEndpoints(endpoints => endpoints.MapControllers());
}
app.UseRouting();
app.UseEndpoints(endpoints => endpoints.MapControllers());
}
}
Original file line number Diff line number Diff line change
@@ -1,33 +1,32 @@
using JetBrains.Annotations;
using System.Text.Json.Serialization;

using Newtonsoft.Json;
using JetBrains.Annotations;

using SkbKontur.Cassandra.DistributedTaskQueue.Cassandra.Entities;

namespace SkbKontur.Cassandra.DistributedTaskQueue.Monitoring.Api
namespace SkbKontur.Cassandra.DistributedTaskQueue.Monitoring.Api;

public class RtqMonitoringSearchRequest
{
public class RtqMonitoringSearchRequest
{
[NotNull]
[JsonProperty("enqueueTimestampRange")]
public TimestampRange EnqueueTimestampRange { get; set; }

[CanBeNull]
[JsonProperty("queryString")]
public string QueryString { get; set; }

[CanBeNull]
[JsonProperty("states")]
public TaskState[] States { get; set; }

[CanBeNull, ItemNotNull]
[JsonProperty("names")]
public string[] Names { get; set; }

[JsonProperty("offset")]
public int? Offset { get; set; }

[JsonProperty("count")]
public int? Count { get; set; }
}
[NotNull]
[JsonPropertyName("enqueueTimestampRange")]
public TimestampRange EnqueueTimestampRange { get; set; }

[CanBeNull]
[JsonPropertyName("queryString")]
public string QueryString { get; set; }

[CanBeNull]
[JsonPropertyName("states")]
public TaskState[] States { get; set; }

[CanBeNull, ItemNotNull]
[JsonPropertyName("names")]
public string[] Names { get; set; }

[JsonPropertyName("offset")]
public int? Offset { get; set; }

[JsonPropertyName("count")]
public int? Count { get; set; }
}
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
using JetBrains.Annotations;
using System.Text.Json.Serialization;

using Newtonsoft.Json;
using JetBrains.Annotations;

namespace SkbKontur.Cassandra.DistributedTaskQueue.Monitoring.Api
namespace SkbKontur.Cassandra.DistributedTaskQueue.Monitoring.Api;

public class RtqMonitoringSearchResults
{
public class RtqMonitoringSearchResults
{
[JsonProperty("totalCount")]
public long TotalCount { get; set; }
[JsonPropertyName("totalCount")]
public long TotalCount { get; set; }

[NotNull, ItemNotNull]
[JsonProperty("taskMetas")]
public RtqMonitoringTaskMeta[] TaskMetas { get; set; }
}
[NotNull, ItemNotNull]
[JsonPropertyName("taskMetas")]
public RtqMonitoringTaskMeta[] TaskMetas { get; set; } = null!;
}
118 changes: 58 additions & 60 deletions Cassandra.DistributedTaskQueue.Monitoring/Api/RtqMonitoringTaskMeta.cs
Original file line number Diff line number Diff line change
@@ -1,67 +1,65 @@
using JetBrains.Annotations;
using System.Text.Json.Serialization;

using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using JetBrains.Annotations;

using SkbKontur.Cassandra.DistributedTaskQueue.Cassandra.Entities;
using SkbKontur.Cassandra.DistributedTaskQueue.Monitoring.Json;

namespace SkbKontur.Cassandra.DistributedTaskQueue.Monitoring.Api
namespace SkbKontur.Cassandra.DistributedTaskQueue.Monitoring.Api;

public class RtqMonitoringTaskMeta
{
public class RtqMonitoringTaskMeta
{
[NotNull]
[JsonProperty("name")]
public string Name { get; set; }

[NotNull]
[JsonProperty("id")]
public string Id { get; set; }

[JsonProperty("ticks")]
[JsonConverter(typeof(LongToStringConverter))]
public long Ticks { get; set; }

[JsonProperty("minimalStartTicks")]
[JsonConverter(typeof(LongToStringConverter))]
public long MinimalStartTicks { get; set; }

[JsonProperty("startExecutingTicks")]
[JsonConverter(typeof(LongToStringConverter))]
public long? StartExecutingTicks { get; set; }

[JsonProperty("finishExecutingTicks")]
[JsonConverter(typeof(LongToStringConverter))]
public long? FinishExecutingTicks { get; set; }

[JsonProperty("lastModificationTicks")]
[JsonConverter(typeof(LongToStringConverter))]
public long? LastModificationTicks { get; set; }

[JsonProperty("expirationTimestampTicks")]
[JsonConverter(typeof(LongToStringConverter))]
public long? ExpirationTimestampTicks { get; set; }

[JsonProperty("expirationModificationTicks")]
[JsonConverter(typeof(LongToStringConverter))]
public long? ExpirationModificationTicks { get; set; }

[JsonProperty("executionDurationTicks")]
[JsonConverter(typeof(LongToStringConverter))]
public long? ExecutionDurationTicks { get; set; }

[JsonProperty("state")]
[JsonConverter(typeof(StringEnumConverter))]
public TaskState State { get; set; }

[CanBeNull]
[JsonProperty("taskActions")]
public TaskActions TaskActions { get; set; }

[JsonProperty("attempts")]
public int Attempts { get; set; }

[JsonProperty("parentTaskId")]
public string ParentTaskId { get; set; }
}
[NotNull]
[JsonPropertyName("name")]
public string Name { get; set; } = null!;

[NotNull]
[JsonPropertyName("id")]
public string Id { get; set; } = null!;

[JsonPropertyName("ticks")]
[JsonConverter(typeof(LongToStringConverter))]
public long Ticks { get; set; }

[JsonPropertyName("minimalStartTicks")]
[JsonConverter(typeof(LongToStringConverter))]
public long MinimalStartTicks { get; set; }

[JsonPropertyName("startExecutingTicks")]
[JsonConverter(typeof(LongToStringConverter))]
public long? StartExecutingTicks { get; set; }

[JsonPropertyName("finishExecutingTicks")]
[JsonConverter(typeof(LongToStringConverter))]
public long? FinishExecutingTicks { get; set; }

[JsonPropertyName("lastModificationTicks")]
[JsonConverter(typeof(LongToStringConverter))]
public long? LastModificationTicks { get; set; }

[JsonPropertyName("expirationTimestampTicks")]
[JsonConverter(typeof(LongToStringConverter))]
public long? ExpirationTimestampTicks { get; set; }

[JsonPropertyName("expirationModificationTicks")]
[JsonConverter(typeof(LongToStringConverter))]
public long? ExpirationModificationTicks { get; set; }

[JsonPropertyName("executionDurationTicks")]
[JsonConverter(typeof(LongToStringConverter))]
public long? ExecutionDurationTicks { get; set; }

[JsonPropertyName("state")]
[JsonConverter(typeof(JsonStringEnumConverter))]
public TaskState State { get; set; }

[CanBeNull]
[JsonPropertyName("taskActions")]
public TaskActions TaskActions { get; set; }

[JsonPropertyName("attempts")]
public int Attempts { get; set; }

[JsonPropertyName("parentTaskId")]
public string ParentTaskId { get; set; }
}
Original file line number Diff line number Diff line change
@@ -1,31 +1,30 @@
using JetBrains.Annotations;

using Newtonsoft.Json;
using System.Text.Json.Serialization;

using SkbKontur.Cassandra.DistributedTaskQueue.Handling;
using SkbKontur.Cassandra.DistributedTaskQueue.Monitoring.Json;

namespace SkbKontur.Cassandra.DistributedTaskQueue.Monitoring.Api
namespace SkbKontur.Cassandra.DistributedTaskQueue.Monitoring.Api;

public class RtqMonitoringTaskModel
{
public class RtqMonitoringTaskModel
{
public static RtqMonitoringTaskModel Empty => new RtqMonitoringTaskModel();

[NotNull]
[JsonProperty("taskMeta")]
public RtqMonitoringTaskMeta TaskMeta { get; set; }

[NotNull]
[JsonProperty("taskData")]
[JsonConverter(typeof(TaskDataJsonSerializer))]
public IRtqTaskData TaskData { get; set; }

[NotNull, ItemNotNull]
[JsonProperty("childTaskIds")]
public string[] ChildTaskIds { get; set; }

[NotNull, ItemNotNull]
[JsonProperty("exceptionInfos")]
public string[] ExceptionInfos { get; set; }
}
public static RtqMonitoringTaskModel Empty => new RtqMonitoringTaskModel();

[NotNull]
[JsonPropertyName("taskMeta")]
public RtqMonitoringTaskMeta TaskMeta { get; set; }

[NotNull]
[JsonPropertyName("taskData")]
[JsonConverter(typeof(TaskDataJsonSerializer))]
public IRtqTaskData TaskData { get; set; }

[NotNull, ItemNotNull]
[JsonPropertyName("childTaskIds")]
public string[] ChildTaskIds { get; set; }

[NotNull, ItemNotNull]
[JsonPropertyName("exceptionInfos")]
public string[] ExceptionInfos { get; set; }
}
6 changes: 3 additions & 3 deletions Cassandra.DistributedTaskQueue.Monitoring/Api/TaskActions.cs
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
using Newtonsoft.Json;
using System.Text.Json.Serialization;

namespace SkbKontur.Cassandra.DistributedTaskQueue.Monitoring.Api;

public class TaskActions
{
[JsonProperty("canCancel")]
[JsonPropertyName("canCancel")]
public bool CanCancel { get; set; }

[JsonProperty("canRerun")]
[JsonPropertyName("canRerun")]
public bool CanRerun { get; set; }
}
27 changes: 13 additions & 14 deletions Cassandra.DistributedTaskQueue.Monitoring/Api/TimestampRange.cs
Original file line number Diff line number Diff line change
@@ -1,22 +1,21 @@
using JetBrains.Annotations;
using System.Text.Json.Serialization;

using Newtonsoft.Json;
using JetBrains.Annotations;

using SkbKontur.Cassandra.DistributedTaskQueue.Monitoring.Json;
using SkbKontur.Cassandra.TimeBasedUuid;

namespace SkbKontur.Cassandra.DistributedTaskQueue.Monitoring.Api
namespace SkbKontur.Cassandra.DistributedTaskQueue.Monitoring.Api;

public class TimestampRange
{
public class TimestampRange
{
[NotNull]
[JsonProperty("lowerBound")]
[JsonConverter(typeof(TimestampJsonConverter))]
public Timestamp LowerBound { get; set; }
[NotNull]
[JsonPropertyName("lowerBound")]
[JsonConverter(typeof(TimestampJsonConverter))]
public Timestamp LowerBound { get; set; } = null!;

[NotNull]
[JsonProperty("upperBound")]
[JsonConverter(typeof(TimestampJsonConverter))]
public Timestamp UpperBound { get; set; }
}
[NotNull]
[JsonPropertyName("upperBound")]
[JsonConverter(typeof(TimestampJsonConverter))]
public Timestamp UpperBound { get; set; } = null!;
}
Loading
Loading