Skip to content

Commit d09dc77

Browse files
authored
Merge pull request #52 from shabtaisharon/ESCP-111
Update the job status json to include files status
2 parents 4c3504f + 1f581f4 commit d09dc77

File tree

11 files changed

+275
-15
lines changed

11 files changed

+275
-15
lines changed

SpectraLogic.SpectraRioBrokerClient.Integration.Test/SpectraRioBrokerClientIntegrationTests.cs

Lines changed: 126 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,15 @@ public void ArchiveAndRestore()
7474
Assert.Less(pollingAttemps, MAX_POLLING_ATTEMPS);
7575
Assert.AreEqual(JobStatusEnum.COMPLETED, archiveJob.Status.Status);
7676

77+
var job = SpectraRioBrokerClientFixture.SpectraRioBrokerClient.GetJob(new GetJobRequest(archiveJob.JobId));
78+
79+
Assert.AreEqual(JobStatusEnum.COMPLETED, job.Status.Status);
80+
Assert.AreEqual("Archive job completed successfully", job.Status.Message);
81+
foreach (var file in job.Files)
82+
{
83+
Assert.AreEqual("Completed", file.Status);
84+
}
85+
7786
/**********
7887
* RESTORE *
7988
***********/
@@ -99,6 +108,15 @@ public void ArchiveAndRestore()
99108
Assert.Less(pollingAttemps, MAX_POLLING_ATTEMPS);
100109
Assert.AreEqual(JobStatusEnum.COMPLETED, restoreJob.Status.Status);
101110

111+
job = SpectraRioBrokerClientFixture.SpectraRioBrokerClient.GetJob(new GetJobRequest(restoreJob.JobId));
112+
113+
Assert.AreEqual(JobStatusEnum.COMPLETED, job.Status.Status);
114+
Assert.AreEqual("Restore job completed successfully", job.Status.Message);
115+
foreach (var file in job.Files)
116+
{
117+
Assert.AreEqual("Completed", file.Status);
118+
}
119+
102120
var deleteF1Request = new DeleteFileRequest(SpectraRioBrokerClientFixture.BrokerName, fileName1);
103121
var deleteF2Request = new DeleteFileRequest(SpectraRioBrokerClientFixture.BrokerName, fileName2);
104122
SpectraRioBrokerClientFixture.SpectraRioBrokerClient.DeleteFile(deleteF1Request);
@@ -132,7 +150,17 @@ public void CancelArchiveJob()
132150
var cancel = SpectraRioBrokerClientFixture.SpectraRioBrokerClient.Cancel(cancelRequest);
133151

134152
Assert.AreEqual(JobStatusEnum.CANCELED, cancel.Status.Status);
135-
Assert.AreEqual("Cancelled", cancel.Status.Message);
153+
Assert.AreEqual("Canceled", cancel.Status.Message);
154+
155+
var job = SpectraRioBrokerClientFixture.SpectraRioBrokerClient.GetJob(new GetJobRequest(archiveJob.JobId));
156+
157+
Assert.AreEqual(JobStatusEnum.CANCELED, job.Status.Status);
158+
Assert.AreEqual("Canceled", job.Status.Message);
159+
foreach (var file in job.Files)
160+
{
161+
Assert.AreEqual("Canceled", file.Status);
162+
}
163+
136164
}
137165
finally
138166
{
@@ -182,7 +210,16 @@ public void CancelRestoreJob()
182210
var cancel = SpectraRioBrokerClientFixture.SpectraRioBrokerClient.Cancel(cancelRequest);
183211

184212
Assert.AreEqual(JobStatusEnum.CANCELED, cancel.Status.Status);
185-
Assert.AreEqual("Cancelled", cancel.Status.Message);
213+
Assert.AreEqual("Canceled", cancel.Status.Message);
214+
215+
var job = SpectraRioBrokerClientFixture.SpectraRioBrokerClient.GetJob(new GetJobRequest(restoreJob.JobId));
216+
217+
Assert.AreEqual(JobStatusEnum.CANCELED, job.Status.Status);
218+
Assert.AreEqual("Canceled", job.Status.Message);
219+
foreach (var file in job.Files)
220+
{
221+
Assert.AreEqual("Canceled", file.Status);
222+
}
186223
}
187224
finally
188225
{
@@ -191,13 +228,77 @@ public void CancelRestoreJob()
191228
}
192229
}
193230

