示例#1
0
文件: loader.go 项目: ZhuHangpeng/mig
func initializeHaveBundle() (ret []mig.BundleDictionaryEntry, err error) {
	defer func() {
		if e := recover(); e != nil {
			err = fmt.Errorf("initializeHaveBundle() -> %v", e)
		}
	}()

	ret, err = mig.GetHostBundle()
	if err != nil {
		panic(err)
	}
	ret, err = mig.HashBundle(ret)
	if err != nil {
		panic(err)
	}
	logInfo("initialized local bundle information")
	for _, x := range ret {
		hv := x.SHA256
		if hv == "" {
			hv = "not found"
		}
		logInfo("%v %v -> %v", x.Name, x.Path, hv)
	}
	return
}
示例#2
0
// Terminate any running agent on the system.
func terminateAgent() (err error) {
	defer func() {
		if e := recover(); e != nil {
			err = fmt.Errorf("terminateAgent() -> %v", e)
		}
	}()
	hb, err := mig.GetHostBundle()
	if err != nil {
		panic(err)
	}
	var abe mig.BundleDictionaryEntry
	found := false
	for _, x := range hb {
		if x.Name == "mig-agent" {
			abe = x
			found = true
			break
		}
	}
	if !found {
		panic("no agent entry in host bundle")
	}

	migcomm := exec.Command(abe.Path, "-q", "shutdown")
	err = migcomm.Run()
	if err != nil {
		panic(err)
	}

	return
}