MCPcopy
hub / github.com/tuna/tunasync / GetTUNASyncManager

Function GetTUNASyncManager

manager/server.go:32–104  ·  view source on GitHub ↗

GetTUNASyncManager returns the manager from config

(cfg *Config)

Source from the content-addressed store, hash-verified

30
31// GetTUNASyncManager returns the manager from config
32func GetTUNASyncManager(cfg *Config) *Manager {
33 if manager != nil {
34 return manager
35 }
36
37 // create gin engine
38 if !cfg.Debug {
39 gin.SetMode(gin.ReleaseMode)
40 }
41 s := &Manager{
42 cfg: cfg,
43 adapter: nil,
44 }
45
46 s.engine = gin.New()
47 s.engine.Use(gin.Recovery())
48 if cfg.Debug {
49 s.engine.Use(gin.Logger())
50 }
51
52 if cfg.Files.CACert != "" {
53 httpClient, err := CreateHTTPClient(cfg.Files.CACert)
54 if err != nil {
55 logger.Errorf("Error initializing HTTP client: %s", err.Error())
56 return nil
57 }
58 s.httpClient = httpClient
59 }
60
61 if cfg.Files.DBFile != "" {
62 adapter, err := makeDBAdapter(cfg.Files.DBType, cfg.Files.DBFile)
63 if err != nil {
64 logger.Errorf("Error initializing DB adapter: %s", err.Error())
65 return nil
66 }
67 s.setDBAdapter(adapter)
68 }
69
70 // common log middleware
71 s.engine.Use(contextErrorLogger)
72
73 s.engine.GET("/ping", func(c *gin.Context) {
74 c.JSON(http.StatusOK, gin.H{_infoKey: "pong"})
75 })
76 // list jobs, status page
77 s.engine.GET("/jobs", s.listAllJobs)
78 // flush disabled jobs
79 s.engine.DELETE("/jobs/disabled", s.flushDisabledJobs)
80
81 // list workers
82 s.engine.GET("/workers", s.listWorkers)
83 // worker online
84 s.engine.POST("/workers", s.registerWorker)
85
86 // workerID should be valid in this route group
87 workerValidateGroup := s.engine.Group("/workers", s.workerIDValidator)
88 {
89 // delete specified worker

Callers 3

startManagerFunction · 0.92
mainFunction · 0.92
TestHTTPServerFunction · 0.85

Calls 5

setDBAdapterMethod · 0.95
CreateHTTPClientFunction · 0.85
makeDBAdapterFunction · 0.85
ErrorfMethod · 0.80
ErrorMethod · 0.80

Tested by 1

TestHTTPServerFunction · 0.68