Merge pull request #121 from cloudskiff/multiples_tfstate_support
Add support for multiples IaC sourcesmain
commit
1f66e515b4
|
@ -156,6 +156,9 @@ $ AWS_PROFILE=profile_name driftctl scan
|
|||
|
||||
# With state stored on a s3 backend
|
||||
$ driftctl scan --from tfstate+s3://my-bucket/path/to/state.tfstate
|
||||
|
||||
# With multiples states
|
||||
$ driftctl scan --from tfstate://terraform_S3.tfstate --from tfstate://terraform_VPC.tfstate
|
||||
```
|
||||
|
||||
## Contribute
|
||||
|
|
|
@ -3,6 +3,17 @@
|
|||
Currently, driftctl only supports reading IaC from a Terraform state.
|
||||
We are investigating to support the Terraform code as well, as a state does not represent an intention.
|
||||
|
||||
ℹ️ Multiple states can be read by passing `--from` flags
|
||||
|
||||
Example:
|
||||
```shell
|
||||
# I want to read a local state and a state stored in an S3 bucket :
|
||||
driftctl scan \
|
||||
--from tfstate+s3://statebucketdriftctl/terraform.tfstate \
|
||||
--from tfstate://terraform_toto.tfstate
|
||||
```
|
||||
|
||||
|
||||
## Supported IaC sources
|
||||
|
||||
* Terraform state
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
// Code generated by mockery v2.3.0. DO NOT EDIT.
|
||||
|
||||
package mocks
|
||||
|
||||
import (
|
||||
resource "github.com/cloudskiff/driftctl/pkg/resource"
|
||||
mock "github.com/stretchr/testify/mock"
|
||||
)
|
||||
|
||||
// Supplier is an autogenerated mock type for the Supplier type
|
||||
type Supplier struct {
|
||||
mock.Mock
|
||||
}
|
||||
|
||||
// Resources provides a mock function with given fields:
|
||||
func (_m *Supplier) Resources() ([]resource.Resource, error) {
|
||||
ret := _m.Called()
|
||||
|
||||
var r0 []resource.Resource
|
||||
if rf, ok := ret.Get(0).(func() []resource.Resource); ok {
|
||||
r0 = rf()
|
||||
} else {
|
||||
if ret.Get(0) != nil {
|
||||
r0 = ret.Get(0).([]resource.Resource)
|
||||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func() error); ok {
|
||||
r1 = rf()
|
||||
} else {
|
||||
r1 = ret.Error(1)
|
||||
}
|
||||
|
||||
return r0, r1
|
||||
}
|
105
pkg/cmd/scan.go
105
pkg/cmd/scan.go
|
@ -26,7 +26,7 @@ import (
|
|||
type ScanOptions struct {
|
||||
Coverage bool
|
||||
Detect bool
|
||||
From config.SupplierConfig
|
||||
From []config.SupplierConfig
|
||||
To string
|
||||
Output output.OutputConfig
|
||||
Filter *jmespath.JMESPath
|
||||
|
@ -41,14 +41,14 @@ func NewScanCmd() *cobra.Command {
|
|||
Long: "Scan",
|
||||
Args: cobra.NoArgs,
|
||||
PreRunE: func(cmd *cobra.Command, args []string) error {
|
||||
from, _ := cmd.Flags().GetString("from")
|
||||
from, _ := cmd.Flags().GetStringSlice("from")
|
||||
|
||||
iacSource, err := parseFromFlag(from)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
opts.From = *iacSource
|
||||
opts.From = iacSource
|
||||
|
||||
to, _ := cmd.Flags().GetString("to")
|
||||
if !remote.IsSupported(to) {
|
||||
|
@ -100,11 +100,11 @@ func NewScanCmd() *cobra.Command {
|
|||
"Output format, by default it will write to the console\n"+
|
||||
"Accepted formats are: "+strings.Join(output.SupportedOutputsExample(), ",")+"\n",
|
||||
)
|
||||
fl.StringP(
|
||||
fl.StringSliceP(
|
||||
"from",
|
||||
"f",
|
||||
"tfstate://terraform.tfstate",
|
||||
"IaC source, by default try to find local terraform.tfstate file\n"+
|
||||
[]string{"tfstate://terraform.tfstate"},
|
||||
"IaC sources, by default try to find local terraform.tfstate file\n"+
|
||||
"Accepted schemes are: "+strings.Join(supplier.GetSupportedSchemes(), ",")+"\n",
|
||||
)
|
||||
supportedRemotes := remote.GetSupportedRemotes()
|
||||
|
@ -144,11 +144,6 @@ func scanRun(opts *ScanOptions) error {
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
logrus.WithFields(logrus.Fields{
|
||||
"supplier": opts.From.Key,
|
||||
"backend": opts.From.Backend,
|
||||
"path": opts.From.Path,
|
||||
}).Debug("Found IAC provider")
|
||||
ctl := pkg.NewDriftCTL(scanner, iacSupplier, opts.Filter, alerter)
|
||||
|
||||
go func() {
|
||||
|
@ -166,54 +161,60 @@ func scanRun(opts *ScanOptions) error {
|
|||
return out.Write(analysis)
|
||||
}
|
||||
|
||||
func parseFromFlag(from string) (*config.SupplierConfig, error) {
|
||||
func parseFromFlag(from []string) ([]config.SupplierConfig, error) {
|
||||
|
||||
schemePath := strings.Split(from, "://")
|
||||
if len(schemePath) != 2 || schemePath[1] == "" || schemePath[0] == "" {
|
||||
return nil, fmt.Errorf(
|
||||
"Unable to parse from flag: %s\nAccepted schemes are: %s",
|
||||
from,
|
||||
strings.Join(supplier.GetSupportedSchemes(), ","),
|
||||
)
|
||||
}
|
||||
configs := make([]config.SupplierConfig, 0, len(from))
|
||||
|
||||
scheme := schemePath[0]
|
||||
path := schemePath[1]
|
||||
supplierBackend := strings.Split(scheme, "+")
|
||||
if len(supplierBackend) > 2 {
|
||||
return nil, fmt.Errorf(
|
||||
"Unable to parse from scheme: %s\nAccepted schemes are: %s",
|
||||
scheme,
|
||||
strings.Join(supplier.GetSupportedSchemes(), ","),
|
||||
)
|
||||
}
|
||||
|
||||
supplierKey := supplierBackend[0]
|
||||
if !supplier.IsSupplierSupported(supplierKey) {
|
||||
return nil, fmt.Errorf(
|
||||
"Unsupported IaC source: %s\nAccepted values are: %s",
|
||||
supplierKey,
|
||||
strings.Join(supplier.GetSupportedSuppliers(), ","),
|
||||
)
|
||||
}
|
||||
|
||||
backendString := ""
|
||||
if len(supplierBackend) == 2 {
|
||||
backendString = supplierBackend[1]
|
||||
if !backend.IsSupported(backendString) {
|
||||
for _, flag := range from {
|
||||
schemePath := strings.Split(flag, "://")
|
||||
if len(schemePath) != 2 || schemePath[1] == "" || schemePath[0] == "" {
|
||||
return nil, fmt.Errorf(
|
||||
"Unsupported IaC backend: %s\nAccepted values are: %s",
|
||||
backendString,
|
||||
strings.Join(backend.GetSupportedBackends(), ","),
|
||||
"Unable to parse from flag: %s\nAccepted schemes are: %s",
|
||||
flag,
|
||||
strings.Join(supplier.GetSupportedSchemes(), ","),
|
||||
)
|
||||
}
|
||||
|
||||
scheme := schemePath[0]
|
||||
path := schemePath[1]
|
||||
supplierBackend := strings.Split(scheme, "+")
|
||||
if len(supplierBackend) > 2 {
|
||||
return nil, fmt.Errorf(
|
||||
"Unable to parse from scheme: %s\nAccepted schemes are: %s",
|
||||
scheme,
|
||||
strings.Join(supplier.GetSupportedSchemes(), ","),
|
||||
)
|
||||
}
|
||||
|
||||
supplierKey := supplierBackend[0]
|
||||
if !supplier.IsSupplierSupported(supplierKey) {
|
||||
return nil, fmt.Errorf(
|
||||
"Unsupported IaC source: %s\nAccepted values are: %s",
|
||||
supplierKey,
|
||||
strings.Join(supplier.GetSupportedSuppliers(), ","),
|
||||
)
|
||||
}
|
||||
|
||||
backendString := ""
|
||||
if len(supplierBackend) == 2 {
|
||||
backendString = supplierBackend[1]
|
||||
if !backend.IsSupported(backendString) {
|
||||
return nil, fmt.Errorf(
|
||||
"Unsupported IaC backend: %s\nAccepted values are: %s",
|
||||
backendString,
|
||||
strings.Join(backend.GetSupportedBackends(), ","),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
configs = append(configs, config.SupplierConfig{
|
||||
Key: supplierKey,
|
||||
Backend: backendString,
|
||||
Path: path,
|
||||
})
|
||||
}
|
||||
|
||||
return &config.SupplierConfig{
|
||||
Key: supplierKey,
|
||||
Backend: backendString,
|
||||
Path: path,
|
||||
}, nil
|
||||
return configs, nil
|
||||
}
|
||||
|
||||
func parseOutputFlag(out string) (*output.OutputConfig, error) {
|
||||
|
|
|
@ -35,6 +35,7 @@ func TestScanCmd_Valid(t *testing.T) {
|
|||
{args: []string{"scan", "--to", "aws+tf"}},
|
||||
{args: []string{"scan", "-f", "tfstate://test"}},
|
||||
{args: []string{"scan", "--from", "tfstate://test"}},
|
||||
{args: []string{"scan", "--from", "tfstate://test", "--from", "tfstate://test2"}},
|
||||
{args: []string{"scan", "-t", "aws+tf", "-f", "tfstate://test"}},
|
||||
{args: []string{"scan", "--to", "aws+tf", "--from", "tfstate://test"}},
|
||||
{args: []string{"scan", "--filter", "Type=='aws_s3_bucket'"}},
|
||||
|
@ -73,6 +74,7 @@ func TestScanCmd_Invalid(t *testing.T) {
|
|||
{args: []string{"scan", "--from", "terraform+foo+bar://test"}, expected: "Unable to parse from scheme: terraform+foo+bar\nAccepted schemes are: tfstate://,tfstate+s3://"},
|
||||
{args: []string{"scan", "--from", "unsupported://test"}, expected: "Unsupported IaC source: unsupported\nAccepted values are: tfstate"},
|
||||
{args: []string{"scan", "--from", "tfstate+foobar://test"}, expected: "Unsupported IaC backend: foobar\nAccepted values are: s3"},
|
||||
{args: []string{"scan", "--from", "tfstate:///tmp/test", "--from", "tfstate+toto://test"}, expected: "Unsupported IaC backend: toto\nAccepted values are: s3"},
|
||||
{args: []string{"scan", "--filter", "Type='test'"}, expected: "unable to parse filter expression: SyntaxError: Expected tRbracket, received: tUnknown"},
|
||||
}
|
||||
|
||||
|
@ -91,23 +93,44 @@ func TestScanCmd_Invalid(t *testing.T) {
|
|||
|
||||
func Test_parseFromFlag(t *testing.T) {
|
||||
type args struct {
|
||||
from string
|
||||
from []string
|
||||
}
|
||||
tests := []struct {
|
||||
name string
|
||||
args args
|
||||
want *config.SupplierConfig
|
||||
want []config.SupplierConfig
|
||||
wantErr bool
|
||||
}{
|
||||
{
|
||||
name: "test complete from parsing",
|
||||
args: args{
|
||||
from: "tfstate+s3://bucket/path/to/state.tfstate",
|
||||
from: []string{"tfstate+s3://bucket/path/to/state.tfstate"},
|
||||
},
|
||||
want: &config.SupplierConfig{
|
||||
Key: "tfstate",
|
||||
Backend: "s3",
|
||||
Path: "bucket/path/to/state.tfstate",
|
||||
want: []config.SupplierConfig{
|
||||
{
|
||||
Key: "tfstate",
|
||||
Backend: "s3",
|
||||
Path: "bucket/path/to/state.tfstate",
|
||||
},
|
||||
},
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
name: "test complete from parsing with multiples flags",
|
||||
args: args{
|
||||
from: []string{"tfstate+s3://bucket/path/to/state.tfstate", "tfstate:///tmp/my-state.tfstate"},
|
||||
},
|
||||
want: []config.SupplierConfig{
|
||||
{
|
||||
Key: "tfstate",
|
||||
Backend: "s3",
|
||||
Path: "bucket/path/to/state.tfstate",
|
||||
},
|
||||
{
|
||||
Key: "tfstate",
|
||||
Backend: "",
|
||||
Path: "/tmp/my-state.tfstate",
|
||||
},
|
||||
},
|
||||
wantErr: false,
|
||||
},
|
||||
|
|
|
@ -95,7 +95,7 @@ func (d DriftCTL) Stop() {
|
|||
}
|
||||
|
||||
func (d DriftCTL) scan() (remoteResources []resource.Resource, resourcesFromState []resource.Resource, err error) {
|
||||
logrus.Info("Start reading terraform state")
|
||||
logrus.Info("Start reading IaC")
|
||||
resourcesFromState, err = d.iacSupplier.Resources()
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
|
|
|
@ -4,6 +4,7 @@ import (
|
|||
"fmt"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/iac/terraform/state/backend"
|
||||
"github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/iac/config"
|
||||
|
||||
|
@ -25,17 +26,35 @@ func IsSupplierSupported(supplierKey string) bool {
|
|||
return false
|
||||
}
|
||||
|
||||
func GetIACSupplier(config config.SupplierConfig) (resource.Supplier, error) {
|
||||
if !IsSupplierSupported(config.Key) {
|
||||
return nil, fmt.Errorf("Unsupported supplier '%s'", config.Key)
|
||||
}
|
||||
func GetIACSupplier(configs []config.SupplierConfig) (resource.Supplier, error) {
|
||||
chainSupplier := resource.NewChainSupplier()
|
||||
for _, config := range configs {
|
||||
if !IsSupplierSupported(config.Key) {
|
||||
return nil, fmt.Errorf("Unsupported supplier '%s'", config.Key)
|
||||
}
|
||||
|
||||
switch config.Key {
|
||||
case state.TerraformStateReaderSupplier:
|
||||
return state.NewReader(config)
|
||||
default:
|
||||
return nil, fmt.Errorf("Unsupported supplier '%s'", config.Key)
|
||||
var supplier resource.Supplier
|
||||
var err error
|
||||
switch config.Key {
|
||||
case state.TerraformStateReaderSupplier:
|
||||
supplier, err = state.NewReader(config)
|
||||
default:
|
||||
return nil, fmt.Errorf("Unsupported supplier '%s'", config.Key)
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
logrus.WithFields(logrus.Fields{
|
||||
"supplier": config.Key,
|
||||
"backend": config.Backend,
|
||||
"path": config.Path,
|
||||
}).Debug("Found IAC supplier")
|
||||
|
||||
chainSupplier.AddSupplier(supplier)
|
||||
}
|
||||
return chainSupplier, nil
|
||||
}
|
||||
|
||||
func GetSupportedSuppliers() []string {
|
||||
|
|
|
@ -10,7 +10,7 @@ import (
|
|||
|
||||
func TestGetIACSupplier(t *testing.T) {
|
||||
type args struct {
|
||||
config config.SupplierConfig
|
||||
config []config.SupplierConfig
|
||||
}
|
||||
tests := []struct {
|
||||
name string
|
||||
|
@ -20,33 +20,56 @@ func TestGetIACSupplier(t *testing.T) {
|
|||
{
|
||||
name: "test unknown supplier",
|
||||
args: args{
|
||||
config: struct {
|
||||
Key string
|
||||
Backend string
|
||||
Path string
|
||||
}{Key: "foobar"},
|
||||
config: []config.SupplierConfig{
|
||||
{
|
||||
Key: "foobar",
|
||||
},
|
||||
},
|
||||
},
|
||||
wantErr: fmt.Errorf("Unsupported supplier 'foobar'"),
|
||||
},
|
||||
{
|
||||
name: "test unknown supplier in multiples states",
|
||||
args: args{
|
||||
config: []config.SupplierConfig{
|
||||
{
|
||||
Key: "foobar",
|
||||
},
|
||||
{
|
||||
Key: "tfstate",
|
||||
Backend: "",
|
||||
Path: "terraform.tfstate",
|
||||
},
|
||||
},
|
||||
},
|
||||
wantErr: fmt.Errorf("Unsupported supplier 'foobar'"),
|
||||
},
|
||||
{
|
||||
name: "test unknown backend",
|
||||
args: args{
|
||||
config: struct {
|
||||
Key string
|
||||
Backend string
|
||||
Path string
|
||||
}{Key: "tfstate", Backend: "foobar"},
|
||||
config: []config.SupplierConfig{
|
||||
{Key: "tfstate", Backend: "foobar"},
|
||||
},
|
||||
},
|
||||
wantErr: fmt.Errorf("Unsupported backend 'foobar'"),
|
||||
},
|
||||
{
|
||||
name: "test valid tfstate://terraform.tfstate",
|
||||
args: args{
|
||||
config: struct {
|
||||
Key string
|
||||
Backend string
|
||||
Path string
|
||||
}{Key: "tfstate", Backend: "", Path: "terraform.tfstate"},
|
||||
config: []config.SupplierConfig{
|
||||
{Key: "tfstate", Backend: "", Path: "terraform.tfstate"},
|
||||
},
|
||||
},
|
||||
wantErr: nil,
|
||||
},
|
||||
{
|
||||
name: "test valid multiples states",
|
||||
args: args{
|
||||
config: []config.SupplierConfig{
|
||||
{Key: "tfstate", Backend: "", Path: "terraform.tfstate"},
|
||||
{Key: "tfstate", Backend: "s3", Path: "terraform.tfstate"},
|
||||
{Key: "tfstate", Backend: "", Path: "terraform2.tfstate"},
|
||||
},
|
||||
},
|
||||
wantErr: nil,
|
||||
},
|
||||
|
|
|
@ -147,7 +147,10 @@ func (r *TerraformStateReader) decode(values map[string][]cty.Value) ([]resource
|
|||
typ := deserializer.HandledType().String()
|
||||
vals, exists := values[typ]
|
||||
if !exists {
|
||||
logrus.Debugf("No resource of type %s found in state", typ)
|
||||
logrus.WithFields(logrus.Fields{
|
||||
"path": r.config.Path,
|
||||
"backend": r.config.Backend,
|
||||
}).Debugf("No resource of type %s found in state", typ)
|
||||
continue
|
||||
}
|
||||
decodedResources, err := deserializer.Deserialize(vals)
|
||||
|
@ -157,8 +160,10 @@ func (r *TerraformStateReader) decode(values map[string][]cty.Value) ([]resource
|
|||
}
|
||||
for _, res := range decodedResources {
|
||||
logrus.WithFields(logrus.Fields{
|
||||
"id": res.TerraformId(),
|
||||
"type": res.TerraformType(),
|
||||
"path": r.config.Path,
|
||||
"backend": r.config.Backend,
|
||||
"id": res.TerraformId(),
|
||||
"type": res.TerraformType(),
|
||||
}).Debug("Found IAC resource")
|
||||
normalisable, ok := res.(resource.NormalizedResource)
|
||||
if ok {
|
||||
|
@ -182,6 +187,10 @@ func (r *TerraformStateReader) decode(values map[string][]cty.Value) ([]resource
|
|||
}
|
||||
|
||||
func (r *TerraformStateReader) Resources() ([]resource.Resource, error) {
|
||||
logrus.WithFields(logrus.Fields{
|
||||
"path": r.config.Path,
|
||||
"backend": r.config.Backend,
|
||||
}).Debug("Starting state reader supplier")
|
||||
values, err := r.retrieve()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package pkg
|
||||
package parallel
|
||||
|
||||
import (
|
||||
"context"
|
|
@ -1,4 +1,4 @@
|
|||
package pkg
|
||||
package parallel
|
||||
|
||||
import (
|
||||
"context"
|
|
@ -1,7 +1,7 @@
|
|||
package aws
|
||||
|
||||
import (
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
"github.com/cloudskiff/driftctl/pkg/remote/deserializer"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
resourceaws "github.com/cloudskiff/driftctl/pkg/resource/aws"
|
||||
|
@ -21,7 +21,7 @@ type DBInstanceSupplier struct {
|
|||
runner *terraform.ParallelResourceReader
|
||||
}
|
||||
|
||||
func NewDBInstanceSupplier(runner *pkg.ParallelRunner, client rdsiface.RDSAPI) *DBInstanceSupplier {
|
||||
func NewDBInstanceSupplier(runner *parallel.ParallelRunner, client rdsiface.RDSAPI) *DBInstanceSupplier {
|
||||
return &DBInstanceSupplier{terraform.Provider(terraform.AWS), awsdeserializer.NewDBInstanceDeserializer(), client, terraform.NewParallelResourceReader(runner)}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,11 +4,11 @@ import (
|
|||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
||||
"github.com/cloudskiff/driftctl/test/goldenfile"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
"github.com/cloudskiff/driftctl/pkg/terraform"
|
||||
"github.com/cloudskiff/driftctl/test"
|
||||
|
@ -94,7 +94,7 @@ func TestDBInstanceSupplier_Resources(t *testing.T) {
|
|||
provider,
|
||||
deserializer,
|
||||
mocks.NewMockAWSRDSClient(tt.instancesPages),
|
||||
terraform.NewParallelResourceReader(pkg.NewParallelRunner(context.TODO(), 10)),
|
||||
terraform.NewParallelResourceReader(parallel.NewParallelRunner(context.TODO(), 10)),
|
||||
}
|
||||
got, err := s.Resources()
|
||||
if tt.err != err {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package aws
|
||||
|
||||
import (
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
"github.com/cloudskiff/driftctl/pkg/remote/deserializer"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource/aws"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
@ -24,7 +24,7 @@ type DBSubnetGroupSupplier struct {
|
|||
runner *terraform.ParallelResourceReader
|
||||
}
|
||||
|
||||
func NewDBSubnetGroupSupplier(runner *pkg.ParallelRunner, client rdsiface.RDSAPI) *DBSubnetGroupSupplier {
|
||||
func NewDBSubnetGroupSupplier(runner *parallel.ParallelRunner, client rdsiface.RDSAPI) *DBSubnetGroupSupplier {
|
||||
return &DBSubnetGroupSupplier{
|
||||
terraform.Provider(terraform.AWS),
|
||||
awsdeserializer.NewDBSubnetGroupDeserializer(),
|
||||
|
|
|
@ -4,12 +4,11 @@ import (
|
|||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
||||
"github.com/cloudskiff/driftctl/test/goldenfile"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
|
||||
"github.com/aws/aws-sdk-go/service/rds"
|
||||
|
@ -86,7 +85,7 @@ func TestDBSubnetGroupSupplier_Resources(t *testing.T) {
|
|||
provider,
|
||||
deserializer,
|
||||
mocks.NewMockAWSRDSSubnetGroupClient(tt.subnets),
|
||||
terraform.NewParallelResourceReader(pkg.NewParallelRunner(context.TODO(), 10)),
|
||||
terraform.NewParallelResourceReader(parallel.NewParallelRunner(context.TODO(), 10)),
|
||||
}
|
||||
got, err := s.Resources()
|
||||
if tt.err != err {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package aws
|
||||
|
||||
import (
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
"github.com/cloudskiff/driftctl/pkg/remote/deserializer"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
resourceaws "github.com/cloudskiff/driftctl/pkg/resource/aws"
|
||||
|
@ -22,7 +22,7 @@ type EC2AmiSupplier struct {
|
|||
runner *terraform.ParallelResourceReader
|
||||
}
|
||||
|
||||
func NewEC2AmiSupplier(runner *pkg.ParallelRunner, client ec2iface.EC2API) *EC2AmiSupplier {
|
||||
func NewEC2AmiSupplier(runner *parallel.ParallelRunner, client ec2iface.EC2API) *EC2AmiSupplier {
|
||||
return &EC2AmiSupplier{terraform.Provider(terraform.AWS), awsdeserializer.NewEC2AmiDeserializer(), client, terraform.NewParallelResourceReader(runner)}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,11 +4,11 @@ import (
|
|||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
||||
"github.com/cloudskiff/driftctl/test/goldenfile"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
"github.com/cloudskiff/driftctl/pkg/terraform"
|
||||
"github.com/cloudskiff/driftctl/test"
|
||||
|
@ -56,7 +56,7 @@ func TestEC2AmiSupplier_Resources(t *testing.T) {
|
|||
provider,
|
||||
deserializer,
|
||||
mocks.NewMockAWSEC2AmiClient(tt.amiIDs),
|
||||
terraform.NewParallelResourceReader(pkg.NewParallelRunner(context.TODO(), 10)),
|
||||
terraform.NewParallelResourceReader(parallel.NewParallelRunner(context.TODO(), 10)),
|
||||
}
|
||||
got, err := s.Resources()
|
||||
if tt.err != err {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package aws
|
||||
|
||||
import (
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
"github.com/cloudskiff/driftctl/pkg/remote/deserializer"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
resourceaws "github.com/cloudskiff/driftctl/pkg/resource/aws"
|
||||
|
@ -22,7 +22,7 @@ type EC2EbsSnapshotSupplier struct {
|
|||
runner *terraform.ParallelResourceReader
|
||||
}
|
||||
|
||||
func NewEC2EbsSnapshotSupplier(runner *pkg.ParallelRunner, client ec2iface.EC2API) *EC2EbsSnapshotSupplier {
|
||||
func NewEC2EbsSnapshotSupplier(runner *parallel.ParallelRunner, client ec2iface.EC2API) *EC2EbsSnapshotSupplier {
|
||||
return &EC2EbsSnapshotSupplier{terraform.Provider(terraform.AWS), awsdeserializer.NewEC2EbsSnapshotDeserializer(), client, terraform.NewParallelResourceReader(runner)}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,11 +4,11 @@ import (
|
|||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
||||
"github.com/cloudskiff/driftctl/test/goldenfile"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
"github.com/cloudskiff/driftctl/pkg/terraform"
|
||||
"github.com/cloudskiff/driftctl/test"
|
||||
|
@ -83,7 +83,7 @@ func TestEC2EbsSnapshotSupplier_Resources(t *testing.T) {
|
|||
provider,
|
||||
deserializer,
|
||||
mocks.NewMockAWSEC2EbsSnapshotClient(tt.snapshotsPages),
|
||||
terraform.NewParallelResourceReader(pkg.NewParallelRunner(context.TODO(), 10)),
|
||||
terraform.NewParallelResourceReader(parallel.NewParallelRunner(context.TODO(), 10)),
|
||||
}
|
||||
got, err := s.Resources()
|
||||
if tt.err != err {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package aws
|
||||
|
||||
import (
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
"github.com/cloudskiff/driftctl/pkg/remote/deserializer"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
resourceaws "github.com/cloudskiff/driftctl/pkg/resource/aws"
|
||||
|
@ -22,7 +22,7 @@ type EC2EbsVolumeSupplier struct {
|
|||
runner *terraform.ParallelResourceReader
|
||||
}
|
||||
|
||||
func NewEC2EbsVolumeSupplier(runner *pkg.ParallelRunner, client ec2iface.EC2API) *EC2EbsVolumeSupplier {
|
||||
func NewEC2EbsVolumeSupplier(runner *parallel.ParallelRunner, client ec2iface.EC2API) *EC2EbsVolumeSupplier {
|
||||
return &EC2EbsVolumeSupplier{terraform.Provider(terraform.AWS), awsdeserializer.NewEC2EbsVolumeDeserializer(), client, terraform.NewParallelResourceReader(runner)}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,11 +4,11 @@ import (
|
|||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
||||
"github.com/cloudskiff/driftctl/test/goldenfile"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
"github.com/cloudskiff/driftctl/pkg/terraform"
|
||||
"github.com/cloudskiff/driftctl/test"
|
||||
|
@ -83,7 +83,7 @@ func TestEC2EbsVolumeSupplier_Resources(t *testing.T) {
|
|||
provider,
|
||||
deserializer,
|
||||
mocks.NewMockAWSEC2EbsVolumeClient(tt.volumesPages),
|
||||
terraform.NewParallelResourceReader(pkg.NewParallelRunner(context.TODO(), 10)),
|
||||
terraform.NewParallelResourceReader(parallel.NewParallelRunner(context.TODO(), 10)),
|
||||
}
|
||||
got, err := s.Resources()
|
||||
if tt.err != err {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package aws
|
||||
|
||||
import (
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
"github.com/cloudskiff/driftctl/pkg/remote/deserializer"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
resourceaws "github.com/cloudskiff/driftctl/pkg/resource/aws"
|
||||
|
@ -21,7 +21,7 @@ type EC2EipAssociationSupplier struct {
|
|||
runner *terraform.ParallelResourceReader
|
||||
}
|
||||
|
||||
func NewEC2EipAssociationSupplier(runner *pkg.ParallelRunner, client ec2iface.EC2API) *EC2EipAssociationSupplier {
|
||||
func NewEC2EipAssociationSupplier(runner *parallel.ParallelRunner, client ec2iface.EC2API) *EC2EipAssociationSupplier {
|
||||
return &EC2EipAssociationSupplier{terraform.Provider(terraform.AWS), awsdeserializer.NewEC2EipAssociationDeserializer(), client, terraform.NewParallelResourceReader(runner)}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,11 +4,11 @@ import (
|
|||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
||||
"github.com/cloudskiff/driftctl/test/goldenfile"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
"github.com/cloudskiff/driftctl/pkg/terraform"
|
||||
"github.com/cloudskiff/driftctl/test"
|
||||
|
@ -61,7 +61,7 @@ func TestEC2EipAssociationSupplier_Resources(t *testing.T) {
|
|||
provider,
|
||||
deserializer,
|
||||
mocks.NewMockAWSEC2EipClient(tt.addresses),
|
||||
terraform.NewParallelResourceReader(pkg.NewParallelRunner(context.TODO(), 10)),
|
||||
terraform.NewParallelResourceReader(parallel.NewParallelRunner(context.TODO(), 10)),
|
||||
}
|
||||
got, err := s.Resources()
|
||||
if tt.err != err {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package aws
|
||||
|
||||
import (
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
"github.com/cloudskiff/driftctl/pkg/remote/deserializer"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
resourceaws "github.com/cloudskiff/driftctl/pkg/resource/aws"
|
||||
|
@ -22,7 +22,7 @@ type EC2EipSupplier struct {
|
|||
runner *terraform.ParallelResourceReader
|
||||
}
|
||||
|
||||
func NewEC2EipSupplier(runner *pkg.ParallelRunner, client ec2iface.EC2API) *EC2EipSupplier {
|
||||
func NewEC2EipSupplier(runner *parallel.ParallelRunner, client ec2iface.EC2API) *EC2EipSupplier {
|
||||
return &EC2EipSupplier{terraform.Provider(terraform.AWS), awsdeserializer.NewEC2EipDeserializer(), client, terraform.NewParallelResourceReader(runner)}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,11 +4,11 @@ import (
|
|||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
||||
"github.com/cloudskiff/driftctl/test/goldenfile"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
"github.com/cloudskiff/driftctl/pkg/terraform"
|
||||
"github.com/cloudskiff/driftctl/test"
|
||||
|
@ -64,7 +64,7 @@ func TestEC2EipSupplier_Resources(t *testing.T) {
|
|||
provider,
|
||||
deserializer,
|
||||
mocks.NewMockAWSEC2EipClient(tt.addresses),
|
||||
terraform.NewParallelResourceReader(pkg.NewParallelRunner(context.TODO(), 10)),
|
||||
terraform.NewParallelResourceReader(parallel.NewParallelRunner(context.TODO(), 10)),
|
||||
}
|
||||
got, err := s.Resources()
|
||||
if tt.err != err {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package aws
|
||||
|
||||
import (
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
"github.com/cloudskiff/driftctl/pkg/remote/deserializer"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
resourceaws "github.com/cloudskiff/driftctl/pkg/resource/aws"
|
||||
|
@ -22,7 +22,7 @@ type EC2InstanceSupplier struct {
|
|||
runner *terraform.ParallelResourceReader
|
||||
}
|
||||
|
||||
func NewEC2InstanceSupplier(runner *pkg.ParallelRunner, client ec2iface.EC2API) *EC2InstanceSupplier {
|
||||
func NewEC2InstanceSupplier(runner *parallel.ParallelRunner, client ec2iface.EC2API) *EC2InstanceSupplier {
|
||||
return &EC2InstanceSupplier{terraform.Provider(terraform.AWS), awsdeserializer.NewEC2InstanceDeserializer(), client, terraform.NewParallelResourceReader(runner)}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,11 +4,11 @@ import (
|
|||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
||||
"github.com/cloudskiff/driftctl/test/goldenfile"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
"github.com/cloudskiff/driftctl/pkg/terraform"
|
||||
"github.com/cloudskiff/driftctl/test"
|
||||
|
@ -115,7 +115,7 @@ func TestEC2InstanceSupplier_Resources(t *testing.T) {
|
|||
provider,
|
||||
deserializer,
|
||||
mocks.NewMockAWSEC2InstanceClient(tt.instancesPages),
|
||||
terraform.NewParallelResourceReader(pkg.NewParallelRunner(context.TODO(), 10)),
|
||||
terraform.NewParallelResourceReader(parallel.NewParallelRunner(context.TODO(), 10)),
|
||||
}
|
||||
got, err := s.Resources()
|
||||
if tt.err != err {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package aws
|
||||
|
||||
import (
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
"github.com/cloudskiff/driftctl/pkg/remote/deserializer"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
resourceaws "github.com/cloudskiff/driftctl/pkg/resource/aws"
|
||||
|
@ -22,7 +22,7 @@ type EC2KeyPairSupplier struct {
|
|||
runner *terraform.ParallelResourceReader
|
||||
}
|
||||
|
||||
func NewEC2KeyPairSupplier(runner *pkg.ParallelRunner, client ec2iface.EC2API) *EC2KeyPairSupplier {
|
||||
func NewEC2KeyPairSupplier(runner *parallel.ParallelRunner, client ec2iface.EC2API) *EC2KeyPairSupplier {
|
||||
return &EC2KeyPairSupplier{terraform.Provider(terraform.AWS), awsdeserializer.NewEC2KeyPairDeserializer(), client, terraform.NewParallelResourceReader(runner)}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ import (
|
|||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
||||
"github.com/cloudskiff/driftctl/test/goldenfile"
|
||||
|
@ -12,7 +13,6 @@ import (
|
|||
"github.com/aws/aws-sdk-go/aws/awsutil"
|
||||
"github.com/r3labs/diff/v2"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
resourceaws "github.com/cloudskiff/driftctl/pkg/resource/aws"
|
||||
"github.com/cloudskiff/driftctl/pkg/terraform"
|
||||
|
@ -61,7 +61,7 @@ func TestEC2KeyPairSupplier_Resources(t *testing.T) {
|
|||
provider,
|
||||
deserializer,
|
||||
mocks.NewMockAWSEC2KeyPairClient(tt.kpNames),
|
||||
terraform.NewParallelResourceReader(pkg.NewParallelRunner(context.TODO(), 10)),
|
||||
terraform.NewParallelResourceReader(parallel.NewParallelRunner(context.TODO(), 10)),
|
||||
}
|
||||
got, err := s.Resources()
|
||||
if tt.err != err {
|
||||
|
|
|
@ -3,7 +3,7 @@ package aws
|
|||
import (
|
||||
"github.com/aws/aws-sdk-go/service/iam"
|
||||
"github.com/aws/aws-sdk-go/service/iam/iamiface"
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
"github.com/cloudskiff/driftctl/pkg/remote/deserializer"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
resourceaws "github.com/cloudskiff/driftctl/pkg/resource/aws"
|
||||
|
@ -21,7 +21,7 @@ type IamAccessKeySupplier struct {
|
|||
runner *terraform.ParallelResourceReader
|
||||
}
|
||||
|
||||
func NewIamAccessKeySupplier(runner *pkg.ParallelRunner, client iamiface.IAMAPI) *IamAccessKeySupplier {
|
||||
func NewIamAccessKeySupplier(runner *parallel.ParallelRunner, client iamiface.IAMAPI) *IamAccessKeySupplier {
|
||||
return &IamAccessKeySupplier{terraform.Provider(terraform.AWS), awsdeserializer.NewIamAccessKeyDeserializer(), client, terraform.NewParallelResourceReader(runner)}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ import (
|
|||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
||||
"github.com/cloudskiff/driftctl/test/goldenfile"
|
||||
|
@ -17,7 +18,6 @@ import (
|
|||
|
||||
"github.com/cloudskiff/driftctl/mocks"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
"github.com/cloudskiff/driftctl/pkg/terraform"
|
||||
"github.com/cloudskiff/driftctl/test"
|
||||
|
@ -130,7 +130,7 @@ func TestIamAccessKeySupplier_Resources(t *testing.T) {
|
|||
provider,
|
||||
deserializer,
|
||||
&fakeIam,
|
||||
terraform.NewParallelResourceReader(pkg.NewParallelRunner(context.TODO(), 10)),
|
||||
terraform.NewParallelResourceReader(parallel.NewParallelRunner(context.TODO(), 10)),
|
||||
}
|
||||
got, err := s.Resources()
|
||||
if c.err != err {
|
||||
|
|
|
@ -4,7 +4,7 @@ import (
|
|||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/service/iam"
|
||||
"github.com/aws/aws-sdk-go/service/iam/iamiface"
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
"github.com/cloudskiff/driftctl/pkg/remote/deserializer"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
resourceaws "github.com/cloudskiff/driftctl/pkg/resource/aws"
|
||||
|
@ -22,7 +22,7 @@ type IamPolicySupplier struct {
|
|||
runner *terraform.ParallelResourceReader
|
||||
}
|
||||
|
||||
func NewIamPolicySupplier(runner *pkg.ParallelRunner, client iamiface.IAMAPI) *IamPolicySupplier {
|
||||
func NewIamPolicySupplier(runner *parallel.ParallelRunner, client iamiface.IAMAPI) *IamPolicySupplier {
|
||||
return &IamPolicySupplier{terraform.Provider(terraform.AWS), awsdeserializer.NewIamPolicyDeserializer(), client, terraform.NewParallelResourceReader(runner)}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ import (
|
|||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
|
@ -14,7 +15,6 @@ import (
|
|||
"github.com/stretchr/testify/mock"
|
||||
|
||||
"github.com/cloudskiff/driftctl/mocks"
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
"github.com/cloudskiff/driftctl/pkg/terraform"
|
||||
"github.com/cloudskiff/driftctl/test"
|
||||
|
@ -89,7 +89,7 @@ func TestIamPolicySupplier_Resources(t *testing.T) {
|
|||
provider,
|
||||
deserializer,
|
||||
&fakeIam,
|
||||
terraform.NewParallelResourceReader(pkg.NewParallelRunner(context.TODO(), 10)),
|
||||
terraform.NewParallelResourceReader(parallel.NewParallelRunner(context.TODO(), 10)),
|
||||
}
|
||||
got, err := s.Resources()
|
||||
if c.err != err {
|
||||
|
|
|
@ -3,7 +3,7 @@ package aws
|
|||
import (
|
||||
"github.com/aws/aws-sdk-go/service/iam"
|
||||
"github.com/aws/aws-sdk-go/service/iam/iamiface"
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
"github.com/cloudskiff/driftctl/pkg/remote/deserializer"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
resourceaws "github.com/cloudskiff/driftctl/pkg/resource/aws"
|
||||
|
@ -21,7 +21,7 @@ type IamRolePolicyAttachmentSupplier struct {
|
|||
runner *terraform.ParallelResourceReader
|
||||
}
|
||||
|
||||
func NewIamRolePolicyAttachmentSupplier(runner *pkg.ParallelRunner, client iamiface.IAMAPI) *IamRolePolicyAttachmentSupplier {
|
||||
func NewIamRolePolicyAttachmentSupplier(runner *parallel.ParallelRunner, client iamiface.IAMAPI) *IamRolePolicyAttachmentSupplier {
|
||||
return &IamRolePolicyAttachmentSupplier{terraform.Provider(terraform.AWS), awsdeserializer.NewIamRolePolicyAttachmentDeserializer(), client, terraform.NewParallelResourceReader(runner)}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ import (
|
|||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
|
@ -16,7 +17,6 @@ import (
|
|||
|
||||
"github.com/cloudskiff/driftctl/mocks"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
"github.com/cloudskiff/driftctl/pkg/terraform"
|
||||
"github.com/cloudskiff/driftctl/test"
|
||||
|
@ -155,7 +155,7 @@ func TestIamRolePolicyAttachmentSupplier_Resources(t *testing.T) {
|
|||
provider,
|
||||
deserializer,
|
||||
&fakeIam,
|
||||
terraform.NewParallelResourceReader(pkg.NewParallelRunner(context.TODO(), 1)),
|
||||
terraform.NewParallelResourceReader(parallel.NewParallelRunner(context.TODO(), 1)),
|
||||
}
|
||||
got, err := s.Resources()
|
||||
if c.err != err {
|
||||
|
|
|
@ -3,11 +3,11 @@ package aws
|
|||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
||||
"github.com/aws/aws-sdk-go/service/iam"
|
||||
"github.com/aws/aws-sdk-go/service/iam/iamiface"
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/remote/deserializer"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
resourceaws "github.com/cloudskiff/driftctl/pkg/resource/aws"
|
||||
|
@ -24,7 +24,7 @@ type IamRolePolicySupplier struct {
|
|||
runner *terraform.ParallelResourceReader
|
||||
}
|
||||
|
||||
func NewIamRolePolicySupplier(runner *pkg.ParallelRunner, client iamiface.IAMAPI) *IamRolePolicySupplier {
|
||||
func NewIamRolePolicySupplier(runner *parallel.ParallelRunner, client iamiface.IAMAPI) *IamRolePolicySupplier {
|
||||
return &IamRolePolicySupplier{terraform.Provider(terraform.AWS), awsdeserializer.NewIamRolePolicyDeserializer(), client, terraform.NewParallelResourceReader(runner)}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ import (
|
|||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
|
@ -16,7 +17,6 @@ import (
|
|||
|
||||
"github.com/cloudskiff/driftctl/mocks"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
"github.com/cloudskiff/driftctl/pkg/terraform"
|
||||
"github.com/cloudskiff/driftctl/test"
|
||||
|
@ -146,7 +146,7 @@ func TestIamRolePolicySupplier_Resources(t *testing.T) {
|
|||
provider,
|
||||
deserializer,
|
||||
&fakeIam,
|
||||
terraform.NewParallelResourceReader(pkg.NewParallelRunner(context.TODO(), 10)),
|
||||
terraform.NewParallelResourceReader(parallel.NewParallelRunner(context.TODO(), 10)),
|
||||
}
|
||||
got, err := s.Resources()
|
||||
if c.err != err {
|
||||
|
|
|
@ -3,7 +3,7 @@ package aws
|
|||
import (
|
||||
"github.com/aws/aws-sdk-go/service/iam"
|
||||
"github.com/aws/aws-sdk-go/service/iam/iamiface"
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
"github.com/cloudskiff/driftctl/pkg/remote/deserializer"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
resourceaws "github.com/cloudskiff/driftctl/pkg/resource/aws"
|
||||
|
@ -30,7 +30,7 @@ type IamRoleSupplier struct {
|
|||
runner *terraform.ParallelResourceReader
|
||||
}
|
||||
|
||||
func NewIamRoleSupplier(runner *pkg.ParallelRunner, client iamiface.IAMAPI) *IamRoleSupplier {
|
||||
func NewIamRoleSupplier(runner *parallel.ParallelRunner, client iamiface.IAMAPI) *IamRoleSupplier {
|
||||
return &IamRoleSupplier{terraform.Provider(terraform.AWS), awsdeserializer.NewIamRoleDeserializer(), client, terraform.NewParallelResourceReader(runner)}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ import (
|
|||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
|
@ -14,7 +15,6 @@ import (
|
|||
"github.com/stretchr/testify/mock"
|
||||
|
||||
"github.com/cloudskiff/driftctl/mocks"
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
"github.com/cloudskiff/driftctl/pkg/terraform"
|
||||
"github.com/cloudskiff/driftctl/test"
|
||||
|
@ -108,7 +108,7 @@ func TestIamRoleSupplier_Resources(t *testing.T) {
|
|||
provider,
|
||||
deserializer,
|
||||
&fakeIam,
|
||||
terraform.NewParallelResourceReader(pkg.NewParallelRunner(context.TODO(), 10)),
|
||||
terraform.NewParallelResourceReader(parallel.NewParallelRunner(context.TODO(), 10)),
|
||||
}
|
||||
got, err := s.Resources()
|
||||
if c.err != err {
|
||||
|
|
|
@ -3,7 +3,7 @@ package aws
|
|||
import (
|
||||
"github.com/aws/aws-sdk-go/service/iam"
|
||||
"github.com/aws/aws-sdk-go/service/iam/iamiface"
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
"github.com/cloudskiff/driftctl/pkg/remote/deserializer"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
resourceaws "github.com/cloudskiff/driftctl/pkg/resource/aws"
|
||||
|
@ -21,7 +21,7 @@ type IamUserPolicyAttachmentSupplier struct {
|
|||
runner *terraform.ParallelResourceReader
|
||||
}
|
||||
|
||||
func NewIamUserPolicyAttachmentSupplier(runner *pkg.ParallelRunner, client iamiface.IAMAPI) *IamUserPolicyAttachmentSupplier {
|
||||
func NewIamUserPolicyAttachmentSupplier(runner *parallel.ParallelRunner, client iamiface.IAMAPI) *IamUserPolicyAttachmentSupplier {
|
||||
return &IamUserPolicyAttachmentSupplier{terraform.Provider(terraform.AWS), awsdeserializer.NewIamUserPolicyAttachmentDeserializer(), client, terraform.NewParallelResourceReader(runner)}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ import (
|
|||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
|
@ -16,7 +17,6 @@ import (
|
|||
|
||||
"github.com/cloudskiff/driftctl/mocks"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
"github.com/cloudskiff/driftctl/pkg/terraform"
|
||||
"github.com/cloudskiff/driftctl/test"
|
||||
|
@ -171,7 +171,7 @@ func TestIamUserPolicyAttachmentSupplier_Resources(t *testing.T) {
|
|||
provider,
|
||||
deserializer,
|
||||
&fakeIam,
|
||||
terraform.NewParallelResourceReader(pkg.NewParallelRunner(context.TODO(), 1)),
|
||||
terraform.NewParallelResourceReader(parallel.NewParallelRunner(context.TODO(), 1)),
|
||||
}
|
||||
got, err := s.Resources()
|
||||
if c.err != err {
|
||||
|
|
|
@ -3,11 +3,11 @@ package aws
|
|||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
||||
"github.com/aws/aws-sdk-go/service/iam"
|
||||
"github.com/aws/aws-sdk-go/service/iam/iamiface"
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/remote/deserializer"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
resourceaws "github.com/cloudskiff/driftctl/pkg/resource/aws"
|
||||
|
@ -24,7 +24,7 @@ type IamUserPolicySupplier struct {
|
|||
runner *terraform.ParallelResourceReader
|
||||
}
|
||||
|
||||
func NewIamUserPolicySupplier(runner *pkg.ParallelRunner, client iamiface.IAMAPI) *IamUserPolicySupplier {
|
||||
func NewIamUserPolicySupplier(runner *parallel.ParallelRunner, client iamiface.IAMAPI) *IamUserPolicySupplier {
|
||||
return &IamUserPolicySupplier{terraform.Provider(terraform.AWS), awsdeserializer.NewIamUserPolicyDeserializer(), client, terraform.NewParallelResourceReader(runner)}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ import (
|
|||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
|
@ -16,7 +17,6 @@ import (
|
|||
|
||||
"github.com/cloudskiff/driftctl/mocks"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
"github.com/cloudskiff/driftctl/pkg/terraform"
|
||||
"github.com/cloudskiff/driftctl/test"
|
||||
|
@ -152,7 +152,7 @@ func TestIamUserPolicySupplier_Resources(t *testing.T) {
|
|||
provider,
|
||||
deserializer,
|
||||
&fakeIam,
|
||||
terraform.NewParallelResourceReader(pkg.NewParallelRunner(context.TODO(), 10)),
|
||||
terraform.NewParallelResourceReader(parallel.NewParallelRunner(context.TODO(), 10)),
|
||||
}
|
||||
got, err := s.Resources()
|
||||
if c.err != err {
|
||||
|
|
|
@ -3,7 +3,7 @@ package aws
|
|||
import (
|
||||
"github.com/aws/aws-sdk-go/service/iam"
|
||||
"github.com/aws/aws-sdk-go/service/iam/iamiface"
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
"github.com/cloudskiff/driftctl/pkg/remote/deserializer"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
resourceaws "github.com/cloudskiff/driftctl/pkg/resource/aws"
|
||||
|
@ -21,7 +21,7 @@ type IamUserSupplier struct {
|
|||
runner *terraform.ParallelResourceReader
|
||||
}
|
||||
|
||||
func NewIamUserSupplier(runner *pkg.ParallelRunner, client iamiface.IAMAPI) *IamUserSupplier {
|
||||
func NewIamUserSupplier(runner *parallel.ParallelRunner, client iamiface.IAMAPI) *IamUserSupplier {
|
||||
return &IamUserSupplier{terraform.Provider(terraform.AWS), awsdeserializer.NewIamUserDeserializer(), client, terraform.NewParallelResourceReader(runner)}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ import (
|
|||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
||||
"github.com/cloudskiff/driftctl/test/goldenfile"
|
||||
|
@ -17,7 +18,6 @@ import (
|
|||
|
||||
"github.com/cloudskiff/driftctl/mocks"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
"github.com/cloudskiff/driftctl/pkg/terraform"
|
||||
"github.com/cloudskiff/driftctl/test"
|
||||
|
@ -87,7 +87,7 @@ func TestIamUserSupplier_Resources(t *testing.T) {
|
|||
provider,
|
||||
deserializer,
|
||||
&fakeIam,
|
||||
terraform.NewParallelResourceReader(pkg.NewParallelRunner(context.TODO(), 10)),
|
||||
terraform.NewParallelResourceReader(parallel.NewParallelRunner(context.TODO(), 10)),
|
||||
}
|
||||
got, err := s.Resources()
|
||||
if c.err != err {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package aws
|
||||
|
||||
import (
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
"github.com/cloudskiff/driftctl/pkg/remote/deserializer"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
resourceaws "github.com/cloudskiff/driftctl/pkg/resource/aws"
|
||||
|
@ -21,7 +21,7 @@ type LambdaFunctionSupplier struct {
|
|||
runner *terraform.ParallelResourceReader
|
||||
}
|
||||
|
||||
func NewLambdaFunctionSupplier(runner *pkg.ParallelRunner, client lambdaiface.LambdaAPI) *LambdaFunctionSupplier {
|
||||
func NewLambdaFunctionSupplier(runner *parallel.ParallelRunner, client lambdaiface.LambdaAPI) *LambdaFunctionSupplier {
|
||||
return &LambdaFunctionSupplier{terraform.Provider(terraform.AWS), awsdeserializer.NewLambdaFunctionDeserializer(), client, terraform.NewParallelResourceReader(runner)}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,11 +4,11 @@ import (
|
|||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
||||
"github.com/cloudskiff/driftctl/test/goldenfile"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
"github.com/cloudskiff/driftctl/pkg/terraform"
|
||||
"github.com/cloudskiff/driftctl/test"
|
||||
|
@ -100,7 +100,7 @@ func TestLambdaFunctionSupplier_Resources(t *testing.T) {
|
|||
provider,
|
||||
deserializer,
|
||||
mocks.NewMockAWSLambdaClient(tt.functionsPages),
|
||||
terraform.NewParallelResourceReader(pkg.NewParallelRunner(context.TODO(), 10)),
|
||||
terraform.NewParallelResourceReader(parallel.NewParallelRunner(context.TODO(), 10)),
|
||||
}
|
||||
got, err := s.Resources()
|
||||
if tt.err != err {
|
||||
|
|
|
@ -3,11 +3,11 @@ package aws
|
|||
import (
|
||||
"strings"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/remote/deserializer"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
resourceaws "github.com/cloudskiff/driftctl/pkg/resource/aws"
|
||||
"github.com/cloudskiff/driftctl/pkg/terraform"
|
||||
|
@ -26,7 +26,7 @@ type Route53RecordSupplier struct {
|
|||
runner *terraform.ParallelResourceReader
|
||||
}
|
||||
|
||||
func NewRoute53RecordSupplier(runner *pkg.ParallelRunner, client route53iface.Route53API) *Route53RecordSupplier {
|
||||
func NewRoute53RecordSupplier(runner *parallel.ParallelRunner, client route53iface.Route53API) *Route53RecordSupplier {
|
||||
return &Route53RecordSupplier{terraform.Provider(terraform.AWS), awsdeserializer.NewRoute53RecordDeserializer(), client, terraform.NewParallelResourceReader(runner)}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,13 +4,13 @@ import (
|
|||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
||||
"github.com/cloudskiff/driftctl/test/goldenfile"
|
||||
|
||||
awssdk "github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/service/route53"
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
"github.com/cloudskiff/driftctl/pkg/terraform"
|
||||
"github.com/cloudskiff/driftctl/test"
|
||||
|
@ -197,7 +197,7 @@ func TestRoute53RecordSupplier_Resources(t *testing.T) {
|
|||
provider,
|
||||
deserializer,
|
||||
mocks.NewMockAWSRoute53RecordClient(tt.zonesPages, tt.recordsPages),
|
||||
terraform.NewParallelResourceReader(pkg.NewParallelRunner(context.TODO(), 10)),
|
||||
terraform.NewParallelResourceReader(parallel.NewParallelRunner(context.TODO(), 10)),
|
||||
}
|
||||
got, err := s.Resources()
|
||||
if tt.err != err {
|
||||
|
|
|
@ -3,7 +3,7 @@ package aws
|
|||
import (
|
||||
"strings"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
"github.com/cloudskiff/driftctl/pkg/remote/deserializer"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
resourceaws "github.com/cloudskiff/driftctl/pkg/resource/aws"
|
||||
|
@ -23,7 +23,7 @@ type Route53ZoneSupplier struct {
|
|||
runner *terraform.ParallelResourceReader
|
||||
}
|
||||
|
||||
func NewRoute53ZoneSupplier(runner *pkg.ParallelRunner, client route53iface.Route53API) *Route53ZoneSupplier {
|
||||
func NewRoute53ZoneSupplier(runner *parallel.ParallelRunner, client route53iface.Route53API) *Route53ZoneSupplier {
|
||||
return &Route53ZoneSupplier{terraform.Provider(terraform.AWS), awsdeserializer.NewRoute53ZoneDeserializer(), client, terraform.NewParallelResourceReader(runner)}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,11 +4,11 @@ import (
|
|||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
||||
"github.com/cloudskiff/driftctl/test/goldenfile"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
"github.com/cloudskiff/driftctl/pkg/terraform"
|
||||
"github.com/cloudskiff/driftctl/test"
|
||||
|
@ -108,7 +108,7 @@ func TestRoute53ZoneSupplier_Resources(t *testing.T) {
|
|||
provider,
|
||||
deserializer,
|
||||
mocks.NewMockAWSRoute53ZoneClient(tt.zonesPages),
|
||||
terraform.NewParallelResourceReader(pkg.NewParallelRunner(context.TODO(), 10)),
|
||||
terraform.NewParallelResourceReader(parallel.NewParallelRunner(context.TODO(), 10)),
|
||||
}
|
||||
got, err := s.Resources()
|
||||
if tt.err != err {
|
||||
|
|
|
@ -3,7 +3,7 @@ package aws
|
|||
import (
|
||||
"github.com/aws/aws-sdk-go/service/ec2"
|
||||
"github.com/aws/aws-sdk-go/service/ec2/ec2iface"
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
"github.com/cloudskiff/driftctl/pkg/remote/deserializer"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource/aws"
|
||||
|
@ -21,7 +21,7 @@ type RouteSupplier struct {
|
|||
routeRunner *terraform.ParallelResourceReader
|
||||
}
|
||||
|
||||
func NewRouteSupplier(runner *pkg.ParallelRunner, client ec2iface.EC2API) *RouteSupplier {
|
||||
func NewRouteSupplier(runner *parallel.ParallelRunner, client ec2iface.EC2API) *RouteSupplier {
|
||||
return &RouteSupplier{
|
||||
terraform.Provider(terraform.AWS),
|
||||
awsdeserializer.NewRouteDeserializer(),
|
||||
|
|
|
@ -7,7 +7,7 @@ import (
|
|||
awssdk "github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/service/ec2"
|
||||
"github.com/cloudskiff/driftctl/mocks"
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
"github.com/cloudskiff/driftctl/pkg/remote/deserializer"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
@ -148,7 +148,7 @@ func TestRouteSupplier_Resources(t *testing.T) {
|
|||
provider,
|
||||
routeDeserializer,
|
||||
&fakeEC2,
|
||||
terraform.NewParallelResourceReader(pkg.NewParallelRunner(context.TODO(), 10)),
|
||||
terraform.NewParallelResourceReader(parallel.NewParallelRunner(context.TODO(), 10)),
|
||||
}
|
||||
got, err := s.Resources()
|
||||
if c.err != err {
|
||||
|
|
|
@ -5,7 +5,7 @@ import (
|
|||
|
||||
"github.com/aws/aws-sdk-go/service/ec2"
|
||||
"github.com/aws/aws-sdk-go/service/ec2/ec2iface"
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
"github.com/cloudskiff/driftctl/pkg/remote/deserializer"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource/aws"
|
||||
|
@ -25,7 +25,7 @@ type RouteTableSupplier struct {
|
|||
routeTableRunner *terraform.ParallelResourceReader
|
||||
}
|
||||
|
||||
func NewRouteTableSupplier(runner *pkg.ParallelRunner, client ec2iface.EC2API) *RouteTableSupplier {
|
||||
func NewRouteTableSupplier(runner *parallel.ParallelRunner, client ec2iface.EC2API) *RouteTableSupplier {
|
||||
return &RouteTableSupplier{
|
||||
terraform.Provider(terraform.AWS),
|
||||
awsdeserializer.NewDefaultRouteTableDeserializer(),
|
||||
|
|
|
@ -8,7 +8,7 @@ import (
|
|||
awssdk "github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/service/ec2"
|
||||
"github.com/cloudskiff/driftctl/mocks"
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
"github.com/cloudskiff/driftctl/pkg/remote/deserializer"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
@ -101,8 +101,8 @@ func TestRouteTableSupplier_Resources(t *testing.T) {
|
|||
defaultRouteTableDeserializer,
|
||||
routeTableDeserializer,
|
||||
&fakeEC2,
|
||||
terraform.NewParallelResourceReader(pkg.NewParallelRunner(context.TODO(), 10)),
|
||||
terraform.NewParallelResourceReader(pkg.NewParallelRunner(context.TODO(), 10)),
|
||||
terraform.NewParallelResourceReader(parallel.NewParallelRunner(context.TODO(), 10)),
|
||||
terraform.NewParallelResourceReader(parallel.NewParallelRunner(context.TODO(), 10)),
|
||||
}
|
||||
got, err := s.Resources()
|
||||
if c.err != err {
|
||||
|
|
|
@ -3,12 +3,12 @@ package aws
|
|||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
||||
awssdk "github.com/aws/aws-sdk-go/aws"
|
||||
|
||||
"github.com/aws/aws-sdk-go/service/s3"
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/remote/deserializer"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource/aws"
|
||||
|
@ -24,7 +24,7 @@ type S3BucketAnalyticSupplier struct {
|
|||
runner *terraform.ParallelResourceReader
|
||||
}
|
||||
|
||||
func NewS3BucketAnalyticSupplier(runner *pkg.ParallelRunner, factory AwsClientFactoryInterface) *S3BucketAnalyticSupplier {
|
||||
func NewS3BucketAnalyticSupplier(runner *parallel.ParallelRunner, factory AwsClientFactoryInterface) *S3BucketAnalyticSupplier {
|
||||
return &S3BucketAnalyticSupplier{terraform.Provider(terraform.AWS), awsdeserializer.NewS3BucketAnalyticDeserializer(), factory, terraform.NewParallelResourceReader(runner)}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,11 +4,11 @@ import (
|
|||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
||||
"github.com/cloudskiff/driftctl/test/goldenfile"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
"github.com/cloudskiff/driftctl/pkg/terraform"
|
||||
"github.com/cloudskiff/driftctl/test"
|
||||
|
@ -79,7 +79,7 @@ func TestS3BucketAnalyticSupplier_Resources(t *testing.T) {
|
|||
provider,
|
||||
deserializer,
|
||||
factory,
|
||||
terraform.NewParallelResourceReader(pkg.NewParallelRunner(context.TODO(), 10)),
|
||||
terraform.NewParallelResourceReader(parallel.NewParallelRunner(context.TODO(), 10)),
|
||||
}
|
||||
got, err := s.Resources()
|
||||
if (err != nil) != tt.wantErr {
|
||||
|
|
|
@ -3,12 +3,12 @@ package aws
|
|||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
||||
awssdk "github.com/aws/aws-sdk-go/aws"
|
||||
|
||||
"github.com/aws/aws-sdk-go/service/s3"
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/remote/deserializer"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource/aws"
|
||||
|
@ -24,7 +24,7 @@ type S3BucketInventorySupplier struct {
|
|||
runner *terraform.ParallelResourceReader
|
||||
}
|
||||
|
||||
func NewS3BucketInventorySupplier(runner *pkg.ParallelRunner, factory AwsClientFactoryInterface) *S3BucketInventorySupplier {
|
||||
func NewS3BucketInventorySupplier(runner *parallel.ParallelRunner, factory AwsClientFactoryInterface) *S3BucketInventorySupplier {
|
||||
return &S3BucketInventorySupplier{terraform.Provider(terraform.AWS), awsdeserializer.NewS3BucketInventoryDeserializer(), factory, terraform.NewParallelResourceReader(runner)}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,11 +4,11 @@ import (
|
|||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
||||
"github.com/cloudskiff/driftctl/test/goldenfile"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
"github.com/cloudskiff/driftctl/pkg/terraform"
|
||||
"github.com/cloudskiff/driftctl/test"
|
||||
|
@ -79,7 +79,7 @@ func TestS3BucketInventorySupplier_Resources(t *testing.T) {
|
|||
provider,
|
||||
deserializer,
|
||||
factory,
|
||||
terraform.NewParallelResourceReader(pkg.NewParallelRunner(context.TODO(), 10)),
|
||||
terraform.NewParallelResourceReader(parallel.NewParallelRunner(context.TODO(), 10)),
|
||||
}
|
||||
got, err := s.Resources()
|
||||
if (err != nil) != tt.wantErr {
|
||||
|
|
|
@ -4,11 +4,11 @@ import (
|
|||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
||||
"github.com/cloudskiff/driftctl/test/goldenfile"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
"github.com/cloudskiff/driftctl/pkg/terraform"
|
||||
"github.com/cloudskiff/driftctl/test"
|
||||
|
@ -79,7 +79,7 @@ func TestS3BucketMetricSupplier_Resources(t *testing.T) {
|
|||
provider,
|
||||
deserializer,
|
||||
factory,
|
||||
terraform.NewParallelResourceReader(pkg.NewParallelRunner(context.TODO(), 10)),
|
||||
terraform.NewParallelResourceReader(parallel.NewParallelRunner(context.TODO(), 10)),
|
||||
}
|
||||
got, err := s.Resources()
|
||||
if (err != nil) != tt.wantErr {
|
||||
|
|
|
@ -3,12 +3,12 @@ package aws
|
|||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
||||
awssdk "github.com/aws/aws-sdk-go/aws"
|
||||
|
||||
"github.com/aws/aws-sdk-go/service/s3"
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/remote/deserializer"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource/aws"
|
||||
|
@ -24,7 +24,7 @@ type S3BucketMetricSupplier struct {
|
|||
runner *terraform.ParallelResourceReader
|
||||
}
|
||||
|
||||
func NewS3BucketMetricSupplier(runner *pkg.ParallelRunner, factory AwsClientFactoryInterface) *S3BucketMetricSupplier {
|
||||
func NewS3BucketMetricSupplier(runner *parallel.ParallelRunner, factory AwsClientFactoryInterface) *S3BucketMetricSupplier {
|
||||
return &S3BucketMetricSupplier{terraform.Provider(terraform.AWS), awsdeserializer.NewS3BucketMetricDeserializer(), factory, terraform.NewParallelResourceReader(runner)}
|
||||
}
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ package aws
|
|||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/service/s3"
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
"github.com/cloudskiff/driftctl/pkg/remote/deserializer"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource/aws"
|
||||
|
@ -18,7 +18,7 @@ type S3BucketNotificationSupplier struct {
|
|||
runner *terraform.ParallelResourceReader
|
||||
}
|
||||
|
||||
func NewS3BucketNotificationSupplier(runner *pkg.ParallelRunner, factory AwsClientFactoryInterface) *S3BucketNotificationSupplier {
|
||||
func NewS3BucketNotificationSupplier(runner *parallel.ParallelRunner, factory AwsClientFactoryInterface) *S3BucketNotificationSupplier {
|
||||
return &S3BucketNotificationSupplier{terraform.Provider(terraform.AWS), awsdeserializer.NewS3BucketNotificationDeserializer(), factory, terraform.NewParallelResourceReader(runner)}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,11 +4,11 @@ import (
|
|||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
||||
"github.com/cloudskiff/driftctl/test/goldenfile"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
"github.com/cloudskiff/driftctl/pkg/terraform"
|
||||
"github.com/cloudskiff/driftctl/test"
|
||||
|
@ -75,7 +75,7 @@ func TestS3BucketNotificationSupplier_Resources(t *testing.T) {
|
|||
provider,
|
||||
deserializer,
|
||||
factory,
|
||||
terraform.NewParallelResourceReader(pkg.NewParallelRunner(context.TODO(), 10)),
|
||||
terraform.NewParallelResourceReader(parallel.NewParallelRunner(context.TODO(), 10)),
|
||||
}
|
||||
got, err := s.Resources()
|
||||
if (err != nil) != tt.wantErr {
|
||||
|
|
|
@ -2,7 +2,7 @@ package aws
|
|||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/service/s3"
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
"github.com/cloudskiff/driftctl/pkg/remote/deserializer"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource/aws"
|
||||
|
@ -18,7 +18,7 @@ type S3BucketPolicySupplier struct {
|
|||
runner *terraform.ParallelResourceReader
|
||||
}
|
||||
|
||||
func NewS3BucketPolicySupplier(runner *pkg.ParallelRunner, factory AwsClientFactoryInterface) *S3BucketPolicySupplier {
|
||||
func NewS3BucketPolicySupplier(runner *parallel.ParallelRunner, factory AwsClientFactoryInterface) *S3BucketPolicySupplier {
|
||||
return &S3BucketPolicySupplier{terraform.Provider(terraform.AWS), awsdeserializer.NewS3BucketPolicyDeserializer(), factory, terraform.NewParallelResourceReader(runner)}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,11 +4,11 @@ import (
|
|||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
||||
"github.com/cloudskiff/driftctl/test/goldenfile"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
"github.com/cloudskiff/driftctl/pkg/terraform"
|
||||
"github.com/cloudskiff/driftctl/test"
|
||||
|
@ -75,7 +75,7 @@ func TestS3BucketPolicySupplier_Resources(t *testing.T) {
|
|||
provider,
|
||||
deserializer,
|
||||
factory,
|
||||
terraform.NewParallelResourceReader(pkg.NewParallelRunner(context.TODO(), 10)),
|
||||
terraform.NewParallelResourceReader(parallel.NewParallelRunner(context.TODO(), 10)),
|
||||
}
|
||||
got, err := s.Resources()
|
||||
if (err != nil) != tt.wantErr {
|
||||
|
|
|
@ -4,7 +4,7 @@ import (
|
|||
"github.com/aws/aws-sdk-go/aws/awserr"
|
||||
"github.com/aws/aws-sdk-go/service/s3"
|
||||
"github.com/aws/aws-sdk-go/service/s3/s3iface"
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
"github.com/cloudskiff/driftctl/pkg/remote/deserializer"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource/aws"
|
||||
|
@ -22,7 +22,7 @@ type S3BucketSupplier struct {
|
|||
runner *terraform.ParallelResourceReader
|
||||
}
|
||||
|
||||
func NewS3BucketSupplier(runner *pkg.ParallelRunner, factory AwsClientFactoryInterface) *S3BucketSupplier {
|
||||
func NewS3BucketSupplier(runner *parallel.ParallelRunner, factory AwsClientFactoryInterface) *S3BucketSupplier {
|
||||
return &S3BucketSupplier{terraform.Provider(terraform.AWS), awsdeserializer.NewS3BucketDeserializer(), factory, terraform.NewParallelResourceReader(runner)}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,11 +4,11 @@ import (
|
|||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
||||
"github.com/cloudskiff/driftctl/test/goldenfile"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
"github.com/cloudskiff/driftctl/pkg/terraform"
|
||||
"github.com/cloudskiff/driftctl/test"
|
||||
|
@ -63,7 +63,7 @@ func TestS3BucketSupplier_Resources(t *testing.T) {
|
|||
provider,
|
||||
deserializer,
|
||||
factory,
|
||||
terraform.NewParallelResourceReader(pkg.NewParallelRunner(context.TODO(), 10)),
|
||||
terraform.NewParallelResourceReader(parallel.NewParallelRunner(context.TODO(), 10)),
|
||||
}
|
||||
got, err := s.Resources()
|
||||
if (err != nil) != tt.wantErr {
|
||||
|
|
|
@ -3,7 +3,7 @@ package aws
|
|||
import (
|
||||
"github.com/aws/aws-sdk-go/service/ec2"
|
||||
"github.com/aws/aws-sdk-go/service/ec2/ec2iface"
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
"github.com/cloudskiff/driftctl/pkg/remote/deserializer"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource/aws"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
@ -24,7 +24,7 @@ type SubnetSupplier struct {
|
|||
subnetRunner *terraform.ParallelResourceReader
|
||||
}
|
||||
|
||||
func NewSubnetSupplier(runner *pkg.ParallelRunner, client ec2iface.EC2API) *SubnetSupplier {
|
||||
func NewSubnetSupplier(runner *parallel.ParallelRunner, client ec2iface.EC2API) *SubnetSupplier {
|
||||
return &SubnetSupplier{
|
||||
terraform.Provider(terraform.AWS),
|
||||
awsdeserializer.NewDefaultSubnetDeserializer(),
|
||||
|
|
|
@ -4,6 +4,7 @@ import (
|
|||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
"github.com/cloudskiff/driftctl/pkg/remote/deserializer"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
||||
|
@ -17,7 +18,6 @@ import (
|
|||
|
||||
"github.com/cloudskiff/driftctl/mocks"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
"github.com/cloudskiff/driftctl/pkg/terraform"
|
||||
"github.com/cloudskiff/driftctl/test"
|
||||
|
@ -111,8 +111,8 @@ func TestSubnetSupplier_Resources(t *testing.T) {
|
|||
defaultSubnetDeserializer,
|
||||
SubnetDeserializer,
|
||||
&fakeEC2,
|
||||
terraform.NewParallelResourceReader(pkg.NewParallelRunner(context.TODO(), 10)),
|
||||
terraform.NewParallelResourceReader(pkg.NewParallelRunner(context.TODO(), 10)),
|
||||
terraform.NewParallelResourceReader(parallel.NewParallelRunner(context.TODO(), 10)),
|
||||
terraform.NewParallelResourceReader(parallel.NewParallelRunner(context.TODO(), 10)),
|
||||
}
|
||||
got, err := s.Resources()
|
||||
if c.err != err {
|
||||
|
|
|
@ -9,7 +9,7 @@ import (
|
|||
"syscall"
|
||||
"time"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
"github.com/sirupsen/logrus"
|
||||
|
||||
tf "github.com/cloudskiff/driftctl/pkg/terraform"
|
||||
|
@ -61,7 +61,7 @@ type TerraformProvider struct {
|
|||
grpcProviders map[string]*plugin.GRPCProvider
|
||||
schemas map[string]providers.Schema
|
||||
defaultRegion string
|
||||
runner *pkg.ParallelRunner
|
||||
runner *parallel.ParallelRunner
|
||||
}
|
||||
|
||||
func NewTerraFormProvider() (*TerraformProvider, error) {
|
||||
|
@ -71,7 +71,7 @@ func NewTerraFormProvider() (*TerraformProvider, error) {
|
|||
}
|
||||
p := TerraformProvider{
|
||||
providerSupplier: provider,
|
||||
runner: pkg.NewParallelRunner(context.TODO(), 10),
|
||||
runner: parallel.NewParallelRunner(context.TODO(), 10),
|
||||
grpcProviders: make(map[string]*plugin.GRPCProvider),
|
||||
}
|
||||
p.initSession()
|
||||
|
@ -104,7 +104,7 @@ func (p *TerraformProvider) Schema() map[string]providers.Schema {
|
|||
return p.schemas
|
||||
}
|
||||
|
||||
func (p *TerraformProvider) Runner() *pkg.ParallelRunner {
|
||||
func (p *TerraformProvider) Runner() *parallel.ParallelRunner {
|
||||
return p.runner
|
||||
}
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package aws
|
||||
|
||||
import (
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
"github.com/cloudskiff/driftctl/pkg/remote/deserializer"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
resourceaws "github.com/cloudskiff/driftctl/pkg/resource/aws"
|
||||
|
@ -28,7 +28,7 @@ type VPCSecurityGroupRuleSupplier struct {
|
|||
runner *terraform.ParallelResourceReader
|
||||
}
|
||||
|
||||
func NewVPCSecurityGroupRuleSupplier(runner *pkg.ParallelRunner, client ec2iface.EC2API) *VPCSecurityGroupRuleSupplier {
|
||||
func NewVPCSecurityGroupRuleSupplier(runner *parallel.ParallelRunner, client ec2iface.EC2API) *VPCSecurityGroupRuleSupplier {
|
||||
return &VPCSecurityGroupRuleSupplier{terraform.Provider(terraform.AWS), awsdeserializer.NewVPCSecurityGroupRuleDeserializer(), client, terraform.NewParallelResourceReader(runner)}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ import (
|
|||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
||||
"github.com/aws/aws-sdk-go/service/ec2"
|
||||
|
@ -16,7 +17,6 @@ import (
|
|||
|
||||
"github.com/cloudskiff/driftctl/mocks"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
"github.com/cloudskiff/driftctl/pkg/terraform"
|
||||
"github.com/cloudskiff/driftctl/test"
|
||||
|
@ -235,7 +235,7 @@ func TestVPCSecurityGroupRuleSupplier_Resources(t *testing.T) {
|
|||
provider,
|
||||
deserializer,
|
||||
&fakeEC2,
|
||||
terraform.NewParallelResourceReader(pkg.NewParallelRunner(context.TODO(), 10)),
|
||||
terraform.NewParallelResourceReader(parallel.NewParallelRunner(context.TODO(), 10)),
|
||||
}
|
||||
got, err := s.Resources()
|
||||
if c.err != err {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package aws
|
||||
|
||||
import (
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
"github.com/cloudskiff/driftctl/pkg/remote/deserializer"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
resourceaws "github.com/cloudskiff/driftctl/pkg/resource/aws"
|
||||
|
@ -24,7 +24,7 @@ type VPCSecurityGroupSupplier struct {
|
|||
securityGroupRunner *terraform.ParallelResourceReader
|
||||
}
|
||||
|
||||
func NewVPCSecurityGroupSupplier(runner *pkg.ParallelRunner, client ec2iface.EC2API) *VPCSecurityGroupSupplier {
|
||||
func NewVPCSecurityGroupSupplier(runner *parallel.ParallelRunner, client ec2iface.EC2API) *VPCSecurityGroupSupplier {
|
||||
return &VPCSecurityGroupSupplier{
|
||||
terraform.Provider(terraform.AWS),
|
||||
awsdeserializer.NewDefaultSecurityGroupDeserializer(),
|
||||
|
|
|
@ -4,23 +4,18 @@ import (
|
|||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/remote/deserializer"
|
||||
|
||||
"github.com/stretchr/testify/mock"
|
||||
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
||||
"github.com/cloudskiff/driftctl/mocks"
|
||||
"github.com/cloudskiff/driftctl/test/goldenfile"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
"github.com/cloudskiff/driftctl/pkg/terraform"
|
||||
"github.com/cloudskiff/driftctl/test"
|
||||
mocks2 "github.com/cloudskiff/driftctl/test/mocks"
|
||||
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/service/ec2"
|
||||
"github.com/cloudskiff/driftctl/mocks"
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
"github.com/cloudskiff/driftctl/pkg/remote/deserializer"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
"github.com/cloudskiff/driftctl/pkg/terraform"
|
||||
"github.com/cloudskiff/driftctl/test"
|
||||
"github.com/cloudskiff/driftctl/test/goldenfile"
|
||||
mocks2 "github.com/cloudskiff/driftctl/test/mocks"
|
||||
"github.com/stretchr/testify/mock"
|
||||
)
|
||||
|
||||
func TestVPCSecurityGroupSupplier_Resources(t *testing.T) {
|
||||
|
@ -91,8 +86,8 @@ func TestVPCSecurityGroupSupplier_Resources(t *testing.T) {
|
|||
defaultSecurityGroupDeserializer,
|
||||
securityGroupDeserializer,
|
||||
&fakeEC2,
|
||||
terraform.NewParallelResourceReader(pkg.NewParallelRunner(context.TODO(), 10)),
|
||||
terraform.NewParallelResourceReader(pkg.NewParallelRunner(context.TODO(), 10)),
|
||||
terraform.NewParallelResourceReader(parallel.NewParallelRunner(context.TODO(), 10)),
|
||||
terraform.NewParallelResourceReader(parallel.NewParallelRunner(context.TODO(), 10)),
|
||||
}
|
||||
got, err := s.Resources()
|
||||
if tt.err != err {
|
||||
|
|
|
@ -3,7 +3,7 @@ package aws
|
|||
import (
|
||||
"github.com/aws/aws-sdk-go/service/ec2"
|
||||
"github.com/aws/aws-sdk-go/service/ec2/ec2iface"
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
"github.com/cloudskiff/driftctl/pkg/remote/deserializer"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource/aws"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
@ -24,7 +24,7 @@ type VPCSupplier struct {
|
|||
vpcRunner *terraform.ParallelResourceReader
|
||||
}
|
||||
|
||||
func NewVPCSupplier(runner *pkg.ParallelRunner, client ec2iface.EC2API) *VPCSupplier {
|
||||
func NewVPCSupplier(runner *parallel.ParallelRunner, client ec2iface.EC2API) *VPCSupplier {
|
||||
return &VPCSupplier{
|
||||
terraform.Provider(terraform.AWS),
|
||||
awsdeserializer.NewDefaultVPCDeserializer(),
|
||||
|
|
|
@ -4,6 +4,7 @@ import (
|
|||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
"github.com/cloudskiff/driftctl/pkg/remote/deserializer"
|
||||
awsdeserializer "github.com/cloudskiff/driftctl/pkg/resource/aws/deserializer"
|
||||
|
||||
|
@ -17,7 +18,6 @@ import (
|
|||
|
||||
"github.com/cloudskiff/driftctl/mocks"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
"github.com/cloudskiff/driftctl/pkg/terraform"
|
||||
"github.com/cloudskiff/driftctl/test"
|
||||
|
@ -102,8 +102,8 @@ func TestVPCSupplier_Resources(t *testing.T) {
|
|||
defaultVPCDeserializer,
|
||||
VPCDeserializer,
|
||||
&fakeEC2,
|
||||
terraform.NewParallelResourceReader(pkg.NewParallelRunner(context.TODO(), 10)),
|
||||
terraform.NewParallelResourceReader(pkg.NewParallelRunner(context.TODO(), 10)),
|
||||
terraform.NewParallelResourceReader(parallel.NewParallelRunner(context.TODO(), 10)),
|
||||
terraform.NewParallelResourceReader(parallel.NewParallelRunner(context.TODO(), 10)),
|
||||
}
|
||||
got, err := s.Resources()
|
||||
if c.err != err {
|
||||
|
|
|
@ -0,0 +1,57 @@
|
|||
package resource
|
||||
|
||||
import (
|
||||
"context"
|
||||
"runtime"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
)
|
||||
|
||||
type ChainSupplier struct {
|
||||
suppliers []Supplier
|
||||
runner *parallel.ParallelRunner
|
||||
}
|
||||
|
||||
func NewChainSupplier() *ChainSupplier {
|
||||
return &ChainSupplier{
|
||||
runner: parallel.NewParallelRunner(context.TODO(), int64(runtime.NumCPU())),
|
||||
}
|
||||
}
|
||||
|
||||
func (r *ChainSupplier) AddSupplier(supplier Supplier) {
|
||||
r.suppliers = append(r.suppliers, supplier)
|
||||
}
|
||||
|
||||
func (r *ChainSupplier) Resources() ([]Resource, error) {
|
||||
|
||||
for _, supplier := range r.suppliers {
|
||||
sup := supplier
|
||||
r.runner.Run(func() (interface{}, error) {
|
||||
return sup.Resources()
|
||||
})
|
||||
}
|
||||
|
||||
results := make([]Resource, 0)
|
||||
|
||||
ReadLoop:
|
||||
for {
|
||||
select {
|
||||
case supplierResult, ok := <-r.runner.Read():
|
||||
if !ok || supplierResult == nil {
|
||||
break ReadLoop
|
||||
}
|
||||
// Type cannot be invalid as return type is enforced
|
||||
// by Supplier interface
|
||||
resources, _ := supplierResult.([]Resource)
|
||||
results = append(results, resources...)
|
||||
case <-r.runner.DoneChan():
|
||||
break ReadLoop
|
||||
}
|
||||
}
|
||||
|
||||
if r.runner.Err() != nil {
|
||||
return nil, r.runner.Err()
|
||||
}
|
||||
|
||||
return results, nil
|
||||
}
|
|
@ -0,0 +1,91 @@
|
|||
package resource_test
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"testing"
|
||||
|
||||
"github.com/cloudskiff/driftctl/mocks"
|
||||
"github.com/cloudskiff/driftctl/pkg/resource"
|
||||
testresource "github.com/cloudskiff/driftctl/test/resource"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestChainSupplier_Resources(t *testing.T) {
|
||||
|
||||
assert := assert.New(t)
|
||||
|
||||
fakeTestSupplier := mocks.Supplier{}
|
||||
fakeTestSupplier.On("Resources").Return(
|
||||
[]resource.Resource{
|
||||
testresource.FakeResource{
|
||||
Id: "fake-supplier-1_fake-resource-1",
|
||||
},
|
||||
testresource.FakeResource{
|
||||
Id: "fake-supplier-1_fake-resource-2",
|
||||
},
|
||||
},
|
||||
nil,
|
||||
).Once()
|
||||
|
||||
anotherFakeTestSupplier := mocks.Supplier{}
|
||||
anotherFakeTestSupplier.On("Resources").Return(
|
||||
[]resource.Resource{
|
||||
testresource.FakeResource{
|
||||
Id: "fake-supplier-2_fake-resource-1",
|
||||
},
|
||||
testresource.FakeResource{
|
||||
Id: "fake-supplier-2_fake-resource-2",
|
||||
},
|
||||
},
|
||||
nil,
|
||||
).Once()
|
||||
|
||||
chain := resource.NewChainSupplier()
|
||||
chain.AddSupplier(&fakeTestSupplier)
|
||||
chain.AddSupplier(&anotherFakeTestSupplier)
|
||||
|
||||
res, err := chain.Resources()
|
||||
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
anotherFakeTestSupplier.AssertExpectations(t)
|
||||
fakeTestSupplier.AssertExpectations(t)
|
||||
assert.Len(res, 4)
|
||||
}
|
||||
|
||||
func TestChainSupplier_Resources_WithError(t *testing.T) {
|
||||
|
||||
assert := assert.New(t)
|
||||
|
||||
fakeTestSupplier := mocks.Supplier{}
|
||||
fakeTestSupplier.
|
||||
On("Resources").
|
||||
Return([]resource.Resource{
|
||||
testresource.FakeResource{
|
||||
Id: "fake-supplier-1_fake-resource-1",
|
||||
},
|
||||
testresource.FakeResource{
|
||||
Id: "fake-supplier-1_fake-resource-2",
|
||||
},
|
||||
},
|
||||
nil,
|
||||
)
|
||||
|
||||
anotherFakeTestSupplier := mocks.Supplier{}
|
||||
anotherFakeTestSupplier.
|
||||
On("Resources").
|
||||
Return(nil, errors.New("error from another supplier")).
|
||||
Once()
|
||||
|
||||
chain := resource.NewChainSupplier()
|
||||
chain.AddSupplier(&fakeTestSupplier)
|
||||
chain.AddSupplier(&anotherFakeTestSupplier)
|
||||
|
||||
res, err := chain.Resources()
|
||||
|
||||
anotherFakeTestSupplier.AssertExpectations(t)
|
||||
assert.Nil(res)
|
||||
assert.Equal("error from another supplier", err.Error())
|
||||
}
|
|
@ -4,6 +4,7 @@ import (
|
|||
"context"
|
||||
"fmt"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
"github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg/alerter"
|
||||
|
@ -12,14 +13,14 @@ import (
|
|||
|
||||
type Scanner struct {
|
||||
resourceSuppliers []resource.Supplier
|
||||
runner *ParallelRunner
|
||||
runner *parallel.ParallelRunner
|
||||
alerter *alerter.Alerter
|
||||
}
|
||||
|
||||
func NewScanner(resourceSuppliers []resource.Supplier, alerter *alerter.Alerter) *Scanner {
|
||||
return &Scanner{
|
||||
resourceSuppliers: resourceSuppliers,
|
||||
runner: NewParallelRunner(context.TODO(), 10),
|
||||
runner: parallel.NewParallelRunner(context.TODO(), 10),
|
||||
alerter: alerter,
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
package terraform
|
||||
|
||||
import (
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
|
||||
"github.com/zclconf/go-cty/cty"
|
||||
)
|
||||
|
||||
type ParallelResourceReader struct {
|
||||
runner *pkg.ParallelRunner
|
||||
runner *parallel.ParallelRunner
|
||||
}
|
||||
|
||||
func NewParallelResourceReader(runner *pkg.ParallelRunner) *ParallelResourceReader {
|
||||
func NewParallelResourceReader(runner *parallel.ParallelRunner) *ParallelResourceReader {
|
||||
return &ParallelResourceReader{
|
||||
runner: runner,
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@ import (
|
|||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/cloudskiff/driftctl/pkg"
|
||||
"github.com/cloudskiff/driftctl/pkg/parallel"
|
||||
"github.com/r3labs/diff/v2"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
|
@ -55,7 +55,7 @@ func TestParallelResourceReader_Wait(t *testing.T) {
|
|||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
p := NewParallelResourceReader(pkg.NewParallelRunner(context.TODO(), 10))
|
||||
p := NewParallelResourceReader(parallel.NewParallelRunner(context.TODO(), 10))
|
||||
|
||||
for _, fun := range tt.execs {
|
||||
p.Run(fun)
|
||||
|
|
Loading…
Reference in New Issue