Skip to content
This repository has been archived by the owner on Nov 9, 2020. It is now read-only.

Adding trivial fix for access update testcase #1435

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 1 addition & 3 deletions esx_service/utils/kvESX.py
Expand Up @@ -279,9 +279,7 @@ def load(volpath):
try:
return json.loads(kv_str)
except ValueError:
# Adding this log for DEBUG
logging.warning("kv_str from meta file is %s ", kv_str)
logging.exception("Failed to decode meta-data for %s", volpath)
logging.exception("load:Failed to decode meta-data for %s", volpath)
return None


Expand Down
51 changes: 18 additions & 33 deletions tests/e2e/volume_access_test.go
Expand Up @@ -36,10 +36,8 @@ const (
)

type VolumeAccessTestSuite struct {
config *inputparams.TestConfig

volumeName string
containerList [2][]string
config *inputparams.TestConfig
volumeName string
}

func (s *VolumeAccessTestSuite) SetUpSuite(c *C) {
Expand All @@ -55,25 +53,12 @@ func (s *VolumeAccessTestSuite) SetUpTest(c *C) {
}

func (s *VolumeAccessTestSuite) TearDownTest(c *C) {
for i := 0; i < 2; i++ {
cnameList := strings.Join(s.containerList[i], " ")
out, err := dockercli.RemoveContainer(s.config.DockerHosts[i], cnameList)
c.Assert(err, IsNil, Commentf(out))
s.containerList[i] = s.containerList[i][:0]
}

out, err := dockercli.DeleteVolume(s.config.DockerHosts[0], s.volumeName)
c.Assert(err, IsNil, Commentf(out))
}

var _ = Suite(&VolumeAccessTestSuite{})

func (s *VolumeAccessTestSuite) newCName(i int) string {
cname := inputparams.GetUniqueContainerName("vol_access")
s.containerList[i] = append(s.containerList[i], cname)
return cname
}

// Verify read, write is possible after volume access update
// 1. Write a message from host1 to a file on the volume
// 2. Read the content from host2 from same file on the volume
Expand All @@ -99,43 +84,43 @@ func (s *VolumeAccessTestSuite) TestAccessUpdate(c *C) {
out, err := dockercli.CreateVolume(s.config.DockerHosts[0], s.volumeName)
c.Assert(err, IsNil, Commentf(out))

out, err = dockercli.WriteToVolume(s.config.DockerHosts[0], s.volumeName, s.newCName(0), testFile, data1)
out, err = dockercli.WriteToVolume(s.config.DockerHosts[0], s.volumeName, inputparams.GetUniqueContainerName("vol_access"), testFile, data1)
c.Assert(err, IsNil, Commentf(out))

out, err = dockercli.ReadFromVolume(s.config.DockerHosts[1], s.volumeName, s.newCName(1), testFile)
out, err = dockercli.ReadFromVolume(s.config.DockerHosts[1], s.volumeName, inputparams.GetUniqueContainerName("vol_access"), testFile)
c.Assert(err, IsNil, Commentf(out))
c.Assert(out, Equals, data1)

out, err = dockercli.WriteToVolume(s.config.DockerHosts[1], s.volumeName, s.newCName(1), testFile, data2)
out, err = dockercli.WriteToVolume(s.config.DockerHosts[1], s.volumeName, inputparams.GetUniqueContainerName("vol_access"), testFile, data2)
c.Assert(err, IsNil, Commentf(out))

out, err = dockercli.ReadFromVolume(s.config.DockerHosts[0], s.volumeName, s.newCName(0), testFile)
out, err = dockercli.ReadFromVolume(s.config.DockerHosts[0], s.volumeName, inputparams.GetUniqueContainerName("vol_access"), testFile)
c.Assert(err, IsNil, Commentf(out))
c.Assert(out, Equals, data2)

out, err = admincli.UpdateVolumeAccess(s.config.EsxHost, s.volumeName, adminconst.DefaultVMgroup, adminconst.ReadOnlyAccess)
c.Assert(err, IsNil, Commentf(out))

out, err = dockercli.WriteToVolume(s.config.DockerHosts[0], s.volumeName, s.newCName(0), testFile, data1)
out, err = dockercli.WriteToVolume(s.config.DockerHosts[0], s.volumeName, inputparams.GetUniqueContainerName("vol_access"), testFile, data1)
c.Assert(strings.Contains(out, errorWriteVolume), Equals, true, Commentf(out))

out, err = dockercli.WriteToVolume(s.config.DockerHosts[1], s.volumeName, s.newCName(1), testFile, data2)
out, err = dockercli.WriteToVolume(s.config.DockerHosts[1], s.volumeName, inputparams.GetUniqueContainerName("vol_access"), testFile, data2)
c.Assert(strings.Contains(out, errorWriteVolume), Equals, true, Commentf(out))

out, err = admincli.UpdateVolumeAccess(s.config.EsxHost, s.volumeName, adminconst.DefaultVMgroup, adminconst.ReadWriteAccess)
c.Assert(err, IsNil, Commentf(out))

out, err = dockercli.WriteToVolume(s.config.DockerHosts[0], s.volumeName, s.newCName(0), testFile, data1)
out, err = dockercli.WriteToVolume(s.config.DockerHosts[0], s.volumeName, inputparams.GetUniqueContainerName("vol_access"), testFile, data1)
c.Assert(err, IsNil, Commentf(out))

out, err = dockercli.ReadFromVolume(s.config.DockerHosts[1], s.volumeName, s.newCName(1), testFile)
out, err = dockercli.ReadFromVolume(s.config.DockerHosts[1], s.volumeName, inputparams.GetUniqueContainerName("vol_access"), testFile)
c.Assert(err, IsNil, Commentf(out))
c.Assert(out, Equals, data1)

out, err = dockercli.WriteToVolume(s.config.DockerHosts[1], s.volumeName, s.newCName(1), testFile, data2)
out, err = dockercli.WriteToVolume(s.config.DockerHosts[1], s.volumeName, inputparams.GetUniqueContainerName("vol_access"), testFile, data2)
c.Assert(err, IsNil, Commentf(out))

out, err = dockercli.ReadFromVolume(s.config.DockerHosts[0], s.volumeName, s.newCName(0), testFile)
out, err = dockercli.ReadFromVolume(s.config.DockerHosts[0], s.volumeName, inputparams.GetUniqueContainerName("vol_access"), testFile)
c.Assert(err, IsNil, Commentf(out))
c.Assert(out, Equals, data2)

Expand All @@ -162,26 +147,26 @@ func (s *VolumeAccessTestSuite) TestAccessUpdate_R_RW(c *C) {
out, err := dockercli.CreateVolumeWithOptions(s.config.DockerHosts[0], s.volumeName, " -o access="+adminconst.ReadOnlyAccess)
c.Assert(err, IsNil, Commentf(out))

out, err = dockercli.WriteToVolume(s.config.DockerHosts[0], s.volumeName, s.newCName(0), testFile, data1)
out, err = dockercli.WriteToVolume(s.config.DockerHosts[0], s.volumeName, inputparams.GetUniqueContainerName("vol_access"), testFile, data1)
c.Assert(strings.Contains(out, errorWriteVolume), Equals, true, Commentf(out))

out, err = dockercli.WriteToVolume(s.config.DockerHosts[1], s.volumeName, s.newCName(1), testFile, data2)
out, err = dockercli.WriteToVolume(s.config.DockerHosts[1], s.volumeName, inputparams.GetUniqueContainerName("vol_access"), testFile, data2)
c.Assert(strings.Contains(out, errorWriteVolume), Equals, true, Commentf(out))

out, err = admincli.UpdateVolumeAccess(s.config.EsxHost, s.volumeName, adminconst.DefaultVMgroup, adminconst.ReadWriteAccess)
c.Assert(err, IsNil, Commentf(out))

out, err = dockercli.WriteToVolume(s.config.DockerHosts[0], s.volumeName, s.newCName(0), testFile, data1)
out, err = dockercli.WriteToVolume(s.config.DockerHosts[0], s.volumeName, inputparams.GetUniqueContainerName("vol_access"), testFile, data1)
c.Assert(err, IsNil, Commentf(out))

out, err = dockercli.ReadFromVolume(s.config.DockerHosts[1], s.volumeName, s.newCName(1), testFile)
out, err = dockercli.ReadFromVolume(s.config.DockerHosts[1], s.volumeName, inputparams.GetUniqueContainerName("vol_access"), testFile)
c.Assert(err, IsNil, Commentf(out))
c.Assert(out, Equals, data1)

out, err = dockercli.WriteToVolume(s.config.DockerHosts[1], s.volumeName, s.newCName(1), testFile, data2)
out, err = dockercli.WriteToVolume(s.config.DockerHosts[1], s.volumeName, inputparams.GetUniqueContainerName("vol_access"), testFile, data2)
c.Assert(err, IsNil, Commentf(out))

out, err = dockercli.ReadFromVolume(s.config.DockerHosts[0], s.volumeName, s.newCName(0), testFile)
out, err = dockercli.ReadFromVolume(s.config.DockerHosts[0], s.volumeName, inputparams.GetUniqueContainerName("vol_access"), testFile)
c.Assert(err, IsNil, Commentf(out))
c.Assert(out, Equals, data2)

Expand Down
4 changes: 2 additions & 2 deletions tests/utils/dockercli/volumelifecycle.go
Expand Up @@ -73,7 +73,7 @@ func WriteToVolume(ip, volName, containerName, fileName, data string) (string, e
log.Printf("Writing %s to file %s on volume [%s] from VM[%s]\n", data, fileName, volName, ip)

writeCmd := " /bin/sh -c 'echo \"" + data + "\" > /vol1/test.txt'"
return ssh.InvokeCommand(ip, dockercli.RunContainer+" -v "+volName+
return ssh.InvokeCommand(ip, dockercli.RunContainer+"--rm -v "+volName+
":/vol1 --name "+containerName+dockercli.ContainerImage+
writeCmd)
}
Expand All @@ -83,7 +83,7 @@ func ReadFromVolume(ip, volName, containerName, fileName string) (string, error)
log.Printf("Reading from file %s on volume [%s] from VM[%s]\n", fileName, volName, ip)

readCmd := " /bin/sh -c 'cat /vol1/" + fileName + "'"
return ssh.InvokeCommand(ip, dockercli.RunContainer+" -v "+volName+
return ssh.InvokeCommand(ip, dockercli.RunContainer+"--rm -v "+volName+
":/vol1 --name "+containerName+dockercli.ContainerImage+
readCmd)
}
Expand Down