Added retransmissions in service call by e2e resource consumer library.

Added retransmissions in service call by e2e resource consumer library.
Fixes #43187.
This commit is contained in:
Jerzy Szczepkowski 2017-03-22 15:34:33 +01:00
parent ee255d09fa
commit fd6b982bfb

View File

@ -24,6 +24,7 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/intstr" "k8s.io/apimachinery/pkg/util/intstr"
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/api/v1"
autoscalingv1 "k8s.io/kubernetes/pkg/apis/autoscaling/v1" autoscalingv1 "k8s.io/kubernetes/pkg/apis/autoscaling/v1"
"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" "k8s.io/kubernetes/pkg/client/clientset_generated/clientset"
@ -52,6 +53,8 @@ const (
rsIsNil = "ERROR: replicaset = nil" rsIsNil = "ERROR: replicaset = nil"
invalidKind = "ERROR: invalid workload kind for resource consumer" invalidKind = "ERROR: invalid workload kind for resource consumer"
customMetricName = "QPS" customMetricName = "QPS"
serviceInitializationTimeout = 2 * time.Minute
serviceInitializationInterval = 15 * time.Second
) )
const ( const (
@ -223,15 +226,23 @@ func (rc *ResourceConsumer) sendConsumeCPURequest(millicores int) {
ctx, cancel := context.WithTimeout(context.Background(), framework.SingleCallTimeout) ctx, cancel := context.WithTimeout(context.Background(), framework.SingleCallTimeout)
defer cancel() defer cancel()
req := proxyRequest.Namespace(rc.framework.Namespace.Name). err = wait.PollImmediate(serviceInitializationInterval, serviceInitializationTimeout, func() (bool, error) {
Context(ctx). req := proxyRequest.Namespace(rc.framework.Namespace.Name).
Name(rc.controllerName). Context(ctx).
Suffix("ConsumeCPU"). Name(rc.controllerName).
Param("millicores", strconv.Itoa(millicores)). Suffix("ConsumeCPU").
Param("durationSec", strconv.Itoa(rc.consumptionTimeInSeconds)). Param("millicores", strconv.Itoa(millicores)).
Param("requestSizeMillicores", strconv.Itoa(rc.requestSizeInMillicores)) Param("durationSec", strconv.Itoa(rc.consumptionTimeInSeconds)).
framework.Logf("URL: %v", *req.URL()) Param("requestSizeMillicores", strconv.Itoa(rc.requestSizeInMillicores))
_, err = req.DoRaw() framework.Logf("ConsumeCPU URL: %v", *req.URL())
_, err := req.DoRaw()
if err != nil {
framework.Logf("ConsumeCPU failure: %v", err)
return false, nil
}
return true, nil
})
framework.ExpectNoError(err) framework.ExpectNoError(err)
} }
@ -243,15 +254,23 @@ func (rc *ResourceConsumer) sendConsumeMemRequest(megabytes int) {
ctx, cancel := context.WithTimeout(context.Background(), framework.SingleCallTimeout) ctx, cancel := context.WithTimeout(context.Background(), framework.SingleCallTimeout)
defer cancel() defer cancel()
req := proxyRequest.Namespace(rc.framework.Namespace.Name). err = wait.PollImmediate(serviceInitializationInterval, serviceInitializationTimeout, func() (bool, error) {
Context(ctx). req := proxyRequest.Namespace(rc.framework.Namespace.Name).
Name(rc.controllerName). Context(ctx).
Suffix("ConsumeMem"). Name(rc.controllerName).
Param("megabytes", strconv.Itoa(megabytes)). Suffix("ConsumeMem").
Param("durationSec", strconv.Itoa(rc.consumptionTimeInSeconds)). Param("megabytes", strconv.Itoa(megabytes)).
Param("requestSizeMegabytes", strconv.Itoa(rc.requestSizeInMegabytes)) Param("durationSec", strconv.Itoa(rc.consumptionTimeInSeconds)).
framework.Logf("URL: %v", *req.URL()) Param("requestSizeMegabytes", strconv.Itoa(rc.requestSizeInMegabytes))
_, err = req.DoRaw() framework.Logf("ConsumeMem URL: %v", *req.URL())
_, err := req.DoRaw()
if err != nil {
framework.Logf("ConsumeMem failure: %v", err)
return false, nil
}
return true, nil
})
framework.ExpectNoError(err) framework.ExpectNoError(err)
} }
@ -263,16 +282,23 @@ func (rc *ResourceConsumer) sendConsumeCustomMetric(delta int) {
ctx, cancel := context.WithTimeout(context.Background(), framework.SingleCallTimeout) ctx, cancel := context.WithTimeout(context.Background(), framework.SingleCallTimeout)
defer cancel() defer cancel()
req := proxyRequest.Namespace(rc.framework.Namespace.Name). err = wait.PollImmediate(serviceInitializationInterval, serviceInitializationTimeout, func() (bool, error) {
Context(ctx). req := proxyRequest.Namespace(rc.framework.Namespace.Name).
Name(rc.controllerName). Context(ctx).
Suffix("BumpMetric"). Name(rc.controllerName).
Param("metric", customMetricName). Suffix("BumpMetric").
Param("delta", strconv.Itoa(delta)). Param("metric", customMetricName).
Param("durationSec", strconv.Itoa(rc.consumptionTimeInSeconds)). Param("delta", strconv.Itoa(delta)).
Param("requestSizeMetrics", strconv.Itoa(rc.requestSizeCustomMetric)) Param("durationSec", strconv.Itoa(rc.consumptionTimeInSeconds)).
framework.Logf("URL: %v", *req.URL()) Param("requestSizeMetrics", strconv.Itoa(rc.requestSizeCustomMetric))
_, err = req.DoRaw() framework.Logf("ConsumeCustomMetric URL: %v", *req.URL())
_, err := req.DoRaw()
if err != nil {
framework.Logf("ConsumeCustomMetric failure: %v", err)
return false, nil
}
return true, nil
})
framework.ExpectNoError(err) framework.ExpectNoError(err)
} }