12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- // +build windows
- /*
- Copyright 2016 The Kubernetes Authors.
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- */
- package dockershim
- import (
- "context"
- "time"
- "k8s.io/klog"
- runtimeapi "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
- "k8s.io/kubernetes/pkg/kubelet/winstats"
- )
- // ImageFsInfo returns information of the filesystem that is used to store images.
- func (ds *dockerService) ImageFsInfo(_ context.Context, _ *runtimeapi.ImageFsInfoRequest) (*runtimeapi.ImageFsInfoResponse, error) {
- info, err := ds.client.Info()
- if err != nil {
- klog.Errorf("Failed to get docker info: %v", err)
- return nil, err
- }
- statsClient := &winstats.StatsClient{}
- fsinfo, err := statsClient.GetDirFsInfo(info.DockerRootDir)
- if err != nil {
- klog.Errorf("Failed to get dir fsInfo for %q: %v", info.DockerRootDir, err)
- return nil, err
- }
- filesystems := []*runtimeapi.FilesystemUsage{
- {
- Timestamp: time.Now().UnixNano(),
- UsedBytes: &runtimeapi.UInt64Value{Value: fsinfo.Usage},
- FsId: &runtimeapi.FilesystemIdentifier{
- Mountpoint: info.DockerRootDir,
- },
- },
- }
- return &runtimeapi.ImageFsInfoResponse{ImageFilesystems: filesystems}, nil
- }
|