Skip to content

Commit 3d439a9

Browse files
committed
Fix#488 remove namespace directory
Signed-off-by: Royce Zhao <[email protected]>
1 parent 621e875 commit 3d439a9

File tree

4 files changed

+21
-15
lines changed

4 files changed

+21
-15
lines changed

internal/vm/dir.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ func shimDir(varRunDir, namespace, vmID string) (Dir, error) {
4949
return "", errors.Wrapf(err, "failed evaluating any symlinks in path %q", varRunDir)
5050
}
5151

52-
return Dir(filepath.Join(resolvedVarRunDir, namespace, vmID)), nil
52+
return Dir(filepath.Join(resolvedVarRunDir, namespace+"#"+vmID)), nil
5353
}
5454

5555
// Dir represents the root of a firecracker-containerd VM directory, which

internal/vm/dir_test.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,11 @@ func TestShimDir(t *testing.T) {
4848
{name: "id with ?", ns: "test", id: "?", outErr: `invalid vm id: identifier "?" must match`},
4949
{name: "id with *", ns: "test", id: "*", outErr: `invalid vm id: identifier "*" must match`},
5050
{name: "id with ,", ns: "test", id: ",", outErr: `invalid vm id: identifier "," must match`},
51-
{name: "valid", ns: "ns", id: "1", outDir: "ns/1"},
52-
{name: "valid with dashes", ns: "test-123", id: "123-456", outDir: "test-123/123-456"},
53-
{name: "valid with dots", ns: "test.123", id: "123.456", outDir: "test.123/123.456"},
51+
{name: "valid", ns: "ns", id: "1", outDir: "ns#1"},
52+
{name: "valid with dashes", ns: "test-123", id: "123-456", outDir: "test-123#123-456"},
53+
{name: "valid with dots", ns: "test.123", id: "123.456", outDir: "test.123#123.456"},
54+
{name: "ns with aaa", ns: "aaa", id: "bbb-ccc", outDir: "aaa#bbb-ccc"},
55+
{name: "ns with aaa-bbb", ns: "aaa-bbb", id: "ccc", outDir: "aaa-bbb#ccc"},
5456
}
5557

5658
for _, tc := range tests {

runtime/jailer_integ_test.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ func testJailer(t *testing.T, jailerConfig *proto.JailerConfig) {
138138
stdout := startAndWaitTask(ctx, t, c)
139139
require.Equal("hello\nadditional drive\n", stdout)
140140

141-
stat, err := os.Stat(filepath.Join(shimBaseDir(), "default", vmID))
141+
stat, err := os.Stat(filepath.Join(shimBaseDir(), "default#"+vmID))
142142
require.NoError(err)
143143
assert.True(t, stat.IsDir())
144144

@@ -148,9 +148,13 @@ func testJailer(t *testing.T, jailerConfig *proto.JailerConfig) {
148148
_, err = fcClient.StopVM(ctx, &proto.StopVMRequest{VMID: vmID})
149149
require.NoError(err)
150150

151-
_, err = os.Stat(filepath.Join(shimBaseDir(), "default", vmID))
151+
_, err = os.Stat(filepath.Join(shimBaseDir(), "default#"+vmID))
152152
assert.Error(t, err)
153153
assert.True(t, os.IsNotExist(err))
154+
155+
shimContents, err := ioutil.ReadDir(shimBaseDir())
156+
require.NoError(err)
157+
assert.Len(t, shimContents, 0)
154158
}
155159

156160
func TestJailerCPUSet_Isolated(t *testing.T) {

runtime/service_integ_test.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -191,10 +191,9 @@ func TestShimExitsUponContainerDelete_Isolated(t *testing.T) {
191191

192192
cfg, err := config.LoadConfig("")
193193
require.NoError(t, err, "failed to load config")
194-
namespaceShimBaseDir := filepath.Join(cfg.ShimBaseDir, namespaces.Default)
195-
varRunFCContents, err := ioutil.ReadDir(namespaceShimBaseDir)
196-
require.NoError(t, err, `failed to list directory "%s"`, namespaceShimBaseDir)
197-
require.Len(t, varRunFCContents, 0, "expect %s to be cleared after shims shutdown", namespaceShimBaseDir)
194+
varRunFCContents, err := ioutil.ReadDir(cfg.ShimBaseDir)
195+
require.NoError(t, err, `failed to list directory "%s"`, cfg.ShimBaseDir)
196+
require.Len(t, varRunFCContents, 0, "expect %s to be empty", cfg.ShimBaseDir)
198197
case err = <-exitEventErrCh:
199198
require.Fail(t, "unexpected error", "unexpectedly received on task exit error channel: %s", err.Error())
200199
case <-testCtx.Done():
@@ -379,11 +378,12 @@ func TestMultipleVMs_Isolated(t *testing.T) {
379378
require.NoError(t, err, "failed to get VM Info for VM %d", vmID)
380379
require.Equal(t, vmInfoResp.VMID, strconv.Itoa(vmID))
381380

381+
nspVMid := defaultNamespace + "#" + strconv.Itoa(vmID)
382382
cfg, err := config.LoadConfig("")
383383
require.NoError(t, err, "failed to load config")
384-
require.Equal(t, vmInfoResp.SocketPath, filepath.Join(cfg.ShimBaseDir, defaultNamespace, strconv.Itoa(vmID), "firecracker.sock"))
385-
require.Equal(t, vmInfoResp.LogFifoPath, filepath.Join(cfg.ShimBaseDir, defaultNamespace, strconv.Itoa(vmID), "fc-logs.fifo"))
386-
require.Equal(t, vmInfoResp.MetricsFifoPath, filepath.Join(cfg.ShimBaseDir, defaultNamespace, strconv.Itoa(vmID), "fc-metrics.fifo"))
384+
require.Equal(t, vmInfoResp.SocketPath, filepath.Join(cfg.ShimBaseDir, nspVMid, "firecracker.sock"))
385+
require.Equal(t, vmInfoResp.LogFifoPath, filepath.Join(cfg.ShimBaseDir, nspVMid, "fc-logs.fifo"))
386+
require.Equal(t, vmInfoResp.MetricsFifoPath, filepath.Join(cfg.ShimBaseDir, nspVMid, "fc-metrics.fifo"))
387387
require.Equal(t, resp.CgroupPath, vmInfoResp.CgroupPath)
388388

389389
// just verify that updating the metadata doesn't return an error, a separate test case is needed
@@ -867,7 +867,7 @@ func testCreateContainerWithSameName(t *testing.T, vmID string) {
867867
require.NoError(t, err, "failed to load config")
868868

869869
if len(vmID) != 0 {
870-
shimPath := fmt.Sprintf("%s/default/%s/%s", cfg.ShimBaseDir, vmID, containerName)
870+
shimPath := fmt.Sprintf("%s/default#%s/%s/%s", cfg.ShimBaseDir, vmID, vmID, containerName)
871871
_, err = os.Stat(shimPath)
872872
require.True(t, os.IsNotExist(err))
873873
}
@@ -889,7 +889,7 @@ func testCreateContainerWithSameName(t *testing.T, vmID string) {
889889
require.True(t, os.IsNotExist(err))
890890

891891
if len(vmID) != 0 {
892-
shimPath := fmt.Sprintf("%s/default/%s/%s", cfg.ShimBaseDir, vmID, containerName)
892+
shimPath := fmt.Sprintf("%s/default#%s/%s/%s", cfg.ShimBaseDir, vmID, vmID, containerName)
893893
_, err = os.Stat(shimPath)
894894
require.True(t, os.IsNotExist(err))
895895
}

0 commit comments

Comments
 (0)