Skip to content

Commit 700d242

Browse files
SPFZtenthirtyam
authored andcommitted
fix: BaseFromReference support for ClusterComputeResource
1 parent e78be71 commit 700d242

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

vsphere/internal/helper/computeresource/compute_resource_helper.go

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,24 @@ type BaseComputeResource interface {
4040
String() string
4141
}
4242

43+
// ClusterFromID locates a ClusterComputeResource by its managed object reference ID.
44+
func ClusterFromID(client *govmomi.Client, id string) (*object.ClusterComputeResource, error) {
45+
finder := find.NewFinder(client.Client, false)
46+
47+
ref := types.ManagedObjectReference{
48+
Type: "ClusterComputeResource",
49+
Value: id,
50+
}
51+
52+
ctx, cancel := context.WithTimeout(context.Background(), provider.DefaultAPITimeout)
53+
defer cancel()
54+
obj, err := finder.ObjectReference(ctx, ref)
55+
if err != nil {
56+
return nil, err
57+
}
58+
return obj.(*object.ClusterComputeResource), nil
59+
}
60+
4361
// StandaloneFromID locates a ComputeResource by its managed object reference ID.
4462
//
4563
// Note this is for base level ComputeResource objects only, and should only be
@@ -123,7 +141,7 @@ func BaseFromReference(client *govmomi.Client, ref types.ManagedObjectReference)
123141
case "ComputeResource":
124142
return StandaloneFromID(client, ref.Value)
125143
case "ClusterComputeResource":
126-
return StandaloneFromID(client, ref.Value)
144+
return ClusterFromID(client, ref.Value)
127145
}
128146
return nil, fmt.Errorf("unknown object type %s", ref.Type)
129147
}

0 commit comments

Comments
 (0)