mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-25 20:53:33 +00:00
Svc REST: Remove old rest_test
All the tests have been ported to storage_test.go
This commit is contained in:
parent
b6da6c9c0f
commit
4ac7c73b2e
@ -1,138 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2014 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 storage
|
|
||||||
|
|
||||||
import (
|
|
||||||
"net"
|
|
||||||
"testing"
|
|
||||||
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
|
||||||
utilnet "k8s.io/apimachinery/pkg/util/net"
|
|
||||||
"k8s.io/apiserver/pkg/registry/generic"
|
|
||||||
etcd3testing "k8s.io/apiserver/pkg/storage/etcd3/testing"
|
|
||||||
api "k8s.io/kubernetes/pkg/apis/core"
|
|
||||||
endpointstore "k8s.io/kubernetes/pkg/registry/core/endpoint/storage"
|
|
||||||
"k8s.io/kubernetes/pkg/registry/core/service/ipallocator"
|
|
||||||
"k8s.io/kubernetes/pkg/registry/core/service/portallocator"
|
|
||||||
"k8s.io/kubernetes/pkg/registry/registrytest"
|
|
||||||
netutils "k8s.io/utils/net"
|
|
||||||
)
|
|
||||||
|
|
||||||
func NewTestREST(t *testing.T, ipFamilies []api.IPFamily) (*GenericREST, *etcd3testing.EtcdTestServer) {
|
|
||||||
etcdStorage, server := registrytest.NewEtcdStorage(t, "")
|
|
||||||
|
|
||||||
var rPrimary ipallocator.Interface
|
|
||||||
var rSecondary ipallocator.Interface
|
|
||||||
|
|
||||||
if len(ipFamilies) < 1 || len(ipFamilies) > 2 {
|
|
||||||
t.Fatalf("unexpected ipfamilies passed: %v", ipFamilies)
|
|
||||||
}
|
|
||||||
for i, family := range ipFamilies {
|
|
||||||
var r ipallocator.Interface
|
|
||||||
var err error
|
|
||||||
switch family {
|
|
||||||
case api.IPv4Protocol:
|
|
||||||
r, err = ipallocator.NewInMemory(makeIPNet(t))
|
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("cannot create CIDR Range %v", err)
|
|
||||||
}
|
|
||||||
case api.IPv6Protocol:
|
|
||||||
r, err = ipallocator.NewInMemory(makeIPNet6(t))
|
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("cannot create CIDR Range %v", err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
switch i {
|
|
||||||
case 0:
|
|
||||||
rPrimary = r
|
|
||||||
case 1:
|
|
||||||
rSecondary = r
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
portRange := utilnet.PortRange{Base: 30000, Size: 1000}
|
|
||||||
portAllocator, err := portallocator.NewInMemory(portRange)
|
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("cannot create port allocator %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
ipAllocators := map[api.IPFamily]ipallocator.Interface{
|
|
||||||
rPrimary.IPFamily(): rPrimary,
|
|
||||||
}
|
|
||||||
if rSecondary != nil {
|
|
||||||
ipAllocators[rSecondary.IPFamily()] = rSecondary
|
|
||||||
}
|
|
||||||
|
|
||||||
restOptions := generic.RESTOptions{
|
|
||||||
StorageConfig: etcdStorage.ForResource(schema.GroupResource{Resource: "services"}),
|
|
||||||
Decorator: generic.UndecoratedStorage,
|
|
||||||
DeleteCollectionWorkers: 1,
|
|
||||||
ResourcePrefix: "services",
|
|
||||||
}
|
|
||||||
endpoints, err := endpointstore.NewREST(generic.RESTOptions{
|
|
||||||
StorageConfig: etcdStorage,
|
|
||||||
Decorator: generic.UndecoratedStorage,
|
|
||||||
ResourcePrefix: "endpoints",
|
|
||||||
})
|
|
||||||
|
|
||||||
rest, _, _, err := NewREST(restOptions, api.IPv4Protocol, ipAllocators, portAllocator, endpoints, nil, nil)
|
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("unexpected error from REST storage: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
return rest, server
|
|
||||||
}
|
|
||||||
|
|
||||||
func makeIPNet(t *testing.T) *net.IPNet {
|
|
||||||
_, net, err := netutils.ParseCIDRSloppy("1.2.3.0/24")
|
|
||||||
if err != nil {
|
|
||||||
t.Error(err)
|
|
||||||
}
|
|
||||||
return net
|
|
||||||
}
|
|
||||||
func makeIPNet6(t *testing.T) *net.IPNet {
|
|
||||||
_, net, err := netutils.ParseCIDRSloppy("2000::/108")
|
|
||||||
if err != nil {
|
|
||||||
t.Error(err)
|
|
||||||
}
|
|
||||||
return net
|
|
||||||
}
|
|
||||||
|
|
||||||
// this is local because it's not fully fleshed out enough for general use.
|
|
||||||
func makePod(name string, ips ...string) api.Pod {
|
|
||||||
p := api.Pod{
|
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
|
||||||
Name: name,
|
|
||||||
Namespace: metav1.NamespaceDefault,
|
|
||||||
},
|
|
||||||
Spec: api.PodSpec{
|
|
||||||
RestartPolicy: api.RestartPolicyAlways,
|
|
||||||
DNSPolicy: api.DNSDefault,
|
|
||||||
Containers: []api.Container{{Name: "ctr", Image: "img", ImagePullPolicy: api.PullIfNotPresent, TerminationMessagePolicy: api.TerminationMessageReadFile}},
|
|
||||||
},
|
|
||||||
Status: api.PodStatus{
|
|
||||||
PodIPs: []api.PodIP{},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, ip := range ips {
|
|
||||||
p.Status.PodIPs = append(p.Status.PodIPs, api.PodIP{IP: ip})
|
|
||||||
}
|
|
||||||
|
|
||||||
return p
|
|
||||||
}
|
|
@ -11525,6 +11525,30 @@ func TestFeatureInternalTrafficPolicy(t *testing.T) {
|
|||||||
// ipfamilypolicy and list,
|
// ipfamilypolicy and list,
|
||||||
// AllocateLoadBalancerNodePorts, LoadBalancerClass, status
|
// AllocateLoadBalancerNodePorts, LoadBalancerClass, status
|
||||||
|
|
||||||
|
// this is local because it's not fully fleshed out enough for general use.
|
||||||
|
func makePod(name string, ips ...string) api.Pod {
|
||||||
|
p := api.Pod{
|
||||||
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
|
Name: name,
|
||||||
|
Namespace: metav1.NamespaceDefault,
|
||||||
|
},
|
||||||
|
Spec: api.PodSpec{
|
||||||
|
RestartPolicy: api.RestartPolicyAlways,
|
||||||
|
DNSPolicy: api.DNSDefault,
|
||||||
|
Containers: []api.Container{{Name: "ctr", Image: "img", ImagePullPolicy: api.PullIfNotPresent, TerminationMessagePolicy: api.TerminationMessageReadFile}},
|
||||||
|
},
|
||||||
|
Status: api.PodStatus{
|
||||||
|
PodIPs: []api.PodIP{},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, ip := range ips {
|
||||||
|
p.Status.PodIPs = append(p.Status.PodIPs, api.PodIP{IP: ip})
|
||||||
|
}
|
||||||
|
|
||||||
|
return p
|
||||||
|
}
|
||||||
|
|
||||||
func TestServiceRegistryResourceLocation(t *testing.T) {
|
func TestServiceRegistryResourceLocation(t *testing.T) {
|
||||||
pods := []api.Pod{
|
pods := []api.Pod{
|
||||||
makePod("unnamed", "1.2.3.4", "1.2.3.5"),
|
makePod("unnamed", "1.2.3.4", "1.2.3.5"),
|
||||||
|
Loading…
Reference in New Issue
Block a user