Add ci pipeline with GitLab (#3)
* Add automated testing * Create loop device while staging s3backer
This commit is contained in:
parent
f603d84fc5
commit
9291d09baa
7 changed files with 70 additions and 4 deletions
|
@ -27,6 +27,8 @@ const (
|
|||
// blockSize to use in k
|
||||
s3backerBlockSize = "128k"
|
||||
s3backerDefaultSize = 1024 * 1024 * 1024 // 1GiB
|
||||
// S3backerLoopDevice the loop device required by s3backer
|
||||
S3backerLoopDevice = "/dev/loop0"
|
||||
)
|
||||
|
||||
func newS3backerMounter(bucket *bucket, cfg *Config) (Mounter, error) {
|
||||
|
@ -55,6 +57,10 @@ func (s3backer *s3backerMounter) String() string {
|
|||
}
|
||||
|
||||
func (s3backer *s3backerMounter) Stage(stageTarget string) error {
|
||||
// s3backer uses the loop device
|
||||
if err := createLoopDevice(S3backerLoopDevice); err != nil {
|
||||
return err
|
||||
}
|
||||
// s3backer requires two mounts
|
||||
// first mount will fuse mount the bucket to a single 'file'
|
||||
if err := s3backer.mountInit(stageTarget); err != nil {
|
||||
|
|
|
@ -121,6 +121,8 @@ var _ = Describe("S3Driver", func() {
|
|||
if err := os.Remove(socket); err != nil && !os.IsNotExist(err) {
|
||||
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, cfg)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
|
|
|
@ -4,6 +4,7 @@ import (
|
|||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"os/exec"
|
||||
"strings"
|
||||
"syscall"
|
||||
"time"
|
||||
|
@ -67,3 +68,20 @@ func getCmdLine(pid int) (string, error) {
|
|||
}
|
||||
return string(cmdLine), nil
|
||||
}
|
||||
|
||||
func createLoopDevice(device string) error {
|
||||
if _, err := os.Stat(device); !os.IsNotExist(err) {
|
||||
return nil
|
||||
}
|
||||
args := []string{
|
||||
device,
|
||||
"b", "7", "0",
|
||||
}
|
||||
cmd := exec.Command("mknod", args...)
|
||||
|
||||
out, err := cmd.CombinedOutput()
|
||||
if err != nil {
|
||||
return fmt.Errorf("Error configuring loop device: %s", out)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue