Fix Job registration request format with ICS
[nonrtric/rapp/ransliceassurance.git] / icsversion / internal / odusliceassurance / app.go
index d313192..020e30d 100644 (file)
@@ -34,15 +34,26 @@ import (
 var started bool
 var icsAddr string
 var consumerPort string
+var jobId string
 
 const (
        THRESHOLD_TPUT          = 7000
        DEFAULT_DEDICATED_RATIO = 15
        NEW_DEDICATED_RATIO     = 25
-       NODE_ID                 = "O-DU-1122"
-       jobId                   = "14e7bb84-a44d-44c1-90b7-6995a92ad83d"
 )
 
+var jobRegistrationInfo = struct {
+       InfoTypeID            string      `json:"info_type_id"`
+       JobResultURI          string      `json:"job_result_uri"`
+       JobOwner              string      `json:"job_owner"`
+       JobDefinition         interface{} `json:"job_definition"`
+       StatusNotificationURI string      `json:"status_notification_uri"`
+}{
+       InfoTypeID:   "Performance_Measurement_Streaming",
+       JobResultURI: "",
+       JobOwner:     "O-DU Slice Assurance Usecase",
+}
+
 type App struct {
        client *restclient.Client
        data   *structures.SliceAssuranceMeas
@@ -54,13 +65,19 @@ var sdnrConfig SdnrConfiguration
 
 func (a *App) Initialize(config *config.Configuration) {
        consumerPort = fmt.Sprint(config.ConsumerPort)
+       jobRegistrationInfo.JobResultURI = config.ConsumerHost + ":" + consumerPort
+       jobRegistrationInfo.StatusNotificationURI = config.ConsumerHost + ":" + consumerPort
+       var job_definition struct{}
+       jobRegistrationInfo.JobDefinition = job_definition
 
        sdnrConfig = SdnrConfiguration{
                SDNRAddress:  config.SDNRAddress,
                SDNRUser:     config.SDNRUser,
                SDNRPassword: config.SDNPassword,
+               NodeId:       config.NodeId,
        }
        icsAddr = config.InfoCoordinatorAddress
+       jobId = config.JobId
 
        a.client = restclient.New(&http.Client{}, false)
        a.data = structures.NewSliceAssuranceMeas()
@@ -111,18 +128,8 @@ func (a *App) statusHandler(w http.ResponseWriter, r *http.Request) {
 }
 
 func (a *App) startHandler(w http.ResponseWriter, r *http.Request) {
-       log.Debug("startHandler: Register job in ICS.")
-       jobRegistrationInfo := struct {
-               InfoTypeID    string      `json:"info_type_id"`
-               JobResultURI  string      `json:"job_result_uri"`
-               JobOwner      string      `json:"job_owner"`
-               JobDefinition interface{} `json:"job_definition"`
-       }{
-               InfoTypeID:    "Performance_Measurement_Streaming",
-               JobResultURI:  "",
-               JobOwner:      "O-DU Slice Assurance Usecase",
-               JobDefinition: "{}",
-       }
+       log.Debug("Register job in ICS.")
+
        putErr := a.client.Put(icsAddr+"/data-consumer/v1/info-jobs/"+jobId, jobRegistrationInfo, nil)
        if putErr != nil {
                http.Error(w, fmt.Sprintf("Unable to register consumer job due to: %v.", putErr), http.StatusBadRequest)