@@ -71,20 +71,25 @@ func (s *scenario) Run() {
71
71
defer s .cleanup ()
72
72
73
73
// setup runner
74
- logDir , err := os .MkdirTemp ("" , "" )
74
+ azcopyDir , err := os .MkdirTemp ("" , "" )
75
75
if err != nil {
76
76
s .a .Error (err .Error ())
77
77
return
78
78
}
79
79
azcopyRan := false
80
80
defer func () {
81
+ if os .Getenv ("AZCOPY_E2E_LOG_OUTPUT" ) == "" {
82
+ s .a .Assert (os .RemoveAll (azcopyDir ), equals (), nil )
83
+ return // no need, just delete logdir
84
+ }
85
+
81
86
err := os .MkdirAll (os .Getenv ("AZCOPY_E2E_LOG_OUTPUT" ), os .ModePerm | os .ModeDir )
82
87
if err != nil {
83
88
s .a .Assert (err , equals (), nil )
84
89
return
85
90
}
86
91
if azcopyRan && s .a .Failed () {
87
- s .uploadLogs (logDir )
92
+ s .uploadLogs (azcopyDir )
88
93
s .a .(* testingAsserter ).t .Log ("uploaded logs for job " + s .state .result .jobID .String () + " as an artifact" )
89
94
}
90
95
}()
@@ -106,29 +111,29 @@ func (s *scenario) Run() {
106
111
107
112
// execute
108
113
azcopyRan = true
109
- s .runAzCopy (logDir )
114
+ s .runAzCopy (azcopyDir )
110
115
if s .a .Failed () {
111
116
return // execution failed. No point in running validation
112
117
}
113
118
114
119
// resume if needed
115
120
if s .needResume {
116
- tx , err := s .state .result .GetTransferList (common .ETransferStatus .Cancelled ())
121
+ tx , err := s .state .result .GetTransferList (common .ETransferStatus .Cancelled (), azcopyDir )
117
122
s .a .AssertNoErr (err , "Failed to get transfer list for Cancelled" )
118
123
s .a .Assert (len (tx ), equals (), len (s .p .debugSkipFiles ), "Job cancel didn't completely work" )
119
124
120
125
if ! s .runHook (s .hs .beforeResumeHook ) {
121
126
return
122
127
}
123
128
124
- s .resumeAzCopy (logDir )
129
+ s .resumeAzCopy (azcopyDir )
125
130
}
126
131
if s .a .Failed () {
127
132
return // resume failed. No point in running validation
128
133
}
129
134
130
135
// check
131
- s .validateTransferStates ()
136
+ s .validateTransferStates (azcopyDir )
132
137
if s .a .Failed () {
133
138
return // no point in doing more validation
134
139
}
@@ -148,7 +153,7 @@ func (s *scenario) Run() {
148
153
}
149
154
150
155
func (s * scenario ) uploadLogs (logDir string ) {
151
- if s .state .result == nil {
156
+ if s .state .result == nil || os . Getenv ( "AZCOPY_E2E_LOG_OUTPUT" ) == "" {
152
157
return // nothing to upload
153
158
}
154
159
s .a .Assert (os .Rename (logDir , filepath .Join (os .Getenv ("AZCOPY_E2E_LOG_OUTPUT" ), s .state .result .jobID .String ())), equals (), nil )
@@ -295,7 +300,7 @@ func (s *scenario) validateRemove() {
295
300
}
296
301
}
297
302
}
298
- func (s * scenario ) validateTransferStates () {
303
+ func (s * scenario ) validateTransferStates (azcopyDir string ) {
299
304
if s .operation == eOperation .Remove () {
300
305
s .validateRemove ()
301
306
return
@@ -318,7 +323,7 @@ func (s *scenario) validateTransferStates() {
318
323
// Is that OK? (Not sure what to do if it's not, because azcopy jobs show, apparently doesn't offer us a way to get the skipped list)
319
324
} {
320
325
expectedTransfers := s .fs .getForStatus (statusToTest , expectFolders , expectRootFolder )
321
- actualTransfers , err := s .state .result .GetTransferList (statusToTest )
326
+ actualTransfers , err := s .state .result .GetTransferList (statusToTest , azcopyDir )
322
327
s .a .AssertNoErr (err )
323
328
324
329
Validator {}.ValidateCopyTransfersAreScheduled (s .a , isSrcEncoded , isDstEncoded , srcRoot , dstRoot , expectedTransfers , actualTransfers , statusToTest , s .FromTo (), s .srcAccountType , s .destAccountType )
0 commit comments