1 # Copyright 2023 highstreet technologies GmbH
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
7 # http://www.apache.org/licenses/LICENSE-2.0
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
18 Module as entry point to generate an ietf topology json
23 from view.network_viewer import NetworkViewer
24 from controller.network_generator import NetworkGenerator
25 from controller.parameter_validator import ParameterValidator
27 validator: ParameterValidator = ParameterValidator(sys.argv)
29 if validator.is_valid():
30 configuration = validator.configuration()
31 generator = NetworkGenerator(configuration['network'])
32 network = generator.generate()
33 viewer = NetworkViewer(network)
35 output_folder:str = configuration['output-folder']
36 # If folder doesn't exist, then create it.
37 if not os.path.isdir(output_folder):
38 os.makedirs(output_folder)
40 name: str = configuration['network']['name']
43 if configuration['generation-tasks']['topology'] is True:
44 filename: str = output_folder + "/" + name + "-operational.json"
45 viewer.json().save(filename)
48 if configuration['generation-tasks']['svg'] is True:
49 filename: str = output_folder + "/" + name + ".svg"
53 if configuration['generation-tasks']['kml'] is True:
54 filename: str = output_folder + "/" + name + ".kml"
58 print(validator.error_message())