acspluginmanager

package
v0.0.0-...-028f1de Latest Latest
Warning

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

Go to latest
Published: Feb 1, 2024 License: Apache-2.0 Imports: 30 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SUCCESS = 0

	//
	LOCKING_ERR                 = 232 // Failed to manipulate concurrent locking
	CHECK_ENDPOINT_FAIL         = 233 // check end point fail
	PACKAGE_NOT_FOUND           = 234 // 插件包未找到
	PACKAGE_FORMAT_ERR          = 235 // 插件包的格式错误,不是zip格式
	UNZIP_ERR                   = 236 // 解压插件包时错误
	UNMARSHAL_ERR               = 237 // 解析json文件时错误(config.json)
	PLUGIN_FORMAT_ERR           = 238 // 插件格式错误,如config.json或者插件可执行文件缺失,插件与当前系统平台不适配等
	MD5_CHECK_FAIL              = 239 // MD5校验失败
	DOWNLOAD_FAIL               = 240 // 下载失败
	LOAD_INSTALLEDPLUGINS_ERR   = 241 // 读取 installed_plugins文件错误
	DUMP_INSTALLEDPLUGINS_ERR   = 242 // 保存内容到 installed_plugins文件错误
	GET_ONLINE_PACKAGE_INFO_ERR = 243 // 获取线上的插件包信息时错误
	EXECUTABLE_PERMISSION_ERR   = 244 // linux下赋予脚本可执行权限时错误
	REMOVE_FILE_ERR             = 245 // 删除文件时错误
	EXECUTE_FAILED              = 246 // 执行插件失败
	EXECUTE_TIMEOUT             = 247 // 执行超时
)

退出码

View Source
const (
	FetchFromLocalFile      = "LocalFile"
	FetchFromLocalInstalled = "LocalInstalled"
	FetchFromOnline         = "Online"

	AddSysTag    = "add"
	RemoveSysTag = "remove"
)
View Source
const Separator = string(filepath.Separator)

Variables

View Source
var (
	ErrorStrMap = map[int]string{
		LOCKING_ERR:                 "LOCKING_ERR",
		CHECK_ENDPOINT_FAIL:         "CHECK_ENDPOINT_FAIL",
		PACKAGE_NOT_FOUND:           "PACKAGE_NOT_FOUND",
		PACKAGE_FORMAT_ERR:          "PACKAGE_FORMAT_ERR",
		UNZIP_ERR:                   "UNZIP_ERR",
		UNMARSHAL_ERR:               "UNMARSHAL_ERR",
		PLUGIN_FORMAT_ERR:           "PLUGIN_FORMAT_ERR",
		MD5_CHECK_FAIL:              "MD5_CHECK_FAIL",
		DOWNLOAD_FAIL:               "DOWNLOAD_FAIL",
		LOAD_INSTALLEDPLUGINS_ERR:   "LOAD_INSTALLEDPLUGINS_ERR",
		DUMP_INSTALLEDPLUGINS_ERR:   "DUMP_INSTALLEDPLUGINS_ERR",
		GET_ONLINE_PACKAGE_INFO_ERR: "GET_ONLINE_PACKAGE_INFO_ERR",
		EXECUTABLE_PERMISSION_ERR:   "EXECUTABLE_PERMISSION_ERR",
		REMOVE_FILE_ERR:             "REMOVE_FILE_ERR",
		EXECUTE_FAILED:              "EXECUTE_FAILED_ERR",
		EXECUTE_TIMEOUT:             "EXECUTE_TIMEOUT_ERR",
	}

	ErrPackageNotFound = errors.New("Could not found package")
)
View Source
var PLUGINDIR string

Functions

func DeletePluginInfoByIdx

func DeletePluginInfoByIdx(pluginInfos []PluginInfo, idx int) []PluginInfo

DeleteSlice 删除指定元素。

func FileProtocolDownload

func FileProtocolDownload(url, filePath string) error

Types

type AcquirePluginExclusiveLockError

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

func NewAcquirePluginExclusiveLockError

func NewAcquirePluginExclusiveLockError(cause error) *AcquirePluginExclusiveLockError

func (*AcquirePluginExclusiveLockError) Error

func (*AcquirePluginExclusiveLockError) Unwrap

type AcquirePluginSharedLockError

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

func NewAcquirePluginSharedLockError

func NewAcquirePluginSharedLockError(cause error) *AcquirePluginSharedLockError

func (*AcquirePluginSharedLockError) Error

func (*AcquirePluginSharedLockError) Unwrap

func (e *AcquirePluginSharedLockError) Unwrap() error

type AcquirePluginVersionExclusiveLockError

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

func NewAcquirePluginVersionExclusiveLockError

func NewAcquirePluginVersionExclusiveLockError(cause error) *AcquirePluginVersionExclusiveLockError

func (*AcquirePluginVersionExclusiveLockError) Error

func (*AcquirePluginVersionExclusiveLockError) Unwrap

type AcquirePluginVersionSharedLockError

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

func NewAcquirePluginVersionSharedLockError

func NewAcquirePluginVersionSharedLockError(cause error) *AcquirePluginVersionSharedLockError

func (*AcquirePluginVersionSharedLockError) Error

