Skip to content

Commit d96b1bd

Browse files
authored
fix(vm): nil pointer (#1193)
Fix panic if Cores were not specified in the vmclass's SizingPolicy. Signed-off-by: Isteb4k <dmitry.rakitin@flant.com>
1 parent aadcd60 commit d96b1bd

2 files changed

Lines changed: 9 additions & 1 deletion

File tree

images/virtualization-artifact/pkg/controller/service/size_policy_service.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ func NewSizePolicyService() *SizePolicyService {
3636

3737
func (s *SizePolicyService) CheckVMMatchedSizePolicy(vm *virtv2.VirtualMachine, vmClass *virtv2.VirtualMachineClass) error {
3838
// check if no sizing policy requirements are set
39-
if len(vmClass.Spec.SizingPolicies) == 0 {
39+
if vmClass == nil || len(vmClass.Spec.SizingPolicies) == 0 {
4040
return nil
4141
}
4242

@@ -63,6 +63,10 @@ func (s *SizePolicyService) CheckVMMatchedSizePolicy(vm *virtv2.VirtualMachine,
6363

6464
func getVMSizePolicy(vm *virtv2.VirtualMachine, vmClass *virtv2.VirtualMachineClass) *virtv2.SizingPolicy {
6565
for _, sp := range vmClass.Spec.SizingPolicies {
66+
if sp.Cores == nil {
67+
continue
68+
}
69+
6670
if vm.Spec.CPU.Cores >= sp.Cores.Min && vm.Spec.CPU.Cores <= sp.Cores.Max {
6771
return sp.DeepCopy()
6872
}

images/virtualization-artifact/pkg/controller/vmclass/internal/validators/sizing_policies_validator.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,10 @@ func HasCPUSizePoliciesCrosses(vmclass *v1alpha2.VirtualMachineClassSpec) bool {
6363
continue
6464
}
6565

66+
if policy1.Cores == nil || policy2.Cores == nil {
67+
continue
68+
}
69+
6670
if policy1.Cores.Min >= policy2.Cores.Min && policy1.Cores.Min <= policy2.Cores.Max {
6771
return true
6872
}

0 commit comments

Comments
 (0)