mirror of
https://github.com/turbot/steampipe.git
synced 2025-12-19 18:12:43 -05:00
53 lines
1.2 KiB
Go
53 lines
1.2 KiB
Go
package pluginmanager_service
|
|
|
|
import (
|
|
"github.com/turbot/pipe-fittings/v2/plugin"
|
|
"github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto"
|
|
)
|
|
|
|
// RateLimiterFromProto converts the proto format RateLimiterDefinition into a Defintion
|
|
func RateLimiterFromProto(p *proto.RateLimiterDefinition, pluginImageRef, pluginInstance string) (*plugin.RateLimiter, error) {
|
|
var res = &plugin.RateLimiter{
|
|
Name: p.Name,
|
|
Scope: p.Scope,
|
|
}
|
|
if p.FillRate != 0 {
|
|
res.FillRate = &p.FillRate
|
|
res.BucketSize = &p.BucketSize
|
|
}
|
|
if p.MaxConcurrency != 0 {
|
|
res.MaxConcurrency = &p.MaxConcurrency
|
|
}
|
|
if p.Where != "" {
|
|
res.Where = &p.Where
|
|
}
|
|
if res.Scope == nil {
|
|
res.Scope = []string{}
|
|
}
|
|
// set ImageRef and Plugin fields
|
|
res.SetPluginImageRef(pluginImageRef)
|
|
res.PluginInstance = pluginInstance
|
|
return res, nil
|
|
}
|
|
|
|
func RateLimiterAsProto(l *plugin.RateLimiter) *proto.RateLimiterDefinition {
|
|
res := &proto.RateLimiterDefinition{
|
|
Name: l.Name,
|
|
Scope: l.Scope,
|
|
}
|
|
if l.MaxConcurrency != nil {
|
|
res.MaxConcurrency = *l.MaxConcurrency
|
|
}
|
|
if l.BucketSize != nil {
|
|
res.BucketSize = *l.BucketSize
|
|
}
|
|
if l.FillRate != nil {
|
|
res.FillRate = *l.FillRate
|
|
}
|
|
if l.Where != nil {
|
|
res.Where = *l.Where
|
|
}
|
|
|
|
return res
|
|
}
|