mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 12:18:16 +00:00 
			
		
		
		
	Volume Metrics Interface and base implementation.
- Add volume.MetricsProvider function to Volume interface. - Add volume.MetricsDu for providing metrics via executing "du". - Add volulme.MetricsNil for unsupported Volumes.
This commit is contained in:
		@@ -274,3 +274,42 @@ func TestPluginBackCompat(t *testing.T) {
 | 
			
		||||
		t.Errorf("Got unexpected path: %s", volPath)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// TestMetrics tests that MetricProvider methods return sane values.
 | 
			
		||||
func TestMetrics(t *testing.T) {
 | 
			
		||||
	// Create an empty temp directory for the volume
 | 
			
		||||
	tmpDir, err := ioutil.TempDir(os.TempDir(), "empty_dir_test")
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatalf("Can't make a tmp dir: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
	defer os.RemoveAll(tmpDir)
 | 
			
		||||
 | 
			
		||||
	plug := makePluginUnderTest(t, "kubernetes.io/empty-dir", tmpDir)
 | 
			
		||||
 | 
			
		||||
	spec := &api.Volume{
 | 
			
		||||
		Name: "vol1",
 | 
			
		||||
	}
 | 
			
		||||
	pod := &api.Pod{ObjectMeta: api.ObjectMeta{UID: types.UID("poduid")}}
 | 
			
		||||
	builder, err := plug.NewBuilder(volume.NewSpecFromVolume(spec), pod, volume.VolumeOptions{RootContext: ""})
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Errorf("Failed to make a new Builder: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Need to create the subdirectory
 | 
			
		||||
	os.MkdirAll(builder.GetPath(), 0755)
 | 
			
		||||
 | 
			
		||||
	// TODO(pwittroc): Move this into a reusable testing utility
 | 
			
		||||
	metrics, err := builder.GetMetrics()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Errorf("Unexpected error when calling GetMetrics %v", err)
 | 
			
		||||
	}
 | 
			
		||||
	if metrics.Used.Value() != 4096 {
 | 
			
		||||
		t.Errorf("Expected Used %d to be 4096", metrics.Used.Value())
 | 
			
		||||
	}
 | 
			
		||||
	if metrics.Capacity.Value() <= 0 {
 | 
			
		||||
		t.Errorf("Expected Capacity to be greater than 0")
 | 
			
		||||
	}
 | 
			
		||||
	if metrics.Available.Value() <= 0 {
 | 
			
		||||
		t.Errorf("Expected Available to be greater than 0")
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user