Skip to content

Commit cf2f8c3

Browse files
authored
Add logging to metadata retrieval functions (#223)
Co-authored-by: Khaja Omer <komer@akamai.com>
1 parent eea2f43 commit cf2f8c3

File tree

1 file changed

+42
-4
lines changed

1 file changed

+42
-4
lines changed

internal/driver/metadata.go

Lines changed: 42 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"strconv"
1010

1111
metadata "github.com/linode/go-metadata"
12+
"github.com/linode/linode-blockstorage-csi-driver/pkg/logger"
1213
"github.com/linode/linodego"
1314
)
1415

@@ -26,22 +27,39 @@ type Metadata struct {
2627
// function otherwise returns a non-nil error, callers should call
2728
// [GetMetadataFromAPI].
2829
func GetMetadata(ctx context.Context) (Metadata, error) {
30+
log := logger.GetLogger(ctx)
31+
32+
log.V(2).Info("Processing request")
33+
34+
log.V(4).Info("Creating new metadata client")
2935
client, err := metadata.NewClient(ctx)
3036
if err != nil {
37+
log.Error(err, "Failed to create new metadata client")
3138
return Metadata{}, fmt.Errorf("new metadata client: %w", err)
3239
}
3340

41+
log.V(4).Info("Retrieving instance data from metadata service")
3442
data, err := client.GetInstance(ctx)
3543
if err != nil {
44+
log.Error(err, "Failed to get instance data from metadata service")
3645
return Metadata{}, fmt.Errorf("get instance data: %w", err)
3746
}
3847

39-
return Metadata{
48+
log.V(4).Info("Successfully retrieved metadata",
49+
"instanceID", data.ID,
50+
"instanceLabel", data.Label,
51+
"region", data.Region,
52+
"memory", data.Specs.Memory)
53+
54+
metadata := Metadata{
4055
ID: data.ID,
4156
Label: data.Label,
4257
Region: data.Region,
4358
Memory: memoryToBytes(data.Specs.Memory),
44-
}, nil
59+
}
60+
61+
log.V(2).Info("Successfully completed")
62+
return metadata, nil
4563
}
4664

4765
// memoryToBytes converts the given amount of memory in MB, to bytes.
@@ -69,31 +87,42 @@ var errNilClient = errors.New("nil client")
6987
// GetMetadataFromAPI attempts to retrieve metadata about the current
7088
// node/instance directly from the Linode API.
7189
func GetMetadataFromAPI(ctx context.Context, client *linodego.Client) (Metadata, error) {
90+
log, ctx, done := logger.GetLogger(ctx).WithMethod("GetMetadataFromAPI")
91+
defer done()
92+
93+
log.V(2).Info("Processing request")
94+
7295
if client == nil {
7396
return Metadata{}, errNilClient
7497
}
7598

99+
log.V(4).Info("Checking LinodeIDPath", "path", LinodeIDPath)
76100
if _, err := os.Stat(LinodeIDPath); err != nil {
77101
return Metadata{}, fmt.Errorf("stat %s: %w", LinodeIDPath, err)
78102
}
103+
104+
log.V(4).Info("Opening LinodeIDPath", "path", LinodeIDPath)
79105
f, err := os.Open(LinodeIDPath)
80106
if err != nil {
81107
return Metadata{}, fmt.Errorf("open: %w", err)
82108
}
83109
defer f.Close()
84110

111+
log.V(4).Info("Reading LinodeID from file")
85112
// Read in the file, but use a LimitReader to make sure we are not
86113
// reading in junk.
87114
data, err := io.ReadAll(io.LimitReader(f, 1<<10))
88115
if err != nil {
89116
return Metadata{}, fmt.Errorf("read all: %w", err)
90117
}
91118

119+
log.V(4).Info("Parsing LinodeID")
92120
linodeID, err := strconv.Atoi(string(data))
93121
if err != nil {
94122
return Metadata{}, fmt.Errorf("atoi: %w", err)
95123
}
96124

125+
log.V(4).Info("Retrieving instance data from API", "linodeID", linodeID)
97126
instance, err := client.GetInstance(ctx, linodeID)
98127
if err != nil {
99128
return Metadata{}, fmt.Errorf("get instance: %w", err)
@@ -104,10 +133,19 @@ func GetMetadataFromAPI(ctx context.Context, client *linodego.Client) (Metadata,
104133
memory = memoryToBytes(instance.Specs.Memory)
105134
}
106135

107-
return Metadata{
136+
metadata := Metadata{
108137
ID: linodeID,
109138
Label: instance.Label,
110139
Region: instance.Region,
111140
Memory: memory,
112-
}, nil
141+
}
142+
143+
log.V(4).Info("Successfully retrieved metadata",
144+
"instanceID", metadata.ID,
145+
"instanceLabel", metadata.Label,
146+
"region", metadata.Region,
147+
"memory", metadata.Memory)
148+
149+
log.V(2).Info("Successfully completed")
150+
return metadata, nil
113151
}

0 commit comments

Comments
 (0)