Merge "Register producer DMaaP mediator producer"
[nonrtric.git] / dmaap-mediator-producer / main.go
1 // -
2 //   ========================LICENSE_START=================================
3 //   O-RAN-SC
4 //   %%
5 //   Copyright (C) 2021: Nordix Foundation
6 //   %%
7 //   Licensed under the Apache License, Version 2.0 (the "License");
8 //   you may not use this file except in compliance with the License.
9 //   You may obtain a copy of the License at
10 //
11 //        http://www.apache.org/licenses/LICENSE-2.0
12 //
13 //   Unless required by applicable law or agreed to in writing, software
14 //   distributed under the License is distributed on an "AS IS" BASIS,
15 //   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 //   See the License for the specific language governing permissions and
17 //   limitations under the License.
18 //   ========================LICENSE_END===================================
19 //
20
21 package main
22
23 import (
24         "time"
25
26         log "github.com/sirupsen/logrus"
27         "oransc.org/nonrtric/dmaapmediatorproducer/internal/config"
28         "oransc.org/nonrtric/dmaapmediatorproducer/internal/jobtypes"
29 )
30
31 var configuration *config.Config
32
33 func init() {
34         configuration = config.New()
35         if loglevel, err := log.ParseLevel(configuration.LogLevel); err == nil {
36                 log.SetLevel(loglevel)
37         } else {
38                 log.Warnf("Invalid log level: %v. Log level will be Info!", configuration.LogLevel)
39         }
40
41         log.Debug("Initializing DMaaP Mediator Producer")
42         if configuration.InfoJobCallbackUrl == "" {
43                 log.Fatal("Missing INFO_JOB_CALLBACK_URL")
44         }
45         if configuration.InfoProducerSupervisionCallbackUrl == "" {
46                 log.Fatal("Missing INFO_PRODUCER_SUPERVISION_CALLBACK_URL")
47         }
48
49         registrator := config.NewRegistratorImpl(configuration.InfoCoordinatorAddress)
50         if types, err := jobtypes.GetTypes(); err == nil {
51                 if regErr := registrator.RegisterTypes(types); regErr != nil {
52                         log.Fatalf("Unable to register all types due to: %v", regErr)
53                 }
54         } else {
55                 log.Fatalf("Unable to get types to register due to: %v", err)
56         }
57         producer := config.ProducerRegistrationInfo{
58                 InfoProducerSupervisionCallbackUrl: configuration.InfoProducerSupervisionCallbackUrl,
59                 SupportedInfoTypes:                 jobtypes.GetSupportedTypes(),
60                 InfoJobCallbackUrl:                 configuration.InfoJobCallbackUrl,
61         }
62         if err := registrator.RegisterProducer("DMaaP_Mediator_Producer", &producer); err != nil {
63                 log.Fatalf("Unable to register producer due to: %v", err)
64         }
65 }
66
67 func main() {
68         log.Debug("Starting DMaaP Mediator Producer")
69         time.Sleep(1000 * time.Millisecond)
70 }