Skip to content

Commit 1d78646

Browse files
khrmtekton-robot
authored andcommitted
Fix the blob for s3 prefixed key
Prefix behave differently than normal folders. Folders don't require a leading "/" but Prefix does. Also, refactor to avoid the error during the clean func call.
1 parent a111325 commit 1d78646

File tree

1 file changed

+13
-8
lines changed

1 file changed

+13
-8
lines changed

pkg/api/server/v1alpha2/plugin/plugin_logs.go

+13-8
Original file line numberDiff line numberDiff line change
@@ -272,14 +272,14 @@ func getLokiLogs(s *LogServer, writer io.Writer, parent string, rec *db.Record)
272272
}
273273

274274
func getBlobLogs(s *LogServer, writer io.Writer, parent string, rec *db.Record) error {
275-
URL, err := url.Parse(s.config.LOGGING_PLUGIN_API_URL)
275+
u, err := url.Parse(s.config.LOGGING_PLUGIN_API_URL)
276276
if err != nil {
277277
s.logger.Error(err)
278278
return err
279279
}
280280

281281
legacy := false
282-
queryParams := URL.Query()
282+
queryParams := u.Query()
283283

284284
for k, v := range s.queryParams {
285285
if k == legacyLogType && v == "true" {
@@ -288,11 +288,13 @@ func getBlobLogs(s *LogServer, writer io.Writer, parent string, rec *db.Record)
288288
}
289289
queryParams.Add(k, v)
290290
}
291+
u.RawQuery = queryParams.Encode()
291292

292293
logPath := map[string]string{}
293294

294295
ctx := context.Background()
295-
bucket, err := openBucket(ctx, URL.String()+"?"+queryParams.Encode())
296+
s.logger.Debugf("blob bucket: %s", u.String())
297+
bucket, err := openBucket(ctx, u.String())
296298
if err != nil {
297299
s.logger.Errorf("error opening bucket: %s", err)
298300
return err
@@ -325,8 +327,11 @@ func getBlobLogs(s *LogServer, writer io.Writer, parent string, rec *db.Record)
325327
return fmt.Errorf("record type is invalid %s", rec.Type)
326328
}
327329
case typeTaskRun:
328-
bucket = blob.PrefixedBucket(bucket, strings.TrimLeft(filepath.Join(s.config.LOGS_PATH, fmt.Sprintf(defaultBlobPathParams, parent, rec.ResultName, rec.Name)), "/")+"/")
329-
iter := bucket.List(nil)
330+
s.logger.Debugf("taskrun type")
331+
iter := bucket.List(&blob.ListOptions{
332+
Prefix: strings.TrimPrefix(s.config.LOGS_PATH+fmt.Sprintf(defaultBlobPathParams, parent, rec.ResultName, rec.Name), "/"),
333+
})
334+
s.logger.Debugf("prefix: %s", strings.TrimPrefix(s.config.LOGS_PATH+"/"+fmt.Sprintf(defaultBlobPathParams, parent, rec.ResultName, rec.Name)+"/", "/"))
330335
for {
331336
obj, err := iter.Next(ctx)
332337
if err == io.EOF {
@@ -339,6 +344,7 @@ func getBlobLogs(s *LogServer, writer io.Writer, parent string, rec *db.Record)
339344
}
340345
logPath[obj.Key] = obj.Key
341346
}
347+
s.logger.Debugf("logPath: %v", logPath)
342348
case v1alpha3.LogRecordType, v1alpha3.LogRecordTypeV2:
343349
log := &v1alpha3.Log{}
344350
err := json.Unmarshal(rec.Data, log)
@@ -353,12 +359,11 @@ func getBlobLogs(s *LogServer, writer io.Writer, parent string, rec *db.Record)
353359
return fmt.Errorf("record type is invalid %s", rec.Type)
354360
}
355361

356-
s.logger.Debugf("blob bucket :%s", URL.String()+"?"+queryParams.Encode())
357-
358362
for k, v := range logPath {
359363
err := func() error {
360364
s.logger.Debugf("logPath key: %s value: %s", k, v)
361-
fmt.Fprint(writer, strings.TrimRight(k, ".log")+" :-\n")
365+
_, file := filepath.Split(k)
366+
fmt.Fprint(writer, strings.TrimRight(file, ".log")+" :-\n")
362367
rc, err := bucket.NewReader(ctx, v, nil)
363368
if err != nil {
364369
s.logger.Errorf("error creating bucket reader: %s for log path: %s", err, logPath)

0 commit comments

Comments
 (0)