Files
fission-src/pkg/mqtrigger/util/util.go
T
Rahul BhatiandGitHub 8e0571c7c9 Fission MQT integration with keda (#1657)
Fission MQT integration based on Keda with Kafka connector
2020-07-14 21:35:48 +05:30

44 lines
1.2 KiB
Go

package util
import (
"fmt"
"os"
"strconv"
"strings"
)
// FissionMetadata contains common fission side fields
type FissionMetadata struct {
// fission
Topic string
ResponseTopic string
ErrorTopic string
FunctionURL string
MaxRetries int
ContentType string
TriggerName string
}
// ParseFissionMetadata parses fission side common fields and returns as fissionMetadata or returns error
func ParseFissionMetadata() (FissionMetadata, error) {
for _, envVars := range []string{"TOPIC", "FUNCTION_URL", "MAX_RETRIES", "CONTENT_TYPE", "TRIGGER_NAME"} {
if os.Getenv(envVars) == "" {
return FissionMetadata{}, fmt.Errorf("environment variable not found: %v", envVars)
}
}
meta := FissionMetadata{
Topic: os.Getenv("TOPIC"),
ResponseTopic: os.Getenv("RESPONSE_TOPIC"),
ErrorTopic: os.Getenv("ERROR_TOPIC"),
FunctionURL: os.Getenv("FUNCTION_URL"),
ContentType: os.Getenv("CONTENT_TYPE"),
TriggerName: os.Getenv("TRIGGER_NAME"),
}
val, err := strconv.ParseInt(strings.TrimSpace(os.Getenv("MAX_RETRIES")), 0, 64)
if err != nil {
return FissionMetadata{}, fmt.Errorf("failed to parse value from MAX_RETRIES environment variable %v", err)
}
meta.MaxRetries = int(val)
return meta, nil
}