From 8c160f50a86485b8aa54feafca489573eea2f08e Mon Sep 17 00:00:00 2001 From: Madhu Venugopal Date: Fri, 6 Feb 2015 11:04:59 -0800 Subject: [PATCH] Fixing a few bugs in Network mgmt and improving test coverage Signed-off-by: Madhu Venugopal --- daemon/network.go | 14 +++++++------- daemon/network_test.go | 26 +++++++++++++++++--------- 2 files changed, 24 insertions(+), 16 deletions(-) diff --git a/daemon/network.go b/daemon/network.go index 707af9b..577cd33 100644 --- a/daemon/network.go +++ b/daemon/network.go @@ -26,8 +26,8 @@ type Network struct { func GetNetworks() ([]Network, error) { netByteArray, _, ok := ecc.GetAll(networkStore) + networks := make([]Network, 0) if ok { - var networks []Network for _, byteArray := range netByteArray { network := Network{} err := json.Unmarshal(byteArray, &network) @@ -36,9 +36,8 @@ func GetNetworks() ([]Network, error) { } networks = append(networks, network) } - return networks, nil } - return nil, errors.New("Network unavailable") + return networks, nil } func GetNetwork(id string) (*Network, error) { @@ -130,11 +129,12 @@ func DeleteNetwork(id string) error { return err } eccerror := ecc.Delete(networkStore, id) - if eccerror == ecc.OK { - releaseVlan(network.Vlan) - return nil + if eccerror != ecc.OK { + return errors.New("Error deleting network") } - return errors.New("Error deleting network") + releaseVlan(network.Vlan) + deletePort(ovs, defaultBridgeName, id) + return nil } func CreateDefaultNetwork() (*Network, error) { diff --git a/daemon/network_test.go b/daemon/network_test.go index b94cba5..4fba53a 100644 --- a/daemon/network_test.go +++ b/daemon/network_test.go @@ -2,12 +2,11 @@ package daemon import ( "fmt" - "log" "net" "os" "testing" - "github.com/socketplane/socketplane/datastore" + log "github.com/socketplane/socketplane/Godeps/_workspace/src/github.com/Sirupsen/logrus" ) var subnetArray []*net.IPNet @@ -18,10 +17,6 @@ func TestInit(t *testing.T) { log.Printf(msg) t.Skip(msg) } - err := datastore.Init("eth0", true) - if err != nil { - t.Error("Error starting Consul ", err) - } _, ipNet1, _ := net.ParseCIDR("192.168.1.0/24") _, ipNet2, _ := net.ParseCIDR("192.168.2.0/24") _, ipNet3, _ := net.ParseCIDR("192.168.3.0/24") @@ -31,6 +26,13 @@ func TestInit(t *testing.T) { subnetArray = []*net.IPNet{ipNet1, ipNet2, ipNet3, ipNet4, ipNet5} } +func TestGetEmptyNetworks(t *testing.T) { + networks, _ := GetNetworks() + if networks == nil { + t.Error("GetNetworks must return an empty array when networks are not created ") + } +} + func TestNetworkCreate(t *testing.T) { if os.Getuid() != 0 { msg := "Skipped test because it requires root privileges." @@ -46,13 +48,20 @@ func TestNetworkCreate(t *testing.T) { } } +func TestGetNetworks(t *testing.T) { + networks, _ := GetNetworks() + if networks == nil || len(networks) < len(subnetArray) { + t.Error("GetNetworks must return an empty array when networks are not created ") + } +} + func TestGetNetwork(t *testing.T) { if os.Getuid() != 0 { msg := "Skipped test because it requires root privileges." log.Printf(msg) t.Skip(msg) } - for i := 0; i < 5; i++ { + for i := 0; i < len(subnetArray); i++ { network, _ := GetNetwork(fmt.Sprintf("Network-%d", i+1)) if network == nil { t.Error("Error GetNetwork") @@ -69,11 +78,10 @@ func TestCleanup(t *testing.T) { log.Printf(msg) t.Skip(msg) } - for i := 0; i < 5; i++ { + for i := 0; i < len(subnetArray); i++ { err := DeleteNetwork(fmt.Sprintf("Network-%d", i+1)) if err != nil { t.Error("Error Deleting Network", err) } } - datastore.Leave() }