Skip to content

Commit 6ac86a9

Browse files
committed
Avoid global ECS client for easier test
1 parent 3a64b2d commit 6ac86a9

File tree

4 files changed

+11
-9
lines changed

4 files changed

+11
-9
lines changed

pkg/disk/cloud.go

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ const (
6767

6868
type DiskAttachDetach struct {
6969
slots AttachDetachSlots
70+
ecs cloud.ECSInterface
7071
waiter waitstatus.StatusWaiter[ecs.Disk]
7172
batcher batcher.Batcher[ecs.Disk]
7273

@@ -167,7 +168,6 @@ func (ad *DiskAttachDetach) attachDisk(ctx context.Context, diskID, nodeID strin
167168
logger := klog.FromContext(ctx)
168169
logger.V(2).Info("Starting Do AttachDisk", "instanceID", nodeID, "region", GlobalConfigVar.Region)
169170

170-
ecsClient := GlobalConfigVar.EcsClient
171171
// Step 1: check disk status
172172
disk, err := ad.findDiskByID(ctx, diskID)
173173
if err != nil {
@@ -192,7 +192,7 @@ func (ad *DiskAttachDetach) attachDisk(ctx context.Context, diskID, nodeID strin
192192

193193
// tag disk as k8s.aliyun.com=true
194194
if GlobalConfigVar.DiskTagEnable {
195-
tagDiskAsK8sAttached(diskID, ecsClient)
195+
tagDiskAsK8sAttached(diskID, GlobalConfigVar.EcsClient)
196196
}
197197

198198
cate, ok := AllCategories[Category(disk.Category)]
@@ -237,7 +237,7 @@ func (ad *DiskAttachDetach) attachDisk(ctx context.Context, diskID, nodeID strin
237237
}
238238

239239
if GlobalConfigVar.DiskBdfEnable {
240-
if allowed, err := forceDetachAllowed(ecsClient, disk); err != nil {
240+
if allowed, err := forceDetachAllowed(GlobalConfigVar.EcsClient, disk); err != nil {
241241
return "", status.Errorf(codes.Aborted, "forceDetachAllowed failed: %v", err)
242242
} else if !allowed {
243243
return "", status.Errorf(codes.Aborted, "AttachDisk: Disk %s is already attached to instance %s, and depend bdf, reject force detach", disk.DiskId, disk.InstanceId)
@@ -257,7 +257,7 @@ func (ad *DiskAttachDetach) attachDisk(ctx context.Context, diskID, nodeID strin
257257
for key, value := range GlobalConfigVar.RequestBaseInfo {
258258
detachRequest.AppendUserAgent(key, value)
259259
}
260-
_, err = ecsClient.DetachDisk(detachRequest)
260+
_, err = ad.ecs.DetachDisk(detachRequest)
261261
if err != nil {
262262
klog.Errorf("AttachDisk: Can't Detach disk %s from instance %s: with error: %v", diskID, disk.InstanceId, err)
263263
return "", status.Errorf(codes.Aborted, "AttachDisk: Can't Detach disk %s from instance %s: with error: %v", diskID, disk.InstanceId, err)
@@ -297,7 +297,7 @@ func (ad *DiskAttachDetach) attachDisk(ctx context.Context, diskID, nodeID strin
297297
for key, value := range GlobalConfigVar.RequestBaseInfo {
298298
attachRequest.AppendUserAgent(key, value)
299299
}
300-
response, err := throttle.Throttled(ad.attachThrottler, ecsClient.AttachDisk)(ctx, attachRequest)
300+
response, err := throttle.Throttled(ad.attachThrottler, ad.ecs.AttachDisk)(ctx, attachRequest)
301301
if err != nil {
302302
var aliErr *alicloudErr.ServerError
303303
if errors.As(err, &aliErr) {
@@ -338,7 +338,6 @@ func (ad *DiskAttachDetach) attachDisk(ctx context.Context, diskID, nodeID strin
338338
func (ad *DiskAttachDetach) attachMultiAttachDisk(ctx context.Context, diskID, nodeID string) (string, error) {
339339
klog.Infof("AttachDisk: Starting Do AttachMultiAttachDisk: DiskId: %s, InstanceId: %s, Region: %v", diskID, nodeID, GlobalConfigVar.Region)
340340

341-
ecsClient := GlobalConfigVar.EcsClient
342341
// Step 1: check disk status
343342
disk, err := ad.findDiskByID(ctx, diskID)
344343
if err != nil {
@@ -360,7 +359,7 @@ func (ad *DiskAttachDetach) attachMultiAttachDisk(ctx context.Context, diskID, n
360359
attachRequest := ecs.CreateAttachDiskRequest()
361360
attachRequest.InstanceId = nodeID
362361
attachRequest.DiskId = diskID
363-
response, err := ecsClient.AttachDisk(attachRequest)
362+
response, err := ad.ecs.AttachDisk(attachRequest)
364363
if err != nil {
365364
if strings.Contains(err.Error(), DiskLimitExceeded) {
366365
return "", status.Error(codes.Internal, err.Error()+", Node("+nodeID+")exceed the limit attachments of disk")

pkg/disk/controllerserver.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ func NewControllerServer(csiCfg utils.Config, ecs cloud.ECSInterface, m metadata
9999
meta: m,
100100
ecs: ecs,
101101
ad: DiskAttachDetach{
102+
ecs: ecs,
102103
waiter: waiter,
103104
batcher: batcher,
104105

pkg/disk/disk.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ func NewDriver(m metadata.MetadataProvider, endpoint string, serviceType utils.S
133133
servers.ControllerServer = NewControllerServer(csiCfg, client, m)
134134
}
135135
if serviceType&utils.Node != 0 {
136-
servers.NodeServer = NewNodeServer(m)
136+
servers.NodeServer = NewNodeServer(client, m)
137137
}
138138
if features.FunctionalMutableFeatureGate.Enabled(features.EnableVolumeGroupSnapshots) {
139139
servers.GroupControllerServer = NewGroupControllerServer()

pkg/disk/nodeserver.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import (
3030
"syscall"
3131

3232
"github.com/container-storage-interface/spec/lib/go/csi"
33+
"github.com/kubernetes-sigs/alibaba-cloud-csi-driver/pkg/cloud"
3334
"github.com/kubernetes-sigs/alibaba-cloud-csi-driver/pkg/cloud/metadata"
3435
"github.com/kubernetes-sigs/alibaba-cloud-csi-driver/pkg/common"
3536
"github.com/kubernetes-sigs/alibaba-cloud-csi-driver/pkg/disk/sfdisk"
@@ -171,7 +172,7 @@ func parseVolumeCountEnv() (int, error) {
171172
}
172173

173174
// NewNodeServer creates node server
174-
func NewNodeServer(m metadata.MetadataProvider) csi.NodeServer {
175+
func NewNodeServer(ecs cloud.ECSInterface, m metadata.MetadataProvider) csi.NodeServer {
175176
// Create Directory
176177
err := os.MkdirAll(VolumeDir, os.FileMode(0755))
177178
if err != nil {
@@ -224,6 +225,7 @@ func NewNodeServer(m metadata.MetadataProvider) csi.NodeServer {
224225
podCGroup: podCgroup,
225226
clientSet: GlobalConfigVar.ClientSet,
226227
ad: DiskAttachDetach{
228+
ecs: ecs,
227229
waiter: waiter,
228230
batcher: batcher,
229231
// if ADController is not enabled, we need serial attach to recognize old disk

0 commit comments

Comments
 (0)