Skip to content
This repository was archived by the owner on Nov 8, 2022. It is now read-only.

Commit 413a1b8

Browse files
committed
Merge pull request #625 from candysmurf/golint-control
address golint warnings in package control
2 parents c1bbfb3 + 3d6392f commit 413a1b8

13 files changed

+158
-129
lines changed

control/available_plugin.go

+17-14
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,12 @@ const (
5151
)
5252

5353
var (
54+
// ErrPoolNotFound - error message when the plugin pool not found
5455
ErrPoolNotFound = errors.New("plugin pool not found")
55-
ErrBadKey = errors.New("bad key")
56-
ErrBadType = errors.New("bad plugin type")
56+
// ErrBadKey - error message when a bad key used
57+
ErrBadKey = errors.New("bad key")
58+
// ErrBadType - error message when a bad plugin type used
59+
ErrBadType = errors.New("bad plugin type")
5760

5861
// This defines the maximum running instances of a loaded plugin.
5962
// It is initialized at runtime via the cli.
@@ -108,13 +111,13 @@ func newAvailablePlugin(resp *plugin.Response, emitter gomit.Emitter, ep executa
108111
}
109112
ap.key = fmt.Sprintf("%s:%s:%d", ap.pluginType.String(), ap.name, ap.version)
110113

111-
listenUrl := fmt.Sprintf("http://%v/rpc", resp.ListenAddress)
114+
listenURL := fmt.Sprintf("http://%v/rpc", resp.ListenAddress)
112115
// Create RPC Client
113116
switch resp.Type {
114117
case plugin.CollectorPluginType:
115118
switch resp.Meta.RPCType {
116119
case plugin.JSONRPC:
117-
c, e := client.NewCollectorHttpJSONRPCClient(listenUrl, DefaultClientTimeout, resp.PublicKey, !resp.Meta.Unsecure)
120+
c, e := client.NewCollectorHttpJSONRPCClient(listenURL, DefaultClientTimeout, resp.PublicKey, !resp.Meta.Unsecure)
118121
if e != nil {
119122
return nil, errors.New("error while creating client connection: " + e.Error())
120123
}
@@ -129,7 +132,7 @@ func newAvailablePlugin(resp *plugin.Response, emitter gomit.Emitter, ep executa
129132
case plugin.PublisherPluginType:
130133
switch resp.Meta.RPCType {
131134
case plugin.JSONRPC:
132-
c, e := client.NewPublisherHttpJSONRPCClient(listenUrl, DefaultClientTimeout, resp.PublicKey, !resp.Meta.Unsecure)
135+
c, e := client.NewPublisherHttpJSONRPCClient(listenURL, DefaultClientTimeout, resp.PublicKey, !resp.Meta.Unsecure)
133136
if e != nil {
134137
return nil, errors.New("error while creating client connection: " + e.Error())
135138
}
@@ -144,7 +147,7 @@ func newAvailablePlugin(resp *plugin.Response, emitter gomit.Emitter, ep executa
144147
case plugin.ProcessorPluginType:
145148
switch resp.Meta.RPCType {
146149
case plugin.JSONRPC:
147-
c, e := client.NewProcessorHttpJSONRPCClient(listenUrl, DefaultClientTimeout, resp.PublicKey, !resp.Meta.Unsecure)
150+
c, e := client.NewProcessorHttpJSONRPCClient(listenURL, DefaultClientTimeout, resp.PublicKey, !resp.Meta.Unsecure)
148151
if e != nil {
149152
return nil, errors.New("error while creating client connection: " + e.Error())
150153
}
@@ -363,27 +366,27 @@ func (p *apPool) insert(ap *availablePlugin) error {
363366

364367
// subscribe adds a subscription to the pool.
365368
// Using subscribe is idempotent.
366-
func (p *apPool) subscribe(taskId string, subType subscriptionType) {
369+
func (p *apPool) subscribe(taskID string, subType subscriptionType) {
367370
p.Lock()
368371
defer p.Unlock()
369372

370-
if _, exists := p.subs[taskId]; !exists {
373+
if _, exists := p.subs[taskID]; !exists {
371374
// Version is the last item in the key, so we split here
372375
// to retrieve it for the subscription.
373-
p.subs[taskId] = &subscription{
374-
taskId: taskId,
376+
p.subs[taskID] = &subscription{
377+
taskID: taskID,
375378
subType: subType,
376379
version: p.version,
377380
}
378381
}
379382
}
380383

381-
// subscribe adds a subscription to the pool.
384+
// unsubscribe removes a subscription from the pool.
382385
// Using unsubscribe is idempotent.
383-
func (p *apPool) unsubscribe(taskId string) {
386+
func (p *apPool) unsubscribe(taskID string) {
384387
p.Lock()
385388
defer p.Unlock()
386-
delete(p.subs, taskId)
389+
delete(p.subs, taskID)
387390
}
388391

389392
func (p *apPool) eligible() bool {
@@ -526,7 +529,7 @@ func (p *apPool) moveSubscriptions(to *apPool) []subscription {
526529
type subscription struct {
527530
subType subscriptionType
528531
version int
529-
taskId string
532+
taskID string
530533
}
531534

532535
type availablePlugins struct {

control/config.go

+29-30
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ type config struct {
5555
Plugins *pluginConfig `json:"plugins"`
5656
}
5757

58+
// NewConfig returns a reference to a global config type for the snap daemon
59+
// by using a newly created empty plugin config.
5860
func NewConfig() *config {
5961
return &config{
6062
Plugins: newPluginConfig(),
@@ -196,18 +198,17 @@ func (p *pluginConfig) mergePluginConfigDataNode(pluginType core.PluginType, nam
196198
}
197199
res.Merge(cdn)
198200
return
199-
} else {
200-
if name != "" {
201-
cn := cdata.NewNode()
202-
cn.Merge(cdn)
203-
p.Collector.Plugins[name] = newPluginConfigItem()
204-
if ver > 0 {
205-
p.Collector.Plugins[name].Versions = map[int]*cdata.ConfigDataNode{ver: cn}
206-
return
207-
}
208-
p.Collector.Plugins[name].ConfigDataNode = cn
201+
}
202+
if name != "" {
203+
cn := cdata.NewNode()
204+
cn.Merge(cdn)
205+
p.Collector.Plugins[name] = newPluginConfigItem()
206+
if ver > 0 {
207+
p.Collector.Plugins[name].Versions = map[int]*cdata.ConfigDataNode{ver: cn}
209208
return
210209
}
210+
p.Collector.Plugins[name].ConfigDataNode = cn
211+
return
211212
}
212213
p.Collector.All.Merge(cdn)
213214
case core.ProcessorPluginType:
@@ -218,18 +219,17 @@ func (p *pluginConfig) mergePluginConfigDataNode(pluginType core.PluginType, nam
218219
}
219220
res.Merge(cdn)
220221
return
221-
} else {
222-
if name != "" {
223-
cn := cdata.NewNode()
224-
cn.Merge(cdn)
225-
p.Processor.Plugins[name] = newPluginConfigItem()
226-
if ver > 0 {
227-
p.Processor.Plugins[name].Versions = map[int]*cdata.ConfigDataNode{ver: cn}
228-
return
229-
}
230-
p.Processor.Plugins[name].ConfigDataNode = cn
222+
}
223+
if name != "" {
224+
cn := cdata.NewNode()
225+
cn.Merge(cdn)
226+
p.Processor.Plugins[name] = newPluginConfigItem()
227+
if ver > 0 {
228+
p.Processor.Plugins[name].Versions = map[int]*cdata.ConfigDataNode{ver: cn}
231229
return
232230
}
231+
p.Processor.Plugins[name].ConfigDataNode = cn
232+
return
233233
}
234234
p.Processor.All.Merge(cdn)
235235
case core.PublisherPluginType:
@@ -240,18 +240,17 @@ func (p *pluginConfig) mergePluginConfigDataNode(pluginType core.PluginType, nam
240240
}
241241
res.Merge(cdn)
242242
return
243-
} else {
244-
if name != "" {
245-
cn := cdata.NewNode()
246-
cn.Merge(cdn)
247-
p.Publisher.Plugins[name] = newPluginConfigItem()
248-
if ver > 0 {
249-
p.Publisher.Plugins[name].Versions = map[int]*cdata.ConfigDataNode{ver: cn}
250-
return
251-
}
252-
p.Publisher.Plugins[name].ConfigDataNode = cn
243+
}
244+
if name != "" {
245+
cn := cdata.NewNode()
246+
cn.Merge(cdn)
247+
p.Publisher.Plugins[name] = newPluginConfigItem()
248+
if ver > 0 {
249+
p.Publisher.Plugins[name].Versions = map[int]*cdata.ConfigDataNode{ver: cn}
253250
return
254251
}
252+
p.Publisher.Plugins[name].ConfigDataNode = cn
253+
return
255254
}
256255
p.Publisher.All.Merge(cdn)
257256
}

control/control.go

+30-22
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,11 @@ import (
4848
)
4949

5050
const (
51+
// PluginTrustDisabled - enum representing plugin trust disabled
5152
PluginTrustDisabled int = iota
53+
// PluginTrustEnabled - enum representing plugin trust enabled
5254
PluginTrustEnabled
55+
// PluginTrustWarn - enum representing plugin trust warning
5356
PluginTrustWarn
5457
)
5558

@@ -58,7 +61,9 @@ var (
5861
"_module": "control",
5962
})
6063

64+
// ErrLoadedPluginNotFound - error message when a loaded plugin is not found
6165
ErrLoadedPluginNotFound = errors.New("Loaded plugin not found")
66+
// ErrControllerNotStarted - error message when the Controller was not started
6267
ErrControllerNotStarted = errors.New("Must start Controller before calling Load()")
6368
)
6469

@@ -125,29 +130,33 @@ type managesSigning interface {
125130
ValidateSignature([]string, string, []byte) error
126131
}
127132

128-
type ControlOpt func(*pluginControl)
133+
// PluginControlOpt is used to set optional parameters on the pluginControl struct
134+
type PluginControlOpt func(*pluginControl)
129135

130-
func MaxRunningPlugins(m int) ControlOpt {
136+
// MaxRunningPlugins sets the maximum number of plugins to run per pool
137+
func MaxRunningPlugins(m int) PluginControlOpt {
131138
return func(c *pluginControl) {
132139
maximumRunningPlugins = m
133140
}
134141
}
135142

136-
func CacheExpiration(t time.Duration) ControlOpt {
143+
// CacheExpiration is the PluginControlOpt which sets the global metric cache TTL
144+
func CacheExpiration(t time.Duration) PluginControlOpt {
137145
return func(c *pluginControl) {
138146
client.GlobalCacheExpiration = t
139147
}
140148
}
141149

142-
func OptSetConfig(cfg *config) ControlOpt {
150+
// OptSetConfig sets the plugin control configuration.
151+
func OptSetConfig(cfg *config) PluginControlOpt {
143152
return func(c *pluginControl) {
144153
c.Config = cfg
145154
c.pluginManager.SetPluginConfig(cfg.Plugins)
146155
}
147156
}
148157

149158
// New returns a new pluginControl instance
150-
func New(opts ...ControlOpt) *pluginControl {
159+
func New(opts ...PluginControlOpt) *pluginControl {
151160

152161
c := &pluginControl{}
153162
c.Config = NewConfig()
@@ -313,11 +322,10 @@ func (p *pluginControl) verifySignature(rp *core.RequestedPlugin) (bool, serror.
313322
if rp.Signature() == nil {
314323
controlLogger.WithFields(f).Warn("Loading unsigned plugin ", rp.Path())
315324
return false, nil
316-
} else {
317-
err := p.signingManager.ValidateSignature(p.keyringFiles, rp.Path(), rp.Signature())
318-
if err != nil {
319-
return false, serror.New(err)
320-
}
325+
}
326+
err := p.signingManager.ValidateSignature(p.keyringFiles, rp.Path(), rp.Signature())
327+
if err != nil {
328+
return false, serror.New(err)
321329
}
322330
}
323331
return true, nil
@@ -521,7 +529,7 @@ func (p *pluginControl) validateMetricTypeSubscription(mt core.RequestedMetric,
521529

522530
// No metric found return error.
523531
if m == nil {
524-
serrs = append(serrs, serror.New(errors.New(fmt.Sprintf("no metric found cannot subscribe: (%s) version(%d)", mt.Namespace(), mt.Version()))))
532+
serrs = append(serrs, serror.New(fmt.Errorf("no metric found cannot subscribe: (%s) version(%d)", mt.Namespace(), mt.Version())))
525533
return nil, serrs
526534
}
527535

@@ -603,7 +611,7 @@ func (p *pluginControl) gatherCollectors(mts []core.Metric) ([]core.Plugin, []se
603611
return plugins, nil
604612
}
605613

606-
func (p *pluginControl) SubscribeDeps(taskId string, mts []core.Metric, plugins []core.Plugin) []serror.SnapError {
614+
func (p *pluginControl) SubscribeDeps(taskID string, mts []core.Metric, plugins []core.Plugin) []serror.SnapError {
607615
var serrs []serror.SnapError
608616

609617
collectors, errs := p.gatherCollectors(mts)
@@ -628,7 +636,7 @@ func (p *pluginControl) SubscribeDeps(taskId string, mts []core.Metric, plugins
628636
serrs = append(serrs, serror.New(err))
629637
return serrs
630638
}
631-
pool.subscribe(taskId, unboundSubscriptionType)
639+
pool.subscribe(taskID, unboundSubscriptionType)
632640
if pool.eligible() {
633641
err = p.verifyPlugin(latest)
634642
if err != nil {
@@ -647,7 +655,7 @@ func (p *pluginControl) SubscribeDeps(taskId string, mts []core.Metric, plugins
647655
serrs = append(serrs, serror.New(err))
648656
return serrs
649657
}
650-
pool.subscribe(taskId, boundSubscriptionType)
658+
pool.subscribe(taskID, boundSubscriptionType)
651659
if pool.eligible() {
652660
pl, err := p.pluginManager.get(fmt.Sprintf("%s:%s:%d", sub.TypeName(), sub.Name(), sub.Version()))
653661
if err != nil {
@@ -666,7 +674,7 @@ func (p *pluginControl) SubscribeDeps(taskId string, mts []core.Metric, plugins
666674
}
667675
}
668676
}
669-
serr := p.sendPluginSubscriptionEvent(taskId, sub)
677+
serr := p.sendPluginSubscriptionEvent(taskID, sub)
670678
if serr != nil {
671679
serrs = append(serrs, serr)
672680
}
@@ -690,13 +698,13 @@ func (p *pluginControl) verifyPlugin(lp *loadedPlugin) error {
690698
return nil
691699
}
692700

693-
func (p *pluginControl) sendPluginSubscriptionEvent(taskId string, pl core.Plugin) serror.SnapError {
701+
func (p *pluginControl) sendPluginSubscriptionEvent(taskID string, pl core.Plugin) serror.SnapError {
694702
pt, err := core.ToPluginType(pl.TypeName())
695703
if err != nil {
696704
return serror.New(err)
697705
}
698706
e := &control_event.PluginSubscriptionEvent{
699-
TaskId: taskId,
707+
TaskId: taskID,
700708
PluginType: int(pt),
701709
PluginName: pl.Name(),
702710
PluginVersion: pl.Version(),
@@ -711,7 +719,7 @@ func (p *pluginControl) sendPluginSubscriptionEvent(taskId string, pl core.Plugi
711719
return nil
712720
}
713721

714-
func (p *pluginControl) UnsubscribeDeps(taskId string, mts []core.Metric, plugins []core.Plugin) []serror.SnapError {
722+
func (p *pluginControl) UnsubscribeDeps(taskID string, mts []core.Metric, plugins []core.Plugin) []serror.SnapError {
715723
var serrs []serror.SnapError
716724

717725
collectors, errs := p.gatherCollectors(mts)
@@ -727,9 +735,9 @@ func (p *pluginControl) UnsubscribeDeps(taskId string, mts []core.Metric, plugin
727735
return serrs
728736
}
729737
if pool != nil {
730-
pool.unsubscribe(taskId)
738+
pool.unsubscribe(taskID)
731739
}
732-
serr := p.sendPluginUnsubscriptionEvent(taskId, sub)
740+
serr := p.sendPluginUnsubscriptionEvent(taskID, sub)
733741
if serr != nil {
734742
serrs = append(serrs, serr)
735743
}
@@ -738,13 +746,13 @@ func (p *pluginControl) UnsubscribeDeps(taskId string, mts []core.Metric, plugin
738746
return serrs
739747
}
740748

741-
func (p *pluginControl) sendPluginUnsubscriptionEvent(taskId string, pl core.Plugin) serror.SnapError {
749+
func (p *pluginControl) sendPluginUnsubscriptionEvent(taskID string, pl core.Plugin) serror.SnapError {
742750
pt, err := core.ToPluginType(pl.TypeName())
743751
if err != nil {
744752
return serror.New(err)
745753
}
746754
e := &control_event.PluginUnsubscriptionEvent{
747-
TaskId: taskId,
755+
TaskId: taskID,
748756
PluginType: int(pt),
749757
PluginName: pl.Name(),
750758
PluginVersion: pl.Version(),

0 commit comments

Comments
 (0)