Skip to content

Commit c143f4d

Browse files
committed
adding system test
1 parent c4b45c0 commit c143f4d

File tree

2 files changed

+111
-8
lines changed

2 files changed

+111
-8
lines changed

Makefile

+8-8
Original file line numberDiff line numberDiff line change
@@ -62,22 +62,22 @@ start: update
6262

6363
#kubernetes demo targets
6464
k8s-cluster:
65-
cd demo/k8s/ && ./setup_cluster.sh
65+
cd vagrant/k8s/ && ./setup_cluster.sh
6666
k8s-demo:
67-
cd demo/k8s/ && ./copy_demo.sh
67+
cd vagrant/k8s/ && ./copy_demo.sh
6868
k8s-demo-start:
69-
cd demo/k8s/ && ./restart_cluster.sh && vagrant ssh k8master
69+
cd vagrant/k8s/ && ./restart_cluster.sh && vagrant ssh k8master
7070
k8s-destroy:
71-
cd demo/k8s/ && vagrant destroy -f
71+
cd vagrant/k8s/ && vagrant destroy -f
7272

7373
# Mesos demo targets
7474
mesos-docker-demo:
75-
cd demo/mesos-docker && vagrant up
76-
cd demo/mesos-docker && vagrant ssh node1 -c 'sudo -i bash -lc "source /etc/profile.d/envvar.sh && cd /opt/gopath/src/github.com/contiv/netplugin && make run-build"'
77-
cd demo/mesos-docker && vagrant ssh node1 -c 'sudo -i bash -lc "source /etc/profile.d/envvar.sh && cd /opt/gopath/src/github.com/contiv/netplugin && ./scripts/python/startPlugin.py -nodes 192.168.33.10,192.168.33.11"'
75+
cd vagrant/mesos-docker && vagrant up
76+
cd vagrant/mesos-docker && vagrant ssh node1 -c 'sudo -i bash -lc "source /etc/profile.d/envvar.sh && cd /opt/gopath/src/github.com/contiv/netplugin && make run-build"'
77+
cd vagrant/mesos-docker && vagrant ssh node1 -c 'sudo -i bash -lc "source /etc/profile.d/envvar.sh && cd /opt/gopath/src/github.com/contiv/netplugin && ./scripts/python/startPlugin.py -nodes 192.168.33.10,192.168.33.11"'
7878

7979
mesos-docker-destroy:
80-
cd demo/mesos-docker && vagrant destroy -f
80+
cd vagrant/mesos-docker && vagrant destroy -f
8181

8282

8383
demo-centos:

systemtests/network_test.go

+103
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import (
66
"github.com/Sirupsen/logrus"
77
"github.com/contiv/contivmodel/client"
88
. "gopkg.in/check.v1"
9+
"strconv"
10+
"strings"
911
"sync"
1012
"time"
1113
)
@@ -183,3 +185,104 @@ func (s *systemtestSuite) testNetworkAddDeleteTenant(c *C, encap string) {
183185
}
184186
}
185187
}
188+
189+
/*
190+
func (s *systemtestSuite) TestNetworkAddDeleteMultiTenantVXLAN(c *C) {
191+
s.testNetworkAddDeleteMultiTenant(c, "vxlan")
192+
}
193+
194+
func (s *systemtestSuite) TestNetworkAddDeleteMultiTenantVLAN(c *C) {
195+
s.testNetworkAddDeleteMultiTenant(c, "vlan")
196+
}
197+
198+
func (s *systemtestSuite) testNetworkAddDeleteMultiTenant(c *C, encap string) {
199+
mutex := sync.Mutex{}
200+
tenantPort := map[string]int{}
201+
202+
if encap == "vlan" && s.fwdMode == "routing" {
203+
204+
s.SetupBgp(c, false)
205+
s.CheckBgpConnection(c)
206+
}
207+
208+
for i := 0; i < s.iterations; i++ {
209+
var (
210+
tenantNames = map[string][]string{}
211+
netNames = []string{}
212+
containers = map[string][]*container{}
213+
pktTag = 0
214+
)
215+
216+
numContainer := s.containers
217+
if numContainer < 4 {
218+
numContainer = 4
219+
}
220+
221+
for tenantNum := 0; tenantNum < (s.containers / 2); tenantNum++ {
222+
tenantName := fmt.Sprintf("tenant%d", tenantNum)
223+
tenantPort[tenantName], _ = strconv.Atoi(fmt.Sprintf("800%d", tenantNum))
224+
c.Assert(s.cli.TenantPost(&client.Tenant{TenantName: tenantName}), IsNil)
225+
tenantNames[tenantName] = []string{}
226+
227+
for networkNum := 0; networkNum < numContainer/len(s.nodes); networkNum++ {
228+
network := &client.Network{
229+
TenantName: tenantName,
230+
NetworkName: fmt.Sprintf("net%d-%d", networkNum, i),
231+
Subnet: fmt.Sprintf("10.1.%d.0/24", networkNum),
232+
Gateway: fmt.Sprintf("10.1.%d.254", networkNum),
233+
PktTag: pktTag + 1000,
234+
Encap: encap,
235+
}
236+
237+
logrus.Infof("Creating network %s on tenant %s", network.NetworkName, network.TenantName)
238+
239+
c.Assert(s.cli.NetworkPost(network), IsNil)
240+
netNames = append(netNames, network.NetworkName)
241+
tenantNames[tenantName] = append(tenantNames[tenantName], network.NetworkName)
242+
pktTag++
243+
}
244+
}
245+
246+
for tenant, networks := range tenantNames {
247+
endChan := make(chan error)
248+
for _, network := range networks {
249+
250+
go func(network, tenant string, containers map[string][]*container) {
251+
var err error
252+
mutex.Lock()
253+
containers[tenant+":"+network], err = s.runContainers(numContainer, false, fmt.Sprintf("%s/%s", network, tenant), nil)
254+
mutex.Unlock()
255+
endChan <- err
256+
}(network, tenant, containers)
257+
}
258+
for i := 0; i < len(networks); i++ {
259+
c.Assert(<-endChan, IsNil)
260+
}
261+
}
262+
263+
for networkTenant, containerList := range containers {
264+
tenant := strings.Split(networkTenant, ":")[0]
265+
c.Assert(s.startListeners(containerList, []int{tenantPort[tenant]}), IsNil)
266+
c.Assert(s.checkConnections(containerList, tenantPort[tenant]), IsNil)
267+
}
268+
if s.fwdMode != "routing" && encap != "vlan" {
269+
for networkTenant, containerList := range containers {
270+
tenant := strings.Split(networkTenant, ":")[0]
271+
for networkTenant, _ := range containers {
272+
diffTenant := strings.Split(networkTenant, ":")[0]
273+
if tenant != diffTenant {
274+
c.Assert(s.checkNoConnections(containerList, tenantPort[tenant]), IsNil)
275+
}
276+
}
277+
}
278+
}
279+
for tenant, networks := range tenantNames {
280+
for _, network := range networks {
281+
c.Assert(s.removeContainers(containers[tenant+":"+network]), IsNil)
282+
c.Assert(s.cli.NetworkDelete(tenant, network), IsNil)
283+
}
284+
c.Assert(s.cli.TenantDelete(tenant), IsNil)
285+
}
286+
287+
}
288+
}*/

0 commit comments

Comments
 (0)