hs-test: manage containers and volumes within test suite

Type: test
Signed-off-by: Maros Ondrejicka <maros.ondrejicka@pantheon.tech>
Change-Id: I614111814af5a99dcaa22c8581ea2d339572ae1c
diff --git a/extras/hs-test/framework_test.go b/extras/hs-test/framework_test.go
index fc186f3..cfc3801 100755
--- a/extras/hs-test/framework_test.go
+++ b/extras/hs-test/framework_test.go
@@ -13,7 +13,7 @@
 type HstSuite struct {
 	suite.Suite
 	teardownSuite func()
-	containers    []string
+	containers    []*Container
 	volumes       []string
 }
 
@@ -56,19 +56,30 @@
 		return nil, fmt.Errorf("creating container failed: name must not be blank")
 	}
 
-	s.containers = append(s.containers, name)
-
 	container := new(Container)
 	container.name = name
+
+	s.containers = append(s.containers, container)
+
 	return container, nil
 }
 
 func (s *HstSuite) StopContainers() {
-	for _, containerName := range s.containers {
-		exechelper.Run("docker stop " + containerName)
+	for _, container := range s.containers {
+		container.stop()
 	}
 }
 
+func (s *HstSuite) NewVolume(name string) error {
+	err := exechelper.Run(fmt.Sprintf("docker volume create --name=%s", name))
+	if err != nil {
+		return err
+	}
+
+	s.volumes = append(s.volumes, name)
+	return nil
+}
+
 func (s *HstSuite) RemoveVolumes() {
 	for _, volumeName := range s.volumes {
 		exechelper.Run("docker volume rm " + volumeName)