X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=lib%2Fagent%2Fproject-st.go;h=e2cd3cbc52c16f6f9433b2354bd8490a3e7d6223;hb=0a5ab2ca1ab89e6e667b7f9c7bdffdff036ca9b7;hp=c0d25507aa33ebc3af99ed292076b4708fffa69c;hpb=2d90eac319979dba64371258b30e61e77a15db7d;p=src%2Fxds%2Fxds-agent.git diff --git a/lib/agent/project-st.go b/lib/agent/project-st.go index c0d2550..e2cd3cb 100644 --- a/lib/agent/project-st.go +++ b/lib/agent/project-st.go @@ -1,6 +1,7 @@ package agent import ( + "github.com/iotbzh/xds-agent/lib/apiv1" st "github.com/iotbzh/xds-agent/lib/syncthing" ) @@ -25,7 +26,7 @@ func NewProjectST(ctx *Context, svr *XdsServer) *STProject { } // Add a new project -func (p *STProject) Add(cfg ProjectConfig) (*ProjectConfig, error) { +func (p *STProject) Add(cfg apiv1.ProjectConfig) (*apiv1.ProjectConfig, error) { var err error // Add project/folder into XDS Server @@ -48,7 +49,7 @@ func (p *STProject) Add(cfg ProjectConfig) (*ProjectConfig, error) { locPrj, err := p.SThg.FolderConfigGet(id) if err != nil { - svrPrj.Status = StatusErrorConfig + svrPrj.Status = apiv1.StatusErrorConfig return nil, err } if svrPrj.ID != locPrj.ID { @@ -70,21 +71,21 @@ func (p *STProject) Delete() error { } // GetProject Get public part of project config -func (p *STProject) GetProject() *ProjectConfig { +func (p *STProject) GetProject() *apiv1.ProjectConfig { prj := p.server.FolderToProject(*p.folder) prj.ServerID = p.server.ID return &prj } // UpdateProject Update project config -func (p *STProject) UpdateProject(prj ProjectConfig) (*ProjectConfig, error) { +func (p *STProject) UpdateProject(prj apiv1.ProjectConfig) (*apiv1.ProjectConfig, error) { // Update folder p.folder = p.server.ProjectToFolder(prj) svrPrj := p.GetProject() // Register events to update folder status // Register to XDS Server events - p.server.EventOn("event:FolderStateChanged", p._cbServerFolderChanged) + p.server.EventOn("event:FolderStateChanged", "", p._cbServerFolderChanged) if err := p.server.EventRegister("FolderStateChanged", svrPrj.ID); err != nil { p.Log.Warningf("XDS Server EventRegister failed: %v", err) return svrPrj, err @@ -127,12 +128,12 @@ func (p *STProject) IsInSync() (bool, error) { // callback use to update (XDS Server) folder IsInSync status -func (p *STProject) _cbServerFolderChanged(data interface{}) { +func (p *STProject) _cbServerFolderChanged(pData interface{}, data interface{}) error { evt := data.(XdsEventFolderChange) // Only process event that concerns this project/folder ID if p.folder.ID != evt.Folder.ID { - return + return nil } if evt.Folder.IsInSync != p.folder.DataCloudSync.STSvrIsInSync || @@ -141,10 +142,11 @@ func (p *STProject) _cbServerFolderChanged(data interface{}) { p.folder.DataCloudSync.STSvrIsInSync = evt.Folder.IsInSync p.folder.DataCloudSync.STSvrStatus = evt.Folder.Status - if err := p.events.Emit(EVTProjectChange, p.server.FolderToProject(*p.folder)); err != nil { - p.Log.Warningf("Cannot notify project change: %v", err) + if err := p.events.Emit(apiv1.EVTProjectChange, p.server.FolderToProject(*p.folder)); err != nil { + p.Log.Warningf("Cannot notify project change (from server): %v", err) } } + return nil } // callback use to update IsInSync status @@ -161,15 +163,15 @@ func (p *STProject) _cbLocalSTEvents(ev st.Event, data *st.EventsCBData) { to := ev.Data["to"] switch to { case "scanning", "syncing": - sts = StatusSyncing + sts = apiv1.StatusSyncing case "idle": - sts = StatusEnable + sts = apiv1.StatusEnable } inSync = (to == "idle") case st.EventFolderPaused: - if sts == StatusEnable { - sts = StatusPause + if sts == apiv1.StatusEnable { + sts = apiv1.StatusPause } inSync = false } @@ -179,8 +181,8 @@ func (p *STProject) _cbLocalSTEvents(ev st.Event, data *st.EventsCBData) { p.folder.DataCloudSync.STLocIsInSync = inSync p.folder.DataCloudSync.STLocStatus = sts - if err := p.events.Emit(EVTProjectChange, p.server.FolderToProject(*p.folder)); err != nil { - p.Log.Warningf("Cannot notify project change: %v", err) + if err := p.events.Emit(apiv1.EVTProjectChange, p.server.FolderToProject(*p.folder)); err != nil { + p.Log.Warningf("Cannot notify project change (local): %v", err) } } }