From ca21e901fd742edc85c3177da2373459a7de66e5 Mon Sep 17 00:00:00 2001 From: simonzhangsz Date: Tue, 16 Jan 2024 19:07:46 +0800 Subject: [PATCH] fix: dpkg ims software --- features/cm/software.go | 17 +++++++++++++++-- misc/spawndpkg.sh | 9 +++++++++ restagent/config/config.go | 1 + restagent/etc/restconf.yaml | 2 ++ 4 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 misc/spawndpkg.sh diff --git a/features/cm/software.go b/features/cm/software.go index 269e0d5b..35d6b853 100644 --- a/features/cm/software.go +++ b/features/cm/software.go @@ -698,8 +698,21 @@ func ActiveSoftwareToNF(w http.ResponseWriter, r *http.Request) { return } } else if fileType == 2 { - dpkgCmd := fmt.Sprintf("sudo dpkg -i --force-all '%s'", filePath) - err := RunSSHCmd(sshHost, dpkgCmd) + srcFile := fmt.Sprintf("%s/spawndpkg.sh", config.GetYamlConfig().OMC.BinDir) + + scpDir := fmt.Sprintf("%s@%s:%s", config.GetYamlConfig().NE.User, + neInfo.Ip, config.GetYamlConfig().NE.ScpDir) + cmd := exec.Command("scp", "-r", srcFile, scpDir) + out, err := cmd.CombinedOutput() + log.Debugf("Exec output: %v", string(out)) + if err != nil { + log.Errorf("Faile to scp NF: neType=%s, neId=%s, ip=%s", neType, neId, neInfo.Ip) + services.ResponseInternalServerError500ProcessError(w, err) + return + } + dpkgCmd := fmt.Sprintf("sudo %s/spawdpkg.sh -i --force-all '%s'", + config.GetYamlConfig().NE.ScpDir, filePath) + err = RunSSHCmd(sshHost, dpkgCmd) if err != nil { log.Error("Faile to execute dpkg command:", err) services.ResponseInternalServerError500ProcessError(w, err) diff --git a/misc/spawndpkg.sh b/misc/spawndpkg.sh new file mode 100644 index 00000000..238b7df3 --- /dev/null +++ b/misc/spawndpkg.sh @@ -0,0 +1,9 @@ +#!/bin/bash + + expect <