Skip to content
This repository was archived by the owner on Nov 1, 2023. It is now read-only.

Commit dc6cd05

Browse files
committed
Merge branch 'main' into rewrite/unmanaged_node
2 parents 9a2ea7b + ee1ad0a commit dc6cd05

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+617
-573
lines changed

.github/workflows/ci.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -481,8 +481,6 @@ jobs:
481481
cp artifacts/service/api-service.zip src/deployment
482482
cp artifacts/service-net/api-service-net.zip src/deployment
483483
cp -r artifacts/third-party src/deployment
484-
cp -r src/agent/script/linux/libfuzzer-coverage src/deployment/tools/linux/libfuzzer-coverage
485-
cp -r src/agent/script/win64/libfuzzer-coverage src/deployment/tools/win64/libfuzzer-coverage
486484
echo $GITHUB_RUN_ID | tee src/deployment/.build.id
487485
echo $GITHUB_SHA | tee src/deployment/.sha
488486
./src/ci/get-version.sh > src/deployment/VERSION

src/ApiService/ApiService/ApiService.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
<PackageReference Include="Microsoft.Azure.Functions.Worker.Sdk" Version="1.3.0" OutputItemType="Analyzer" />
2525
<PackageReference Include="Microsoft.Azure.Functions.Worker" Version="1.6.0" />
2626
<PackageReference Include="Azure.Data.Tables" Version="12.5.0" />
27-
<PackageReference Include="Azure.ResourceManager.Compute" Version="1.0.0" />
27+
<PackageReference Include="Azure.ResourceManager.Compute" Version="1.0.0-beta.8" />
2828
<PackageReference Include="Azure.Core" Version="1.25.0" />
2929
<PackageReference Include="Azure.Identity" Version="1.6.0" />
3030
<PackageReference Include="Azure.Messaging.EventGrid" Version="4.10.0" />

