fix(esxi-agent): vmware hostname (#18122)

This commit is contained in:
屈轩
2023-09-21 20:50:24 +08:00
committed by GitHub
parent 7c62173d3f
commit 3d329d7412
4 changed files with 24 additions and 10 deletions
+1 -1
View File
@@ -83,7 +83,7 @@ require (
k8s.io/client-go v0.19.3
k8s.io/cluster-bootstrap v0.19.3
moul.io/http2curl/v2 v2.3.0
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20230920120331-bc6c02f3d5dc
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20230921121036-ab3056658f2f
yunion.io/x/executor v0.0.0-20230705125604-c5ac3141db32
yunion.io/x/jsonutils v1.0.1-0.20230613121553-0f3b41e2ef19
yunion.io/x/log v1.0.1-0.20230411060016-feb3f46ab361
+2 -2
View File
@@ -1174,8 +1174,8 @@ sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK
sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q=
sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20230920120331-bc6c02f3d5dc h1:EsuxH+yW4w0taqZMGD8AZVFspx5rI0LAqKuqFE6J0tU=
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20230920120331-bc6c02f3d5dc/go.mod h1:2sgCN7nRPQL3woLfdgqLDd92vwAHqtlz3KKiHxC5BAw=
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20230921121036-ab3056658f2f h1:BDjzB7nOkoLxEdcTiIUFoocafFaIEulvAnxi5grRycY=
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20230921121036-ab3056658f2f/go.mod h1:2sgCN7nRPQL3woLfdgqLDd92vwAHqtlz3KKiHxC5BAw=
yunion.io/x/executor v0.0.0-20230705125604-c5ac3141db32 h1:v7POYkQwo1XzOxBoIoRVr/k0V9Y5JyjpshlIFa9raug=
yunion.io/x/executor v0.0.0-20230705125604-c5ac3141db32/go.mod h1:Uxuou9WQIeJXNpy7t2fPLL0BYLvLiMvGQwY7Qc6aSws=
yunion.io/x/jsonutils v0.0.0-20190625054549-a964e1e8a051/go.mod h1:4N0/RVzsYL3kH3WE/H1BjUQdFiWu50JGCFQuuy+Z634=
+1 -1
View File
@@ -1432,7 +1432,7 @@ sigs.k8s.io/structured-merge-diff/v4/value
# sigs.k8s.io/yaml v1.2.0
## explicit; go 1.12
sigs.k8s.io/yaml
# yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20230920120331-bc6c02f3d5dc
# yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20230921121036-ab3056658f2f
## explicit; go 1.18
yunion.io/x/cloudmux/pkg/apis
yunion.io/x/cloudmux/pkg/apis/billing
+20 -6
View File
@@ -21,6 +21,7 @@ import (
"sort"
"strings"
"time"
"unicode"
"github.com/vmware/govmomi/nfc"
"github.com/vmware/govmomi/object"
@@ -1408,20 +1409,30 @@ func (svm *SVirtualMachine) DoCustomize(ctx context.Context, params jsonutils.JS
spec.NicSettingMap = maps
var (
osName string
name = "yunionhost"
osName string
name = "yunionhost"
hostname = name
)
if params.Contains("os_name") {
osName, _ = params.GetString("os_name")
}
if params.Contains("name") {
name, _ = params.GetString("name")
hostname = name
}
if params.Contains("hostname") {
hostname, _ = params.GetString("hostname")
}
// avoid spec.identity.hostName error
hostname := strings.ReplaceAll(name, "_", "")
if len(hostname) > 15 {
hostname = hostname[:15]
}
hostname = func() string {
ret := ""
for _, s := range hostname {
if unicode.IsDigit(s) || unicode.IsLetter(s) || s == '-' {
ret += string(s)
}
}
return ret
}()
if osName == "Linux" {
linuxPrep := types.CustomizationLinuxPrep{
HostName: &types.CustomizationFixedName{Name: hostname},
@@ -1430,6 +1441,9 @@ func (svm *SVirtualMachine) DoCustomize(ctx context.Context, params jsonutils.JS
}
spec.Identity = &linuxPrep
} else if osName == "Windows" {
if len(hostname) > 15 {
hostname = hostname[:15]
}
sysPrep := types.CustomizationSysprep{
GuiUnattended: types.CustomizationGuiUnattended{
TimeZone: 210,