github.com/ThomasObenaus/nomad@v0.11.1/nomad/structs/csi_test.go (about)

     1  package structs
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/require"
     7  )
     8  
     9  func TestCSIVolumeClaim(t *testing.T) {
    10  	vol := NewCSIVolume("", 0)
    11  	vol.AccessMode = CSIVolumeAccessModeMultiNodeSingleWriter
    12  	vol.Schedulable = true
    13  
    14  	alloc := &Allocation{ID: "a1", Namespace: "n", JobID: "j"}
    15  
    16  	require.NoError(t, vol.ClaimRead(alloc))
    17  	require.True(t, vol.ReadSchedulable())
    18  	require.True(t, vol.WriteSchedulable())
    19  	require.NoError(t, vol.ClaimRead(alloc))
    20  
    21  	require.NoError(t, vol.ClaimWrite(alloc))
    22  	require.True(t, vol.ReadSchedulable())
    23  	require.False(t, vol.WriteFreeClaims())
    24  
    25  	vol.ClaimRelease(alloc)
    26  	require.True(t, vol.ReadSchedulable())
    27  	require.True(t, vol.WriteFreeClaims())
    28  }
    29  
    30  func TestCSIPluginCleanup(t *testing.T) {
    31  	plug := NewCSIPlugin("foo", 1000)
    32  	plug.AddPlugin("n0", &CSIInfo{
    33  		PluginID:                 "foo",
    34  		AllocID:                  "a0",
    35  		Healthy:                  true,
    36  		Provider:                 "foo-provider",
    37  		RequiresControllerPlugin: true,
    38  		RequiresTopologies:       false,
    39  		ControllerInfo:           &CSIControllerInfo{},
    40  	})
    41  
    42  	plug.AddPlugin("n0", &CSIInfo{
    43  		PluginID:                 "foo",
    44  		AllocID:                  "a0",
    45  		Healthy:                  true,
    46  		Provider:                 "foo-provider",
    47  		RequiresControllerPlugin: true,
    48  		RequiresTopologies:       false,
    49  		NodeInfo:                 &CSINodeInfo{},
    50  	})
    51  
    52  	require.Equal(t, 1, plug.ControllersHealthy)
    53  	require.Equal(t, 1, plug.NodesHealthy)
    54  
    55  	plug.DeleteNode("n0")
    56  	require.Equal(t, 0, plug.ControllersHealthy)
    57  	require.Equal(t, 0, plug.NodesHealthy)
    58  
    59  	require.Equal(t, 0, len(plug.Controllers))
    60  	require.Equal(t, 0, len(plug.Nodes))
    61  }