src/ApiService/ApiService/Functions/Jobs.cs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public Async.Task<HttpResponseData> Run([HttpTrigger(AuthorizationLevel.Anonymou
2323
});
2424

2525
private async Task<HttpResponseData> Post(HttpRequestData req) {
26-
var request = await RequestHandling.ParseRequest<JobConfig>(req);
26+
var request = await RequestHandling.ParseRequest<JobCreate>(req);
2727
if (!request.IsOk) {
2828
return await _context.RequestHandling.NotOk(req, request.ErrorV, "jobs create");
2929
}
@@ -33,10 +33,18 @@ private async Task<HttpResponseData> Post(HttpRequestData req) {
3333
return await _context.RequestHandling.NotOk(req, userInfo.ErrorV, "jobs create");
3434
}
3535

36+
var create = request.OkV;
37+
var cfg = new JobConfig(
38+
Build: create.Build,
39+
Duration: create.Duration,
40+
Logs: create.Logs,
41+
Name: create.Name,
42+
Project: create.Project);
43+
3644
var job = new Job(
3745
JobId: Guid.NewGuid(),
3846
State: JobState.Init,
39-
Config: request.OkV) {
47+
Config: cfg) {
4048
UserInfo = userInfo.OkV,
4149
};
4250

src/ApiService/ApiService/Functions/Proxy.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ private async Async.Task<HttpResponseData> Delete(HttpRequestData req) {
149149
return await _context.RequestHandling.NotOk(
150150
req,
151151
request.ErrorV,
152-
"debug_proxy delet");
152+
"debug_proxy delete");
153153
}
154154

155155
var regions = await _context.ProxyForwardOperations.RemoveForward(

src/ApiService/ApiService/Functions/ReproVmss.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ private async Async.Task<HttpResponseData> Get(HttpRequestData req) {
5151

5252

5353
private async Async.Task<HttpResponseData> Post(HttpRequestData req) {
54-
var request = await RequestHandling.ParseRequest<ReproConfig>(req);
54+
var request = await RequestHandling.ParseRequest<ReproCreate>(req);
5555
if (!request.IsOk) {
5656
return await _context.RequestHandling.NotOk(
5757
req,
@@ -67,7 +67,13 @@ private async Async.Task<HttpResponseData> Post(HttpRequestData req) {
6767
"repro_vm create");
6868
}
6969

70-
var vm = await _context.ReproOperations.Create(request.OkV, userInfo.OkV);
70+
var create = request.OkV;
71+
var cfg = new ReproConfig(
72+
Container: create.Container,
73+
Path: create.Path,
74+
Duration: create.Duration);
75+
76+
var vm = await _context.ReproOperations.Create(cfg, userInfo.OkV);
7177
if (!vm.IsOk) {
7278
return await _context.RequestHandling.NotOk(
7379
req,

src/ApiService/ApiService/Functions/Tasks.cs

Lines changed: 48 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System.Net;
2+
using System.Threading.Tasks;
23
using Microsoft.Azure.Functions.Worker;
34
using Microsoft.Azure.Functions.Worker.Http;
45

@@ -31,20 +32,36 @@ private async Async.Task<HttpResponseData> Get(HttpRequestData req) {
3132
return await _context.RequestHandling.NotOk(req, request.ErrorV, "task get");
3233
}
3334

34-
if (request.OkV.TaskId != null) {
35-
var task = await _context.TaskOperations.GetByTaskId(request.OkV.TaskId.Value);
35+
if (request.OkV.TaskId is Guid taskId) {
36+
var task = await _context.TaskOperations.GetByTaskId(taskId);
3637
if (task == null) {
37-
return await _context.RequestHandling.NotOk(req, new Error(ErrorCode.INVALID_REQUEST, new[] { "unable to find task"
38-
}), "task get");
39-
38+
return await _context.RequestHandling.NotOk(
39+
req,
40+
new Error(
41+
ErrorCode.INVALID_REQUEST,
42+
new[] { "unable to find task" }),
43+
"task get");
4044
}
41-
task.Nodes = await _context.NodeTasksOperations.GetNodeAssignments(request.OkV.TaskId.Value).ToListAsync();
42-
task.Events = await _context.TaskEventOperations.GetSummary(request.OkV.TaskId.Value).ToListAsync();
43-
44-
var response = req.CreateResponse(HttpStatusCode.OK);
45-
await response.WriteAsJsonAsync(task);
46-
return response;
4745

46+
var (nodes, events) = await (
47+
_context.NodeTasksOperations.GetNodeAssignments(taskId).ToListAsync().AsTask(),
48+
_context.TaskEventOperations.GetSummary(taskId).ToListAsync().AsTask());
49+
50+
var result = new TaskSearchResult(
51+
JobId: task.JobId,
52+
TaskId: task.TaskId,
53+
State: task.State,
54+
Os: task.Os,
55+
Config: task.Config,
56+
Error: task.Error,
57+
Auth: task.Auth,
58+
Heartbeat: task.Heartbeat,
59+
EndTime: task.EndTime,
60+
UserInfo: task.UserInfo,
61+
Nodes: nodes,
62+
Events: events);
63+
64+
return await RequestHandling.Ok(req, result);
4865
}
4966

5067
var tasks = await _context.TaskOperations.SearchAll().ToListAsync();
@@ -55,7 +72,7 @@ private async Async.Task<HttpResponseData> Get(HttpRequestData req) {
5572

5673

5774
private async Async.Task<HttpResponseData> Post(HttpRequestData req) {
58-
var request = await RequestHandling.ParseRequest<TaskConfig>(req);
75+
var request = await RequestHandling.ParseRequest<TaskCreate>(req);
5976
if (!request.IsOk) {
6077
return await _context.RequestHandling.NotOk(
6178
req,
@@ -68,7 +85,19 @@ private async Async.Task<HttpResponseData> Post(HttpRequestData req) {
6885
return await _context.RequestHandling.NotOk(req, userInfo.ErrorV, "task create");
6986
}
7087

71-
var checkConfig = await _context.Config.CheckConfig(request.OkV);
88+
var create = request.OkV;
89+
var cfg = new TaskConfig(
90+
JobId: create.JobId,
91+
PrereqTasks: create.PrereqTasks,
92+
Task: create.Task,
93+
Vm: null,
94+
Pool: create.Pool,
95+
Containers: create.Containers,
96+
Tags: create.Tags,
97+
Debug: create.Debug,
98+
Colocate: create.Colocate);
99+
100+
var checkConfig = await _context.Config.CheckConfig(cfg);
72101
if (!checkConfig.IsOk) {
73102
return await _context.RequestHandling.NotOk(
74103
req,
@@ -82,23 +111,23 @@ private async Async.Task<HttpResponseData> Post(HttpRequestData req) {
82111
return response;
83112
}
84113

85-
var job = await _context.JobOperations.Get(request.OkV.JobId);
114+
var job = await _context.JobOperations.Get(cfg.JobId);
86115
if (job == null) {
87116
return await _context.RequestHandling.NotOk(
88117
req,
89118
new Error(ErrorCode.INVALID_REQUEST, new[] { "unable to find job" }),
90-
request.OkV.JobId.ToString());
119+
cfg.JobId.ToString());
91120
}
92121

93122
if (job.State != JobState.Enabled && job.State != JobState.Init) {
94123
return await _context.RequestHandling.NotOk(
95124
req,
96125
new Error(ErrorCode.UNABLE_TO_ADD_TASK_TO_JOB, new[] { $"unable to add a job in state {job.State}" }),
97-
request.OkV.JobId.ToString());
126+
cfg.JobId.ToString());
98127
}
99128

100-
if (request.OkV.PrereqTasks != null) {
101-
foreach (var taskId in request.OkV.PrereqTasks) {
129+
if (cfg.PrereqTasks != null) {
130+
foreach (var taskId in cfg.PrereqTasks) {
102131
var prereq = await _context.TaskOperations.GetByTaskId(taskId);
103132

104133
if (prereq == null) {
@@ -110,7 +139,7 @@ private async Async.Task<HttpResponseData> Post(HttpRequestData req) {
110139
}
111140
}
112141

113-
var task = await _context.TaskOperations.Create(request.OkV, request.OkV.JobId, userInfo.OkV);
142+
var task = await _context.TaskOperations.Create(cfg, cfg.JobId, userInfo.OkV);
114143

115144
if (!task.IsOk) {
116145
return await _context.RequestHandling.NotOk(

src/ApiService/ApiService/Functions/TimerProxy.cs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,14 +64,16 @@ public async Async.Task Run([TimerTrigger("00:00:30")] TimerInfo myTimer) {
6464
// since we do not support bring your own NSG
6565

6666
if (await nsgOpertions.GetNsg(region) != null) {
67-
var network = await Network.Create(region, _context);
67+
var network = await Network.Init(region, _context);
6868

6969
var subnet = await network.GetSubnet();
70-
var vnet = await network.GetVnet();
71-
if (subnet != null && vnet != null) {
72-
var result = await nsgOpertions.AssociateSubnet(region, vnet, subnet);
73-
if (!result.OkV) {
74-
_logger.Error($"Failed to associate NSG and subnet due to {result.ErrorV} in region {region}");
70+
if (subnet != null) {
71+
var vnet = await network.GetVnet();
72+
if (vnet != null) {
73+
var result = await nsgOpertions.AssociateSubnet(region, vnet, subnet);
74+
if (!result.OkV) {
75+
_logger.Error($"Failed to associate NSG and subnet due to {result.ErrorV} in region {region}");
76+
}
7577
}
7678
}
7779
}

src/ApiService/ApiService/OneFuzzTypes/Model.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -234,20 +234,20 @@ public record TaskConfig(
234234
Dictionary<string, string>? Tags = null,
235235
List<TaskDebugFlag>? Debug = null,
236236
bool? Colocate = null
237-
);
237+
);
238238

239239
public record TaskEventSummary(
240240
DateTimeOffset? Timestamp,
241241
string EventData,
242242
string EventType
243-
);
243+
);
244244

245245

246246
public record NodeAssignment(
247247
Guid NodeId,
248248
Guid? ScalesetId,
249249
NodeTaskState State
250-
);
250+
);
251251

252252

253253
public record Task(
@@ -261,8 +261,6 @@ public record Task(
261261
DateTimeOffset? Heartbeat = null,
262262
DateTimeOffset? EndTime = null,
263263
UserInfo? UserInfo = null) : StatefulEntityBase<TaskState>(State) {
264-
public List<TaskEventSummary> Events { get; set; } = new List<TaskEventSummary>();
265-
public List<NodeAssignment> Nodes { get; set; } = new List<NodeAssignment>();
266264
}
267265

268266
public record TaskEvent(

0 commit comments

Comments
 (0)