X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=lib%2Fxdsserver%2Fsdk.go;h=cda334c8cee99681a0d6019ae8b97f90dfaa10ee;hb=5dc2ff003106f0ced38caadb06033f24c792f9b9;hp=88f662a8739bf3dc4a23e0da13e9eebeb6c3b7e4;hpb=1d2f02988debfe4fe3891d82b2de23d6004e8a91;p=src%2Fxds%2Fxds-server.git diff --git a/lib/xdsserver/sdk.go b/lib/xdsserver/sdk.go index 88f662a..cda334c 100644 --- a/lib/xdsserver/sdk.go +++ b/lib/xdsserver/sdk.go @@ -26,9 +26,9 @@ import ( "strings" "time" - common "gerrit.automotivelinux.org/gerrit/src/xds/xds-common.git/golib" - "gerrit.automotivelinux.org/gerrit/src/xds/xds-common.git/golib/eows" - "gerrit.automotivelinux.org/gerrit/src/xds/xds-server/lib/xsapiv1" + common "gerrit.automotivelinux.org/gerrit/src/xds/xds-common.git" + "gerrit.automotivelinux.org/gerrit/src/xds/xds-common.git/eows" + "gerrit.automotivelinux.org/gerrit/src/xds/xds-server.git/lib/xsapiv1" "github.com/Sirupsen/logrus" uuid "github.com/satori/go.uuid" ) @@ -220,7 +220,7 @@ func NewCrossSDK(ctx *Context, sdk xsapiv1.SDK, scriptDir string) (*CrossSDK, er // Install a SDK (non blocking command, IOW run in background) func (s *CrossSDK) Install(file string, force bool, timeout int, args []string, sess *ClientSession) error { - if s.sdk.Status == xsapiv1.SdkStatusInstalled { + if s.sdk.Status == xsapiv1.SdkStatusInstalled && !force { return fmt.Errorf("already installed") } if s.sdk.Status == xsapiv1.SdkStatusInstalling { @@ -268,7 +268,7 @@ func (s *CrossSDK) Install(file string, force bool, timeout int, args []string, data := e.UserData sdkID := (*data)["SDKID"].(string) if sdkID != s.sdk.ID { - s.Log.Errorln("BUG: sdk ID differs: %v != %v", sdkID, s.sdk.ID) + s.Log.Errorf("BUG: sdk ID differs: %v != %v", sdkID, s.sdk.ID) } // IO socket can be nil when disconnected @@ -305,11 +305,13 @@ func (s *CrossSDK) Install(file string, force bool, timeout int, args []string, // Define callback for output s.installCmd.ExitCB = func(e *eows.ExecOverWS, code int, exitError error) { + defer LockXdsUpdateCounter(s.Context, false) + // paranoia data := e.UserData sdkID := (*data)["SDKID"].(string) if sdkID != s.sdk.ID { - s.Log.Errorln("BUG: sdk ID differs: %v != %v", sdkID, s.sdk.ID) + s.Log.Errorf("BUG: sdk ID differs: %v != %v", sdkID, s.sdk.ID) } s.Log.Infof("Command SDK ID %s [Cmd ID %s] exited: code %d, exitError: %v", sdkID[:16], e.CmdID, code, exitError)