HDFSWriter microservice working copy
[demo.git] / vnfs / DAaaS / microservices / GoApps / src / go-hdfs-writer / pkg / utils / kafka-config.go
diff --git a/vnfs/DAaaS/microservices/GoApps/src/go-hdfs-writer/pkg/utils/kafka-config.go b/vnfs/DAaaS/microservices/GoApps/src/go-hdfs-writer/pkg/utils/kafka-config.go
new file mode 100644 (file)
index 0000000..080bfd4
--- /dev/null
@@ -0,0 +1,55 @@
+package utils
+
+
+import (
+       "os"
+)
+
+// SetKafkaParametersByObjectMap sets the  value of the kafka parameters
+// and sets the KafkaConfig object 
+func SetKafkaParametersByObjectMap(m map[string]interface{}) KafkaConfig {
+       kc := KafkaConfig{}
+       kc.broker = m["broker"].(string)
+       kc.group = m["group"].(string)
+       kc.topic = m["topic"].(string)
+
+       return kc
+}
+
+// SetKafkaParametersByEnvVariables sets the kafka parameters
+func SetKafkaParametersByEnvVariables() KafkaConfig {
+       slogger := GetLoggerInstance()
+       
+       kafkaConfigObject := KafkaConfig{
+               broker: os.Getenv("BROKER"),
+               group: os.Getenv("GROUP"),
+               topic: os.Getenv("TOPIC"),
+       }
+       slogger.Infof("::broker:: %s", kafkaConfigObject.broker)
+       slogger.Infof("::group:: %s", kafkaConfigObject.group)
+       slogger.Infof("::topic:: %s", kafkaConfigObject.topic)
+
+       return kafkaConfigObject
+}
+
+// KafkaConfig contains all the config parameters needed for kafka. This can be extended over time
+type KafkaConfig struct {
+       broker string
+       group string
+       topic string
+}
+
+// GetBroker returns kafka broker configured
+func (k KafkaConfig) GetBroker() string {
+       return k.broker
+}
+
+// GetGroup returns kafka group configured
+func (k KafkaConfig) GetGroup() string {
+       return k.group
+}
+
+// GetTopic returns kafka topic configured
+func (k KafkaConfig) GetTopic() string {
+       return k.topic
+}
\ No newline at end of file