Skip to content

Commit 86fc3b9

Browse files
committed
backend config for media control
1 parent 1ead8ef commit 86fc3b9

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

server/proto/vm.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ type DeleteScriptReq struct {
5757

5858
type GetVirtualDeviceRsp struct {
5959
Network bool `json:"network"`
60+
Media bool `json:"media"`
6061
Disk bool `json:"disk"`
6162
}
6263

server/service/vm/virtual-device.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414

1515
const (
1616
virtualNetwork = "/boot/usb.rndis0"
17+
virtualMedia = "/boot/usb.disk0"
1718
virtualDisk = "/boot/usb.disk1"
1819
)
1920

@@ -31,6 +32,19 @@ var (
3132
"/etc/init.d/S03usbdev start",
3233
}
3334

35+
mountMediaCommands = []string{
36+
"touch /boot/usb.disk0",
37+
"/etc/init.d/S03usbdev stop",
38+
"/etc/init.d/S03usbdev start",
39+
}
40+
41+
unmountMediaCommands = []string{
42+
"/etc/init.d/S03usbdev stop",
43+
"rm -rf /sys/kernel/config/usb_gadget/g0/configs/c.1/mass_storage.disk0",
44+
"rm /boot/usb.disk0",
45+
"/etc/init.d/S03usbdev start",
46+
}
47+
3448
mountDiskCommands = []string{
3549
"touch /boot/usb.disk1",
3650
"/etc/init.d/S03usbdev stop",
@@ -49,10 +63,12 @@ func (s *Service) GetVirtualDevice(c *gin.Context) {
4963
var rsp proto.Response
5064

5165
network, _ := isDeviceExist(virtualNetwork)
66+
media, _ := isDeviceExist(virtualMedia)
5267
disk, _ := isDeviceExist(virtualDisk)
5368

5469
rsp.OkRspWithData(c, &proto.GetVirtualDeviceRsp{
5570
Network: network,
71+
Media: media,
5672
Disk: disk,
5773
})
5874
log.Debugf("get virtual device success")
@@ -80,6 +96,15 @@ func (s *Service) UpdateVirtualDevice(c *gin.Context) {
8096
} else {
8197
commands = unmountNetworkCommands
8298
}
99+
case "media":
100+
device = virtualMedia
101+
102+
exist, _ := isDeviceExist(device)
103+
if !exist {
104+
commands = mountMediaCommands
105+
} else {
106+
commands = unmountMediaCommands
107+
}
83108
case "disk":
84109
device = virtualDisk
85110

0 commit comments

Comments
 (0)