"context"
"encoding/base64"
"fmt"
- "log"
"net/http"
"regexp"
"strconv"
"github.com/Azure/go-autorest/autorest/to"
"github.com/jmcvetta/randutil"
"github.com/mitchellh/mapstructure"
+ "github.com/sirupsen/logrus"
"golang.org/x/crypto/ssh"
)
stopWg sync.WaitGroup
deleteNIC chan string
deleteBlob chan storage.Blob
+ logger logrus.FieldLogger
}
-func NewAzureInstanceSet(config map[string]interface{}, dispatcherID InstanceSetID) (prv InstanceSet, err error) {
+func NewAzureInstanceSet(config map[string]interface{}, dispatcherID InstanceSetID, logger logrus.FieldLogger) (prv InstanceSet, err error) {
azcfg := AzureInstanceSetConfig{}
if err = mapstructure.Decode(config, &azcfg); err != nil {
return nil, err
}
- ap := AzureInstanceSet{}
+ ap := AzureInstanceSet{logger: logger}
err = ap.setup(azcfg, string(dispatcherID))
if err != nil {
return nil, err
}
_, delerr := az.netClient.Delete(context.Background(), az.azconfig.ResourceGroup, nicname)
if delerr != nil {
- log.Printf("Error deleting %v: %v", nicname, delerr)
+ az.logger.WithError(delerr).Warnf("Error deleting %v", nicname)
} else {
- log.Printf("Deleted %v", nicname)
+ az.logger.Printf("Deleted NIC %v", nicname)
}
}
}()
}
err := blob.Delete(nil)
if err != nil {
- log.Printf("error deleting %v: %v", blob.Name, err)
+ az.logger.WithError(err).Warnf("Error deleting %v", blob.Name)
} else {
- log.Printf("Deleted blob %v", blob.Name)
+ az.logger.Printf("Deleted blob %v", blob.Name)
}
}
}()
timestamp := time.Now()
for ; result.NotDone(); err = result.Next() {
if err != nil {
- log.Printf("Error listing nics: %v", err)
+ az.logger.WithError(err).Warnf("Error listing nics")
return interfaces, nil
}
if strings.HasPrefix(*result.Value().Name, az.namePrefix) {
created_at, err := time.Parse(time.RFC3339Nano, *result.Value().Tags["created-at"])
if err == nil {
if timestamp.Sub(created_at).Seconds() > az.azconfig.DeleteDanglingResourcesAfter {
- log.Printf("Will delete %v because it is older than %v s", *result.Value().Name, az.azconfig.DeleteDanglingResourcesAfter)
+ az.logger.Printf("Will delete %v because it is older than %v s", *result.Value().Name, az.azconfig.DeleteDanglingResourcesAfter)
az.deleteNIC <- *result.Value().Name
}
}
result, err := az.storageAcctClient.ListKeys(az.ctx, az.azconfig.ResourceGroup, az.azconfig.StorageAccount)
if err != nil {
- log.Printf("Couldn't get account keys %v", err)
+ az.logger.WithError(err).Warn("Couldn't get account keys")
return
}
key1 := *(*result.Keys)[0].Value
client, err := storage.NewBasicClientOnSovereignCloud(az.azconfig.StorageAccount, key1, az.azureEnv)
if err != nil {
- log.Printf("Couldn't make client %v", err)
+ az.logger.WithError(err).Warn("Couldn't make client")
return
}
for {
response, err := blobcont.ListBlobs(page)
if err != nil {
- log.Printf("Error listing blobs %v", err)
+ az.logger.WithError(err).Warn("Error listing blobs")
return
}
for _, b := range response.Blobs {
b.Properties.LeaseStatus == "unlocked" &&
age.Seconds() > az.azconfig.DeleteDanglingResourcesAfter {
- log.Printf("Blob %v is unlocked and not modified for %v seconds, will delete", b.Name, age.Seconds())
+ az.logger.Printf("Blob %v is unlocked and not modified for %v seconds, will delete", b.Name, age.Seconds())
az.deleteBlob <- b
}
}