@@ -2,7 +2,6 @@ package main
2
2
3
3
import (
4
4
"fmt"
5
- "math/rand"
6
5
"os"
7
6
"path/filepath"
8
7
"strconv"
@@ -12,17 +11,16 @@ import (
12
11
models "github.com/firecracker-microvm/firecracker-go-sdk/client/models"
13
12
)
14
13
15
- // Converts options to a usable firecracker config
16
- func getFirecrackerConfig () (firecracker.Config , error ) {
17
- socket := getSocketPath ()
14
+ func getFirecrackerConfig (vmmID string ) (firecracker.Config , error ) {
15
+ socket := getSocketPath (vmmID )
18
16
return firecracker.Config {
19
17
SocketPath : socket ,
20
18
KernelImagePath : "../../linux/vmlinux" ,
21
19
LogPath : fmt .Sprintf ("%s.log" , socket ),
22
20
Drives : []models.Drive {{
23
21
DriveID : firecracker .String ("1" ),
24
22
// TODO: copy base rootfs and use a temp roots per VM
25
- PathOnHost : firecracker .String ("../agent /rootfs.ext4" ),
23
+ PathOnHost : firecracker .String ("/tmp /rootfs-" + vmmID + " .ext4" ),
26
24
IsRootDevice : firecracker .Bool (true ),
27
25
IsReadOnly : firecracker .Bool (false ),
28
26
RateLimiter : firecracker .NewRateLimiter (
@@ -54,11 +52,12 @@ func getFirecrackerConfig() (firecracker.Config, error) {
54
52
}, nil
55
53
}
56
54
57
- func getSocketPath () string {
55
+ func getSocketPath (vmmID string ) string {
58
56
filename := strings .Join ([]string {
59
57
".firecracker.sock" ,
60
58
strconv .Itoa (os .Getpid ()),
61
- strconv .Itoa (rand .Intn (10000 ))},
59
+ vmmID ,
60
+ },
62
61
"-" ,
63
62
)
64
63
dir := os .TempDir ()
0 commit comments