X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=lib%2Fxdsserver%2Fsdks.go;h=ee6a269372c53ac9116b86230ab56566a62ad742;hb=f870de867b43bfb1220067f81c11395438fb2863;hp=c006861f391b0491a63ca656382a83d29e1e01eb;hpb=dcdee5e2aa05ec07e7e750bea4faad63bce7b668;p=src%2Fxds%2Fxds-server.git diff --git a/lib/xdsserver/sdks.go b/lib/xdsserver/sdks.go index c006861..ee6a269 100644 --- a/lib/xdsserver/sdks.go +++ b/lib/xdsserver/sdks.go @@ -38,8 +38,8 @@ type SDKs struct { stop chan struct{} // signals intentional stop } -// NewSDKs creates a new instance of SDKs -func NewSDKs(ctx *Context) (*SDKs, error) { +// SDKsConstructor creates a new instance of SDKs +func SDKsConstructor(ctx *Context) (*SDKs, error) { s := SDKs{ Context: ctx, Sdks: make(map[string]*CrossSDK), @@ -63,6 +63,12 @@ func NewSDKs(ctx *Context) (*SDKs, error) { return &s, err } + // Update SDK DB on startup by default (can be disable using config file) + update := true + if s.Config.FileConf.SdkDbUpdate != "startup" { + update = false + } + s.mutex.Lock() defer s.mutex.Unlock() @@ -73,10 +79,11 @@ func NewSDKs(ctx *Context) (*SDKs, error) { continue } - sdksList, err := ListCrossSDK(d, s.Log) + sdksList, err := ListCrossSDK(d, update, s.Log) if err != nil { // allow to use XDS even if error on list s.Log.Errorf("Cannot retrieve SDK list: %v", err) + sdksList, _ = ListCrossSDK(d, false, s.Log) } s.LogSillyf("'%s' SDKs list: %v", d, sdksList) @@ -333,7 +340,7 @@ func (s *SDKs) Install(id, filepath string, force bool, timeout int, args []stri // Update path when not set if sdk.Path == "" { - sdkDef, err := GetSDKInfo(scriptDir, sdk.URL, "", "", s.Log) + sdkDef, err := GetSDKInfo(scriptDir, sdk.URL, "", "", sdk.UUID, s.Log) if err != nil || sdkDef.Path == "" { return nil, fmt.Errorf("cannot retrieve sdk path %v", err) } @@ -349,7 +356,7 @@ func (s *SDKs) Install(id, filepath string, force bool, timeout int, args []stri } for _, sf := range s.SdksFamilies { - sdkDef, err := GetSDKInfo(sf.ScriptsDir, "", sdkFilename, "", s.Log) + sdkDef, err := GetSDKInfo(sf.ScriptsDir, "", sdkFilename, "", "", s.Log) if err == nil { // OK, sdk found sdk = &sdkDef