@@ -941,7 +941,13 @@ func eventuallyFailToCreateVm(vm *kubevirtv1.VirtualMachine) bool {
941
941
}
942
942
943
943
func failVmCreationToIncreaseRejectedVmsMetrics (template * templatev1.Template ) {
944
- rejectedCountBefore := totalRejectedVmsMetricsValue ()
944
+ var rejectedCountBefore int
945
+ Eventually (func () error {
946
+ var err error
947
+ rejectedCountBefore , err = totalRejectedVmsMetricsValue ()
948
+ return err
949
+ }, env .ShortTimeout (), time .Second ).Should (Succeed ())
950
+
945
951
vmi := NewRandomVMIWithBridgeInterface (strategy .GetNamespace ())
946
952
// set values that will fail validation
947
953
vmi = addDomainResourcesToVMI (vmi , 2 , "test" , "128M" )
@@ -951,22 +957,38 @@ func failVmCreationToIncreaseRejectedVmsMetrics(template *templatev1.Template) {
951
957
labels .AnnotationTemplateNamespaceKey : template .Namespace ,
952
958
}
953
959
eventuallyFailToCreateVm (vm )
954
- Expect (totalRejectedVmsMetricsValue () - rejectedCountBefore ).To (Equal (1 ))
960
+
961
+ var rejectedCountAfter int
962
+ Eventually (func () error {
963
+ var err error
964
+ rejectedCountAfter , err = totalRejectedVmsMetricsValue ()
965
+ return err
966
+ }, env .ShortTimeout (), time .Second ).Should (Succeed ())
967
+
968
+ Expect (rejectedCountAfter - rejectedCountBefore ).To (Equal (1 ))
969
+
955
970
err := apiClient .Delete (ctx , vm )
956
971
if ! errors .IsNotFound (err ) {
957
972
Expect (err ).ToNot (HaveOccurred (), "Failed to Delete VM" )
958
973
}
959
974
waitForDeletion (client .ObjectKeyFromObject (vm ), vm )
960
975
}
961
976
962
- func totalRejectedVmsMetricsValue () (sum int ) {
977
+ func totalRejectedVmsMetricsValue () (int , error ) {
963
978
pods , err := GetRunningPodsByLabel (validator .VirtTemplateValidator , validator .KubevirtIo , strategy .GetNamespace ())
964
979
Expect (err ).ToNot (HaveOccurred (), "Could not find the validator pods" )
965
980
Expect (pods .Items ).ToNot (BeEmpty ())
981
+
982
+ var sum int
966
983
for _ , validatorPod := range pods .Items {
967
- sum += intMetricValue ("kubevirt_ssp_template_validator_rejected_total" , validator .MetricsPort , & validatorPod )
984
+ const metricName = "kubevirt_ssp_template_validator_rejected_total"
985
+ value , err := intMetricValue (metricName , validator .MetricsPort , & validatorPod )
986
+ if err != nil {
987
+ return 0 , fmt .Errorf ("failed to read int metric %s from pod %s: %w" , metricName , validatorPod .Name , err )
988
+ }
989
+ sum += value
968
990
}
969
- return
991
+ return sum , nil
970
992
}
971
993
972
994
func addObjectsToTemplates (genName , validation string ) * templatev1.Template {
0 commit comments