Code Review
/
oam.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
review
|
tree
raw
|
patch
|
inline
| side by side (from parent 1:
28ef592
)
Add to_directory method to relevant object classes
80/12680/1
master
author
Martin Skorupski
<martin.skorupski@highstreet-technologies.com>
Fri, 5 Apr 2024 13:42:23 +0000
(15:42 +0200)
committer
Martin Skorupski
<martin.skorupski@highstreet-technologies.com>
Fri, 5 Apr 2024 13:42:30 +0000
(15:42 +0200)
- method added to create folder structure for topology nodes
Issue-ID: OAM-408
Change-Id: I55900404eac916a37d9c761b4eda478528d77017
Signed-off-by: Martin Skorupski <martin.skorupski@highstreet-technologies.com>
12 files changed:
code/network-generator/network_generation/cli.py
patch
|
blob
|
history
code/network-generator/network_generation/model/python/nr_cell_du.py
patch
|
blob
|
history
code/network-generator/network_generation/model/python/o_ran_cloud_du.py
patch
|
blob
|
history
code/network-generator/network_generation/model/python/o_ran_cu.py
patch
|
blob
|
history
code/network-generator/network_generation/model/python/o_ran_du.py
patch
|
blob
|
history
code/network-generator/network_generation/model/python/o_ran_near_rt_ric.py
patch
|
blob
|
history
code/network-generator/network_generation/model/python/o_ran_network.py
patch
|
blob
|
history
code/network-generator/network_generation/model/python/o_ran_node.py
patch
|
blob
|
history
code/network-generator/network_generation/model/python/o_ran_ru.py
patch
|
blob
|
history
code/network-generator/network_generation/model/python/o_ran_smo.py
patch
|
blob
|
history
code/network-generator/network_generation/model/python/tower.py
patch
|
blob
|
history
code/network-generator/network_generation/view/network_viewer.py
patch
|
blob
|
history
diff --git
a/code/network-generator/network_generation/cli.py
b/code/network-generator/network_generation/cli.py
index
fa8a8f3
..
e156fcd
100644
(file)
--- a/
code/network-generator/network_generation/cli.py
+++ b/
code/network-generator/network_generation/cli.py
@@
-59,6
+59,13
@@
def main() -> None: # pragma: no cover
configuration["generationTasks"]["topology"]["compressed"]
)
configuration["generationTasks"]["topology"]["compressed"]
)
+ # dir structure for day0 configuration
+ # Note: compressed option ignored
+ if configuration["generationTasks"]["network_dir"]["enabled"] is True:
+ viewer.to_directory(
+ output_folder
+ )
+
# svg xml
if configuration["generationTasks"]["svg"]["enabled"] is True:
viewer.svg(
# svg xml
if configuration["generationTasks"]["svg"]["enabled"] is True:
viewer.svg(
diff --git
a/code/network-generator/network_generation/model/python/nr_cell_du.py
b/code/network-generator/network_generation/model/python/nr_cell_du.py
index
acdafe1
..
13fc42b
100644
(file)
--- a/
code/network-generator/network_generation/model/python/nr_cell_du.py
+++ b/
code/network-generator/network_generation/model/python/nr_cell_du.py
@@
-240,3
+240,6
@@
class NrCellDu(ORanNode):
def toSvg(self) -> ET.Element:
return ET.Element("to-be-implemented")
def toSvg(self) -> ET.Element:
return ET.Element("to-be-implemented")
+
+ def to_directory(self, parent_dir: str) -> None:
+ pass
diff --git
a/code/network-generator/network_generation/model/python/o_ran_cloud_du.py
b/code/network-generator/network_generation/model/python/o_ran_cloud_du.py
index
b97f97e
..
d3a4d10
100644
(file)
--- a/
code/network-generator/network_generation/model/python/o_ran_cloud_du.py
+++ b/
code/network-generator/network_generation/model/python/o_ran_cloud_du.py
@@
-136,3
+136,7
@@
class ORanCloudDu(ORanNode):
def toSvg(self) -> ET.Element:
return ET.Element("to-be-implemented")
def toSvg(self) -> ET.Element:
return ET.Element("to-be-implemented")
+
+ def to_directory(self, parent_dir: str) -> None:
+ for tower in self.towers:
+ tower.to_directory(parent_dir)
diff --git
a/code/network-generator/network_generation/model/python/o_ran_cu.py
b/code/network-generator/network_generation/model/python/o_ran_cu.py
index
be0006d
..
2df40f6
100644
(file)
--- a/
code/network-generator/network_generation/model/python/o_ran_cu.py
+++ b/
code/network-generator/network_generation/model/python/o_ran_cu.py
@@
-143,3
+143,7
@@
class ORanCu(ORanNode):
def toSvg(self) -> ET.Element:
return ET.Element("to-be-implemented")
def toSvg(self) -> ET.Element:
return ET.Element("to-be-implemented")
+
+ def to_directory(self, parent_dir: str) -> None:
+ for o_ran_cloud_du in self.o_ran_cloud_dus:
+ o_ran_cloud_du.to_directory(parent_dir)
diff --git
a/code/network-generator/network_generation/model/python/o_ran_du.py
b/code/network-generator/network_generation/model/python/o_ran_du.py
index
0392d2c
..
98e8c1a
100644
(file)
--- a/
code/network-generator/network_generation/model/python/o_ran_du.py
+++ b/
code/network-generator/network_generation/model/python/o_ran_du.py
@@
-18,6
+18,7
@@
A Class representing an O-RAN distributed unit (ORanDu)
"""
import xml.etree.ElementTree as ET
A Class representing an O-RAN distributed unit (ORanDu)
"""
import xml.etree.ElementTree as ET
+import os
from typing import Any, cast
from network_generation.model.python.o_ran_node import IORanNode, ORanNode
from typing import Any, cast
from network_generation.model.python.o_ran_node import IORanNode, ORanNode
@@
-54,6
+55,7
@@
class ORanDu(ORanNode):
if o_ran_du_data and "oRanRuCount" in o_ran_du_data
else 1
)
if o_ran_du_data and "oRanRuCount" in o_ran_du_data
else 1
)
+ self.type = "ntsim-ng-o-du"
def _to_o_ran_du_data(self, data: dict[str, Any]) -> IORanDu:
result: IORanDu = default_value
def _to_o_ran_du_data(self, data: dict[str, Any]) -> IORanDu:
result: IORanDu = default_value
@@
-114,3
+116,11
@@
class ORanDu(ORanNode):
def toSvg(self) -> ET.Element:
return ET.Element("to-be-implemented")
def toSvg(self) -> ET.Element:
return ET.Element("to-be-implemented")
+
+ def to_directory(self, parent_dir: str) -> None:
+ parent_path = os.path.join(parent_dir, self.type)
+ path = os.path.join(parent_path, self.name)
+ if not os.path.exists(parent_path):
+ os.makedirs(parent_path, exist_ok=True)
+ if not os.path.exists(path):
+ os.mkdir(path)
diff --git
a/code/network-generator/network_generation/model/python/o_ran_near_rt_ric.py
b/code/network-generator/network_generation/model/python/o_ran_near_rt_ric.py
index
5a44843
..
17208f8
100644
(file)
--- a/
code/network-generator/network_generation/model/python/o_ran_near_rt_ric.py
+++ b/
code/network-generator/network_generation/model/python/o_ran_near_rt_ric.py
@@
-145,3
+145,7
@@
class ORanNearRtRic(ORanNode):
def toSvg(self) -> ET.Element:
return ET.Element("to-be-implemented")
def toSvg(self) -> ET.Element:
return ET.Element("to-be-implemented")
+
+ def to_directory(self, parent_dir: str) -> None:
+ for o_ran_cu in self.o_ran_cus:
+ o_ran_cu.to_directory(parent_dir)
diff --git
a/code/network-generator/network_generation/model/python/o_ran_network.py
b/code/network-generator/network_generation/model/python/o_ran_network.py
index
962e5b1
..
901e83f
100644
(file)
--- a/
code/network-generator/network_generation/model/python/o_ran_network.py
+++ b/
code/network-generator/network_generation/model/python/o_ran_network.py
@@
-17,6
+17,7
@@
Module for a class representing a O-RAN Network
"""
import xml.etree.ElementTree as ET
Module for a class representing a O-RAN Network
"""
import xml.etree.ElementTree as ET
+import os
from typing import Any, cast
import network_generation.model.python.hexagon as Hexagon
from typing import Any, cast
import network_generation.model.python.hexagon as Hexagon
@@
-148,6
+149,9
@@
class ORanNetwork(ORanObject):
}
}
}
}
+ def to_directory(self, parent_dir: str) -> None:
+ self._o_ran_smo.to_directory(os.path.join(parent_dir, self.id))
+
def toKml(self) -> ET.Element:
root: ET.Element = ET.Element(
"kml", xmlns="http://www.opengis.net/kml/2.2"
def toKml(self) -> ET.Element:
root: ET.Element = ET.Element(
"kml", xmlns="http://www.opengis.net/kml/2.2"
diff --git
a/code/network-generator/network_generation/model/python/o_ran_node.py
b/code/network-generator/network_generation/model/python/o_ran_node.py
index
6a2b3cb
..
8dba3bc
100644
(file)
--- a/
code/network-generator/network_generation/model/python/o_ran_node.py
+++ b/
code/network-generator/network_generation/model/python/o_ran_node.py
@@
-216,3
+216,7
@@
class ORanNode(ORanObject):
@abstractmethod
def toSvg(self) -> ET.Element:
pass
@abstractmethod
def toSvg(self) -> ET.Element:
pass
+
+ @abstractmethod
+ def to_directory(self, parent_dir: str) -> None:
+ pass
diff --git
a/code/network-generator/network_generation/model/python/o_ran_ru.py
b/code/network-generator/network_generation/model/python/o_ran_ru.py
index
265e6f4
..
c88dfec
100644
(file)
--- a/
code/network-generator/network_generation/model/python/o_ran_ru.py
+++ b/
code/network-generator/network_generation/model/python/o_ran_ru.py
@@
-18,6
+18,7
@@
A Class representing an O-RAN radio unit (ORanRu)
"""
import xml.etree.ElementTree as ET
A Class representing an O-RAN radio unit (ORanRu)
"""
import xml.etree.ElementTree as ET
+import os
from typing import Any, cast
from network_generation.model.python.nr_cell_du import NrCellDu
from typing import Any, cast
from network_generation.model.python.nr_cell_du import NrCellDu
@@
-70,6
+71,7
@@
class ORanRu(ORanNode):
)
self._cells: list[NrCellDu] = self._create_cells()
name: str = self.name.replace("RU", "DU")
)
self._cells: list[NrCellDu] = self._create_cells()
name: str = self.name.replace("RU", "DU")
+ self.type = "ntsim-ng-o-ru"
o_ran_du_data: dict[str, Any] = {
"name": name,
o_ran_du_data: dict[str, Any] = {
"name": name,
@@
-185,3
+187,12
@@
class ORanRu(ORanNode):
def toSvg(self) -> ET.Element:
return ET.Element("to-be-implemented")
def toSvg(self) -> ET.Element:
return ET.Element("to-be-implemented")
+
+ def to_directory(self, parent_dir: str) -> None:
+ self.oRanDu.to_directory(parent_dir)
+ parent_path = os.path.join(parent_dir, self.type)
+ path = os.path.join(parent_path, self.name)
+ if not os.path.exists(parent_path):
+ os.makedirs(parent_path, exist_ok=True)
+ if not os.path.exists(path):
+ os.mkdir(path)
diff --git
a/code/network-generator/network_generation/model/python/o_ran_smo.py
b/code/network-generator/network_generation/model/python/o_ran_smo.py
index
9308291
..
d9a7e9a
100644
(file)
--- a/
code/network-generator/network_generation/model/python/o_ran_smo.py
+++ b/
code/network-generator/network_generation/model/python/o_ran_smo.py
@@
-153,3
+153,7
@@
class ORanSmo(ORanNode):
def toSvg(self) -> ET.Element:
return ET.Element("not-implemented-yet-TODO")
def toSvg(self) -> ET.Element:
return ET.Element("not-implemented-yet-TODO")
+
+ def to_directory(self, parent_dir: str) -> None:
+ for ric in self.o_ran_near_rt_rics:
+ ric.to_directory(parent_dir)
diff --git
a/code/network-generator/network_generation/model/python/tower.py
b/code/network-generator/network_generation/model/python/tower.py
index
dd1eb70
..
2aae0b3
100644
(file)
--- a/
code/network-generator/network_generation/model/python/tower.py
+++ b/
code/network-generator/network_generation/model/python/tower.py
@@
-154,3
+154,7
@@
class Tower(ORanNode):
def toSvg(self) -> ET.Element:
return ET.Element("to-be-implemented")
def toSvg(self) -> ET.Element:
return ET.Element("to-be-implemented")
+
+ def to_directory(self, parent_dir: str) -> None:
+ for o_ran_ru in self.o_ran_rus:
+ o_ran_ru.to_directory(parent_dir)
diff --git
a/code/network-generator/network_generation/view/network_viewer.py
b/code/network-generator/network_generation/view/network_viewer.py
index
b55b476
..
750a661
100644
(file)
--- a/
code/network-generator/network_generation/view/network_viewer.py
+++ b/
code/network-generator/network_generation/view/network_viewer.py
@@
-58,6
+58,13
@@
class NetworkViewer:
"""
print(self.__network)
"""
print(self.__network)
+ def to_directory(self, parent_dir: str) -> None:
+ """
+ Method converting the network to a subdirectory file structure
+ """
+ self.__network.to_directory(parent_dir)
+ print(f'Directory structure saved to "{parent_dir}"')
+
def save(self, filename: str, compressed: bool = True) -> None:
"""
Method saving the class content to a file in json format.
def save(self, filename: str, compressed: bool = True) -> None:
"""
Method saving the class content to a file in json format.