@@ -2,6 +2,8 @@ package armclient
22
33import (
44 "context"
5+ "fmt"
6+ "log/slog"
57 "os"
68 "strings"
79 "time"
@@ -11,7 +13,6 @@ import (
1113 "github.com/Azure/azure-sdk-for-go/sdk/azcore/cloud"
1214 "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy"
1315 cache "github.com/patrickmn/go-cache"
14- zap "go.uber.org/zap"
1516 "k8s.io/apimachinery/pkg/labels"
1617
1718 commonAzidentity "github.com/webdevops/go-common/azuresdk/azidentity"
3233
3334 cloud cloudconfig.CloudEnvironment
3435
35- logger * zap. SugaredLogger
36+ logger * slog. Logger
3637
3738 cache * cache.Cache
3839 cacheTtl time.Duration
@@ -49,23 +50,23 @@ type (
4950)
5051
5152// NewArmClientFromEnvironment creates new Azure SDK ARM client from environment settings
52- func NewArmClientFromEnvironment (logger * zap. SugaredLogger ) (* ArmClient , error ) {
53+ func NewArmClientFromEnvironment (logger * slog. Logger ) (* ArmClient , error ) {
5354 var azureEnvironment string
5455
5556 if azureEnvironment = os .Getenv ("AZURE_ENVIRONMENT" ); azureEnvironment == "" {
5657 logger .Info (`env var AZURE_ENVIRONMENT is not set, assuming "AzurePublicCloud"` )
5758 azureEnvironment = string (cloudconfig .AzurePublicCloud )
5859
5960 if err := os .Setenv ("AZURE_ENVIRONMENT" , azureEnvironment ); err != nil {
60- logger . Panic (`unable to set AZURE_ENVIRONMENT` )
61+ return nil , fmt . Errorf (`unable to set AZURE_ENVIRONMENT` )
6162 }
6263 }
6364
6465 return NewArmClientWithCloudName (azureEnvironment , logger )
6566}
6667
6768// NewArmClient creates new Azure SDK ARM client
68- func NewArmClient (cloudConfig cloudconfig.CloudEnvironment , logger * zap. SugaredLogger ) * ArmClient {
69+ func NewArmClient (cloudConfig cloudconfig.CloudEnvironment , logger * slog. Logger ) * ArmClient {
6970 client := & ArmClient {}
7071 client .cloud = cloudConfig
7172
@@ -74,7 +75,7 @@ func NewArmClient(cloudConfig cloudconfig.CloudEnvironment, logger *zap.SugaredL
7475
7576 client .TagManager = & ArmClientTagManager {
7677 client : client ,
77- logger : logger .With (zap .String ("component" , "armClientTagManager" )),
78+ logger : logger .With (slog .String ("component" , "armClientTagManager" )),
7879 }
7980
8081 client .initCache ()
@@ -84,10 +85,10 @@ func NewArmClient(cloudConfig cloudconfig.CloudEnvironment, logger *zap.SugaredL
8485}
8586
8687// NewArmClientWithCloudName creates new Azure SDK ARM client with environment name as string
87- func NewArmClientWithCloudName (cloudName string , logger * zap. SugaredLogger ) (* ArmClient , error ) {
88+ func NewArmClientWithCloudName (cloudName string , logger * slog. Logger ) (* ArmClient , error ) {
8889 cloudConfig , err := cloudconfig .NewCloudConfig (cloudName )
8990 if err != nil {
90- logger . Panic ( err . Error ())
91+ return nil , err
9192 }
9293
9394 return NewArmClient (cloudConfig , logger ), nil
@@ -100,7 +101,7 @@ func (azureClient *ArmClient) initCache() {
100101 if ttl , err := time .ParseDuration (val ); err == nil {
101102 cacheTtl = ttl
102103 } else {
103- azureClient . logger . Fatalf (`%s is not a valid value, got "%v", expected duration` , EnvVarServiceDiscoveryTtl , val )
104+ panic ( fmt . Errorf (`%s is not a valid value, got "%v", expected duration` , EnvVarServiceDiscoveryTtl , val ) )
104105 }
105106 }
106107 azureClient .SetCacheTtl (cacheTtl )
@@ -129,7 +130,7 @@ func (azureClient *ArmClient) initServiceDiscovery() {
129130 if val := os .Getenv (EnvVarServiceDiscoverySubscriptionTagSelector ); val != "" {
130131 selector , err := labels .Parse (val )
131132 if err != nil {
132- azureClient . logger . Panic (err )
133+ panic (err )
133134 }
134135 azureClient .serviceDiscovery .subscriptionTagSelector = & selector
135136 }
@@ -139,11 +140,11 @@ func (azureClient *ArmClient) initServiceDiscovery() {
139140func (azureClient * ArmClient ) LazyConnect () error {
140141 ctx := context .Background ()
141142
142- azureClient .logger .Infof (
143- `connecting to Azure Environment "%v" (AzureAD:%s ResourceManager:%s) ` ,
144- azureClient .cloud .Name ,
145- azureClient .cloud .ActiveDirectoryAuthorityHost ,
146- azureClient .cloud .Services [cloud .ResourceManager ].Endpoint ,
143+ azureClient .logger .Info (
144+ `connecting to Azure` ,
145+ slog . String ( "azureEnvironment" , string ( azureClient .cloud .Name )) ,
146+ slog . String ( "AzureAD" , azureClient .cloud .ActiveDirectoryAuthorityHost ) ,
147+ slog . String ( "ResourceManager" , azureClient .cloud .Services [cloud .ResourceManager ].Endpoint ) ,
147148 )
148149
149150 // try to get token
@@ -154,7 +155,7 @@ func (azureClient *ArmClient) LazyConnect() error {
154155 }
155156
156157 if tokenInfo := commonAzidentity .ParseAccessToken (accessToken ); tokenInfo != nil {
157- azureClient .logger .With (zap .Any ("client" , tokenInfo .ToMap ())).Infof (`using Azure client: %v ` , tokenInfo .ToString ())
158+ azureClient .logger .With (slog .Any ("client" , tokenInfo .ToMap ())).Info (`using Azure client` , slog . String ( "token" , tokenInfo .ToString () ))
158159 } else {
159160 azureClient .logger .Warn (`unable to get Azure client information, cannot parse accesstoken` )
160161 }
@@ -176,9 +177,9 @@ func (azureClient *ArmClient) Connect() error {
176177 return err
177178 }
178179
179- azureClient .logger .Infof ( `found %v Azure Subscriptions` , len (subscriptionList ))
180+ azureClient .logger .Info ( fmt . Sprintf ( `found %v Azure Subscriptions` , len (subscriptionList ) ))
180181 for subscriptionId , subscription := range subscriptionList {
181- azureClient .logger .Debugf ( `found Azure Subscription "%v" (%v)` , subscriptionId , to .String (subscription .DisplayName ))
182+ azureClient .logger .Debug ( fmt . Sprintf ( `found Azure Subscription "%v" (%v)` , subscriptionId , to .String (subscription .DisplayName ) ))
182183 }
183184
184185 return nil
0 commit comments