plugin

package
v0.7.6 Latest Latest
Warning

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

Go to latest
Published: Jan 31, 2024 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Overview

工厂模式生产具体的类

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddCheck

func AddCheck(key string, value reflect.Type)

func AddFilter

func AddFilter(key string, value reflect.Type)

func AddInput

func AddInput(key string, value reflect.Type)

func AddOutput

func AddOutput(key string, value reflect.Type)

func Builder

func Builder() *builder

返回Builder对象,工厂模式

Types

type Check

type Check interface {
	Plugin
	Conn() *Message
}

检测插件,用于检测目标单位可执行状态

type CheckFactory

type CheckFactory struct{}

check插件工厂,实现Factory接口

func (*CheckFactory) Create

func (i *CheckFactory) Create(conf Config) Plugin

读取配置,通过反射机制进行对象实例化

type Config

type Config struct {
	Name        string
	PluginTypes PluginType
}

插件配置

type Data

type Data struct {
	Raw    string                 `json:"raw"` // 原始文档
	Items  map[string]interface{} // 详细参数配置
	Target []string               // 目标服务器
	Check  map[string]string      // ssh连接检测结果
}

type Env

type Env struct {
	Type PluginType
}

type Factory

type Factory interface {
	Create(conf Config) Plugin
}

插件抽象工厂接口

type Filter

type Filter interface {
	Plugin
	Process(msg *Message) *Message
}

过滤插件,用于处理消息

type FilterFactory

type FilterFactory struct{}

filter插件工厂对象,实现Factory接口

func (*FilterFactory) Create

func (i *FilterFactory) Create(conf Config) Plugin

读取配置,通过反射机制进行对象实例化

type Input

type Input interface {
	Plugin
	Receive() *Message
}

输入插件,用于接收消息,解析内容

type InputFactory

type InputFactory struct{}

input插件工厂对象,实现Factory接口

func (*InputFactory) Create

func (i *InputFactory) Create(conf Config) Plugin

读取配置,通过反射机制进行对象实例化

type Message

type Message struct {
	Env      *Env
	Data     *Data
	Status   StatusType
	CallBack map[string]map[string]string // 执行返回结果
	Count    map[string]map[string]int    // 统计执行情况
	Tmp      map[string]string            // 临时变量
}

type Output

type Output interface {
	Plugin
	Send(msg *Message)
}

输出插件,用于发送消息

type OutputFactory

type OutputFactory struct{}

output插件工厂对象,实现Factory接口

func (*OutputFactory) Create

func (i *OutputFactory) Create(conf Config) Plugin

读取配置,通过反射机制进行对象实例化

type Plugin

type Plugin interface {
	// 启动插件
	Start()
	// 停止插件
	Stop()
	// 返回插件当前的运行状态
	Status() StatusPlugin
	// 新增初始化方法,在插件工厂返回实例前调用
	Init(interface{})
}

接口定义 Check、Input、Filter、Output三类插件接口的定义 插件抽象接口定义

type PluginType

type PluginType uint8

插件类型定义

const (
	CheckType PluginType = iota
	InputType
	FilterType
	OutputType
)

type StatusPlugin

type StatusPlugin uint8

添加插件运行状态

const (
	Stopped StatusPlugin = iota
	Started
)

type StatusType

type StatusType uint8

消息状态定义

const (
	Ok StatusType = iota
	Error
)

Jump to

Keyboard shortcuts

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