X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=code%2Fnetwork-generator%2Fnetwork_generation%2Fcli.py;h=e156fcdfeee72a3d141f19719c0b72c95399a021;hb=refs%2Fheads%2Fmaster;hp=806727395bfef39c28cbd9a95e071f4b4c311fc6;hpb=c8e3bd35883f540afe023fd077ad64cde327e18a;p=oam.git diff --git a/code/network-generator/network_generation/cli.py b/code/network-generator/network_generation/cli.py index 8067273..e156fcd 100644 --- a/code/network-generator/network_generation/cli.py +++ b/code/network-generator/network_generation/cli.py @@ -14,65 +14,71 @@ # inspired by https://github.com/rochacbruno/python-project-template -"""CLI interface for network_generation project. - -Be creative! do whatever you want! - -- Install click or typer and create a CLI app -- Use builtin argparse -- Start a web application -- Import things from your .base module -""" - +import os +import sys +from network_generation.base import NetworkGenerator +from network_generation.model.python.o_ran_network import ORanNetwork +from network_generation.parameter_validator import ParameterValidator +from network_generation.view.network_viewer import NetworkViewer """ +CLI interface for network_generation project. Module as entry point to generate an ietf topology json """ -import os -import sys -from network_generation.view.network_viewer import NetworkViewer -from network_generation.controller.network_generator import NetworkGenerator -from network_generation.controller.parameter_validator import ParameterValidator -def main(): # pragma: no cover +def main() -> None: # pragma: no cover """ The main function executes on commands: `python -m network_generation`. """ validator: ParameterValidator = ParameterValidator(sys.argv) - print("I'm in", sys.argv) if validator.is_valid(): - configuration = validator.configuration() - generator = NetworkGenerator(configuration['network']) - network = generator.generate() - viewer = NetworkViewer(network) - - output_folder:str = configuration['output-folder'] + configuration: dict = validator.configuration() + generator: NetworkGenerator = NetworkGenerator( + configuration["network"] + ) + network: ORanNetwork = generator.generate() + viewer: NetworkViewer = NetworkViewer(network) + + output_folder: str = configuration["outputFolder"] # If folder doesn't exist, then create it. if not os.path.isdir(output_folder): os.makedirs(output_folder) - - name: str = configuration['network']['name'] + + name: str = str(configuration["network"]["name"]).lower() + filename: str = "/".join([output_folder, name]) # topology json - if configuration['generation-tasks']['topology'] is True: - filename: str = output_folder + "/" + name + "-operational.json" - viewer.json().save(filename) + if configuration["generationTasks"]["topology"]["enabled"] is True: + viewer.json().save( + filename, + 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['generation-tasks']['svg'] is True: - filename: str = output_folder + "/" + name + ".svg" - viewer.svg(filename) - - # kml xml - if configuration['generation-tasks']['kml'] is True: - filename: str = output_folder + "/" + name + ".kml" - viewer.kml(filename) + if configuration["generationTasks"]["svg"]["enabled"] is True: + viewer.svg( + filename, + configuration["generationTasks"]["svg"]["compressed"] + ) + + # kml/kmz xml + if configuration["generationTasks"]["kml"]["enabled"] is True: + viewer.kml( + filename, + configuration["generationTasks"]["kml"]["compressed"] + ) else: print(validator.error_message()) -