Commit d3a902ff authored by SataQiu's avatar SataQiu

e2e refactor: cleanup Logf form framework/util

parent a07b0272
...@@ -490,19 +490,19 @@ var _ = SIGDescribe("ServiceAccounts", func() { ...@@ -490,19 +490,19 @@ var _ = SIGDescribe("ServiceAccounts", func() {
pod, err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod) pod, err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod)
framework.ExpectNoError(err) framework.ExpectNoError(err)
framework.Logf("created pod") e2elog.Logf("created pod")
if !framework.CheckPodsRunningReady(f.ClientSet, f.Namespace.Name, []string{pod.Name}, time.Minute) { if !framework.CheckPodsRunningReady(f.ClientSet, f.Namespace.Name, []string{pod.Name}, time.Minute) {
framework.Failf("pod %q in ns %q never became ready", pod.Name, f.Namespace.Name) framework.Failf("pod %q in ns %q never became ready", pod.Name, f.Namespace.Name)
} }
framework.Logf("pod is ready") e2elog.Logf("pod is ready")
var logs string var logs string
if err := wait.Poll(1*time.Minute, 20*time.Minute, func() (done bool, err error) { if err := wait.Poll(1*time.Minute, 20*time.Minute, func() (done bool, err error) {
framework.Logf("polling logs") e2elog.Logf("polling logs")
logs, err = framework.GetPodLogs(f.ClientSet, f.Namespace.Name, "inclusterclient", "inclusterclient") logs, err = framework.GetPodLogs(f.ClientSet, f.Namespace.Name, "inclusterclient", "inclusterclient")
if err != nil { if err != nil {
framework.Logf("Error pulling logs: %v", err) e2elog.Logf("Error pulling logs: %v", err)
return false, nil return false, nil
} }
tokenCount, err := parseInClusterClientLogs(logs) tokenCount, err := parseInClusterClientLogs(logs)
...@@ -510,7 +510,7 @@ var _ = SIGDescribe("ServiceAccounts", func() { ...@@ -510,7 +510,7 @@ var _ = SIGDescribe("ServiceAccounts", func() {
return false, fmt.Errorf("inclusterclient reported an error: %v", err) return false, fmt.Errorf("inclusterclient reported an error: %v", err)
} }
if tokenCount < 2 { if tokenCount < 2 {
framework.Logf("Retrying. Still waiting to see more unique tokens: got=%d, want=2", tokenCount) e2elog.Logf("Retrying. Still waiting to see more unique tokens: got=%d, want=2", tokenCount)
return false, nil return false, nil
} }
return true, nil return true, nil
......
...@@ -109,6 +109,7 @@ go_library( ...@@ -109,6 +109,7 @@ go_library(
"//staging/src/k8s.io/component-base/cli/flag:go_default_library", "//staging/src/k8s.io/component-base/cli/flag:go_default_library",
"//test/e2e/framework/auth:go_default_library", "//test/e2e/framework/auth:go_default_library",
"//test/e2e/framework/ginkgowrapper:go_default_library", "//test/e2e/framework/ginkgowrapper:go_default_library",
"//test/e2e/framework/log:go_default_library",
"//test/e2e/framework/metrics:go_default_library", "//test/e2e/framework/metrics:go_default_library",
"//test/e2e/framework/ssh:go_default_library", "//test/e2e/framework/ssh:go_default_library",
"//test/e2e/framework/testfiles:go_default_library", "//test/e2e/framework/testfiles:go_default_library",
......
...@@ -33,6 +33,7 @@ import ( ...@@ -33,6 +33,7 @@ import (
"k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/client-go/kubernetes/scheme" "k8s.io/client-go/kubernetes/scheme"
"k8s.io/client-go/tools/cache" "k8s.io/client-go/tools/cache"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
"k8s.io/kubernetes/test/e2e/framework/testfiles" "k8s.io/kubernetes/test/e2e/framework/testfiles"
) )
...@@ -114,7 +115,7 @@ func visitManifests(cb func([]byte) error, files ...string) error { ...@@ -114,7 +115,7 @@ func visitManifests(cb func([]byte) error, files ...string) error {
func (f *Framework) PatchItems(items ...interface{}) error { func (f *Framework) PatchItems(items ...interface{}) error {
for _, item := range items { for _, item := range items {
// Uncomment when debugging the loading and patching of items. // Uncomment when debugging the loading and patching of items.
// Logf("patching original content of %T:\n%s", item, PrettyPrint(item)) // e2elog.Logf("patching original content of %T:\n%s", item, PrettyPrint(item))
if err := f.patchItemRecursively(item); err != nil { if err := f.patchItemRecursively(item); err != nil {
return err return err
} }
...@@ -153,7 +154,7 @@ func (f *Framework) CreateItems(items ...interface{}) (func(), error) { ...@@ -153,7 +154,7 @@ func (f *Framework) CreateItems(items ...interface{}) (func(), error) {
// to non-namespaced items. // to non-namespaced items.
for _, destructor := range destructors { for _, destructor := range destructors {
if err := destructor(); err != nil && !apierrs.IsNotFound(err) { if err := destructor(); err != nil && !apierrs.IsNotFound(err) {
Logf("deleting failed: %s", err) e2elog.Logf("deleting failed: %s", err)
} }
} }
} }
...@@ -166,12 +167,12 @@ func (f *Framework) CreateItems(items ...interface{}) (func(), error) { ...@@ -166,12 +167,12 @@ func (f *Framework) CreateItems(items ...interface{}) (func(), error) {
description := DescribeItem(item) description := DescribeItem(item)
// Uncomment this line to get a full dump of the entire item. // Uncomment this line to get a full dump of the entire item.
// description = fmt.Sprintf("%s:\n%s", description, PrettyPrint(item)) // description = fmt.Sprintf("%s:\n%s", description, PrettyPrint(item))
Logf("creating %s", description) e2elog.Logf("creating %s", description)
for _, factory := range factories { for _, factory := range factories {
destructor, err := factory.Create(f, item) destructor, err := factory.Create(f, item)
if destructor != nil { if destructor != nil {
destructors = append(destructors, func() error { destructors = append(destructors, func() error {
Logf("deleting %s", description) e2elog.Logf("deleting %s", description)
return destructor() return destructor()
}) })
} }
...@@ -399,7 +400,7 @@ func (*clusterRoleFactory) Create(f *Framework, i interface{}) (func() error, er ...@@ -399,7 +400,7 @@ func (*clusterRoleFactory) Create(f *Framework, i interface{}) (func() error, er
return nil, errorItemNotSupported return nil, errorItemNotSupported
} }
Logf("Define cluster role %v", item.GetName()) e2elog.Logf("Define cluster role %v", item.GetName())
client := f.ClientSet.RbacV1().ClusterRoles() client := f.ClientSet.RbacV1().ClusterRoles()
if _, err := client.Create(item); err != nil { if _, err := client.Create(item); err != nil {
return nil, errors.Wrap(err, "create ClusterRole") return nil, errors.Wrap(err, "create ClusterRole")
......
...@@ -30,6 +30,7 @@ import ( ...@@ -30,6 +30,7 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
clientset "k8s.io/client-go/kubernetes" clientset "k8s.io/client-go/kubernetes"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
) )
const ( const (
...@@ -42,12 +43,12 @@ func WaitForEndpoint(c clientset.Interface, ns, name string) error { ...@@ -42,12 +43,12 @@ func WaitForEndpoint(c clientset.Interface, ns, name string) error {
for t := time.Now(); time.Since(t) < registerTimeout; time.Sleep(framework.Poll) { for t := time.Now(); time.Since(t) < registerTimeout; time.Sleep(framework.Poll) {
endpoint, err := c.CoreV1().Endpoints(ns).Get(name, metav1.GetOptions{}) endpoint, err := c.CoreV1().Endpoints(ns).Get(name, metav1.GetOptions{})
if apierrs.IsNotFound(err) { if apierrs.IsNotFound(err) {
framework.Logf("Endpoint %s/%s is not ready yet", ns, name) e2elog.Logf("Endpoint %s/%s is not ready yet", ns, name)
continue continue
} }
framework.ExpectNoError(err, "Failed to get endpoints for %s/%s", ns, name) framework.ExpectNoError(err, "Failed to get endpoints for %s/%s", ns, name)
if len(endpoint.Subsets) == 0 || len(endpoint.Subsets[0].Addresses) == 0 { if len(endpoint.Subsets) == 0 || len(endpoint.Subsets[0].Addresses) == 0 {
framework.Logf("Endpoint %s/%s is not ready yet", ns, name) e2elog.Logf("Endpoint %s/%s is not ready yet", ns, name)
continue continue
} }
return nil return nil
......
...@@ -27,6 +27,7 @@ import ( ...@@ -27,6 +27,7 @@ import (
"k8s.io/client-go/kubernetes/scheme" "k8s.io/client-go/kubernetes/scheme"
restclient "k8s.io/client-go/rest" restclient "k8s.io/client-go/rest"
"k8s.io/client-go/tools/remotecommand" "k8s.io/client-go/tools/remotecommand"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
"github.com/onsi/gomega" "github.com/onsi/gomega"
) )
...@@ -48,7 +49,7 @@ type ExecOptions struct { ...@@ -48,7 +49,7 @@ type ExecOptions struct {
// returning stdout, stderr and error. `options` allowed for // returning stdout, stderr and error. `options` allowed for
// additional parameters to be passed. // additional parameters to be passed.
func (f *Framework) ExecWithOptions(options ExecOptions) (string, string, error) { func (f *Framework) ExecWithOptions(options ExecOptions) (string, string, error) {
Logf("ExecWithOptions %+v", options) e2elog.Logf("ExecWithOptions %+v", options)
config, err := LoadConfig() config, err := LoadConfig()
ExpectNoError(err, "failed to load restclient config") ExpectNoError(err, "failed to load restclient config")
...@@ -97,7 +98,7 @@ func (f *Framework) ExecCommandInContainerWithFullOutput(podName, containerName ...@@ -97,7 +98,7 @@ func (f *Framework) ExecCommandInContainerWithFullOutput(podName, containerName
// ExecCommandInContainer executes a command in the specified container. // ExecCommandInContainer executes a command in the specified container.
func (f *Framework) ExecCommandInContainer(podName, containerName string, cmd ...string) string { func (f *Framework) ExecCommandInContainer(podName, containerName string, cmd ...string) string {
stdout, stderr, err := f.ExecCommandInContainerWithFullOutput(podName, containerName, cmd...) stdout, stderr, err := f.ExecCommandInContainerWithFullOutput(podName, containerName, cmd...)
Logf("Exec stderr: %q", stderr) e2elog.Logf("Exec stderr: %q", stderr)
ExpectNoError(err, ExpectNoError(err,
"failed to execute command in pod %v, container %v: %v", "failed to execute command in pod %v, container %v: %v",
podName, containerName, err) podName, containerName, err)
......
...@@ -20,6 +20,8 @@ import ( ...@@ -20,6 +20,8 @@ import (
"bytes" "bytes"
"fmt" "fmt"
"sync" "sync"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
) )
// FlakeReport is a struct for managing the flake report. // FlakeReport is a struct for managing the flake report.
...@@ -57,7 +59,7 @@ func (f *FlakeReport) RecordFlakeIfError(err error, optionalDescription ...inter ...@@ -57,7 +59,7 @@ func (f *FlakeReport) RecordFlakeIfError(err error, optionalDescription ...inter
if desc != "" { if desc != "" {
msg = fmt.Sprintf("%v (Description: %v)", msg, desc) msg = fmt.Sprintf("%v (Description: %v)", msg, desc)
} }
Logf(msg) e2elog.Logf(msg)
f.lock.Lock() f.lock.Lock()
defer f.lock.Unlock() defer f.lock.Unlock()
f.Flakes = append(f.Flakes, msg) f.Flakes = append(f.Flakes, msg)
......
...@@ -21,6 +21,7 @@ import ( ...@@ -21,6 +21,7 @@ import (
"fmt" "fmt"
"strings" "strings"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
e2essh "k8s.io/kubernetes/test/e2e/framework/ssh" e2essh "k8s.io/kubernetes/test/e2e/framework/ssh"
) )
...@@ -46,7 +47,7 @@ func GetKubemarkMasterComponentsResourceUsage() map[string]*KubemarkResourceUsag ...@@ -46,7 +47,7 @@ func GetKubemarkMasterComponentsResourceUsage() map[string]*KubemarkResourceUsag
// Get kubernetes component resource usage // Get kubernetes component resource usage
sshResult, err := getMasterUsageByPrefix("kube") sshResult, err := getMasterUsageByPrefix("kube")
if err != nil { if err != nil {
Logf("Error when trying to SSH to master machine. Skipping probe. %v", err) e2elog.Logf("Error when trying to SSH to master machine. Skipping probe. %v", err)
return nil return nil
} }
scanner := bufio.NewScanner(strings.NewReader(sshResult)) scanner := bufio.NewScanner(strings.NewReader(sshResult))
...@@ -64,7 +65,7 @@ func GetKubemarkMasterComponentsResourceUsage() map[string]*KubemarkResourceUsag ...@@ -64,7 +65,7 @@ func GetKubemarkMasterComponentsResourceUsage() map[string]*KubemarkResourceUsag
// Get etcd resource usage // Get etcd resource usage
sshResult, err = getMasterUsageByPrefix("bin/etcd") sshResult, err = getMasterUsageByPrefix("bin/etcd")
if err != nil { if err != nil {
Logf("Error when trying to SSH to master machine. Skipping probe") e2elog.Logf("Error when trying to SSH to master machine. Skipping probe")
return nil return nil
} }
scanner = bufio.NewScanner(strings.NewReader(sshResult)) scanner = bufio.NewScanner(strings.NewReader(sshResult))
......
...@@ -23,6 +23,8 @@ import ( ...@@ -23,6 +23,8 @@ import (
"os/exec" "os/exec"
"path/filepath" "path/filepath"
"strings" "strings"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
) )
// TODO: These should really just use the GCE API client library or at least use // TODO: These should really just use the GCE API client library or at least use
...@@ -46,9 +48,9 @@ func lookupClusterImageSources() (string, string, error) { ...@@ -46,9 +48,9 @@ func lookupClusterImageSources() (string, string, error) {
str = strings.Replace(str, ";", "\n", -1) str = strings.Replace(str, ";", "\n", -1)
lines := strings.Split(str, "\n") lines := strings.Split(str, "\n")
if err != nil { if err != nil {
Logf("lookupDiskImageSources: gcloud error with [%#v]; err:%v", argv, err) e2elog.Logf("lookupDiskImageSources: gcloud error with [%#v]; err:%v", argv, err)
for _, l := range lines { for _, l := range lines {
Logf(" > %s", l) e2elog.Logf(" > %s", l)
} }
} }
return lines, err return lines, err
...@@ -112,11 +114,11 @@ func lookupClusterImageSources() (string, string, error) { ...@@ -112,11 +114,11 @@ func lookupClusterImageSources() (string, string, error) {
func LogClusterImageSources() { func LogClusterImageSources() {
masterImg, nodeImg, err := lookupClusterImageSources() masterImg, nodeImg, err := lookupClusterImageSources()
if err != nil { if err != nil {
Logf("Cluster image sources lookup failed: %v\n", err) e2elog.Logf("Cluster image sources lookup failed: %v\n", err)
return return
} }
Logf("cluster-master-image: %s", masterImg) e2elog.Logf("cluster-master-image: %s", masterImg)
Logf("cluster-node-image: %s", nodeImg) e2elog.Logf("cluster-node-image: %s", nodeImg)
images := map[string]string{ images := map[string]string{
"master_os_image": masterImg, "master_os_image": masterImg,
...@@ -126,7 +128,7 @@ func LogClusterImageSources() { ...@@ -126,7 +128,7 @@ func LogClusterImageSources() {
outputBytes, _ := json.MarshalIndent(images, "", " ") outputBytes, _ := json.MarshalIndent(images, "", " ")
filePath := filepath.Join(TestContext.ReportDir, "images.json") filePath := filepath.Join(TestContext.ReportDir, "images.json")
if err := ioutil.WriteFile(filePath, outputBytes, 0644); err != nil { if err := ioutil.WriteFile(filePath, outputBytes, 0644); err != nil {
Logf("cluster images sources, could not write to %q: %v", filePath, err) e2elog.Logf("cluster images sources, could not write to %q: %v", filePath, err)
} }
} }
......
...@@ -18,6 +18,7 @@ go_library( ...@@ -18,6 +18,7 @@ go_library(
"//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library",
"//staging/src/k8s.io/client-go/kubernetes:go_default_library", "//staging/src/k8s.io/client-go/kubernetes:go_default_library",
"//test/e2e/framework:go_default_library", "//test/e2e/framework:go_default_library",
"//test/e2e/framework/log:go_default_library",
"//test/e2e/framework/testfiles:go_default_library", "//test/e2e/framework/testfiles:go_default_library",
"//test/e2e/manifest:go_default_library", "//test/e2e/manifest:go_default_library",
"//test/utils:go_default_library", "//test/utils:go_default_library",
......
...@@ -49,6 +49,7 @@ import ( ...@@ -49,6 +49,7 @@ import (
"k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/util/wait"
clientset "k8s.io/client-go/kubernetes" clientset "k8s.io/client-go/kubernetes"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
"k8s.io/kubernetes/test/e2e/framework/testfiles" "k8s.io/kubernetes/test/e2e/framework/testfiles"
"k8s.io/kubernetes/test/e2e/manifest" "k8s.io/kubernetes/test/e2e/manifest"
testutils "k8s.io/kubernetes/test/utils" testutils "k8s.io/kubernetes/test/utils"
...@@ -134,12 +135,12 @@ type E2ELogger struct{} ...@@ -134,12 +135,12 @@ type E2ELogger struct{}
// Infof outputs log. // Infof outputs log.
func (l *E2ELogger) Infof(format string, args ...interface{}) { func (l *E2ELogger) Infof(format string, args ...interface{}) {
framework.Logf(format, args...) e2elog.Logf(format, args...)
} }
// Errorf outputs log. // Errorf outputs log.
func (l *E2ELogger) Errorf(format string, args ...interface{}) { func (l *E2ELogger) Errorf(format string, args ...interface{}) {
framework.Logf(format, args...) e2elog.Logf(format, args...)
} }
// ConformanceTests contains a closure with an entry and exit log line. // ConformanceTests contains a closure with an entry and exit log line.
...@@ -334,7 +335,7 @@ func BuildInsecureClient(timeout time.Duration) *http.Client { ...@@ -334,7 +335,7 @@ func BuildInsecureClient(timeout time.Duration) *http.Client {
// Ingress, it's updated. // Ingress, it's updated.
func createTLSSecret(kubeClient clientset.Interface, namespace, secretName string, hosts ...string) (host string, rootCA, privKey []byte, err error) { func createTLSSecret(kubeClient clientset.Interface, namespace, secretName string, hosts ...string) (host string, rootCA, privKey []byte, err error) {
host = strings.Join(hosts, ",") host = strings.Join(hosts, ",")
framework.Logf("Generating RSA cert for host %v", host) e2elog.Logf("Generating RSA cert for host %v", host)
cert, key, err := GenerateRSACerts(host, true) cert, key, err := GenerateRSACerts(host, true)
if err != nil { if err != nil {
return return
...@@ -351,11 +352,11 @@ func createTLSSecret(kubeClient clientset.Interface, namespace, secretName strin ...@@ -351,11 +352,11 @@ func createTLSSecret(kubeClient clientset.Interface, namespace, secretName strin
var s *v1.Secret var s *v1.Secret
if s, err = kubeClient.CoreV1().Secrets(namespace).Get(secretName, metav1.GetOptions{}); err == nil { if s, err = kubeClient.CoreV1().Secrets(namespace).Get(secretName, metav1.GetOptions{}); err == nil {
// TODO: Retry the update. We don't really expect anything to conflict though. // TODO: Retry the update. We don't really expect anything to conflict though.
framework.Logf("Updating secret %v in ns %v with hosts %v", secret.Name, namespace, host) e2elog.Logf("Updating secret %v in ns %v with hosts %v", secret.Name, namespace, host)
s.Data = secret.Data s.Data = secret.Data
_, err = kubeClient.CoreV1().Secrets(namespace).Update(s) _, err = kubeClient.CoreV1().Secrets(namespace).Update(s)
} else { } else {
framework.Logf("Creating secret %v in ns %v with hosts %v", secret.Name, namespace, host) e2elog.Logf("Creating secret %v in ns %v with hosts %v", secret.Name, namespace, host)
_, err = kubeClient.CoreV1().Secrets(namespace).Create(secret) _, err = kubeClient.CoreV1().Secrets(namespace).Create(secret)
} }
return host, cert, key, err return host, cert, key, err
...@@ -732,7 +733,7 @@ func (j *TestJig) VerifyURL(route, host string, iterations int, interval time.Du ...@@ -732,7 +733,7 @@ func (j *TestJig) VerifyURL(route, host string, iterations int, interval time.Du
for i := 0; i < iterations; i++ { for i := 0; i < iterations; i++ {
b, err := framework.SimpleGET(httpClient, route, host) b, err := framework.SimpleGET(httpClient, route, host)
if err != nil { if err != nil {
framework.Logf(b) e2elog.Logf(b)
return err return err
} }
j.Logger.Infof("Verified %v with host %v %d times, sleeping for %v", route, host, i, interval) j.Logger.Infof("Verified %v with host %v %d times, sleeping for %v", route, host, i, interval)
...@@ -843,14 +844,14 @@ func (cont *NginxIngressController) Init() { ...@@ -843,14 +844,14 @@ func (cont *NginxIngressController) Init() {
read := func(file string) string { read := func(file string) string {
return string(testfiles.ReadOrDie(filepath.Join(IngressManifestPath, "nginx", file), ginkgo.Fail)) return string(testfiles.ReadOrDie(filepath.Join(IngressManifestPath, "nginx", file), ginkgo.Fail))
} }
framework.Logf("initializing nginx ingress controller") e2elog.Logf("initializing nginx ingress controller")
framework.RunKubectlOrDieInput(read("rc.yaml"), "create", "-f", "-", fmt.Sprintf("--namespace=%v", cont.Ns)) framework.RunKubectlOrDieInput(read("rc.yaml"), "create", "-f", "-", fmt.Sprintf("--namespace=%v", cont.Ns))
rc, err := cont.Client.CoreV1().ReplicationControllers(cont.Ns).Get("nginx-ingress-controller", metav1.GetOptions{}) rc, err := cont.Client.CoreV1().ReplicationControllers(cont.Ns).Get("nginx-ingress-controller", metav1.GetOptions{})
framework.ExpectNoError(err) framework.ExpectNoError(err)
cont.rc = rc cont.rc = rc
framework.Logf("waiting for pods with label %v", rc.Spec.Selector) e2elog.Logf("waiting for pods with label %v", rc.Spec.Selector)
sel := labels.SelectorFromSet(labels.Set(rc.Spec.Selector)) sel := labels.SelectorFromSet(labels.Set(rc.Spec.Selector))
framework.ExpectNoError(testutils.WaitForPodsWithLabelRunning(cont.Client, cont.Ns, sel)) framework.ExpectNoError(testutils.WaitForPodsWithLabelRunning(cont.Client, cont.Ns, sel))
pods, err := cont.Client.CoreV1().Pods(cont.Ns).List(metav1.ListOptions{LabelSelector: sel.String()}) pods, err := cont.Client.CoreV1().Pods(cont.Ns).List(metav1.ListOptions{LabelSelector: sel.String()})
...@@ -861,7 +862,7 @@ func (cont *NginxIngressController) Init() { ...@@ -861,7 +862,7 @@ func (cont *NginxIngressController) Init() {
cont.pod = &pods.Items[0] cont.pod = &pods.Items[0]
cont.externalIP, err = framework.GetHostExternalAddress(cont.Client, cont.pod) cont.externalIP, err = framework.GetHostExternalAddress(cont.Client, cont.pod)
framework.ExpectNoError(err) framework.ExpectNoError(err)
framework.Logf("ingress controller running in pod %v on ip %v", cont.pod.Name, cont.externalIP) e2elog.Logf("ingress controller running in pod %v on ip %v", cont.pod.Name, cont.externalIP)
} }
func generateBacksideHTTPSIngressSpec(ns string) *networkingv1beta1.Ingress { func generateBacksideHTTPSIngressSpec(ns string) *networkingv1beta1.Ingress {
......
...@@ -38,6 +38,7 @@ import ( ...@@ -38,6 +38,7 @@ import (
dockermetrics "k8s.io/kubernetes/pkg/kubelet/dockershim/metrics" dockermetrics "k8s.io/kubernetes/pkg/kubelet/dockershim/metrics"
kubeletmetrics "k8s.io/kubernetes/pkg/kubelet/metrics" kubeletmetrics "k8s.io/kubernetes/pkg/kubelet/metrics"
"k8s.io/kubernetes/pkg/master/ports" "k8s.io/kubernetes/pkg/master/ports"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
"k8s.io/kubernetes/test/e2e/framework/metrics" "k8s.io/kubernetes/test/e2e/framework/metrics"
"github.com/prometheus/common/model" "github.com/prometheus/common/model"
...@@ -183,7 +184,7 @@ func (m *RuntimeOperationMonitor) GetRuntimeOperationErrorRate() map[string]Node ...@@ -183,7 +184,7 @@ func (m *RuntimeOperationMonitor) GetRuntimeOperationErrorRate() map[string]Node
for node := range m.nodesRuntimeOps { for node := range m.nodesRuntimeOps {
nodeResult, err := getNodeRuntimeOperationErrorRate(m.client, node) nodeResult, err := getNodeRuntimeOperationErrorRate(m.client, node)
if err != nil { if err != nil {
Logf("GetRuntimeOperationErrorRate: unable to get kubelet metrics from node %q: %v", node, err) e2elog.Logf("GetRuntimeOperationErrorRate: unable to get kubelet metrics from node %q: %v", node, err)
continue continue
} }
m.nodesRuntimeOps[node] = nodeResult m.nodesRuntimeOps[node] = nodeResult
...@@ -199,7 +200,7 @@ func (m *RuntimeOperationMonitor) GetLatestRuntimeOperationErrorRate() map[strin ...@@ -199,7 +200,7 @@ func (m *RuntimeOperationMonitor) GetLatestRuntimeOperationErrorRate() map[strin
oldNodeResult := m.nodesRuntimeOps[node] oldNodeResult := m.nodesRuntimeOps[node]
curNodeResult, err := getNodeRuntimeOperationErrorRate(m.client, node) curNodeResult, err := getNodeRuntimeOperationErrorRate(m.client, node)
if err != nil { if err != nil {
Logf("GetLatestRuntimeOperationErrorRate: unable to get kubelet metrics from node %q: %v", node, err) e2elog.Logf("GetLatestRuntimeOperationErrorRate: unable to get kubelet metrics from node %q: %v", node, err)
continue continue
} }
for op, cur := range curNodeResult { for op, cur := range curNodeResult {
...@@ -276,7 +277,7 @@ func HighLatencyKubeletOperations(c clientset.Interface, threshold time.Duration ...@@ -276,7 +277,7 @@ func HighLatencyKubeletOperations(c clientset.Interface, threshold time.Duration
for _, m := range latencyMetrics { for _, m := range latencyMetrics {
if m.Latency > threshold { if m.Latency > threshold {
badMetrics = append(badMetrics, m) badMetrics = append(badMetrics, m)
Logf("%+v", m) e2elog.Logf("%+v", m)
} }
} }
return badMetrics, nil return badMetrics, nil
...@@ -517,13 +518,13 @@ func GetKubeletHeapStats(c clientset.Interface, nodeName string) (string, error) ...@@ -517,13 +518,13 @@ func GetKubeletHeapStats(c clientset.Interface, nodeName string) (string, error)
func PrintAllKubeletPods(c clientset.Interface, nodeName string) { func PrintAllKubeletPods(c clientset.Interface, nodeName string) {
podList, err := GetKubeletPods(c, nodeName) podList, err := GetKubeletPods(c, nodeName)
if err != nil { if err != nil {
Logf("Unable to retrieve kubelet pods for node %v: %v", nodeName, err) e2elog.Logf("Unable to retrieve kubelet pods for node %v: %v", nodeName, err)
return return
} }
for _, p := range podList.Items { for _, p := range podList.Items {
Logf("%v from %v started at %v (%d container statuses recorded)", p.Name, p.Namespace, p.Status.StartTime, len(p.Status.ContainerStatuses)) e2elog.Logf("%v from %v started at %v (%d container statuses recorded)", p.Name, p.Namespace, p.Status.StartTime, len(p.Status.ContainerStatuses))
for _, c := range p.Status.ContainerStatuses { for _, c := range p.Status.ContainerStatuses {
Logf("\tContainer %v ready: %v, restart count %v", e2elog.Logf("\tContainer %v ready: %v, restart count %v",
c.Name, c.Ready, c.RestartCount) c.Name, c.Ready, c.RestartCount)
} }
} }
...@@ -583,7 +584,7 @@ func (r *resourceCollector) Stop() { ...@@ -583,7 +584,7 @@ func (r *resourceCollector) Stop() {
func (r *resourceCollector) collectStats(oldStatsMap map[string]*stats.ContainerStats) { func (r *resourceCollector) collectStats(oldStatsMap map[string]*stats.ContainerStats) {
summary, err := getNodeStatsSummary(r.client, r.node) summary, err := getNodeStatsSummary(r.client, r.node)
if err != nil { if err != nil {
Logf("Error getting node stats summary on %q, err: %v", r.node, err) e2elog.Logf("Error getting node stats summary on %q, err: %v", r.node, err)
return return
} }
cStatsMap := getSystemContainerStats(summary) cStatsMap := getSystemContainerStats(summary)
...@@ -592,7 +593,7 @@ func (r *resourceCollector) collectStats(oldStatsMap map[string]*stats.Container ...@@ -592,7 +593,7 @@ func (r *resourceCollector) collectStats(oldStatsMap map[string]*stats.Container
for _, name := range r.containers { for _, name := range r.containers {
cStats, ok := cStatsMap[name] cStats, ok := cStatsMap[name]
if !ok { if !ok {
Logf("Missing info/stats for container %q on node %q", name, r.node) e2elog.Logf("Missing info/stats for container %q on node %q", name, r.node)
return return
} }
...@@ -710,9 +711,9 @@ func (r *ResourceMonitor) Reset() { ...@@ -710,9 +711,9 @@ func (r *ResourceMonitor) Reset() {
func (r *ResourceMonitor) LogLatest() { func (r *ResourceMonitor) LogLatest() {
summary, err := r.GetLatest() summary, err := r.GetLatest()
if err != nil { if err != nil {
Logf("%v", err) e2elog.Logf("%v", err)
} }
Logf("%s", r.FormatResourceUsage(summary)) e2elog.Logf("%s", r.FormatResourceUsage(summary))
} }
// FormatResourceUsage returns the formatted string for LogLatest(). // FormatResourceUsage returns the formatted string for LogLatest().
...@@ -824,7 +825,7 @@ func (r *ResourceMonitor) FormatCPUSummary(summary NodesCPUSummary) string { ...@@ -824,7 +825,7 @@ func (r *ResourceMonitor) FormatCPUSummary(summary NodesCPUSummary) string {
// LogCPUSummary outputs summary of CPU into log. // LogCPUSummary outputs summary of CPU into log.
func (r *ResourceMonitor) LogCPUSummary() { func (r *ResourceMonitor) LogCPUSummary() {
summary := r.GetCPUSummary() summary := r.GetCPUSummary()
Logf("%s", r.FormatCPUSummary(summary)) e2elog.Logf("%s", r.FormatCPUSummary(summary))
} }
// GetCPUSummary returns summary of CPU. // GetCPUSummary returns summary of CPU.
......
...@@ -26,6 +26,7 @@ import ( ...@@ -26,6 +26,7 @@ import (
"time" "time"
clientset "k8s.io/client-go/kubernetes" clientset "k8s.io/client-go/kubernetes"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
e2essh "k8s.io/kubernetes/test/e2e/framework/ssh" e2essh "k8s.io/kubernetes/test/e2e/framework/ssh"
) )
...@@ -257,10 +258,10 @@ func (g *LogSizeGatherer) Work() bool { ...@@ -257,10 +258,10 @@ func (g *LogSizeGatherer) Work() bool {
TestContext.Provider, TestContext.Provider,
) )
if err != nil { if err != nil {
Logf("Error while trying to SSH to %v, skipping probe. Error: %v", workItem.ip, err) e2elog.Logf("Error while trying to SSH to %v, skipping probe. Error: %v", workItem.ip, err)
// In case of repeated error give up. // In case of repeated error give up.
if workItem.backoffMultiplier >= 128 { if workItem.backoffMultiplier >= 128 {
Logf("Failed to ssh to a node %v multiple times in a row. Giving up.", workItem.ip) e2elog.Logf("Failed to ssh to a node %v multiple times in a row. Giving up.", workItem.ip)
g.wg.Done() g.wg.Done()
return false return false
} }
...@@ -276,7 +277,7 @@ func (g *LogSizeGatherer) Work() bool { ...@@ -276,7 +277,7 @@ func (g *LogSizeGatherer) Work() bool {
path := results[i] path := results[i]
size, err := strconv.Atoi(results[i+1]) size, err := strconv.Atoi(results[i+1])
if err != nil { if err != nil {
Logf("Error during conversion to int: %v, skipping data. Error: %v", results[i+1], err) e2elog.Logf("Error during conversion to int: %v, skipping data. Error: %v", results[i+1], err)
continue continue
} }
g.data.addNewData(workItem.ip, path, now, size) g.data.addNewData(workItem.ip, path, now, size)
......
...@@ -36,6 +36,7 @@ import ( ...@@ -36,6 +36,7 @@ import (
"k8s.io/kubernetes/pkg/master/ports" "k8s.io/kubernetes/pkg/master/ports"
schedulermetric "k8s.io/kubernetes/pkg/scheduler/metrics" schedulermetric "k8s.io/kubernetes/pkg/scheduler/metrics"
"k8s.io/kubernetes/pkg/util/system" "k8s.io/kubernetes/pkg/util/system"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
"k8s.io/kubernetes/test/e2e/framework/metrics" "k8s.io/kubernetes/test/e2e/framework/metrics"
e2essh "k8s.io/kubernetes/test/e2e/framework/ssh" e2essh "k8s.io/kubernetes/test/e2e/framework/ssh"
...@@ -325,7 +326,7 @@ func NewEtcdMetricsCollector() *EtcdMetricsCollector { ...@@ -325,7 +326,7 @@ func NewEtcdMetricsCollector() *EtcdMetricsCollector {
func getEtcdMetrics() ([]*model.Sample, error) { func getEtcdMetrics() ([]*model.Sample, error) {
// Etcd is only exposed on localhost level. We are using ssh method // Etcd is only exposed on localhost level. We are using ssh method
if TestContext.Provider == "gke" || TestContext.Provider == "eks" { if TestContext.Provider == "gke" || TestContext.Provider == "eks" {
Logf("Not grabbing etcd metrics through master SSH: unsupported for %s", TestContext.Provider) e2elog.Logf("Not grabbing etcd metrics through master SSH: unsupported for %s", TestContext.Provider)
return nil, nil return nil, nil
} }
...@@ -363,7 +364,7 @@ func (mc *EtcdMetricsCollector) StartCollecting(interval time.Duration) { ...@@ -363,7 +364,7 @@ func (mc *EtcdMetricsCollector) StartCollecting(interval time.Duration) {
case <-time.After(interval): case <-time.After(interval):
dbSize, err := getEtcdDatabaseSize() dbSize, err := getEtcdDatabaseSize()
if err != nil { if err != nil {
Logf("Failed to collect etcd database size") e2elog.Logf("Failed to collect etcd database size")
continue continue
} }
mc.metrics.MaxDatabaseSize = math.Max(mc.metrics.MaxDatabaseSize, dbSize) mc.metrics.MaxDatabaseSize = math.Max(mc.metrics.MaxDatabaseSize, dbSize)
...@@ -573,7 +574,7 @@ func HighLatencyRequests(c clientset.Interface, nodeCount int) (int, *APIRespons ...@@ -573,7 +574,7 @@ func HighLatencyRequests(c clientset.Interface, nodeCount int) (int, *APIRespons
if isBad { if isBad {
prefix = "WARNING " prefix = "WARNING "
} }
Logf("%vTop latency metric: %+v", prefix, metrics.APICalls[i]) e2elog.Logf("%vTop latency metric: %+v", prefix, metrics.APICalls[i])
} }
} }
return badMetrics, metrics, nil return badMetrics, metrics, nil
...@@ -596,7 +597,7 @@ func VerifyLatencyWithinThreshold(threshold, actual LatencyMetric, metricName st ...@@ -596,7 +597,7 @@ func VerifyLatencyWithinThreshold(threshold, actual LatencyMetric, metricName st
// ResetMetrics resets latency metrics in apiserver. // ResetMetrics resets latency metrics in apiserver.
func ResetMetrics(c clientset.Interface) error { func ResetMetrics(c clientset.Interface) error {
Logf("Resetting latency metrics in apiserver...") e2elog.Logf("Resetting latency metrics in apiserver...")
body, err := c.CoreV1().RESTClient().Delete().AbsPath("/metrics").DoRaw() body, err := c.CoreV1().RESTClient().Delete().AbsPath("/metrics").DoRaw()
if err != nil { if err != nil {
return err return err
...@@ -652,7 +653,7 @@ func sendRestRequestToScheduler(c clientset.Interface, op string) (string, error ...@@ -652,7 +653,7 @@ func sendRestRequestToScheduler(c clientset.Interface, op string) (string, error
} else { } else {
// If master is not registered fall back to old method of using SSH. // If master is not registered fall back to old method of using SSH.
if TestContext.Provider == "gke" || TestContext.Provider == "eks" { if TestContext.Provider == "gke" || TestContext.Provider == "eks" {
Logf("Not grabbing scheduler metrics through master SSH: unsupported for %s", TestContext.Provider) e2elog.Logf("Not grabbing scheduler metrics through master SSH: unsupported for %s", TestContext.Provider)
return "", nil return "", nil
} }
...@@ -751,12 +752,12 @@ func convertSampleToBucket(sample *model.Sample, h *HistogramVec) { ...@@ -751,12 +752,12 @@ func convertSampleToBucket(sample *model.Sample, h *HistogramVec) {
func PrettyPrintJSON(metrics interface{}) string { func PrettyPrintJSON(metrics interface{}) string {
output := &bytes.Buffer{} output := &bytes.Buffer{}
if err := json.NewEncoder(output).Encode(metrics); err != nil { if err := json.NewEncoder(output).Encode(metrics); err != nil {
Logf("Error building encoder: %v", err) e2elog.Logf("Error building encoder: %v", err)
return "" return ""
} }
formatted := &bytes.Buffer{} formatted := &bytes.Buffer{}
if err := json.Indent(formatted, output.Bytes(), "", " "); err != nil { if err := json.Indent(formatted, output.Bytes(), "", " "); err != nil {
Logf("Error indenting: %v", err) e2elog.Logf("Error indenting: %v", err)
return "" return ""
} }
return string(formatted.Bytes()) return string(formatted.Bytes())
...@@ -819,18 +820,18 @@ func LogSuspiciousLatency(latencyData []PodLatencyData, latencyDataLag []PodLate ...@@ -819,18 +820,18 @@ func LogSuspiciousLatency(latencyData []PodLatencyData, latencyDataLag []PodLate
} }
for _, l := range latencyData { for _, l := range latencyData {
if l.Latency > NodeStartupThreshold { if l.Latency > NodeStartupThreshold {
HighLatencyKubeletOperations(c, 1*time.Second, l.Node, Logf) HighLatencyKubeletOperations(c, 1*time.Second, l.Node, e2elog.Logf)
} }
} }
Logf("Approx throughput: %v pods/min", e2elog.Logf("Approx throughput: %v pods/min",
float64(nodeCount)/(latencyDataLag[len(latencyDataLag)-1].Latency.Minutes())) float64(nodeCount)/(latencyDataLag[len(latencyDataLag)-1].Latency.Minutes()))
} }
// PrintLatencies outputs latencies to log with readable format. // PrintLatencies outputs latencies to log with readable format.
func PrintLatencies(latencies []PodLatencyData, header string) { func PrintLatencies(latencies []PodLatencyData, header string) {
metrics := ExtractLatencyMetrics(latencies) metrics := ExtractLatencyMetrics(latencies)
Logf("10%% %s: %v", header, latencies[(len(latencies)*9)/10:]) e2elog.Logf("10%% %s: %v", header, latencies[(len(latencies)*9)/10:])
Logf("perc50: %v, perc90: %v, perc99: %v", metrics.Perc50, metrics.Perc90, metrics.Perc99) e2elog.Logf("perc50: %v, perc90: %v, perc99: %v", metrics.Perc50, metrics.Perc90, metrics.Perc99)
} }
func (m *MetricsForE2E) computeClusterAutoscalerMetricsDelta(before metrics.Collection) { func (m *MetricsForE2E) computeClusterAutoscalerMetricsDelta(before metrics.Collection) {
......
...@@ -28,6 +28,7 @@ import ( ...@@ -28,6 +28,7 @@ import (
v1 "k8s.io/api/core/v1" v1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/util/wait"
clientset "k8s.io/client-go/kubernetes" clientset "k8s.io/client-go/kubernetes"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
e2essh "k8s.io/kubernetes/test/e2e/framework/ssh" e2essh "k8s.io/kubernetes/test/e2e/framework/ssh"
) )
...@@ -109,7 +110,7 @@ func appendContainerCommandGroupIfNeeded(args []string) []string { ...@@ -109,7 +110,7 @@ func appendContainerCommandGroupIfNeeded(args []string) []string {
} }
func masterUpgradeGKE(v string) error { func masterUpgradeGKE(v string) error {
Logf("Upgrading master to %q", v) e2elog.Logf("Upgrading master to %q", v)
args := []string{ args := []string{
"container", "container",
"clusters", "clusters",
...@@ -132,7 +133,7 @@ func masterUpgradeGKE(v string) error { ...@@ -132,7 +133,7 @@ func masterUpgradeGKE(v string) error {
} }
func masterUpgradeKubernetesAnywhere(v string) error { func masterUpgradeKubernetesAnywhere(v string) error {
Logf("Upgrading master to %q", v) e2elog.Logf("Upgrading master to %q", v)
kaPath := TestContext.KubernetesAnywherePath kaPath := TestContext.KubernetesAnywherePath
originalConfigPath := filepath.Join(kaPath, ".config") originalConfigPath := filepath.Join(kaPath, ".config")
...@@ -150,7 +151,7 @@ func masterUpgradeKubernetesAnywhere(v string) error { ...@@ -150,7 +151,7 @@ func masterUpgradeKubernetesAnywhere(v string) error {
defer func() { defer func() {
// revert .config.bak to .config // revert .config.bak to .config
if err := os.Rename(backupConfigPath, originalConfigPath); err != nil { if err := os.Rename(backupConfigPath, originalConfigPath); err != nil {
Logf("Could not rename %s back to %s", backupConfigPath, originalConfigPath) e2elog.Logf("Could not rename %s back to %s", backupConfigPath, originalConfigPath)
} }
}() }()
...@@ -205,7 +206,7 @@ func waitForNodesReadyAfterUpgrade(f *Framework) error { ...@@ -205,7 +206,7 @@ func waitForNodesReadyAfterUpgrade(f *Framework) error {
if err != nil { if err != nil {
return fmt.Errorf("couldn't detect number of nodes") return fmt.Errorf("couldn't detect number of nodes")
} }
Logf("Waiting up to %v for all %d nodes to be ready after the upgrade", RestartNodeReadyAgainTimeout, numNodes) e2elog.Logf("Waiting up to %v for all %d nodes to be ready after the upgrade", RestartNodeReadyAgainTimeout, numNodes)
if _, err := CheckNodesReady(f.ClientSet, numNodes, RestartNodeReadyAgainTimeout); err != nil { if _, err := CheckNodesReady(f.ClientSet, numNodes, RestartNodeReadyAgainTimeout); err != nil {
return err return err
} }
...@@ -226,7 +227,7 @@ func nodeUpgradeGCE(rawV, img string, enableKubeProxyDaemonSet bool) error { ...@@ -226,7 +227,7 @@ func nodeUpgradeGCE(rawV, img string, enableKubeProxyDaemonSet bool) error {
} }
func nodeUpgradeGKE(v string, img string) error { func nodeUpgradeGKE(v string, img string) error {
Logf("Upgrading nodes to version %q and image %q", v, img) e2elog.Logf("Upgrading nodes to version %q and image %q", v, img)
args := []string{ args := []string{
"container", "container",
"clusters", "clusters",
...@@ -277,7 +278,7 @@ func MigTemplate() (string, error) { ...@@ -277,7 +278,7 @@ func MigTemplate() (string, error) {
if val := ParseKVLines(output, key); len(val) > 0 { if val := ParseKVLines(output, key); len(val) > 0 {
url := strings.Split(val, "/") url := strings.Split(val, "/")
templ = url[len(url)-1] templ = url[len(url)-1]
Logf("MIG group %s using template: %s", TestContext.CloudConfig.NodeInstanceGroup, templ) e2elog.Logf("MIG group %s using template: %s", TestContext.CloudConfig.NodeInstanceGroup, templ)
return true, nil return true, nil
} }
errLast = fmt.Errorf("couldn't find %s in output to get MIG template. Output: %s", key, output) errLast = fmt.Errorf("couldn't find %s in output to get MIG template. Output: %s", key, output)
...@@ -296,7 +297,7 @@ func gceUpgradeScript() string { ...@@ -296,7 +297,7 @@ func gceUpgradeScript() string {
} }
func waitForSSHTunnels() { func waitForSSHTunnels() {
Logf("Waiting for SSH tunnels to establish") e2elog.Logf("Waiting for SSH tunnels to establish")
RunKubectl("run", "ssh-tunnel-test", RunKubectl("run", "ssh-tunnel-test",
"--image=busybox", "--image=busybox",
"--restart=Never", "--restart=Never",
...@@ -351,19 +352,19 @@ func (k *NodeKiller) kill(nodes []v1.Node) { ...@@ -351,19 +352,19 @@ func (k *NodeKiller) kill(nodes []v1.Node) {
go func() { go func() {
defer wg.Done() defer wg.Done()
Logf("Stopping docker and kubelet on %q to simulate failure", node.Name) e2elog.Logf("Stopping docker and kubelet on %q to simulate failure", node.Name)
err := e2essh.IssueSSHCommand("sudo systemctl stop docker kubelet", k.provider, &node) err := e2essh.IssueSSHCommand("sudo systemctl stop docker kubelet", k.provider, &node)
if err != nil { if err != nil {
Logf("ERROR while stopping node %q: %v", node.Name, err) e2elog.Logf("ERROR while stopping node %q: %v", node.Name, err)
return return
} }
time.Sleep(k.config.SimulatedDowntime) time.Sleep(k.config.SimulatedDowntime)
Logf("Rebooting %q to repair the node", node.Name) e2elog.Logf("Rebooting %q to repair the node", node.Name)
err = e2essh.IssueSSHCommand("sudo reboot", k.provider, &node) err = e2essh.IssueSSHCommand("sudo reboot", k.provider, &node)
if err != nil { if err != nil {
Logf("ERROR while rebooting node %q: %v", node.Name, err) e2elog.Logf("ERROR while rebooting node %q: %v", node.Name, err)
return return
} }
}() }()
......
...@@ -19,6 +19,7 @@ package framework ...@@ -19,6 +19,7 @@ package framework
import ( import (
"fmt" "fmt"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
"k8s.io/kubernetes/test/e2e/perftype" "k8s.io/kubernetes/test/e2e/perftype"
) )
...@@ -100,7 +101,7 @@ func CPUUsageToPerfData(usagePerNode NodesCPUSummary) *perftype.PerfData { ...@@ -100,7 +101,7 @@ func CPUUsageToPerfData(usagePerNode NodesCPUSummary) *perftype.PerfData {
func PrintPerfData(p *perftype.PerfData) { func PrintPerfData(p *perftype.PerfData) {
// Notice that we must make sure the perftype.PerfResultEnd is in a new line. // Notice that we must make sure the perftype.PerfResultEnd is in a new line.
if str := PrettyPrintJSON(p); str != "" { if str := PrettyPrintJSON(p); str != "" {
Logf("%s %s\n%s", perftype.PerfResultTag, str, perftype.PerfResultEnd) e2elog.Logf("%s %s\n%s", perftype.PerfResultTag, str, perftype.PerfResultEnd)
} }
} }
......
...@@ -33,6 +33,7 @@ import ( ...@@ -33,6 +33,7 @@ import (
podutil "k8s.io/kubernetes/pkg/api/v1/pod" podutil "k8s.io/kubernetes/pkg/api/v1/pod"
"k8s.io/kubernetes/pkg/kubelet/events" "k8s.io/kubernetes/pkg/kubelet/events"
"k8s.io/kubernetes/pkg/kubelet/sysctl" "k8s.io/kubernetes/pkg/kubelet/sysctl"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
"github.com/onsi/ginkgo" "github.com/onsi/ginkgo"
"github.com/onsi/gomega" "github.com/onsi/gomega"
...@@ -149,11 +150,11 @@ func (c *PodClient) Update(name string, updateFn func(pod *v1.Pod)) { ...@@ -149,11 +150,11 @@ func (c *PodClient) Update(name string, updateFn func(pod *v1.Pod)) {
updateFn(pod) updateFn(pod)
_, err = c.PodInterface.Update(pod) _, err = c.PodInterface.Update(pod)
if err == nil { if err == nil {
Logf("Successfully updated pod %q", name) e2elog.Logf("Successfully updated pod %q", name)
return true, nil return true, nil
} }
if errors.IsConflict(err) { if errors.IsConflict(err) {
Logf("Conflicting update to pod %q, re-get and re-update: %v", name, err) e2elog.Logf("Conflicting update to pod %q, re-get and re-update: %v", name, err)
return false, nil return false, nil
} }
return false, fmt.Errorf("failed to update pod %q: %v", name, err) return false, fmt.Errorf("failed to update pod %q: %v", name, err)
......
...@@ -26,6 +26,7 @@ import ( ...@@ -26,6 +26,7 @@ import (
"sync" "sync"
"time" "time"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
e2essh "k8s.io/kubernetes/test/e2e/framework/ssh" e2essh "k8s.io/kubernetes/test/e2e/framework/ssh"
) )
...@@ -181,7 +182,7 @@ func GatherCPUProfileForSeconds(componentName string, profileBaseName string, se ...@@ -181,7 +182,7 @@ func GatherCPUProfileForSeconds(componentName string, profileBaseName string, se
defer wg.Done() defer wg.Done()
} }
if err := gatherProfile(componentName, profileBaseName, fmt.Sprintf("profile?seconds=%v", seconds)); err != nil { if err := gatherProfile(componentName, profileBaseName, fmt.Sprintf("profile?seconds=%v", seconds)); err != nil {
Logf("Failed to gather %v CPU profile: %v", componentName, err) e2elog.Logf("Failed to gather %v CPU profile: %v", componentName, err)
} }
} }
...@@ -191,7 +192,7 @@ func GatherMemoryProfile(componentName string, profileBaseName string, wg *sync. ...@@ -191,7 +192,7 @@ func GatherMemoryProfile(componentName string, profileBaseName string, wg *sync.
defer wg.Done() defer wg.Done()
} }
if err := gatherProfile(componentName, profileBaseName, "heap"); err != nil { if err := gatherProfile(componentName, profileBaseName, "heap"); err != nil {
Logf("Failed to gather %v memory profile: %v", componentName, err) e2elog.Logf("Failed to gather %v memory profile: %v", componentName, err)
} }
} }
......
...@@ -9,6 +9,7 @@ go_library( ...@@ -9,6 +9,7 @@ go_library(
"//staging/src/k8s.io/api/core/v1:go_default_library", "//staging/src/k8s.io/api/core/v1:go_default_library",
"//staging/src/k8s.io/legacy-cloud-providers/aws:go_default_library", "//staging/src/k8s.io/legacy-cloud-providers/aws:go_default_library",
"//test/e2e/framework:go_default_library", "//test/e2e/framework:go_default_library",
"//test/e2e/framework/log:go_default_library",
"//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library",
"//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library", "//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library",
"//vendor/github.com/aws/aws-sdk-go/aws/session:go_default_library", "//vendor/github.com/aws/aws-sdk-go/aws/session:go_default_library",
......
...@@ -28,6 +28,7 @@ import ( ...@@ -28,6 +28,7 @@ import (
"k8s.io/api/core/v1" "k8s.io/api/core/v1"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
awscloud "k8s.io/legacy-cloud-providers/aws" awscloud "k8s.io/legacy-cloud-providers/aws"
) )
...@@ -114,7 +115,7 @@ func (p *Provider) DeletePD(pdName string) error { ...@@ -114,7 +115,7 @@ func (p *Provider) DeletePD(pdName string) error {
_, err := client.DeleteVolume(request) _, err := client.DeleteVolume(request)
if err != nil { if err != nil {
if awsError, ok := err.(awserr.Error); ok && awsError.Code() == "InvalidVolume.NotFound" { if awsError, ok := err.(awserr.Error); ok && awsError.Code() == "InvalidVolume.NotFound" {
framework.Logf("volume deletion implicitly succeeded because volume %q does not exist.", pdName) e2elog.Logf("volume deletion implicitly succeeded because volume %q does not exist.", pdName)
} else { } else {
return fmt.Errorf("error deleting EBS volumes: %v", err) return fmt.Errorf("error deleting EBS volumes: %v", err)
} }
...@@ -144,7 +145,7 @@ func newAWSClient(zone string) *ec2.EC2 { ...@@ -144,7 +145,7 @@ func newAWSClient(zone string) *ec2.EC2 {
zone = framework.TestContext.CloudConfig.Zone zone = framework.TestContext.CloudConfig.Zone
} }
if zone == "" { if zone == "" {
framework.Logf("Warning: No AWS zone configured!") e2elog.Logf("Warning: No AWS zone configured!")
cfg = nil cfg = nil
} else { } else {
region := zone[:len(zone)-1] region := zone[:len(zone)-1]
......
...@@ -10,6 +10,7 @@ go_library( ...@@ -10,6 +10,7 @@ go_library(
"//staging/src/k8s.io/apimachinery/pkg/util/uuid:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/uuid:go_default_library",
"//staging/src/k8s.io/legacy-cloud-providers/azure:go_default_library", "//staging/src/k8s.io/legacy-cloud-providers/azure:go_default_library",
"//test/e2e/framework:go_default_library", "//test/e2e/framework:go_default_library",
"//test/e2e/framework/log:go_default_library",
], ],
) )
......
...@@ -24,6 +24,7 @@ import ( ...@@ -24,6 +24,7 @@ import (
v1 "k8s.io/api/core/v1" v1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/util/uuid" "k8s.io/apimachinery/pkg/util/uuid"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
"k8s.io/legacy-cloud-providers/azure" "k8s.io/legacy-cloud-providers/azure"
) )
...@@ -37,7 +38,7 @@ func newProvider() (framework.ProviderInterface, error) { ...@@ -37,7 +38,7 @@ func newProvider() (framework.ProviderInterface, error) {
} }
config, err := os.Open(framework.TestContext.CloudConfig.ConfigFile) config, err := os.Open(framework.TestContext.CloudConfig.ConfigFile)
if err != nil { if err != nil {
framework.Logf("Couldn't open cloud provider configuration %s: %#v", e2elog.Logf("Couldn't open cloud provider configuration %s: %#v",
framework.TestContext.CloudConfig.ConfigFile, err) framework.TestContext.CloudConfig.ConfigFile, err)
} }
defer config.Close() defer config.Close()
...@@ -72,7 +73,7 @@ func (p *Provider) CreatePD(zone string) (string, error) { ...@@ -72,7 +73,7 @@ func (p *Provider) CreatePD(zone string) (string, error) {
// DeletePD deletes a persistent volume // DeletePD deletes a persistent volume
func (p *Provider) DeletePD(pdName string) error { func (p *Provider) DeletePD(pdName string) error {
if err := p.azureCloud.DeleteVolume(pdName); err != nil { if err := p.azureCloud.DeleteVolume(pdName); err != nil {
framework.Logf("failed to delete Azure volume %q: %v", pdName, err) e2elog.Logf("failed to delete Azure volume %q: %v", pdName, err)
return err return err
} }
return nil return nil
......
...@@ -23,6 +23,7 @@ go_library( ...@@ -23,6 +23,7 @@ go_library(
"//staging/src/k8s.io/cloud-provider:go_default_library", "//staging/src/k8s.io/cloud-provider:go_default_library",
"//staging/src/k8s.io/legacy-cloud-providers/gce:go_default_library", "//staging/src/k8s.io/legacy-cloud-providers/gce:go_default_library",
"//test/e2e/framework:go_default_library", "//test/e2e/framework:go_default_library",
"//test/e2e/framework/log:go_default_library",
"//test/utils:go_default_library", "//test/utils:go_default_library",
"//vendor/github.com/onsi/ginkgo:go_default_library", "//vendor/github.com/onsi/ginkgo:go_default_library",
"//vendor/google.golang.org/api/compute/v1:go_default_library", "//vendor/google.golang.org/api/compute/v1:go_default_library",
......
...@@ -30,6 +30,7 @@ import ( ...@@ -30,6 +30,7 @@ import (
"k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/util/wait"
cloudprovider "k8s.io/cloud-provider" cloudprovider "k8s.io/cloud-provider"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
gcecloud "k8s.io/legacy-cloud-providers/gce" gcecloud "k8s.io/legacy-cloud-providers/gce"
) )
...@@ -395,7 +396,7 @@ func VerifyFirewallRule(res, exp *compute.Firewall, network string, portsSubset ...@@ -395,7 +396,7 @@ func VerifyFirewallRule(res, exp *compute.Firewall, network string, portsSubset
// WaitForFirewallRule waits for the specified firewall existence // WaitForFirewallRule waits for the specified firewall existence
func WaitForFirewallRule(gceCloud *gcecloud.Cloud, fwName string, exist bool, timeout time.Duration) (*compute.Firewall, error) { func WaitForFirewallRule(gceCloud *gcecloud.Cloud, fwName string, exist bool, timeout time.Duration) (*compute.Firewall, error) {
framework.Logf("Waiting up to %v for firewall %v exist=%v", timeout, fwName, exist) e2elog.Logf("Waiting up to %v for firewall %v exist=%v", timeout, fwName, exist)
var fw *compute.Firewall var fw *compute.Firewall
var err error var err error
......
...@@ -32,6 +32,7 @@ import ( ...@@ -32,6 +32,7 @@ import (
"k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/util/wait"
clientset "k8s.io/client-go/kubernetes" clientset "k8s.io/client-go/kubernetes"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
gcecloud "k8s.io/legacy-cloud-providers/gce" gcecloud "k8s.io/legacy-cloud-providers/gce"
) )
...@@ -41,7 +42,7 @@ func init() { ...@@ -41,7 +42,7 @@ func init() {
} }
func factory() (framework.ProviderInterface, error) { func factory() (framework.ProviderInterface, error) {
framework.Logf("Fetching cloud provider for %q\r", framework.TestContext.Provider) e2elog.Logf("Fetching cloud provider for %q\r", framework.TestContext.Provider)
zone := framework.TestContext.CloudConfig.Zone zone := framework.TestContext.CloudConfig.Zone
region := framework.TestContext.CloudConfig.Region region := framework.TestContext.CloudConfig.Region
...@@ -175,7 +176,7 @@ func (p *Provider) EnsureLoadBalancerResourcesDeleted(ip, portRange string) erro ...@@ -175,7 +176,7 @@ func (p *Provider) EnsureLoadBalancerResourcesDeleted(ip, portRange string) erro
} }
for _, item := range list.Items { for _, item := range list.Items {
if item.PortRange == portRange && item.IPAddress == ip { if item.PortRange == portRange && item.IPAddress == ip {
framework.Logf("found a load balancer: %v", item) e2elog.Logf("found a load balancer: %v", item)
return false, nil return false, nil
} }
} }
...@@ -229,7 +230,7 @@ func (p *Provider) DeletePD(pdName string) error { ...@@ -229,7 +230,7 @@ func (p *Provider) DeletePD(pdName string) error {
return nil return nil
} }
framework.Logf("error deleting PD %q: %v", pdName, err) e2elog.Logf("error deleting PD %q: %v", pdName, err)
} }
return err return err
} }
...@@ -256,7 +257,7 @@ func (p *Provider) DeletePVSource(pvSource *v1.PersistentVolumeSource) error { ...@@ -256,7 +257,7 @@ func (p *Provider) DeletePVSource(pvSource *v1.PersistentVolumeSource) error {
func (p *Provider) CleanupServiceResources(c clientset.Interface, loadBalancerName, region, zone string) { func (p *Provider) CleanupServiceResources(c clientset.Interface, loadBalancerName, region, zone string) {
if pollErr := wait.Poll(5*time.Second, framework.LoadBalancerCleanupTimeout, func() (bool, error) { if pollErr := wait.Poll(5*time.Second, framework.LoadBalancerCleanupTimeout, func() (bool, error) {
if err := p.cleanupGCEResources(c, loadBalancerName, region, zone); err != nil { if err := p.cleanupGCEResources(c, loadBalancerName, region, zone); err != nil {
framework.Logf("Still waiting for glbc to cleanup: %v", err) e2elog.Logf("Still waiting for glbc to cleanup: %v", err)
return false, nil return false, nil
} }
return true, nil return true, nil
...@@ -347,7 +348,7 @@ func SetInstanceTags(cloudConfig framework.CloudConfig, instanceName, zone strin ...@@ -347,7 +348,7 @@ func SetInstanceTags(cloudConfig framework.CloudConfig, instanceName, zone strin
if err != nil { if err != nil {
framework.Failf("failed to set instance tags: %v", err) framework.Failf("failed to set instance tags: %v", err)
} }
framework.Logf("Sent request to set tags %v on instance: %v", tags, instanceName) e2elog.Logf("Sent request to set tags %v on instance: %v", tags, instanceName)
return resTags.Items return resTags.Items
} }
...@@ -355,7 +356,7 @@ func SetInstanceTags(cloudConfig framework.CloudConfig, instanceName, zone strin ...@@ -355,7 +356,7 @@ func SetInstanceTags(cloudConfig framework.CloudConfig, instanceName, zone strin
func GetNodeTags(c clientset.Interface, cloudConfig framework.CloudConfig) []string { func GetNodeTags(c clientset.Interface, cloudConfig framework.CloudConfig) []string {
nodes := framework.GetReadySchedulableNodesOrDie(c) nodes := framework.GetReadySchedulableNodesOrDie(c)
if len(nodes.Items) == 0 { if len(nodes.Items) == 0 {
framework.Logf("GetNodeTags: Found 0 node.") e2elog.Logf("GetNodeTags: Found 0 node.")
return []string{} return []string{}
} }
return GetInstanceTags(cloudConfig, nodes.Items[0].Name).Items return GetInstanceTags(cloudConfig, nodes.Items[0].Name).Items
......
...@@ -27,6 +27,7 @@ import ( ...@@ -27,6 +27,7 @@ import (
"k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/labels"
clientset "k8s.io/client-go/kubernetes" clientset "k8s.io/client-go/kubernetes"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
testutils "k8s.io/kubernetes/test/utils" testutils "k8s.io/kubernetes/test/utils"
) )
...@@ -52,7 +53,7 @@ var _ = ginkgo.Describe("Recreate [Feature:Recreate]", func() { ...@@ -52,7 +53,7 @@ var _ = ginkgo.Describe("Recreate [Feature:Recreate]", func() {
originalNodes, err = framework.CheckNodesReady(f.ClientSet, numNodes, framework.NodeReadyInitialTimeout) originalNodes, err = framework.CheckNodesReady(f.ClientSet, numNodes, framework.NodeReadyInitialTimeout)
framework.ExpectNoError(err) framework.ExpectNoError(err)
framework.Logf("Got the following nodes before recreate %v", nodeNames(originalNodes)) e2elog.Logf("Got the following nodes before recreate %v", nodeNames(originalNodes))
ps, err = testutils.NewPodStore(f.ClientSet, systemNamespace, labels.Everything(), fields.Everything()) ps, err = testutils.NewPodStore(f.ClientSet, systemNamespace, labels.Everything(), fields.Everything())
allPods := ps.List() allPods := ps.List()
...@@ -77,7 +78,7 @@ var _ = ginkgo.Describe("Recreate [Feature:Recreate]", func() { ...@@ -77,7 +78,7 @@ var _ = ginkgo.Describe("Recreate [Feature:Recreate]", func() {
framework.ExpectNoError(err) framework.ExpectNoError(err)
for _, e := range events.Items { for _, e := range events.Items {
framework.Logf("event for %v: %v %v: %v", e.InvolvedObject.Name, e.Source, e.Reason, e.Message) e2elog.Logf("event for %v: %v %v: %v", e.InvolvedObject.Name, e.Source, e.Reason, e.Message)
} }
} }
if ps != nil { if ps != nil {
...@@ -104,7 +105,7 @@ func testRecreate(c clientset.Interface, ps *testutils.PodStore, systemNamespace ...@@ -104,7 +105,7 @@ func testRecreate(c clientset.Interface, ps *testutils.PodStore, systemNamespace
nodesAfter, err := framework.CheckNodesReady(c, len(nodes), framework.RestartNodeReadyAgainTimeout) nodesAfter, err := framework.CheckNodesReady(c, len(nodes), framework.RestartNodeReadyAgainTimeout)
framework.ExpectNoError(err) framework.ExpectNoError(err)
framework.Logf("Got the following nodes after recreate: %v", nodeNames(nodesAfter)) e2elog.Logf("Got the following nodes after recreate: %v", nodeNames(nodesAfter))
if len(nodes) != len(nodesAfter) { if len(nodes) != len(nodesAfter) {
framework.Failf("Had %d nodes before nodes were recreated, but now only have %d", framework.Failf("Had %d nodes before nodes were recreated, but now only have %d",
......
...@@ -26,6 +26,7 @@ import ( ...@@ -26,6 +26,7 @@ import (
"k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/util/wait"
clientset "k8s.io/client-go/kubernetes" clientset "k8s.io/client-go/kubernetes"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
) )
// RecreateNodes recreates the given nodes in a managed instance group. // RecreateNodes recreates the given nodes in a managed instance group.
...@@ -61,7 +62,7 @@ func RecreateNodes(c clientset.Interface, nodes []v1.Node) error { ...@@ -61,7 +62,7 @@ func RecreateNodes(c clientset.Interface, nodes []v1.Node) error {
args = append(args, fmt.Sprintf("--instances=%s", strings.Join(nodeNames, ","))) args = append(args, fmt.Sprintf("--instances=%s", strings.Join(nodeNames, ",")))
args = append(args, fmt.Sprintf("--zone=%s", zone)) args = append(args, fmt.Sprintf("--zone=%s", zone))
framework.Logf("Recreating instance group %s.", instanceGroup) e2elog.Logf("Recreating instance group %s.", instanceGroup)
stdout, stderr, err := framework.RunCmd("gcloud", args...) stdout, stderr, err := framework.RunCmd("gcloud", args...)
if err != nil { if err != nil {
return fmt.Errorf("error recreating nodes: %s\nstdout: %s\nstderr: %s", err, stdout, stderr) return fmt.Errorf("error recreating nodes: %s\nstdout: %s\nstderr: %s", err, stdout, stderr)
...@@ -78,7 +79,7 @@ func WaitForNodeBootIdsToChange(c clientset.Interface, nodes []v1.Node, timeout ...@@ -78,7 +79,7 @@ func WaitForNodeBootIdsToChange(c clientset.Interface, nodes []v1.Node, timeout
if err := wait.Poll(30*time.Second, timeout, func() (bool, error) { if err := wait.Poll(30*time.Second, timeout, func() (bool, error) {
newNode, err := c.CoreV1().Nodes().Get(node.Name, metav1.GetOptions{}) newNode, err := c.CoreV1().Nodes().Get(node.Name, metav1.GetOptions{})
if err != nil { if err != nil {
framework.Logf("Could not get node info: %s. Retrying in %v.", err, 30*time.Second) e2elog.Logf("Could not get node info: %s. Retrying in %v.", err, 30*time.Second)
return false, nil return false, nil
} }
return node.Status.NodeInfo.BootID != newNode.Status.NodeInfo.BootID, nil return node.Status.NodeInfo.BootID != newNode.Status.NodeInfo.BootID, nil
......
...@@ -29,6 +29,7 @@ import ( ...@@ -29,6 +29,7 @@ import (
"k8s.io/apiserver/pkg/authentication/serviceaccount" "k8s.io/apiserver/pkg/authentication/serviceaccount"
"k8s.io/kubernetes/pkg/security/podsecuritypolicy/seccomp" "k8s.io/kubernetes/pkg/security/podsecuritypolicy/seccomp"
"k8s.io/kubernetes/test/e2e/framework/auth" "k8s.io/kubernetes/test/e2e/framework/auth"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
"github.com/onsi/ginkgo" "github.com/onsi/ginkgo"
) )
...@@ -82,13 +83,13 @@ func IsPodSecurityPolicyEnabled(f *Framework) bool { ...@@ -82,13 +83,13 @@ func IsPodSecurityPolicyEnabled(f *Framework) bool {
isPSPEnabledOnce.Do(func() { isPSPEnabledOnce.Do(func() {
psps, err := f.ClientSet.PolicyV1beta1().PodSecurityPolicies().List(metav1.ListOptions{}) psps, err := f.ClientSet.PolicyV1beta1().PodSecurityPolicies().List(metav1.ListOptions{})
if err != nil { if err != nil {
Logf("Error listing PodSecurityPolicies; assuming PodSecurityPolicy is disabled: %v", err) e2elog.Logf("Error listing PodSecurityPolicies; assuming PodSecurityPolicy is disabled: %v", err)
isPSPEnabled = false isPSPEnabled = false
} else if psps == nil || len(psps.Items) == 0 { } else if psps == nil || len(psps.Items) == 0 {
Logf("No PodSecurityPolicies found; assuming PodSecurityPolicy is disabled.") e2elog.Logf("No PodSecurityPolicies found; assuming PodSecurityPolicy is disabled.")
isPSPEnabled = false isPSPEnabled = false
} else { } else {
Logf("Found PodSecurityPolicies; assuming PodSecurityPolicy is enabled.") e2elog.Logf("Found PodSecurityPolicies; assuming PodSecurityPolicy is enabled.")
isPSPEnabled = true isPSPEnabled = true
} }
}) })
......
...@@ -31,6 +31,7 @@ import ( ...@@ -31,6 +31,7 @@ import (
clientset "k8s.io/client-go/kubernetes" clientset "k8s.io/client-go/kubernetes"
storageutil "k8s.io/kubernetes/pkg/apis/storage/v1/util" storageutil "k8s.io/kubernetes/pkg/apis/storage/v1/util"
"k8s.io/kubernetes/pkg/volume/util" "k8s.io/kubernetes/pkg/volume/util"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
imageutils "k8s.io/kubernetes/test/utils/image" imageutils "k8s.io/kubernetes/test/utils/image"
) )
...@@ -116,7 +117,7 @@ func PVPVCCleanup(c clientset.Interface, ns string, pv *v1.PersistentVolume, pvc ...@@ -116,7 +117,7 @@ func PVPVCCleanup(c clientset.Interface, ns string, pv *v1.PersistentVolume, pvc
errs = append(errs, fmt.Errorf("failed to delete PVC %q: %v", pvc.Name, err)) errs = append(errs, fmt.Errorf("failed to delete PVC %q: %v", pvc.Name, err))
} }
} else { } else {
Logf("pvc is nil") e2elog.Logf("pvc is nil")
} }
if pv != nil { if pv != nil {
err := DeletePersistentVolume(c, pv.Name) err := DeletePersistentVolume(c, pv.Name)
...@@ -124,7 +125,7 @@ func PVPVCCleanup(c clientset.Interface, ns string, pv *v1.PersistentVolume, pvc ...@@ -124,7 +125,7 @@ func PVPVCCleanup(c clientset.Interface, ns string, pv *v1.PersistentVolume, pvc
errs = append(errs, fmt.Errorf("failed to delete PV %q: %v", pv.Name, err)) errs = append(errs, fmt.Errorf("failed to delete PV %q: %v", pv.Name, err))
} }
} else { } else {
Logf("pv is nil") e2elog.Logf("pv is nil")
} }
return errs return errs
} }
...@@ -158,7 +159,7 @@ func PVPVCMapCleanup(c clientset.Interface, ns string, pvols PVMap, claims PVCMa ...@@ -158,7 +159,7 @@ func PVPVCMapCleanup(c clientset.Interface, ns string, pvols PVMap, claims PVCMa
// DeletePersistentVolume deletes the PV. // DeletePersistentVolume deletes the PV.
func DeletePersistentVolume(c clientset.Interface, pvName string) error { func DeletePersistentVolume(c clientset.Interface, pvName string) error {
if c != nil && len(pvName) > 0 { if c != nil && len(pvName) > 0 {
Logf("Deleting PersistentVolume %q", pvName) e2elog.Logf("Deleting PersistentVolume %q", pvName)
err := c.CoreV1().PersistentVolumes().Delete(pvName, nil) err := c.CoreV1().PersistentVolumes().Delete(pvName, nil)
if err != nil && !apierrs.IsNotFound(err) { if err != nil && !apierrs.IsNotFound(err) {
return fmt.Errorf("PV Delete API error: %v", err) return fmt.Errorf("PV Delete API error: %v", err)
...@@ -170,7 +171,7 @@ func DeletePersistentVolume(c clientset.Interface, pvName string) error { ...@@ -170,7 +171,7 @@ func DeletePersistentVolume(c clientset.Interface, pvName string) error {
// DeletePersistentVolumeClaim deletes the Claim. // DeletePersistentVolumeClaim deletes the Claim.
func DeletePersistentVolumeClaim(c clientset.Interface, pvcName string, ns string) error { func DeletePersistentVolumeClaim(c clientset.Interface, pvcName string, ns string) error {
if c != nil && len(pvcName) > 0 { if c != nil && len(pvcName) > 0 {
Logf("Deleting PersistentVolumeClaim %q", pvcName) e2elog.Logf("Deleting PersistentVolumeClaim %q", pvcName)
err := c.CoreV1().PersistentVolumeClaims(ns).Delete(pvcName, nil) err := c.CoreV1().PersistentVolumeClaims(ns).Delete(pvcName, nil)
if err != nil && !apierrs.IsNotFound(err) { if err != nil && !apierrs.IsNotFound(err) {
return fmt.Errorf("PVC Delete API error: %v", err) return fmt.Errorf("PVC Delete API error: %v", err)
...@@ -184,14 +185,14 @@ func DeletePersistentVolumeClaim(c clientset.Interface, pvcName string, ns strin ...@@ -184,14 +185,14 @@ func DeletePersistentVolumeClaim(c clientset.Interface, pvcName string, ns strin
// phase value to expect for the pv bound to the to-be-deleted claim. // phase value to expect for the pv bound to the to-be-deleted claim.
func DeletePVCandValidatePV(c clientset.Interface, ns string, pvc *v1.PersistentVolumeClaim, pv *v1.PersistentVolume, expectPVPhase v1.PersistentVolumePhase) error { func DeletePVCandValidatePV(c clientset.Interface, ns string, pvc *v1.PersistentVolumeClaim, pv *v1.PersistentVolume, expectPVPhase v1.PersistentVolumePhase) error {
pvname := pvc.Spec.VolumeName pvname := pvc.Spec.VolumeName
Logf("Deleting PVC %v to trigger reclamation of PV %v", pvc.Name, pvname) e2elog.Logf("Deleting PVC %v to trigger reclamation of PV %v", pvc.Name, pvname)
err := DeletePersistentVolumeClaim(c, pvc.Name, ns) err := DeletePersistentVolumeClaim(c, pvc.Name, ns)
if err != nil { if err != nil {
return err return err
} }
// Wait for the PV's phase to return to be `expectPVPhase` // Wait for the PV's phase to return to be `expectPVPhase`
Logf("Waiting for reclaim process to complete.") e2elog.Logf("Waiting for reclaim process to complete.")
err = WaitForPersistentVolumePhase(expectPVPhase, c, pv.Name, Poll, PVReclaimingTimeout) err = WaitForPersistentVolumePhase(expectPVPhase, c, pv.Name, Poll, PVReclaimingTimeout)
if err != nil { if err != nil {
return fmt.Errorf("pv %q phase did not become %v: %v", pv.Name, expectPVPhase, err) return fmt.Errorf("pv %q phase did not become %v: %v", pv.Name, expectPVPhase, err)
...@@ -216,7 +217,7 @@ func DeletePVCandValidatePV(c clientset.Interface, ns string, pvc *v1.Persistent ...@@ -216,7 +217,7 @@ func DeletePVCandValidatePV(c clientset.Interface, ns string, pvc *v1.Persistent
} }
} }
Logf("PV %v now in %q phase", pv.Name, expectPVPhase) e2elog.Logf("PV %v now in %q phase", pv.Name, expectPVPhase)
return nil return nil
} }
...@@ -333,7 +334,7 @@ func CreatePVPVC(c clientset.Interface, pvConfig PersistentVolumeConfig, pvcConf ...@@ -333,7 +334,7 @@ func CreatePVPVC(c clientset.Interface, pvConfig PersistentVolumeConfig, pvcConf
if preBind { if preBind {
preBindMsg = " pre-bound" preBindMsg = " pre-bound"
} }
Logf("Creating a PV followed by a%s PVC", preBindMsg) e2elog.Logf("Creating a PV followed by a%s PVC", preBindMsg)
// make the pv and pvc definitions // make the pv and pvc definitions
pv := MakePersistentVolume(pvConfig) pv := MakePersistentVolume(pvConfig)
...@@ -406,7 +407,7 @@ func CreatePVsPVCs(numpvs, numpvcs int, c clientset.Interface, ns string, pvConf ...@@ -406,7 +407,7 @@ func CreatePVsPVCs(numpvs, numpvcs int, c clientset.Interface, ns string, pvConf
// WaitOnPVandPVC waits for the pv and pvc to bind to each other. // WaitOnPVandPVC waits for the pv and pvc to bind to each other.
func WaitOnPVandPVC(c clientset.Interface, ns string, pv *v1.PersistentVolume, pvc *v1.PersistentVolumeClaim) error { func WaitOnPVandPVC(c clientset.Interface, ns string, pv *v1.PersistentVolume, pvc *v1.PersistentVolumeClaim) error {
// Wait for newly created PVC to bind to the PV // Wait for newly created PVC to bind to the PV
Logf("Waiting for PV %v to bind to PVC %v", pv.Name, pvc.Name) e2elog.Logf("Waiting for PV %v to bind to PVC %v", pv.Name, pvc.Name)
err := WaitForPersistentVolumeClaimPhase(v1.ClaimBound, c, ns, pvc.Name, Poll, ClaimBindingTimeout) err := WaitForPersistentVolumeClaimPhase(v1.ClaimBound, c, ns, pvc.Name, Poll, ClaimBindingTimeout)
if err != nil { if err != nil {
return fmt.Errorf("PVC %q did not become Bound: %v", pvc.Name, err) return fmt.Errorf("PVC %q did not become Bound: %v", pvc.Name, err)
...@@ -462,8 +463,8 @@ func WaitAndVerifyBinds(c clientset.Interface, ns string, pvols PVMap, claims PV ...@@ -462,8 +463,8 @@ func WaitAndVerifyBinds(c clientset.Interface, ns string, pvols PVMap, claims PV
for pvName := range pvols { for pvName := range pvols {
err := WaitForPersistentVolumePhase(v1.VolumeBound, c, pvName, Poll, PVBindingTimeout) err := WaitForPersistentVolumePhase(v1.VolumeBound, c, pvName, Poll, PVBindingTimeout)
if err != nil && len(pvols) > len(claims) { if err != nil && len(pvols) > len(claims) {
Logf("WARN: pv %v is not bound after max wait", pvName) e2elog.Logf("WARN: pv %v is not bound after max wait", pvName)
Logf(" This may be ok since there are more pvs than pvcs") e2elog.Logf(" This may be ok since there are more pvs than pvcs")
continue continue
} }
if err != nil { if err != nil {
...@@ -503,7 +504,7 @@ func testPodSuccessOrFail(c clientset.Interface, ns string, pod *v1.Pod) error { ...@@ -503,7 +504,7 @@ func testPodSuccessOrFail(c clientset.Interface, ns string, pod *v1.Pod) error {
if err := WaitForPodSuccessInNamespace(c, pod.Name, ns); err != nil { if err := WaitForPodSuccessInNamespace(c, pod.Name, ns); err != nil {
return fmt.Errorf("pod %q failed to reach Success: %v", pod.Name, err) return fmt.Errorf("pod %q failed to reach Success: %v", pod.Name, err)
} }
Logf("Pod %v succeeded ", pod.Name) e2elog.Logf("Pod %v succeeded ", pod.Name)
return nil return nil
} }
...@@ -519,7 +520,7 @@ func DeletePodWithWait(f *Framework, c clientset.Interface, pod *v1.Pod) error { ...@@ -519,7 +520,7 @@ func DeletePodWithWait(f *Framework, c clientset.Interface, pod *v1.Pod) error {
// DeletePodWithWaitByName deletes the named and namespaced pod and waits for the pod to be terminated. Resilient to the pod // DeletePodWithWaitByName deletes the named and namespaced pod and waits for the pod to be terminated. Resilient to the pod
// not existing. // not existing.
func DeletePodWithWaitByName(f *Framework, c clientset.Interface, podName, podNamespace string) error { func DeletePodWithWaitByName(f *Framework, c clientset.Interface, podName, podNamespace string) error {
Logf("Deleting pod %q in namespace %q", podName, podNamespace) e2elog.Logf("Deleting pod %q in namespace %q", podName, podNamespace)
err := c.CoreV1().Pods(podNamespace).Delete(podName, nil) err := c.CoreV1().Pods(podNamespace).Delete(podName, nil)
if err != nil { if err != nil {
if apierrs.IsNotFound(err) { if apierrs.IsNotFound(err) {
...@@ -527,7 +528,7 @@ func DeletePodWithWaitByName(f *Framework, c clientset.Interface, podName, podNa ...@@ -527,7 +528,7 @@ func DeletePodWithWaitByName(f *Framework, c clientset.Interface, podName, podNa
} }
return fmt.Errorf("pod Delete API error: %v", err) return fmt.Errorf("pod Delete API error: %v", err)
} }
Logf("Wait up to %v for pod %q to be fully deleted", PodDeleteTimeout, podName) e2elog.Logf("Wait up to %v for pod %q to be fully deleted", PodDeleteTimeout, podName)
err = f.WaitForPodNotFound(podName, PodDeleteTimeout) err = f.WaitForPodNotFound(podName, PodDeleteTimeout)
if err != nil { if err != nil {
return fmt.Errorf("pod %q was not deleted: %v", podName, err) return fmt.Errorf("pod %q was not deleted: %v", podName, err)
...@@ -539,7 +540,7 @@ func DeletePodWithWaitByName(f *Framework, c clientset.Interface, podName, podNa ...@@ -539,7 +540,7 @@ func DeletePodWithWaitByName(f *Framework, c clientset.Interface, podName, podNa
// Note: need named return value so that the err assignment in the defer sets the returned error. // Note: need named return value so that the err assignment in the defer sets the returned error.
// Has been shown to be necessary using Go 1.7. // Has been shown to be necessary using Go 1.7.
func CreateWaitAndDeletePod(f *Framework, c clientset.Interface, ns string, pvc *v1.PersistentVolumeClaim) (err error) { func CreateWaitAndDeletePod(f *Framework, c clientset.Interface, ns string, pvc *v1.PersistentVolumeClaim) (err error) {
Logf("Creating nfs test pod") e2elog.Logf("Creating nfs test pod")
pod := MakeWritePod(ns, pvc) pod := MakeWritePod(ns, pvc)
runPod, err := c.CoreV1().Pods(ns).Create(pod) runPod, err := c.CoreV1().Pods(ns).Create(pod)
if err != nil { if err != nil {
...@@ -575,7 +576,7 @@ func MakePersistentVolume(pvConfig PersistentVolumeConfig) *v1.PersistentVolume ...@@ -575,7 +576,7 @@ func MakePersistentVolume(pvConfig PersistentVolumeConfig) *v1.PersistentVolume
var claimRef *v1.ObjectReference var claimRef *v1.ObjectReference
// If the reclaimPolicy is not provided, assume Retain // If the reclaimPolicy is not provided, assume Retain
if pvConfig.ReclaimPolicy == "" { if pvConfig.ReclaimPolicy == "" {
Logf("PV ReclaimPolicy unspecified, default: Retain") e2elog.Logf("PV ReclaimPolicy unspecified, default: Retain")
pvConfig.ReclaimPolicy = v1.PersistentVolumeReclaimRetain pvConfig.ReclaimPolicy = v1.PersistentVolumeReclaimRetain
} }
if pvConfig.Prebind != nil { if pvConfig.Prebind != nil {
...@@ -619,7 +620,7 @@ func MakePersistentVolumeClaim(cfg PersistentVolumeClaimConfig, ns string) *v1.P ...@@ -619,7 +620,7 @@ func MakePersistentVolumeClaim(cfg PersistentVolumeClaimConfig, ns string) *v1.P
// Specs are expected to match this test's PersistentVolume // Specs are expected to match this test's PersistentVolume
if len(cfg.AccessModes) == 0 { if len(cfg.AccessModes) == 0 {
Logf("AccessModes unspecified, default: all modes (RWO, RWX, ROX).") e2elog.Logf("AccessModes unspecified, default: all modes (RWO, RWX, ROX).")
cfg.AccessModes = append(cfg.AccessModes, v1.ReadWriteOnce, v1.ReadOnlyMany, v1.ReadOnlyMany) cfg.AccessModes = append(cfg.AccessModes, v1.ReadWriteOnce, v1.ReadOnlyMany, v1.ReadOnlyMany)
} }
...@@ -648,10 +649,10 @@ func createPDWithRetry(zone string) (string, error) { ...@@ -648,10 +649,10 @@ func createPDWithRetry(zone string) (string, error) {
for start := time.Now(); time.Since(start) < pdRetryTimeout; time.Sleep(pdRetryPollTime) { for start := time.Now(); time.Since(start) < pdRetryTimeout; time.Sleep(pdRetryPollTime) {
newDiskName, err := createPD(zone) newDiskName, err := createPD(zone)
if err != nil { if err != nil {
Logf("Couldn't create a new PD, sleeping 5 seconds: %v", err) e2elog.Logf("Couldn't create a new PD, sleeping 5 seconds: %v", err)
continue continue
} }
Logf("Successfully created a new PD: %q.", newDiskName) e2elog.Logf("Successfully created a new PD: %q.", newDiskName)
return newDiskName, nil return newDiskName, nil
} }
return "", err return "", err
...@@ -673,10 +674,10 @@ func DeletePDWithRetry(diskName string) error { ...@@ -673,10 +674,10 @@ func DeletePDWithRetry(diskName string) error {
for start := time.Now(); time.Since(start) < pdRetryTimeout; time.Sleep(pdRetryPollTime) { for start := time.Now(); time.Since(start) < pdRetryTimeout; time.Sleep(pdRetryPollTime) {
err = deletePD(diskName) err = deletePD(diskName)
if err != nil { if err != nil {
Logf("Couldn't delete PD %q, sleeping %v: %v", diskName, pdRetryPollTime, err) e2elog.Logf("Couldn't delete PD %q, sleeping %v: %v", diskName, pdRetryPollTime, err)
continue continue
} }
Logf("Successfully deleted PD %q.", diskName) e2elog.Logf("Successfully deleted PD %q.", diskName)
return nil return nil
} }
return fmt.Errorf("unable to delete PD %q: %v", diskName, err) return fmt.Errorf("unable to delete PD %q: %v", diskName, err)
...@@ -1041,7 +1042,7 @@ func GetDefaultStorageClassName(c clientset.Interface) (string, error) { ...@@ -1041,7 +1042,7 @@ func GetDefaultStorageClassName(c clientset.Interface) (string, error) {
if len(scName) == 0 { if len(scName) == 0 {
return "", fmt.Errorf("No default storage class found") return "", fmt.Errorf("No default storage class found")
} }
Logf("Default storage class: %q", scName) e2elog.Logf("Default storage class: %q", scName)
return scName, nil return scName, nil
} }
......
...@@ -30,6 +30,7 @@ import ( ...@@ -30,6 +30,7 @@ import (
clientset "k8s.io/client-go/kubernetes" clientset "k8s.io/client-go/kubernetes"
scaleclient "k8s.io/client-go/scale" scaleclient "k8s.io/client-go/scale"
api "k8s.io/kubernetes/pkg/apis/core" api "k8s.io/kubernetes/pkg/apis/core"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
testutils "k8s.io/kubernetes/test/utils" testutils "k8s.io/kubernetes/test/utils"
) )
...@@ -98,7 +99,7 @@ func UpdateReplicationControllerWithRetries(c clientset.Interface, namespace, na ...@@ -98,7 +99,7 @@ func UpdateReplicationControllerWithRetries(c clientset.Interface, namespace, na
// Apply the update, then attempt to push it to the apiserver. // Apply the update, then attempt to push it to the apiserver.
applyUpdate(rc) applyUpdate(rc)
if rc, err = c.CoreV1().ReplicationControllers(namespace).Update(rc); err == nil { if rc, err = c.CoreV1().ReplicationControllers(namespace).Update(rc); err == nil {
Logf("Updating replication controller %q", name) e2elog.Logf("Updating replication controller %q", name)
return true, nil return true, nil
} }
updateErr = err updateErr = err
...@@ -144,10 +145,10 @@ func WaitForReplicationController(c clientset.Interface, namespace, name string, ...@@ -144,10 +145,10 @@ func WaitForReplicationController(c clientset.Interface, namespace, name string,
err := wait.PollImmediate(interval, timeout, func() (bool, error) { err := wait.PollImmediate(interval, timeout, func() (bool, error) {
_, err := c.CoreV1().ReplicationControllers(namespace).Get(name, metav1.GetOptions{}) _, err := c.CoreV1().ReplicationControllers(namespace).Get(name, metav1.GetOptions{})
if err != nil { if err != nil {
Logf("Get ReplicationController %s in namespace %s failed (%v).", name, namespace, err) e2elog.Logf("Get ReplicationController %s in namespace %s failed (%v).", name, namespace, err)
return !exist, nil return !exist, nil
} }
Logf("ReplicationController %s in namespace %s found.", name, namespace) e2elog.Logf("ReplicationController %s in namespace %s found.", name, namespace)
return exist, nil return exist, nil
}) })
if err != nil { if err != nil {
...@@ -164,13 +165,13 @@ func WaitForReplicationControllerwithSelector(c clientset.Interface, namespace s ...@@ -164,13 +165,13 @@ func WaitForReplicationControllerwithSelector(c clientset.Interface, namespace s
rcs, err := c.CoreV1().ReplicationControllers(namespace).List(metav1.ListOptions{LabelSelector: selector.String()}) rcs, err := c.CoreV1().ReplicationControllers(namespace).List(metav1.ListOptions{LabelSelector: selector.String()})
switch { switch {
case len(rcs.Items) != 0: case len(rcs.Items) != 0:
Logf("ReplicationController with %s in namespace %s found.", selector.String(), namespace) e2elog.Logf("ReplicationController with %s in namespace %s found.", selector.String(), namespace)
return exist, nil return exist, nil
case len(rcs.Items) == 0: case len(rcs.Items) == 0:
Logf("ReplicationController with %s in namespace %s disappeared.", selector.String(), namespace) e2elog.Logf("ReplicationController with %s in namespace %s disappeared.", selector.String(), namespace)
return !exist, nil return !exist, nil
default: default:
Logf("List ReplicationController with %s in namespace %s failed: %v", selector.String(), namespace, err) e2elog.Logf("List ReplicationController with %s in namespace %s failed: %v", selector.String(), namespace, err)
return false, nil return false, nil
} }
}) })
...@@ -227,25 +228,25 @@ waitLoop: ...@@ -227,25 +228,25 @@ waitLoop:
for _, podID := range pods { for _, podID := range pods {
running := RunKubectlOrDie("get", "pods", podID, "-o", "template", getContainerStateTemplate, fmt.Sprintf("--namespace=%v", ns)) running := RunKubectlOrDie("get", "pods", podID, "-o", "template", getContainerStateTemplate, fmt.Sprintf("--namespace=%v", ns))
if running != "true" { if running != "true" {
Logf("%s is created but not running", podID) e2elog.Logf("%s is created but not running", podID)
continue waitLoop continue waitLoop
} }
currentImage := RunKubectlOrDie("get", "pods", podID, "-o", "template", getImageTemplate, fmt.Sprintf("--namespace=%v", ns)) currentImage := RunKubectlOrDie("get", "pods", podID, "-o", "template", getImageTemplate, fmt.Sprintf("--namespace=%v", ns))
currentImage = trimDockerRegistry(currentImage) currentImage = trimDockerRegistry(currentImage)
if currentImage != containerImage { if currentImage != containerImage {
Logf("%s is created but running wrong image; expected: %s, actual: %s", podID, containerImage, currentImage) e2elog.Logf("%s is created but running wrong image; expected: %s, actual: %s", podID, containerImage, currentImage)
continue waitLoop continue waitLoop
} }
// Call the generic validator function here. // Call the generic validator function here.
// This might validate for example, that (1) getting a url works and (2) url is serving correct content. // This might validate for example, that (1) getting a url works and (2) url is serving correct content.
if err := validator(c, podID); err != nil { if err := validator(c, podID); err != nil {
Logf("%s is running right image but validator function failed: %v", podID, err) e2elog.Logf("%s is running right image but validator function failed: %v", podID, err)
continue waitLoop continue waitLoop
} }
Logf("%s is verified up and running", podID) e2elog.Logf("%s is verified up and running", podID)
runningPods = append(runningPods, podID) runningPods = append(runningPods, podID)
} }
// If we reach here, then all our checks passed. // If we reach here, then all our checks passed.
......
...@@ -18,6 +18,7 @@ go_library( ...@@ -18,6 +18,7 @@ go_library(
"//staging/src/k8s.io/client-go/kubernetes:go_default_library", "//staging/src/k8s.io/client-go/kubernetes:go_default_library",
"//staging/src/k8s.io/client-go/kubernetes/typed/apps/v1:go_default_library", "//staging/src/k8s.io/client-go/kubernetes/typed/apps/v1:go_default_library",
"//test/e2e/framework:go_default_library", "//test/e2e/framework:go_default_library",
"//test/e2e/framework/log:go_default_library",
"//test/utils:go_default_library", "//test/utils:go_default_library",
"//vendor/github.com/onsi/ginkgo:go_default_library", "//vendor/github.com/onsi/ginkgo:go_default_library",
], ],
......
...@@ -24,12 +24,13 @@ import ( ...@@ -24,12 +24,13 @@ import (
clientset "k8s.io/client-go/kubernetes" clientset "k8s.io/client-go/kubernetes"
deploymentutil "k8s.io/kubernetes/pkg/controller/deployment/util" deploymentutil "k8s.io/kubernetes/pkg/controller/deployment/util"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
testutils "k8s.io/kubernetes/test/utils" testutils "k8s.io/kubernetes/test/utils"
) )
// UpdateReplicaSetWithRetries updates replicaset template with retries. // UpdateReplicaSetWithRetries updates replicaset template with retries.
func UpdateReplicaSetWithRetries(c clientset.Interface, namespace, name string, applyUpdate testutils.UpdateReplicaSetFunc) (*apps.ReplicaSet, error) { func UpdateReplicaSetWithRetries(c clientset.Interface, namespace, name string, applyUpdate testutils.UpdateReplicaSetFunc) (*apps.ReplicaSet, error) {
return testutils.UpdateReplicaSetWithRetries(c, namespace, name, applyUpdate, framework.Logf, framework.Poll, framework.PollShortTimeout) return testutils.UpdateReplicaSetWithRetries(c, namespace, name, applyUpdate, e2elog.Logf, framework.Poll, framework.PollShortTimeout)
} }
// CheckNewRSAnnotations check if the new RS's annotation is as expected // CheckNewRSAnnotations check if the new RS's annotation is as expected
......
...@@ -32,6 +32,7 @@ import ( ...@@ -32,6 +32,7 @@ import (
utilruntime "k8s.io/apimachinery/pkg/util/runtime" utilruntime "k8s.io/apimachinery/pkg/util/runtime"
clientset "k8s.io/client-go/kubernetes" clientset "k8s.io/client-go/kubernetes"
"k8s.io/kubernetes/pkg/util/system" "k8s.io/kubernetes/pkg/util/system"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
) )
// ResourceConstraint is a struct to hold constraints. // ResourceConstraint is a struct to hold constraints.
...@@ -166,13 +167,13 @@ func (w *resourceGatherWorker) singleProbe() { ...@@ -166,13 +167,13 @@ func (w *resourceGatherWorker) singleProbe() {
} else { } else {
nodeUsage, err := getOneTimeResourceUsageOnNode(w.c, w.nodeName, w.probeDuration, func() []string { return w.containerIDs }) nodeUsage, err := getOneTimeResourceUsageOnNode(w.c, w.nodeName, w.probeDuration, func() []string { return w.containerIDs })
if err != nil { if err != nil {
Logf("Error while reading data from %v: %v", w.nodeName, err) e2elog.Logf("Error while reading data from %v: %v", w.nodeName, err)
return return
} }
for k, v := range nodeUsage { for k, v := range nodeUsage {
data[k] = v data[k] = v
if w.printVerboseLogs { if w.printVerboseLogs {
Logf("Get container %v usage on node %v. CPUUsageInCores: %v, MemoryUsageInBytes: %v, MemoryWorkingSetInBytes: %v", k, w.nodeName, v.CPUUsageInCores, v.MemoryUsageInBytes, v.MemoryWorkingSetInBytes) e2elog.Logf("Get container %v usage on node %v. CPUUsageInCores: %v, MemoryUsageInBytes: %v, MemoryWorkingSetInBytes: %v", k, w.nodeName, v.CPUUsageInCores, v.MemoryUsageInBytes, v.MemoryWorkingSetInBytes)
} }
} }
} }
...@@ -182,7 +183,7 @@ func (w *resourceGatherWorker) singleProbe() { ...@@ -182,7 +183,7 @@ func (w *resourceGatherWorker) singleProbe() {
func (w *resourceGatherWorker) gather(initialSleep time.Duration) { func (w *resourceGatherWorker) gather(initialSleep time.Duration) {
defer utilruntime.HandleCrash() defer utilruntime.HandleCrash()
defer w.wg.Done() defer w.wg.Done()
defer Logf("Closing worker for %v", w.nodeName) defer e2elog.Logf("Closing worker for %v", w.nodeName)
defer func() { w.finished = true }() defer func() { w.finished = true }()
select { select {
case <-time.After(initialSleep): case <-time.After(initialSleep):
...@@ -257,7 +258,7 @@ func NewResourceUsageGatherer(c clientset.Interface, options ResourceGathererOpt ...@@ -257,7 +258,7 @@ func NewResourceUsageGatherer(c clientset.Interface, options ResourceGathererOpt
if pods == nil { if pods == nil {
pods, err = c.CoreV1().Pods("kube-system").List(metav1.ListOptions{}) pods, err = c.CoreV1().Pods("kube-system").List(metav1.ListOptions{})
if err != nil { if err != nil {
Logf("Error while listing Pods: %v", err) e2elog.Logf("Error while listing Pods: %v", err)
return nil, err return nil, err
} }
} }
...@@ -281,7 +282,7 @@ func NewResourceUsageGatherer(c clientset.Interface, options ResourceGathererOpt ...@@ -281,7 +282,7 @@ func NewResourceUsageGatherer(c clientset.Interface, options ResourceGathererOpt
} }
nodeList, err := c.CoreV1().Nodes().List(metav1.ListOptions{}) nodeList, err := c.CoreV1().Nodes().List(metav1.ListOptions{})
if err != nil { if err != nil {
Logf("Error while listing Nodes: %v", err) e2elog.Logf("Error while listing Nodes: %v", err)
return nil, err return nil, err
} }
...@@ -330,7 +331,7 @@ func (g *ContainerResourceGatherer) StartGatheringData() { ...@@ -330,7 +331,7 @@ func (g *ContainerResourceGatherer) StartGatheringData() {
// specified resource constraints. // specified resource constraints.
func (g *ContainerResourceGatherer) StopAndSummarize(percentiles []int, constraints map[string]ResourceConstraint) (*ResourceUsageSummary, error) { func (g *ContainerResourceGatherer) StopAndSummarize(percentiles []int, constraints map[string]ResourceConstraint) (*ResourceUsageSummary, error) {
close(g.stopCh) close(g.stopCh)
Logf("Closed stop channel. Waiting for %v workers", len(g.workers)) e2elog.Logf("Closed stop channel. Waiting for %v workers", len(g.workers))
finished := make(chan struct{}) finished := make(chan struct{})
go func() { go func() {
g.workerWg.Wait() g.workerWg.Wait()
...@@ -338,7 +339,7 @@ func (g *ContainerResourceGatherer) StopAndSummarize(percentiles []int, constrai ...@@ -338,7 +339,7 @@ func (g *ContainerResourceGatherer) StopAndSummarize(percentiles []int, constrai
}() }()
select { select {
case <-finished: case <-finished:
Logf("Waitgroup finished.") e2elog.Logf("Waitgroup finished.")
case <-time.After(2 * time.Minute): case <-time.After(2 * time.Minute):
unfinished := make([]string, 0) unfinished := make([]string, 0)
for i := range g.workers { for i := range g.workers {
...@@ -346,11 +347,11 @@ func (g *ContainerResourceGatherer) StopAndSummarize(percentiles []int, constrai ...@@ -346,11 +347,11 @@ func (g *ContainerResourceGatherer) StopAndSummarize(percentiles []int, constrai
unfinished = append(unfinished, g.workers[i].nodeName) unfinished = append(unfinished, g.workers[i].nodeName)
} }
} }
Logf("Timed out while waiting for waitgroup, some workers failed to finish: %v", unfinished) e2elog.Logf("Timed out while waiting for waitgroup, some workers failed to finish: %v", unfinished)
} }
if len(percentiles) == 0 { if len(percentiles) == 0 {
Logf("Warning! Empty percentile list for stopAndPrintData.") e2elog.Logf("Warning! Empty percentile list for stopAndPrintData.")
return &ResourceUsageSummary{}, fmt.Errorf("Failed to get any resource usage data") return &ResourceUsageSummary{}, fmt.Errorf("Failed to get any resource usage data")
} }
data := make(map[int]ResourceUsagePerContainer) data := make(map[int]ResourceUsagePerContainer)
......
...@@ -19,6 +19,8 @@ package framework ...@@ -19,6 +19,8 @@ package framework
import ( import (
"fmt" "fmt"
"time" "time"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
) )
const ( const (
...@@ -51,14 +53,14 @@ func WaitForGroupSize(group string, size int32) error { ...@@ -51,14 +53,14 @@ func WaitForGroupSize(group string, size int32) error {
for start := time.Now(); time.Since(start) < timeout; time.Sleep(20 * time.Second) { for start := time.Now(); time.Since(start) < timeout; time.Sleep(20 * time.Second) {
currentSize, err := GroupSize(group) currentSize, err := GroupSize(group)
if err != nil { if err != nil {
Logf("Failed to get node instance group size: %v", err) e2elog.Logf("Failed to get node instance group size: %v", err)
continue continue
} }
if currentSize != int(size) { if currentSize != int(size) {
Logf("Waiting for node instance group size %d, current size %d", size, currentSize) e2elog.Logf("Waiting for node instance group size %d, current size %d", size, currentSize)
continue continue
} }
Logf("Node instance group has reached the desired size %d", size) e2elog.Logf("Node instance group has reached the desired size %d", size)
return nil return nil
} }
return fmt.Errorf("timeout waiting %v for node instance group size to be %d", timeout, size) return fmt.Errorf("timeout waiting %v for node instance group size to be %d", timeout, size)
......
...@@ -33,6 +33,7 @@ import ( ...@@ -33,6 +33,7 @@ import (
cliflag "k8s.io/component-base/cli/flag" cliflag "k8s.io/component-base/cli/flag"
"k8s.io/klog" "k8s.io/klog"
kubeletconfig "k8s.io/kubernetes/pkg/kubelet/apis/config" kubeletconfig "k8s.io/kubernetes/pkg/kubelet/apis/config"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
) )
const ( const (
...@@ -421,7 +422,7 @@ func AfterReadingAllFlags(t *TestContextType) { ...@@ -421,7 +422,7 @@ func AfterReadingAllFlags(t *TestContextType) {
if TestContext.Provider == "" { if TestContext.Provider == "" {
// Some users of the e2e.test binary pass --provider=. // Some users of the e2e.test binary pass --provider=.
// We need to support that, changing it would break those usages. // We need to support that, changing it would break those usages.
Logf("The --provider flag is not set. Continuing as if --provider=skeleton had been used.") e2elog.Logf("The --provider flag is not set. Continuing as if --provider=skeleton had been used.")
TestContext.Provider = "skeleton" TestContext.Provider = "skeleton"
} }
......
...@@ -13,6 +13,7 @@ go_library( ...@@ -13,6 +13,7 @@ go_library(
"//staging/src/k8s.io/apimachinery/pkg/util/rand:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/rand:go_default_library",
"//staging/src/k8s.io/client-go/kubernetes:go_default_library", "//staging/src/k8s.io/client-go/kubernetes:go_default_library",
"//test/e2e/framework:go_default_library", "//test/e2e/framework:go_default_library",
"//test/e2e/framework/log:go_default_library",
"//test/utils/image:go_default_library", "//test/utils/image:go_default_library",
"//vendor/github.com/onsi/ginkgo:go_default_library", "//vendor/github.com/onsi/ginkgo:go_default_library",
"//vendor/github.com/onsi/gomega:go_default_library", "//vendor/github.com/onsi/gomega:go_default_library",
......
...@@ -52,6 +52,7 @@ import ( ...@@ -52,6 +52,7 @@ import (
"k8s.io/apimachinery/pkg/util/rand" "k8s.io/apimachinery/pkg/util/rand"
clientset "k8s.io/client-go/kubernetes" clientset "k8s.io/client-go/kubernetes"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
imageutils "k8s.io/kubernetes/test/utils/image" imageutils "k8s.io/kubernetes/test/utils/image"
"github.com/onsi/ginkgo" "github.com/onsi/ginkgo"
...@@ -259,7 +260,7 @@ func CreateStorageServer(cs clientset.Interface, config TestConfig) (pod *v1.Pod ...@@ -259,7 +260,7 @@ func CreateStorageServer(cs clientset.Interface, config TestConfig) (pod *v1.Pod
gomega.Expect(pod).NotTo(gomega.BeNil(), "storage server pod should not be nil") gomega.Expect(pod).NotTo(gomega.BeNil(), "storage server pod should not be nil")
ip = pod.Status.PodIP ip = pod.Status.PodIP
gomega.Expect(len(ip)).NotTo(gomega.BeZero(), fmt.Sprintf("pod %s's IP should not be empty", pod.Name)) gomega.Expect(len(ip)).NotTo(gomega.BeZero(), fmt.Sprintf("pod %s's IP should not be empty", pod.Name))
framework.Logf("%s server pod IP address: %s", config.Prefix, ip) e2elog.Logf("%s server pod IP address: %s", config.Prefix, ip)
return pod, ip return pod, ip
} }
...@@ -353,7 +354,7 @@ func StartVolumeServer(client clientset.Interface, config TestConfig) *v1.Pod { ...@@ -353,7 +354,7 @@ func StartVolumeServer(client clientset.Interface, config TestConfig) *v1.Pod {
// ok if the server pod already exists. TODO: make this controllable by callers // ok if the server pod already exists. TODO: make this controllable by callers
if err != nil { if err != nil {
if apierrs.IsAlreadyExists(err) { if apierrs.IsAlreadyExists(err) {
framework.Logf("Ignore \"already-exists\" error, re-get pod...") e2elog.Logf("Ignore \"already-exists\" error, re-get pod...")
ginkgo.By(fmt.Sprintf("re-getting the %q server pod", serverPodName)) ginkgo.By(fmt.Sprintf("re-getting the %q server pod", serverPodName))
serverPod, err = podClient.Get(serverPodName, metav1.GetOptions{}) serverPod, err = podClient.Get(serverPodName, metav1.GetOptions{})
framework.ExpectNoError(err, "Cannot re-get the server pod %q: %v", serverPodName, err) framework.ExpectNoError(err, "Cannot re-get the server pod %q: %v", serverPodName, err)
...@@ -391,17 +392,17 @@ func CleanUpVolumeServerWithSecret(f *framework.Framework, serverPod *v1.Pod, se ...@@ -391,17 +392,17 @@ func CleanUpVolumeServerWithSecret(f *framework.Framework, serverPod *v1.Pod, se
ns := f.Namespace ns := f.Namespace
if secret != nil { if secret != nil {
framework.Logf("Deleting server secret %q...", secret.Name) e2elog.Logf("Deleting server secret %q...", secret.Name)
err := cs.CoreV1().Secrets(ns.Name).Delete(secret.Name, &metav1.DeleteOptions{}) err := cs.CoreV1().Secrets(ns.Name).Delete(secret.Name, &metav1.DeleteOptions{})
if err != nil { if err != nil {
framework.Logf("Delete secret failed: %v", err) e2elog.Logf("Delete secret failed: %v", err)
} }
} }
framework.Logf("Deleting server pod %q...", serverPod.Name) e2elog.Logf("Deleting server pod %q...", serverPod.Name)
err := framework.DeletePodWithWait(f, cs, serverPod) err := framework.DeletePodWithWait(f, cs, serverPod)
if err != nil { if err != nil {
framework.Logf("Server pod delete failed: %v", err) e2elog.Logf("Server pod delete failed: %v", err)
} }
} }
...@@ -630,7 +631,7 @@ func GenerateWriteandExecuteScriptFileCmd(content, fileName, filePath string) [] ...@@ -630,7 +631,7 @@ func GenerateWriteandExecuteScriptFileCmd(content, fileName, filePath string) []
fullPath := filepath.Join(filePath, scriptName) fullPath := filepath.Join(filePath, scriptName)
cmd := "echo \"" + content + "\" > " + fullPath + "; .\\" + fullPath cmd := "echo \"" + content + "\" > " + fullPath + "; .\\" + fullPath
framework.Logf("generated pod command %s", cmd) e2elog.Logf("generated pod command %s", cmd)
return []string{"powershell", "/c", cmd} return []string{"powershell", "/c", cmd}
} }
scriptName := fmt.Sprintf("%s.sh", fileName) scriptName := fmt.Sprintf("%s.sh", fileName)
......
...@@ -376,9 +376,9 @@ var _ = SIGDescribe("DNS", func() { ...@@ -376,9 +376,9 @@ var _ = SIGDescribe("DNS", func() {
} }
testAgnhostPod, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(testAgnhostPod) testAgnhostPod, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(testAgnhostPod)
framework.ExpectNoError(err, "failed to create pod: %s", testAgnhostPod.Name) framework.ExpectNoError(err, "failed to create pod: %s", testAgnhostPod.Name)
framework.Logf("Created pod %v", testAgnhostPod) e2elog.Logf("Created pod %v", testAgnhostPod)
defer func() { defer func() {
framework.Logf("Deleting pod %s...", testAgnhostPod.Name) e2elog.Logf("Deleting pod %s...", testAgnhostPod.Name)
if err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Delete(testAgnhostPod.Name, metav1.NewDeleteOptions(0)); err != nil { if err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Delete(testAgnhostPod.Name, metav1.NewDeleteOptions(0)); err != nil {
framework.Failf("ginkgo.Failed to delete pod %s: %v", testAgnhostPod.Name, err) framework.Failf("ginkgo.Failed to delete pod %s: %v", testAgnhostPod.Name, err)
} }
......
...@@ -250,7 +250,7 @@ func StartJob(f *framework.Framework, completions int32) { ...@@ -250,7 +250,7 @@ func StartJob(f *framework.Framework, completions int32) {
ns := f.Namespace.Name ns := f.Namespace.Name
_, err := jobutil.CreateJob(f.ClientSet, ns, testJob) _, err := jobutil.CreateJob(f.ClientSet, ns, testJob)
framework.ExpectNoError(err) framework.ExpectNoError(err)
framework.Logf("Created job %v", testJob) e2elog.Logf("Created job %v", testJob)
} }
// VerifyJobNCompletions verifies that the job has completions number of successful pods // VerifyJobNCompletions verifies that the job has completions number of successful pods
...@@ -260,7 +260,7 @@ func VerifyJobNCompletions(f *framework.Framework, completions int32) { ...@@ -260,7 +260,7 @@ func VerifyJobNCompletions(f *framework.Framework, completions int32) {
framework.ExpectNoError(err) framework.ExpectNoError(err)
createdPods := pods.Items createdPods := pods.Items
createdPodNames := podNames(createdPods) createdPodNames := podNames(createdPods)
framework.Logf("Got the following pods for job cuda-add: %v", createdPodNames) e2elog.Logf("Got the following pods for job cuda-add: %v", createdPodNames)
successes := int32(0) successes := int32(0)
for _, podName := range createdPodNames { for _, podName := range createdPodNames {
......
...@@ -48,6 +48,7 @@ go_library( ...@@ -48,6 +48,7 @@ go_library(
"//test/e2e/common:go_default_library", "//test/e2e/common:go_default_library",
"//test/e2e/framework:go_default_library", "//test/e2e/framework:go_default_library",
"//test/e2e/framework/gpu:go_default_library", "//test/e2e/framework/gpu:go_default_library",
"//test/e2e/framework/log:go_default_library",
"//test/e2e/framework/metrics:go_default_library", "//test/e2e/framework/metrics:go_default_library",
"//test/utils/image:go_default_library", "//test/utils/image:go_default_library",
"//vendor/github.com/blang/semver:go_default_library", "//vendor/github.com/blang/semver:go_default_library",
...@@ -157,6 +158,7 @@ go_test( ...@@ -157,6 +158,7 @@ go_test(
"//staging/src/k8s.io/cri-api/pkg/apis/runtime/v1alpha2:go_default_library", "//staging/src/k8s.io/cri-api/pkg/apis/runtime/v1alpha2:go_default_library",
"//test/e2e/common:go_default_library", "//test/e2e/common:go_default_library",
"//test/e2e/framework:go_default_library", "//test/e2e/framework:go_default_library",
"//test/e2e/framework/log:go_default_library",
"//test/e2e/framework/metrics:go_default_library", "//test/e2e/framework/metrics:go_default_library",
"//test/e2e/framework/volume:go_default_library", "//test/e2e/framework/volume:go_default_library",
"//test/e2e_node/perf/workloads:go_default_library", "//test/e2e_node/perf/workloads:go_default_library",
......
...@@ -29,6 +29,7 @@ import ( ...@@ -29,6 +29,7 @@ import (
"k8s.io/api/core/v1" "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
"k8s.io/kubernetes/test/e2e/perftype" "k8s.io/kubernetes/test/e2e/perftype"
nodeperftype "k8s.io/kubernetes/test/e2e_node/perftype" nodeperftype "k8s.io/kubernetes/test/e2e_node/perftype"
...@@ -46,9 +47,9 @@ func dumpDataToFile(data interface{}, labels map[string]string, prefix string) { ...@@ -46,9 +47,9 @@ func dumpDataToFile(data interface{}, labels map[string]string, prefix string) {
testName := labels["test"] testName := labels["test"]
fileName := path.Join(framework.TestContext.ReportDir, fmt.Sprintf("%s-%s-%s.json", prefix, framework.TestContext.ReportPrefix, testName)) fileName := path.Join(framework.TestContext.ReportDir, fmt.Sprintf("%s-%s-%s.json", prefix, framework.TestContext.ReportPrefix, testName))
labels["timestamp"] = strconv.FormatInt(time.Now().UTC().Unix(), 10) labels["timestamp"] = strconv.FormatInt(time.Now().UTC().Unix(), 10)
framework.Logf("Dumping perf data for test %q to %q.", testName, fileName) e2elog.Logf("Dumping perf data for test %q to %q.", testName, fileName)
if err := ioutil.WriteFile(fileName, []byte(framework.PrettyPrintJSON(data)), 0644); err != nil { if err := ioutil.WriteFile(fileName, []byte(framework.PrettyPrintJSON(data)), 0644); err != nil {
framework.Logf("Failed to write perf data for test %q to %q: %v", testName, fileName, err) e2elog.Logf("Failed to write perf data for test %q to %q: %v", testName, fileName, err)
} }
} }
...@@ -82,7 +83,7 @@ func logDensityTimeSeries(rc *ResourceCollector, create, watch map[string]metav1 ...@@ -82,7 +83,7 @@ func logDensityTimeSeries(rc *ResourceCollector, create, watch map[string]metav1
timeSeries.ResourceData = rc.GetResourceTimeSeries() timeSeries.ResourceData = rc.GetResourceTimeSeries()
if framework.TestContext.ReportDir == "" { if framework.TestContext.ReportDir == "" {
framework.Logf("%s %s\n%s", TimeSeriesTag, framework.PrettyPrintJSON(timeSeries), TimeSeriesEnd) e2elog.Logf("%s %s\n%s", TimeSeriesTag, framework.PrettyPrintJSON(timeSeries), TimeSeriesEnd)
return return
} }
dumpDataToFile(timeSeries, timeSeries.Labels, "time_series") dumpDataToFile(timeSeries, timeSeries.Labels, "time_series")
......
...@@ -33,6 +33,7 @@ import ( ...@@ -33,6 +33,7 @@ import (
"k8s.io/apimachinery/pkg/util/uuid" "k8s.io/apimachinery/pkg/util/uuid"
runtimeapi "k8s.io/cri-api/pkg/apis/runtime/v1alpha2" runtimeapi "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
. "github.com/onsi/ginkgo" . "github.com/onsi/ginkgo"
. "github.com/onsi/gomega" . "github.com/onsi/gomega"
...@@ -161,9 +162,9 @@ var _ = framework.KubeDescribe("Container Manager Misc [Serial]", func() { ...@@ -161,9 +162,9 @@ var _ = framework.KubeDescribe("Container Manager Misc [Serial]", func() {
}, },
}) })
Expect(err).NotTo(HaveOccurred()) Expect(err).NotTo(HaveOccurred())
framework.Logf("Running containers:") e2elog.Logf("Running containers:")
for _, c := range containers { for _, c := range containers {
framework.Logf("%+v", c) e2elog.Logf("%+v", c)
} }
} }
}) })
......
...@@ -35,6 +35,7 @@ import ( ...@@ -35,6 +35,7 @@ import (
stats "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1" stats "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1"
kubemetrics "k8s.io/kubernetes/pkg/kubelet/metrics" kubemetrics "k8s.io/kubernetes/pkg/kubelet/metrics"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
"k8s.io/kubernetes/test/e2e/framework/metrics" "k8s.io/kubernetes/test/e2e/framework/metrics"
imageutils "k8s.io/kubernetes/test/utils/image" imageutils "k8s.io/kubernetes/test/utils/image"
...@@ -198,7 +199,7 @@ var _ = framework.KubeDescribe("Density [Serial] [Slow]", func() { ...@@ -198,7 +199,7 @@ var _ = framework.KubeDescribe("Density [Serial] [Slow]", func() {
// Here we set API QPS limit from default 5 to 60 in order to test real Kubelet performance. // Here we set API QPS limit from default 5 to 60 in order to test real Kubelet performance.
// Note that it will cause higher resource usage. // Note that it will cause higher resource usage.
tempSetCurrentKubeletConfig(f, func(cfg *kubeletconfig.KubeletConfiguration) { tempSetCurrentKubeletConfig(f, func(cfg *kubeletconfig.KubeletConfiguration) {
framework.Logf("Old QPS limit is: %d", cfg.KubeAPIQPS) e2elog.Logf("Old QPS limit is: %d", cfg.KubeAPIQPS)
// Set new API QPS limit // Set new API QPS limit
cfg.KubeAPIQPS = int32(itArg.APIQPSLimit) cfg.KubeAPIQPS = int32(itArg.APIQPSLimit)
}) })
...@@ -539,7 +540,7 @@ func logAndVerifyLatency(batchLag time.Duration, e2eLags []framework.PodLatencyD ...@@ -539,7 +540,7 @@ func logAndVerifyLatency(batchLag time.Duration, e2eLags []framework.PodLatencyD
// TODO(coufon): do not trust 'kubelet' metrics since they are not reset! // TODO(coufon): do not trust 'kubelet' metrics since they are not reset!
latencyMetrics, _ := getPodStartLatency(kubeletAddr) latencyMetrics, _ := getPodStartLatency(kubeletAddr)
framework.Logf("Kubelet Prometheus metrics (not reset):\n%s", framework.PrettyPrintJSON(latencyMetrics)) e2elog.Logf("Kubelet Prometheus metrics (not reset):\n%s", framework.PrettyPrintJSON(latencyMetrics))
podStartupLatency := framework.ExtractLatencyMetrics(e2eLags) podStartupLatency := framework.ExtractLatencyMetrics(e2eLags)
......
...@@ -31,6 +31,7 @@ import ( ...@@ -31,6 +31,7 @@ import (
"k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/pkg/features"
kubeletconfig "k8s.io/kubernetes/pkg/kubelet/apis/config" kubeletconfig "k8s.io/kubernetes/pkg/kubelet/apis/config"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
pluginapi "k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1beta1" pluginapi "k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1beta1"
dm "k8s.io/kubernetes/pkg/kubelet/cm/devicemanager" dm "k8s.io/kubernetes/pkg/kubelet/cm/devicemanager"
...@@ -69,7 +70,7 @@ func testDevicePlugin(f *framework.Framework, pluginSockDir string) { ...@@ -69,7 +70,7 @@ func testDevicePlugin(f *framework.Framework, pluginSockDir string) {
} }
socketPath := pluginSockDir + "dp." + fmt.Sprintf("%d", time.Now().Unix()) socketPath := pluginSockDir + "dp." + fmt.Sprintf("%d", time.Now().Unix())
framework.Logf("socketPath %v", socketPath) e2elog.Logf("socketPath %v", socketPath)
dp1 := dm.NewDevicePluginStub(devs, socketPath, resourceName, false) dp1 := dm.NewDevicePluginStub(devs, socketPath, resourceName, false)
dp1.SetAllocFunc(stubAllocFunc) dp1.SetAllocFunc(stubAllocFunc)
...@@ -257,7 +258,7 @@ func ensurePodContainerRestart(f *framework.Framework, podName string, contName ...@@ -257,7 +258,7 @@ func ensurePodContainerRestart(f *framework.Framework, podName string, contName
return false return false
} }
currentCount = p.Status.ContainerStatuses[0].RestartCount currentCount = p.Status.ContainerStatuses[0].RestartCount
framework.Logf("initial %v, current %v", initialCount, currentCount) e2elog.Logf("initial %v, current %v", initialCount, currentCount)
return currentCount > initialCount return currentCount > initialCount
}, 5*time.Minute, framework.Poll).Should(BeTrue()) }, 5*time.Minute, framework.Poll).Should(BeTrue())
} }
...@@ -269,7 +270,7 @@ func parseLog(f *framework.Framework, podName string, contName string, re string ...@@ -269,7 +270,7 @@ func parseLog(f *framework.Framework, podName string, contName string, re string
framework.Failf("GetPodLogs for pod %q failed: %v", podName, err) framework.Failf("GetPodLogs for pod %q failed: %v", podName, err)
} }
framework.Logf("got pod logs: %v", logs) e2elog.Logf("got pod logs: %v", logs)
regex := regexp.MustCompile(re) regex := regexp.MustCompile(re)
matches := regex.FindStringSubmatch(logs) matches := regex.FindStringSubmatch(logs)
if len(matches) < 2 { if len(matches) < 2 {
......
...@@ -33,6 +33,7 @@ import ( ...@@ -33,6 +33,7 @@ import (
"k8s.io/apimachinery/pkg/util/uuid" "k8s.io/apimachinery/pkg/util/uuid"
"k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/util/wait"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
imageutils "k8s.io/kubernetes/test/utils/image" imageutils "k8s.io/kubernetes/test/utils/image"
) )
...@@ -91,7 +92,7 @@ var _ = SIGDescribe("Dockershim [Serial] [Disruptive] [Feature:Docker][Legacy:Do ...@@ -91,7 +92,7 @@ var _ = SIGDescribe("Dockershim [Serial] [Disruptive] [Feature:Docker][Legacy:Do
if len(filename) == 0 { if len(filename) == 0 {
continue continue
} }
framework.Logf("Removing checkpoint %q", filename) e2elog.Logf("Removing checkpoint %q", filename)
_, err := exec.Command("sudo", "rm", filename).CombinedOutput() _, err := exec.Command("sudo", "rm", filename).CombinedOutput()
framework.ExpectNoError(err, "Failed to remove checkpoint file %q: %v", string(filename), err) framework.ExpectNoError(err, "Failed to remove checkpoint file %q: %v", string(filename), err)
} }
...@@ -175,7 +176,7 @@ func runPodCheckpointTest(f *framework.Framework, podName string, twist func()) ...@@ -175,7 +176,7 @@ func runPodCheckpointTest(f *framework.Framework, podName string, twist func())
if len(checkpoints) == 0 { if len(checkpoints) == 0 {
return true, nil return true, nil
} }
framework.Logf("Checkpoint of %q still exists: %v", podName, checkpoints) e2elog.Logf("Checkpoint of %q still exists: %v", podName, checkpoints)
return false, nil return false, nil
}); err != nil { }); err != nil {
framework.Failf("Failed to observe checkpoint being removed within timeout: %v", err) framework.Failf("Failed to observe checkpoint being removed within timeout: %v", err)
...@@ -212,7 +213,7 @@ func findCheckpoints(match string) []string { ...@@ -212,7 +213,7 @@ func findCheckpoints(match string) []string {
checkpoints := []string{} checkpoints := []string{}
stdout, err := exec.Command("sudo", "grep", "-rl", match, framework.TestContext.DockershimCheckpointDir).CombinedOutput() stdout, err := exec.Command("sudo", "grep", "-rl", match, framework.TestContext.DockershimCheckpointDir).CombinedOutput()
if err != nil { if err != nil {
framework.Logf("grep from dockershim checkpoint directory returns error: %v", err) e2elog.Logf("grep from dockershim checkpoint directory returns error: %v", err)
} }
if stdout == nil { if stdout == nil {
return checkpoints return checkpoints
......
...@@ -36,6 +36,7 @@ import ( ...@@ -36,6 +36,7 @@ import (
kubeletmetrics "k8s.io/kubernetes/pkg/kubelet/metrics" kubeletmetrics "k8s.io/kubernetes/pkg/kubelet/metrics"
kubetypes "k8s.io/kubernetes/pkg/kubelet/types" kubetypes "k8s.io/kubernetes/pkg/kubelet/types"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
testutils "k8s.io/kubernetes/test/utils" testutils "k8s.io/kubernetes/test/utils"
imageutils "k8s.io/kubernetes/test/utils/image" imageutils "k8s.io/kubernetes/test/utils/image"
...@@ -479,9 +480,9 @@ func runEvictionTest(f *framework.Framework, pressureTimeout time.Duration, expe ...@@ -479,9 +480,9 @@ func runEvictionTest(f *framework.Framework, pressureTimeout time.Duration, expe
Eventually(func() error { Eventually(func() error {
if expectedNodeCondition != noPressure { if expectedNodeCondition != noPressure {
if hasNodeCondition(f, expectedNodeCondition) { if hasNodeCondition(f, expectedNodeCondition) {
framework.Logf("Node has %s", expectedNodeCondition) e2elog.Logf("Node has %s", expectedNodeCondition)
} else { } else {
framework.Logf("Node does NOT have %s", expectedNodeCondition) e2elog.Logf("Node does NOT have %s", expectedNodeCondition)
} }
} }
logKubeletLatencyMetrics(kubeletmetrics.EvictionStatsAgeKey) logKubeletLatencyMetrics(kubeletmetrics.EvictionStatsAgeKey)
...@@ -568,7 +569,7 @@ func verifyEvictionOrdering(f *framework.Framework, testSpecs []podEvictSpec) er ...@@ -568,7 +569,7 @@ func verifyEvictionOrdering(f *framework.Framework, testSpecs []podEvictSpec) er
} }
updatedPods := updatedPodList.Items updatedPods := updatedPodList.Items
for _, p := range updatedPods { for _, p := range updatedPods {
framework.Logf("fetching pod %s; phase= %v", p.Name, p.Status.Phase) e2elog.Logf("fetching pod %s; phase= %v", p.Name, p.Status.Phase)
} }
By("checking eviction ordering and ensuring important pods dont fail") By("checking eviction ordering and ensuring important pods dont fail")
...@@ -689,25 +690,25 @@ func hasNodeCondition(f *framework.Framework, expectedNodeCondition v1.NodeCondi ...@@ -689,25 +690,25 @@ func hasNodeCondition(f *framework.Framework, expectedNodeCondition v1.NodeCondi
func logInodeMetrics() { func logInodeMetrics() {
summary, err := getNodeSummary() summary, err := getNodeSummary()
if err != nil { if err != nil {
framework.Logf("Error getting summary: %v", err) e2elog.Logf("Error getting summary: %v", err)
return return
} }
if summary.Node.Runtime != nil && summary.Node.Runtime.ImageFs != nil && summary.Node.Runtime.ImageFs.Inodes != nil && summary.Node.Runtime.ImageFs.InodesFree != nil { if summary.Node.Runtime != nil && summary.Node.Runtime.ImageFs != nil && summary.Node.Runtime.ImageFs.Inodes != nil && summary.Node.Runtime.ImageFs.InodesFree != nil {
framework.Logf("imageFsInfo.Inodes: %d, imageFsInfo.InodesFree: %d", *summary.Node.Runtime.ImageFs.Inodes, *summary.Node.Runtime.ImageFs.InodesFree) e2elog.Logf("imageFsInfo.Inodes: %d, imageFsInfo.InodesFree: %d", *summary.Node.Runtime.ImageFs.Inodes, *summary.Node.Runtime.ImageFs.InodesFree)
} }
if summary.Node.Fs != nil && summary.Node.Fs.Inodes != nil && summary.Node.Fs.InodesFree != nil { if summary.Node.Fs != nil && summary.Node.Fs.Inodes != nil && summary.Node.Fs.InodesFree != nil {
framework.Logf("rootFsInfo.Inodes: %d, rootFsInfo.InodesFree: %d", *summary.Node.Fs.Inodes, *summary.Node.Fs.InodesFree) e2elog.Logf("rootFsInfo.Inodes: %d, rootFsInfo.InodesFree: %d", *summary.Node.Fs.Inodes, *summary.Node.Fs.InodesFree)
} }
for _, pod := range summary.Pods { for _, pod := range summary.Pods {
framework.Logf("Pod: %s", pod.PodRef.Name) e2elog.Logf("Pod: %s", pod.PodRef.Name)
for _, container := range pod.Containers { for _, container := range pod.Containers {
if container.Rootfs != nil && container.Rootfs.InodesUsed != nil { if container.Rootfs != nil && container.Rootfs.InodesUsed != nil {
framework.Logf("--- summary Container: %s inodeUsage: %d", container.Name, *container.Rootfs.InodesUsed) e2elog.Logf("--- summary Container: %s inodeUsage: %d", container.Name, *container.Rootfs.InodesUsed)
} }
} }
for _, volume := range pod.VolumeStats { for _, volume := range pod.VolumeStats {
if volume.FsStats.InodesUsed != nil { if volume.FsStats.InodesUsed != nil {
framework.Logf("--- summary Volume: %s inodeUsage: %d", volume.Name, *volume.FsStats.InodesUsed) e2elog.Logf("--- summary Volume: %s inodeUsage: %d", volume.Name, *volume.FsStats.InodesUsed)
} }
} }
} }
...@@ -716,25 +717,25 @@ func logInodeMetrics() { ...@@ -716,25 +717,25 @@ func logInodeMetrics() {
func logDiskMetrics() { func logDiskMetrics() {
summary, err := getNodeSummary() summary, err := getNodeSummary()
if err != nil { if err != nil {
framework.Logf("Error getting summary: %v", err) e2elog.Logf("Error getting summary: %v", err)
return return
} }
if summary.Node.Runtime != nil && summary.Node.Runtime.ImageFs != nil && summary.Node.Runtime.ImageFs.CapacityBytes != nil && summary.Node.Runtime.ImageFs.AvailableBytes != nil { if summary.Node.Runtime != nil && summary.Node.Runtime.ImageFs != nil && summary.Node.Runtime.ImageFs.CapacityBytes != nil && summary.Node.Runtime.ImageFs.AvailableBytes != nil {
framework.Logf("imageFsInfo.CapacityBytes: %d, imageFsInfo.AvailableBytes: %d", *summary.Node.Runtime.ImageFs.CapacityBytes, *summary.Node.Runtime.ImageFs.AvailableBytes) e2elog.Logf("imageFsInfo.CapacityBytes: %d, imageFsInfo.AvailableBytes: %d", *summary.Node.Runtime.ImageFs.CapacityBytes, *summary.Node.Runtime.ImageFs.AvailableBytes)
} }
if summary.Node.Fs != nil && summary.Node.Fs.CapacityBytes != nil && summary.Node.Fs.AvailableBytes != nil { if summary.Node.Fs != nil && summary.Node.Fs.CapacityBytes != nil && summary.Node.Fs.AvailableBytes != nil {
framework.Logf("rootFsInfo.CapacityBytes: %d, rootFsInfo.AvailableBytes: %d", *summary.Node.Fs.CapacityBytes, *summary.Node.Fs.AvailableBytes) e2elog.Logf("rootFsInfo.CapacityBytes: %d, rootFsInfo.AvailableBytes: %d", *summary.Node.Fs.CapacityBytes, *summary.Node.Fs.AvailableBytes)
} }
for _, pod := range summary.Pods { for _, pod := range summary.Pods {
framework.Logf("Pod: %s", pod.PodRef.Name) e2elog.Logf("Pod: %s", pod.PodRef.Name)
for _, container := range pod.Containers { for _, container := range pod.Containers {
if container.Rootfs != nil && container.Rootfs.UsedBytes != nil { if container.Rootfs != nil && container.Rootfs.UsedBytes != nil {
framework.Logf("--- summary Container: %s UsedBytes: %d", container.Name, *container.Rootfs.UsedBytes) e2elog.Logf("--- summary Container: %s UsedBytes: %d", container.Name, *container.Rootfs.UsedBytes)
} }
} }
for _, volume := range pod.VolumeStats { for _, volume := range pod.VolumeStats {
if volume.FsStats.InodesUsed != nil { if volume.FsStats.InodesUsed != nil {
framework.Logf("--- summary Volume: %s UsedBytes: %d", volume.Name, *volume.FsStats.UsedBytes) e2elog.Logf("--- summary Volume: %s UsedBytes: %d", volume.Name, *volume.FsStats.UsedBytes)
} }
} }
} }
...@@ -743,22 +744,22 @@ func logDiskMetrics() { ...@@ -743,22 +744,22 @@ func logDiskMetrics() {
func logMemoryMetrics() { func logMemoryMetrics() {
summary, err := getNodeSummary() summary, err := getNodeSummary()
if err != nil { if err != nil {
framework.Logf("Error getting summary: %v", err) e2elog.Logf("Error getting summary: %v", err)
return return
} }
if summary.Node.Memory != nil && summary.Node.Memory.WorkingSetBytes != nil && summary.Node.Memory.AvailableBytes != nil { if summary.Node.Memory != nil && summary.Node.Memory.WorkingSetBytes != nil && summary.Node.Memory.AvailableBytes != nil {
framework.Logf("Node.Memory.WorkingSetBytes: %d, Node.Memory.AvailableBytes: %d", *summary.Node.Memory.WorkingSetBytes, *summary.Node.Memory.AvailableBytes) e2elog.Logf("Node.Memory.WorkingSetBytes: %d, Node.Memory.AvailableBytes: %d", *summary.Node.Memory.WorkingSetBytes, *summary.Node.Memory.AvailableBytes)
} }
for _, sysContainer := range summary.Node.SystemContainers { for _, sysContainer := range summary.Node.SystemContainers {
if sysContainer.Name == stats.SystemContainerPods && sysContainer.Memory != nil && sysContainer.Memory.WorkingSetBytes != nil && sysContainer.Memory.AvailableBytes != nil { if sysContainer.Name == stats.SystemContainerPods && sysContainer.Memory != nil && sysContainer.Memory.WorkingSetBytes != nil && sysContainer.Memory.AvailableBytes != nil {
framework.Logf("Allocatable.Memory.WorkingSetBytes: %d, Allocatable.Memory.AvailableBytes: %d", *sysContainer.Memory.WorkingSetBytes, *sysContainer.Memory.AvailableBytes) e2elog.Logf("Allocatable.Memory.WorkingSetBytes: %d, Allocatable.Memory.AvailableBytes: %d", *sysContainer.Memory.WorkingSetBytes, *sysContainer.Memory.AvailableBytes)
} }
} }
for _, pod := range summary.Pods { for _, pod := range summary.Pods {
framework.Logf("Pod: %s", pod.PodRef.Name) e2elog.Logf("Pod: %s", pod.PodRef.Name)
for _, container := range pod.Containers { for _, container := range pod.Containers {
if container.Memory != nil && container.Memory.WorkingSetBytes != nil { if container.Memory != nil && container.Memory.WorkingSetBytes != nil {
framework.Logf("--- summary Container: %s WorkingSetBytes: %d", container.Name, *container.Memory.WorkingSetBytes) e2elog.Logf("--- summary Container: %s WorkingSetBytes: %d", container.Name, *container.Memory.WorkingSetBytes)
} }
} }
} }
...@@ -767,11 +768,11 @@ func logMemoryMetrics() { ...@@ -767,11 +768,11 @@ func logMemoryMetrics() {
func logPidMetrics() { func logPidMetrics() {
summary, err := getNodeSummary() summary, err := getNodeSummary()
if err != nil { if err != nil {
framework.Logf("Error getting summary: %v", err) e2elog.Logf("Error getting summary: %v", err)
return return
} }
if summary.Node.Rlimit != nil && summary.Node.Rlimit.MaxPID != nil && summary.Node.Rlimit.NumOfRunningProcesses != nil { if summary.Node.Rlimit != nil && summary.Node.Rlimit.MaxPID != nil && summary.Node.Rlimit.NumOfRunningProcesses != nil {
framework.Logf("Node.Rlimit.MaxPID: %d, Node.Rlimit.RunningProcesses: %d", *summary.Node.Rlimit.MaxPID, *summary.Node.Rlimit.NumOfRunningProcesses) e2elog.Logf("Node.Rlimit.MaxPID: %d, Node.Rlimit.RunningProcesses: %d", *summary.Node.Rlimit.MaxPID, *summary.Node.Rlimit.NumOfRunningProcesses)
} }
} }
......
...@@ -26,6 +26,7 @@ import ( ...@@ -26,6 +26,7 @@ import (
kubeletmetrics "k8s.io/kubernetes/pkg/kubelet/metrics" kubeletmetrics "k8s.io/kubernetes/pkg/kubelet/metrics"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
"k8s.io/kubernetes/test/e2e/framework/gpu" "k8s.io/kubernetes/test/e2e/framework/gpu"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
"k8s.io/kubernetes/test/e2e/framework/metrics" "k8s.io/kubernetes/test/e2e/framework/metrics"
. "github.com/onsi/ginkgo" . "github.com/onsi/ginkgo"
...@@ -142,7 +143,7 @@ func checkIfNvidiaGPUsExistOnNode() bool { ...@@ -142,7 +143,7 @@ func checkIfNvidiaGPUsExistOnNode() bool {
// Cannot use `lspci` because it is not installed on all distros by default. // Cannot use `lspci` because it is not installed on all distros by default.
err := exec.Command("/bin/sh", "-c", "find /sys/devices/pci* -type f | grep vendor | xargs cat | grep 0x10de").Run() err := exec.Command("/bin/sh", "-c", "find /sys/devices/pci* -type f | grep vendor | xargs cat | grep 0x10de").Run()
if err != nil { if err != nil {
framework.Logf("check for nvidia GPUs failed. Got Error: %v", err) e2elog.Logf("check for nvidia GPUs failed. Got Error: %v", err)
return false return false
} }
return true return true
...@@ -163,14 +164,14 @@ func logDevicePluginMetrics() { ...@@ -163,14 +164,14 @@ func logDevicePluginMetrics() {
if quantile, err = strconv.ParseFloat(string(val), 64); err != nil { if quantile, err = strconv.ParseFloat(string(val), 64); err != nil {
continue continue
} }
framework.Logf("Metric: %v ResourceName: %v Quantile: %v Latency: %v", msKey, resource, quantile, latency) e2elog.Logf("Metric: %v ResourceName: %v Quantile: %v Latency: %v", msKey, resource, quantile, latency)
} }
} }
case kubeletmetrics.KubeletSubsystem + "_" + kubeletmetrics.DevicePluginRegistrationCountKey: case kubeletmetrics.KubeletSubsystem + "_" + kubeletmetrics.DevicePluginRegistrationCountKey:
for _, sample := range samples { for _, sample := range samples {
resource := string(sample.Metric["resource_name"]) resource := string(sample.Metric["resource_name"])
count := sample.Value count := sample.Value
framework.Logf("Metric: %v ResourceName: %v Count: %v", msKey, resource, count) e2elog.Logf("Metric: %v ResourceName: %v Count: %v", msKey, resource, count)
} }
} }
} }
......
...@@ -31,6 +31,7 @@ import ( ...@@ -31,6 +31,7 @@ import (
kubeletconfig "k8s.io/kubernetes/pkg/kubelet/apis/config" kubeletconfig "k8s.io/kubernetes/pkg/kubelet/apis/config"
"k8s.io/kubernetes/pkg/kubelet/cm" "k8s.io/kubernetes/pkg/kubelet/cm"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
imageutils "k8s.io/kubernetes/test/utils/image" imageutils "k8s.io/kubernetes/test/utils/image"
. "github.com/onsi/ginkgo" . "github.com/onsi/ginkgo"
...@@ -50,7 +51,7 @@ func makePodToVerifyHugePages(baseName string, hugePagesLimit resource.Quantity) ...@@ -50,7 +51,7 @@ func makePodToVerifyHugePages(baseName string, hugePagesLimit resource.Quantity)
// this command takes the expected value and compares it against the actual value for the pod cgroup hugetlb.2MB.limit_in_bytes // this command takes the expected value and compares it against the actual value for the pod cgroup hugetlb.2MB.limit_in_bytes
command := fmt.Sprintf("expected=%v; actual=$(cat /tmp/hugetlb/%v/hugetlb.2MB.limit_in_bytes); if [ \"$expected\" -ne \"$actual\" ]; then exit 1; fi; ", hugePagesLimit.Value(), cgroupFsName) command := fmt.Sprintf("expected=%v; actual=$(cat /tmp/hugetlb/%v/hugetlb.2MB.limit_in_bytes); if [ \"$expected\" -ne \"$actual\" ]; then exit 1; fi; ", hugePagesLimit.Value(), cgroupFsName)
framework.Logf("Pod to run command: %v", command) e2elog.Logf("Pod to run command: %v", command)
pod := &apiv1.Pod{ pod := &apiv1.Pod{
ObjectMeta: metav1.ObjectMeta{ ObjectMeta: metav1.ObjectMeta{
Name: "pod" + string(uuid.NewUUID()), Name: "pod" + string(uuid.NewUUID()),
...@@ -119,7 +120,7 @@ func configureHugePages() error { ...@@ -119,7 +120,7 @@ func configureHugePages() error {
if err != nil { if err != nil {
return err return err
} }
framework.Logf("HugePages_Total is set to %v", numHugePages) e2elog.Logf("HugePages_Total is set to %v", numHugePages)
if numHugePages == 50 { if numHugePages == 50 {
return nil return nil
} }
...@@ -145,7 +146,7 @@ func pollResourceAsString(f *framework.Framework, resourceName string) string { ...@@ -145,7 +146,7 @@ func pollResourceAsString(f *framework.Framework, resourceName string) string {
node, err := f.ClientSet.CoreV1().Nodes().Get(framework.TestContext.NodeName, metav1.GetOptions{}) node, err := f.ClientSet.CoreV1().Nodes().Get(framework.TestContext.NodeName, metav1.GetOptions{})
framework.ExpectNoError(err) framework.ExpectNoError(err)
amount := amountOfResourceAsString(node, resourceName) amount := amountOfResourceAsString(node, resourceName)
framework.Logf("amount of %v: %v", resourceName, amount) e2elog.Logf("amount of %v: %v", resourceName, amount)
return amount return amount
} }
......
...@@ -24,6 +24,7 @@ import ( ...@@ -24,6 +24,7 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
kubeletconfig "k8s.io/kubernetes/pkg/kubelet/apis/config" kubeletconfig "k8s.io/kubernetes/pkg/kubelet/apis/config"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
"k8s.io/kubernetes/test/e2e_node/perf/workloads" "k8s.io/kubernetes/test/e2e_node/perf/workloads"
. "github.com/onsi/ginkgo" . "github.com/onsi/ginkgo"
...@@ -96,7 +97,7 @@ var _ = SIGDescribe("Node Performance Testing [Serial] [Slow]", func() { ...@@ -96,7 +97,7 @@ var _ = SIGDescribe("Node Performance Testing [Serial] [Slow]", func() {
framework.ExpectNoError(err) framework.ExpectNoError(err)
perf, err := wl.ExtractPerformanceFromLogs(podLogs) perf, err := wl.ExtractPerformanceFromLogs(podLogs)
framework.ExpectNoError(err) framework.ExpectNoError(err)
framework.Logf("Time to complete workload %s: %v", wl.Name(), perf) e2elog.Logf("Time to complete workload %s: %v", wl.Name(), perf)
} }
Context("Run node performance testing with pre-defined workloads", func() { Context("Run node performance testing with pre-defined workloads", func() {
......
...@@ -34,6 +34,7 @@ import ( ...@@ -34,6 +34,7 @@ import (
coreclientset "k8s.io/client-go/kubernetes/typed/core/v1" coreclientset "k8s.io/client-go/kubernetes/typed/core/v1"
"k8s.io/kubernetes/pkg/kubelet/util" "k8s.io/kubernetes/pkg/kubelet/util"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
testutils "k8s.io/kubernetes/test/utils" testutils "k8s.io/kubernetes/test/utils"
. "github.com/onsi/ginkgo" . "github.com/onsi/ginkgo"
...@@ -370,7 +371,7 @@ var _ = framework.KubeDescribe("NodeProblemDetector [NodeFeature:NodeProblemDete ...@@ -370,7 +371,7 @@ var _ = framework.KubeDescribe("NodeProblemDetector [NodeFeature:NodeProblemDete
By("Get node problem detector log") By("Get node problem detector log")
log, err := framework.GetPodLogs(c, ns, name, name) log, err := framework.GetPodLogs(c, ns, name, name)
Expect(err).ShouldNot(HaveOccurred()) Expect(err).ShouldNot(HaveOccurred())
framework.Logf("Node Problem Detector logs:\n %s", log) e2elog.Logf("Node Problem Detector logs:\n %s", log)
} }
By("Delete the node problem detector") By("Delete the node problem detector")
f.PodClient().Delete(name, metav1.NewDeleteOptions(0)) f.PodClient().Delete(name, metav1.NewDeleteOptions(0))
......
...@@ -28,6 +28,7 @@ import ( ...@@ -28,6 +28,7 @@ import (
kubeletconfig "k8s.io/kubernetes/pkg/kubelet/apis/config" kubeletconfig "k8s.io/kubernetes/pkg/kubelet/apis/config"
"k8s.io/kubernetes/pkg/kubelet/cm" "k8s.io/kubernetes/pkg/kubelet/cm"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
imageutils "k8s.io/kubernetes/test/utils/image" imageutils "k8s.io/kubernetes/test/utils/image"
. "github.com/onsi/ginkgo" . "github.com/onsi/ginkgo"
...@@ -47,7 +48,7 @@ func makePodToVerifyPids(baseName string, pidsLimit resource.Quantity) *apiv1.Po ...@@ -47,7 +48,7 @@ func makePodToVerifyPids(baseName string, pidsLimit resource.Quantity) *apiv1.Po
// this command takes the expected value and compares it against the actual value for the pod cgroup pids.max // this command takes the expected value and compares it against the actual value for the pod cgroup pids.max
command := fmt.Sprintf("expected=%v; actual=$(cat /tmp/pids/%v/pids.max); if [ \"$expected\" -ne \"$actual\" ]; then exit 1; fi; ", pidsLimit.Value(), cgroupFsName) command := fmt.Sprintf("expected=%v; actual=$(cat /tmp/pids/%v/pids.max); if [ \"$expected\" -ne \"$actual\" ]; then exit 1; fi; ", pidsLimit.Value(), cgroupFsName)
framework.Logf("Pod to run command: %v", command) e2elog.Logf("Pod to run command: %v", command)
pod := &apiv1.Pod{ pod := &apiv1.Pod{
ObjectMeta: metav1.ObjectMeta{ ObjectMeta: metav1.ObjectMeta{
Name: "pod" + string(uuid.NewUUID()), Name: "pod" + string(uuid.NewUUID()),
......
...@@ -43,6 +43,7 @@ import ( ...@@ -43,6 +43,7 @@ import (
stats "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1" stats "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1"
"k8s.io/kubernetes/pkg/util/procfs" "k8s.io/kubernetes/pkg/util/procfs"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
"k8s.io/kubernetes/test/e2e_node/perftype" "k8s.io/kubernetes/test/e2e_node/perftype"
. "github.com/onsi/ginkgo" . "github.com/onsi/ginkgo"
...@@ -143,9 +144,9 @@ func (r *ResourceCollector) GetCPUSummary() framework.ContainersCPUSummary { ...@@ -143,9 +144,9 @@ func (r *ResourceCollector) GetCPUSummary() framework.ContainersCPUSummary {
func (r *ResourceCollector) LogLatest() { func (r *ResourceCollector) LogLatest() {
summary, err := r.GetLatest() summary, err := r.GetLatest()
if err != nil { if err != nil {
framework.Logf("%v", err) e2elog.Logf("%v", err)
} }
framework.Logf("%s", formatResourceUsageStats(summary)) e2elog.Logf("%s", formatResourceUsageStats(summary))
} }
// collectStats collects resource usage from Cadvisor. // collectStats collects resource usage from Cadvisor.
...@@ -153,12 +154,12 @@ func (r *ResourceCollector) collectStats(oldStatsMap map[string]*cadvisorapiv2.C ...@@ -153,12 +154,12 @@ func (r *ResourceCollector) collectStats(oldStatsMap map[string]*cadvisorapiv2.C
for _, name := range systemContainers { for _, name := range systemContainers {
ret, err := r.client.Stats(name, r.request) ret, err := r.client.Stats(name, r.request)
if err != nil { if err != nil {
framework.Logf("Error getting container stats, err: %v", err) e2elog.Logf("Error getting container stats, err: %v", err)
return return
} }
cStats, ok := ret[name] cStats, ok := ret[name]
if !ok { if !ok {
framework.Logf("Missing info/stats for container %q", name) e2elog.Logf("Missing info/stats for container %q", name)
return return
} }
......
...@@ -23,6 +23,7 @@ import ( ...@@ -23,6 +23,7 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/kubernetes/pkg/kubelet/apis/resourcemetrics/v1alpha1" "k8s.io/kubernetes/pkg/kubelet/apis/resourcemetrics/v1alpha1"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
"k8s.io/kubernetes/test/e2e/framework/metrics" "k8s.io/kubernetes/test/e2e/framework/metrics"
"k8s.io/kubernetes/test/e2e/framework/volume" "k8s.io/kubernetes/test/e2e/framework/volume"
...@@ -101,7 +102,7 @@ var _ = framework.KubeDescribe("ResourceMetricsAPI", func() { ...@@ -101,7 +102,7 @@ var _ = framework.KubeDescribe("ResourceMetricsAPI", func() {
return return
} }
if framework.TestContext.DumpLogsOnFailure { if framework.TestContext.DumpLogsOnFailure {
framework.LogFailedContainers(f.ClientSet, f.Namespace.Name, framework.Logf) framework.LogFailedContainers(f.ClientSet, f.Namespace.Name, e2elog.Logf)
} }
By("Recording processes in system cgroups") By("Recording processes in system cgroups")
recordSystemCgroupProcesses() recordSystemCgroupProcesses()
......
...@@ -26,6 +26,7 @@ import ( ...@@ -26,6 +26,7 @@ import (
clientset "k8s.io/client-go/kubernetes" clientset "k8s.io/client-go/kubernetes"
stats "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1" stats "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
imageutils "k8s.io/kubernetes/test/utils/image" imageutils "k8s.io/kubernetes/test/utils/image"
. "github.com/onsi/ginkgo" . "github.com/onsi/ginkgo"
...@@ -57,7 +58,7 @@ var _ = SIGDescribe("Resource-usage [Serial] [Slow]", func() { ...@@ -57,7 +58,7 @@ var _ = SIGDescribe("Resource-usage [Serial] [Slow]", func() {
AfterEach(func() { AfterEach(func() {
result := om.GetLatestRuntimeOperationErrorRate() result := om.GetLatestRuntimeOperationErrorRate()
framework.Logf("runtime operation error metrics:\n%s", framework.FormatRuntimeOperationErrorRate(result)) e2elog.Logf("runtime operation error metrics:\n%s", framework.FormatRuntimeOperationErrorRate(result))
}) })
// This test measures and verifies the steady resource usage of node is within limit // This test measures and verifies the steady resource usage of node is within limit
...@@ -169,7 +170,7 @@ func runResourceUsageTest(f *framework.Framework, rc *ResourceCollector, testArg ...@@ -169,7 +170,7 @@ func runResourceUsageTest(f *framework.Framework, rc *ResourceCollector, testArg
deadline := time.Now().Add(monitoringTime) deadline := time.Now().Add(monitoringTime)
for time.Now().Before(deadline) { for time.Now().Before(deadline) {
timeLeft := deadline.Sub(time.Now()) timeLeft := deadline.Sub(time.Now())
framework.Logf("Still running...%v left", timeLeft) e2elog.Logf("Still running...%v left", timeLeft)
if timeLeft < reportingPeriod { if timeLeft < reportingPeriod {
time.Sleep(timeLeft) time.Sleep(timeLeft)
} else { } else {
...@@ -190,14 +191,14 @@ func logAndVerifyResource(f *framework.Framework, rc *ResourceCollector, cpuLimi ...@@ -190,14 +191,14 @@ func logAndVerifyResource(f *framework.Framework, rc *ResourceCollector, cpuLimi
// Obtain memory PerfData // Obtain memory PerfData
usagePerContainer, err := rc.GetLatest() usagePerContainer, err := rc.GetLatest()
Expect(err).NotTo(HaveOccurred()) Expect(err).NotTo(HaveOccurred())
framework.Logf("%s", formatResourceUsageStats(usagePerContainer)) e2elog.Logf("%s", formatResourceUsageStats(usagePerContainer))
usagePerNode := make(framework.ResourceUsagePerNode) usagePerNode := make(framework.ResourceUsagePerNode)
usagePerNode[nodeName] = usagePerContainer usagePerNode[nodeName] = usagePerContainer
// Obtain CPU PerfData // Obtain CPU PerfData
cpuSummary := rc.GetCPUSummary() cpuSummary := rc.GetCPUSummary()
framework.Logf("%s", formatCPUSummary(cpuSummary)) e2elog.Logf("%s", formatCPUSummary(cpuSummary))
cpuSummaryPerNode := make(framework.NodesCPUSummary) cpuSummaryPerNode := make(framework.NodesCPUSummary)
cpuSummaryPerNode[nodeName] = cpuSummary cpuSummaryPerNode[nodeName] = cpuSummary
...@@ -238,9 +239,9 @@ func verifyMemoryLimits(c clientset.Interface, expected framework.ResourceUsageP ...@@ -238,9 +239,9 @@ func verifyMemoryLimits(c clientset.Interface, expected framework.ResourceUsageP
errList = append(errList, fmt.Sprintf("node %v:\n %s", nodeName, strings.Join(nodeErrs, ", "))) errList = append(errList, fmt.Sprintf("node %v:\n %s", nodeName, strings.Join(nodeErrs, ", ")))
heapStats, err := framework.GetKubeletHeapStats(c, nodeName) heapStats, err := framework.GetKubeletHeapStats(c, nodeName)
if err != nil { if err != nil {
framework.Logf("Unable to get heap stats from %q", nodeName) e2elog.Logf("Unable to get heap stats from %q", nodeName)
} else { } else {
framework.Logf("Heap stats on %q\n:%v", nodeName, heapStats) e2elog.Logf("Heap stats on %q\n:%v", nodeName, heapStats)
} }
} }
} }
...@@ -287,7 +288,7 @@ func logPods(c clientset.Interface) { ...@@ -287,7 +288,7 @@ func logPods(c clientset.Interface) {
nodeName := framework.TestContext.NodeName nodeName := framework.TestContext.NodeName
podList, err := framework.GetKubeletRunningPods(c, nodeName) podList, err := framework.GetKubeletRunningPods(c, nodeName)
if err != nil { if err != nil {
framework.Logf("Unable to retrieve kubelet pods for node %v", nodeName) e2elog.Logf("Unable to retrieve kubelet pods for node %v", nodeName)
} }
framework.Logf("%d pods are running on node %v", len(podList.Items), nodeName) e2elog.Logf("%d pods are running on node %v", len(podList.Items), nodeName)
} }
...@@ -23,6 +23,7 @@ import ( ...@@ -23,6 +23,7 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
"fmt" "fmt"
"os/exec" "os/exec"
...@@ -40,7 +41,7 @@ func waitForPods(f *framework.Framework, pod_count int, timeout time.Duration) ( ...@@ -40,7 +41,7 @@ func waitForPods(f *framework.Framework, pod_count int, timeout time.Duration) (
for start := time.Now(); time.Since(start) < timeout; time.Sleep(10 * time.Second) { for start := time.Now(); time.Since(start) < timeout; time.Sleep(10 * time.Second) {
podList, err := f.PodClient().List(metav1.ListOptions{}) podList, err := f.PodClient().List(metav1.ListOptions{})
if err != nil { if err != nil {
framework.Logf("Failed to list pods on node: %v", err) e2elog.Logf("Failed to list pods on node: %v", err)
continue continue
} }
...@@ -51,7 +52,7 @@ func waitForPods(f *framework.Framework, pod_count int, timeout time.Duration) ( ...@@ -51,7 +52,7 @@ func waitForPods(f *framework.Framework, pod_count int, timeout time.Duration) (
} }
runningPods = append(runningPods, &pod) runningPods = append(runningPods, &pod)
} }
framework.Logf("Running pod count %d", len(runningPods)) e2elog.Logf("Running pod count %d", len(runningPods))
if len(runningPods) >= pod_count { if len(runningPods) >= pod_count {
break break
} }
......
...@@ -27,6 +27,7 @@ import ( ...@@ -27,6 +27,7 @@ import (
"k8s.io/kubernetes/pkg/kubelet/images" "k8s.io/kubernetes/pkg/kubelet/images"
"k8s.io/kubernetes/test/e2e/common" "k8s.io/kubernetes/test/e2e/common"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
"k8s.io/kubernetes/test/e2e_node/services" "k8s.io/kubernetes/test/e2e_node/services"
. "github.com/onsi/ginkgo" . "github.com/onsi/ginkgo"
...@@ -142,7 +143,7 @@ var _ = framework.KubeDescribe("Container Runtime Conformance Test", func() { ...@@ -142,7 +143,7 @@ var _ = framework.KubeDescribe("Container Runtime Conformance Test", func() {
break break
} }
if i < flakeRetry { if i < flakeRetry {
framework.Logf("No.%d attempt failed: %v, retrying...", i, err) e2elog.Logf("No.%d attempt failed: %v, retrying...", i, err)
} else { } else {
framework.Failf("All %d attempts failed: %v", flakeRetry, err) framework.Failf("All %d attempts failed: %v", flakeRetry, err)
} }
......
...@@ -29,6 +29,7 @@ import ( ...@@ -29,6 +29,7 @@ import (
utilfeature "k8s.io/apiserver/pkg/util/feature" utilfeature "k8s.io/apiserver/pkg/util/feature"
"k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/pkg/features"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
. "github.com/onsi/ginkgo" . "github.com/onsi/ginkgo"
imageutils "k8s.io/kubernetes/test/utils/image" imageutils "k8s.io/kubernetes/test/utils/image"
...@@ -165,7 +166,7 @@ var _ = framework.KubeDescribe("Security Context", func() { ...@@ -165,7 +166,7 @@ var _ = framework.KubeDescribe("Security Context", func() {
} }
pids := strings.TrimSpace(logs) pids := strings.TrimSpace(logs)
framework.Logf("Got nginx's pid %q from pod %q", pids, busyboxPodName) e2elog.Logf("Got nginx's pid %q from pod %q", pids, busyboxPodName)
if pids == "" { if pids == "" {
framework.Failf("nginx's pid should be seen by hostpid containers") framework.Failf("nginx's pid should be seen by hostpid containers")
} }
...@@ -185,7 +186,7 @@ var _ = framework.KubeDescribe("Security Context", func() { ...@@ -185,7 +186,7 @@ var _ = framework.KubeDescribe("Security Context", func() {
} }
pids := strings.TrimSpace(logs) pids := strings.TrimSpace(logs)
framework.Logf("Got nginx's pid %q from pod %q", pids, busyboxPodName) e2elog.Logf("Got nginx's pid %q from pod %q", pids, busyboxPodName)
pidSets := sets.NewString(strings.Split(pids, " ")...) pidSets := sets.NewString(strings.Split(pids, " ")...)
if pidSets.Has(nginxPid) { if pidSets.Has(nginxPid) {
framework.Failf("nginx's pid should not be seen by non-hostpid containers") framework.Failf("nginx's pid should not be seen by non-hostpid containers")
...@@ -229,7 +230,7 @@ var _ = framework.KubeDescribe("Security Context", func() { ...@@ -229,7 +230,7 @@ var _ = framework.KubeDescribe("Security Context", func() {
framework.Failf("Failed to create the shared memory on the host: %v", err) framework.Failf("Failed to create the shared memory on the host: %v", err)
} }
hostSharedMemoryID = strings.TrimSpace(string(output)) hostSharedMemoryID = strings.TrimSpace(string(output))
framework.Logf("Got host shared memory ID %q", hostSharedMemoryID) e2elog.Logf("Got host shared memory ID %q", hostSharedMemoryID)
}) })
It("should show the shared memory ID in the host IPC containers [NodeFeature:HostAccess]", func() { It("should show the shared memory ID in the host IPC containers [NodeFeature:HostAccess]", func() {
...@@ -241,7 +242,7 @@ var _ = framework.KubeDescribe("Security Context", func() { ...@@ -241,7 +242,7 @@ var _ = framework.KubeDescribe("Security Context", func() {
} }
podSharedMemoryIDs := strings.TrimSpace(logs) podSharedMemoryIDs := strings.TrimSpace(logs)
framework.Logf("Got shared memory IDs %q from pod %q", podSharedMemoryIDs, ipcutilsPodName) e2elog.Logf("Got shared memory IDs %q from pod %q", podSharedMemoryIDs, ipcutilsPodName)
if !strings.Contains(podSharedMemoryIDs, hostSharedMemoryID) { if !strings.Contains(podSharedMemoryIDs, hostSharedMemoryID) {
framework.Failf("hostIPC container should show shared memory IDs on host") framework.Failf("hostIPC container should show shared memory IDs on host")
} }
...@@ -256,7 +257,7 @@ var _ = framework.KubeDescribe("Security Context", func() { ...@@ -256,7 +257,7 @@ var _ = framework.KubeDescribe("Security Context", func() {
} }
podSharedMemoryIDs := strings.TrimSpace(logs) podSharedMemoryIDs := strings.TrimSpace(logs)
framework.Logf("Got shared memory IDs %q from pod %q", podSharedMemoryIDs, ipcutilsPodName) e2elog.Logf("Got shared memory IDs %q from pod %q", podSharedMemoryIDs, ipcutilsPodName)
if strings.Contains(podSharedMemoryIDs, hostSharedMemoryID) { if strings.Contains(podSharedMemoryIDs, hostSharedMemoryID) {
framework.Failf("non-hostIPC container should not show shared memory IDs on host") framework.Failf("non-hostIPC container should not show shared memory IDs on host")
} }
...@@ -312,7 +313,7 @@ var _ = framework.KubeDescribe("Security Context", func() { ...@@ -312,7 +313,7 @@ var _ = framework.KubeDescribe("Security Context", func() {
} }
addr := strings.Split(l.Addr().String(), ":") addr := strings.Split(l.Addr().String(), ":")
listeningPort = addr[len(addr)-1] listeningPort = addr[len(addr)-1]
framework.Logf("Opened a new tcp port %q", listeningPort) e2elog.Logf("Opened a new tcp port %q", listeningPort)
}) })
It("should listen on same port in the host network containers [NodeFeature:HostAccess]", func() { It("should listen on same port in the host network containers [NodeFeature:HostAccess]", func() {
...@@ -323,7 +324,7 @@ var _ = framework.KubeDescribe("Security Context", func() { ...@@ -323,7 +324,7 @@ var _ = framework.KubeDescribe("Security Context", func() {
framework.Failf("GetPodLogs for pod %q failed: %v", busyboxPodName, err) framework.Failf("GetPodLogs for pod %q failed: %v", busyboxPodName, err)
} }
framework.Logf("Got logs for pod %q: %q", busyboxPodName, logs) e2elog.Logf("Got logs for pod %q: %q", busyboxPodName, logs)
if !strings.Contains(logs, listeningPort) { if !strings.Contains(logs, listeningPort) {
framework.Failf("host-networked container should listening on same port as host") framework.Failf("host-networked container should listening on same port as host")
} }
...@@ -337,7 +338,7 @@ var _ = framework.KubeDescribe("Security Context", func() { ...@@ -337,7 +338,7 @@ var _ = framework.KubeDescribe("Security Context", func() {
framework.Failf("GetPodLogs for pod %q failed: %v", busyboxPodName, err) framework.Failf("GetPodLogs for pod %q failed: %v", busyboxPodName, err)
} }
framework.Logf("Got logs for pod %q: %q", busyboxPodName, logs) e2elog.Logf("Got logs for pod %q: %q", busyboxPodName, logs)
if strings.Contains(logs, listeningPort) { if strings.Contains(logs, listeningPort) {
framework.Failf("non-hostnetworked container shouldn't show the same port as host") framework.Failf("non-hostnetworked container shouldn't show the same port as host")
} }
...@@ -389,7 +390,7 @@ var _ = framework.KubeDescribe("Security Context", func() { ...@@ -389,7 +390,7 @@ var _ = framework.KubeDescribe("Security Context", func() {
framework.Failf("GetPodLogs for pod %q failed: %v", podName, err) framework.Failf("GetPodLogs for pod %q failed: %v", podName, err)
} }
framework.Logf("Got logs for pod %q: %q", podName, logs) e2elog.Logf("Got logs for pod %q: %q", podName, logs)
if strings.Contains(logs, "Operation not permitted") { if strings.Contains(logs, "Operation not permitted") {
framework.Failf("privileged container should be able to create dummy device") framework.Failf("privileged container should be able to create dummy device")
} }
......
...@@ -28,6 +28,7 @@ import ( ...@@ -28,6 +28,7 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
stats "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1" stats "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
"k8s.io/kubernetes/test/e2e/framework/volume" "k8s.io/kubernetes/test/e2e/framework/volume"
systemdutil "github.com/coreos/go-systemd/util" systemdutil "github.com/coreos/go-systemd/util"
...@@ -45,7 +46,7 @@ var _ = framework.KubeDescribe("Summary API [NodeConformance]", func() { ...@@ -45,7 +46,7 @@ var _ = framework.KubeDescribe("Summary API [NodeConformance]", func() {
return return
} }
if framework.TestContext.DumpLogsOnFailure { if framework.TestContext.DumpLogsOnFailure {
framework.LogFailedContainers(f.ClientSet, f.Namespace.Name, framework.Logf) framework.LogFailedContainers(f.ClientSet, f.Namespace.Name, e2elog.Logf)
} }
By("Recording processes in system cgroups") By("Recording processes in system cgroups")
recordSystemCgroupProcesses() recordSystemCgroupProcesses()
...@@ -151,7 +152,7 @@ var _ = framework.KubeDescribe("Summary API [NodeConformance]", func() { ...@@ -151,7 +152,7 @@ var _ = framework.KubeDescribe("Summary API [NodeConformance]", func() {
} }
// The Kubelet only manages the 'misc' system container if the host is not running systemd. // The Kubelet only manages the 'misc' system container if the host is not running systemd.
if !systemdutil.IsRunningSystemd() { if !systemdutil.IsRunningSystemd() {
framework.Logf("Host not running systemd; expecting 'misc' system container.") e2elog.Logf("Host not running systemd; expecting 'misc' system container.")
miscContExpectations := sysContExpectations().(*gstruct.FieldsMatcher) miscContExpectations := sysContExpectations().(*gstruct.FieldsMatcher)
// Misc processes are system-dependent, so relax the memory constraints. // Misc processes are system-dependent, so relax the memory constraints.
miscContExpectations.Fields["Memory"] = ptrMatchAllFields(gstruct.Fields{ miscContExpectations.Fields["Memory"] = ptrMatchAllFields(gstruct.Fields{
...@@ -418,7 +419,7 @@ func recent(d time.Duration) types.GomegaMatcher { ...@@ -418,7 +419,7 @@ func recent(d time.Duration) types.GomegaMatcher {
func recordSystemCgroupProcesses() { func recordSystemCgroupProcesses() {
cfg, err := getCurrentKubeletConfig() cfg, err := getCurrentKubeletConfig()
if err != nil { if err != nil {
framework.Logf("Failed to read kubelet config: %v", err) e2elog.Logf("Failed to read kubelet config: %v", err)
return return
} }
cgroups := map[string]string{ cgroups := map[string]string{
...@@ -427,24 +428,24 @@ func recordSystemCgroupProcesses() { ...@@ -427,24 +428,24 @@ func recordSystemCgroupProcesses() {
} }
for name, cgroup := range cgroups { for name, cgroup := range cgroups {
if cgroup == "" { if cgroup == "" {
framework.Logf("Skipping unconfigured cgroup %s", name) e2elog.Logf("Skipping unconfigured cgroup %s", name)
continue continue
} }
pids, err := ioutil.ReadFile(fmt.Sprintf("/sys/fs/cgroup/cpu/%s/cgroup.procs", cgroup)) pids, err := ioutil.ReadFile(fmt.Sprintf("/sys/fs/cgroup/cpu/%s/cgroup.procs", cgroup))
if err != nil { if err != nil {
framework.Logf("Failed to read processes in cgroup %s: %v", name, err) e2elog.Logf("Failed to read processes in cgroup %s: %v", name, err)
continue continue
} }
framework.Logf("Processes in %s cgroup (%s):", name, cgroup) e2elog.Logf("Processes in %s cgroup (%s):", name, cgroup)
for _, pid := range strings.Fields(string(pids)) { for _, pid := range strings.Fields(string(pids)) {
path := fmt.Sprintf("/proc/%s/cmdline", pid) path := fmt.Sprintf("/proc/%s/cmdline", pid)
cmd, err := ioutil.ReadFile(path) cmd, err := ioutil.ReadFile(path)
if err != nil { if err != nil {
framework.Logf(" Failed to read %s: %v", path, err) e2elog.Logf(" Failed to read %s: %v", path, err)
} else { } else {
framework.Logf(" %s", cmd) e2elog.Logf(" %s", cmd)
} }
} }
} }
......
...@@ -28,6 +28,7 @@ import ( ...@@ -28,6 +28,7 @@ import (
kubeletconfig "k8s.io/kubernetes/pkg/kubelet/apis/config" kubeletconfig "k8s.io/kubernetes/pkg/kubelet/apis/config"
evictionapi "k8s.io/kubernetes/pkg/kubelet/eviction/api" evictionapi "k8s.io/kubernetes/pkg/kubelet/eviction/api"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
. "github.com/onsi/ginkgo" . "github.com/onsi/ginkgo"
. "github.com/onsi/gomega" . "github.com/onsi/gomega"
...@@ -78,7 +79,7 @@ var _ = framework.KubeDescribe("SystemNodeCriticalPod [Slow] [Serial] [Disruptiv ...@@ -78,7 +79,7 @@ var _ = framework.KubeDescribe("SystemNodeCriticalPod [Slow] [Serial] [Disruptiv
return nil return nil
} }
msg := fmt.Sprintf("NodeCondition: %s not encountered yet", v1.NodeDiskPressure) msg := fmt.Sprintf("NodeCondition: %s not encountered yet", v1.NodeDiskPressure)
framework.Logf(msg) e2elog.Logf(msg)
return fmt.Errorf(msg) return fmt.Errorf(msg)
}, time.Minute*2, time.Second*4).Should(BeNil()) }, time.Minute*2, time.Second*4).Should(BeNil())
...@@ -86,9 +87,9 @@ var _ = framework.KubeDescribe("SystemNodeCriticalPod [Slow] [Serial] [Disruptiv ...@@ -86,9 +87,9 @@ var _ = framework.KubeDescribe("SystemNodeCriticalPod [Slow] [Serial] [Disruptiv
Consistently(func() error { Consistently(func() error {
err := checkMirrorPodRunning(f.ClientSet, mirrorPodName, ns) err := checkMirrorPodRunning(f.ClientSet, mirrorPodName, ns)
if err == nil { if err == nil {
framework.Logf("mirror pod %q is running", mirrorPodName) e2elog.Logf("mirror pod %q is running", mirrorPodName)
} else { } else {
framework.Logf(err.Error()) e2elog.Logf(err.Error())
} }
return err return err
}, time.Minute*8, time.Second*4).ShouldNot(HaveOccurred()) }, time.Minute*8, time.Second*4).ShouldNot(HaveOccurred())
......
...@@ -48,6 +48,7 @@ import ( ...@@ -48,6 +48,7 @@ import (
"k8s.io/kubernetes/pkg/kubelet/remote" "k8s.io/kubernetes/pkg/kubelet/remote"
"k8s.io/kubernetes/pkg/kubelet/util" "k8s.io/kubernetes/pkg/kubelet/util"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
frameworkmetrics "k8s.io/kubernetes/test/e2e/framework/metrics" frameworkmetrics "k8s.io/kubernetes/test/e2e/framework/metrics"
imageutils "k8s.io/kubernetes/test/utils/image" imageutils "k8s.io/kubernetes/test/utils/image"
...@@ -327,13 +328,13 @@ func newKubeletConfigMap(name string, internalKC *kubeletconfig.KubeletConfigura ...@@ -327,13 +328,13 @@ func newKubeletConfigMap(name string, internalKC *kubeletconfig.KubeletConfigura
} }
func logPodEvents(f *framework.Framework) { func logPodEvents(f *framework.Framework) {
framework.Logf("Summary of pod events during the test:") e2elog.Logf("Summary of pod events during the test:")
err := framework.ListNamespaceEvents(f.ClientSet, f.Namespace.Name) err := framework.ListNamespaceEvents(f.ClientSet, f.Namespace.Name)
framework.ExpectNoError(err) framework.ExpectNoError(err)
} }
func logNodeEvents(f *framework.Framework) { func logNodeEvents(f *framework.Framework) {
framework.Logf("Summary of node events during the test:") e2elog.Logf("Summary of node events during the test:")
err := framework.ListNamespaceEvents(f.ClientSet, "") err := framework.ListNamespaceEvents(f.ClientSet, "")
framework.ExpectNoError(err) framework.ExpectNoError(err)
} }
...@@ -354,9 +355,9 @@ func logKubeletLatencyMetrics(metricNames ...string) { ...@@ -354,9 +355,9 @@ func logKubeletLatencyMetrics(metricNames ...string) {
} }
metric, err := frameworkmetrics.GrabKubeletMetricsWithoutProxy(framework.TestContext.NodeName+":10255", "/metrics") metric, err := frameworkmetrics.GrabKubeletMetricsWithoutProxy(framework.TestContext.NodeName+":10255", "/metrics")
if err != nil { if err != nil {
framework.Logf("Error getting kubelet metrics: %v", err) e2elog.Logf("Error getting kubelet metrics: %v", err)
} else { } else {
framework.Logf("Kubelet Metrics: %+v", framework.GetKubeletLatencyMetrics(metric, metricSet)) e2elog.Logf("Kubelet Metrics: %+v", framework.GetKubeletLatencyMetrics(metric, metricSet))
} }
} }
...@@ -418,7 +419,7 @@ func restartKubelet() { ...@@ -418,7 +419,7 @@ func restartKubelet() {
matches := regex.FindStringSubmatch(string(stdout)) matches := regex.FindStringSubmatch(string(stdout))
Expect(len(matches)).NotTo(BeZero()) Expect(len(matches)).NotTo(BeZero())
kube := matches[0] kube := matches[0]
framework.Logf("Get running kubelet with systemctl: %v, %v", string(stdout), kube) e2elog.Logf("Get running kubelet with systemctl: %v, %v", string(stdout), kube)
stdout, err = exec.Command("sudo", "systemctl", "restart", kube).CombinedOutput() stdout, err = exec.Command("sudo", "systemctl", "restart", kube).CombinedOutput()
framework.ExpectNoError(err, "Failed to restart kubelet with systemctl: %v, %v", err, stdout) framework.ExpectNoError(err, "Failed to restart kubelet with systemctl: %v, %v", err, stdout)
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment