Skip to content

Commit

Permalink
Merge pull request openshift#141 from pravisankar/fix-admin-namespaces
Browse files Browse the repository at this point in the history
Revoke VNID for admin namespaces
  • Loading branch information
Ravi Sankar Penta committed Aug 28, 2015
2 parents f59603f + 40e1516 commit 9532391
Showing 1 changed file with 26 additions and 13 deletions.
39 changes: 26 additions & 13 deletions ovssubnet/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,13 @@ func (oc *OvsController) StartMaster(sync bool, containerNetwork string, contain
for _, nsName := range existingNamespaces {
// Skip admin namespaces, they will have VNID: 0
if oc.isAdminNamespace(nsName) {
// Revoke VNID if already exists
if _, ok := oc.VNIDMap[nsName]; ok {
err := oc.revokeVNID(nsName)
if err != nil {
return err
}
}
continue
}
// Skip if VNID already exists for the namespace
Expand Down Expand Up @@ -199,6 +206,23 @@ func (oc *OvsController) assignVNID(namespaceName string) error {
return nil
}

func (oc *OvsController) revokeVNID(namespaceName string) error {
err := oc.subnetRegistry.DeleteNetNamespace(namespaceName)
if err != nil {
return err
}
netid, ok := oc.VNIDMap[namespaceName]
if !ok {
return fmt.Errorf("Error while fetching Net ID for namespace: %s", namespaceName)
}
err = oc.netIDManager.ReleaseNetID(netid)
if err != nil {
return fmt.Errorf("Error while releasing Net ID: %v", err)
}
delete(oc.VNIDMap, namespaceName)
return nil
}

func (oc *OvsController) watchNetworks() {
nsevent := make(chan *api.NamespaceEvent)
stop := make(chan bool)
Expand All @@ -214,22 +238,11 @@ func (oc *OvsController) watchNetworks() {
continue
}
case api.Deleted:
err := oc.subnetRegistry.DeleteNetNamespace(ev.Name)
if err != nil {
log.Error("Error while deleting Net ID: %v", err)
continue
}
netid, ok := oc.VNIDMap[ev.Name]
if !ok {
log.Error("Error while fetching Net ID for namespace: %s", ev.Name)
continue
}
err = oc.netIDManager.ReleaseNetID(netid)
err := oc.revokeVNID(ev.Name)
if err != nil {
log.Error("Error while releasing Net ID: %v", err)
log.Error("Error revoking Net ID: %v", err)
continue
}
delete(oc.VNIDMap, ev.Name)
}
case <-oc.sig:
log.Error("Signal received. Stopping watching of nodes.")
Expand Down

0 comments on commit 9532391

Please sign in to comment.