Sanitize the volumeID before creation
* Bucket names cannot contain upper case letters * Bucket names cannot be longer than 63 chars
This commit is contained in:
parent
728ef7d7e7
commit
58912e4734
1 changed files with 15 additions and 1 deletions
|
@ -17,7 +17,11 @@ limitations under the License.
|
||||||
package s3
|
package s3
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"crypto/sha1"
|
||||||
|
"encoding/hex"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"io"
|
||||||
|
"strings"
|
||||||
|
|
||||||
"github.com/golang/glog"
|
"github.com/golang/glog"
|
||||||
"golang.org/x/net/context"
|
"golang.org/x/net/context"
|
||||||
|
@ -34,7 +38,7 @@ type controllerServer struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cs *controllerServer) CreateVolume(ctx context.Context, req *csi.CreateVolumeRequest) (*csi.CreateVolumeResponse, error) {
|
func (cs *controllerServer) CreateVolume(ctx context.Context, req *csi.CreateVolumeRequest) (*csi.CreateVolumeResponse, error) {
|
||||||
volumeID := req.GetName()
|
volumeID := sanitizeVolumeID(req.GetName())
|
||||||
|
|
||||||
if err := cs.Driver.ValidateControllerServiceRequest(csi.ControllerServiceCapability_RPC_CREATE_DELETE_VOLUME); err != nil {
|
if err := cs.Driver.ValidateControllerServiceRequest(csi.ControllerServiceCapability_RPC_CREATE_DELETE_VOLUME); err != nil {
|
||||||
glog.V(3).Infof("invalid create volume req: %v", req)
|
glog.V(3).Infof("invalid create volume req: %v", req)
|
||||||
|
@ -156,3 +160,13 @@ func (cs *controllerServer) ValidateVolumeCapabilities(ctx context.Context, req
|
||||||
}
|
}
|
||||||
return &csi.ValidateVolumeCapabilitiesResponse{Supported: true, Message: ""}, nil
|
return &csi.ValidateVolumeCapabilitiesResponse{Supported: true, Message: ""}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func sanitizeVolumeID(volumeID string) string {
|
||||||
|
volumeID = strings.ToLower(volumeID)
|
||||||
|
if len(volumeID) > 63 {
|
||||||
|
h := sha1.New()
|
||||||
|
io.WriteString(h, volumeID)
|
||||||
|
volumeID = hex.EncodeToString(h.Sum(nil))
|
||||||
|
}
|
||||||
|
return volumeID
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue