Skip to content

Commit a2556ce

Browse files
committed
small fixes
Signed-off-by: Vivek Kumar Sahu <[email protected]>
1 parent 39defcb commit a2556ce

File tree

5 files changed

+66
-62
lines changed

5 files changed

+66
-62
lines changed

pkg/engine/transfer.go

+46-47
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import (
2121
"encoding/json"
2222
"fmt"
2323
"io"
24-
"strings"
2524

2625
adapter "github.com/interlynk-io/sbommv/pkg/adapter"
2726
"github.com/interlynk-io/sbommv/pkg/converter"
@@ -140,49 +139,49 @@ func dryRun(ctx tcontext.TransferMetadata, sbomIterator iterator.SBOMIterator, i
140139
return nil
141140
}
142141

143-
func sbomConversion(sbomIterator iterator.SBOMIterator, transferCtx tcontext.TransferMetadata) []*iterator.SBOM {
144-
logger.LogDebug(transferCtx.Context, "Processing SBOM conversion")
145-
146-
var convertedSBOMs []*iterator.SBOM
147-
var totalMinifiedSBOM int
148-
var totalSBOM int
149-
for {
150-
sbom, err := sbomIterator.Next(transferCtx)
151-
if err == io.EOF {
152-
break
153-
}
154-
if err != nil {
155-
logger.LogError(transferCtx.Context, err, "Error retrieving SBOM from iterator")
156-
continue // Skip erroring SBOMs, proceed with next
157-
}
158-
159-
// Convert SBOM to CycloneDX for Dependency-Track
160-
convertedData, err := converter.ConvertSBOM(transferCtx, sbom.Data, converter.FormatCycloneDX)
161-
if err != nil {
162-
logger.LogInfo(transferCtx.Context, "Failed to convert SBOM to CycloneDX", "file", sbom.Path, "error", err)
163-
continue // Skip unconverted SBOMs
164-
}
165-
166-
// let's check minimfied SBOM
167-
sbom.Data, totalMinifiedSBOM, err = convertMinifiedJSON(transferCtx, convertedData, totalMinifiedSBOM)
168-
169-
// Update SBOM data with converted content
170-
sbom.Data = convertedData
171-
172-
if strings.Contains(sbom.Path, "spdx") {
173-
sbom.Path = strings.Replace(sbom.Path, "spdx", "spdxtocdx", 1)
174-
// transferCtx.FilePath = sbom.Path // Sync FilePath for logging
175-
}
176-
177-
totalSBOM++
178-
convertedSBOMs = append(convertedSBOMs, sbom)
179-
}
180-
181-
logger.LogDebug(transferCtx.Context, "Out of total SBOM", "value", totalSBOM, "total minifiedJSONSBOM converted to preety JSON", totalMinifiedSBOM)
182-
logger.LogDebug(transferCtx.Context, "Successfully SBOM conversion")
183-
184-
return convertedSBOMs
185-
}
142+
// func sbomConversion(sbomIterator iterator.SBOMIterator, transferCtx tcontext.TransferMetadata) []*iterator.SBOM {
143+
// logger.LogDebug(transferCtx.Context, "Processing SBOM conversion")
144+
145+
// var convertedSBOMs []*iterator.SBOM
146+
// var totalMinifiedSBOM int
147+
// var totalSBOM int
148+
// for {
149+
// sbom, err := sbomIterator.Next(transferCtx)
150+
// if err == io.EOF {
151+
// break
152+
// }
153+
// if err != nil {
154+
// logger.LogError(transferCtx.Context, err, "Error retrieving SBOM from iterator")
155+
// continue // Skip erroring SBOMs, proceed with next
156+
// }
157+
158+
// // Convert SBOM to CycloneDX for Dependency-Track
159+
// convertedData, err := converter.ConvertSBOM(transferCtx, sbom.Data, converter.FormatCycloneDX)
160+
// if err != nil {
161+
// logger.LogInfo(transferCtx.Context, "Failed to convert SBOM to CycloneDX", "file", sbom.Path, "error", err)
162+
// continue // Skip unconverted SBOMs
163+
// }
164+
165+
// // let's check minimfied SBOM
166+
// sbom.Data, totalMinifiedSBOM, err = convertMinifiedJSON(transferCtx, convertedData, totalMinifiedSBOM)
167+
168+
// // Update SBOM data with converted content
169+
// sbom.Data = convertedData
170+
171+
// if strings.Contains(sbom.Path, "spdx") {
172+
// sbom.Path = strings.Replace(sbom.Path, "spdx", "spdxtocdx", 1)
173+
// // transferCtx.FilePath = sbom.Path // Sync FilePath for logging
174+
// }
175+
176+
// totalSBOM++
177+
// convertedSBOMs = append(convertedSBOMs, sbom)
178+
// }
179+
180+
// logger.LogDebug(transferCtx.Context, "Out of total SBOM", "value", totalSBOM, "total minifiedJSONSBOM converted to preety JSON", totalMinifiedSBOM)
181+
// logger.LogDebug(transferCtx.Context, "Successfully SBOM conversion")
182+
183+
// return convertedSBOMs
184+
// }
186185

187186
func sbomProcessing(ctx tcontext.TransferMetadata, config types.Config, sbomIterator iterator.SBOMIterator) iterator.SBOMIterator {
188187
logger.LogDebug(ctx.Context, "Checking adapter eligibility for undergoing conversion layer", "adapter type", config.DestinationAdapter)
@@ -192,9 +191,9 @@ func sbomProcessing(ctx tcontext.TransferMetadata, config types.Config, sbomIter
192191
logger.LogDebug(ctx.Context, "Adapter eligible for conversion layer", "adapter type", config.DestinationAdapter)
193192

194193
logger.LogDebug(ctx.Context, "SBOM conversion will take place")
195-
convertedSBOMs := sbomConversion(sbomIterator, ctx)
196-
197-
return iterator.NewMemoryIterator(convertedSBOMs)
194+
// convertedSBOMs := sbomConversion(sbomIterator, ctx)
195+
return iterator.NewConvertedIterator(sbomIterator, converter.FormatCycloneDX)
196+
// return iterator.NewMemoryIterator(convertedSBOMs)
198197
} else {
199198
logger.LogDebug(ctx.Context, "Adapter accept both SPDX and CDX SBOM, therefore doesn't require conversion layer", "adapter type", config.DestinationAdapter)
200199
logger.LogDebug(ctx.Context, "SBOM conversion will not take place")

pkg/iterator/iterator.go

+10-1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package iterator
1717

1818
import (
19+
"context"
1920
"io"
2021

2122
"github.com/interlynk-io/sbommv/pkg/converter"
@@ -77,12 +78,20 @@ func NewConvertedIterator(inner SBOMIterator, targetFormat converter.FormatSpec)
7778
func (ci *ConvertedIterator) Next(ctx tcontext.TransferMetadata) (*SBOM, error) {
7879
sbom, err := ci.inner.Next(ctx)
7980
if err != nil {
81+
if err == io.EOF {
82+
return nil, io.EOF // EOF for one-time mode
83+
}
84+
if err == context.Canceled || err == context.DeadlineExceeded {
85+
logger.LogDebug(ctx.Context, "Iterator stopped due to context cancellation")
86+
return nil, err // Exit for daemon mode
87+
}
88+
logger.LogInfo(ctx.Context, "Error retrieving SBOM from inner iterator", "error", err)
8089
return nil, err
8190
}
8291
convertedData, err := converter.ConvertSBOM(ctx, sbom.Data, ci.targetFormat)
8392
if err != nil {
8493
logger.LogInfo(ctx.Context, "Failed to convert SBOM", "file", sbom.Path, "error", err)
85-
return sbom, nil // Fallback to original on error
94+
return sbom, nil
8695
}
8796
sbom.Data = convertedData
8897
return sbom, nil

pkg/source/folder/watcher.go

+5-6
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ package folder
1717

1818
import (
1919
"fmt"
20-
"log"
2120
"os"
2221
"path/filepath"
2322

@@ -81,12 +80,12 @@ func (f *WatcherFetcher) Fetch(ctx tcontext.TransferMetadata, config *FolderConf
8180
close(sbomChan)
8281
return
8382
}
84-
log.Println("event:", event)
85-
// if event.Has(fsnotify.Write) {
86-
// log.Println("modified file:", event.Name)
87-
// }
83+
logger.LogDebug(ctx.Context, "Event Triggered", "name", event)
84+
if event.Has(fsnotify.Write) {
85+
logger.LogInfo(ctx.Context, "Event Triggered", "name", event)
86+
}
8887

89-
if event.Op&(fsnotify.Create|fsnotify.Write) != 0 && source.IsSBOMFile(event.Name) {
88+
if event.Op&(fsnotify.Write) != 0 && source.IsSBOMFile(event.Name) {
9089
content, err := os.ReadFile(event.Name)
9190
if err != nil {
9291
logger.LogError(ctx.Context, err, "Failed to read SBOM", "path", event.Name)

pkg/source/github/adapter.go

-4
Original file line numberDiff line numberDiff line change
@@ -486,7 +486,6 @@ func (g *GitHubAdapter) fetchSBOMsConcurrently(ctx tcontext.TransferMetadata, re
486486
// fetchSBOMsSequentially: fetch SBOMs from repositories one at a time
487487
func (g *GitHubAdapter) fetchSBOMsSequentially(ctx tcontext.TransferMetadata, repos []string) (iterator.SBOMIterator, error) {
488488
logger.LogDebug(ctx.Context, "Fetching SBOMs sequentially")
489-
fmt.Println("Fetching SBOMs sequentially")
490489

491490
var sbomList []*iterator.SBOM
492491
giter := &GitHubIterator{client: g.client}
@@ -517,7 +516,6 @@ func (g *GitHubAdapter) fetchSBOMsSequentially(ctx tcontext.TransferMetadata, re
517516
logger.LogInfo(ctx.Context, "Failed to fetch SBOMs from Release Method for", "repo", repo)
518517
continue
519518
}
520-
fmt.Println("releaseSBOMs: ", len(releaseSBOMs))
521519
sbomList = append(sbomList, releaseSBOMs...)
522520

523521
case MethodTool:
@@ -539,8 +537,6 @@ func (g *GitHubAdapter) fetchSBOMsSequentially(ctx tcontext.TransferMetadata, re
539537
return nil, fmt.Errorf("no SBOMs found for any repository")
540538
}
541539

542-
fmt.Println("finalSbomList: ", len(sbomList))
543-
544540
return &GitHubIterator{
545541
sboms: sbomList,
546542
}, nil

pkg/target/dependencytrack/uploader.go

+5-4
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ func NewSequentialUploader() *SequentialUploader {
4040

4141
func (u *SequentialUploader) Upload(ctx tcontext.TransferMetadata, config *DependencyTrackConfig, client *DependencyTrackClient, iter iterator.SBOMIterator) error {
4242
logger.LogDebug(ctx.Context, "Uploading SBOMs to Dependency-Track sequentially")
43+
4344
totalSBOMs := 0
4445
successfullyUploaded := 0
4546
for {
@@ -73,19 +74,19 @@ func (u *SequentialUploader) Upload(ctx tcontext.TransferMetadata, config *Depen
7374
projectVersion = "latest"
7475
}
7576

76-
u.mu.Lock()
77+
// u.mu.Lock()
7778
if !u.createdProjects[projectName] {
7879

7980
// find or create project using project name and project version
8081
_, err = client.FindOrCreateProject(ctx, projectName, projectVersion)
8182
if err != nil {
8283
logger.LogInfo(ctx.Context, "Failed to find or create project", "project", projectName, "error", err)
83-
u.mu.Unlock()
84+
// u.mu.Unlock()
8485
continue
8586
}
8687
u.createdProjects[projectName] = true
8788
}
88-
u.mu.Unlock()
89+
// u.mu.Unlock()
8990

9091
// Log SBOM filename before upload
9192
logger.LogDebug(ctx.Context, "Iniatializing uploading SBOM file", "file", sbom.Path)
@@ -101,7 +102,7 @@ func (u *SequentialUploader) Upload(ctx tcontext.TransferMetadata, config *Depen
101102
return nil
102103
}
103104

104-
// ParallelUploader uploads SBOMs to Dependency-Track concurrently.
105+
// // ParallelUploader uploads SBOMs to Dependency-Track concurrently.
105106
type ParallelUploader struct {
106107
createdProjects map[string]bool
107108
mu sync.Mutex // Protects access to createdProjects.

0 commit comments

Comments
 (0)