First version of ODU slice assurance usecase
[nonrtric.git] / test / usecases / odusliceassurance / goversion / 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         "fmt"
25
26         log "github.com/sirupsen/logrus"
27         "oransc.org/usecase/oduclosedloop/internal/config"
28         "oransc.org/usecase/oduclosedloop/internal/sliceassurance"
29 )
30
31 const TOPIC string = "/events/unauthenticated.PERFORMANCE_MEASUREMENTS"
32
33 var configuration *config.Config
34
35 func main() {
36         configuration = config.New()
37
38         log.SetLevel(configuration.LogLevel)
39         log.Debug("Using configuration: ", configuration)
40
41         dmaapUrl := configuration.MRHost + ":" + configuration.MRPort
42
43         if err := validateConfiguration(configuration); err != nil {
44                 log.Fatalf("Unable to start consumer due to configuration error: %v", err)
45         }
46
47         a := sliceassurance.App{}
48         a.Initialize(dmaapUrl, configuration.SDNRAddress)
49         a.Run(TOPIC, configuration.Polltime)
50
51 }
52
53 func validateConfiguration(configuration *config.Config) error {
54         if configuration.MRHost == "" || configuration.MRPort == "" {
55                 return fmt.Errorf("message router host and port must be provided")
56         }
57         return nil
58 }