فهرست منبع

Merge pull request #2473 from dotcloud/remove-panic-from-name

Assign id as name when all else fails
Victor Vieux 11 سال پیش
والد
کامیت
429c3108da
2فایلهای تغییر یافته به همراه10 افزوده شده و 8 حذف شده
  1. 8 2
      runtime.go
  2. 2 6
      utils.go

+ 8 - 2
runtime.go

@@ -265,7 +265,10 @@ func (runtime *Runtime) restore() error {
 	// Any containers that are left over do not exist in the graph
 	// Any containers that are left over do not exist in the graph
 	for _, container := range containers {
 	for _, container := range containers {
 		// Try to set the default name for a container if it exists prior to links
 		// Try to set the default name for a container if it exists prior to links
-		name := generateRandomName(runtime)
+		name, err := generateRandomName(runtime)
+		if err != nil {
+			container.Name = container.ShortID()
+		}
 		container.Name = name
 		container.Name = name
 
 
 		if _, err := runtime.containerGraph.Set(name, container.ID); err != nil {
 		if _, err := runtime.containerGraph.Set(name, container.ID); err != nil {
@@ -356,7 +359,10 @@ func (runtime *Runtime) Create(config *Config, name string) (*Container, []strin
 	id := GenerateID()
 	id := GenerateID()
 
 
 	if name == "" {
 	if name == "" {
-		name = generateRandomName(runtime)
+		name, err = generateRandomName(runtime)
+		if err != nil {
+			name = utils.TruncateID(id)
+		}
 	}
 	}
 	if name[0] != '/' {
 	if name[0] != '/' {
 		name = "/" + name
 		name = "/" + name

+ 2 - 6
utils.go

@@ -304,10 +304,6 @@ func (c *checker) Exists(name string) bool {
 }
 }
 
 
 // Generate a random and unique name
 // Generate a random and unique name
-func generateRandomName(runtime *Runtime) string {
-	n, err := namesgenerator.GenerateRandomName(&checker{runtime})
-	if err != nil {
-		panic(err)
-	}
-	return n
+func generateRandomName(runtime *Runtime) (string, error) {
+	return namesgenerator.GenerateRandomName(&checker{runtime})
 }
 }