Skip to content

Commit 1e32ccc

Browse files
authored
Merge pull request #106 from ekristen/fix-multiple-subs
fix(command/run): bug with scanner registration with multiple subscriptions
2 parents 6e1914a + 0eddd08 commit 1e32ccc

File tree

2 files changed

+31
-12
lines changed

2 files changed

+31
-12
lines changed

pkg/azure/tenant.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -66,19 +66,20 @@ func NewTenant( //nolint:gocyclo
6666
return nil, err
6767
}
6868
for _, s := range list.Values() {
69+
slog := log.WithField("subscription_id", *s.SubscriptionID)
6970
if len(subscriptionIDs) > 0 && !slices.Contains(subscriptionIDs, *s.SubscriptionID) {
70-
log.Warnf("skipping subscription id: %s (reason: not requested)", *s.SubscriptionID)
71+
slog.Warnf("skipping subscription id: %s (reason: not requested)", *s.SubscriptionID)
7172
continue
7273
}
7374

74-
log.Tracef("adding subscriptions id: %s", *s.SubscriptionID)
75+
slog.Trace("adding subscription")
7576
tenant.SubscriptionIds = append(tenant.SubscriptionIds, *s.SubscriptionID)
7677

77-
log.Trace("listing resource groups")
78+
slog.Trace("listing resource groups")
7879
groupsClient := resources.NewGroupsClient(*s.SubscriptionID)
7980
groupsClient.Authorizer = authorizers.Management
8081

81-
log.Debugf("configured regions: %v", regions)
82+
slog.Debugf("configured regions: %v", regions)
8283
for list, err := groupsClient.List(ctx, "", nil); list.NotDone(); err = list.NextWithContext(ctx) {
8384
if err != nil {
8485
return nil, err
@@ -90,7 +91,7 @@ func NewTenant( //nolint:gocyclo
9091
continue
9192
}
9293

93-
log.Debugf("resource group name: %s", *g.Name)
94+
slog.Debugf("resource group name: %s", *g.Name)
9495
tenant.ResourceGroups[*s.SubscriptionID] = append(tenant.ResourceGroups[*s.SubscriptionID], *g.Name)
9596
}
9697
}

pkg/commands/run/command.go

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"context"
55
"fmt"
66
"log"
7+
"os"
78
"slices"
89
"strings"
910
"time"
@@ -47,7 +48,10 @@ func execute(c *cli.Context) error { //nolint:funlen,gocyclo
4748
entry: logrus.WithField("source", "standard-logger"),
4849
})
4950

50-
logrus.Tracef("tenant id: %s", c.String("tenant-id"))
51+
logger := logrus.StandardLogger()
52+
logger.SetOutput(os.Stdout)
53+
54+
logger.Tracef("tenant id: %s", c.String("tenant-id"))
5155

5256
authorizers, err := azure.ConfigureAuth(ctx,
5357
c.String("environment"), c.String("tenant-id"), c.String("client-id"),
@@ -57,7 +61,7 @@ func execute(c *cli.Context) error { //nolint:funlen,gocyclo
5761
return err
5862
}
5963

60-
logrus.Trace("preparing to run nuke")
64+
logger.Trace("preparing to run nuke")
6165

6266
params := &libnuke.Parameters{
6367
Force: c.Bool("force"),
@@ -113,7 +117,7 @@ func execute(c *cli.Context) error { //nolint:funlen,gocyclo
113117
n := libnuke.New(params, filters, parsedConfig.Settings)
114118

115119
n.SetRunSleep(5 * time.Second)
116-
n.SetLogger(logrus.WithField("component", "nuke"))
120+
n.SetLogger(logger.WithField("component", "nuke"))
117121

118122
n.RegisterVersion(fmt.Sprintf("> %s", common.AppVersion.String()))
119123

@@ -178,9 +182,17 @@ func execute(c *cli.Context) error { //nolint:funlen,gocyclo
178182
return err
179183
}
180184

181-
logrus.Debug("registering scanner for tenant subscription resources")
185+
logger.
186+
WithField("component", "run").
187+
WithField("scope", "tenant").
188+
Debug("registering scanner")
182189
for _, subscriptionID := range tenant.SubscriptionIds {
183-
logrus.Debug("registering scanner for subscription resources")
190+
logger.
191+
WithField("component", "run").
192+
WithField("scope", "subscription").
193+
WithField("subscription_id", subscriptionID).
194+
Debug("registering scanner")
195+
184196
parts := strings.Split(subscriptionID, "-")
185197
if err := n.RegisterScanner(azure.SubscriptionScope,
186198
libscanner.New(fmt.Sprintf("sub/%s", parts[:1][0]), subResourceTypes, &azure.ListerOpts{
@@ -196,9 +208,15 @@ func execute(c *cli.Context) error { //nolint:funlen,gocyclo
196208

197209
for subscriptionID, resourceGroups := range tenant.ResourceGroups {
198210
for _, rg := range resourceGroups {
199-
logrus.Debug("registering scanner for resource group")
211+
logger.
212+
WithField("component", "run").
213+
WithField("scope", "resource-group").
214+
WithField("subscription_id", subscriptionID).
215+
WithField("resource_group", rg).
216+
Debug("registering scanner")
217+
200218
if err := n.RegisterScanner(azure.ResourceGroupScope,
201-
libscanner.New(fmt.Sprintf("rg/%s", rg), rgResourceTypes, &azure.ListerOpts{
219+
libscanner.New(fmt.Sprintf("sub/%s/rg/%s", subscriptionID, rg), rgResourceTypes, &azure.ListerOpts{
202220
Authorizers: tenant.Authorizers,
203221
TenantID: tenant.ID,
204222
SubscriptionID: subscriptionID,

0 commit comments

Comments
 (0)