Skip to content

Commit c28ca2d

Browse files
authored
Merge pull request #191 from lacework/afiune/cli/v0.2
Lacework CLI v0.2
2 parents c5c8cf4 + a5cb795 commit c28ca2d

33 files changed

+10883
-795
lines changed

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.1.25-dev
1+
0.2.0-dev
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package main
2+
3+
import (
4+
"flag"
5+
"fmt"
6+
"log"
7+
8+
"github.com/lacework/go-sdk/api"
9+
)
10+
11+
var (
12+
account string
13+
apiKey string
14+
apiSecret string
15+
)
16+
17+
func main() {
18+
flag.StringVar(&account, "account", "", "Lacework Account")
19+
flag.StringVar(&apiKey, "api_key", "", "Lacework API Key")
20+
flag.StringVar(&apiSecret, "api_secret", "", "Lacework API Secret")
21+
flag.Parse()
22+
23+
lacework, err := api.NewClient(account, api.WithApiKeys(apiKey, apiSecret))
24+
if err != nil {
25+
log.Fatal(err)
26+
}
27+
28+
response, err := lacework.Vulnerabilities.Host.ListCves()
29+
if err != nil {
30+
log.Fatal(err)
31+
}
32+
33+
// Output:
34+
fmt.Println(response)
35+
}

api/api.go

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,17 +25,22 @@ import (
2525
)
2626

2727
const (
28-
apiIntegrations = "external/integrations"
29-
apiIntegrationsByType = "external/integrations/type/%s"
30-
apiIntegrationByGUID = "external/integrations/%s"
31-
apiIntegrationSchema = "external/integrations/schema/%s"
32-
apiTokens = "access/tokens"
28+
apiIntegrations = "external/integrations"
29+
apiIntegrationsByType = "external/integrations/type/%s"
30+
apiIntegrationFromGUID = "external/integrations/%s"
31+
apiIntegrationSchema = "external/integrations/schema/%s"
32+
apiTokens = "access/tokens"
3333

34-
apiVulnerabilitiesScan = "external/vulnerabilities/container/repository/images/scan"
35-
apiVulnerabilitiesScanStatus = "external/vulnerabilities/container/reqId/%s"
36-
apiVulnerabilitiesReportFromID = "external/vulnerabilities/container/imageId/%s"
37-
apiVulnerabilitiesReportFromDigest = "external/vulnerabilities/container/imageDigest/%s"
38-
apiVulEvaluationsForDateRange = "external/vulnerabilities/container/GetEvaluationsForDateRange"
34+
apiVulnerabilitiesContainerScan = "external/vulnerabilities/container/repository/images/scan"
35+
apiVulnerabilitiesContainerScanStatus = "external/vulnerabilities/container/reqId/%s"
36+
apiVulnerabilitiesAssessmentFromImageID = "external/vulnerabilities/container/imageId/%s"
37+
apiVulnerabilitiesAssessmentFromImageDigest = "external/vulnerabilities/container/imageDigest/%s"
38+
apiVulnContainerAssessmentsForDateRange = "external/vulnerabilities/container/GetAssessmentsForDateRange"
39+
40+
apiVulnerabilitiesScanPkgManifest = "external/vulnerabilities/scan"
41+
apiVulnerabilitiesHostListCves = "external/vulnerabilities/host"
42+
apiVulnerabilitiesListHostsWithCveID = "external/vulnerabilities/host/cveId/%s"
43+
apiVulnerabilitiesHostAssessmentFromMachineID = "external/vulnerabilities/host/machineId/%s"
3944

4045
apiComplianceAwsLatestReport = "external/compliance/aws/GetLatestComplianceReport?AWS_ACCOUNT_ID=%s"
4146
apiComplianceGcpLatestReport = "external/compliance/gcp/GetLatestComplianceReport?GCP_ORG_ID=%s&GCP_PROJ_ID=%s"

api/client.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ func NewClient(account string, opts ...Option) (*Client, error) {
9595
c.Events = &EventsService{c}
9696
c.Compliance = &ComplianceService{c}
9797
c.Integrations = &IntegrationsService{c}
98-
c.Vulnerabilities = &VulnerabilitiesService{c}
98+
c.Vulnerabilities = NewVulnerabilityService(c)
9999

100100
// init logger, this could change if a user calls api.WithLogLevel()
101101
c.initLogger()

api/integrations.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ func (svc *IntegrationsService) GetSchema(iType integrationType) (
144144
}
145145

146146
func (svc *IntegrationsService) get(guid string, response interface{}) error {
147-
apiPath := fmt.Sprintf(apiIntegrationByGUID, guid)
147+
apiPath := fmt.Sprintf(apiIntegrationFromGUID, guid)
148148
return svc.client.RequestDecoder("GET", apiPath, nil, response)
149149
}
150150

@@ -160,7 +160,7 @@ func (svc *IntegrationsService) create(data interface{}, response interface{}) e
160160

161161
func (svc *IntegrationsService) update(guid string, data interface{}, response interface{}) error {
162162
var (
163-
apiPath = fmt.Sprintf(apiIntegrationByGUID, guid)
163+
apiPath = fmt.Sprintf(apiIntegrationFromGUID, guid)
164164
body, err = jsonReader(data)
165165
)
166166
if err != nil {
@@ -171,7 +171,7 @@ func (svc *IntegrationsService) update(guid string, data interface{}, response i
171171
}
172172

173173
func (svc *IntegrationsService) delete(guid string, response interface{}) error {
174-
apiPath := fmt.Sprintf(apiIntegrationByGUID, guid)
174+
apiPath := fmt.Sprintf(apiIntegrationFromGUID, guid)
175175
return svc.client.RequestDecoder("DELETE", apiPath, nil, response)
176176
}
177177

api/version.go

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/version_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ package api_test
2020

2121
import (
2222
"io/ioutil"
23+
"strings"
2324
"testing"
2425

2526
"github.com/stretchr/testify/assert"
@@ -30,6 +31,6 @@ import (
3031
func TestVersionMatchVERSIONfile(t *testing.T) {
3132
expectedVersion, err := ioutil.ReadFile("../VERSION")
3233
assert.Nil(t, err)
33-
assert.Equalf(t, string(expectedVersion), subject.Version,
34+
assert.Equalf(t, strings.TrimSuffix(string(expectedVersion), "\n"), subject.Version,
3435
"api/version.go doesn't match with VERSION file; run scripts/version_updater.sh")
3536
}

0 commit comments

Comments
 (0)