diff --git a/vendor/github.com/google/cadvisor/container/docker/factory.go b/vendor/github.com/google/cadvisor/container/docker/factory.go index f0118166..d555d8b2 100644 --- a/vendor/github.com/google/cadvisor/container/docker/factory.go +++ b/vendor/github.com/google/cadvisor/container/docker/factory.go @@ -104,6 +104,7 @@ const ( overlay2StorageDriver storageDriver = "overlay2" zfsStorageDriver storageDriver = "zfs" vfsStorageDriver storageDriver = "vfs" + nydusStorageDriver storageDriver = "nydus" ) type dockerFactory struct { diff --git a/vendor/github.com/google/cadvisor/container/docker/handler.go b/vendor/github.com/google/cadvisor/container/docker/handler.go index e2c904ca..d78059f6 100644 --- a/vendor/github.com/google/cadvisor/container/docker/handler.go +++ b/vendor/github.com/google/cadvisor/container/docker/handler.go @@ -151,9 +151,12 @@ func newDockerContainerHandler( // FIXME: Give `otherStorageDir` a more descriptive name. otherStorageDir := path.Join(storageDir, pathToContainersDir, id) - rwLayerID, err := getRwLayerID(id, storageDir, storageDriver, dockerVersion) - if err != nil { - return nil, err + rwLayerID := "" + if storageDriver != nydusStorageDriver { + rwLayerID, err = getRwLayerID(id, storageDir, storageDriver, dockerVersion) + if err != nil { + return nil, err + } } // Determine the rootfs storage dir OR the pool name to determine the device. @@ -179,6 +182,8 @@ func newDockerContainerHandler( } zfsParent = status.DriverStatus[dockerutil.DriverStatusParentDataset] zfsFilesystem = path.Join(zfsParent, rwLayerID) + case nydusStorageDriver: + rootfsStorageDir = path.Join(storageDir, "rootfs", string(storageDriver), id) } // We assume that if Inspect fails then the container is not known to docker.