Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Chu Peng 楚鹏
minikube
提交
d5640561
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 搜索 >>
提交
d5640561
编写于
3月 22, 2018
作者:
M
Matt Rickard
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
vendor: update docker-machine for hyper-v fix
上级
24f052a8
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
201 addition
and
132 deletion
+201
-132
Godeps/Godeps.json
Godeps/Godeps.json
+71
-76
vendor/github.com/docker/machine/drivers/hyperv/hyperv.go
vendor/github.com/docker/machine/drivers/hyperv/hyperv.go
+17
-17
vendor/github.com/docker/machine/drivers/hyperv/powershell.go
...or/github.com/docker/machine/drivers/hyperv/powershell.go
+1
-1
vendor/github.com/docker/machine/libmachine/cert/bootstrap.go
...or/github.com/docker/machine/libmachine/cert/bootstrap.go
+87
-38
vendor/github.com/docker/machine/libmachine/cert/cert.go
vendor/github.com/docker/machine/libmachine/cert/cert.go
+25
-0
未找到文件。
Godeps/Godeps.json
浏览文件 @
d5640561
{
"ImportPath"
:
"k8s.io/minikube"
,
"GoVersion"
:
"go1.
9
"
,
"GoVersion"
:
"go1.
10
"
,
"GodepVersion"
:
"v79"
,
"Packages"
:
[
"./..."
...
...
@@ -1161,17 +1161,17 @@
},
{
"ImportPath"
:
"github.com/docker/go-connections/nat"
,
"Comment"
:
"v0.
3.0
"
,
"Comment"
:
"v0.
2.1-30-g3ede32e
"
,
"Rev"
:
"3ede32e2033de7505e6500d6c868c2b9ed9f169d"
},
{
"ImportPath"
:
"github.com/docker/go-connections/sockets"
,
"Comment"
:
"v0.
3.0
"
,
"Comment"
:
"v0.
2.1-30-g3ede32e
"
,
"Rev"
:
"3ede32e2033de7505e6500d6c868c2b9ed9f169d"
},
{
"ImportPath"
:
"github.com/docker/go-connections/tlsconfig"
,
"Comment"
:
"v0.
3.0
"
,
"Comment"
:
"v0.
2.1-30-g3ede32e
"
,
"Rev"
:
"3ede32e2033de7505e6500d6c868c2b9ed9f169d"
},
{
...
...
@@ -1190,163 +1190,163 @@
},
{
"ImportPath"
:
"github.com/docker/machine/commands/mcndirs"
,
"Comment"
:
"docs-v0.8.2-2016-09-26-3
51-ga950319e
"
,
"Rev"
:
"
a950319ea4041615add4a243e684b1baadb6436f
"
"Comment"
:
"docs-v0.8.2-2016-09-26-3
66-ge501d1bc
"
,
"Rev"
:
"
e501d1bcb54f09de8ff71aa20010321d18425d19
"
},
{
"ImportPath"
:
"github.com/docker/machine/drivers/errdriver"
,
"Comment"
:
"docs-v0.8.2-2016-09-26-3
51-ga950319e
"
,
"Rev"
:
"
a950319ea4041615add4a243e684b1baadb6436f
"
"Comment"
:
"docs-v0.8.2-2016-09-26-3
66-ge501d1bc
"
,
"Rev"
:
"
e501d1bcb54f09de8ff71aa20010321d18425d19
"
},
{
"ImportPath"
:
"github.com/docker/machine/drivers/hyperv"
,
"Comment"
:
"docs-v0.8.2-2016-09-26-3
51-ga950319e
"
,
"Rev"
:
"
a950319ea4041615add4a243e684b1baadb6436f
"
"Comment"
:
"docs-v0.8.2-2016-09-26-3
66-ge501d1bc
"
,
"Rev"
:
"
e501d1bcb54f09de8ff71aa20010321d18425d19
"
},
{
"ImportPath"
:
"github.com/docker/machine/drivers/none"
,
"Comment"
:
"docs-v0.8.2-2016-09-26-3
51-ga950319e
"
,
"Rev"
:
"
a950319ea4041615add4a243e684b1baadb6436f
"
"Comment"
:
"docs-v0.8.2-2016-09-26-3
66-ge501d1bc
"
,
"Rev"
:
"
e501d1bcb54f09de8ff71aa20010321d18425d19
"
},
{
"ImportPath"
:
"github.com/docker/machine/drivers/virtualbox"
,
"Comment"
:
"docs-v0.8.2-2016-09-26-3
51-ga950319e
"
,
"Rev"
:
"
a950319ea4041615add4a243e684b1baadb6436f
"
"Comment"
:
"docs-v0.8.2-2016-09-26-3
66-ge501d1bc
"
,
"Rev"
:
"
e501d1bcb54f09de8ff71aa20010321d18425d19
"
},
{
"ImportPath"
:
"github.com/docker/machine/drivers/vmwarefusion"
,
"Comment"
:
"docs-v0.8.2-2016-09-26-3
51-ga950319e
"
,
"Rev"
:
"
a950319ea4041615add4a243e684b1baadb6436f
"
"Comment"
:
"docs-v0.8.2-2016-09-26-3
66-ge501d1bc
"
,
"Rev"
:
"
e501d1bcb54f09de8ff71aa20010321d18425d19
"
},
{
"ImportPath"
:
"github.com/docker/machine/libmachine"
,
"Comment"
:
"docs-v0.8.2-2016-09-26-3
51-ga950319e
"
,
"Rev"
:
"
a950319ea4041615add4a243e684b1baadb6436f
"
"Comment"
:
"docs-v0.8.2-2016-09-26-3
66-ge501d1bc
"
,
"Rev"
:
"
e501d1bcb54f09de8ff71aa20010321d18425d19
"
},
{
"ImportPath"
:
"github.com/docker/machine/libmachine/auth"
,
"Comment"
:
"docs-v0.8.2-2016-09-26-3
51-ga950319e
"
,
"Rev"
:
"
a950319ea4041615add4a243e684b1baadb6436f
"
"Comment"
:
"docs-v0.8.2-2016-09-26-3
66-ge501d1bc
"
,
"Rev"
:
"
e501d1bcb54f09de8ff71aa20010321d18425d19
"
},
{
"ImportPath"
:
"github.com/docker/machine/libmachine/cert"
,
"Comment"
:
"docs-v0.8.2-2016-09-26-3
51-ga950319e
"
,
"Rev"
:
"
a950319ea4041615add4a243e684b1baadb6436f
"
"Comment"
:
"docs-v0.8.2-2016-09-26-3
66-ge501d1bc
"
,
"Rev"
:
"
e501d1bcb54f09de8ff71aa20010321d18425d19
"
},
{
"ImportPath"
:
"github.com/docker/machine/libmachine/check"
,
"Comment"
:
"docs-v0.8.2-2016-09-26-3
51-ga950319e
"
,
"Rev"
:
"
a950319ea4041615add4a243e684b1baadb6436f
"
"Comment"
:
"docs-v0.8.2-2016-09-26-3
66-ge501d1bc
"
,
"Rev"
:
"
e501d1bcb54f09de8ff71aa20010321d18425d19
"
},
{
"ImportPath"
:
"github.com/docker/machine/libmachine/drivers"
,
"Comment"
:
"docs-v0.8.2-2016-09-26-3
51-ga950319e
"
,
"Rev"
:
"
a950319ea4041615add4a243e684b1baadb6436f
"
"Comment"
:
"docs-v0.8.2-2016-09-26-3
66-ge501d1bc
"
,
"Rev"
:
"
e501d1bcb54f09de8ff71aa20010321d18425d19
"
},
{
"ImportPath"
:
"github.com/docker/machine/libmachine/drivers/plugin"
,
"Comment"
:
"docs-v0.8.2-2016-09-26-3
51-ga950319e
"
,
"Rev"
:
"
a950319ea4041615add4a243e684b1baadb6436f
"
"Comment"
:
"docs-v0.8.2-2016-09-26-3
66-ge501d1bc
"
,
"Rev"
:
"
e501d1bcb54f09de8ff71aa20010321d18425d19
"
},
{
"ImportPath"
:
"github.com/docker/machine/libmachine/drivers/plugin/localbinary"
,
"Comment"
:
"docs-v0.8.2-2016-09-26-3
51-ga950319e
"
,
"Rev"
:
"
a950319ea4041615add4a243e684b1baadb6436f
"
"Comment"
:
"docs-v0.8.2-2016-09-26-3
66-ge501d1bc
"
,
"Rev"
:
"
e501d1bcb54f09de8ff71aa20010321d18425d19
"
},
{
"ImportPath"
:
"github.com/docker/machine/libmachine/drivers/rpc"
,
"Comment"
:
"docs-v0.8.2-2016-09-26-3
51-ga950319e
"
,
"Rev"
:
"
a950319ea4041615add4a243e684b1baadb6436f
"
"Comment"
:
"docs-v0.8.2-2016-09-26-3
66-ge501d1bc
"
,
"Rev"
:
"
e501d1bcb54f09de8ff71aa20010321d18425d19
"
},
{
"ImportPath"
:
"github.com/docker/machine/libmachine/engine"
,
"Comment"
:
"docs-v0.8.2-2016-09-26-3
51-ga950319e
"
,
"Rev"
:
"
a950319ea4041615add4a243e684b1baadb6436f
"
"Comment"
:
"docs-v0.8.2-2016-09-26-3
66-ge501d1bc
"
,
"Rev"
:
"
e501d1bcb54f09de8ff71aa20010321d18425d19
"
},
{
"ImportPath"
:
"github.com/docker/machine/libmachine/host"
,
"Comment"
:
"docs-v0.8.2-2016-09-26-3
51-ga950319e
"
,
"Rev"
:
"
a950319ea4041615add4a243e684b1baadb6436f
"
"Comment"
:
"docs-v0.8.2-2016-09-26-3
66-ge501d1bc
"
,
"Rev"
:
"
e501d1bcb54f09de8ff71aa20010321d18425d19
"
},
{
"ImportPath"
:
"github.com/docker/machine/libmachine/log"
,
"Comment"
:
"docs-v0.8.2-2016-09-26-3
51-ga950319e
"
,
"Rev"
:
"
a950319ea4041615add4a243e684b1baadb6436f
"
"Comment"
:
"docs-v0.8.2-2016-09-26-3
66-ge501d1bc
"
,
"Rev"
:
"
e501d1bcb54f09de8ff71aa20010321d18425d19
"
},
{
"ImportPath"
:
"github.com/docker/machine/libmachine/mcndockerclient"
,
"Comment"
:
"docs-v0.8.2-2016-09-26-3
51-ga950319e
"
,
"Rev"
:
"
a950319ea4041615add4a243e684b1baadb6436f
"
"Comment"
:
"docs-v0.8.2-2016-09-26-3
66-ge501d1bc
"
,
"Rev"
:
"
e501d1bcb54f09de8ff71aa20010321d18425d19
"
},
{
"ImportPath"
:
"github.com/docker/machine/libmachine/mcnerror"
,
"Comment"
:
"docs-v0.8.2-2016-09-26-3
51-ga950319e
"
,
"Rev"
:
"
a950319ea4041615add4a243e684b1baadb6436f
"
"Comment"
:
"docs-v0.8.2-2016-09-26-3
66-ge501d1bc
"
,
"Rev"
:
"
e501d1bcb54f09de8ff71aa20010321d18425d19
"
},
{
"ImportPath"
:
"github.com/docker/machine/libmachine/mcnflag"
,
"Comment"
:
"docs-v0.8.2-2016-09-26-3
51-ga950319e
"
,
"Rev"
:
"
a950319ea4041615add4a243e684b1baadb6436f
"
"Comment"
:
"docs-v0.8.2-2016-09-26-3
66-ge501d1bc
"
,
"Rev"
:
"
e501d1bcb54f09de8ff71aa20010321d18425d19
"
},
{
"ImportPath"
:
"github.com/docker/machine/libmachine/mcnutils"
,
"Comment"
:
"docs-v0.8.2-2016-09-26-3
51-ga950319e
"
,
"Rev"
:
"
a950319ea4041615add4a243e684b1baadb6436f
"
"Comment"
:
"docs-v0.8.2-2016-09-26-3
66-ge501d1bc
"
,
"Rev"
:
"
e501d1bcb54f09de8ff71aa20010321d18425d19
"
},
{
"ImportPath"
:
"github.com/docker/machine/libmachine/persist"
,
"Comment"
:
"docs-v0.8.2-2016-09-26-3
51-ga950319e
"
,
"Rev"
:
"
a950319ea4041615add4a243e684b1baadb6436f
"
"Comment"
:
"docs-v0.8.2-2016-09-26-3
66-ge501d1bc
"
,
"Rev"
:
"
e501d1bcb54f09de8ff71aa20010321d18425d19
"
},
{
"ImportPath"
:
"github.com/docker/machine/libmachine/provision"
,
"Comment"
:
"docs-v0.8.2-2016-09-26-3
51-ga950319e
"
,
"Rev"
:
"
a950319ea4041615add4a243e684b1baadb6436f
"
"Comment"
:
"docs-v0.8.2-2016-09-26-3
66-ge501d1bc
"
,
"Rev"
:
"
e501d1bcb54f09de8ff71aa20010321d18425d19
"
},
{
"ImportPath"
:
"github.com/docker/machine/libmachine/provision/pkgaction"
,
"Comment"
:
"docs-v0.8.2-2016-09-26-3
51-ga950319e
"
,
"Rev"
:
"
a950319ea4041615add4a243e684b1baadb6436f
"
"Comment"
:
"docs-v0.8.2-2016-09-26-3
66-ge501d1bc
"
,
"Rev"
:
"
e501d1bcb54f09de8ff71aa20010321d18425d19
"
},
{
"ImportPath"
:
"github.com/docker/machine/libmachine/provision/serviceaction"
,
"Comment"
:
"docs-v0.8.2-2016-09-26-3
51-ga950319e
"
,
"Rev"
:
"
a950319ea4041615add4a243e684b1baadb6436f
"
"Comment"
:
"docs-v0.8.2-2016-09-26-3
66-ge501d1bc
"
,
"Rev"
:
"
e501d1bcb54f09de8ff71aa20010321d18425d19
"
},
{
"ImportPath"
:
"github.com/docker/machine/libmachine/shell"
,
"Comment"
:
"docs-v0.8.2-2016-09-26-3
51-ga950319e
"
,
"Rev"
:
"
a950319ea4041615add4a243e684b1baadb6436f
"
"Comment"
:
"docs-v0.8.2-2016-09-26-3
66-ge501d1bc
"
,
"Rev"
:
"
e501d1bcb54f09de8ff71aa20010321d18425d19
"
},
{
"ImportPath"
:
"github.com/docker/machine/libmachine/ssh"
,
"Comment"
:
"docs-v0.8.2-2016-09-26-3
51-ga950319e
"
,
"Rev"
:
"
a950319ea4041615add4a243e684b1baadb6436f
"
"Comment"
:
"docs-v0.8.2-2016-09-26-3
66-ge501d1bc
"
,
"Rev"
:
"
e501d1bcb54f09de8ff71aa20010321d18425d19
"
},
{
"ImportPath"
:
"github.com/docker/machine/libmachine/state"
,
"Comment"
:
"docs-v0.8.2-2016-09-26-3
51-ga950319e
"
,
"Rev"
:
"
a950319ea4041615add4a243e684b1baadb6436f
"
"Comment"
:
"docs-v0.8.2-2016-09-26-3
66-ge501d1bc
"
,
"Rev"
:
"
e501d1bcb54f09de8ff71aa20010321d18425d19
"
},
{
"ImportPath"
:
"github.com/docker/machine/libmachine/swarm"
,
"Comment"
:
"docs-v0.8.2-2016-09-26-3
51-ga950319e
"
,
"Rev"
:
"
a950319ea4041615add4a243e684b1baadb6436f
"
"Comment"
:
"docs-v0.8.2-2016-09-26-3
66-ge501d1bc
"
,
"Rev"
:
"
e501d1bcb54f09de8ff71aa20010321d18425d19
"
},
{
"ImportPath"
:
"github.com/docker/machine/libmachine/version"
,
"Comment"
:
"docs-v0.8.2-2016-09-26-3
51-ga950319e
"
,
"Rev"
:
"
a950319ea4041615add4a243e684b1baadb6436f
"
"Comment"
:
"docs-v0.8.2-2016-09-26-3
66-ge501d1bc
"
,
"Rev"
:
"
e501d1bcb54f09de8ff71aa20010321d18425d19
"
},
{
"ImportPath"
:
"github.com/docker/machine/libmachine/versioncmp"
,
"Comment"
:
"docs-v0.8.2-2016-09-26-3
51-ga950319e
"
,
"Rev"
:
"
a950319ea4041615add4a243e684b1baadb6436f
"
"Comment"
:
"docs-v0.8.2-2016-09-26-3
66-ge501d1bc
"
,
"Rev"
:
"
e501d1bcb54f09de8ff71aa20010321d18425d19
"
},
{
"ImportPath"
:
"github.com/docker/machine/version"
,
"Comment"
:
"docs-v0.8.2-2016-09-26-3
51-ga950319e
"
,
"Rev"
:
"
a950319ea4041615add4a243e684b1baadb6436f
"
"Comment"
:
"docs-v0.8.2-2016-09-26-3
66-ge501d1bc
"
,
"Rev"
:
"
e501d1bcb54f09de8ff71aa20010321d18425d19
"
},
{
"ImportPath"
:
"github.com/docker/spdystream"
,
...
...
@@ -2011,7 +2011,6 @@
},
{
"ImportPath"
:
"github.com/inconshreveable/mousetrap"
,
"Comment"
:
"v1.0"
,
"Rev"
:
"76626ae9c91c4f2a10f34cad8ce83ea42c93bb75"
},
{
...
...
@@ -2053,7 +2052,6 @@
},
{
"ImportPath"
:
"github.com/juju/ratelimit"
,
"Comment"
:
"1.0"
,
"Rev"
:
"5b9ff866471762aa2ab2dced63c9fb6f53921342"
},
{
...
...
@@ -2297,7 +2295,6 @@
},
{
"ImportPath"
:
"github.com/pelletier/go-buffruneio"
,
"Comment"
:
"v0.1.0"
,
"Rev"
:
"df1e16fde7fc330a0ca68167c23bf7ed6ac31d6d"
},
{
...
...
@@ -2369,17 +2366,17 @@
},
{
"ImportPath"
:
"github.com/r2d4/external-storage/lib/controller"
,
"Comment"
:
"v1.0.0-26-g8c0e860"
,
"Comment"
:
"v1.0.0-26-g8c0e860
5
"
,
"Rev"
:
"8c0e8605dc7b85893e144efd8e76d4a473f4bc7d"
},
{
"ImportPath"
:
"github.com/r2d4/external-storage/lib/leaderelection"
,
"Comment"
:
"v1.0.0-26-g8c0e860"
,
"Comment"
:
"v1.0.0-26-g8c0e860
5
"
,
"Rev"
:
"8c0e8605dc7b85893e144efd8e76d4a473f4bc7d"
},
{
"ImportPath"
:
"github.com/r2d4/external-storage/lib/leaderelection/resourcelock"
,
"Comment"
:
"v1.0.0-26-g8c0e860"
,
"Comment"
:
"v1.0.0-26-g8c0e860
5
"
,
"Rev"
:
"8c0e8605dc7b85893e144efd8e76d4a473f4bc7d"
},
{
...
...
@@ -2462,7 +2459,6 @@
},
{
"ImportPath"
:
"github.com/spf13/viper"
,
"Comment"
:
"v1.0.0"
,
"Rev"
:
"25b30aa063fc18e48662b86996252eabdcf2f0c7"
},
{
...
...
@@ -2629,7 +2625,6 @@
},
{
"ImportPath"
:
"github.com/xiang90/probing"
,
"Comment"
:
"0.0.1"
,
"Rev"
:
"07dd2e8dfe18522e9c447ba95f2fe95262f63bb2"
},
{
...
...
vendor/github.com/docker/machine/drivers/hyperv/hyperv.go
浏览文件 @
d5640561
...
...
@@ -128,7 +128,7 @@ func (d *Driver) GetURL() (string, error) {
}
func
(
d
*
Driver
)
GetState
()
(
state
.
State
,
error
)
{
stdout
,
err
:=
cmdOut
(
"("
,
"
hyper-v
\\
Get-VM"
,
d
.
MachineName
,
").state"
)
stdout
,
err
:=
cmdOut
(
"("
,
"
Hyper-V
\\
Get-VM"
,
d
.
MachineName
,
").state"
)
if
err
!=
nil
{
return
state
.
None
,
fmt
.
Errorf
(
"Failed to find the VM status"
)
}
...
...
@@ -205,7 +205,7 @@ func (d *Driver) Create() error {
return
err
}
if
err
:=
cmd
(
"
hyper-v
\\
New-VM"
,
if
err
:=
cmd
(
"
Hyper-V
\\
New-VM"
,
d
.
MachineName
,
"-Path"
,
fmt
.
Sprintf
(
"'%s'"
,
d
.
ResolveStorePath
(
"."
)),
"-SwitchName"
,
quote
(
virtualSwitch
),
...
...
@@ -214,7 +214,7 @@ func (d *Driver) Create() error {
}
if
d
.
CPU
>
1
{
if
err
:=
cmd
(
"
hyper-v
\\
Set-VMProcessor"
,
if
err
:=
cmd
(
"
Hyper-V
\\
Set-VMProcessor"
,
d
.
MachineName
,
"-Count"
,
fmt
.
Sprintf
(
"%d"
,
d
.
CPU
));
err
!=
nil
{
return
err
...
...
@@ -222,7 +222,7 @@ func (d *Driver) Create() error {
}
if
d
.
MacAddr
!=
""
{
if
err
:=
cmd
(
"
hyper-v
\\
Set-VMNetworkAdapter"
,
if
err
:=
cmd
(
"
Hyper-V
\\
Set-VMNetworkAdapter"
,
"-VMName"
,
d
.
MachineName
,
"-StaticMacAddress"
,
fmt
.
Sprintf
(
"
\"
%s
\"
"
,
d
.
MacAddr
));
err
!=
nil
{
return
err
...
...
@@ -230,7 +230,7 @@ func (d *Driver) Create() error {
}
if
d
.
VLanID
>
0
{
if
err
:=
cmd
(
"
hyper-v
\\
Set-VMNetworkAdapterVlan"
,
if
err
:=
cmd
(
"
Hyper-V
\\
Set-VMNetworkAdapterVlan"
,
"-VMName"
,
d
.
MachineName
,
"-Access"
,
"-VlanId"
,
fmt
.
Sprintf
(
"%d"
,
d
.
VLanID
));
err
!=
nil
{
...
...
@@ -238,13 +238,13 @@ func (d *Driver) Create() error {
}
}
if
err
:=
cmd
(
"
hyper-v
\\
Set-VMDvdDrive"
,
if
err
:=
cmd
(
"
Hyper-V
\\
Set-VMDvdDrive"
,
"-VMName"
,
d
.
MachineName
,
"-Path"
,
quote
(
d
.
ResolveStorePath
(
"boot2docker.iso"
)));
err
!=
nil
{
return
err
}
if
err
:=
cmd
(
"
hyper-v
\\
Add-VMHardDiskDrive"
,
if
err
:=
cmd
(
"
Hyper-V
\\
Add-VMHardDiskDrive"
,
"-VMName"
,
d
.
MachineName
,
"-Path"
,
quote
(
diskImage
));
err
!=
nil
{
return
err
...
...
@@ -257,7 +257,7 @@ func (d *Driver) Create() error {
func
(
d
*
Driver
)
chooseVirtualSwitch
()
(
string
,
error
)
{
if
d
.
VSwitch
==
""
{
// Default to the first external switche and in the process avoid DockerNAT
stdout
,
err
:=
cmdOut
(
"(
hyper-v
\\
Get-VMSwitch -SwitchType External).Name"
)
stdout
,
err
:=
cmdOut
(
"(
Hyper-V
\\
Get-VMSwitch -SwitchType External).Name"
)
if
err
!=
nil
{
return
""
,
err
}
...
...
@@ -271,7 +271,7 @@ func (d *Driver) chooseVirtualSwitch() (string, error) {
return
switches
[
0
],
nil
}
stdout
,
err
:=
cmdOut
(
"(
hyper-v
\\
Get-VMSwitch).Name"
)
stdout
,
err
:=
cmdOut
(
"(
Hyper-V
\\
Get-VMSwitch).Name"
)
if
err
!=
nil
{
return
""
,
err
}
...
...
@@ -327,7 +327,7 @@ func (d *Driver) waitStopped() error {
// Start starts an host
func
(
d
*
Driver
)
Start
()
error
{
if
err
:=
cmd
(
"
hyper-v
\\
Start-VM"
,
d
.
MachineName
);
err
!=
nil
{
if
err
:=
cmd
(
"
Hyper-V
\\
Start-VM"
,
d
.
MachineName
);
err
!=
nil
{
return
err
}
...
...
@@ -343,7 +343,7 @@ func (d *Driver) Start() error {
// Stop stops an host
func
(
d
*
Driver
)
Stop
()
error
{
if
err
:=
cmd
(
"
hyper-v
\\
Stop-VM"
,
d
.
MachineName
);
err
!=
nil
{
if
err
:=
cmd
(
"
Hyper-V
\\
Stop-VM"
,
d
.
MachineName
);
err
!=
nil
{
return
err
}
...
...
@@ -369,7 +369,7 @@ func (d *Driver) Remove() error {
}
}
return
cmd
(
"
hyper-v
\\
Remove-VM"
,
d
.
MachineName
,
"-Force"
)
return
cmd
(
"
Hyper-V
\\
Remove-VM"
,
d
.
MachineName
,
"-Force"
)
}
// Restart stops and starts an host
...
...
@@ -384,7 +384,7 @@ func (d *Driver) Restart() error {
// Kill force stops an host
func
(
d
*
Driver
)
Kill
()
error
{
if
err
:=
cmd
(
"
hyper-v
\\
Stop-VM"
,
d
.
MachineName
,
"-TurnOff"
);
err
!=
nil
{
if
err
:=
cmd
(
"
Hyper-V
\\
Stop-VM"
,
d
.
MachineName
,
"-TurnOff"
);
err
!=
nil
{
return
err
}
...
...
@@ -406,7 +406,7 @@ func (d *Driver) GetIP() (string, error) {
return
""
,
drivers
.
ErrHostIsNotRunning
}
stdout
,
err
:=
cmdOut
(
"(("
,
"
hyper-v
\\
Get-VM"
,
d
.
MachineName
,
").networkadapters[0]).ipaddresses[0]"
)
stdout
,
err
:=
cmdOut
(
"(("
,
"
Hyper-V
\\
Get-VM"
,
d
.
MachineName
,
").networkadapters[0]).ipaddresses[0]"
)
if
err
!=
nil
{
return
""
,
err
}
...
...
@@ -440,7 +440,7 @@ func (d *Driver) generateDiskImage() (string, error) {
}
log
.
Infof
(
"Creating VHD"
)
if
err
:=
cmd
(
"
hyper-v
\\
New-VHD"
,
"-Path"
,
quote
(
fixed
),
"-SizeBytes"
,
fixedDiskSize
,
"-Fixed"
);
err
!=
nil
{
if
err
:=
cmd
(
"
Hyper-V
\\
New-VHD"
,
"-Path"
,
quote
(
fixed
),
"-SizeBytes"
,
fixedDiskSize
,
"-Fixed"
);
err
!=
nil
{
return
""
,
err
}
...
...
@@ -462,12 +462,12 @@ func (d *Driver) generateDiskImage() (string, error) {
}
file
.
Close
()
if
err
:=
cmd
(
"
hyper-v
\\
Convert-VHD"
,
"-Path"
,
quote
(
fixed
),
"-DestinationPath"
,
quote
(
diskImage
),
"-VHDType"
,
"Dynamic"
,
"-DeleteSource"
);
err
!=
nil
{
if
err
:=
cmd
(
"
Hyper-V
\\
Convert-VHD"
,
"-Path"
,
quote
(
fixed
),
"-DestinationPath"
,
quote
(
diskImage
),
"-VHDType"
,
"Dynamic"
,
"-DeleteSource"
);
err
!=
nil
{
return
""
,
err
}
if
isWindowsAdmin
{
if
err
:=
cmd
(
"
hyper-v
\\
Resize-VHD"
,
"-Path"
,
quote
(
diskImage
),
"-SizeBytes"
,
toMb
(
d
.
DiskSize
));
err
!=
nil
{
if
err
:=
cmd
(
"
Hyper-V
\\
Resize-VHD"
,
"-Path"
,
quote
(
diskImage
),
"-SizeBytes"
,
toMb
(
d
.
DiskSize
));
err
!=
nil
{
return
""
,
err
}
}
...
...
vendor/github.com/docker/machine/drivers/hyperv/powershell.go
浏览文件 @
d5640561
...
...
@@ -55,7 +55,7 @@ func parseLines(stdout string) []string {
}
func
hypervAvailable
()
error
{
stdout
,
err
:=
cmdOut
(
"@(Get-
Command hyper-v
\\
Get-VM).ModuleNam
e"
)
stdout
,
err
:=
cmdOut
(
"@(Get-
Module -ListAvailable hyper-v).Name | Get-Uniqu
e"
)
if
err
!=
nil
{
return
err
}
...
...
vendor/github.com/docker/machine/libmachine/cert/bootstrap.go
浏览文件 @
d5640561
...
...
@@ -10,13 +10,74 @@ import (
"github.com/docker/machine/libmachine/mcnutils"
)
func
BootstrapCertificates
(
authOptions
*
auth
.
Options
)
error
{
func
createCACert
(
authOptions
*
auth
.
Options
,
caOrg
string
,
bits
int
)
error
{
caCertPath
:=
authOptions
.
CaCertPath
caPrivateKeyPath
:=
authOptions
.
CaPrivateKeyPath
log
.
Infof
(
"Creating CA: %s"
,
caCertPath
)
// check if the key path exists; if so, error
if
_
,
err
:=
os
.
Stat
(
caPrivateKeyPath
);
err
==
nil
{
return
errors
.
New
(
"certificate authority key already exists"
)
}
if
err
:=
GenerateCACertificate
(
caCertPath
,
caPrivateKeyPath
,
caOrg
,
bits
);
err
!=
nil
{
return
fmt
.
Errorf
(
"generating CA certificate failed: %s"
,
err
)
}
return
nil
}
func
createCert
(
authOptions
*
auth
.
Options
,
org
string
,
bits
int
)
error
{
certDir
:=
authOptions
.
CertDir
caCertPath
:=
authOptions
.
CaCertPath
caPrivateKeyPath
:=
authOptions
.
CaPrivateKeyPath
clientCertPath
:=
authOptions
.
ClientCertPath
clientKeyPath
:=
authOptions
.
ClientKeyPath
log
.
Infof
(
"Creating client certificate: %s"
,
clientCertPath
)
if
_
,
err
:=
os
.
Stat
(
certDir
);
err
!=
nil
{
if
os
.
IsNotExist
(
err
)
{
if
err
:=
os
.
Mkdir
(
certDir
,
0700
);
err
!=
nil
{
return
fmt
.
Errorf
(
"failure creating machine client cert dir: %s"
,
err
)
}
}
else
{
return
err
}
}
// check if the key path exists; if so, error
if
_
,
err
:=
os
.
Stat
(
clientKeyPath
);
err
==
nil
{
return
errors
.
New
(
"client key already exists"
)
}
// Used to generate the client certificate.
certOptions
:=
&
Options
{
Hosts
:
[]
string
{
""
},
CertFile
:
clientCertPath
,
KeyFile
:
clientKeyPath
,
CAFile
:
caCertPath
,
CAKeyFile
:
caPrivateKeyPath
,
Org
:
org
,
Bits
:
bits
,
SwarmMaster
:
false
,
}
if
err
:=
GenerateCert
(
certOptions
);
err
!=
nil
{
return
fmt
.
Errorf
(
"failure generating client certificate: %s"
,
err
)
}
return
nil
}
func
BootstrapCertificates
(
authOptions
*
auth
.
Options
)
error
{
certDir
:=
authOptions
.
CertDir
caCertPath
:=
authOptions
.
CaCertPath
clientCertPath
:=
authOptions
.
ClientCertPath
clientKeyPath
:=
authOptions
.
ClientKeyPath
caPrivateKeyPath
:=
authOptions
.
CaPrivateKeyPath
// TODO: I'm not super happy about this use of "org", the user should
// have to specify it explicitly instead of implicitly basing it on
// $USER.
...
...
@@ -28,7 +89,7 @@ func BootstrapCertificates(authOptions *auth.Options) error {
if
_
,
err
:=
os
.
Stat
(
certDir
);
err
!=
nil
{
if
os
.
IsNotExist
(
err
)
{
if
err
:=
os
.
MkdirAll
(
certDir
,
0700
);
err
!=
nil
{
return
fmt
.
Errorf
(
"
C
reating machine certificate dir failed: %s"
,
err
)
return
fmt
.
Errorf
(
"
c
reating machine certificate dir failed: %s"
,
err
)
}
}
else
{
return
err
...
...
@@ -36,50 +97,38 @@ func BootstrapCertificates(authOptions *auth.Options) error {
}
if
_
,
err
:=
os
.
Stat
(
caCertPath
);
os
.
IsNotExist
(
err
)
{
log
.
Infof
(
"Creating CA: %s"
,
caCertPath
)
// check if the key path exists; if so, error
if
_
,
err
:=
os
.
Stat
(
caPrivateKeyPath
);
err
==
nil
{
return
errors
.
New
(
"certificate authority key already exists"
)
if
err
:=
createCACert
(
authOptions
,
caOrg
,
bits
);
err
!=
nil
{
return
err
}
if
err
:=
GenerateCACertificate
(
caCertPath
,
caPrivateKeyPath
,
caOrg
,
bits
);
err
!=
nil
{
return
fmt
.
Errorf
(
"Generating CA certificate failed: %s"
,
err
)
}
else
{
current
,
err
:=
CheckCertificateDate
(
caCertPath
)
if
err
!=
nil
{
return
err
}
}
if
_
,
err
:=
os
.
Stat
(
clientCertPath
);
os
.
IsNotExist
(
err
)
{
log
.
Infof
(
"Creating client certificate: %s"
,
clientCertPath
)
if
_
,
err
:=
os
.
Stat
(
certDir
);
err
!=
nil
{
if
os
.
IsNotExist
(
err
)
{
if
err
:=
os
.
Mkdir
(
certDir
,
0700
);
err
!=
nil
{
return
fmt
.
Errorf
(
"failure creating machine client cert dir: %s"
,
err
)
}
}
else
{
if
!
current
{
log
.
Info
(
"CA certificate is outdated and needs to be regenerated"
)
os
.
Remove
(
caPrivateKeyPath
)
if
err
:=
createCACert
(
authOptions
,
caOrg
,
bits
);
err
!=
nil
{
return
err
}
}
}
// check if the key path exists; if so, error
if
_
,
err
:=
os
.
Stat
(
clientKeyPath
);
err
=
=
nil
{
return
err
ors
.
New
(
"client key already exists"
)
if
_
,
err
:=
os
.
Stat
(
clientCertPath
);
os
.
IsNotExist
(
err
)
{
if
err
:=
createCert
(
authOptions
,
org
,
bits
);
err
!
=
nil
{
return
err
}
// Used to generate the client certificate.
certOptions
:=
&
Options
{
Hosts
:
[]
string
{
""
},
CertFile
:
clientCertPath
,
KeyFile
:
clientKeyPath
,
CAFile
:
caCertPath
,
CAKeyFile
:
caPrivateKeyPath
,
Org
:
org
,
Bits
:
bits
,
SwarmMaster
:
false
,
}
else
{
current
,
err
:=
CheckCertificateDate
(
clientCertPath
)
if
err
!=
nil
{
return
err
}
if
err
:=
GenerateCert
(
certOptions
);
err
!=
nil
{
return
fmt
.
Errorf
(
"failure generating client certificate: %s"
,
err
)
if
!
current
{
log
.
Info
(
"Client certificate is outdated and needs to be regenerated"
)
os
.
Remove
(
clientKeyPath
)
if
err
:=
createCert
(
authOptions
,
org
,
bits
);
err
!=
nil
{
return
err
}
}
}
...
...
vendor/github.com/docker/machine/libmachine/cert/cert.go
浏览文件 @
d5640561
...
...
@@ -267,3 +267,28 @@ func (xcg *X509CertGenerator) ValidateCertificate(addr string, authOptions *auth
return
true
,
nil
}
func
CheckCertificateDate
(
certPath
string
)
(
bool
,
error
)
{
log
.
Debugf
(
"Reading certificate data from %s"
,
certPath
)
certBytes
,
err
:=
ioutil
.
ReadFile
(
certPath
)
if
err
!=
nil
{
return
false
,
err
}
log
.
Debug
(
"Decoding PEM data..."
)
pemBlock
,
_
:=
pem
.
Decode
(
certBytes
)
if
pemBlock
==
nil
{
return
false
,
errors
.
New
(
"Failed to decode PEM data"
)
}
log
.
Debug
(
"Parsing certificate..."
)
cert
,
err
:=
x509
.
ParseCertificate
(
pemBlock
.
Bytes
)
if
err
!=
nil
{
return
false
,
err
}
if
time
.
Now
()
.
After
(
cert
.
NotAfter
)
{
return
false
,
nil
}
return
true
,
nil
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录