Add Devfs_ruleset property to reflect generated RS
This commit is contained in:
@ -273,6 +273,7 @@ func listJailsFromDirectory(dir string, dsname string) ([]Jail, error) {
|
||||
j.JID = rj.Jid
|
||||
j.Running = true
|
||||
j.InternalName = rj.Name
|
||||
j.Devfs_ruleset = rj.Devfs_ruleset
|
||||
break
|
||||
}
|
||||
}
|
||||
|
@ -14,7 +14,7 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
gVersion = "0.30"
|
||||
gVersion = "0.31"
|
||||
|
||||
// TODO : Get from $jail_zpool/defaults.json
|
||||
MIN_DYN_DEVFS_RULESET = 1000
|
||||
|
@ -1331,8 +1331,9 @@ func StartJail(args []string) {
|
||||
fmt.Printf(" > Start jail: OK\n")
|
||||
fmt.Printf(" > With devfs ruleset %d\n", dynrs)
|
||||
|
||||
// Update running state and JID
|
||||
// Update running state, JID and Devfs_ruleset
|
||||
cj.Running = true
|
||||
cj.Devfs_ruleset = dynrs
|
||||
rjails, err := jail.GetJails()
|
||||
if err != nil {
|
||||
fmt.Printf("Error: Unable to list running jails\n")
|
||||
|
18
cmd/stop.go
18
cmd/stop.go
@ -286,20 +286,13 @@ func StopJail(args []string) {
|
||||
fmt.Printf(" > Destroy VNet interfaces: OK\n")
|
||||
}
|
||||
}
|
||||
|
||||
// Get currently used ruleset from /var/run/jail.$internal_name.conf
|
||||
ruleset, err := getValueFromRunningConfig(cj.InternalName, "devfs_ruleset")
|
||||
if err != nil {
|
||||
fmt.Printf("ERROR getting current devfs ruleset: %s\n", err.Error())
|
||||
return
|
||||
}
|
||||
rsi, _ := strconv.Atoi(ruleset)
|
||||
fmt.Printf(" > Remove devfs ruleset %d: \n", rsi)
|
||||
err = deleteDevfsRuleset(rsi)
|
||||
|
||||
fmt.Printf(" > Remove devfs ruleset %d: \n", cj.Devfs_ruleset)
|
||||
err = deleteDevfsRuleset(cj.Devfs_ruleset)
|
||||
if err != nil {
|
||||
fmt.Printf("ERROR: %s\n", err.Error())
|
||||
} else {
|
||||
fmt.Printf(" > Remove devfsruleset %d: OK\n", rsi)
|
||||
fmt.Printf(" > Remove devfsruleset %d: OK\n", cj.Devfs_ruleset)
|
||||
}
|
||||
|
||||
fmt.Printf(" > Stop jail %s:\n", cj.Name)
|
||||
@ -401,6 +394,9 @@ func StopJail(args []string) {
|
||||
if err = setStructFieldValue(&gJails[i], "InternalName", ""); err != nil {
|
||||
fmt.Printf("ERROR: clearing InternalName property: %s\n", err.Error())
|
||||
}
|
||||
if err = setStructFieldValue(&gJails[i], "Devfs_ruleset", "0"); err != nil {
|
||||
fmt.Printf("ERROR: setting Devfs_ruleset property to 0: %s\n", err.Error())
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -27,6 +27,7 @@ type Jail struct {
|
||||
Running bool
|
||||
// No need, Config.Release always represent what is running (plus it know release for non-running jails)
|
||||
//Release string
|
||||
Devfs_ruleset int // The effective devfs ruleset generated at runtime
|
||||
Zpool string
|
||||
Datastore string
|
||||
}
|
||||
@ -247,6 +248,8 @@ type JailSort struct {
|
||||
DatastoreDec jailLessFunc
|
||||
ZpoolInc jailLessFunc
|
||||
ZpoolDec jailLessFunc
|
||||
Devfs_rulesetInc jailLessFunc
|
||||
Devfs_rulesetDec jailLessFunc
|
||||
Config JailConfigSort
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user