194-
[Test, Ignore("Cancel Archive job is not yet supported by the server ; Retry is not yet implemented in the server")]
195-
public void RetryArchiveCancelledJob()
231+
[Test, Ignore("Retry is not yet implemented in the server")]
232+
public void RetryArchiveCanceledJob()
196233
{
234+
try
235+
{
236+
SpectraRioBrokerClientFixture.SetupTestData();
237+
238+
var fileName1 = Guid.NewGuid().ToString();
239+
var archiveRequest = new ArchiveRequest(SpectraRioBrokerClientFixture.BrokerName, new List<ArchiveFile>
240+
{
241+
new ArchiveFile(fileName1, $"{SpectraRioBrokerClientFixture.ArchiveTempDir}/F1.txt".ToFileUri(), 14, new Dictionary<string, string>{ { "fileName", fileName1 } }, false, false),
242+
});
243+
244+
var archiveJob = SpectraRioBrokerClientFixture.SpectraRioBrokerClient.Archive(archiveRequest);
245+
246+
var cancelRequest = new CancelRequest(archiveJob.JobId);
247+
var cancel = SpectraRioBrokerClientFixture.SpectraRioBrokerClient.Cancel(cancelRequest);
248+
249+
Assert.AreEqual(JobStatusEnum.CANCELED, cancel.Status.Status);
250+
Assert.AreEqual("Canceled", cancel.Status.Message);
251+
252+
var job = SpectraRioBrokerClientFixture.SpectraRioBrokerClient.GetJob(new GetJobRequest(archiveJob.JobId));
253+
254+
Assert.AreEqual(JobStatusEnum.CANCELED, job.Status.Status);
255+
Assert.AreEqual("Canceled", job.Status.Message);
256+
foreach (var file in job.Files)
257+
{
258+
Assert.AreEqual("Canceled", file.Status);
259+
}
260+
261+
262+
var retryRequest = new RetryRequest(archiveJob.JobId);
263+
var retryJob = SpectraRioBrokerClientFixture.SpectraRioBrokerClient.Retry(retryRequest);
264+
265+
Assert.AreNotEqual(retryJob.JobId, archiveJob.JobId);
266+
267+
var pollingAttemps = 0;
268+
do
269+
{
270+
retryJob = SpectraRioBrokerClientFixture.SpectraRioBrokerClient.GetJob(
271+
new GetJobRequest(retryJob.JobId));
272+
_log.Debug(retryJob.Status);
273+
Thread.Sleep(TimeSpan.FromSeconds(POLLING_INTERVAL));
274+
pollingAttemps++;
275+
} while (retryJob.Status.Status == JobStatusEnum.ACTIVE && pollingAttemps < MAX_POLLING_ATTEMPS);
276+
277+
Assert.Less(pollingAttemps, MAX_POLLING_ATTEMPS);
278+
Assert.AreEqual(JobStatusEnum.COMPLETED, retryJob.Status.Status);
279+
280+
job = SpectraRioBrokerClientFixture.SpectraRioBrokerClient.GetJob(new GetJobRequest(retryJob.JobId));
281+
282+
Assert.AreEqual(JobStatusEnum.COMPLETED, job.Status.Status);
283+
Assert.AreEqual("Compleated", job.Status.Message);
284+
foreach (var file in job.Files)
285+
{
286+
Assert.AreEqual("Archive job completed successfully", file.Status);
287+
}
288+
289+
290+
var deleteF1Request = new DeleteFileRequest(SpectraRioBrokerClientFixture.BrokerName, fileName1);
291+
SpectraRioBrokerClientFixture.SpectraRioBrokerClient.DeleteFile(deleteF1Request);
292+
}
293+
finally
294+
{
295+
Directory.Delete(SpectraRioBrokerClientFixture.ArchiveTempDir, true);
296+
Directory.Delete(SpectraRioBrokerClientFixture.RestoreTempDir, true);
297+
}
197298
}
198299

