MCPcopy Create free account
hub / github.com/GoEdgeLab/EdgeNode / createInstance

Method createInstance

internal/iplibrary/action_manager.go:144–173  ·  view source on GitHub ↗
(config *firewallconfigs.FirewallActionConfig)

Source from the content-addressed store, hash-verified

142}
143
144func (this *ActionManager) createInstance(config *firewallconfigs.FirewallActionConfig) (ActionInterface, error) {
145 var instance ActionInterface
146 switch config.Type {
147 case firewallconfigs.FirewallActionTypeIPSet:
148 instance = NewIPSetAction()
149 case firewallconfigs.FirewallActionTypeFirewalld:
150 instance = NewFirewalldAction()
151 case firewallconfigs.FirewallActionTypeIPTables:
152 instance = NewIPTablesAction()
153 case firewallconfigs.FirewallActionTypeScript:
154 instance = NewScriptAction()
155 case firewallconfigs.FirewallActionTypeHTTPAPI:
156 instance = NewHTTPAPIAction()
157 case firewallconfigs.FirewallActionTypeHTML:
158 instance = NewHTMLAction()
159 }
160 if instance == nil {
161 return nil, errors.New("can not create instance for type '" + config.Type + "'")
162 }
163 err := instance.Init(config)
164 if err != nil {
165 // 如果是警告错误,我们只是提示
166 if !IsFatalError(err) {
167 remotelogs.Error("IPLIBRARY/ACTION_MANAGER/CREATE_INSTANCE", "init '"+config.Type+"' failed: "+err.Error())
168 } else {
169 return nil, err
170 }
171 }
172 return instance, nil
173}

Callers 1

UpdateActionsMethod · 0.95

Calls 10

InitMethod · 0.95
ErrorFunction · 0.92
NewIPSetActionFunction · 0.85
NewFirewalldActionFunction · 0.85
NewIPTablesActionFunction · 0.85
NewScriptActionFunction · 0.85
NewHTTPAPIActionFunction · 0.85
NewHTMLActionFunction · 0.85
IsFatalErrorFunction · 0.85
ErrorMethod · 0.45

Tested by

no test coverage detected