update xds-server package in docker
[src/xds/xds-server.git] / lib / xdsserver / xdsserver.go
index bb8f755..ba2a560 100644 (file)
@@ -48,9 +48,11 @@ type Context struct {
        SThgInotCmd   *exec.Cmd
        mfolders      *Folders
        sdks          *SDKs
+       targets       *Targets
        WWWServer     *WebServer
        sessions      *Sessions
        events        *Events
+       lock          Lock
        Exit          chan os.Signal
 }
 
@@ -87,6 +89,7 @@ func NewXdsServer(cliCtx *cli.Context) *Context {
                Log:           log,
                LogLevelSilly: logSilly,
                LogSillyf:     sillyFunc,
+               lock:          Lock{LockCpt: 0},
                Exit:          make(chan os.Signal, 1),
        }
 
@@ -129,7 +132,7 @@ func (ctx *Context) Run() (int, error) {
        }
 
        // Create events management
-       ctx.events = NewEvents(ctx)
+       ctx.events = EventsConstructor(ctx)
 
        // Create syncthing instance when section "syncthing" is present in server-config.json
        if ctx.Config.FileConf.SThgConf != nil {
@@ -178,7 +181,7 @@ func (ctx *Context) Run() (int, error) {
        }
 
        // Init model folder
-       ctx.mfolders = FoldersNew(ctx)
+       ctx.mfolders = FoldersConstructor(ctx)
 
        // Load initial folders config from disk
        if err := ctx.mfolders.LoadConfig(); err != nil {
@@ -186,16 +189,28 @@ func (ctx *Context) Run() (int, error) {
        }
 
        // Init cross SDKs
-       ctx.sdks, err = NewSDKs(ctx)
+       ctx.sdks, err = SDKsConstructor(ctx)
        if err != nil {
                return -6, err
        }
 
+       // Init target and terminals model
+       ctx.targets = TargetsConstructor(ctx)
+
+       // Load initial target & terminal config
+       if err := ctx.targets.LoadConfig(); err != nil {
+               return -6, err
+       }
+
        // Create Web Server
-       ctx.WWWServer = NewWebServer(ctx)
+       ctx.WWWServer = WebServerConstructor(ctx)
 
        // Sessions manager
-       ctx.sessions = NewClientSessions(ctx, cookieMaxAge)
+       ctx.sessions = ClientSessionsConstructor(ctx, cookieMaxAge)
+
+       // Check if a new package version is available
+       // and monitor updates
+       MonitorUpdates(ctx)
 
        // Run Web Server until exit requested (blocking call)
        if err = ctx.WWWServer.Serve(); err != nil {