Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Chu Peng 楚鹏
minikube
提交
af8fdc65
M
minikube
项目概览
Chu Peng 楚鹏
/
minikube
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
minikube
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
af8fdc65
编写于
4月 01, 2020
作者:
T
Thomas Stromberg
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Make live cache pushes non-fatal in case of stop/delete race
上级
f5d428e5
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
29 addition
and
7 deletion
+29
-7
pkg/minikube/machine/cache_images.go
pkg/minikube/machine/cache_images.go
+29
-7
未找到文件。
pkg/minikube/machine/cache_images.go
浏览文件 @
af8fdc65
...
...
@@ -21,6 +21,7 @@ import (
"os"
"path"
"path/filepath"
"strings"
"sync"
"time"
...
...
@@ -158,36 +159,51 @@ func needsTransfer(imgClient *client.Client, imgName string, cr cruntime.Manager
// CacheAndLoadImages caches and loads images to all profiles
func
CacheAndLoadImages
(
images
[]
string
)
error
{
// This is the most important thing
if
err
:=
image
.
SaveToDir
(
images
,
constants
.
ImageCacheDir
);
err
!=
nil
{
return
err
return
err
ors
.
Wrap
(
err
,
"save to dir"
)
}
api
,
err
:=
NewAPIClient
()
if
err
!=
nil
{
return
err
return
err
ors
.
Wrap
(
err
,
"api"
)
}
defer
api
.
Close
()
profiles
,
_
,
err
:=
config
.
ListProfiles
()
// need to load image to all profiles
if
err
!=
nil
{
return
errors
.
Wrap
(
err
,
"list profiles"
)
}
succeeded
:=
[]
string
{}
failed
:=
[]
string
{}
for
_
,
p
:=
range
profiles
{
// loading images to all running profiles
pName
:=
p
.
Name
// capture the loop variable
c
,
err
:=
config
.
Load
(
pName
)
if
err
!=
nil
{
return
err
// Non-fatal because it may race with profile deletion
glog
.
Errorf
(
"Failed to load profile %q: %v"
,
pName
,
err
)
failed
=
append
(
failed
,
pName
)
continue
}
for
_
,
n
:=
range
c
.
Nodes
{
m
:=
driver
.
MachineName
(
*
c
,
n
)
status
,
err
:=
Status
(
api
,
m
)
if
err
!=
nil
{
glog
.
Warningf
(
"skipping loading cache for profile %s"
,
pName
)
glog
.
Errorf
(
"error getting status for %s: %v"
,
pName
,
err
)
continue
// try next machine
failed
=
append
(
failed
,
pName
)
continue
}
if
status
==
state
.
Running
.
String
()
{
// the not running hosts will load on next start
h
,
err
:=
api
.
Load
(
m
)
if
err
!=
nil
{
return
err
glog
.
Errorf
(
"Failed to load machine %q: %v"
,
m
,
err
)
failed
=
append
(
failed
,
pName
)
continue
}
cr
,
err
:=
CommandRunner
(
h
)
if
err
!=
nil
{
...
...
@@ -195,12 +211,18 @@ func CacheAndLoadImages(images []string) error {
}
err
=
LoadImages
(
c
,
cr
,
images
,
constants
.
ImageCacheDir
)
if
err
!=
nil
{
failed
=
append
(
failed
,
pName
)
glog
.
Warningf
(
"Failed to load cached images for profile %s. make sure the profile is running. %v"
,
pName
,
err
)
}
succeeded
=
append
(
succeeded
,
pName
)
}
}
}
return
err
glog
.
Infof
(
"succeeded pushing to: "
,
strings
.
Join
(
succeeded
,
" "
))
glog
.
Infof
(
"failed pushing to: "
,
strings
.
Join
(
failed
,
" "
))
// Live pushes are not considered a failure
return
nil
}
// transferAndLoadImage transfers and loads a single image from the cache
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录