Пример #1
0
func NewChartFromTimeFloatPairWithTitle(title string, inputList []TimeFloatPair) kmgBootstrap.Panel {
	var body kmgView.HtmlRenderer
	if len(inputList) > 1 {
		body = CreateLineFromTimeFloatPair(inputList)
	} else {
		out := fmt.Sprintf("共 %d 条数据\n", len(inputList))
		for _, pair := range inputList {
			out += kmgTime.DefaultFormat(pair.X) + " : " + kmgStrconv.FormatFloat(pair.Y) + " \n"
		}
		body = kmgBootstrap.Pre(out)
	}
	return kmgBootstrap.Panel{
		Title: title + " 共 " + kmgStrconv.FormatInt(len(inputList)) + " 条数据",
		Body:  body,
	}
}
Пример #2
0
func MustRpcSshCmd(ip string, cmd ...string) []byte {
	if len(cmd) == 0 {
		return []byte{}
	}
	if ip == "" {
		return []byte{}
	}
	cmdCombine := strings.Join(cmd, "&&")
	out, err := kmgCmd.CmdString("ssh -o StrictHostKeyChecking=no -o PasswordAuthentication=no root@" + ip + " " + cmdCombine).RunAndReturnOutput()
	logPath := "/tmp/rpcSshCmd-" + ip
	kmgFile.MustAppendFile(logPath, []byte(strings.Join([]string{cmdCombine, kmgTime.DefaultFormat(time.Now())}, "\n")))
	kmgFile.MustAppendFile(logPath, out)
	if err != nil {
		//		_, ok := err.(*exec.ExitError)
		//		if ok {
		//			return out
		//		}
		kmgFile.MustAppendFile(logPath, []byte(err.Error()))
		panic(err)
	}
	return out
}