func (*AcquirePluginVersionSharedLockError) Unwrap

type CommonExecuteParams

type CommonExecuteParams struct {
	Params    string
	Separator string
	ParamsV2  string

	OptionalExecutionTimeoutInSeconds *int
}

func (*CommonExecuteParams) SplitArgs

func (ep *CommonExecuteParams) SplitArgs() []string

type ExecFetchOptions

type ExecFetchOptions struct {
	File string

	PluginName string
	PluginId   string
	Version    string
	Local      bool

	FetchTimeoutInSeconds int
}

type ExecuteParams

type ExecuteParams struct {
	CommonExecuteParams

	Foreground bool
}

type ExitingError

type ExitingError interface {
	Error() string

	ExitCode() int

	Unwrap() error
}

func NewDownloadExitingError

func NewDownloadExitingError(cause error, message string) ExitingError

func NewDumpInstalledPluginsExitingError

func NewDumpInstalledPluginsExitingError(cause error) ExitingError

func NewExecutablePermissionExitingError

func NewExecutablePermissionExitingError(cause error, message string) ExitingError

func NewGetOnlinePackageInfoExitingError

func NewGetOnlinePackageInfoExitingError(cause error, message string) ExitingError

func NewLoadInstalledPluginsExitingError

func NewLoadInstalledPluginsExitingError(cause error) ExitingError

func NewMD5CheckExitingError

func NewMD5CheckExitingError(cause error, message string) ExitingError

func NewPackageNotFoundExitingError

func NewPackageNotFoundExitingError(cause error, message string) ExitingError

func NewPluginFormatExitingError

func NewPluginFormatExitingError(cause error, message string) ExitingError

func NewUnmarshalExitingError

func NewUnmarshalExitingError(cause error, message string) ExitingError

func NewUnzipExitingError

func NewUnzipExitingError(cause error, message string) ExitingError

type Fetched

type Fetched struct {
	PluginName    string
	PluginVersion string
	PluginType    string
	AddSysTag     bool

	Entrypoint                string
	ExecutionTimeoutInSeconds int
	EnvPluginDir              string
	EnvPrePluginDir           string
}

type InstallLockGuard

type InstallLockGuard struct {
	PluginName    string
	PluginVersion string

	AcquireSharedLockTimeout time.Duration
}

func (InstallLockGuard) Do

func (g InstallLockGuard) Do(onExclusiveLocked func(), onSharedLocked func()) error

type OpenPluginLockFileError

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

func NewOpenPluginLockFileError

func NewOpenPluginLockFileError(cause error) *OpenPluginLockFileError

func (*OpenPluginLockFileError) Error

func (e *OpenPluginLockFileError) Error() string

func (*OpenPluginLockFileError) Unwrap

func (e *OpenPluginLockFileError) Unwrap() error

type OpenPluginVersionLockFileError

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

func NewOpenPluginVersionLockFileError

func NewOpenPluginVersionLockFileError(cause error) *OpenPluginVersionLockFileError

func (*OpenPluginVersionLockFileError) Error

func (*OpenPluginVersionLockFileError) Unwrap

type PluginManager

type PluginManager struct {
	Verbose bool
	Yes     bool
}

func NewPluginManager

func NewPluginManager(verbose bool) (*PluginManager, error)

func (*PluginManager) CheckAndReportPlugin

func (pm *PluginManager) CheckAndReportPlugin(pluginName, pluginVersion, cmdPath string, timeout int, env []string, sysTagType string) (status string, err error)

检查并上报常驻插件状态

func (*PluginManager) ExecutePlugin

func (pm *PluginManager) ExecutePlugin(fetchOptions *ExecFetchOptions, executeParams *ExecuteParams) (exitCode int, err error)

func (*PluginManager) List

func (pm *PluginManager) List(pluginName string, local bool) (exitCode int, err error)

func (*PluginManager) RemovePlugin

func (pm *PluginManager) RemovePlugin(pluginName string) (exitCode int, err error)

根据插件名称删除插件,会删除该插件的整个目录(包括其中各版本的目录) 一次性插件:直接删除相应的目录并将installed_plugins中对应的插件标记为已删除(isRemoved=true) 常驻型插件:删除之前先调用插件的 --stop和 --uninstall,如果--uninstall退出码非0则不删除,否则像一次性插件一样删除目录并标记

func (*PluginManager) ReportPluginStatus

func (pm *PluginManager) ReportPluginStatus(pluginName, pluginVersion, status string, sysTagType string) error

向服务端上报某个插件状态

func (*PluginManager) ShowPluginStatus

func (pm *PluginManager) ShowPluginStatus() (exitCode int, err error)

打印常驻插件的状态,包括已删除的常驻插件

func (*PluginManager) VerifyPlugin

func (pm *PluginManager) VerifyPlugin(fetchOptions *VerifyFetchOptions, executeParams *ExecuteParams) (exitCode int, err error)

type VerifyFetchOptions

type VerifyFetchOptions struct {
	Url string

	FetchTimeoutInSeconds int
}

type WinDir

type WinDir string

func (WinDir) Open

func (d WinDir) Open(name string) (http.File, error)

针对windows的路径模式定义的FileSystem,参照net/http.Dir

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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