Update from master

Squashed commit of the following:

commit 0389d9e766bb7049d45dbcc9e322de22c7203fae
Author: selvi.j <selvi.j@tataelxsi.co.in>
Date:   Wed Apr 26 12:13:10 2023 +0000

    Coverity-CWE 330: Use of Insufficiently Random Values

    Added fix for CWE 330: Use of Insufficiently Random Value (Cryptographically weak PRNG)

    Change-Id: If17007c4e14fa91b3c378a504e7fbd03ea44a69b
    Signed-off-by: selvi.j <selvi.j@tataelxsi.co.in>

commit 375aeb2647d733ac894b2408f66d36d55217c92d
Author: Mark Beierl <mark.beierl@canonical.com>
Date:   Wed May 10 13:55:55 2023 -0400

    Update to Python 3.10 and Ubuntu 22.04

    Removed stale test file that has linting errors
    Removed event loops
    Updated Python dependencies

    Change-Id: I9462b0d67ea6b5bd4c869b5f2bc8d6c57d78660c
    Signed-off-by: Mark Beierl <mark.beierl@canonical.com>

commit 9632c1ae3dadb73cf2f8af56e78f1363a977a1e2
Author: garciadeblas <gerardo.garciadeblas@telefonica.com>
Date:   Tue Apr 18 14:42:40 2023 +0200

    Clean stage-archive.sh and use allowlist_externals in tox.ini

    Change-Id: I214df1372915a96db81ba36faff93dabffe18b6b
    Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>

commit e88401b595fe816b34308f1960aa7b545590f5dc
Author: Gabriel Cuba <gcuba@whitestack.com>
Date:   Wed Apr 5 15:24:52 2023 -0500

    Feature 10975: adds vim-flavor-id to ns_instantiate_vdu schema

    Change-Id: Ib638fa9d29f3899bcc4609634d3a99e485152e5d
    Signed-off-by: Gabriel Cuba <gcuba@whitestack.com>

commit 9af2a4785d3a77772fd205aa572cc6a64d4d1003
Author: Gulsum Atici <gulsum.atici@canonical.com>
Date:   Tue Mar 28 17:50:48 2023 +0300

    Fix Bug 2229 Set fixed IP address for VDU through VNFD and the instantiation params

    Change-Id: Ia912cd52a0965a6c2b23faa2b88d9b4d0569fd3f
    Signed-off-by: Gulsum Atici <gulsum.atici@canonical.com>

commit 120105b5746ab35c004e523aaada39dc8d517888
Author: garciadeblas <gerardo.garciadeblas@telefonica.com>
Date:   Wed Feb 22 16:52:24 2023 +0100

    Use ip_profile_schema in validation.py

    Change-Id: If5742f94acba919d5400fabc4c601e45b05c1bdb
    Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>

commit 4cd875d2a38488b5e717258d548eeb8e557ec9a8
Author: garciadeblas <gerardo.garciadeblas@telefonica.com>
Date:   Tue Feb 14 19:05:34 2023 +0100

    Replace yaml.load by yaml.safe_load

    Change-Id: I4f6c3802e40d763fc2175dbb2bd94dbc79b813c2
    Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>

Change-Id: I964dfd4f263ba6c15553ffb925ff0174835d7368
Signed-off-by: Dario Faccin <dario.faccin@canonical.com>
diff --git a/osm_nbi/tests/test_instance_topics.py b/osm_nbi/tests/test_instance_topics.py
index 96da68c..a883bdc 100644
--- a/osm_nbi/tests/test_instance_topics.py
+++ b/osm_nbi/tests/test_instance_topics.py
@@ -49,13 +49,11 @@
         self.nslcmop_topic = NsLcmOpTopic(self.db, self.fs, self.msg, None)
         self.nslcmop_topic.check_quota = Mock(return_value=None)  # skip quota
 
-        self.db.create_list(
-            "vim_accounts", yaml.load(db_vim_accounts_text, Loader=yaml.Loader)
-        )
-        self.db.create_list("nsds", yaml.load(db_nsds_text, Loader=yaml.Loader))
-        self.db.create_list("vnfds", yaml.load(db_vnfds_text, Loader=yaml.Loader))
-        self.db.create_list("vnfrs", yaml.load(db_vnfrs_text, Loader=yaml.Loader))
-        self.db.create_list("nsrs", yaml.load(db_nsrs_text, Loader=yaml.Loader))
+        self.db.create_list("vim_accounts", yaml.safe_load(db_vim_accounts_text))
+        self.db.create_list("nsds", yaml.safe_load(db_nsds_text))
+        self.db.create_list("vnfds", yaml.safe_load(db_vnfds_text))
+        self.db.create_list("vnfrs", yaml.safe_load(db_vnfrs_text))
+        self.db.create_list("nsrs", yaml.safe_load(db_nsrs_text))
         self.db.create = Mock(return_value="created_id")
         self.nsd = self.db.get_list("nsds")[0]
         self.nsd_id = self.nsd["_id"]
@@ -389,8 +387,8 @@
         self.nslcmop_topic = NsLcmOpTopic(self.db, self.fs, self.msg, None)
 
     def test_get_vnfd_from_vnf_member_revision(self):
-        test_vnfr = yaml.load(db_vnfrs_text, Loader=yaml.Loader)[0]
-        test_vnfd = yaml.load(db_vnfds_text, Loader=yaml.Loader)
+        test_vnfr = yaml.safe_load(db_vnfrs_text)[0]
+        test_vnfd = yaml.safe_load(db_vnfds_text)
         self.db.get_one.side_effect = [test_vnfr, test_vnfd]
         _ = self.nslcmop_topic._get_vnfd_from_vnf_member_index("1", test_vnfr["_id"])
         self.assertEqual(
@@ -405,9 +403,9 @@
         )
 
     def test_get_vnfd_from_vnf_member_no_revision(self):
