Skip to content

Commit 1ade947

Browse files
committed
chore: move caches to a separate package
1 parent 5bd719b commit 1ade947

23 files changed

+254
-176
lines changed

staging/src/k8s.io/legacy-cloud-providers/azure/BUILD

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ go_library(
1212
"azure.go",
1313
"azure_backoff.go",
1414
"azure_blobDiskController.go",
15-
"azure_cache.go",
1615
"azure_config.go",
1716
"azure_controller_common.go",
1817
"azure_controller_standard.go",
@@ -62,6 +61,7 @@ go_library(
6261
"//staging/src/k8s.io/cloud-provider/volume/helpers:go_default_library",
6362
"//staging/src/k8s.io/component-base/featuregate:go_default_library",
6463
"//staging/src/k8s.io/legacy-cloud-providers/azure/auth:go_default_library",
64+
"//staging/src/k8s.io/legacy-cloud-providers/azure/cache:go_default_library",
6565
"//staging/src/k8s.io/legacy-cloud-providers/azure/clients:go_default_library",
6666
"//staging/src/k8s.io/legacy-cloud-providers/azure/clients/diskclient:go_default_library",
6767
"//staging/src/k8s.io/legacy-cloud-providers/azure/clients/interfaceclient:go_default_library",
@@ -95,7 +95,6 @@ go_library(
9595
go_test(
9696
name = "go_default_test",
9797
srcs = [
98-
"azure_cache_test.go",
9998
"azure_config_test.go",
10099
"azure_controller_common_test.go",
101100
"azure_controller_standard_test.go",
@@ -125,6 +124,7 @@ go_test(
125124
"//staging/src/k8s.io/cloud-provider:go_default_library",
126125
"//staging/src/k8s.io/cloud-provider/service/helpers:go_default_library",
127126
"//staging/src/k8s.io/legacy-cloud-providers/azure/auth:go_default_library",
127+
"//staging/src/k8s.io/legacy-cloud-providers/azure/cache:go_default_library",
128128
"//staging/src/k8s.io/legacy-cloud-providers/azure/clients:go_default_library",
129129
"//staging/src/k8s.io/legacy-cloud-providers/azure/retry:go_default_library",
130130
"//vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-07-01/compute:go_default_library",
@@ -149,6 +149,7 @@ filegroup(
149149
srcs = [
150150
":package-srcs",
151151
"//staging/src/k8s.io/legacy-cloud-providers/azure/auth:all-srcs",
152+
"//staging/src/k8s.io/legacy-cloud-providers/azure/cache:all-srcs",
152153
"//staging/src/k8s.io/legacy-cloud-providers/azure/clients:all-srcs",
153154
"//staging/src/k8s.io/legacy-cloud-providers/azure/metrics:all-srcs",
154155
"//staging/src/k8s.io/legacy-cloud-providers/azure/retry:all-srcs",

staging/src/k8s.io/legacy-cloud-providers/azure/azure.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ import (
4343
cloudprovider "k8s.io/cloud-provider"
4444
"k8s.io/klog"
4545
"k8s.io/legacy-cloud-providers/azure/auth"
46+
azcache "k8s.io/legacy-cloud-providers/azure/cache"
4647
azclients "k8s.io/legacy-cloud-providers/azure/clients"
4748
"k8s.io/legacy-cloud-providers/azure/clients/diskclient"
4849
"k8s.io/legacy-cloud-providers/azure/clients/interfaceclient"
@@ -274,10 +275,10 @@ type Cloud struct {
274275
eventRecorder record.EventRecorder
275276
routeUpdater *delayedRouteUpdater
276277

277-
vmCache *timedCache
278-
lbCache *timedCache
279-
nsgCache *timedCache
280-
rtCache *timedCache
278+
vmCache *azcache.TimedCache
279+
lbCache *azcache.TimedCache
280+
nsgCache *azcache.TimedCache
281+
rtCache *azcache.TimedCache
281282

282283
*BlobDiskController
283284
*ManagedDiskController

staging/src/k8s.io/legacy-cloud-providers/azure/azure_backoff.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import (
3232
"k8s.io/apimachinery/pkg/util/wait"
3333
cloudprovider "k8s.io/cloud-provider"
3434
"k8s.io/klog"
35+
azcache "k8s.io/legacy-cloud-providers/azure/cache"
3536
"k8s.io/legacy-cloud-providers/azure/retry"
3637
)
3738

@@ -65,7 +66,7 @@ func (az *Cloud) Event(obj runtime.Object, eventtype, reason, message string) {
6566
}
6667

6768
// GetVirtualMachineWithRetry invokes az.getVirtualMachine with exponential backoff retry
68-
func (az *Cloud) GetVirtualMachineWithRetry(name types.NodeName, crt cacheReadType) (compute.VirtualMachine, error) {
69+
func (az *Cloud) GetVirtualMachineWithRetry(name types.NodeName, crt azcache.AzureCacheReadType) (compute.VirtualMachine, error) {
6970
var machine compute.VirtualMachine
7071
var retryErr error
7172
err := wait.ExponentialBackoff(az.RequestBackoff(), func() (bool, error) {

staging/src/k8s.io/legacy-cloud-providers/azure/azure_controller_common.go

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import (
3434
cloudprovider "k8s.io/cloud-provider"
3535
volerr "k8s.io/cloud-provider/volume/errors"
3636
"k8s.io/klog"
37+
azcache "k8s.io/legacy-cloud-providers/azure/cache"
3738
"k8s.io/legacy-cloud-providers/azure/retry"
3839
)
3940

@@ -87,7 +88,7 @@ type controllerCommon struct {
8788
}
8889

8990
// getNodeVMSet gets the VMSet interface based on config.VMType and the real virtual machine type.
90-
func (c *controllerCommon) getNodeVMSet(nodeName types.NodeName, crt cacheReadType) (VMSet, error) {
91+
func (c *controllerCommon) getNodeVMSet(nodeName types.NodeName, crt azcache.AzureCacheReadType) (VMSet, error) {
9192
// 1. vmType is standard, return cloud.vmSet directly.
9293
if c.cloud.VMType == vmTypeStandard {
9394
return c.cloud.vmSet, nil
@@ -155,7 +156,7 @@ func (c *controllerCommon) AttachDisk(isManagedDisk bool, diskName, diskURI stri
155156
}
156157
}
157158

158-
vmset, err := c.getNodeVMSet(nodeName, cacheReadTypeUnsafe)
159+
vmset, err := c.getNodeVMSet(nodeName, azcache.CacheReadTypeUnsafe)
159160
if err != nil {
160161
return -1, err
161162
}
@@ -195,7 +196,7 @@ func (c *controllerCommon) DetachDisk(diskName, diskURI string, nodeName types.N
195196
return fmt.Errorf("failed to get azure instance id for node %q (%v)", nodeName, err)
196197
}
197198

198-
vmset, err := c.getNodeVMSet(nodeName, cacheReadTypeUnsafe)
199+
vmset, err := c.getNodeVMSet(nodeName, azcache.CacheReadTypeUnsafe)
199200
if err != nil {
200201
return err
201202
}
@@ -239,7 +240,7 @@ func (c *controllerCommon) DetachDisk(diskName, diskURI string, nodeName types.N
239240
}
240241

241242
// getNodeDataDisks invokes vmSet interfaces to get data disks for the node.
242-
func (c *controllerCommon) getNodeDataDisks(nodeName types.NodeName, crt cacheReadType) ([]compute.DataDisk, error) {
243+
func (c *controllerCommon) getNodeDataDisks(nodeName types.NodeName, crt azcache.AzureCacheReadType) ([]compute.DataDisk, error) {
243244
vmset, err := c.getNodeVMSet(nodeName, crt)
244245
if err != nil {
245246
return nil, err
@@ -252,7 +253,7 @@ func (c *controllerCommon) getNodeDataDisks(nodeName types.NodeName, crt cacheRe
252253
func (c *controllerCommon) GetDiskLun(diskName, diskURI string, nodeName types.NodeName) (int32, error) {
253254
// getNodeDataDisks need to fetch the cached data/fresh data if cache expired here
254255
// to ensure we get LUN based on latest entry.
255-
disks, err := c.getNodeDataDisks(nodeName, cacheReadTypeDefault)
256+
disks, err := c.getNodeDataDisks(nodeName, azcache.CacheReadTypeDefault)
256257
if err != nil {
257258
klog.Errorf("error of getting data disks for node %q: %v", nodeName, err)
258259
return -1, err
@@ -276,7 +277,7 @@ func (c *controllerCommon) GetDiskLun(diskName, diskURI string, nodeName types.N
276277

277278
// GetNextDiskLun searches all vhd attachment on the host and find unused lun. Return -1 if all luns are used.
278279
func (c *controllerCommon) GetNextDiskLun(nodeName types.NodeName) (int32, error) {
279-
disks, err := c.getNodeDataDisks(nodeName, cacheReadTypeDefault)
280+
disks, err := c.getNodeDataDisks(nodeName, azcache.CacheReadTypeDefault)
280281
if err != nil {
281282
klog.Errorf("error of getting data disks for node %q: %v", nodeName, err)
282283
return -1, err
@@ -307,7 +308,7 @@ func (c *controllerCommon) DisksAreAttached(diskNames []string, nodeName types.N
307308
// for every reconcile call. The cache is invalidated after Attach/Detach
308309
// disk. So the new entry will be fetched and cached the first time reconcile
309310
// loop runs after the Attach/Disk OP which will reflect the latest model.
310-
disks, err := c.getNodeDataDisks(nodeName, cacheReadTypeUnsafe)
311+
disks, err := c.getNodeDataDisks(nodeName, azcache.CacheReadTypeUnsafe)
311312
if err != nil {
312313
if err == cloudprovider.InstanceNotFound {
313314
// if host doesn't exist, no need to detach

staging/src/k8s.io/legacy-cloud-providers/azure/azure_controller_standard.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,13 @@ import (
2626

2727
"k8s.io/apimachinery/pkg/types"
2828
"k8s.io/klog"
29+
azcache "k8s.io/legacy-cloud-providers/azure/cache"
2930
)
3031

3132
// AttachDisk attaches a vhd to vm
3233
// the vhd must exist, can be identified by diskName, diskURI, and lun.
3334
func (as *availabilitySet) AttachDisk(isManagedDisk bool, diskName, diskURI string, nodeName types.NodeName, lun int32, cachingMode compute.CachingTypes, diskEncryptionSetID string, writeAcceleratorEnabled bool) error {
34-
vm, err := as.getVirtualMachine(nodeName, cacheReadTypeDefault)
35+
vm, err := as.getVirtualMachine(nodeName, azcache.CacheReadTypeDefault)
3536
if err != nil {
3637
return err
3738
}
@@ -115,7 +116,7 @@ func (as *availabilitySet) AttachDisk(isManagedDisk bool, diskName, diskURI stri
115116
// DetachDisk detaches a disk from host
116117
// the vhd can be identified by diskName or diskURI
117118
func (as *availabilitySet) DetachDisk(diskName, diskURI string, nodeName types.NodeName) error {
118-
vm, err := as.getVirtualMachine(nodeName, cacheReadTypeDefault)
119+
vm, err := as.getVirtualMachine(nodeName, azcache.CacheReadTypeDefault)
119120
if err != nil {
120121
// if host doesn't exist, no need to detach
121122
klog.Warningf("azureDisk - cannot find node %s, skip detaching disk(%s, %s)", nodeName, diskName, diskURI)
@@ -172,7 +173,7 @@ func (as *availabilitySet) DetachDisk(diskName, diskURI string, nodeName types.N
172173
}
173174

174175
// GetDataDisks gets a list of data disks attached to the node.
175-
func (as *availabilitySet) GetDataDisks(nodeName types.NodeName, crt cacheReadType) ([]compute.DataDisk, error) {
176+
func (as *availabilitySet) GetDataDisks(nodeName types.NodeName, crt azcache.AzureCacheReadType) ([]compute.DataDisk, error) {
176177
vm, err := as.getVirtualMachine(nodeName, crt)
177178
if err != nil {
178179
return nil, err

staging/src/k8s.io/legacy-cloud-providers/azure/azure_controller_standard_test.go

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,11 @@ import (
2727
"github.com/stretchr/testify/assert"
2828

2929
"k8s.io/apimachinery/pkg/types"
30+
azcache "k8s.io/legacy-cloud-providers/azure/cache"
31+
)
32+
33+
var (
34+
fakeCacheTTL = 2 * time.Second
3035
)
3136

3237
func TestStandardAttachDisk(t *testing.T) {
@@ -100,14 +105,14 @@ func TestGetDataDisks(t *testing.T) {
100105
nodeName types.NodeName
101106
expectedDataDisks []compute.DataDisk
102107
expectedError bool
103-
crt cacheReadType
108+
crt azcache.AzureCacheReadType
104109
}{
105110
{
106111
desc: "an error shall be returned if there's no corresponding vm",
107112
nodeName: "vm2",
108113
expectedDataDisks: nil,
109114
expectedError: true,
110-
crt: cacheReadTypeDefault,
115+
crt: azcache.CacheReadTypeDefault,
111116
},
112117
{
113118
desc: "correct list of data disks shall be returned if everything is good",
@@ -119,7 +124,7 @@ func TestGetDataDisks(t *testing.T) {
119124
},
120125
},
121126
expectedError: false,
122-
crt: cacheReadTypeDefault,
127+
crt: azcache.CacheReadTypeDefault,
123128
},
124129
{
125130
desc: "correct list of data disks shall be returned if everything is good",
@@ -131,7 +136,7 @@ func TestGetDataDisks(t *testing.T) {
131136
},
132137
},
133138
expectedError: false,
134-
crt: cacheReadTypeUnsafe,
139+
crt: azcache.CacheReadTypeUnsafe,
135140
},
136141
}
137142
for i, test := range testCases {
@@ -143,7 +148,7 @@ func TestGetDataDisks(t *testing.T) {
143148
assert.Equal(t, test.expectedDataDisks, dataDisks, "TestCase[%d]: %s", i, test.desc)
144149
assert.Equal(t, test.expectedError, err != nil, "TestCase[%d]: %s", i, test.desc)
145150

146-
if test.crt == cacheReadTypeUnsafe {
151+
if test.crt == azcache.CacheReadTypeUnsafe {
147152
time.Sleep(fakeCacheTTL)
148153
dataDisks, err := vmSet.GetDataDisks(test.nodeName, test.crt)
149154
assert.Equal(t, test.expectedDataDisks, dataDisks, "TestCase[%d]: %s", i, test.desc)

staging/src/k8s.io/legacy-cloud-providers/azure/azure_controller_vmss.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,14 @@ import (
2626

2727
"k8s.io/apimachinery/pkg/types"
2828
"k8s.io/klog"
29+
azcache "k8s.io/legacy-cloud-providers/azure/cache"
2930
)
3031

3132
// AttachDisk attaches a vhd to vm
3233
// the vhd must exist, can be identified by diskName, diskURI, and lun.
3334
func (ss *scaleSet) AttachDisk(isManagedDisk bool, diskName, diskURI string, nodeName types.NodeName, lun int32, cachingMode compute.CachingTypes, diskEncryptionSetID string, writeAcceleratorEnabled bool) error {
3435
vmName := mapNodeNameToVMName(nodeName)
35-
ssName, instanceID, vm, err := ss.getVmssVM(vmName, cacheReadTypeDefault)
36+
ssName, instanceID, vm, err := ss.getVmssVM(vmName, azcache.CacheReadTypeDefault)
3637
if err != nil {
3738
return err
3839
}
@@ -120,7 +121,7 @@ func (ss *scaleSet) AttachDisk(isManagedDisk bool, diskName, diskURI string, nod
120121
// the vhd can be identified by diskName or diskURI
121122
func (ss *scaleSet) DetachDisk(diskName, diskURI string, nodeName types.NodeName) error {
122123
vmName := mapNodeNameToVMName(nodeName)
123-
ssName, instanceID, vm, err := ss.getVmssVM(vmName, cacheReadTypeDefault)
124+
ssName, instanceID, vm, err := ss.getVmssVM(vmName, azcache.CacheReadTypeDefault)
124125
if err != nil {
125126
return err
126127
}
@@ -180,7 +181,7 @@ func (ss *scaleSet) DetachDisk(diskName, diskURI string, nodeName types.NodeName
180181
}
181182

182183
// GetDataDisks gets a list of data disks attached to the node.
183-
func (ss *scaleSet) GetDataDisks(nodeName types.NodeName, crt cacheReadType) ([]compute.DataDisk, error) {
184+
func (ss *scaleSet) GetDataDisks(nodeName types.NodeName, crt azcache.AzureCacheReadType) ([]compute.DataDisk, error) {
184185
_, _, vm, err := ss.getVmssVM(string(nodeName), crt)
185186
if err != nil {
186187
return nil, err

staging/src/k8s.io/legacy-cloud-providers/azure/azure_fakes.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import (
3535
v1 "k8s.io/api/core/v1"
3636
"k8s.io/apimachinery/pkg/types"
3737
cloudprovider "k8s.io/cloud-provider"
38+
azcache "k8s.io/legacy-cloud-providers/azure/cache"
3839
"k8s.io/legacy-cloud-providers/azure/retry"
3940
)
4041

@@ -983,7 +984,7 @@ func (f *fakeVMSet) DetachDisk(diskName, diskURI string, nodeName types.NodeName
983984
return fmt.Errorf("unimplemented")
984985
}
985986

986-
func (f *fakeVMSet) GetDataDisks(nodeName types.NodeName, crt cacheReadType) ([]compute.DataDisk, error) {
987+
func (f *fakeVMSet) GetDataDisks(nodeName types.NodeName, crt azcache.AzureCacheReadType) ([]compute.DataDisk, error) {
987988
return nil, fmt.Errorf("unimplemented")
988989
}
989990

staging/src/k8s.io/legacy-cloud-providers/azure/azure_instance_metadata.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ import (
2424
"io/ioutil"
2525
"net/http"
2626
"time"
27+
28+
azcache "k8s.io/legacy-cloud-providers/azure/cache"
2729
)
2830

2931
const (
@@ -87,7 +89,7 @@ type InstanceMetadata struct {
8789
// InstanceMetadataService knows how to query the Azure instance metadata server.
8890
type InstanceMetadataService struct {
8991
metadataURL string
90-
imsCache *timedCache
92+
imsCache *azcache.TimedCache
9193
}
9294

9395
// NewInstanceMetadataService creates an instance of the InstanceMetadataService accessor object.
@@ -96,7 +98,7 @@ func NewInstanceMetadataService(metadataURL string) (*InstanceMetadataService, e
9698
metadataURL: metadataURL,
9799
}
98100

99-
imsCache, err := newTimedcache(metadataCacheTTL, ims.getInstanceMetadata)
101+
imsCache, err := azcache.NewTimedcache(metadataCacheTTL, ims.getInstanceMetadata)
100102
if err != nil {
101103
return nil, err
102104
}
@@ -145,7 +147,7 @@ func (ims *InstanceMetadataService) getInstanceMetadata(key string) (interface{}
145147

146148
// GetMetadata gets instance metadata from cache.
147149
// crt determines if we can get data from stalled cache/need fresh if cache expired.
148-
func (ims *InstanceMetadataService) GetMetadata(crt cacheReadType) (*InstanceMetadata, error) {
150+
func (ims *InstanceMetadataService) GetMetadata(crt azcache.AzureCacheReadType) (*InstanceMetadata, error) {
149151
cache, err := ims.imsCache.Get(metadataCacheKey, crt)
150152
if err != nil {
151153
return nil, err

staging/src/k8s.io/legacy-cloud-providers/azure/azure_instances.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import (
2828
"k8s.io/apimachinery/pkg/types"
2929
cloudprovider "k8s.io/cloud-provider"
3030
"k8s.io/klog"
31+
azcache "k8s.io/legacy-cloud-providers/azure/cache"
3132
)
3233

3334
const (
@@ -73,7 +74,7 @@ func (az *Cloud) NodeAddresses(ctx context.Context, name types.NodeName) ([]v1.N
7374
}
7475

7576
if az.UseInstanceMetadata {
76-
metadata, err := az.metadata.GetMetadata(cacheReadTypeUnsafe)
77+
metadata, err := az.metadata.GetMetadata(azcache.CacheReadTypeUnsafe)
7778
if err != nil {
7879
return nil, err
7980
}
@@ -259,7 +260,7 @@ func (az *Cloud) InstanceID(ctx context.Context, name types.NodeName) (string, e
259260
}
260261

261262
if az.UseInstanceMetadata {
262-
metadata, err := az.metadata.GetMetadata(cacheReadTypeUnsafe)
263+
metadata, err := az.metadata.GetMetadata(azcache.CacheReadTypeUnsafe)
263264
if err != nil {
264265
return "", err
265266
}
@@ -346,7 +347,7 @@ func (az *Cloud) InstanceType(ctx context.Context, name types.NodeName) (string,
346347
}
347348

348349
if az.UseInstanceMetadata {
349-
metadata, err := az.metadata.GetMetadata(cacheReadTypeUnsafe)
350+
metadata, err := az.metadata.GetMetadata(azcache.CacheReadTypeUnsafe)
350351
if err != nil {
351352
return "", err
352353
}

0 commit comments

Comments
 (0)