tag v0.155.0 Tagger: imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> Changes with 0.155.0 ---------------- * Fedora 43: add shadow-utils when LockRoot is enabled, update cloud-init service name (osbuild/images#1618) * Author: Achilleas Koutsou, Reviewers: Gianluca Zuccarelli, Michael Vogt * Update osbuild dependency commit ID to latest (osbuild/images#1609) * Author: SchutzBot, Reviewers: Achilleas Koutsou, Simon de Vlieger, Tomáš Hozza * Update snapshots to 20250626 (osbuild/images#1623) * Author: SchutzBot, Reviewers: Achilleas Koutsou, Simon de Vlieger * distro/rhel9: xz compress azure-cvm image type [HMS-8587] (osbuild/images#1620) * Author: Achilleas Koutsou, Reviewers: Simon de Vlieger, Tomáš Hozza * distro/rhel: introduce new image type: Azure SAP Apps [HMS-8738] (osbuild/images#1612) * Author: Achilleas Koutsou, Reviewers: Simon de Vlieger, Tomáš Hozza * distro/rhel: move ansible-core to sap_extras_pkgset (osbuild/images#1624) * Author: Achilleas Koutsou, Reviewers: Brian C. Lane, Tomáš Hozza * github/create-tag: allow passing the version when run manually (osbuild/images#1621) * Author: Achilleas Koutsou, Reviewers: Lukáš Zapletal, Tomáš Hozza * rhel9: move image-config into pure YAML (HMS-8593) (osbuild/images#1616) * Author: Michael Vogt, Reviewers: Achilleas Koutsou, Simon de Vlieger * test: split manifest checksums into separate files (osbuild/images#1625) * Author: Achilleas Koutsou, Reviewers: Simon de Vlieger, Tomáš Hozza — Somewhere on the Internet, 2025-06-30 --- tag v0.156.0 Tagger: imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> Changes with 0.156.0 ---------------- * Many: delete repositories for EOL distributions (HMS-7044) (osbuild/images#1607) * Author: Tomáš Hozza, Reviewers: Michael Vogt, Simon de Vlieger * RHSM/facts: add 'image-builder CLI' API type (osbuild/images#1640) * Author: Tomáš Hozza, Reviewers: Brian C. Lane, Simon de Vlieger * Update dependencies 2025-06-29 (osbuild/images#1628) * Author: SchutzBot, Reviewers: Simon de Vlieger, Tomáš Hozza * Update osbuild dependency commit ID to latest (osbuild/images#1627) * Author: SchutzBot, Reviewers: Simon de Vlieger, Tomáš Hozza * [RFC] image: drop `InstallWeakDeps` from image.DiskImage (osbuild/images#1642) * Author: Michael Vogt, Reviewers: Brian C. Lane, Simon de Vlieger, Tomáš Hozza * build(deps): bump the go-deps group across 1 directory with 3 updates (osbuild/images#1632) * Author: dependabot[bot], Reviewers: SchutzBot, Tomáš Hozza * distro/rhel10: xz compress azure-cvm image type (osbuild/images#1638) * Author: Achilleas Koutsou, Reviewers: Brian C. Lane, Simon de Vlieger * distro: cleanup/refactor distro/{defs,generic} (HMS-8744) (osbuild/images#1570) * Author: Michael Vogt, Reviewers: Simon de Vlieger, Tomáš Hozza * distro: remove some hardcoded values from generic/images.go (osbuild/images#1636) * Author: Michael Vogt, Reviewers: Simon de Vlieger, Tomáš Hozza * distro: small tweaks for the YAML based imagetypes (osbuild/images#1622) * Author: Michael Vogt, Reviewers: Brian C. Lane, Simon de Vlieger * fedora/wsl: packages and locale (osbuild/images#1635) * Author: Simon de Vlieger, Reviewers: Michael Vogt, Tomáš Hozza * image/many: make compression more generic (osbuild/images#1634) * Author: Simon de Vlieger, Reviewers: Brian C. Lane, Michael Vogt * manifest: handle content template name with spaces (osbuild/images#1641) * Author: Bryttanie, Reviewers: Brian C. Lane, Michael Vogt, Tomáš Hozza * many: implement gzip (osbuild/images#1633) * Author: Simon de Vlieger, Reviewers: Michael Vogt, Tomáš Hozza * rhel/azure: set GRUB_TERMINAL based on architecture [RHEL-91383] (osbuild/images#1626) * Author: Achilleas Koutsou, Reviewers: Simon de Vlieger, Tomáš Hozza — Somewhere on the Internet, 2025-07-07 ---
142 lines
3.3 KiB
Go
142 lines
3.3 KiB
Go
// © Broadcom. All Rights Reserved.
|
|
// The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package object
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"net"
|
|
|
|
"github.com/vmware/govmomi/internal"
|
|
"github.com/vmware/govmomi/vim25"
|
|
"github.com/vmware/govmomi/vim25/methods"
|
|
"github.com/vmware/govmomi/vim25/mo"
|
|
"github.com/vmware/govmomi/vim25/types"
|
|
)
|
|
|
|
type HostSystem struct {
|
|
Common
|
|
}
|
|
|
|
func NewHostSystem(c *vim25.Client, ref types.ManagedObjectReference) *HostSystem {
|
|
return &HostSystem{
|
|
Common: NewCommon(c, ref),
|
|
}
|
|
}
|
|
|
|
func (h HostSystem) ConfigManager() *HostConfigManager {
|
|
return NewHostConfigManager(h.c, h.Reference())
|
|
}
|
|
|
|
func (h HostSystem) ResourcePool(ctx context.Context) (*ResourcePool, error) {
|
|
var mh mo.HostSystem
|
|
|
|
err := h.Properties(ctx, h.Reference(), []string{"parent"}, &mh)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
var mcr *mo.ComputeResource
|
|
var parent any
|
|
|
|
switch mh.Parent.Type {
|
|
case "ComputeResource":
|
|
mcr = new(mo.ComputeResource)
|
|
parent = mcr
|
|
case "ClusterComputeResource":
|
|
mcc := new(mo.ClusterComputeResource)
|
|
mcr = &mcc.ComputeResource
|
|
parent = mcc
|
|
default:
|
|
return nil, fmt.Errorf("unknown host parent type: %s", mh.Parent.Type)
|
|
}
|
|
|
|
err = h.Properties(ctx, *mh.Parent, []string{"resourcePool"}, parent)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
pool := NewResourcePool(h.c, *mcr.ResourcePool)
|
|
return pool, nil
|
|
}
|
|
|
|
func (h HostSystem) ManagementIPs(ctx context.Context) ([]net.IP, error) {
|
|
var mh mo.HostSystem
|
|
|
|
err := h.Properties(ctx, h.Reference(), []string{"config.virtualNicManagerInfo.netConfig"}, &mh)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
config := mh.Config
|
|
if config == nil {
|
|
return nil, nil
|
|
}
|
|
|
|
info := config.VirtualNicManagerInfo
|
|
if info == nil {
|
|
return nil, nil
|
|
}
|
|
|
|
return internal.HostSystemManagementIPs(info.NetConfig), nil
|
|
}
|
|
|
|
func (h HostSystem) Disconnect(ctx context.Context) (*Task, error) {
|
|
req := types.DisconnectHost_Task{
|
|
This: h.Reference(),
|
|
}
|
|
|
|
res, err := methods.DisconnectHost_Task(ctx, h.c, &req)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return NewTask(h.c, res.Returnval), nil
|
|
}
|
|
|
|
func (h HostSystem) Reconnect(ctx context.Context, cnxSpec *types.HostConnectSpec, reconnectSpec *types.HostSystemReconnectSpec) (*Task, error) {
|
|
req := types.ReconnectHost_Task{
|
|
This: h.Reference(),
|
|
CnxSpec: cnxSpec,
|
|
ReconnectSpec: reconnectSpec,
|
|
}
|
|
|
|
res, err := methods.ReconnectHost_Task(ctx, h.c, &req)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return NewTask(h.c, res.Returnval), nil
|
|
}
|
|
|
|
func (h HostSystem) EnterMaintenanceMode(ctx context.Context, timeout int32, evacuate bool, spec *types.HostMaintenanceSpec) (*Task, error) {
|
|
req := types.EnterMaintenanceMode_Task{
|
|
This: h.Reference(),
|
|
Timeout: timeout,
|
|
EvacuatePoweredOffVms: types.NewBool(evacuate),
|
|
MaintenanceSpec: spec,
|
|
}
|
|
|
|
res, err := methods.EnterMaintenanceMode_Task(ctx, h.c, &req)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return NewTask(h.c, res.Returnval), nil
|
|
}
|
|
|
|
func (h HostSystem) ExitMaintenanceMode(ctx context.Context, timeout int32) (*Task, error) {
|
|
req := types.ExitMaintenanceMode_Task{
|
|
This: h.Reference(),
|
|
Timeout: timeout,
|
|
}
|
|
|
|
res, err := methods.ExitMaintenanceMode_Task(ctx, h.c, &req)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return NewTask(h.c, res.Returnval), nil
|
|
}
|