Skip to content

Commit

Permalink
Include the GRPC server changes only
Browse files Browse the repository at this point in the history
  • Loading branch information
xxx0624 committed Jun 28, 2023
1 parent 3892d49 commit 880e7ff
Show file tree
Hide file tree
Showing 143 changed files with 6 additions and 28,665 deletions.
8 changes: 0 additions & 8 deletions ecs-agent/daemonimages/csidriver/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,6 @@ bin/csi-driver: $(CSI_DRIVER_SOURCES)
test:
go test -v -race -tags unit -timeout=60s ./...

# please include this `mockgen` into PATH
bin/mockgen: | bin
go install github.com/golang/mock/mockgen@v1.6.0

.PHONY: mockgen
mockgen: bin/mockgen
./update-gomock

.PHONY: clean
clean:
rm -rf bin/
51 changes: 0 additions & 51 deletions ecs-agent/daemonimages/csidriver/driver/mock_mount.go

This file was deleted.

18 changes: 5 additions & 13 deletions ecs-agent/daemonimages/csidriver/driver/mount.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,27 +13,19 @@

package driver

import (
mountutils "k8s.io/mount-utils"

"github.com/aws/amazon-ecs-agent/ecs-agent/daemonimages/csidriver/mounter"
)

// Mounter is the interface implemented by NodeMounter.
type Mounter interface {
PathExists(path string) (bool, error)
}

// NodeMounter implements Mounter.
type NodeMounter struct {
*mountutils.SafeFormatAndMount
}

func (nm NodeMounter) PathExists(path string) (bool, error) {
return false, nil
}

func newNodeMounter() (Mounter, error) {
// mounter.NewSafeMounter returns a SafeFormatAndMount
safeMounter, err := mounter.NewSafeMounter()
if err != nil {
return nil, err
}
return &NodeMounter{safeMounter}, nil
return NodeMounter{}, nil
}
25 changes: 0 additions & 25 deletions ecs-agent/daemonimages/csidriver/driver/mount_linux.go

This file was deleted.

50 changes: 0 additions & 50 deletions ecs-agent/daemonimages/csidriver/driver/mount_linux_test.go

This file was deleted.

31 changes: 0 additions & 31 deletions ecs-agent/daemonimages/csidriver/driver/mount_windows.go

This file was deleted.

74 changes: 1 addition & 73 deletions ecs-agent/daemonimages/csidriver/driver/node.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,7 @@
package driver

import (
"context"

"github.com/container-storage-interface/spec/lib/go/csi"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
"k8s.io/klog/v2"

"github.com/aws/amazon-ecs-agent/ecs-agent/daemonimages/csidriver/volume"
)

// nodeService represents the node service of CSI driver
Expand All @@ -31,75 +24,10 @@ type nodeService struct {
}

func newNodeService() nodeService {
klog.V(4).InfoS("New node service")
nodeMounter, err := newNodeMounter()
if err != nil {
panic(err)
}

return nodeService{
mounter: nodeMounter,
}
}

func (d *nodeService) NodeGetVolumeStats(ctx context.Context, req *csi.NodeGetVolumeStatsRequest) (*csi.NodeGetVolumeStatsResponse, error) {
klog.V(4).InfoS("NodeGetVolumeStats: called", "args", *req)
if len(req.VolumeId) == 0 {
return nil, status.Error(codes.InvalidArgument, "NodeGetVolumeStats volume ID was empty")
}

if len(req.VolumePath) == 0 {
return nil, status.Error(codes.InvalidArgument, "NodeGetVolumeStats volume path was empty")
}

exists, err := d.mounter.PathExists(req.VolumePath)
if err != nil {
return nil, status.Errorf(codes.Internal, "unknown error when stat on %s: %v", req.VolumePath, err)
}
if !exists {
return nil, status.Errorf(codes.NotFound, "path %s does not exist", req.VolumePath)
}

isBlock, err := d.IsBlockDevice(req.VolumePath)
if err != nil {
return nil, status.Errorf(codes.Internal, "failed to determine whether %s is block device: %v", req.VolumePath, err)
}

if isBlock {
bcap, blockErr := d.getBlockSizeBytes(req.VolumePath)
if blockErr != nil {
return nil, status.Errorf(codes.Internal, "failed to get block capacity on path %s: %v", req.VolumePath, err)
}
return &csi.NodeGetVolumeStatsResponse{
Usage: []*csi.VolumeUsage{
{
Unit: csi.VolumeUsage_BYTES,
Total: bcap,
},
},
}, nil
}

metricsProvider := volume.NewMetricsStatFS(req.VolumePath)
metrics, err := metricsProvider.GetMetrics()
if err != nil {
return nil, status.Errorf(codes.Internal, "failed to get fs info on path %s: %v", req.VolumePath, err)
}

return &csi.NodeGetVolumeStatsResponse{
Usage: []*csi.VolumeUsage{
{
Unit: csi.VolumeUsage_BYTES,
Available: metrics.Available.AsDec().UnscaledBig().Int64(),
Total: metrics.Capacity.AsDec().UnscaledBig().Int64(),
Used: metrics.Used.AsDec().UnscaledBig().Int64(),
},
{
Unit: csi.VolumeUsage_INODES,
Available: metrics.InodesFree.AsDec().UnscaledBig().Int64(),
Total: metrics.Inodes.AsDec().UnscaledBig().Int64(),
Used: metrics.InodesUsed.AsDec().UnscaledBig().Int64(),
},
},
}, nil
return nodeService{mounter: nodeMounter}
}
50 changes: 0 additions & 50 deletions ecs-agent/daemonimages/csidriver/driver/node_linux.go

This file was deleted.

0 comments on commit 880e7ff

Please sign in to comment.