From dbb29d3eb620b0ed223510590030a9a4a3c73d50 Mon Sep 17 00:00:00 2001 From: "aravind.est" Date: Fri, 11 Oct 2024 15:11:03 +0100 Subject: [PATCH] Add random number generation for counter value in https-server Min and Max number passed through configuration and random number generated from it to replace it as counter value RANDOM_CTR_VALUE is the string which gets replaced with the random number. Issue-ID: NONRTRIC-1036 Change-Id: I5bc5c2fe6deb9b0ea0dac5bbaf5b0809d837b318 Signed-off-by: aravind.est --- docker-proj/docker-compose-pm-https.yaml | 3 +++ https-server/README.md | 5 +++++ https-server/main.go | 16 ++++++++++++++++ install/helm/ran/pm-files/pm-template.xml.gz | Bin 10752 -> 10230 bytes install/helm/ran/pm-files/pm-template.xml2 | 5 +++++ install/helm/ran/pm-files/pm.xml.gz | Bin 10654 -> 10097 bytes install/helm/ran/templates/app-deployment.yaml | 6 ++++++ 7 files changed, 35 insertions(+) diff --git a/docker-proj/docker-compose-pm-https.yaml b/docker-proj/docker-compose-pm-https.yaml index e50da91..505d714 100644 --- a/docker-proj/docker-compose-pm-https.yaml +++ b/docker-proj/docker-compose-pm-https.yaml @@ -1,5 +1,6 @@ # ============LICENSE_START=============================================== # Copyright (C) 2023 Nordix Foundation. All rights reserved. +# Copyright (C) 2023-2024 OpenInfra Foundation Europe. All rights reserved. # ======================================================================== # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -30,6 +31,8 @@ services: ALWAYS_RETURN: /ne-files/pm.xml.gz GENERATED_FILE_START_TIME: "${START_TIME}" GENERATED_FILE_TIMEZONE: "+0100" + RANDOM_MIN_NUMBER: "2" + RANDOM_MAX_NUMBER: "20" volumes: - ./ne-files:/ne-files:rw - ./config/https/template-files:/template-files diff --git a/https-server/README.md b/https-server/README.md index e5e6e93..de8982a 100644 --- a/https-server/README.md +++ b/https-server/README.md @@ -28,6 +28,10 @@ The following env vars (all optional) may be set to control the behaviour of the - GENERATED_FILE_TIMEZONE - Time zone to be used for requested files from the url `/generatedfiles/`. Example: "+0100" +- RANDOM_MIN_NUMBER - Minimum possible random number to generate random number + +- RANDOM_MAX_NUMBER - Maximum possible random number to generate random number + If generated files shall be used, load the file pm-template.xml.gz to the /template-files dir in the container. Configure the following for desired behaviour @@ -59,6 +63,7 @@ Configure the following for desired behaviour ## License Copyright (C) 2023 Nordix Foundation. All rights reserved. +Copyright (C) 2023-2024 OpenInfra Foundation Europe. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/https-server/main.go b/https-server/main.go index 406caf8..dbdc7b1 100644 --- a/https-server/main.go +++ b/https-server/main.go @@ -1,5 +1,6 @@ // ============LICENSE_START=============================================== // Copyright (C) 2023 Nordix Foundation. All rights reserved. +// Copyright (C) 2023-2024 OpenInfra Foundation Europe. All rights reserved. // ======================================================================== // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -22,6 +23,7 @@ import ( "bytes" "compress/gzip" "io" + "math/rand" "net/http" "os" "runtime" @@ -48,6 +50,8 @@ const file_template = "pm-template.xml.gz" var always_return_file = os.Getenv("ALWAYS_RETURN") var generated_files_start_time = os.Getenv("GENERATED_FILE_START_TIME") var generated_files_timezone = os.Getenv("GENERATED_FILE_TIMEZONE") +var random_min_value, min_value_error = strconv.Atoi(os.Getenv("RANDOM_MIN_NUMBER")) +var random_max_value, max_value_error = strconv.Atoi(os.Getenv("RANDOM_MAX_NUMBER")) var unzipped_template = "" @@ -211,16 +215,21 @@ func generatedfiles(w http.ResponseWriter, req *http.Request) { nodename := id[30:] nodename = strings.Split(nodename, ".")[0] + //Generating random number + random_value := rand.Intn(random_max_value-random_min_value+1) + random_min_value + template_string := strings.Clone(unzipped_template) log.Debug("Replacing BEGINTIME with: ", begintime) log.Debug("Replacing ENDTIME with: ", endtime) + log.Debug("Replacing RANDOM_CTR_VALUE with: ", strconv.Itoa(int(random_value))) log.Debug("Replacing CTR_VALUE with: ", strconv.Itoa(int(file_index))) log.Debug("Replacing NODE_NAME with: ", nodename) template_string = strings.Replace(template_string, "BEGINTIME", begintime, -1) template_string = strings.Replace(template_string, "ENDTIME", endtime, -1) + template_string = strings.Replace(template_string, "RANDOM_CTR_VALUE", strconv.Itoa(int(random_value)), -1) template_string = strings.Replace(template_string, "CTR_VALUE", strconv.Itoa(int(file_index)), -1) template_string = strings.Replace(template_string, "NODE_NAME", nodename, -1) @@ -257,6 +266,13 @@ func main() { log.Info("Server starting...") + if min_value_error != nil { + random_min_value = 1 + } + if max_value_error != nil { + random_max_value = 10 + } + rtr := mux.NewRouter() rtr.HandleFunc("/files/{fileid}", files) rtr.HandleFunc("/generatedfiles/{fileid}", generatedfiles) diff --git a/install/helm/ran/pm-files/pm-template.xml.gz b/install/helm/ran/pm-files/pm-template.xml.gz index 517be242bb23b2413b6d42c348d3f0ce59c84e92..0e3be9c7d5612758d49e8a4df1f9b32d9b713ab6 100644 GIT binary patch literal 10230 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 literal 10752 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 E0Vb+Y%K!iX diff --git a/install/helm/ran/pm-files/pm-template.xml2 b/install/helm/ran/pm-files/pm-template.xml2 index 3d95954..c8d77af 100644 --- a/install/helm/ran/pm-files/pm-template.xml2 +++ b/install/helm/ran/pm-files/pm-template.xml2 @@ -656,6 +656,7 @@ pmCounterNumber252Qos pmCounterNumber254 pmCounterNumber254Qos + pmRadioThpVolUl CTR_VALUE CTR_VALUE @@ -821,6 +822,7 @@ CTR_VALUE CTR_VALUE CTR_VALUE + RANDOM_CTR_VALUE CTR_VALUE @@ -987,6 +989,7 @@ CTR_VALUE CTR_VALUE CTR_VALUE + RANDOM_CTR_VALUE CTR_VALUE @@ -1153,6 +1156,7 @@ CTR_VALUE CTR_VALUE CTR_VALUE + RANDOM_CTR_VALUE CTR_VALUE @@ -1319,6 +1323,7 @@ CTR_VALUE CTR_VALUE CTR_VALUE + RANDOM_CTR_VALUE diff --git a/install/helm/ran/pm-files/pm.xml.gz b/install/helm/ran/pm-files/pm.xml.gz index df903596ca851beb4dbfb61d3d5ba8fd21eecbb6..ee22685e6cae1b0f9425a7b2ae1d4d5567138320 100644 GIT binary patch literal 10097 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