From 52f66d01d16f71744a14561941d21e951517608c Mon Sep 17 00:00:00 2001 From: Christian Prando Date: Mon, 12 Apr 2021 15:27:50 -0600 Subject: [PATCH 1/2] UD-7239: Implements request to upload bdio data to rapid scans endpoint. --- hubclient/rapid-scans-client.go | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/hubclient/rapid-scans-client.go b/hubclient/rapid-scans-client.go index 5db206f..2cc5bd5 100644 --- a/hubclient/rapid-scans-client.go +++ b/hubclient/rapid-scans-client.go @@ -17,10 +17,13 @@ package hubclient import ( "github.com/blackducksoftware/hub-client-go/hubapi" log "github.com/sirupsen/logrus" + "strconv" ) const ( - apiDeveloperScans = "/api/developer-scans" + apiDeveloperScans = "/api/developer-scans" + headerBdMode = "X-BD-MODE" + headerBdDocumentCount = "X-BD-DOCUMENT-COUNT" ) func (c *Client) StartRapidScan(bdioHeaderContent string) (error, string) { @@ -34,3 +37,28 @@ func (c *Client) StartRapidScan(bdioHeaderContent string) (error, string) { return nil, bdioUploadEndpoint } + +func (c *Client) UploadBdioFiles(bdioUploadEndpoint string, bdioContents []string) error { + c.AddHeaderValue(headerBdMode, "append") + c.AddHeaderValue(headerBdDocumentCount, strconv.Itoa(len(bdioContents))) + + for _, bdioContent := range bdioContents { + err := c.HttpPutJSON(bdioUploadEndpoint, bdioContent, hubapi.ContentTypeRapidScan, 202) + if err != nil { + log.Errorf("Error uploading bdio files.", err) + return err + } + } + + c.SetHeaderValue(headerBdMode, "finish") + err := c.HttpPutJSON(bdioUploadEndpoint, "", hubapi.ContentTypeRapidScan, 202) + if err != nil { + log.Errorf("Error uploading bdio files.", err) + return err + } + + c.DeleteHeaderValue(headerBdMode) + c.DeleteHeaderValue(headerBdDocumentCount) + + return nil +} From e2294fd73edffb434458add329152978ea612d7a Mon Sep 17 00:00:00 2001 From: Christian Prando Date: Tue, 13 Apr 2021 08:58:57 -0600 Subject: [PATCH 2/2] UD-7239: Turns "append" and "finish" (header BD mode values) into constants. --- hubclient/rapid-scans-client.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/hubclient/rapid-scans-client.go b/hubclient/rapid-scans-client.go index 2cc5bd5..aa43f2c 100644 --- a/hubclient/rapid-scans-client.go +++ b/hubclient/rapid-scans-client.go @@ -24,6 +24,8 @@ const ( apiDeveloperScans = "/api/developer-scans" headerBdMode = "X-BD-MODE" headerBdDocumentCount = "X-BD-DOCUMENT-COUNT" + bdModeAppend = "append" + bdModeFinish = "finish" ) func (c *Client) StartRapidScan(bdioHeaderContent string) (error, string) { @@ -39,7 +41,7 @@ func (c *Client) StartRapidScan(bdioHeaderContent string) (error, string) { } func (c *Client) UploadBdioFiles(bdioUploadEndpoint string, bdioContents []string) error { - c.AddHeaderValue(headerBdMode, "append") + c.AddHeaderValue(headerBdMode, bdModeAppend) c.AddHeaderValue(headerBdDocumentCount, strconv.Itoa(len(bdioContents))) for _, bdioContent := range bdioContents { @@ -50,7 +52,7 @@ func (c *Client) UploadBdioFiles(bdioUploadEndpoint string, bdioContents []strin } } - c.SetHeaderValue(headerBdMode, "finish") + c.SetHeaderValue(headerBdMode, bdModeFinish) err := c.HttpPutJSON(bdioUploadEndpoint, "", hubapi.ContentTypeRapidScan, 202) if err != nil { log.Errorf("Error uploading bdio files.", err)