Skip to content

Commit

Permalink
extract S3 bucket and key from value_from.url
Browse files Browse the repository at this point in the history
  • Loading branch information
lhitchon committed Mar 14, 2018
1 parent 4b52d47 commit 0bd5549
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 7 deletions.
3 changes: 1 addition & 2 deletions example-files/rules/terraform.yml
Original file line number Diff line number Diff line change
Expand Up @@ -141,8 +141,7 @@ Rules:
key: instance_type
op: in
value_from:
bucket: config-rules-for-lambda
key: instance-types
url: s3://config-rules-for-lambda/instance-types
severity: WARNING
tags:
- ec2
3 changes: 1 addition & 2 deletions filter/engine.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,7 @@ type Filter struct {
}

type FilterValueFrom struct {
Bucket string
Key string
Url string
}

type ValueSource interface {
Expand Down
15 changes: 12 additions & 3 deletions filter/value.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,28 @@ import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/s3"
"net/url"
)

type StandardValueSource struct {
Log LoggingFunction
}

func (v StandardValueSource) GetValue(filter Filter) string {
if filter.ValueFrom.Bucket != "" {
v.Log(fmt.Sprintf("Getting value_from s3://%s/%s", filter.ValueFrom.Bucket, filter.ValueFrom.Key))
content, err := v.GetValueFromS3(filter.ValueFrom.Bucket, filter.ValueFrom.Key)
if filter.ValueFrom.Url != "" {
v.Log(fmt.Sprintf("Getting value_from %s", filter.ValueFrom.Url))
parsedURL, err := url.Parse(filter.ValueFrom.Url)
if err != nil {
panic(err)
}
if parsedURL.Scheme != "s3" && parsedURL.Scheme != "S3" {
panic(fmt.Sprintf("Unsupported protocol for value_from: %s", parsedURL.Scheme))
}
content, err := v.GetValueFromS3(parsedURL.Host, parsedURL.Path)
if err != nil {
return "Error" // FIXME
}
v.Log(content)
return content
}
return filter.Value
Expand Down

0 comments on commit 0bd5549

Please sign in to comment.