Browse code

move RegisterLinks to daemon

Docker-DCO-1.1-Signed-off-by: Victor Vieux <vieux@docker.com> (github: vieux)

Victor Vieux authored on 2014/05/13 09:54:46
Showing 2 changed files
... ...
@@ -667,6 +667,35 @@ func (daemon *Daemon) RegisterLink(parent, child *Container, alias string) error
667 667
 	return nil
668 668
 }
669 669
 
670
+func (daemon *Daemon) RegisterLinks(container *Container, hostConfig *runconfig.HostConfig) error {
671
+	if hostConfig != nil && hostConfig.Links != nil {
672
+		for _, l := range hostConfig.Links {
673
+			parts, err := utils.PartParser("name:alias", l)
674
+			if err != nil {
675
+				return err
676
+			}
677
+			child, err := daemon.GetByName(parts["name"])
678
+			if err != nil {
679
+				return err
680
+			}
681
+			if child == nil {
682
+				return fmt.Errorf("Could not get container for %s", parts["name"])
683
+			}
684
+			if err := daemon.RegisterLink(container, child, parts["alias"]); err != nil {
685
+				return err
686
+			}
687
+		}
688
+
689
+		// After we load all the links into the daemon
690
+		// set them to nil on the hostconfig
691
+		hostConfig.Links = nil
692
+		if err := container.WriteHostConfig(); err != nil {
693
+			return err
694
+		}
695
+	}
696
+	return nil
697
+}
698
+
670 699
 // FIXME: harmonize with NewGraph()
671 700
 func NewDaemon(config *daemonconfig.Config, eng *engine.Engine) (*Daemon, error) {
672 701
 	daemon, err := NewDaemonFromDirectory(config, eng)
... ...
@@ -2029,37 +2029,6 @@ func (srv *Server) ImageGetCached(imgID string, config *runconfig.Config) (*imag
2029 2029
 	return match, nil
2030 2030
 }
2031 2031
 
2032
-func (srv *Server) RegisterLinks(container *daemon.Container, hostConfig *runconfig.HostConfig) error {
2033
-	daemon := srv.daemon
2034
-
2035
-	if hostConfig != nil && hostConfig.Links != nil {
2036
-		for _, l := range hostConfig.Links {
2037
-			parts, err := utils.PartParser("name:alias", l)
2038
-			if err != nil {
2039
-				return err
2040
-			}
2041
-			child, err := srv.daemon.GetByName(parts["name"])
2042
-			if err != nil {
2043
-				return err
2044
-			}
2045
-			if child == nil {
2046
-				return fmt.Errorf("Could not get container for %s", parts["name"])
2047
-			}
2048
-			if err := daemon.RegisterLink(container, child, parts["alias"]); err != nil {
2049
-				return err
2050
-			}
2051
-		}
2052
-
2053
-		// After we load all the links into the daemon
2054
-		// set them to nil on the hostconfig
2055
-		hostConfig.Links = nil
2056
-		if err := container.WriteHostConfig(); err != nil {
2057
-			return err
2058
-		}
2059
-	}
2060
-	return nil
2061
-}
2062
-
2063 2032
 func (srv *Server) ContainerStart(job *engine.Job) engine.Status {
2064 2033
 	if len(job.Args) < 1 {
2065 2034
 		return job.Errorf("Usage: %s container_id", job.Name)
... ...
@@ -2100,7 +2069,7 @@ func (srv *Server) ContainerStart(job *engine.Job) engine.Status {
2100 2100
 			}
2101 2101
 		}
2102 2102
 		// Register any links from the host config before starting the container
2103
-		if err := srv.RegisterLinks(container, hostConfig); err != nil {
2103
+		if err := srv.daemon.RegisterLinks(container, hostConfig); err != nil {
2104 2104
 			return job.Error(err)
2105 2105
 		}
2106 2106
 		container.SetHostConfig(hostConfig)