mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-22 10:06:15 +00:00
Merge pull request #120736 from MadhavJivrajani/bump-govmomi
.: bump govmomi to v0.30.6
This commit is contained in:
commit
b28622c3e6
2
go.mod
2
go.mod
@ -65,7 +65,7 @@ require (
|
||||
github.com/spf13/pflag v1.0.5
|
||||
github.com/stretchr/testify v1.8.2
|
||||
github.com/vishvananda/netlink v1.1.0
|
||||
github.com/vmware/govmomi v0.30.0
|
||||
github.com/vmware/govmomi v0.30.6
|
||||
go.etcd.io/etcd/api/v3 v3.5.9
|
||||
go.etcd.io/etcd/client/pkg/v3 v3.5.9
|
||||
go.etcd.io/etcd/client/v3 v3.5.9
|
||||
|
4
go.sum
4
go.sum
@ -826,8 +826,8 @@ github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYp
|
||||
github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU=
|
||||
github.com/vishvananda/netns v0.0.4 h1:Oeaw1EM2JMxD51g9uhtC0D7erkIjgmj8+JZc26m1YX8=
|
||||
github.com/vishvananda/netns v0.0.4/go.mod h1:SpkAiCQRtJ6TvvxPnOSyH3BMl6unz3xZlaprSwhNNJM=
|
||||
github.com/vmware/govmomi v0.30.0 h1:Fm8ugPnnlMSTSceDKY9goGvjmqc6eQLPUSUeNXdpeXA=
|
||||
github.com/vmware/govmomi v0.30.0/go.mod h1:F7adsVewLNHsW/IIm7ziFURaXDaHEwcc+ym4r3INMdY=
|
||||
github.com/vmware/govmomi v0.30.6 h1:O3tjSwQBy0XwI5uK1/yVIfQ1LP9bAECEDUfifnyGs9U=
|
||||
github.com/vmware/govmomi v0.30.6/go.mod h1:epgoslm97rLECMV4D+08ORzUBEU7boFSepKjt7AYVGg=
|
||||
github.com/vmware/vmw-guestinfo v0.0.0-20170707015358-25eff159a728/go.mod h1:x9oS4Wk2s2u4tS29nEaDLdzvuHdB19CvSGJjPgkZJNk=
|
||||
github.com/xhit/go-str2duration/v2 v2.1.0/go.mod h1:ohY8p+0f07DiV6Em5LKB0s2YpLtXVyJfNt1+BlmyAsU=
|
||||
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8=
|
||||
|
@ -15,7 +15,7 @@ require (
|
||||
github.com/google/go-cmp v0.5.9
|
||||
github.com/rubiojr/go-vhd v0.0.0-20200706105327-02e210299021
|
||||
github.com/stretchr/testify v1.8.2
|
||||
github.com/vmware/govmomi v0.30.0
|
||||
github.com/vmware/govmomi v0.30.6
|
||||
golang.org/x/crypto v0.11.0
|
||||
golang.org/x/oauth2 v0.8.0
|
||||
google.golang.org/api v0.114.0
|
||||
|
4
staging/src/k8s.io/legacy-cloud-providers/go.sum
generated
4
staging/src/k8s.io/legacy-cloud-providers/go.sum
generated
@ -337,8 +337,8 @@ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO
|
||||
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||
github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8=
|
||||
github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||
github.com/vmware/govmomi v0.30.0 h1:Fm8ugPnnlMSTSceDKY9goGvjmqc6eQLPUSUeNXdpeXA=
|
||||
github.com/vmware/govmomi v0.30.0/go.mod h1:F7adsVewLNHsW/IIm7ziFURaXDaHEwcc+ym4r3INMdY=
|
||||
github.com/vmware/govmomi v0.30.6 h1:O3tjSwQBy0XwI5uK1/yVIfQ1LP9bAECEDUfifnyGs9U=
|
||||
github.com/vmware/govmomi v0.30.6/go.mod h1:epgoslm97rLECMV4D+08ORzUBEU7boFSepKjt7AYVGg=
|
||||
github.com/vmware/vmw-guestinfo v0.0.0-20170707015358-25eff159a728/go.mod h1:x9oS4Wk2s2u4tS29nEaDLdzvuHdB19CvSGJjPgkZJNk=
|
||||
github.com/xhit/go-str2duration/v2 v2.1.0/go.mod h1:ohY8p+0f07DiV6Em5LKB0s2YpLtXVyJfNt1+BlmyAsU=
|
||||
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
|
@ -165,7 +165,7 @@ func configFromSimWithTLS(tlsConfig *tls.Config, insecureAllowed bool) (VSphereC
|
||||
model.Service.ServeMux.Handle(path, handler)
|
||||
|
||||
// vAPI simulator
|
||||
paths, handler := vapi.New(s.URL, vpx.Setting)
|
||||
paths, handler := vapi.New(s.URL, simulator.Map)
|
||||
path = paths[0]
|
||||
model.Service.ServeMux.Handle(path, handler)
|
||||
|
||||
|
21
vendor/github.com/vmware/govmomi/.goreleaser.yml
generated
vendored
21
vendor/github.com/vmware/govmomi/.goreleaser.yml
generated
vendored
@ -34,13 +34,12 @@ archives:
|
||||
- id: govcbuild
|
||||
builds:
|
||||
- govc
|
||||
name_template: "govc_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}"
|
||||
replacements: &replacements
|
||||
darwin: Darwin
|
||||
linux: Linux
|
||||
windows: Windows
|
||||
freebsd: FreeBSD
|
||||
amd64: x86_64
|
||||
name_template: >-
|
||||
govc_
|
||||
{{- title .Os }}_
|
||||
{{- if eq .Arch "amd64" }}x86_64
|
||||
{{- else if eq .Arch "386" }}i386
|
||||
{{- else }}{{ .Arch }}{{ end }}
|
||||
format_overrides: &overrides
|
||||
- goos: windows
|
||||
format: zip
|
||||
@ -52,8 +51,12 @@ archives:
|
||||
- id: vcsimbuild
|
||||
builds:
|
||||
- vcsim
|
||||
name_template: "vcsim_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}"
|
||||
replacements: *replacements
|
||||
name_template: >-
|
||||
vcsim_
|
||||
{{- title .Os }}_
|
||||
{{- if eq .Arch "amd64" }}x86_64
|
||||
{{- else if eq .Arch "386" }}i386
|
||||
{{- else }}{{ .Arch }}{{ end }}
|
||||
format_overrides: *overrides
|
||||
files: *extrafiles
|
||||
|
||||
|
14
vendor/github.com/vmware/govmomi/find/finder.go
generated
vendored
14
vendor/github.com/vmware/govmomi/find/finder.go
generated
vendored
@ -1,5 +1,5 @@
|
||||
/*
|
||||
Copyright (c) 2014-2020 VMware, Inc. All Rights Reserved.
|
||||
Copyright (c) 2014-2023 VMware, Inc. All Rights Reserved.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
@ -784,6 +784,11 @@ func (f *Finder) NetworkList(ctx context.Context, path string) ([]object.Network
|
||||
}
|
||||
|
||||
if len(ns) == 0 {
|
||||
net, nerr := f.networkByID(ctx, path)
|
||||
if nerr == nil {
|
||||
return []object.NetworkReference{net}, nil
|
||||
}
|
||||
|
||||
return nil, &NotFoundError{"network", path}
|
||||
}
|
||||
|
||||
@ -798,18 +803,13 @@ func (f *Finder) NetworkList(ctx context.Context, path string) ([]object.Network
|
||||
// Examples:
|
||||
// - Name: "dvpg-1"
|
||||
// - Inventory Path: "vds-1/dvpg-1"
|
||||
// - Cluster Path: "/dc-1/host/cluster-1/dvpg-1"
|
||||
// - ManagedObject ID: "DistributedVirtualPortgroup:dvportgroup-53"
|
||||
// - Logical Switch UUID: "da2a59b8-2450-4cb2-b5cc-79c4c1d2144c"
|
||||
// - Segment ID: "/infra/segments/vnet_ce50e69b-1784-4a14-9206-ffd7f1f146f7"
|
||||
func (f *Finder) Network(ctx context.Context, path string) (object.NetworkReference, error) {
|
||||
networks, err := f.NetworkList(ctx, path)
|
||||
if err != nil {
|
||||
if _, ok := err.(*NotFoundError); ok {
|
||||
net, nerr := f.networkByID(ctx, path)
|
||||
if nerr == nil {
|
||||
return net, nil
|
||||
}
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
|
||||
|
2
vendor/github.com/vmware/govmomi/internal/version/version.go
generated
vendored
2
vendor/github.com/vmware/govmomi/internal/version/version.go
generated
vendored
@ -21,5 +21,5 @@ const (
|
||||
ClientName = "govmomi"
|
||||
|
||||
// ClientVersion is the version of this SDK
|
||||
ClientVersion = "0.30.0"
|
||||
ClientVersion = "0.30.6"
|
||||
)
|
||||
|
4
vendor/github.com/vmware/govmomi/list/lister.go
generated
vendored
4
vendor/github.com/vmware/govmomi/list/lister.go
generated
vendored
@ -1,5 +1,5 @@
|
||||
/*
|
||||
Copyright (c) 2014-2016 VMware, Inc. All Rights Reserved.
|
||||
Copyright (c) 2014-2023 VMware, Inc. All Rights Reserved.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
@ -312,6 +312,7 @@ func (l Lister) ListComputeResource(ctx context.Context) ([]Element, error) {
|
||||
|
||||
fields := []string{
|
||||
"host",
|
||||
"network",
|
||||
"resourcePool",
|
||||
}
|
||||
|
||||
@ -327,6 +328,7 @@ func (l Lister) ListComputeResource(ctx context.Context) ([]Element, error) {
|
||||
|
||||
childTypes := []string{
|
||||
"HostSystem",
|
||||
"Network",
|
||||
"ResourcePool",
|
||||
}
|
||||
|
||||
|
4
vendor/github.com/vmware/govmomi/lookup/client.go
generated
vendored
4
vendor/github.com/vmware/govmomi/lookup/client.go
generated
vendored
@ -125,7 +125,9 @@ func EndpointURL(ctx context.Context, c *vim25.Client, path string, filter *type
|
||||
path = endpoint.Url
|
||||
|
||||
if u, err := url.Parse(path); err == nil {
|
||||
if c.Thumbprint(u.Host) == "" {
|
||||
// Set thumbprint only for endpoints on hosts outside this vCenter.
|
||||
// Platform Services may live on multiple hosts.
|
||||
if c.URL().Host != u.Host && c.Thumbprint(u.Host) == "" {
|
||||
c.SetThumbprint(u.Host, endpointThumbprint(endpoint))
|
||||
}
|
||||
}
|
||||
|
5
vendor/github.com/vmware/govmomi/object/host_certificate_info.go
generated
vendored
5
vendor/github.com/vmware/govmomi/object/host_certificate_info.go
generated
vendored
@ -86,10 +86,7 @@ func (info *HostCertificateInfo) FromURL(u *url.URL, config *tls.Config) error {
|
||||
|
||||
conn, err := tls.Dial("tcp", addr, config)
|
||||
if err != nil {
|
||||
switch err.(type) {
|
||||
case x509.UnknownAuthorityError:
|
||||
case x509.HostnameError:
|
||||
default:
|
||||
if !soap.IsCertificateUntrusted(err) {
|
||||
return err
|
||||
}
|
||||
|
||||
|
13
vendor/github.com/vmware/govmomi/object/search_index.go
generated
vendored
13
vendor/github.com/vmware/govmomi/object/search_index.go
generated
vendored
@ -93,7 +93,18 @@ func (s SearchIndex) FindByInventoryPath(ctx context.Context, path string) (Refe
|
||||
if res.Returnval == nil {
|
||||
return nil, nil
|
||||
}
|
||||
return NewReference(s.c, *res.Returnval), nil
|
||||
|
||||
r := NewReference(s.c, *res.Returnval)
|
||||
|
||||
type common interface {
|
||||
SetInventoryPath(string)
|
||||
}
|
||||
|
||||
if c, ok := r.(common); ok {
|
||||
c.SetInventoryPath(path)
|
||||
}
|
||||
|
||||
return r, nil
|
||||
}
|
||||
|
||||
// FindByIp finds a virtual machine or host by IP address.
|
||||
|
47
vendor/github.com/vmware/govmomi/simulator/container.go
generated
vendored
47
vendor/github.com/vmware/govmomi/simulator/container.go
generated
vendored
@ -114,6 +114,20 @@ func (c *container) inspect(vm *VirtualMachine) error {
|
||||
net := &vm.Guest.Net[0]
|
||||
net.IpAddress = []string{s.IPAddress}
|
||||
net.MacAddress = s.MacAddress
|
||||
net.IpConfig = &types.NetIpConfigInfo{
|
||||
IpAddress: []types.NetIpConfigInfoIpAddress{{
|
||||
IpAddress: s.IPAddress,
|
||||
PrefixLength: int32(s.IPPrefixLen),
|
||||
State: string(types.NetIpConfigInfoIpAddressStatusPreferred),
|
||||
}},
|
||||
}
|
||||
}
|
||||
|
||||
for _, d := range vm.Config.Hardware.Device {
|
||||
if eth, ok := d.(types.BaseVirtualEthernetCard); ok {
|
||||
eth.GetVirtualEthernetCard().MacAddress = s.MacAddress
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -235,6 +249,8 @@ func (c *container) start(ctx *Context, vm *VirtualMachine) {
|
||||
|
||||
var args []string
|
||||
var env []string
|
||||
mountDMI := true
|
||||
ports := make(map[string]string)
|
||||
|
||||
for _, opt := range vm.Config.ExtraConfig {
|
||||
val := opt.GetOptionValue()
|
||||
@ -247,6 +263,23 @@ func (c *container) start(ctx *Context, vm *VirtualMachine) {
|
||||
|
||||
continue
|
||||
}
|
||||
if val.Key == "RUN.mountdmi" {
|
||||
var mount bool
|
||||
err := json.Unmarshal([]byte(val.Value.(string)), &mount)
|
||||
if err == nil {
|
||||
mountDMI = mount
|
||||
}
|
||||
}
|
||||
if strings.HasPrefix(val.Key, "RUN.port.") {
|
||||
sKey := strings.Split(val.Key, ".")
|
||||
containerPort := sKey[len(sKey)-1]
|
||||
ports[containerPort] = val.Value.(string)
|
||||
}
|
||||
if strings.HasPrefix(val.Key, "RUN.env.") {
|
||||
sKey := strings.Split(val.Key, ".")
|
||||
envKey := sKey[len(sKey)-1]
|
||||
env = append(env, "--env", fmt.Sprintf("%s=%s", envKey, val.Value.(string)))
|
||||
}
|
||||
if strings.HasPrefix(val.Key, "guestinfo.") {
|
||||
key := strings.Replace(strings.ToUpper(val.Key), ".", "_", -1)
|
||||
env = append(env, "--env", fmt.Sprintf("VMX_%s=%s", key, val.Value.(string)))
|
||||
@ -260,14 +293,22 @@ func (c *container) start(ctx *Context, vm *VirtualMachine) {
|
||||
// Configure env as the data access method for cloud-init-vmware-guestinfo
|
||||
env = append(env, "--env", "VMX_GUESTINFO=true")
|
||||
}
|
||||
if len(ports) != 0 {
|
||||
// Publish the specified container ports
|
||||
for containerPort, hostPort := range ports {
|
||||
env = append(env, "-p", fmt.Sprintf("%s:%s", hostPort, containerPort))
|
||||
}
|
||||
}
|
||||
|
||||
c.name = fmt.Sprintf("vcsim-%s-%s", sanitizeName(vm.Name), vm.uid)
|
||||
run := append([]string{"docker", "run", "-d", "--name", c.name}, env...)
|
||||
|
||||
if err := c.createDMI(vm, c.name); err != nil {
|
||||
return
|
||||
if mountDMI {
|
||||
if err := c.createDMI(vm, c.name); err != nil {
|
||||
return
|
||||
}
|
||||
run = append(run, "-v", fmt.Sprintf("%s:%s:ro", c.name, "/sys/class/dmi/id"))
|
||||
}
|
||||
run = append(run, "-v", fmt.Sprintf("%s:%s:ro", c.name, "/sys/class/dmi/id"))
|
||||
|
||||
args = append(run, args...)
|
||||
cmd := exec.Command(shell, "-c", strings.Join(args, " "))
|
||||
|
2
vendor/github.com/vmware/govmomi/simulator/esx/host_system.go
generated
vendored
2
vendor/github.com/vmware/govmomi/simulator/esx/host_system.go
generated
vendored
@ -52,7 +52,7 @@ var HostSystem = mo.HostSystem{
|
||||
DynamicData: types.DynamicData{},
|
||||
ConnectionState: "connected",
|
||||
PowerState: "poweredOn",
|
||||
StandbyMode: "",
|
||||
StandbyMode: "none",
|
||||
InMaintenanceMode: false,
|
||||
BootTime: (*time.Time)(nil),
|
||||
HealthSystemRuntime: &types.HealthSystemRuntime{
|
||||
|
47
vendor/github.com/vmware/govmomi/simulator/guest_id.go
generated
vendored
47
vendor/github.com/vmware/govmomi/simulator/guest_id.go
generated
vendored
@ -53,9 +53,22 @@ var GuestID = []types.VirtualMachineGuestOsIdentifier{
|
||||
types.VirtualMachineGuestOsIdentifierWindows9Guest,
|
||||
types.VirtualMachineGuestOsIdentifierWindows9_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierWindows9Server64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierWindows11_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierWindows12_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierWindowsHyperVGuest,
|
||||
types.VirtualMachineGuestOsIdentifierWindows2019srv_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierWindows2019srvNext_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierWindows2022srvNext_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierFreebsdGuest,
|
||||
types.VirtualMachineGuestOsIdentifierFreebsd64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierFreebsd11Guest,
|
||||
types.VirtualMachineGuestOsIdentifierFreebsd11_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierFreebsd12Guest,
|
||||
types.VirtualMachineGuestOsIdentifierFreebsd12_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierFreebsd13Guest,
|
||||
types.VirtualMachineGuestOsIdentifierFreebsd13_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierFreebsd14Guest,
|
||||
types.VirtualMachineGuestOsIdentifierFreebsd14_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierRedhatGuest,
|
||||
types.VirtualMachineGuestOsIdentifierRhel2Guest,
|
||||
types.VirtualMachineGuestOsIdentifierRhel3Guest,
|
||||
@ -68,18 +81,24 @@ var GuestID = []types.VirtualMachineGuestOsIdentifier{
|
||||
types.VirtualMachineGuestOsIdentifierRhel6_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierRhel7Guest,
|
||||
types.VirtualMachineGuestOsIdentifierRhel7_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierRhel8_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierRhel9_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierCentosGuest,
|
||||
types.VirtualMachineGuestOsIdentifierCentos64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierCentos6Guest,
|
||||
types.VirtualMachineGuestOsIdentifierCentos6_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierCentos7Guest,
|
||||
types.VirtualMachineGuestOsIdentifierCentos7_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierCentos8_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierCentos9_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierOracleLinuxGuest,
|
||||
types.VirtualMachineGuestOsIdentifierOracleLinux64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierOracleLinux6Guest,
|
||||
types.VirtualMachineGuestOsIdentifierOracleLinux6_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierOracleLinux7Guest,
|
||||
types.VirtualMachineGuestOsIdentifierOracleLinux7_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierOracleLinux8_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierOracleLinux9_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierSuseGuest,
|
||||
types.VirtualMachineGuestOsIdentifierSuse64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierSlesGuest,
|
||||
@ -90,6 +109,8 @@ var GuestID = []types.VirtualMachineGuestOsIdentifier{
|
||||
types.VirtualMachineGuestOsIdentifierSles11_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierSles12Guest,
|
||||
types.VirtualMachineGuestOsIdentifierSles12_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierSles15_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierSles16_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierNld9Guest,
|
||||
types.VirtualMachineGuestOsIdentifierOesGuest,
|
||||
types.VirtualMachineGuestOsIdentifierSjdsGuest,
|
||||
@ -114,12 +135,18 @@ var GuestID = []types.VirtualMachineGuestOsIdentifier{
|
||||
types.VirtualMachineGuestOsIdentifierDebian9_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierDebian10Guest,
|
||||
types.VirtualMachineGuestOsIdentifierDebian10_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierDebian11Guest,
|
||||
types.VirtualMachineGuestOsIdentifierDebian11_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierDebian12Guest,
|
||||
types.VirtualMachineGuestOsIdentifierDebian12_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierAsianux3Guest,
|
||||
types.VirtualMachineGuestOsIdentifierAsianux3_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierAsianux4Guest,
|
||||
types.VirtualMachineGuestOsIdentifierAsianux4_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierAsianux5_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierAsianux7_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierAsianux8_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierAsianux9_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierOpensuseGuest,
|
||||
types.VirtualMachineGuestOsIdentifierOpensuse64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierFedoraGuest,
|
||||
@ -130,10 +157,16 @@ var GuestID = []types.VirtualMachineGuestOsIdentifier{
|
||||
types.VirtualMachineGuestOsIdentifierOther26xLinuxGuest,
|
||||
types.VirtualMachineGuestOsIdentifierOtherLinuxGuest,
|
||||
types.VirtualMachineGuestOsIdentifierOther3xLinuxGuest,
|
||||
types.VirtualMachineGuestOsIdentifierOther4xLinuxGuest,
|
||||
types.VirtualMachineGuestOsIdentifierOther5xLinuxGuest,
|
||||
types.VirtualMachineGuestOsIdentifierOther6xLinuxGuest,
|
||||
types.VirtualMachineGuestOsIdentifierGenericLinuxGuest,
|
||||
types.VirtualMachineGuestOsIdentifierOther24xLinux64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierOther26xLinux64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierOther3xLinux64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierOther4xLinux64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierOther5xLinux64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierOther6xLinux64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierOtherLinux64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierSolaris6Guest,
|
||||
types.VirtualMachineGuestOsIdentifierSolaris7Guest,
|
||||
@ -162,10 +195,24 @@ var GuestID = []types.VirtualMachineGuestOsIdentifier{
|
||||
types.VirtualMachineGuestOsIdentifierDarwin14_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierDarwin15_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierDarwin16_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierDarwin17_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierDarwin18_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierDarwin19_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierDarwin20_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierDarwin21_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierDarwin22_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierDarwin23_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierVmkernelGuest,
|
||||
types.VirtualMachineGuestOsIdentifierVmkernel5Guest,
|
||||
types.VirtualMachineGuestOsIdentifierVmkernel6Guest,
|
||||
types.VirtualMachineGuestOsIdentifierVmkernel65Guest,
|
||||
types.VirtualMachineGuestOsIdentifierVmkernel7Guest,
|
||||
types.VirtualMachineGuestOsIdentifierVmkernel8Guest,
|
||||
types.VirtualMachineGuestOsIdentifierAmazonlinux2_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierAmazonlinux3_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierCrxPod1Guest,
|
||||
types.VirtualMachineGuestOsIdentifierRockylinux_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierAlmalinux_64Guest,
|
||||
types.VirtualMachineGuestOsIdentifierOtherGuest,
|
||||
types.VirtualMachineGuestOsIdentifierOtherGuest64,
|
||||
}
|
||||
|
65
vendor/github.com/vmware/govmomi/simulator/performance_manager.go
generated
vendored
65
vendor/github.com/vmware/govmomi/simulator/performance_manager.go
generated
vendored
@ -19,6 +19,7 @@ package simulator
|
||||
import (
|
||||
"math/rand"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/vmware/govmomi/simulator/esx"
|
||||
@ -174,9 +175,6 @@ func (p *PerformanceManager) QueryPerf(ctx *Context, req *types.QueryPerf) soap.
|
||||
body.Res.Returnval = make([]types.BasePerfEntityMetricBase, len(req.QuerySpec))
|
||||
|
||||
for i, qs := range req.QuerySpec {
|
||||
metrics := new(types.PerfEntityMetric)
|
||||
metrics.Entity = qs.Entity
|
||||
|
||||
// Get metric data for this entity type
|
||||
metricData, ok := p.metricData[qs.Entity.Type]
|
||||
if !ok {
|
||||
@ -202,10 +200,13 @@ func (p *PerformanceManager) QueryPerf(ctx *Context, req *types.QueryPerf) soap.
|
||||
interval = 20 // TODO: Determine from entity type
|
||||
}
|
||||
n := 1 + int32(end.Sub(start).Seconds())/interval
|
||||
if n > qs.MaxSample {
|
||||
if qs.MaxSample > 0 && n > qs.MaxSample {
|
||||
n = qs.MaxSample
|
||||
}
|
||||
|
||||
metrics := new(types.PerfEntityMetric)
|
||||
metrics.Entity = qs.Entity
|
||||
|
||||
// Loop through each interval "tick"
|
||||
metrics.SampleInfo = make([]types.PerfSampleInfo, n)
|
||||
metrics.Value = make([]types.BasePerfMetricSeries, len(qs.MetricId))
|
||||
@ -213,10 +214,11 @@ func (p *PerformanceManager) QueryPerf(ctx *Context, req *types.QueryPerf) soap.
|
||||
metrics.SampleInfo[tick] = types.PerfSampleInfo{Timestamp: end.Add(time.Duration(-interval*tick) * time.Second), Interval: interval}
|
||||
}
|
||||
|
||||
series := make([]*types.PerfMetricIntSeries, len(qs.MetricId))
|
||||
for j, mid := range qs.MetricId {
|
||||
// Create list of metrics for this tick
|
||||
series := &types.PerfMetricIntSeries{Value: make([]int64, n)}
|
||||
series.Id = mid
|
||||
series[j] = &types.PerfMetricIntSeries{Value: make([]int64, n)}
|
||||
series[j].Id = mid
|
||||
points := metricData[mid.CounterId]
|
||||
offset := int64(start.Unix()) / int64(interval)
|
||||
|
||||
@ -237,11 +239,56 @@ func (p *PerformanceManager) QueryPerf(ctx *Context, req *types.QueryPerf) soap.
|
||||
} else {
|
||||
p = 0
|
||||
}
|
||||
series.Value[tick] = p
|
||||
series[j].Value[tick] = p
|
||||
}
|
||||
metrics.Value[j] = series
|
||||
metrics.Value[j] = series[j]
|
||||
}
|
||||
|
||||
if qs.Format == string(types.PerfFormatCsv) {
|
||||
metricsCsv := new(types.PerfEntityMetricCSV)
|
||||
metricsCsv.Entity = qs.Entity
|
||||
|
||||
//PerfSampleInfo encoded in the following CSV format: [interval1], [date1], [interval2], [date2], and so on.
|
||||
metricsCsv.SampleInfoCSV = sampleInfoCSV(metrics)
|
||||
metricsCsv.Value = make([]types.PerfMetricSeriesCSV, len(qs.MetricId))
|
||||
|
||||
for j, mid := range qs.MetricId {
|
||||
seriesCsv := &types.PerfMetricSeriesCSV{Value: ""}
|
||||
seriesCsv.Id = mid
|
||||
seriesCsv.Value = valueCSV(series[j])
|
||||
metricsCsv.Value[j] = *seriesCsv
|
||||
}
|
||||
|
||||
body.Res.Returnval[i] = metricsCsv
|
||||
} else {
|
||||
body.Res.Returnval[i] = metrics
|
||||
}
|
||||
body.Res.Returnval[i] = metrics
|
||||
}
|
||||
return body
|
||||
}
|
||||
|
||||
// sampleInfoCSV converts the SampleInfo field to a CSV string
|
||||
func sampleInfoCSV(m *types.PerfEntityMetric) string {
|
||||
values := make([]string, len(m.SampleInfo)*2)
|
||||
|
||||
i := 0
|
||||
for _, s := range m.SampleInfo {
|
||||
values[i] = strconv.Itoa(int(s.Interval))
|
||||
i++
|
||||
values[i] = s.Timestamp.Format(time.RFC3339)
|
||||
i++
|
||||
}
|
||||
|
||||
return strings.Join(values, ",")
|
||||
}
|
||||
|
||||
// valueCSV converts the Value field to a CSV string
|
||||
func valueCSV(s *types.PerfMetricIntSeries) string {
|
||||
values := make([]string, len(s.Value))
|
||||
|
||||
for i := range s.Value {
|
||||
values[i] = strconv.FormatInt(s.Value[i], 10)
|
||||
}
|
||||
|
||||
return strings.Join(values, ",")
|
||||
}
|
||||
|
11
vendor/github.com/vmware/govmomi/simulator/search_index.go
generated
vendored
11
vendor/github.com/vmware/govmomi/simulator/search_index.go
generated
vendored
@ -53,6 +53,14 @@ func (s *SearchIndex) FindByDatastorePath(r *types.FindByDatastorePath) soap.Has
|
||||
func (s *SearchIndex) FindByInventoryPath(req *types.FindByInventoryPath) soap.HasFault {
|
||||
body := &methods.FindByInventoryPathBody{Res: new(types.FindByInventoryPathResponse)}
|
||||
|
||||
root := Map.content().RootFolder
|
||||
o := &root
|
||||
|
||||
if req.InventoryPath == "/" {
|
||||
body.Res.Returnval = o
|
||||
return body
|
||||
}
|
||||
|
||||
split := func(c rune) bool {
|
||||
return c == '/'
|
||||
}
|
||||
@ -61,9 +69,6 @@ func (s *SearchIndex) FindByInventoryPath(req *types.FindByInventoryPath) soap.H
|
||||
return body
|
||||
}
|
||||
|
||||
root := Map.content().RootFolder
|
||||
o := &root
|
||||
|
||||
for _, name := range path {
|
||||
f := s.FindChild(&types.FindChild{Entity: *o, Name: name})
|
||||
|
||||
|
25
vendor/github.com/vmware/govmomi/simulator/session_manager.go
generated
vendored
25
vendor/github.com/vmware/govmomi/simulator/session_manager.go
generated
vendored
@ -1,11 +1,11 @@
|
||||
/*
|
||||
Copyright (c) 2017-2018 VMware, Inc. All Rights Reserved.
|
||||
Copyright (c) 2017-2023 VMware, Inc. All Rights Reserved.
|
||||
|
||||
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
|
||||
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,
|
||||
@ -20,6 +20,7 @@ import (
|
||||
"context"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"os"
|
||||
"reflect"
|
||||
"strings"
|
||||
@ -41,6 +42,7 @@ type SessionManager struct {
|
||||
|
||||
ServiceHostName string
|
||||
TLSCert func() string
|
||||
ValidLogin func(*types.Login) bool
|
||||
|
||||
sessions map[string]Session
|
||||
}
|
||||
@ -106,22 +108,23 @@ func (m *SessionManager) putSession(s Session) {
|
||||
m.sessions[s.Key] = s
|
||||
}
|
||||
|
||||
func (s *SessionManager) validLogin(ctx *Context, req *types.Login) bool {
|
||||
if ctx.Session != nil {
|
||||
return false
|
||||
}
|
||||
user := ctx.svc.Listen.User
|
||||
if user == nil || user == DefaultLogin {
|
||||
func (s *SessionManager) Authenticate(u url.URL, req *types.Login) bool {
|
||||
if u.User == nil || u.User == DefaultLogin {
|
||||
return req.UserName != "" && req.Password != ""
|
||||
}
|
||||
pass, _ := user.Password()
|
||||
return req.UserName == user.Username() && req.Password == pass
|
||||
|
||||
if s.ValidLogin != nil {
|
||||
return s.ValidLogin(req)
|
||||
}
|
||||
|
||||
pass, _ := u.User.Password()
|
||||
return req.UserName == u.User.Username() && req.Password == pass
|
||||
}
|
||||
|
||||
func (s *SessionManager) Login(ctx *Context, req *types.Login) soap.HasFault {
|
||||
body := new(methods.LoginBody)
|
||||
|
||||
if s.validLogin(ctx, req) {
|
||||
if ctx.Session == nil && s.Authenticate(*ctx.svc.Listen, req) {
|
||||
body.Res = &types.LoginResponse{
|
||||
Returnval: createSession(ctx, req.UserName, req.Locale),
|
||||
}
|
||||
|
4
vendor/github.com/vmware/govmomi/simulator/view_manager.go
generated
vendored
4
vendor/github.com/vmware/govmomi/simulator/view_manager.go
generated
vendored
@ -1,5 +1,5 @@
|
||||
/*
|
||||
Copyright (c) 2017 VMware, Inc. All Rights Reserved.
|
||||
Copyright (c) 2017-2023 VMware, Inc. All Rights Reserved.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
@ -154,6 +154,8 @@ func walk(root mo.Reference, f func(child types.ManagedObjectReference)) {
|
||||
children = []types.ManagedObjectReference{e.VmFolder, e.HostFolder, e.DatastoreFolder, e.NetworkFolder}
|
||||
case *mo.Folder:
|
||||
children = e.ChildEntity
|
||||
case *mo.StoragePod:
|
||||
children = e.ChildEntity
|
||||
case *mo.ComputeResource:
|
||||
children = e.Host
|
||||
children = append(children, *e.ResourcePool)
|
||||
|
15
vendor/github.com/vmware/govmomi/vapi/simulator/simulator.go
generated
vendored
15
vendor/github.com/vmware/govmomi/vapi/simulator/simulator.go
generated
vendored
@ -1,11 +1,11 @@
|
||||
/*
|
||||
Copyright (c) 2018-2022 VMware, Inc. All Rights Reserved.
|
||||
Copyright (c) 2018-2023 VMware, Inc. All Rights Reserved.
|
||||
|
||||
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
|
||||
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,
|
||||
@ -88,6 +88,7 @@ type download struct {
|
||||
|
||||
type handler struct {
|
||||
sync.Mutex
|
||||
sm *simulator.SessionManager
|
||||
ServeMux *http.ServeMux
|
||||
URL url.URL
|
||||
Category map[string]*tags.Category
|
||||
@ -104,7 +105,7 @@ type handler struct {
|
||||
func init() {
|
||||
simulator.RegisterEndpoint(func(s *simulator.Service, r *simulator.Registry) {
|
||||
if r.IsVPX() {
|
||||
patterns, h := New(s.Listen, r.OptionManager().Setting)
|
||||
patterns, h := New(s.Listen, r)
|
||||
for _, p := range patterns {
|
||||
s.Handle(p, h)
|
||||
}
|
||||
@ -113,8 +114,9 @@ func init() {
|
||||
}
|
||||
|
||||
// New creates a vAPI simulator.
|
||||
func New(u *url.URL, settings []vim.BaseOptionValue) ([]string, http.Handler) {
|
||||
func New(u *url.URL, r *simulator.Registry) ([]string, http.Handler) {
|
||||
s := &handler{
|
||||
sm: r.SessionManager(),
|
||||
ServeMux: http.NewServeMux(),
|
||||
URL: *u,
|
||||
Category: make(map[string]*tags.Category),
|
||||
@ -237,10 +239,7 @@ func (s *handler) isAuthorized(r *http.Request) bool {
|
||||
func (s *handler) hasAuthorization(r *http.Request) (string, bool) {
|
||||
u, p, ok := r.BasicAuth()
|
||||
if ok { // user+pass auth
|
||||
if u == "" || p == "" {
|
||||
return u, false
|
||||
}
|
||||
return u, true
|
||||
return u, s.sm.Authenticate(s.URL, &vim.Login{UserName: u, Password: p})
|
||||
}
|
||||
auth := r.Header.Get("Authorization")
|
||||
return "TODO", strings.HasPrefix(auth, "SIGN ") // token auth
|
||||
|
26
vendor/github.com/vmware/govmomi/vim25/soap/client.go
generated
vendored
26
vendor/github.com/vmware/govmomi/vim25/soap/client.go
generated
vendored
@ -369,24 +369,10 @@ func (c *Client) dialTLSContext(
|
||||
return conn, nil
|
||||
}
|
||||
|
||||
switch err.(type) {
|
||||
case x509.UnknownAuthorityError:
|
||||
case x509.HostnameError:
|
||||
default:
|
||||
// Allow a thumbprint verification attempt if the error indicates
|
||||
// the failure was due to lack of trust.
|
||||
//
|
||||
// Please note the err variable is not a special type of x509 or HTTP
|
||||
// error that can be validated by a type assertion. The err variable is
|
||||
// in fact an *errors.errorString.
|
||||
switch {
|
||||
case strings.HasSuffix(err.Error(), "certificate is not trusted"):
|
||||
// darwin and linux
|
||||
case strings.HasSuffix(err.Error(), "certificate signed by unknown authority"):
|
||||
// windows
|
||||
default:
|
||||
return nil, err
|
||||
}
|
||||
// Allow a thumbprint verification attempt if the error indicates
|
||||
// the failure was due to lack of trust.
|
||||
if !IsCertificateUntrusted(err) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
thumbprint := c.Thumbprint(addr)
|
||||
@ -411,10 +397,6 @@ func (c *Client) dialTLSContext(
|
||||
return conn, nil
|
||||
}
|
||||
|
||||
func (c *Client) dialTLS(network, addr string) (net.Conn, error) {
|
||||
return c.dialTLSContext(context.Background(), network, addr)
|
||||
}
|
||||
|
||||
// splitHostPort is similar to net.SplitHostPort,
|
||||
// but rather than return error if there isn't a ':port',
|
||||
// return an empty string for the port.
|
||||
|
37
vendor/github.com/vmware/govmomi/vim25/soap/error.go
generated
vendored
37
vendor/github.com/vmware/govmomi/vim25/soap/error.go
generated
vendored
@ -17,9 +17,12 @@ limitations under the License.
|
||||
package soap
|
||||
|
||||
import (
|
||||
"crypto/x509"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"reflect"
|
||||
"strings"
|
||||
|
||||
"github.com/vmware/govmomi/vim25/types"
|
||||
)
|
||||
@ -127,3 +130,37 @@ func IsVimFault(err error) bool {
|
||||
func ToVimFault(err error) types.BaseMethodFault {
|
||||
return err.(vimFaultError).fault
|
||||
}
|
||||
|
||||
func IsCertificateUntrusted(err error) bool {
|
||||
// golang 1.20 introduce a new type to wrap 509 errors. So instead of
|
||||
// casting the type, now we check the error chain contains the
|
||||
// x509 error or not.
|
||||
x509UnknownAuthorityErr := &x509.UnknownAuthorityError{}
|
||||
ok := errors.As(err, x509UnknownAuthorityErr)
|
||||
if ok {
|
||||
return true
|
||||
}
|
||||
|
||||
x509HostNameErr := &x509.HostnameError{}
|
||||
ok = errors.As(err, x509HostNameErr)
|
||||
if ok {
|
||||
return true
|
||||
}
|
||||
|
||||
// The err variable may not be a special type of x509 or HTTP
|
||||
// error that can be validated by a type assertion. The err variable is
|
||||
// in fact be an *errors.errorString.
|
||||
|
||||
msgs := []string{
|
||||
"certificate is not trusted",
|
||||
"certificate signed by unknown authority",
|
||||
}
|
||||
|
||||
for _, msg := range msgs {
|
||||
if strings.HasSuffix(err.Error(), msg) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
4
vendor/modules.txt
vendored
4
vendor/modules.txt
vendored
@ -678,8 +678,8 @@ github.com/vishvananda/netlink/nl
|
||||
# github.com/vishvananda/netns v0.0.4
|
||||
## explicit; go 1.17
|
||||
github.com/vishvananda/netns
|
||||
# github.com/vmware/govmomi v0.30.0
|
||||
## explicit; go 1.17
|
||||
# github.com/vmware/govmomi v0.30.6
|
||||
## explicit; go 1.19
|
||||
github.com/vmware/govmomi
|
||||
github.com/vmware/govmomi/find
|
||||
github.com/vmware/govmomi/history
|
||||
|
Loading…
Reference in New Issue
Block a user