Fixed SDKs management when running in xds VM.
[src/xds/xds-server.git] / lib / xdsserver / sdks.go
index 38e380d..9c10747 100644 (file)
@@ -75,7 +75,8 @@ func NewSDKs(ctx *Context) (*SDKs, error) {
 
                sdksList, err := ListCrossSDK(d, s.Log)
                if err != nil {
-                       return &s, err
+                       // allow to use XDS even if error on list
+                       s.Log.Errorf("Cannot retrieve SDK list: %v", err)
                }
                s.LogSillyf("'%s' SDKs list: %v", d, sdksList)
 
@@ -309,9 +310,7 @@ func (s *SDKs) AbortInstall(id string, timeout int) (*xsapiv1.SDK, error) {
 }
 
 // Remove Used to uninstall a SDK
-func (s *SDKs) Remove(id string) (*xsapiv1.SDK, error) {
-       s.mutex.Lock()
-       defer s.mutex.Unlock()
+func (s *SDKs) Remove(id string, timeout int, sess *ClientSession) (*xsapiv1.SDK, error) {
 
        cSdk, exist := s.Sdks[id]
        if !exist {
@@ -323,7 +322,7 @@ func (s *SDKs) Remove(id string) (*xsapiv1.SDK, error) {
 
        // Launch script to remove/uninstall
        // (note that remove event will be generated by monitoring thread)
-       if err := cSdk.Remove(); err != nil {
+       if err := cSdk.Remove(timeout, sess); err != nil {
                return &cSdk.sdk, err
        }