Skip to content

Commit be229d9

Browse files
author
Valeriy Khorunzhin
committed
refactoring
Signed-off-by: Valeriy Khorunzhin <valeriy.khorunzhin@flant.com>
1 parent fc61ff0 commit be229d9

1 file changed

Lines changed: 47 additions & 39 deletions

File tree

  • images/virtualization-artifact/pkg/controller/vmsnapshot/internal

images/virtualization-artifact/pkg/controller/vmsnapshot/internal/life_cycle.go

Lines changed: 47 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -687,48 +687,20 @@ func (h LifeCycleHandler) fillStatusResources(ctx context.Context, vmSnapshot *v
687687
vmSnapshot.Status.Resources = append(vmSnapshot.Status.Resources, virtv2.ResourceRef{
688688
Kind: vmip.Kind,
689689
ApiVersion: vmip.APIVersion,
690-
Name: vmip.APIVersion,
690+
Name: vmip.Name,
691691
})
692692
}
693693

694-
if vm.Spec.Provisioning != nil {
695-
var provisioningSecretName string
696-
697-
switch vm.Spec.Provisioning.Type {
698-
case virtv2.ProvisioningTypeSysprepRef:
699-
if vm.Spec.Provisioning.SysprepRef == nil {
700-
return errors.New("the virtual machine sysprep ref provisioning is nil")
701-
}
702-
703-
if vm.Spec.Provisioning.SysprepRef.Kind == virtv2.SysprepRefKindSecret {
704-
provisioningSecretName = vm.Spec.Provisioning.SysprepRef.Name
705-
}
706-
707-
case virtv2.ProvisioningTypeUserDataRef:
708-
if vm.Spec.Provisioning.UserDataRef == nil {
709-
return errors.New("the virtual machine user data ref provisioning is nil")
710-
}
711-
712-
if vm.Spec.Provisioning.UserDataRef.Kind == virtv2.UserDataRefKindSecret {
713-
provisioningSecretName = vm.Spec.Provisioning.UserDataRef.Name
714-
}
715-
}
716-
717-
if provisioningSecretName != "" {
718-
secretKey := types.NamespacedName{Name: provisioningSecretName, Namespace: vm.Namespace}
719-
provisioner, err := object.FetchObject(ctx, secretKey, h.client, &corev1.Secret{})
720-
if err != nil {
721-
return err
722-
}
723-
724-
if provisioner != nil {
725-
vmSnapshot.Status.Resources = append(vmSnapshot.Status.Resources, virtv2.ResourceRef{
726-
Kind: provisioner.Kind,
727-
ApiVersion: provisioner.APIVersion,
728-
Name: provisioner.Name,
729-
})
730-
}
731-
}
694+
provisioner, err := h.getProvisionerFromVM(ctx, vm)
695+
if err != nil {
696+
return err
697+
}
698+
if provisioner != nil {
699+
vmSnapshot.Status.Resources = append(vmSnapshot.Status.Resources, virtv2.ResourceRef{
700+
Kind: provisioner.Kind,
701+
ApiVersion: provisioner.APIVersion,
702+
Name: provisioner.Name,
703+
})
732704
}
733705

734706
for _, bdr := range vm.Status.BlockDeviceRefs {
@@ -767,3 +739,39 @@ func (h LifeCycleHandler) fillStatusResources(ctx context.Context, vmSnapshot *v
767739

768740
return nil
769741
}
742+
743+
func (h LifeCycleHandler) getProvisionerFromVM(ctx context.Context, vm *virtv2.VirtualMachine) (*corev1.Secret, error) {
744+
if vm.Spec.Provisioning != nil {
745+
var provisioningSecretName string
746+
747+
switch vm.Spec.Provisioning.Type {
748+
case virtv2.ProvisioningTypeSysprepRef:
749+
if vm.Spec.Provisioning.SysprepRef == nil {
750+
return nil, errors.New("the virtual machine sysprep ref provisioning is nil")
751+
}
752+
753+
if vm.Spec.Provisioning.SysprepRef.Kind == virtv2.SysprepRefKindSecret {
754+
provisioningSecretName = vm.Spec.Provisioning.SysprepRef.Name
755+
}
756+
757+
case virtv2.ProvisioningTypeUserDataRef:
758+
if vm.Spec.Provisioning.UserDataRef == nil {
759+
return nil, errors.New("the virtual machine user data ref provisioning is nil")
760+
}
761+
762+
if vm.Spec.Provisioning.UserDataRef.Kind == virtv2.UserDataRefKindSecret {
763+
provisioningSecretName = vm.Spec.Provisioning.UserDataRef.Name
764+
}
765+
}
766+
767+
if provisioningSecretName != "" {
768+
secretKey := types.NamespacedName{Name: provisioningSecretName, Namespace: vm.Namespace}
769+
provisioner, err := object.FetchObject(ctx, secretKey, h.client, &corev1.Secret{})
770+
return provisioner, err
771+
} else {
772+
return nil, nil
773+
}
774+
} else {
775+
return nil, nil
776+
}
777+
}

0 commit comments

Comments
 (0)