1
0
mirror of https://github.com/docker/cli.git synced 2026-01-16 20:22:36 +03:00

Container.SetUserData() and GetUserData(): attach optional user data to a container

Upstream-commit: 11b65a00c66422a11d114260057384c59f5be4e2
Component: engine
This commit is contained in:
Solomon Hykes
2013-01-25 14:39:02 -08:00
parent 05f939e0c7
commit 10dcbda36f

View File

@@ -77,6 +77,50 @@ func loadContainer(containerPath string) (*Container, error) {
return container, nil
}
func (container *Container) loadUserData() (map[string]string, error) {
jsonData, err := ioutil.ReadFile(path.Join(container.Root, "userdata.json"))
if err != nil {
if os.IsNotExist(err) {
return make(map[string]string), nil
}
return nil, err
}
data := make(map[string]string)
if err := json.Unmarshal(jsonData, &data); err != nil {
return nil, err
}
return data, nil
}
func (container *Container) saveUserData(data map[string]string) error {
jsonData, err := json.Marshal(data)
if err != nil {
return err
}
return ioutil.WriteFile(path.Join(container.Root, "userdata.json"), jsonData, 0700)
}
func (container *Container) SetUserData(key, value string) error {
data, err := container.loadUserData()
if err != nil {
return err
}
data[key] = value
return container.saveUserData(data)
}
func (container *Container) GetUserData(key string) (string) {
data, err := container.loadUserData()
if err != nil {
return ""
}
if value, exists := data[key]; exists {
return value
}
return ""
}
func (container *Container) save() (err error) {
data, err := json.Marshal(container)
if err != nil {