mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-13 22:05:59 +00:00
Move APIVersions test
This commit is contained in:
parent
731409ee15
commit
43485a4eef
@ -19,8 +19,6 @@ limitations under the License.
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
"io/ioutil"
|
|
||||||
"net"
|
"net"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/http/httptest"
|
"net/http/httptest"
|
||||||
@ -282,67 +280,6 @@ func startComponents(firstManifestURL, secondManifestURL string) (string, string
|
|||||||
return apiServer.URL, configFilePath
|
return apiServer.URL, configFilePath
|
||||||
}
|
}
|
||||||
|
|
||||||
func makeTempDirOrDie(prefix string, baseDir string) string {
|
|
||||||
if baseDir == "" {
|
|
||||||
baseDir = "/tmp"
|
|
||||||
}
|
|
||||||
tempDir, err := ioutil.TempDir(baseDir, prefix)
|
|
||||||
if err != nil {
|
|
||||||
glog.Fatalf("Can't make a temp rootdir: %v", err)
|
|
||||||
}
|
|
||||||
if err = os.MkdirAll(tempDir, 0750); err != nil {
|
|
||||||
glog.Fatalf("Can't mkdir(%q): %v", tempDir, err)
|
|
||||||
}
|
|
||||||
return tempDir
|
|
||||||
}
|
|
||||||
|
|
||||||
// podsOnNodes returns true when all of the selected pods exist on a node.
|
|
||||||
func podsOnNodes(c *client.Client, podNamespace string, labelSelector labels.Selector) wait.ConditionFunc {
|
|
||||||
// Wait until all pods are running on the node.
|
|
||||||
return func() (bool, error) {
|
|
||||||
options := api.ListOptions{LabelSelector: labelSelector}
|
|
||||||
pods, err := c.Pods(podNamespace).List(options)
|
|
||||||
if err != nil {
|
|
||||||
glog.Infof("Unable to get pods to list: %v", err)
|
|
||||||
return false, nil
|
|
||||||
}
|
|
||||||
for i := range pods.Items {
|
|
||||||
pod := pods.Items[i]
|
|
||||||
podString := fmt.Sprintf("%s/%s", pod.Namespace, pod.Name)
|
|
||||||
glog.Infof("Check whether pod %q exists on node %q", podString, pod.Spec.NodeName)
|
|
||||||
if len(pod.Spec.NodeName) == 0 {
|
|
||||||
glog.Infof("Pod %q is not bound to a host yet", podString)
|
|
||||||
return false, nil
|
|
||||||
}
|
|
||||||
if pod.Status.Phase != api.PodRunning {
|
|
||||||
glog.Infof("Pod %q is not running, status: %v", podString, pod.Status.Phase)
|
|
||||||
return false, nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true, nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func endpointsSet(c *client.Client, serviceNamespace, serviceID string, endpointCount int) wait.ConditionFunc {
|
|
||||||
return func() (bool, error) {
|
|
||||||
endpoints, err := c.Endpoints(serviceNamespace).Get(serviceID)
|
|
||||||
if err != nil {
|
|
||||||
glog.Infof("Error getting endpoints: %v", err)
|
|
||||||
return false, nil
|
|
||||||
}
|
|
||||||
count := 0
|
|
||||||
for _, ss := range endpoints.Subsets {
|
|
||||||
for _, addr := range ss.Addresses {
|
|
||||||
for _, port := range ss.Ports {
|
|
||||||
count++
|
|
||||||
glog.Infof("%s/%s endpoint: %s:%d %#v", serviceNamespace, serviceID, addr.IP, port.Port, addr.TargetRef)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return count == endpointCount, nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func countEndpoints(eps *api.Endpoints) int {
|
func countEndpoints(eps *api.Endpoints) int {
|
||||||
count := 0
|
count := 0
|
||||||
for i := range eps.Subsets {
|
for i := range eps.Subsets {
|
||||||
@ -351,20 +288,6 @@ func countEndpoints(eps *api.Endpoints) int {
|
|||||||
return count
|
return count
|
||||||
}
|
}
|
||||||
|
|
||||||
func podExists(c *client.Client, podNamespace string, podName string) wait.ConditionFunc {
|
|
||||||
return func() (bool, error) {
|
|
||||||
_, err := c.Pods(podNamespace).Get(podName)
|
|
||||||
return err == nil, nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func podNotFound(c *client.Client, podNamespace string, podName string) wait.ConditionFunc {
|
|
||||||
return func() (bool, error) {
|
|
||||||
_, err := c.Pods(podNamespace).Get(podName)
|
|
||||||
return apierrors.IsNotFound(err), nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func podRunning(c *client.Client, podNamespace string, podName string) wait.ConditionFunc {
|
func podRunning(c *client.Client, podNamespace string, podName string) wait.ConditionFunc {
|
||||||
return func() (bool, error) {
|
return func() (bool, error) {
|
||||||
pod, err := c.Pods(podNamespace).Get(podName)
|
pod, err := c.Pods(podNamespace).Get(podName)
|
||||||
@ -385,24 +308,6 @@ func podRunning(c *client.Client, podNamespace string, podName string) wait.Cond
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func runAPIVersionsTest(c *client.Client) {
|
|
||||||
g, err := c.ServerGroups()
|
|
||||||
clientVersion := c.APIVersion().String()
|
|
||||||
if err != nil {
|
|
||||||
glog.Fatalf("Failed to get api versions: %v", err)
|
|
||||||
}
|
|
||||||
versions := unversioned.ExtractGroupVersions(g)
|
|
||||||
|
|
||||||
// Verify that the server supports the API version used by the client.
|
|
||||||
for _, version := range versions {
|
|
||||||
if version == clientVersion {
|
|
||||||
glog.Infof("Version test passed")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
glog.Fatalf("Server does not support APIVersion used by client. Server supported APIVersions: '%v', client APIVersion: '%v'", versions, clientVersion)
|
|
||||||
}
|
|
||||||
|
|
||||||
func runSelfLinkTestOnNamespace(c *client.Client, namespace string) {
|
func runSelfLinkTestOnNamespace(c *client.Client, namespace string) {
|
||||||
svcBody := api.Service{
|
svcBody := api.Service{
|
||||||
ObjectMeta: api.ObjectMeta{
|
ObjectMeta: api.ObjectMeta{
|
||||||
@ -897,7 +802,6 @@ func main() {
|
|||||||
testFuncs := []testFunc{
|
testFuncs := []testFunc{
|
||||||
runAtomicPutTest,
|
runAtomicPutTest,
|
||||||
runPatchTest,
|
runPatchTest,
|
||||||
runAPIVersionsTest,
|
|
||||||
runMasterServiceTest,
|
runMasterServiceTest,
|
||||||
func(c *client.Client) {
|
func(c *client.Client) {
|
||||||
runSelfLinkTestOnNamespace(c, api.NamespaceDefault)
|
runSelfLinkTestOnNamespace(c, api.NamespaceDefault)
|
||||||
|
@ -29,6 +29,7 @@ import (
|
|||||||
|
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/testapi"
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
|
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||||
"k8s.io/kubernetes/pkg/client/restclient"
|
"k8s.io/kubernetes/pkg/client/restclient"
|
||||||
client "k8s.io/kubernetes/pkg/client/unversioned"
|
client "k8s.io/kubernetes/pkg/client/unversioned"
|
||||||
"k8s.io/kubernetes/pkg/labels"
|
"k8s.io/kubernetes/pkg/labels"
|
||||||
@ -109,6 +110,29 @@ func TestClient(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestAPIVersions(t *testing.T) {
|
||||||
|
_, s := framework.RunAMaster(t)
|
||||||
|
defer s.Close()
|
||||||
|
|
||||||
|
framework.DeleteAllEtcdKeys()
|
||||||
|
c := client.NewOrDie(&restclient.Config{Host: s.URL, ContentConfig: restclient.ContentConfig{GroupVersion: testapi.Default.GroupVersion()}})
|
||||||
|
|
||||||
|
clientVersion := c.APIVersion().String()
|
||||||
|
g, err := c.ServerGroups()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Failed to get api versions: %v", err)
|
||||||
|
}
|
||||||
|
versions := unversioned.ExtractGroupVersions(g)
|
||||||
|
|
||||||
|
// Verify that the server supports the API version used by the client.
|
||||||
|
for _, version := range versions {
|
||||||
|
if version == clientVersion {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
t.Errorf("Server does not support APIVersion used by client. Server supported APIVersions: '%v', client APIVersion: '%v'", versions, clientVersion)
|
||||||
|
}
|
||||||
|
|
||||||
func TestSingleWatch(t *testing.T) {
|
func TestSingleWatch(t *testing.T) {
|
||||||
_, s := framework.RunAMaster(t)
|
_, s := framework.RunAMaster(t)
|
||||||
defer s.Close()
|
defer s.Close()
|
||||||
|
Loading…
Reference in New Issue
Block a user