Skip to content

Commit b728b1a

Browse files
authored
Merge pull request #92 from grafana/jjo/make-provider-name-configurable
make provider name configurable via cli flags
2 parents 7a15d5e + 69e0de4 commit b728b1a

File tree

8 files changed

+39
-17
lines changed

8 files changed

+39
-17
lines changed

aws/disk_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ func TestDisk(t *testing.T) {
2525
},
2626
},
2727
},
28-
&Provider{},
28+
nil,
2929
nil,
3030
}
3131

aws/provider.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ import (
1313

1414
var _ unused.Provider = &Provider{}
1515

16+
var ProviderName = "AWS"
17+
1618
// Provider implements [unused.Provider] for AWS.
1719
type Provider struct {
1820
client *ec2.Client
@@ -21,7 +23,7 @@ type Provider struct {
2123
}
2224

2325
// Name returns AWS.
24-
func (p *Provider) Name() string { return "AWS" }
26+
func (p *Provider) Name() string { return ProviderName }
2527

2628
// Meta returns the provider metadata.
2729
func (p *Provider) Meta() unused.Meta { return p.meta }

azure/disk_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ func TestDisk(t *testing.T) {
2525
TimeCreated: &date.Time{Time: createdAt},
2626
},
2727
},
28-
&Provider{},
28+
nil,
2929
nil,
3030
}
3131

azure/provider.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ import (
99
"github.com/grafana/unused"
1010
)
1111

12+
var ProviderName = "Azure"
13+
1214
var _ unused.Provider = &Provider{}
1315

1416
const ResourceGroupMetaKey = "resource-group"
@@ -20,7 +22,7 @@ type Provider struct {
2022
}
2123

2224
// Name returns Azure.
23-
func (p *Provider) Name() string { return "Azure" }
25+
func (p *Provider) Name() string { return ProviderName }
2426

2527
// Meta returns the provider metadata.
2628
func (p *Provider) Meta() unused.Meta { return p.meta }

cmd/internal/providers.go

+7-4
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,11 @@ func CreateProviders(ctx context.Context, logger *slog.Logger, gcpProjects, awsP
8484

8585
// ProviderFlags adds the provider configuration flags to the given
8686
// flag set.
87-
func ProviderFlags(fs *flag.FlagSet, gcp, aws, azure *StringSliceFlag) {
88-
fs.Var(gcp, "gcp.project", "GCP project ID (can be specified multiple times)")
89-
fs.Var(aws, "aws.profile", "AWS profile (can be specified multiple times)")
90-
fs.Var(azure, "azure.sub", "Azure subscription (can be specified multiple times)")
87+
func ProviderFlags(fs *flag.FlagSet, gcpProject, awsProfile, azureSub *StringSliceFlag) {
88+
fs.Var(gcpProject, "gcp.project", "GCP project ID (can be specified multiple times)")
89+
fs.Var(awsProfile, "aws.profile", "AWS profile (can be specified multiple times)")
90+
fs.Var(azureSub, "azure.sub", "Azure subscription (can be specified multiple times)")
91+
fs.StringVar(&gcp.ProviderName, "gcp.providername", gcp.ProviderName, `GCP provider name to use, default: "GCP" (e.g. "GKE")`)
92+
fs.StringVar(&aws.ProviderName, "aws.providername", aws.ProviderName, `AWS provider name to use, default: "AWS" (e.g. "EKS")`)
93+
fs.StringVar(&azure.ProviderName, "azure.providername", azure.ProviderName, `Azure provider name to use, default: "Azure" (e.g. "AKS")`)
9194
}

cmd/internal/providers_test.go

+20-7
Original file line numberDiff line numberDiff line change
@@ -83,33 +83,46 @@ func TestCreateProviders(t *testing.T) {
8383
}
8484

8585
func TestProviderFlags(t *testing.T) {
86-
var gcp, aws, azure internal.StringSliceFlag
86+
var gcpProject, awsProfile, azureSub internal.StringSliceFlag
8787

8888
fs := flag.NewFlagSet("test", flag.ContinueOnError)
8989
fs.SetOutput(io.Discard)
9090
fs.Usage = func() {}
9191

92-
internal.ProviderFlags(fs, &gcp, &aws, &azure)
92+
internal.ProviderFlags(fs, &gcpProject, &awsProfile, &azureSub)
9393

9494
args := []string{
9595
"-gcp.project=my-project",
9696
"-azure.sub=my-subscription",
9797
"-aws.profile=my-profile",
98+
"-gcp.providername=GKE",
99+
"-azure.providername=AKS",
100+
"-aws.providername=EKS",
98101
}
99102

100103
if err := fs.Parse(args); err != nil {
101104
t.Fatalf("unexpected error: %v", err)
102105
}
103106

104-
tests := map[*internal.StringSliceFlag]string{
105-
&gcp: "my-project",
106-
&aws: "my-profile",
107-
&azure: "my-subscription",
107+
testSlices := map[*internal.StringSliceFlag]string{
108+
&gcpProject: "my-project",
109+
&awsProfile: "my-profile",
110+
&azureSub: "my-subscription",
111+
}
112+
testStrings := map[*string]string{
113+
&gcp.ProviderName: "GKE",
114+
&aws.ProviderName: "EKS",
115+
&azure.ProviderName: "AKS",
108116
}
109117

110-
for v, exp := range tests {
118+
for v, exp := range testSlices {
111119
if len(*v) != 1 || (*v)[0] != exp {
112120
t.Errorf("expecting one value (%q), got %v", exp, v)
113121
}
114122
}
123+
for v, exp := range testStrings {
124+
if *v != exp {
125+
t.Errorf("expecting %q, got %v", exp, v)
126+
}
127+
}
115128
}

gcp/disk_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ func TestDisk(t *testing.T) {
2020
CreationTimestamp: createdAt.Format(time.RFC3339),
2121
LastDetachTimestamp: detachedAt.Format(time.RFC3339),
2222
},
23-
&Provider{},
23+
nil,
2424
unused.Meta{"foo": "bar"},
2525
}
2626

gcp/provider.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ import (
1212
compute "google.golang.org/api/compute/v1"
1313
)
1414

15+
var ProviderName = "GCP"
16+
1517
// ErrMissingProject is the error used when no project ID is provided
1618
// when trying to create a provider.
1719
var ErrMissingProject = errors.New("missing project id")
@@ -27,7 +29,7 @@ type Provider struct {
2729
}
2830

2931
// Name returns GCP.
30-
func (p *Provider) Name() string { return "GCP" }
32+
func (p *Provider) Name() string { return ProviderName }
3133

3234
// Meta returns the provider metadata.
3335
func (p *Provider) Meta() unused.Meta { return p.meta }

0 commit comments

Comments
 (0)