-        test_vnfr = yaml.load(db_vnfrs_text, Loader=yaml.Loader)[0]
+        test_vnfr = yaml.safe_load(db_vnfrs_text)[0]
         test_vnfr["revision"] = 3
-        test_vnfd = yaml.load(db_vnfds_text, Loader=yaml.Loader)
+        test_vnfd = yaml.safe_load(db_vnfds_text)
         self.db.get_one.side_effect = [test_vnfr, test_vnfd]
         _ = self.nslcmop_topic._get_vnfd_from_vnf_member_index("1", test_vnfr["_id"])
         self.assertEqual(
@@ -434,9 +432,9 @@
         session = {}
 
         with self.subTest(i=1, t="VNF instance does not belong to NS"):
-            test_vnfr = yaml.load(db_vnfrs_text, Loader=yaml.Loader)
+            test_vnfr = yaml.safe_load(db_vnfrs_text)
             test_vnfr[0]["revision"] = 2
-            test_nsr = yaml.load(db_nsrs_text, Loader=yaml.Loader)
+            test_nsr = yaml.safe_load(db_nsrs_text)
             test_nsr[0]["constituent-vnfr-ref"][
                 0
             ] = "99d90b0c-faff-4b9f-bccd-017f33985984"
@@ -460,9 +458,9 @@
             )
 
         with self.subTest(i=2, t="Ns update request validated with no exception"):
-            test_vnfr = yaml.load(db_vnfrs_text, Loader=yaml.Loader)
+            test_vnfr = yaml.safe_load(db_vnfrs_text)
             test_vnfr[0]["revision"] = 2
-            test_nsr = yaml.load(db_nsrs_text, Loader=yaml.Loader)
+            test_nsr = yaml.safe_load(db_nsrs_text)
             self.db.create_list("vnfrs", test_vnfr)
             self.db.create_list("nsrs", test_nsr)
             nsrs = self.db.get_list("nsrs")[1]
@@ -498,9 +496,9 @@
             )
 
         with self.subTest(i=4, t="wrong vnfdid is given as an update parameter"):
-            test_vnfr = yaml.load(db_vnfrs_text, Loader=yaml.Loader)
+            test_vnfr = yaml.safe_load(db_vnfrs_text)
             test_vnfr[0]["revision"] = 2
-            test_nsr = yaml.load(db_nsrs_text, Loader=yaml.Loader)
+            test_nsr = yaml.safe_load(db_nsrs_text)
             self.db.create_list("vnfrs", test_vnfr)
             self.db.create_list("nsrs", test_nsr)
             nsrs = self.db.get_list("nsrs")[2]
@@ -524,9 +522,9 @@
         with self.subTest(
             i=5, t="Ns update REMOVE_VNF request validated with no exception"
         ):
-            test_vnfr = yaml.load(db_vnfrs_text, Loader=yaml.Loader)
+            test_vnfr = yaml.safe_load(db_vnfrs_text)
             test_vnfr[0]["revision"] = 2
-            test_nsr = yaml.load(db_nsrs_text, Loader=yaml.Loader)
+            test_nsr = yaml.safe_load(db_nsrs_text)
             self.db.create_list("vnfrs", test_vnfr)
             self.db.create_list("nsrs", test_nsr)
             nsrs = self.db.get_list("nsrs")[1]
@@ -550,11 +548,9 @@
         self.nsr_topic = NsrTopic(self.db, self.fs, self.msg, None)
         self.nsr_topic.check_quota = Mock(return_value=None)  # skip quota
 
-        self.db.create_list(
-            "vim_accounts", yaml.load(db_vim_accounts_text, Loader=yaml.Loader)
-        )
-        self.db.create_list("nsds", yaml.load(db_nsds_text, Loader=yaml.Loader))
-        self.db.create_list("vnfds", yaml.load(db_vnfds_text, Loader=yaml.Loader))
+        self.db.create_list("vim_accounts", yaml.safe_load(db_vim_accounts_text))
+        self.db.create_list("nsds", yaml.safe_load(db_nsds_text))
+        self.db.create_list("vnfds", yaml.safe_load(db_vnfds_text))
         self.db.create = Mock(return_value="created_id")
         self.nsd = self.db.get_list("nsds")[0]
         self.nsd_id = self.nsd["_id"]
@@ -722,7 +718,7 @@
         }
         filter_q = {}
         for refresh_status in ("true", "false"):
-            self.db.create_list("nsrs", yaml.load(db_nsrs_text, Loader=yaml.Loader))
+            self.db.create_list("nsrs", yaml.safe_load(db_nsrs_text))
             actual_nsr = self.db.get_list("nsrs")[0]
             nsr_id = actual_nsr["_id"]
             filter_q["vcaStatus-refresh"] = refresh_status
@@ -744,7 +740,7 @@
         }
         filter_q = {"vcaStatus-refresh": "true"}
         time_delta = 120
-        self.db.create_list("nsrs", yaml.load(db_nsrs_text, Loader=yaml.Loader))
+        self.db.create_list("nsrs", yaml.safe_load(db_nsrs_text))
         nsr = self.db.get_list("nsrs")[0]
 
         # When vcaStatus-refresh is true
@@ -779,7 +775,7 @@
         )
 
     def test_delete_ns(self):
-        self.db.create_list("nsrs", yaml.load(db_nsrs_text, Loader=yaml.Loader))
+        self.db.create_list("nsrs", yaml.safe_load(db_nsrs_text))
         self.nsr = self.db.get_list("nsrs")[0]
         self.nsr_id = self.nsr["_id"]
         self.db_set_one = self.db.set_one