Skip to content

Commit

Permalink
test
Browse files Browse the repository at this point in the history
rename
  • Loading branch information
John-Lin committed Jul 12, 2018
1 parent 98be3df commit 5544650
Show file tree
Hide file tree
Showing 10 changed files with 187 additions and 137 deletions.
89 changes: 47 additions & 42 deletions src/networkcontroller/network_controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -100,88 +100,93 @@ func (suite *NetworkControllerTestSuite) TestNew() {
}

func (suite *NetworkControllerTestSuite) TestCreateNetwork() {
//Parameters
eth1 := entity.PhysicalPort{
Name: suite.ifName,
MTU: 1500,
VlanTags: []int32{2043, 2143, 2243},
}

tName := namesgenerator.GetRandomName(0)
network := entity.Network{
Name: tName,
OVS: entity.OVSNetwork{
BridgeName: tName,
PhysicalPorts: []entity.PhysicalPort{eth1},
Type: entity.OVSKernelspaceNetworkType,
Name: tName,
VLANTags: []int32{0, 2048, 4095},
BridgeName: tName,
Nodes: []entity.Node{
entity.Node{
Name: suite.nodeName,
PhyInterfaces: []entity.PhyInterface{
entity.PhyInterface{
Name: suite.ifName,
PCIID: "",
},
},
},
},
Type: "ovs",
NodeName: suite.nodeName,
}

nodeIP, err := suite.kubectl.GetNodeExternalIP(suite.nodeName)
suite.NoError(err)
nc, err := New(net.JoinHostPort(nodeIP, DEFAULT_CONTROLLER_PORT))
suite.NoError(err)
err = nc.CreateOVSNetwork(tName, network.OVSUserspace.PhysicalPorts)
err = nc.CreateOVSNetwork("system", tName, network.Nodes[0].PhyInterfaces, network.VLANTags)
suite.NoError(err)

//TODO we need support the list function to check the ovs is existed
defer exec.Command("ovs-vsctl", "del-br", tName).Run()
}

func (suite *NetworkControllerTestSuite) TestCreateOVSUserpsaceNetwork() {
eth1 := entity.PhysicalPort{
Name: suite.ifName,
MTU: 1500,
VlanTags: []int32{2043, 2143, 2243},
}

tName := namesgenerator.GetRandomName(0)
network := entity.Network{
Name: tName,
OVSUserspace: entity.OVSUserspaceNetwork{
BridgeName: tName,
PhysicalPorts: []entity.PhysicalPort{eth1},
Type: entity.OVSUserspaceNetworkType,
IsDPDKPort: false,
Name: tName,
VLANTags: []int32{0, 2048, 4095},
BridgeName: tName,
Nodes: []entity.Node{
entity.Node{
Name: suite.nodeName,
PhyInterfaces: []entity.PhyInterface{
entity.PhyInterface{
Name: suite.ifName,
PCIID: "",
},
},
},
},
Type: "netdev",
NodeName: suite.nodeName,
}

nodeIP, err := suite.kubectl.GetNodeExternalIP(suite.nodeName)
suite.NoError(err)
nc, err := New(net.JoinHostPort(nodeIP, DEFAULT_CONTROLLER_PORT))
suite.NoError(err)
err = nc.CreateOVSUserpsaceNetwork(tName, network.OVS.PhysicalPorts)
err = nc.CreateOVSNetwork("netdev", tName, network.Nodes[0].PhyInterfaces, network.VLANTags)
suite.NoError(err)

//TODO we need support the list function to check the ovs is existed
defer exec.Command("ovs-vsctl", "del-br", tName).Run()
}

func (suite *NetworkControllerTestSuite) TestDeleteNetwork() {
//Parameters
eth1 := entity.PhysicalPort{
Name: suite.ifName,
MTU: 1500,
VlanTags: []int32{2043, 2143, 2243},
}

tName := namesgenerator.GetRandomName(0)
network := entity.Network{
Name: tName,
OVS: entity.OVSNetwork{
BridgeName: tName,
PhysicalPorts: []entity.PhysicalPort{eth1},
Type: entity.OVSKernelspaceNetworkType,
Name: tName,
VLANTags: []int32{0, 2048, 4095},
BridgeName: tName,
Nodes: []entity.Node{
entity.Node{
Name: suite.nodeName,
PhyInterfaces: []entity.PhyInterface{
entity.PhyInterface{
Name: suite.ifName,
PCIID: "",
},
},
},
},
Type: "ovs",
NodeName: suite.nodeName,
}

nodeIP, err := suite.kubectl.GetNodeExternalIP(suite.nodeName)
suite.NoError(err)
nc, err := New(net.JoinHostPort(nodeIP, DEFAULT_CONTROLLER_PORT))
suite.NoError(err)
err = nc.CreateOVSNetwork(tName, network.OVS.PhysicalPorts)
err = nc.CreateOVSNetwork("system", tName, network.Nodes[0].PhyInterfaces, network.VLANTags)
suite.NoError(err)

err = nc.DeleteOVSNetwork(tName)
Expand All @@ -193,6 +198,6 @@ func (suite *NetworkControllerTestSuite) TestCreateNetworkWithInvalidAddress() {
suite.NoError(err)

tName := namesgenerator.GetRandomName(0)
err = nc.CreateOVSNetwork(tName, []entity.PhysicalPort{})
err = nc.CreateOVSNetwork("system", tName, []entity.PhyInterface{}, []int32{})
suite.Error(err)
}
8 changes: 4 additions & 4 deletions src/networkprovider/fake.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@ import (
"github.com/linkernetworks/vortex/src/serviceprovider"
)

type fakenetworkprovider struct {
type fakeNetworkProvider struct {
networkName string
bridgeName string
vlanTags []int32
nodes []entity.Node
isDPDKPort bool
}

func (fnp fakenetworkprovider) ValidateBeforeCreating(sp *serviceprovider.Container) error {
func (fnp fakeNetworkProvider) ValidateBeforeCreating(sp *serviceprovider.Container) error {
for _, node := range fnp.nodes {
if node.FakeParameter == "" {
return fmt.Errorf("Fail to validate but don't worry, I'm fake network")
Expand All @@ -24,7 +24,7 @@ func (fnp fakenetworkprovider) ValidateBeforeCreating(sp *serviceprovider.Contai
return nil
}

func (fnp fakenetworkprovider) CreateNetwork(sp *serviceprovider.Container) error {
func (fnp fakeNetworkProvider) CreateNetwork(sp *serviceprovider.Container) error {
for _, node := range fnp.nodes {
if node.ShouldFail {
return fmt.Errorf("Fail to validate but don't worry, I'm fake network")
Expand All @@ -33,7 +33,7 @@ func (fnp fakenetworkprovider) CreateNetwork(sp *serviceprovider.Container) erro
return nil
}

func (fnp fakenetworkprovider) DeleteNetwork(sp *serviceprovider.Container) error {
func (fnp fakeNetworkProvider) DeleteNetwork(sp *serviceprovider.Container) error {
for _, node := range fnp.nodes {
if node.ShouldFail {
return fmt.Errorf("Fail to delete network but don't worry, I'm fake network")
Expand Down
6 changes: 3 additions & 3 deletions src/networkprovider/network.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,23 +16,23 @@ type NetworkProvider interface {
func GetNetworkProvider(network *entity.Network) (NetworkProvider, error) {
switch network.Type {
case entity.OVSKernelspaceNetworkType:
return kernelspacenetworkprovider{
return kernelspaceNetworkProvider{
network.Name,
network.BridgeName,
network.VLANTags,
network.Nodes,
network.IsDPDKPort,
}, nil
case entity.OVSUserspaceNetworkType:
return userspacenetworkprovider{
return userspaceNetworkProvider{
network.Name,
network.BridgeName,
network.VLANTags,
network.Nodes,
network.IsDPDKPort,
}, nil
case entity.FakeNetworkType:
return fakenetworkprovider{
return fakeNetworkProvider{
network.Name,
network.BridgeName,
network.VLANTags,
Expand Down
6 changes: 3 additions & 3 deletions src/networkprovider/network_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ func TestGetNetworkProvider(t *testing.T) {
netType entity.NetworkType
netProviderType interface{}
}{
{"system", entity.OVSKernelspaceNetworkType, reflect.TypeOf(kernelspacenetworkprovider{})},
{"netdev", entity.OVSUserspaceNetworkType, reflect.TypeOf(userspacenetworkprovider{})},
{"fake", entity.FakeNetworkType, reflect.TypeOf(fakenetworkprovider{})},
{"system", entity.OVSKernelspaceNetworkType, reflect.TypeOf(kernelspaceNetworkProvider{})},
{"netdev", entity.OVSUserspaceNetworkType, reflect.TypeOf(userspaceNetworkProvider{})},
{"fake", entity.FakeNetworkType, reflect.TypeOf(fakeNetworkProvider{})},
}

for _, tc := range testCases {
Expand Down
10 changes: 5 additions & 5 deletions src/networkprovider/ovs_netdev.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@ import (
"gopkg.in/mgo.v2/bson"
)

type userspacenetworkprovider struct {
type userspaceNetworkProvider struct {
networkName string
bridgeName string
vlanTags []int32
nodes []entity.Node
isDPDKPort bool
}

func (unp userspacenetworkprovider) ValidateBeforeCreating(sp *serviceprovider.Container) error {
func (unp userspaceNetworkProvider) ValidateBeforeCreating(sp *serviceprovider.Container) error {
session := sp.Mongo.NewSession()
defer session.Close()

Expand All @@ -30,7 +30,7 @@ func (unp userspacenetworkprovider) ValidateBeforeCreating(sp *serviceprovider.C
}

q := bson.M{
"networks.name": unp.networkName,
"name": unp.networkName,
}
n, err := session.Count(entity.NetworkCollectionName, q)
if n >= 1 {
Expand All @@ -41,7 +41,7 @@ func (unp userspacenetworkprovider) ValidateBeforeCreating(sp *serviceprovider.C
return nil
}

func (unp userspacenetworkprovider) CreateNetwork(sp *serviceprovider.Container) error {
func (unp userspaceNetworkProvider) CreateNetwork(sp *serviceprovider.Container) error {
for _, node := range unp.nodes {
nodeIP, err := sp.KubeCtl.GetNodeExternalIP(node.Name)
if err != nil {
Expand Down Expand Up @@ -70,7 +70,7 @@ func (unp userspacenetworkprovider) CreateNetwork(sp *serviceprovider.Container)
return nil
}

func (unp userspacenetworkprovider) DeleteNetwork(sp *serviceprovider.Container) error {
func (unp userspaceNetworkProvider) DeleteNetwork(sp *serviceprovider.Container) error {
for _, node := range unp.nodes {
nodeIP, err := sp.KubeCtl.GetNodeExternalIP(node.Name)
if err != nil {
Expand Down
36 changes: 22 additions & 14 deletions src/networkprovider/ovs_netdev_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ func (suite *OVSNetdevNetworkTestSuite) TestCreateNetwork() {
suite.T().Run(tc.caseName, func(t *testing.T) {
np, err := GetNetworkProvider(tc.network)
suite.NoError(err)
np = np.(userspacenetworkprovider)
np = np.(userspaceNetworkProvider)
err = np.CreateNetwork(suite.sp)
suite.NoError(err)
defer exec.Command("ovs-vsctl", "del-br", tc.network.BridgeName).Run()
Expand All @@ -189,11 +189,15 @@ func (suite *OVSNetdevNetworkTestSuite) TestCreateNetworkFail() {
IsDPDKPort: false,
Name: "none-exist-network",
BridgeName: "none",
Nodes: []entity.Node{},
Nodes: []entity.Node{
entity.Node{
Name: namesgenerator.GetRandomName(0),
},
},
}
np, err := GetNetworkProvider(&network)
suite.NoError(err)
np = np.(userspacenetworkprovider)
np = np.(userspaceNetworkProvider)
err = np.CreateNetwork(suite.sp)
suite.Error(err)
}
Expand All @@ -202,7 +206,7 @@ func (suite *OVSNetdevNetworkTestSuite) TestCreateNetworkFail() {
func (suite *OVSNetdevNetworkTestSuite) TestValidateBeforeCreating() {
tName := namesgenerator.GetRandomName(0)
// Valid VLAN number
ValidVLANnetwork := entity.Network{
validVLANnetwork := entity.Network{
Type: entity.OVSUserspaceNetworkType,
IsDPDKPort: false,
Name: tName,
Expand All @@ -225,7 +229,7 @@ func (suite *OVSNetdevNetworkTestSuite) TestValidateBeforeCreating() {
caseName string
network *entity.Network
}{
{"validVLAN", &ValidVLANnetwork},
{"validVLAN", &validVLANnetwork},
{"singelNetwork", &suite.standaloneNetwork},
{"clusterNetwork", &suite.clusterwiseNetwork},
}
Expand All @@ -235,7 +239,7 @@ func (suite *OVSNetdevNetworkTestSuite) TestValidateBeforeCreating() {
//Parameters
np, err := GetNetworkProvider(tc.network)
suite.NoError(err)
np = np.(userspacenetworkprovider)
np = np.(userspaceNetworkProvider)

err = np.ValidateBeforeCreating(suite.sp)
suite.NoError(err)
Expand All @@ -247,7 +251,7 @@ func (suite *OVSNetdevNetworkTestSuite) TestValidateBeforeCreating() {
func (suite *OVSNetdevNetworkTestSuite) TestValidateBeforeCreatingFail() {
tName := namesgenerator.GetRandomName(0)
// Invalid VLAN number
InvalidVLANnetwork := entity.Network{
invalidVLANnetwork := entity.Network{
Type: entity.OVSUserspaceNetworkType,
IsDPDKPort: false,
Name: tName,
Expand All @@ -273,17 +277,17 @@ func (suite *OVSNetdevNetworkTestSuite) TestValidateBeforeCreatingFail() {
network *entity.Network
mongo bool
}{
{"invalidVLAN", &InvalidVLANnetwork, false},
{"singelNetwork", &suite.standaloneNetwork, true},
{"clusterNetwork", &suite.clusterwiseNetwork, true},
{"invalidVLAN", &invalidVLANnetwork, false},
{"standaloneNetwork", &suite.standaloneNetwork, true},
{"clusterwiseNetwork", &suite.clusterwiseNetwork, true},
}

for _, tc := range testCases {
suite.T().Run(tc.caseName, func(t *testing.T) {
//Parameters
np, err := GetNetworkProvider(tc.network)
suite.NoError(err)
np = np.(userspacenetworkprovider)
np = np.(userspaceNetworkProvider)

if tc.mongo {
//create a mongo-document to test duplicated name
Expand Down Expand Up @@ -313,7 +317,7 @@ func (suite *OVSNetdevNetworkTestSuite) TestDeleteNetwork() {
//Parameters
np, err := GetNetworkProvider(tc.network)
suite.NoError(err)
np = np.(userspacenetworkprovider)
np = np.(userspaceNetworkProvider)
err = np.CreateNetwork(suite.sp)
suite.NoError(err)

Expand All @@ -333,11 +337,15 @@ func (suite *OVSNetdevNetworkTestSuite) TestDeleteNetworkFail() {
IsDPDKPort: false,
Name: "none-exist-network",
BridgeName: "none",
Nodes: []entity.Node{},
Nodes: []entity.Node{
entity.Node{
Name: namesgenerator.GetRandomName(0),
},
},
}
np, err := GetNetworkProvider(&network)
suite.NoError(err)
np = np.(userspacenetworkprovider)
np = np.(userspaceNetworkProvider)
err = np.DeleteNetwork(suite.sp)
suite.Error(err)
}
Loading

0 comments on commit 5544650

Please sign in to comment.