Merge pull request #4085 from ddysher/fix-node-name

Lower case node names before registering
pull/6/head
Brian Grant 2015-02-03 17:10:50 -08:00
commit be310ac8c3
2 changed files with 26 additions and 0 deletions

View File

@ -20,6 +20,7 @@ import (
"errors"
"net"
"reflect"
"strings"
"sync"
"time"
@ -112,6 +113,7 @@ func (s *NodeController) Run(period time.Duration, retryCount int) {
// RegisterNodes registers the given list of nodes, it keeps retrying for `retryCount` times.
func (s *NodeController) RegisterNodes(nodes *api.NodeList, retryCount int, retryInterval time.Duration) error {
registered := util.NewStringSet()
nodes = s.canonicalizeName(nodes)
for i := 0; i < retryCount; i++ {
for _, node := range nodes.Items {
if registered.Has(node.Name) {
@ -330,3 +332,11 @@ func (s *NodeController) CloudNodes() (*api.NodeList, error) {
func (s *NodeController) isRunningCloudProvider() bool {
return s.cloud != nil && len(s.matchRE) > 0
}
// canonicalizeName takes a node list and lowercases all nodes' name.
func (s *NodeController) canonicalizeName(nodes *api.NodeList) *api.NodeList {
for i := range nodes.Items {
nodes.Items[i].Name = strings.ToLower(nodes.Items[i].Name)
}
return nodes
}

View File

@ -134,6 +134,22 @@ func TestRegisterNodes(t *testing.T) {
expectedCreateCount: 2,
expectedFail: false,
},
{
// Canonicalize node names.
machines: []string{"NODE0", "node1"},
fakeNodeHandler: &FakeNodeHandler{
CreateHook: func(fake *FakeNodeHandler, node *api.Node) bool {
if node.Name == "NODE0" {
return false
}
return true
},
},
retryCount: 1,
expectedRequestCount: 2,
expectedCreateCount: 2,
expectedFail: false,
},
{
// No machine to register.
machines: []string{},