X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=lib%2Fxdsserver%2Fsdk.go;h=6cd26194d46638cead649826e62041025b05b461;hb=3f460335601df39a6b43488313ac9031c8d85fe8;hp=c1bf0433bb73851bffbf9d949dafc8d3e7b73bfd;hpb=17812a0a4388ab0c87084ef7e8118d87e8fadcf7;p=src%2Fxds%2Fxds-server.git diff --git a/lib/xdsserver/sdk.go b/lib/xdsserver/sdk.go index c1bf043..6cd2619 100644 --- a/lib/xdsserver/sdk.go +++ b/lib/xdsserver/sdk.go @@ -92,7 +92,7 @@ func ListCrossSDK(scriptDir string, update bool, log *logrus.Logger) ([]xsapiv1. } // GetSDKInfo Used get-sdk-info script to extract SDK get info from a SDK file/tarball -func GetSDKInfo(scriptDir, url, filename, md5sum string, log *logrus.Logger) (xsapiv1.SDK, error) { +func GetSDKInfo(scriptDir, url, filename, md5sum, uuid string, log *logrus.Logger) (xsapiv1.SDK, error) { sdk := xsapiv1.SDK{} args := []string{} @@ -106,6 +106,9 @@ func GetSDKInfo(scriptDir, url, filename, md5sum string, log *logrus.Logger) (xs } else { return sdk, fmt.Errorf("url of filename must be set") } + if uuid != "" { + args = append(args, "--uuid", uuid) + } cmd := exec.Command(path.Join(scriptDir, scriptGetSdkInfo), args...) stdout, err := cmd.CombinedOutput() @@ -217,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 { @@ -327,8 +330,9 @@ func (s *CrossSDK) Install(file string, force bool, timeout int, args []string, // (see sdks.go / monitorSDKInstallation ) // Update SetupFile when n if s.sdk.SetupFile == "" { - sdkDef, err := GetSDKInfo(s.sdk.FamilyConf.ScriptsDir, s.sdk.URL, "", "", s.Log) + sdkDef, err := GetSDKInfo(s.sdk.FamilyConf.ScriptsDir, s.sdk.URL, "", "", s.sdk.UUID, s.Log) if err != nil || sdkDef.SetupFile == "" { + s.Log.Errorf("GetSDKInfo error: %v", err) code = 1 s.sdk.LastError = "Installation failed (cannot init SetupFile path)" s.sdk.Status = xsapiv1.SdkStatusNotInstalled @@ -389,6 +393,10 @@ func (s *CrossSDK) Install(file string, force bool, timeout int, args []string, s.sdk.Status = xsapiv1.SdkStatusInstalling s.sdk.LastError = "" + if err := s.events.Emit(xsapiv1.EVTSDKStateChange, s.sdk, sess.ID); err != nil { + s.Log.Errorf("WS Emit EVTSDKStateChange installing : %v", err) + } + err := s.installCmd.Start() return err