MCPcopy
hub / github.com/lxc/incus / TestContainerList

Function TestContainerList

internal/server/db/instances_test.go:20–80  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

18)
19
20func TestContainerList(t *testing.T) {
21 tx, cleanup := db.NewTestClusterTx(t)
22 defer cleanup()
23
24 nodeID1 := int64(1) // This is the default local member
25
26 nodeID2, err := tx.CreateNode("node2", "1.2.3.4:666")
27 require.NoError(t, err)
28
29 addContainer(t, tx, nodeID2, "c1")
30 addContainer(t, tx, nodeID1, "c2")
31 addContainer(t, tx, nodeID2, "c3")
32
33 addContainerConfig(t, tx, "c2", "x", "y")
34 addContainerConfig(t, tx, "c3", "z", "w")
35 addContainerConfig(t, tx, "c3", "a", "b")
36
37 addContainerDevice(t, tx, "c2", "eth0", "nic", nil)
38 addContainerDevice(t, tx, "c3", "root", "disk", map[string]string{"x": "y"})
39
40 instType := instancetype.Container
41 containers, err := cluster.GetInstances(context.TODO(), tx.Tx(), cluster.InstanceFilter{Type: &instType})
42 require.NoError(t, err)
43 assert.Len(t, containers, 3)
44
45 c1 := containers[0]
46 c1Devices, err := cluster.GetInstanceDevices(context.TODO(), tx.Tx(), c1.ID)
47 require.NoError(t, err)
48 c1Config, err := cluster.GetInstanceConfig(context.TODO(), tx.Tx(), c1.ID)
49 require.NoError(t, err)
50
51 assert.Equal(t, "c1", c1.Name)
52 assert.Equal(t, "node2", c1.Node)
53 assert.Equal(t, map[string]string{}, c1Config)
54 assert.Len(t, c1Devices, 0)
55
56 c2 := containers[1]
57 c2Devices, err := cluster.GetInstanceDevices(context.TODO(), tx.Tx(), c2.ID)
58 require.NoError(t, err)
59 c2Config, err := cluster.GetInstanceConfig(context.TODO(), tx.Tx(), c2.ID)
60 require.NoError(t, err)
61 assert.Equal(t, "c2", c2.Name)
62 assert.Equal(t, map[string]string{"x": "y"}, c2Config)
63 assert.Equal(t, "none", c2.Node)
64 assert.Len(t, c2Devices, 1)
65 assert.Equal(t, "eth0", c2Devices["eth0"].Name)
66 assert.Equal(t, "nic", c2Devices["eth0"].Type.String())
67
68 c3 := containers[2]
69 c3Devices, err := cluster.GetInstanceDevices(context.TODO(), tx.Tx(), c3.ID)
70 require.NoError(t, err)
71 c3Config, err := cluster.GetInstanceConfig(context.TODO(), tx.Tx(), c3.ID)
72 require.NoError(t, err)
73 assert.Equal(t, "c3", c3.Name)
74 assert.Equal(t, map[string]string{"z": "w", "a": "b"}, c3Config)
75 assert.Equal(t, "node2", c3.Node)
76 assert.Len(t, c3Devices, 1)
77 assert.Equal(t, "root", c3Devices["root"].Name)

Callers

nothing calls this directly

Calls 11

NewTestClusterTxFunction · 0.92
GetInstancesFunction · 0.92
GetInstanceDevicesFunction · 0.92
GetInstanceConfigFunction · 0.92
addContainerFunction · 0.85
addContainerConfigFunction · 0.85
addContainerDeviceFunction · 0.85
CreateNodeMethod · 0.80
TxMethod · 0.80
StringMethod · 0.65
LenMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…