agent

package
v0.9.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 24, 2022 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

View Source
const (
	COMMAND_DOWNLOAD = "download"
	COMMAND_RELOAD   = "reload"
	COMMAND_SWITCH   = "enable"
	COMMAND_ROLLBACK = "rollback"
	COMMAND_CHECK    = "check"
	COMMAND_CLEAR    = "clear"
	COMMAND_POP      = "pop"

	RETRY_TIMES                   = 3
	REQUEST_MASTER_TIMEOUT_SECOND = 60
	MAX_DOWN_CO                   = 7

	RELOAD_RETRY_TIMES           = 3
	RELOAD_RETRY_INTERVAL_SECOND = 10

	DOWNLOAD_DONE_MARK_FILE = ".download_done"
)

Variables

View Source
var (
	Dir           string
	WorkerNum     int
	QueueCapacity int32
	MasterHost    []string
	MasterPort    []string

	TestHostname string
	TestIdc      string
	ShardLock    sync.RWMutex

	CmdWorkPool   *WorkPool
	CmdWorkFilter sync.Map
)
View Source
var BUILTIN_STATUS = Status{"RUNNING", "3.0.0.1"}
View Source
var ShardInfoMap map[string]map[string]*ShardInfo

Functions

func CreateSymlink(dictName, service, version, depend, dataPath, deployPath string, shardSeq,
	split int) (err error)

func DoDownload

func DoDownload(dictName, service, version, depend, mode, source, deployPath string,
	shardSeq int) (err error)

func DoDownloadIndividual

func DoDownloadIndividual(source, downloadDir string, isService bool, timeOut int, ch chan error, wg *sync.WaitGroup)

func FtpDownload

func FtpDownload(source string, dest string, timeOut int) (err error)

func GetDataLinkDirs

func GetDataLinkDirs(dictName, service, version, depend, deployPath string, shardSeq,
	split int) []string

func GetDownloadDirs

func GetDownloadDirs(dictName, service, version, depend, deployPath string, shardSeq,
	split int) ([]string, error)

func GetFileName

func GetFileName(source string) (fileName string)

func GetHdfsMeta

func GetHdfsMeta(src string) (master, ugi, path string, err error)

func GetLocalHostname

func GetLocalHostname() (hostname string, err error)

func GetLocalHostnameCmd

func GetLocalHostnameCmd() (hostname string, err error)

func GetMaster

func GetMaster(master string) (host, port string, err error)

func GetStatus

func GetStatus(subpath string, m map[string]string, b []byte) (string, string, error)

func JsonReq

func JsonReq(method, requrl string, timeout int, kv *map[string]string,
	out interface{}) error

restReq sends a restful request to requrl and returns response body as json.

func PostCmd

func PostCmd(subpath string, m map[string]string, b []byte) (string, string, error)

func RemoveStateFile

func RemoveStateFile(dictName string, shardSeq int, service string)

func RestReq

func RestReq(method, requrl string, timeout int, kv *map[string]string) (string, error)

restReq sends a restful request to requrl and returns response body.

func RetryCmd

func RetryCmd(cmd string, retryTimes int) (stdoutStr string, stderrStr string, err error)

func RetryCmdWithSleep

func RetryCmdWithSleep(cmd string, retryTimes int) (stdoutStr string, stderrStr string, err error)

func StartHttp

func StartHttp(addr string) error

func UnTar

func UnTar(dictName, service, version, depend, source, deployPath string, shardSeq int) (err error)

Types

type CubeResp

type CubeResp struct {
	Status     int    `json:"status"`
	CurVersion string `json:"cur_version"`
	BgVersion  string `json:"bg_version"`
}

type MasterResp

type MasterResp struct {
	Success string `json:"success"`
	Message string `json:"message"`
	Data    string `json:"data"`
}

type PoolWorker

type PoolWorker interface {
	Token() string
	DoWork()
}

type ShardInfo

type ShardInfo struct {
	DictName   string
	ShardSeq   int
	SlotIdList string
	DataDir    string
	Service    string `json:"service,omitempty"`
	Libcube    string `json:"libcube,omitempty"`
}

type Status

type Status struct {
	Status  string `json:"status"`
	Version string `json:"version"`
}

type VersionInfo

type VersionInfo struct {
	Version string
	Depend  string
	Source  string
}

type Work

type Work struct {
	DictName   string `json:"dict_name"`
	ShardSeq   int    `json:"shard_seq"`
	DeployPath string `json:"deploy_path"`
	Command    string `json:"command"`
	Version    string `json:"version"`
	Depend     string `json:"depend"`
	Source     string `json:"source"`
	Mode       string `json:"mode"`
	DictMode   string `json:"dict_mode"`
	Port       string `json:"port"`

	RollbackInfo      []VersionInfo `json:"rollback_info"`
	Status            string        `json:"status"`
	FinishStatus      string        `json:"finish_status"`
	Service           string        `json:"service,omitempty"`
	VersionSign       string        `json:"version_sign,omitempty"`
	MasterAddress     string        `json:"master_address,omitempty"`
	ActiveVersionList string        `json:"active_version_list,omitempty"`
	// contains filtered or unexported fields
}

func (*Work) Check

func (work *Work) Check() (err error)

func (*Work) CheckToReload

func (work *Work) CheckToReload() bool

func (*Work) Clear

func (work *Work) Clear() (err error)

func (*Work) DoWork

func (work *Work) DoWork() error

func (*Work) Download

func (work *Work) Download() (err error)

func (*Work) Enable

func (work *Work) Enable() (err error)

func (*Work) Pop

func (work *Work) Pop() (err error)

func (*Work) Reload

func (work *Work) Reload() (err error)

func (*Work) Token

func (work *Work) Token() string

func (*Work) Valid

func (work *Work) Valid() bool

type WorkPool

type WorkPool struct {
	// contains filtered or unexported fields
}

func NewWorkPool

func NewWorkPool(workerNum int, queueCapacity int32) *WorkPool

func (*WorkPool) PostWork

func (workPool *WorkPool) PostWork(poolWorker PoolWorker) (err error)

func (*WorkPool) PostWorkWithToken

func (workPool *WorkPool) PostWorkWithToken(poolWorker PoolWorker) (err error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL