mirror of
https://github.com/podman-container-tools/podman.git
synced 2026-08-30 04:07:53 +00:00
With the advent of Podman 2.0.0 we crossed the magical barrier of go modules. While we were able to continue importing all packages inside of the project, the project could not be vendored anymore from the outside. Move the go module to new major version and change all imports to github.com/containers/libpod/v2. The renaming of the imports was done via gomove [1]. [1] https://github.com/KSubedi/gomove Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
53 lines
1.4 KiB
Go
53 lines
1.4 KiB
Go
package containers
|
|
|
|
import (
|
|
"context"
|
|
"net/http"
|
|
|
|
"github.com/containers/libpod/v2/pkg/bindings"
|
|
)
|
|
|
|
// Mount mounts an existing container to the filesystem. It returns the path
|
|
// of the mounted container in string format.
|
|
func Mount(ctx context.Context, nameOrID string) (string, error) {
|
|
conn, err := bindings.GetClient(ctx)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
var (
|
|
path string
|
|
)
|
|
response, err := conn.DoRequest(nil, http.MethodPost, "/containers/%s/mount", nil, nil, nameOrID)
|
|
if err != nil {
|
|
return path, err
|
|
}
|
|
return path, response.Process(&path)
|
|
}
|
|
|
|
// Unmount unmounts a container from the filesystem. The container must not be running
|
|
// or the unmount will fail.
|
|
func Unmount(ctx context.Context, nameOrID string) error {
|
|
conn, err := bindings.GetClient(ctx)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
response, err := conn.DoRequest(nil, http.MethodPost, "/containers/%s/unmount", nil, nil, nameOrID)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return response.Process(nil)
|
|
}
|
|
|
|
// GetMountedContainerPaths returns a map of mounted containers and their mount locations.
|
|
func GetMountedContainerPaths(ctx context.Context) (map[string]string, error) {
|
|
conn, err := bindings.GetClient(ctx)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
mounts := make(map[string]string)
|
|
response, err := conn.DoRequest(nil, http.MethodGet, "/containers/showmounted", nil, nil)
|
|
if err != nil {
|
|
return mounts, err
|
|
}
|
|
return mounts, response.Process(&mounts)
|
|
}
|