Add version to HookState to make it json-compatible with spec State

Signed-off-by: Mrunal Patel <mrunalp@gmail.com>
This commit is contained in:
Mrunal Patel 2015-09-23 17:13:00 -07:00
parent 9964fcde37
commit dcafe48737
4 changed files with 15 additions and 8 deletions

View File

@ -173,6 +173,9 @@ type Config struct {
// Hooks are a collection of actions to perform at various container lifecycle events. // Hooks are a collection of actions to perform at various container lifecycle events.
// Hooks are not able to be marshaled to json but they are also not needed to. // Hooks are not able to be marshaled to json but they are also not needed to.
Hooks *Hooks `json:"-"` Hooks *Hooks `json:"-"`
// Version is the version of opencontainer specification that is supported.
Version string `json:"version"`
} }
type Hooks struct { type Hooks struct {
@ -186,6 +189,7 @@ type Hooks struct {
// HookState is the payload provided to a hook on execution. // HookState is the payload provided to a hook on execution.
type HookState struct { type HookState struct {
Version string `json:"version"`
ID string `json:"id"` ID string `json:"id"`
Pid int `json:"pid"` Pid int `json:"pid"`
Root string `json:"root"` Root string `json:"root"`

View File

@ -250,6 +250,7 @@ func (c *linuxContainer) Destroy() error {
c.initProcess = nil c.initProcess = nil
if c.config.Hooks != nil { if c.config.Hooks != nil {
s := configs.HookState{ s := configs.HookState{
Version: c.config.Version,
ID: c.id, ID: c.id,
Root: c.config.Rootfs, Root: c.config.Rootfs,
} }

View File

@ -203,6 +203,7 @@ func (p *initProcess) start() (err error) {
}() }()
if p.config.Config.Hooks != nil { if p.config.Config.Hooks != nil {
s := configs.HookState{ s := configs.HookState{
Version: p.container.config.Version,
ID: p.container.id, ID: p.container.id,
Pid: p.pid(), Pid: p.pid(),
Root: p.config.Config.Rootfs, Root: p.config.Config.Rootfs,

View File

@ -392,6 +392,7 @@ func createLibcontainerConfig(cgroupName string, spec *specs.LinuxSpec, rspec *s
config.ProcessLabel = rspec.Linux.SelinuxProcessLabel config.ProcessLabel = rspec.Linux.SelinuxProcessLabel
config.AppArmorProfile = rspec.Linux.ApparmorProfile config.AppArmorProfile = rspec.Linux.ApparmorProfile
createHooks(rspec, config) createHooks(rspec, config)
config.Version = specs.Version
return config, nil return config, nil
} }