199300
[Test, Ignore("Retry is not yet implemented in the server")]
200-
public void RetryRestoreCancelledJob()
301+
public void RetryRestoreCanceledJob()
201302
{
202303
try
203304
{
@@ -237,7 +338,16 @@ public void RetryRestoreCancelledJob()
237338
var cancel = SpectraRioBrokerClientFixture.SpectraRioBrokerClient.Cancel(cancelRequest);
238339

239340
Assert.AreEqual(JobStatusEnum.CANCELED, cancel.Status.Status);
240-
Assert.AreEqual("Cancelled", cancel.Status.Message);
341+
Assert.AreEqual("Canceled", cancel.Status.Message);
342+
343+
var job = SpectraRioBrokerClientFixture.SpectraRioBrokerClient.GetJob(new GetJobRequest(restoreJob.JobId));
344+
345+
Assert.AreEqual(JobStatusEnum.CANCELED, job.Status.Status);
346+
Assert.AreEqual("Canceled", job.Status.Message);
347+
foreach (var file in job.Files)
348+
{
349+
Assert.AreEqual("Canceled", file.Status);
350+
}
241351

242352
var retryRequest = new RetryRequest(restoreJob.JobId);
243353
var retryJob = SpectraRioBrokerClientFixture.SpectraRioBrokerClient.Retry(retryRequest);
@@ -257,6 +367,16 @@ public void RetryRestoreCancelledJob()
257367
Assert.Less(pollingAttemps, MAX_POLLING_ATTEMPS);
258368
Assert.AreEqual(JobStatusEnum.COMPLETED, retryJob.Status.Status);
259369

370+
job = SpectraRioBrokerClientFixture.SpectraRioBrokerClient.GetJob(new GetJobRequest(retryJob.JobId));
371+
372+
Assert.AreEqual(JobStatusEnum.COMPLETED, job.Status.Status);
373+
Assert.AreEqual("Compleated", job.Status.Message);
374+
foreach (var file in job.Files)
375+
{
376+
Assert.AreEqual("Restore job completed successfully", file.Status);
377+
}
378+
379+
260380
var deleteF1Request = new DeleteFileRequest(SpectraRioBrokerClientFixture.BrokerName, fileName1);
261381
SpectraRioBrokerClientFixture.SpectraRioBrokerClient.DeleteFile(deleteF1Request);
262382
}

SpectraLogic.SpectraRioBrokerClient.Test/SpectraRioBrokerClientTest.cs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ public void CancelTest()
108108
Assert.AreEqual(1234, job.TotalSizeInBytes);
109109
Assert.AreEqual("2018-01-23T03:52:46.869Z[UTC]", job.Created);
110110
Assert.AreEqual(1.0, job.Progress);
111-
Assert.AreEqual("Cancelled", job.Status.Message);
111+
Assert.AreEqual("Canceled", job.Status.Message);
112112
Assert.AreEqual(JobStatusEnum.CANCELED, job.Status.Status);
113113

114114
mockBuilder.VerifyAll();
@@ -363,6 +363,10 @@ public void GetJobWithStatusStringTest()
363363
Assert.AreEqual(0.5, job.Progress);
364364
Assert.AreEqual("Active", job.Status.Message);
365365
Assert.AreEqual(JobStatusEnum.ACTIVE, job.Status.Status);
366+
foreach (var file in job.Files)
367+
{
368+
Assert.AreEqual("Transferring", file.Status);
369+
}
366370

367371
job = client.GetJob(getJobWithStatusRequest);
368372
Assert.AreEqual(new Guid("101bddb7-8b34-4b35-9ef5-3c829d561e19"), job.JobId);
@@ -375,6 +379,10 @@ public void GetJobWithStatusStringTest()
375379
Assert.AreEqual(1.0, job.Progress);
376380
Assert.AreEqual("Completed", job.Status.Message);
377381
Assert.AreEqual(JobStatusEnum.COMPLETED, job.Status.Status);
382+
foreach (var file in job.Files)
383+
{
384+
Assert.AreEqual("Completed", file.Status);
385+
}
378386

379387
job = client.GetJob(getJobWithStatusRequest);
380388
Assert.AreEqual(new Guid("101bddb7-8b34-4b35-9ef5-3c829d561e19"), job.JobId);
@@ -387,6 +395,10 @@ public void GetJobWithStatusStringTest()
387395
Assert.AreEqual(1.0, job.Progress);
388396
Assert.AreEqual("Canceled", job.Status.Message);
389397
Assert.AreEqual(JobStatusEnum.CANCELED, job.Status.Status);
398+
foreach (var file in job.Files)
399+
{
400+
Assert.AreEqual("Canceled", file.Status);
401+
}
390402

391403
mockBuilder.VerifyAll();
392404
mockNetwork.VerifyAll();

SpectraLogic.SpectraRioBrokerClient.Test/TestFiles/CancelResponse

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"created": "2018-01-23T03:52:46.869Z[UTC]",
77
"progress": 1.0,
88
"status": {
9-
"message": "Cancelled",
9+
"message": "Canceled",
1010
"status": "CANCELED"
1111
}
1212
}

