本文整理汇总了Golang中github.com/Juniper/contrail-kubernetes/pkg/network/opencontrail/mocks.Store.On方法的典型用法代码示例。如果您正苦于以下问题:Golang Store.On方法的具体用法?Golang Store.On怎么用?Golang Store.On使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/Juniper/contrail-kubernetes/pkg/network/opencontrail/mocks.Store
的用法示例。
在下文中一共展示了Store.On方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: addPod
func addPod(pod *api.Pod, podInterface *mocks.KubePodInterface, podStore *mocks.Store, keys *[]string) {
key := fmt.Sprintf("%s/%s", pod.Namespace, pod.Name)
*keys = append(*keys, key)
podStore.On("GetByKey", key).Return(pod, true, nil)
podInterface.On("Update", pod).Return(pod, nil)
}
示例2: TestConsistencyStaleInterface
func TestConsistencyStaleInterface(t *testing.T) {
client := createTestClient()
podStore := new(mocks.Store)
serviceStore := new(mocks.Store)
checker := NewConsistencyChecker(client, NewConfig(), podStore, serviceStore, nil)
kube := mocks.NewKubeClient()
controller := NewTestController(kube, client, nil, nil)
netnsProject := new(types.Project)
netnsProject.SetFQName("domain", []string{"default-domain", "testns"})
client.Create(netnsProject)
installPods(controller, &kube.PodInterface.Mock, &podStore.Mock, "testns", 3)
shutdown := make(chan struct{})
go controller.Run(shutdown)
time.Sleep(100 * time.Millisecond)
type shutdownMsg struct {
}
shutdown <- shutdownMsg{}
time.Sleep(100 * time.Millisecond)
serviceStore.On("List").Return([]interface{}{})
assert.True(t, checker.Check())
vmi := new(types.VirtualMachineInterface)
vmi.SetFQName("project", []string{"default-domain", "testns", "pod03"})
assert.NoError(t, client.Create(vmi))
assert.False(t, checker.Check())
}
示例3: TestConsistencyMissingInterface
func TestConsistencyMissingInterface(t *testing.T) {
client := createTestClient()
podStore := new(mocks.Store)
serviceStore := new(mocks.Store)
checker := NewConsistencyChecker(client, NewConfig(), podStore, serviceStore, nil)
kube := mocks.NewKubeClient()
controller := NewTestController(kube, client, nil, nil)
netnsProject := new(types.Project)
netnsProject.SetFQName("domain", []string{"default-domain", "testns"})
client.Create(netnsProject)
installPods(controller, &kube.PodInterface.Mock, &podStore.Mock, "testns", 3)
shutdown := make(chan struct{})
go controller.Run(shutdown)
time.Sleep(100 * time.Millisecond)
type shutdownMsg struct {
}
shutdown <- shutdownMsg{}
time.Sleep(100 * time.Millisecond)
serviceStore.On("List").Return([]interface{}{})
assert.True(t, checker.Check())
vmi, err := types.VirtualMachineInterfaceByName(client, "default-domain:testns:pod01")
assert.NoError(t, err)
refs, err := vmi.GetInstanceIpBackRefs()
for _, ref := range refs {
ip, err := types.InstanceIpByUuid(client, ref.Uuid)
assert.NoError(t, err)
ip.ClearVirtualMachineInterface()
assert.NoError(t, client.Update(ip))
}
assert.NoError(t, client.Delete(vmi))
assert.False(t, checker.Check())
}
示例4: TestConsistencyMissingVM
func TestConsistencyMissingVM(t *testing.T) {
client := createTestClient()
podStore := new(mocks.Store)
serviceStore := new(mocks.Store)
checker := NewConsistencyChecker(client, NewConfig(), podStore, serviceStore, nil, nil)
pod1 := &api.Pod{
ObjectMeta: api.ObjectMeta{
Name: "test-sv1",
Namespace: "testns",
UID: kubetypes.UID(uuid.New()),
},
}
pod2 := &api.Pod{
ObjectMeta: api.ObjectMeta{
Name: "test-sv2",
Namespace: "testns",
UID: kubetypes.UID(uuid.New()),
},
}
kube := mocks.NewKubeClient()
controller := NewTestController(kube, client, nil, nil)
netnsProject := new(types.Project)
netnsProject.SetFQName("domain", []string{"default-domain", "testns"})
client.Create(netnsProject)
kube.Pods("testns").(*mocks.KubePodInterface).On("Update", pod1).Return(pod1, nil)
kube.Pods("testns").(*mocks.KubePodInterface).On("Update", pod2).Return(pod2, nil)
podStore.On("ListKeys").Return([]string{"testns/test-sv1", "testns/test-sv2"})
podStore.On("GetByKey", "testns/test-sv1").Return(pod1, true, nil)
podStore.On("GetByKey", "testns/test-sv2").Return(pod2, true, nil)
serviceStore.On("List").Return([]interface{}{})
shutdown := make(chan struct{})
go controller.Run(shutdown)
controller.AddPod(pod1)
controller.AddPod(pod2)
time.Sleep(100 * time.Millisecond)
type shutdownMsg struct {
}
shutdown <- shutdownMsg{}
assert.True(t, checker.Check())
vmi, err := types.VirtualMachineInterfaceByName(client, "default-domain:testns:test-sv1")
assert.NoError(t, err)
if err == nil {
vmi.ClearVirtualMachine()
err = client.Update(vmi)
assert.NoError(t, err)
}
vm, err := types.VirtualMachineByName(client, "default-domain:testns:test-sv1")
assert.NoError(t, err)
if err == nil {
err = client.Delete(vm)
assert.NoError(t, err)
}
assert.False(t, checker.Check())
}
示例5: TestConsistencyConnectionsDelete
//.........这里部分代码省略.........
Labels: map[string]string{
config.NetworkTag: "svc-backend",
"app": "provider02",
},
},
}
// And the services
service1 := &api.Service{
ObjectMeta: api.ObjectMeta{
Name: "service1",
Namespace: "testns",
Labels: map[string]string{
config.NetworkTag: "tagA",
},
},
Spec: api.ServiceSpec{
Selector: map[string]string{
"app": "provider01",
},
ClusterIP: "10.254.42.42",
Type: api.ServiceTypeClusterIP,
},
}
service2 := &api.Service{
ObjectMeta: api.ObjectMeta{
Name: "service1",
Namespace: "testns",
Labels: map[string]string{
config.NetworkTag: "tagB",
},
},
Spec: api.ServiceSpec{
Selector: map[string]string{
"app": "provider02",
},
ClusterIP: "10.254.42.43",
Type: api.ServiceTypeClusterIP,
},
}
netnsProject := new(types.Project)
netnsProject.SetFQName("domain", []string{"default-domain", "testns"})
client.Create(netnsProject)
sysProject := new(types.Project)
sysProject.SetFQName("domain", []string{"default-domain", "kube-system"})
client.Create(sysProject)
keys := make([]string, 0)
addPod(pod1, kube.PodInterface, podStore, &keys)
addPod(pod2, kube.PodInterface, podStore, &keys)
addPod(pod3, kube.PodInterface, podStore, &keys)
addPod(pod4, kube.PodInterface, podStore, &keys)
podStore.On("ListKeys").Return(keys).Once()
serviceStore.On("List").Return([]interface{}{service1, service2})
s1Pods := makeListOptSelector(map[string]string{"app": "provider01"})
kube.PodInterface.On("List", s1Pods).Return(&api.PodList{Items: []api.Pod{*pod3}}, nil)
s2Pods := makeListOptSelector(map[string]string{"app": "provider02"})
kube.PodInterface.On("List", s2Pods).Return(&api.PodList{Items: []api.Pod{*pod4}}, nil)
kube.ServiceInterface.On("Update", service1).Return(service1, nil)
kube.ServiceInterface.On("Update", service2).Return(service2, nil)
shutdown := make(chan struct{})
go controller.Run(shutdown)
controller.AddPod(pod1)
controller.AddPod(pod2)
controller.AddPod(pod3)
controller.AddPod(pod4)
controller.AddService(service1)
controller.AddService(service2)
time.Sleep(100 * time.Millisecond)
assert.True(t, checker.Check())
controller.DeletePod(pod2)
time.Sleep(100 * time.Millisecond)
keys = append(keys[0:1], keys[2:]...)
podStore.On("ListKeys").Return(keys)
assert.False(t, checker.Check())
assert.False(t, checker.Check())
assert.True(t, checker.Check())
config.ClusterServices = []string{"kube-system/dns"}
assert.False(t, checker.Check())
assert.False(t, checker.Check())
assert.True(t, checker.Check())
type shutdownMsg struct {
}
shutdown <- shutdownMsg{}
}
示例6: TestConsistencyServiceIp
func TestConsistencyServiceIp(t *testing.T) {
client := createTestClient()
podStore := new(mocks.Store)
serviceStore := new(mocks.Store)
checker := NewConsistencyChecker(client, NewConfig(), podStore, serviceStore, nil)
kube := mocks.NewKubeClient()
controller := NewTestController(kube, client, nil, nil)
config := controller.config
netnsProject := new(types.Project)
netnsProject.SetFQName("domain", []string{"default-domain", "testns"})
client.Create(netnsProject)
installPods(controller, &kube.PodInterface.Mock, &podStore.Mock, "testns", 3)
service1 := &api.Service{
ObjectMeta: api.ObjectMeta{
Name: "s1",
Namespace: "testns",
Labels: map[string]string{
config.NetworkTag: "services",
},
},
Spec: api.ServiceSpec{
Selector: map[string]string{
"app": "pod01",
},
ClusterIP: "10.254.42.42",
Type: api.ServiceTypeLoadBalancer,
},
}
service2 := &api.Service{
ObjectMeta: api.ObjectMeta{
Name: "s2",
Namespace: "testns",
Labels: map[string]string{
config.NetworkTag: "services",
},
},
Spec: api.ServiceSpec{
Selector: map[string]string{
"app": "pod02",
},
ClusterIP: "10.254.42.43",
ExternalIPs: []string{"10.1.4.89"},
},
}
service3 := &api.Service{
ObjectMeta: api.ObjectMeta{
Name: "s3",
Namespace: "testns",
Labels: map[string]string{
config.NetworkTag: "services",
},
},
Spec: api.ServiceSpec{
Selector: map[string]string{
"app": "pod01",
},
ClusterIP: "10.254.42.44",
},
}
kube.ServiceInterface.On("Update", service1).Return(service1, nil)
shutdown := make(chan struct{})
go controller.Run(shutdown)
controller.AddService(service1)
controller.AddService(service2)
controller.AddService(service3)
serviceStore.On("List").Return([]interface{}{service1, service2, service3})
time.Sleep(100 * time.Millisecond)
type shutdownMsg struct {
}
shutdown <- shutdownMsg{}
time.Sleep(100 * time.Millisecond)
assert.True(t, checker.Check())
pool, err := types.FloatingIpPoolByName(client, "default-domain:testns:service-services:service-services")
assert.NoError(t, err)
vmi, err := types.VirtualMachineInterfaceByName(client, "default-domain:testns:pod01")
assert.NoError(t, err)
vip := new(types.FloatingIp)
fqn := make([]string, len(pool.GetFQName())+1)
copy(fqn, pool.GetFQName())
fqn[len(pool.GetFQName())] = "s4"
vip.SetFQName(vip.GetDefaultParentType(), fqn)
vip.AddVirtualMachineInterface(vmi)
assert.NoError(t, client.Create(vip))
assert.False(t, checker.Check())
assert.NoError(t, client.Delete(vip))
assert.True(t, checker.Check())
vip, err = types.FloatingIpByName(client, "default-domain:testns:service-services:service-services:s3")
assert.NoError(t, err)
//.........这里部分代码省略.........
示例7: TestServiceWithLoadBalancer
func TestServiceWithLoadBalancer(t *testing.T) {
kube := mocks.NewKubeClient()
client := new(contrail_mocks.ApiClient)
client.Init()
client.AddInterceptor("virtual-machine-interface", &VmiInterceptor{})
client.AddInterceptor("virtual-network", &NetworkInterceptor{})
client.AddInterceptor("instance-ip", &IpInterceptor{})
client.AddInterceptor("floating-ip", &FloatingIpInterceptor{})
controller := NewTestController(kube, client, nil, nil)
pod1 := &api.Pod{
ObjectMeta: api.ObjectMeta{
Name: "test-sv1",
Namespace: "testns",
UID: kubetypes.UID(uuid.New()),
Labels: map[string]string{
"name": "backend",
},
},
}
pod2 := &api.Pod{
ObjectMeta: api.ObjectMeta{
Name: "test-sv2",
Namespace: "testns",
UID: kubetypes.UID(uuid.New()),
Labels: map[string]string{
"name": "backend",
},
},
}
service := &api.Service{
ObjectMeta: api.ObjectMeta{
Name: "service",
Namespace: "testns",
Labels: map[string]string{
"name": "svc",
},
},
Spec: api.ServiceSpec{
Selector: map[string]string{
"name": "backend",
},
ClusterIP: "10.254.42.42",
Type: api.ServiceTypeLoadBalancer,
},
}
netnsProject := new(types.Project)
netnsProject.SetFQName("", []string{"default-domain", "testns"})
client.Create(netnsProject)
store := new(mocks.Store)
controller.SetServiceStore(store)
kube.PodInterface.On("Update", pod1).Return(pod1, nil)
kube.PodInterface.On("Update", pod2).Return(pod2, nil)
kube.PodInterface.On("List", mock.Anything, mock.Anything).Return(&api.PodList{Items: []api.Pod{*pod1}}, nil)
kube.ServiceInterface.On("Update", service).Return(service, nil)
store.On("List").Return([]interface{}{service})
shutdown := make(chan struct{})
go controller.Run(shutdown)
controller.AddPod(pod1)
controller.AddService(service)
time.Sleep(100 * time.Millisecond)
controller.AddPod(pod2)
time.Sleep(100 * time.Millisecond)
fqn := strings.Split(controller.config.PublicNetwork, ":")
fqn = append(fqn, fqn[len(fqn)-1])
fqn = append(fqn, service.Name)
fip, err := types.FloatingIpByName(client, strings.Join(fqn, ":"))
assert.NoError(t, err)
if err == nil {
refs, err := fip.GetVirtualMachineInterfaceRefs()
assert.NoError(t, err)
assert.Len(t, refs, 2)
}
controller.DeleteService(service)
time.Sleep(100 * time.Millisecond)
type shutdownMsg struct {
}
shutdown <- shutdownMsg{}
_, err = types.FloatingIpByName(client, strings.Join(fqn, ":"))
assert.Error(t, err)
}
示例8: TestServiceWithMultipleBackends
func TestServiceWithMultipleBackends(t *testing.T) {
kube := mocks.NewKubeClient()
client := new(contrail_mocks.ApiClient)
client.Init()
client.AddInterceptor("virtual-machine-interface", &VmiInterceptor{})
client.AddInterceptor("virtual-network", &NetworkInterceptor{})
client.AddInterceptor("instance-ip", &IpInterceptor{})
controller := NewTestController(kube, client, nil, nil)
pod1 := &api.Pod{
ObjectMeta: api.ObjectMeta{
Name: "test-sv1",
Namespace: "testns",
UID: kubetypes.UID(uuid.New()),
Labels: map[string]string{
"name": "backend",
},
},
}
pod2 := &api.Pod{
ObjectMeta: api.ObjectMeta{
Name: "test-sv2",
Namespace: "testns",
UID: kubetypes.UID(uuid.New()),
Labels: map[string]string{
"name": "backend",
},
},
}
service := &api.Service{
ObjectMeta: api.ObjectMeta{
Name: "service",
Namespace: "testns",
Labels: map[string]string{
"name": "svc",
},
},
Spec: api.ServiceSpec{
Selector: map[string]string{
"name": "backend",
},
ClusterIP: "10.254.42.42",
},
}
netnsProject := new(types.Project)
netnsProject.SetFQName("", []string{"default-domain", "testns"})
client.Create(netnsProject)
store := new(mocks.Store)
controller.SetServiceStore(store)
kube.PodInterface.On("Update", pod1).Return(pod1, nil)
kube.PodInterface.On("Update", pod2).Return(pod2, nil)
kube.PodInterface.On("List", mock.Anything, mock.Anything).Return(&api.PodList{Items: []api.Pod{*pod1}}, nil)
store.On("List").Return([]interface{}{service})
shutdown := make(chan struct{})
go controller.Run(shutdown)
controller.AddPod(pod1)
controller.AddService(service)
time.Sleep(100 * time.Millisecond)
controller.AddPod(pod2)
time.Sleep(100 * time.Millisecond)
fip, err := types.FloatingIpByName(client, "default-domain:testns:service-svc:service-svc:service")
assert.NoError(t, err)
if err == nil {
refs, err := fip.GetVirtualMachineInterfaceRefs()
assert.NoError(t, err)
assert.Len(t, refs, 2)
}
controller.DeletePod(pod1)
time.Sleep(100 * time.Millisecond)
fip, err = types.FloatingIpByName(client, "default-domain:testns:service-svc:service-svc:service")
assert.NoError(t, err)
if err == nil {
refs, err := fip.GetVirtualMachineInterfaceRefs()
assert.NoError(t, err)
assert.Len(t, refs, 1)
var uids []string
for _, ref := range refs {
uids = append(uids, ref.Uuid)
}
vmi, err := types.VirtualMachineInterfaceByName(client, "default-domain:testns:test-sv2")
assert.NoError(t, err)
if err == nil {
assert.Contains(t, uids, vmi.GetUuid())
}
}
controller.AddPod(pod1)
//.........这里部分代码省略.........