|
1 | 1 | package sweeper |
2 | 2 |
|
3 | 3 | import ( |
4 | | - "flag" |
5 | 4 | "fmt" |
6 | 5 | "log" |
| 6 | + "os" |
7 | 7 | "strings" |
8 | 8 | "testing" |
9 | 9 |
|
@@ -33,46 +33,21 @@ type SweeperListFunc func(ResourceAction) error |
33 | 33 | type ResourceAction func(*transport_tpg.Config, *tpgresource.ResourceDataMock, map[string]interface{}) error |
34 | 34 |
|
35 | 35 | var ( |
36 | | - flagSweep *string |
37 | | - flagSweepAllowFailures *bool |
38 | | - flagSweepRun *string |
39 | | - sweeperInventory map[string]*Sweeper |
| 36 | + sweeperInventory map[string]*Sweeper |
40 | 37 | ) |
41 | 38 |
|
42 | 39 | func init() { |
43 | 40 | sweeperInventory = make(map[string]*Sweeper) |
44 | 41 | } |
45 | 42 |
|
46 | | -// registerFlags checks for and gets existing flag definitions before trying to redefine them. |
47 | | -func registerFlags() { |
48 | | - // Check for existing flags in global CommandLine |
49 | | - if f := flag.Lookup("sweep"); f != nil { |
50 | | - // Use the Value.Get() interface to get the values |
51 | | - if getter, ok := f.Value.(flag.Getter); ok { |
52 | | - vs := getter.Get().(string) |
53 | | - flagSweep = &vs |
54 | | - } |
55 | | - if f := flag.Lookup("sweep-allow-failures"); f != nil { |
56 | | - if getter, ok := f.Value.(flag.Getter); ok { |
57 | | - vb := getter.Get().(bool) |
58 | | - flagSweepAllowFailures = &vb |
59 | | - } |
60 | | - } |
61 | | - if f := flag.Lookup("sweep-run"); f != nil { |
62 | | - if getter, ok := f.Value.(flag.Getter); ok { |
63 | | - vs := getter.Get().(string) |
64 | | - flagSweepRun = &vs |
65 | | - } |
66 | | - } |
67 | | - } else { |
68 | | - // Define our flags if they don't exist |
69 | | - fsDefault := "" |
70 | | - fsafDefault := true |
71 | | - fsrDefault := "" |
72 | | - flagSweep = &fsDefault |
73 | | - flagSweepAllowFailures = &fsafDefault |
74 | | - flagSweepRun = &fsrDefault |
75 | | - } |
| 43 | +// getSweeperConfig reads sweeper configuration from environment variables. |
| 44 | +func getSweeperConfig() (string, bool, string) { |
| 45 | + envSweepRegions := os.Getenv("SWEEPER_REGIONS") |
| 46 | + |
| 47 | + envSweepAllowFailures := os.Getenv("SWEEP_ALLOW_FAILURES") == "true" |
| 48 | + |
| 49 | + envSweepRun := os.Getenv("SWEEP_RUN") |
| 50 | + return envSweepRegions, envSweepAllowFailures, envSweepRun |
76 | 51 | } |
77 | 52 |
|
78 | 53 | // AddTestSweepers function adds a sweeper configuration to the inventory |
@@ -104,16 +79,16 @@ func GetSweeper(name string) (*Sweeper, bool) { |
104 | 79 |
|
105 | 80 | // ExecuteSweepers runs registered sweepers for specified regions |
106 | 81 | func ExecuteSweepers(t *testing.T) { |
107 | | - registerFlags() |
108 | | - flag.Parse() |
109 | | - if *flagSweep != "" { |
110 | | - // parse flagSweep contents for regions to run |
111 | | - regions := strings.Split(*flagSweep, ",") |
| 82 | + sweepRegions, allowFailures, sweepRun := getSweeperConfig() |
| 83 | + |
| 84 | + if sweepRegions != "" { |
| 85 | + // parse sweepRegions contents for regions to run |
| 86 | + regions := strings.Split(sweepRegions, ",") |
112 | 87 |
|
113 | | - // get filtered list of sweepers to run based on sweep-run flag |
114 | | - sweepers := filterSweepers(*flagSweepRun, sweeperInventory) |
| 88 | + // get filtered list of sweepers to run based on sweep-run |
| 89 | + sweepers := filterSweepers(sweepRun, sweeperInventory) |
115 | 90 |
|
116 | | - if err := runSweepers(t, regions, sweepers, *flagSweepAllowFailures); err != nil { |
| 91 | + if err := runSweepers(t, regions, sweepers, allowFailures); err != nil { |
117 | 92 | t.Errorf("error running sweepers: %v", err) |
118 | 93 | } |
119 | 94 | } else { |
|
0 commit comments