13937: Refactors approach to pass volume metrics as curried vecs (WIP)
[arvados.git] / services / keepstore / volume_unix_test.go
index ea3d91d98c2e42deed99417c87254af42b8148e8..05c7a93ae4b94f447188661a4e4eb807b4144eb1 100644 (file)
@@ -19,6 +19,8 @@ import (
        "testing"
        "time"
 
+       "github.com/ghodss/yaml"
+       "github.com/prometheus/client_golang/prometheus"
        check "gopkg.in/check.v1"
 )
 
@@ -114,7 +116,9 @@ func TestReplicationDefault1(t *testing.T) {
                Root:     "/",
                ReadOnly: true,
        }
-       if err := v.Start(); err != nil {
+       metrics := newVolumeMetricsVecs(prometheus.NewRegistry()).curryWith(
+               v.String(), v.Status().MountPoint, fmt.Sprintf("%d", v.Status().DeviceNum))
+       if err := v.Start(metrics); err != nil {
                t.Error(err)
        }
        if got := v.Replication(); got != 1 {
@@ -427,3 +431,15 @@ func (s *UnixVolumeSuite) TestStats(c *check.C) {
        c.Check(err, check.IsNil)
        c.Check(stats(), check.Matches, `.*"FlockOps":2,.*`)
 }
+
+func (s *UnixVolumeSuite) TestConfig(c *check.C) {
+       var cfg Config
+       err := yaml.Unmarshal([]byte(`
+Volumes:
+  - Type: Directory
+    StorageClasses: ["class_a", "class_b"]
+`), &cfg)
+
+       c.Check(err, check.IsNil)
+       c.Check(cfg.Volumes[0].GetStorageClasses(), check.DeepEquals, []string{"class_a", "class_b"})
+}