Skip to content

Commit

Permalink
Removed populating VNID map during SDN master startup
Browse files Browse the repository at this point in the history
  • Loading branch information
Ravi Sankar Penta committed Mar 21, 2018
1 parent 816df8c commit 9be3468
Showing 1 changed file with 16 additions and 27 deletions.
43 changes: 16 additions & 27 deletions pkg/network/master/vnids.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import (
"github.com/golang/glog"

metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/labels"
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
"k8s.io/apimachinery/pkg/util/sets"
"k8s.io/apimachinery/pkg/watch"
Expand All @@ -16,7 +15,6 @@ import (
"github.com/openshift/origin/pkg/network"
networkapi "github.com/openshift/origin/pkg/network/apis/network"
"github.com/openshift/origin/pkg/network/common"
networkinformers "github.com/openshift/origin/pkg/network/generated/informers/internalversion/network/internalversion"
networkclient "github.com/openshift/origin/pkg/network/generated/internalclientset"
pnetid "github.com/openshift/origin/pkg/network/master/netid"
)
Expand Down Expand Up @@ -77,26 +75,17 @@ func (vmap *masterVNIDMap) isAdminNamespace(nsName string) bool {
return false
}

func (vmap *masterVNIDMap) populateVNIDs(netNamespaceInformer networkinformers.NetNamespaceInformer) error {
netnsList, err := netNamespaceInformer.Lister().List(labels.Everything())
if err != nil {
return err
func (vmap *masterVNIDMap) markAllocatedNetID(netid uint32) error {
// Skip GlobalVNID, not part of netID allocation range
if netid == network.GlobalVNID {
return nil
}

for _, netns := range netnsList {
vmap.setVNID(netns.NetName, netns.NetID)

// Skip GlobalVNID, not part of netID allocation range
if netns.NetID == network.GlobalVNID {
continue
}

switch err := vmap.netIDManager.Allocate(netns.NetID); err {
case nil: // Expected normal case
case pnetid.ErrAllocated: // Expected when project networks are joined
default:
return fmt.Errorf("unable to allocate netid %d: %v", netns.NetID, err)
}
switch err := vmap.netIDManager.Allocate(netid); err {
case nil: // Expected normal case
case pnetid.ErrAllocated: // Expected when project networks are joined
default:
return fmt.Errorf("unable to allocate netid %d: %v", netid, err)
}
return nil
}
Expand All @@ -106,6 +95,12 @@ func (vmap *masterVNIDMap) allocateNetID(nsName string) (uint32, bool, error) {
exists := false
if netid, found := vmap.getVNID(nsName); found {
exists = true

if err := vmap.markAllocatedNetID(netid); err != nil {
return netid, exists, err
}
vmap.setVNID(nsName, netid)

return netid, exists, nil
}

Expand Down Expand Up @@ -279,11 +274,6 @@ func (vmap *masterVNIDMap) updateVNID(networkClient networkclient.Interface, ori
//--------------------- Master methods ----------------------

func (master *OsdnMaster) VnidStartMaster() error {
err := master.vnids.populateVNIDs(master.netNamespaceInformer)
if err != nil {
return err
}

master.watchNamespaces()
master.watchNetNamespaces()
return nil
Expand Down Expand Up @@ -319,8 +309,7 @@ func (master *OsdnMaster) handleAddOrUpdateNetNamespace(obj, _ interface{}, even
netns := obj.(*networkapi.NetNamespace)
glog.V(5).Infof("Watch %s event for NetNamespace %q", eventType, netns.Name)

err := master.vnids.updateVNID(master.networkClient, netns)
if err != nil {
if err := master.vnids.updateVNID(master.networkClient, netns); err != nil {
utilruntime.HandleError(fmt.Errorf("Error updating netid: %v", err))
}
}

0 comments on commit 9be3468

Please sign in to comment.