SpectraLogic.SpectraRioBrokerClient.Test/TestFiles/GetJobWithStatusActiveResponse

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,12 @@
1010
"status": {
1111
"message": "Active",
1212
"status": "ACTIVE"
13-
}
13+
},
14+
"files": [
15+
{
16+
"name": "test",
17+
"status": "Transferring",
18+
"statusMessage": "Transferring"
19+
}
20+
]
1421
}

SpectraLogic.SpectraRioBrokerClient.Test/TestFiles/GetJobWithStatusCanceledResponse

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,12 @@
1010
"status": {
1111
"message": "Canceled",
1212
"status": "CANCELED"
13-
}
13+
},
14+
"files": [
15+
{
16+
"name": "test",
17+
"status": "Canceled",
18+
"statusMessage": "Canceled"
19+
}
20+
]
1421
}

SpectraLogic.SpectraRioBrokerClient.Test/TestFiles/GetJobWithStatusCompletedResponse

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,12 @@
1010
"status": {
1111
"message": "Completed",
1212
"status": "COMPLETED"
13-
}
13+
},
14+
"files": [
15+
{
16+
"name": "test",
17+
"status": "Completed",
18+
"statusMessage": "Completed"
19+
}
20+
]
1421
}

SpectraLogic.SpectraRioBrokerClient/Model/IJob.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
*/
1515

1616
using System;
17+
using System.Collections.Generic;
1718

1819
namespace SpectraLogic.SpectraRioBrokerClient.Model
1920
{
@@ -96,6 +97,14 @@ public interface IJob
9697
/// </value>
9798
long TotalSizeInBytes { get; }
9899

100+
/// <summary>
101+
/// Gets the files.
102+
/// </summary>
103+
/// <value>
104+
/// The files.
105+
/// </value>
106+
IList<JobFileStatus> Files { get; }
107+
99108
#endregion Properties
100109
}
101110
}

SpectraLogic.SpectraRioBrokerClient/Model/Job.cs

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
using Newtonsoft.Json;
1717
using System;
18+
using System.Collections.Generic;
1819

1920
namespace SpectraLogic.SpectraRioBrokerClient.Model
2021
{
@@ -27,7 +28,7 @@ public class Job : IJob
2728
#region Constructors
2829

2930
/// <summary>
30-
/// Initializes a new instance of the <see cref="Job"/> class.
31+
/// Initializes a new instance of the <see cref="Job" /> class.
3132
/// </summary>
3233
/// <param name="jobId">The job identifier.</param>
3334
/// <param name="jobType">Type of the job.</param>
@@ -38,7 +39,8 @@ public class Job : IJob
3839
/// <param name="created">The created.</param>
3940
/// <param name="progress">The progress.</param>
4041
/// <param name="status">The status.</param>
41-
public Job(Guid jobId, JobType jobType, int numberOfFiles, int filesTransferred, long totalSizeInBytes, long bytesTransferred, string created, double progress, JobStatus status)
42+
/// <param name="files">The files.</param>
43+
public Job(Guid jobId, JobType jobType, int numberOfFiles, int filesTransferred, long totalSizeInBytes, long bytesTransferred, string created, double progress, JobStatus status, IList<JobFileStatus> files)
4244
{
4345
JobId = jobId;
4446
JobType = jobType;
@@ -49,6 +51,7 @@ public Job(Guid jobId, JobType jobType, int numberOfFiles, int filesTransferred,
4951
Created = created;
5052
Progress = progress;
5153
Status = status;
54+
Files = files;
5255
}
5356

5457
#endregion Constructors
@@ -127,6 +130,15 @@ public Job(Guid jobId, JobType jobType, int numberOfFiles, int filesTransferred,
127130
/// </value>
128131
[JsonProperty(PropertyName = "totalSizeInBytes")] public long TotalSizeInBytes { get; }
129132

133+
/// <summary>
134+
/// Gets the files.
135+
/// </summary>
136+
/// <value>
137+
/// The files.
138+
/// </value>
139+
/// <exception cref="NotImplementedException"></exception>
140+
[JsonProperty(PropertyName = "files")] public IList<JobFileStatus> Files { get; }
141+
130142
#endregion Properties
131143
}
132144
}

0 commit comments

Comments
 (0)