Fix #I4KI81 reason: modify kata-containers version and update it to 1.11.1 Signed-off-by: holyfei <yangfeiyu20092010@163.com>
99 lines
2.7 KiB
Diff
99 lines
2.7 KiB
Diff
From fd63d26a5b0542f35d61b0c19c80795f052b4518 Mon Sep 17 00:00:00 2001
|
|
From: jiangpengfei <jiangpengfei9@huawei.com>
|
|
Date: Tue, 28 Jul 2020 22:05:44 +0800
|
|
Subject: [PATCH 13/50] kata-runtime: get container info by containerID prefix
|
|
|
|
reason: get container info by containerID prefix, so we just
|
|
need to input the prefix containerID when call kata-runtime
|
|
subcommand
|
|
|
|
Signed-off-by: jiangpengfei <jiangpengfei9@huawei.com>
|
|
---
|
|
cli/oci.go | 35 +++++++++++++++++++++++++++++++++++
|
|
pkg/katautils/oci.go | 5 +++++
|
|
2 files changed, 40 insertions(+)
|
|
|
|
diff --git a/cli/oci.go b/cli/oci.go
|
|
index 8ffac2df..bf962d03 100644
|
|
--- a/cli/oci.go
|
|
+++ b/cli/oci.go
|
|
@@ -9,6 +9,7 @@ import (
|
|
"bufio"
|
|
"context"
|
|
"fmt"
|
|
+ "io/ioutil"
|
|
"net"
|
|
"os"
|
|
"path/filepath"
|
|
@@ -25,6 +26,8 @@ const (
|
|
// Filesystem type corresponding to CGROUP_SUPER_MAGIC as listed
|
|
// here: http://man7.org/linux/man-pages/man2/statfs.2.html
|
|
cgroupFsType = 0x27e0eb
|
|
+
|
|
+ maxIDLength = 64
|
|
)
|
|
|
|
var cgroupsDirPath string
|
|
@@ -38,6 +41,14 @@ func getContainerInfo(ctx context.Context, containerID string) (vc.ContainerStat
|
|
return vc.ContainerStatus{}, "", fmt.Errorf("Missing container ID")
|
|
}
|
|
|
|
+ if len(containerID) < maxIDLength {
|
|
+ fullContainerID, err := getContainerIDbyPrefix(containerID)
|
|
+ if err != nil {
|
|
+ return vc.ContainerStatus{}, "", err
|
|
+ }
|
|
+ containerID = fullContainerID
|
|
+ }
|
|
+
|
|
sandboxID, err := katautils.FetchContainerIDMapping(containerID)
|
|
if err != nil {
|
|
return vc.ContainerStatus{}, "", err
|
|
@@ -211,3 +222,27 @@ func getCgroupsDirPath(mountInfoFile string) (string, error) {
|
|
|
|
return cgroupRootPath, nil
|
|
}
|
|
+
|
|
+func getContainerIDbyPrefix(prefix string) (string, error) {
|
|
+ files, err := ioutil.ReadDir(katautils.GetCtrsMapTreePath())
|
|
+ if err != nil {
|
|
+ return "", err
|
|
+ }
|
|
+
|
|
+ containers := []string{}
|
|
+ for _, file := range files {
|
|
+ if file.IsDir() && strings.HasPrefix(file.Name(), prefix) {
|
|
+ containers = append(containers, file.Name())
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if len(containers) == 0 {
|
|
+ return "", fmt.Errorf("no such container ID (%v)", prefix)
|
|
+ }
|
|
+
|
|
+ if len(containers) > 1 {
|
|
+ return "", fmt.Errorf("multiple containers found (%v)", prefix)
|
|
+ }
|
|
+
|
|
+ return containers[0], nil
|
|
+}
|
|
diff --git a/pkg/katautils/oci.go b/pkg/katautils/oci.go
|
|
index 6de8101e..1334af35 100644
|
|
--- a/pkg/katautils/oci.go
|
|
+++ b/pkg/katautils/oci.go
|
|
@@ -25,6 +25,11 @@ func SetCtrsMapTreePath(path string) {
|
|
ctrsMapTreePath = path
|
|
}
|
|
|
|
+// GetCtrsMapTreePath return the containerID to SandboxID mapping dir
|
|
+func GetCtrsMapTreePath() string {
|
|
+ return ctrsMapTreePath
|
|
+}
|
|
+
|
|
// doUpdatePath returns whether a ctrsMapTreePath needs to be updated with a rootless prefix
|
|
func doUpdatePath() bool {
|
|
return rootless.IsRootless() && !strings.HasPrefix(ctrsMapTreePath, rootless.GetRootlessDir())
|
|
--
|
|
2.14.3 (Apple Git-98)
|
|
|