123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- /*
- Copyright 2018 The Kubernetes Authors.
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- */
- package testing
- import (
- "bytes"
- "encoding/json"
- "io"
- "io/ioutil"
- "net/http"
- "testing"
- corev1 "k8s.io/api/core/v1"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- runtime "k8s.io/apimachinery/pkg/runtime"
- restclient "k8s.io/client-go/rest"
- cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
- "k8s.io/kubernetes/pkg/kubectl/scheme"
- )
- var (
- grace = int64(30)
- enableServiceLinks = corev1.DefaultEnableServiceLinks
- )
- func DefaultHeader() http.Header {
- header := http.Header{}
- header.Set("Content-Type", runtime.ContentTypeJSON)
- return header
- }
- func DefaultClientConfig() *restclient.Config {
- return &restclient.Config{
- APIPath: "/api",
- ContentConfig: restclient.ContentConfig{
- NegotiatedSerializer: scheme.Codecs,
- ContentType: runtime.ContentTypeJSON,
- GroupVersion: &corev1.SchemeGroupVersion,
- },
- }
- }
- func ObjBody(codec runtime.Codec, obj runtime.Object) io.ReadCloser {
- return ioutil.NopCloser(bytes.NewReader([]byte(runtime.EncodeOrDie(codec, obj))))
- }
- func BytesBody(bodyBytes []byte) io.ReadCloser {
- return ioutil.NopCloser(bytes.NewReader(bodyBytes))
- }
- func StringBody(body string) io.ReadCloser {
- return ioutil.NopCloser(bytes.NewReader([]byte(body)))
- }
- func TestData() (*corev1.PodList, *corev1.ServiceList, *corev1.ReplicationControllerList) {
- pods := &corev1.PodList{
- ListMeta: metav1.ListMeta{
- ResourceVersion: "15",
- },
- Items: []corev1.Pod{
- {
- ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "test", ResourceVersion: "10"},
- Spec: corev1.PodSpec{
- RestartPolicy: corev1.RestartPolicyAlways,
- DNSPolicy: corev1.DNSClusterFirst,
- TerminationGracePeriodSeconds: &grace,
- SecurityContext: &corev1.PodSecurityContext{},
- EnableServiceLinks: &enableServiceLinks,
- },
- },
- {
- ObjectMeta: metav1.ObjectMeta{Name: "bar", Namespace: "test", ResourceVersion: "11"},
- Spec: corev1.PodSpec{
- RestartPolicy: corev1.RestartPolicyAlways,
- DNSPolicy: corev1.DNSClusterFirst,
- TerminationGracePeriodSeconds: &grace,
- SecurityContext: &corev1.PodSecurityContext{},
- EnableServiceLinks: &enableServiceLinks,
- },
- },
- },
- }
- svc := &corev1.ServiceList{
- ListMeta: metav1.ListMeta{
- ResourceVersion: "16",
- },
- Items: []corev1.Service{
- {
- ObjectMeta: metav1.ObjectMeta{Name: "baz", Namespace: "test", ResourceVersion: "12"},
- Spec: corev1.ServiceSpec{
- SessionAffinity: "None",
- Type: corev1.ServiceTypeClusterIP,
- },
- },
- },
- }
- one := int32(1)
- rc := &corev1.ReplicationControllerList{
- ListMeta: metav1.ListMeta{
- ResourceVersion: "17",
- },
- Items: []corev1.ReplicationController{
- {
- ObjectMeta: metav1.ObjectMeta{Name: "rc1", Namespace: "test", ResourceVersion: "18"},
- Spec: corev1.ReplicationControllerSpec{
- Replicas: &one,
- },
- },
- },
- }
- return pods, svc, rc
- }
- func GenResponseWithJsonEncodedBody(bodyStruct interface{}) (*http.Response, error) {
- jsonBytes, err := json.Marshal(bodyStruct)
- if err != nil {
- return nil, err
- }
- return &http.Response{StatusCode: 200, Header: DefaultHeader(), Body: BytesBody(jsonBytes)}, nil
- }
- func InitTestErrorHandler(t *testing.T) {
- cmdutil.BehaviorOnFatal(func(str string, code int) {
- t.Errorf("Error running command (exit code %d): %s", code, str)
- })
- }
|