@@ -118,27 +118,14 @@ func Clone(ctx context.Context, vmCtx *capvcontext.VMContext, bootstrapData []by
118118 diskMoveType = linkCloneDiskMoveType
119119 }
120120
121- var folder * object.Folder
122-
123- folderRef := object .ReferenceFromString (vmCtx .VSphereVM .Spec .Folder )
124- if folderRef != nil {
125- folder = object .NewFolder (vmCtx .Session .Client .Client , * folderRef )
126- } else {
127- folder , err = vmCtx .Session .Finder .FolderOrDefault (ctx , vmCtx .VSphereVM .Spec .Folder )
128- if err != nil {
129- return errors .Wrapf (err , "unable to get folder %q for %s" , vmCtx .VSphereVM .Spec .Folder , vmCtx )
130- }
121+ folder , err := vmCtx .Session .Finder .FolderOrDefault (ctx , vmCtx .VSphereVM .Spec .Folder )
122+ if err != nil {
123+ return errors .Wrapf (err , "unable to get folder for %q" , vmCtx )
131124 }
132125
133- var pool * object.ResourcePool
134- poolRef := object .ReferenceFromString (vmCtx .VSphereVM .Spec .ResourcePool )
135- if poolRef != nil {
136- pool = object .NewResourcePool (vmCtx .Session .Client .Client , * poolRef )
137- } else {
138- pool , err = vmCtx .Session .Finder .ResourcePoolOrDefault (ctx , vmCtx .VSphereVM .Spec .ResourcePool )
139- if err != nil {
140- return errors .Wrapf (err , "unable to get resource pool %q for %q" , vmCtx .VSphereVM .Spec .ResourcePool , vmCtx )
141- }
126+ pool , err := vmCtx .Session .Finder .ResourcePoolOrDefault (ctx , vmCtx .VSphereVM .Spec .ResourcePool )
127+ if err != nil {
128+ return errors .Wrapf (err , "unable to get resource pool for %q" , vmCtx )
142129 }
143130
144131 devices , err := tpl .Device (ctx )
@@ -218,15 +205,11 @@ func Clone(ctx context.Context, vmCtx *capvcontext.VMContext, bootstrapData []by
218205
219206 var datastoreRef * types.ManagedObjectReference
220207 if vmCtx .VSphereVM .Spec .Datastore != "" {
221- datastoreRef = object .ReferenceFromString (vmCtx .VSphereVM .Spec .Datastore )
222- // Fallback to use the name in case Datastore is not a valid ref
223- if datastoreRef == nil {
224- datastore , err := vmCtx .Session .Finder .Datastore (ctx , vmCtx .VSphereVM .Spec .Datastore )
225- if err != nil {
226- return errors .Wrapf (err , "unable to get datastore %s for %q" , vmCtx .VSphereVM .Spec .Datastore , vmCtx )
227- }
228- datastoreRef = types .NewReference (datastore .Reference ())
208+ datastore , err := vmCtx .Session .Finder .Datastore (ctx , vmCtx .VSphereVM .Spec .Datastore )
209+ if err != nil {
210+ return errors .Wrapf (err , "unable to get datastore %s for %q" , vmCtx .VSphereVM .Spec .Datastore , vmCtx )
229211 }
212+ datastoreRef = types .NewReference (datastore .Reference ())
230213 spec .Location .Datastore = datastoreRef
231214 }
232215
0 commit comments