Commit 7528b329 authored by Cyrill Troxler's avatar Cyrill Troxler
Browse files

Rename packages

Create separate packages for driver, s3 client and mounters.
parent d0a14c86
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -21,7 +21,7 @@ import (
	"log"
	"os"

	"github.com/ctrox/csi-s3/pkg/s3"
	"github.com/ctrox/csi-s3/pkg/driver"
)

func init() {
@@ -36,7 +36,7 @@ var (
func main() {
	flag.Parse()

	driver, err := s3.NewS3(*nodeID, *endpoint)
	driver, err := driver.New(*nodeID, *endpoint)
	if err != nil {
		log.Fatal(err)
	}
+24 −18
Original line number Diff line number Diff line
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/

package s3
package driver

import (
	"crypto/sha1"
@@ -23,6 +23,8 @@ import (
	"io"
	"strings"

	"github.com/ctrox/csi-s3/pkg/mounter"
	"github.com/ctrox/csi-s3/pkg/s3"
	"github.com/golang/glog"
	"golang.org/x/net/context"
	"google.golang.org/grpc/codes"
@@ -36,11 +38,15 @@ type controllerServer struct {
	*csicommon.DefaultControllerServer
}

const (
	defaultFsPrefix = "csi-fs"
)

func (cs *controllerServer) CreateVolume(ctx context.Context, req *csi.CreateVolumeRequest) (*csi.CreateVolumeResponse, error) {
	params := req.GetParameters()

	volumeID := sanitizeVolumeID(req.GetName())
	if bucketName, bucketExists := params[bucketKey]; bucketExists {
	if bucketName, bucketExists := params[mounter.BucketKey]; bucketExists {
		volumeID = sanitizeVolumeID(bucketName)
	}

@@ -59,24 +65,24 @@ func (cs *controllerServer) CreateVolume(ctx context.Context, req *csi.CreateVol

	capacityBytes := int64(req.GetCapacityRange().GetRequiredBytes())

	mounter := params[mounterTypeKey]
	mounter := params[mounter.TypeKey]

	glog.V(4).Infof("Got a request to create volume %s", volumeID)
	s3, err := newS3ClientFromSecrets(req.GetSecrets())
	client, err := s3.NewClientFromSecret(req.GetSecrets())
	if err != nil {
		return nil, fmt.Errorf("failed to initialize S3 client: %s", err)
	}
	exists, err := s3.bucketExists(volumeID)
	exists, err := client.BucketExists(volumeID)
	if err != nil {
		return nil, fmt.Errorf("failed to check if bucket %s exists: %v", volumeID, err)
	}
	var b *bucket
	var b *s3.Bucket
	if exists {
		b, err = s3.getBucket(volumeID)
		b, err = client.GetBucket(volumeID)

		if err != nil {
			glog.Warningf("Bucket %s exists, but failed to get its metadata: %v", volumeID, err)
			b = &bucket{
			b = &s3.Bucket{
				Name:          volumeID,
				Mounter:       mounter,
				CapacityBytes: capacityBytes,
@@ -91,13 +97,13 @@ func (cs *controllerServer) CreateVolume(ctx context.Context, req *csi.CreateVol
			b.Mounter = mounter
		}
	} else {
		if err = s3.createBucket(volumeID); err != nil {
		if err = client.CreateBucket(volumeID); err != nil {
			return nil, fmt.Errorf("failed to create volume %s: %v", volumeID, err)
		}
		if err = s3.createPrefix(volumeID, defaultFsPrefix); err != nil {
		if err = client.CreatePrefix(volumeID, defaultFsPrefix); err != nil {
			return nil, fmt.Errorf("failed to create prefix %s: %v", defaultFsPrefix, err)
		}
		b = &bucket{
		b = &s3.Bucket{
			Name:          volumeID,
			Mounter:       mounter,
			CapacityBytes: capacityBytes,
@@ -105,7 +111,7 @@ func (cs *controllerServer) CreateVolume(ctx context.Context, req *csi.CreateVol
			CreatedByCsi:  !exists,
		}
	}
	if err := s3.setBucket(b); err != nil {
	if err := client.SetBucket(b); err != nil {
		return nil, fmt.Errorf("Error setting bucket metadata: %v", err)
	}

@@ -136,21 +142,21 @@ func (cs *controllerServer) DeleteVolume(ctx context.Context, req *csi.DeleteVol
	}
	glog.V(4).Infof("Deleting volume %s", volumeID)

	s3, err := newS3ClientFromSecrets(req.GetSecrets())
	client, err := s3.NewClientFromSecret(req.GetSecrets())
	if err != nil {
		return nil, fmt.Errorf("failed to initialize S3 client: %s", err)
	}
	exists, err := s3.bucketExists(volumeID)
	exists, err := client.BucketExists(volumeID)
	if err != nil {
		return nil, err
	}
	if exists {
		b, err := s3.getBucket(volumeID)
		b, err := client.GetBucket(volumeID)
		if err != nil {
			return nil, fmt.Errorf("Failed to get metadata of buckect %s", volumeID)
		}
		if b.CreatedByCsi {
			if err := s3.removeBucket(volumeID); err != nil {
			if err := client.RemoveBucket(volumeID); err != nil {
				glog.V(3).Infof("Failed to remove volume %s: %v", volumeID, err)
				return nil, err
			}
@@ -175,11 +181,11 @@ func (cs *controllerServer) ValidateVolumeCapabilities(ctx context.Context, req
		return nil, status.Error(codes.InvalidArgument, "Volume capabilities missing in request")
	}

	s3, err := newS3ClientFromSecrets(req.GetSecrets())
	s3, err := s3.NewClientFromSecret(req.GetSecrets())
	if err != nil {
		return nil, fmt.Errorf("failed to initialize S3 client: %s", err)
	}
	exists, err := s3.bucketExists(req.GetVolumeId())
	exists, err := s3.BucketExists(req.GetVolumeId())
	if err != nil {
		return nil, err
	}
+12 −12
Original line number Diff line number Diff line
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/

package s3
package driver

import (
	"github.com/container-storage-interface/spec/lib/go/csi"
@@ -23,7 +23,7 @@ import (
	csicommon "github.com/kubernetes-csi/drivers/pkg/csi-common"
)

type s3 struct {
type driver struct {
	driver   *csicommon.CSIDriver
	endpoint string

@@ -44,39 +44,39 @@ var (
	driverName    = "ch.ctrox.csi.s3-driver"
)

// NewS3 initializes the driver
func NewS3(nodeID string, endpoint string) (*s3, error) {
	driver := csicommon.NewCSIDriver(driverName, vendorVersion, nodeID)
	if driver == nil {
// New initializes the driver
func New(nodeID string, endpoint string) (*driver, error) {
	d := csicommon.NewCSIDriver(driverName, vendorVersion, nodeID)
	if d == nil {
		glog.Fatalln("Failed to initialize CSI Driver.")
	}

	s3Driver := &s3{
	s3Driver := &driver{
		endpoint: endpoint,
		driver:   driver,
		driver:   d,
	}
	return s3Driver, nil
}

func (s3 *s3) newIdentityServer(d *csicommon.CSIDriver) *identityServer {
func (s3 *driver) newIdentityServer(d *csicommon.CSIDriver) *identityServer {
	return &identityServer{
		DefaultIdentityServer: csicommon.NewDefaultIdentityServer(d),
	}
}

func (s3 *s3) newControllerServer(d *csicommon.CSIDriver) *controllerServer {
func (s3 *driver) newControllerServer(d *csicommon.CSIDriver) *controllerServer {
	return &controllerServer{
		DefaultControllerServer: csicommon.NewDefaultControllerServer(d),
	}
}

func (s3 *s3) newNodeServer(d *csicommon.CSIDriver) *nodeServer {
func (s3 *driver) newNodeServer(d *csicommon.CSIDriver) *nodeServer {
	return &nodeServer{
		DefaultNodeServer: csicommon.NewDefaultNodeServer(d),
	}
}

func (s3 *s3) Run() {
func (s3 *driver) Run() {
	glog.Infof("Driver: %v ", driverName)
	glog.Infof("Version: %v ", vendorVersion)
	// Initialize default library driver
+8 −7
Original line number Diff line number Diff line
package s3_test
package driver_test

import (
	"log"
	"os"

	"github.com/ctrox/csi-s3/pkg/s3"
	"github.com/ctrox/csi-s3/pkg/driver"
	"github.com/ctrox/csi-s3/pkg/mounter"
	. "github.com/onsi/ginkgo"
	. "github.com/onsi/gomega"

@@ -19,7 +20,7 @@ var _ = Describe("S3Driver", func() {
		if err := os.Remove(socket); err != nil && !os.IsNotExist(err) {
			Expect(err).NotTo(HaveOccurred())
		}
		driver, err := s3.NewS3("test-node", csiEndpoint)
		driver, err := driver.New("test-node", csiEndpoint)
		if err != nil {
			log.Fatal(err)
		}
@@ -45,7 +46,7 @@ var _ = Describe("S3Driver", func() {
		if err := os.Remove(socket); err != nil && !os.IsNotExist(err) {
			Expect(err).NotTo(HaveOccurred())
		}
		driver, err := s3.NewS3("test-node", csiEndpoint)
		driver, err := driver.New("test-node", csiEndpoint)
		if err != nil {
			log.Fatal(err)
		}
@@ -73,8 +74,8 @@ var _ = Describe("S3Driver", func() {
			Expect(err).NotTo(HaveOccurred())
		}
		// Clear loop device so we cover the creation of it
		os.Remove(s3.S3backerLoopDevice)
		driver, err := s3.NewS3("test-node", csiEndpoint)
		os.Remove(mounter.S3backerLoopDevice)
		driver, err := driver.New("test-node", csiEndpoint)
		if err != nil {
			log.Fatal(err)
		}
@@ -101,7 +102,7 @@ var _ = Describe("S3Driver", func() {
		if err := os.Remove(socket); err != nil && !os.IsNotExist(err) {
			Expect(err).NotTo(HaveOccurred())
		}
		driver, err := s3.NewS3("test-node", csiEndpoint)
		driver, err := driver.New("test-node", csiEndpoint)
		if err != nil {
			log.Fatal(err)
		}
+1 −1
Original line number Diff line number Diff line
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/

package s3
package driver_test

import (
	"testing"
Loading