@@ -16,8 +16,6 @@ import (
1616 "syscall"
1717 "time"
1818
19- "github.com/docker/docker/api/types"
20- "github.com/docker/docker/api/types/network"
2119 "github.com/docker/docker/client"
2220 "github.com/pkg/errors"
2321 "github.com/rs/xid"
@@ -76,57 +74,13 @@ func main() {
7674 log .Err ("hostname is empty" )
7775 }
7876
79- networkID := "network_" + instanceID
80-
81- internalNetwork , err := dockerCLI .NetworkCreate (ctx , networkID , types.NetworkCreate {
82- Labels : map [string ]string {
83- "instance" : instanceID ,
84- "app" : networks .DLEApp ,
85- "type" : networks .InternalType ,
86- },
87- Attachable : true ,
88- Internal : true ,
89- })
77+ internalNetwork , err := networks .Setup (ctx , dockerCLI , instanceID , hostname )
9078 if err != nil {
9179 log .Errf (err .Error ())
9280 return
9381 }
9482
95- defer func () {
96- networkInspect , err := dockerCLI .NetworkInspect (context .Background (), internalNetwork .ID , types.NetworkInspectOptions {})
97- if err != nil {
98- log .Errf (err .Error ())
99- return
100- }
101-
102- for _ , resource := range networkInspect .Containers {
103- log .Dbg ("Disconnecting container: " , resource .Name )
104-
105- if err := dockerCLI .NetworkDisconnect (context .Background (), internalNetwork .ID , resource .Name , true ); err != nil {
106- log .Errf (err .Error ())
107- return
108- }
109- }
110-
111- if err := dockerCLI .NetworkRemove (context .Background (), internalNetwork .ID ); err != nil {
112- log .Errf (err .Error ())
113- return
114- }
115- }()
116-
117- log .Dbg ("New network: " , internalNetwork .ID )
118-
119- if err := dockerCLI .NetworkConnect (ctx , internalNetwork .ID , hostname , & network.EndpointSettings {}); err != nil {
120- log .Errf (err .Error ())
121- return
122- }
123-
124- defer func () {
125- if err := dockerCLI .NetworkDisconnect (context .Background (), internalNetwork .ID , hostname , true ); err != nil {
126- log .Errf (err .Error ())
127- return
128- }
129- }()
83+ defer networks .Stop (dockerCLI , internalNetwork .ID )
13084
13185 // Create a platform service to make requests to Platform.
13286 platformSvc , err := platform .New (ctx , cfg .Platform )
@@ -181,23 +135,10 @@ func main() {
181135 go removeObservingClones (obsCh , obs )
182136
183137 server := srv .NewServer (& cfg .Server , & cfg .Global , obs , cloningSvc , platformSvc , dockerCLI , est , pm )
184-
185- reloadCh := setReloadListener ()
186-
187- go func () {
188- for range reloadCh {
189- log .Msg ("Reloading configuration" )
190-
191- if err := reloadConfig (ctx , instanceID , provisionSvc , retrievalSvc , pm , cloningSvc , platformSvc , est , server ); err != nil {
192- log .Err ("Failed to reload configuration" , err )
193- }
194-
195- log .Msg ("Configuration has been reloaded" )
196- }
197- }()
198-
199138 shutdownCh := setShutdownListener ()
200139
140+ go setReloadListener (ctx , instanceID , provisionSvc , retrievalSvc , pm , cloningSvc , platformSvc , est , server )
141+
201142 server .InitHandlers ()
202143
203144 go func () {
@@ -273,11 +214,20 @@ func reloadConfig(ctx context.Context, instanceID string, provisionSvc *provisio
273214 return nil
274215}
275216
276- func setReloadListener () chan os.Signal {
277- c := make (chan os.Signal , 1 )
278- signal .Notify (c , syscall .SIGHUP )
217+ func setReloadListener (ctx context.Context , instanceID string , provisionSvc * provision.Provisioner , retrievalSvc * retrieval.Retrieval ,
218+ pm * pool.Manager , cloningSvc cloning.Cloning , platformSvc * platform.Service , est * estimator.Estimator , server * srv.Server ) {
219+ reloadCh := make (chan os.Signal , 1 )
220+ signal .Notify (reloadCh , syscall .SIGHUP )
279221
280- return c
222+ for range reloadCh {
223+ log .Msg ("Reloading configuration" )
224+
225+ if err := reloadConfig (ctx , instanceID , provisionSvc , retrievalSvc , pm , cloningSvc , platformSvc , est , server ); err != nil {
226+ log .Err ("Failed to reload configuration" , err )
227+ }
228+
229+ log .Msg ("Configuration has been reloaded" )
230+ }
281231}
282232
283233func setShutdownListener () chan os.Signal {
0 commit comments