|
1 | 1 | # coding: utf-8 |
| 2 | +import json |
2 | 3 |
|
3 | 4 | from flask import request |
4 | 5 |
|
5 | 6 | from gnpyapi.core import app |
6 | 7 | from gnpyapi.core.exception.equipment_error import EquipmentError |
7 | 8 | from gnpyapi.core.exception.topology_error import TopologyError |
8 | 9 | from gnpyapi.core.service.path_request_service import PathRequestService |
| 10 | +from gnpy.tools.convert_legacy_yang import yang_to_legacy |
9 | 11 | from gnpyapi.core import API_VERSION |
10 | 12 |
|
11 | 13 | PATH_REQUEST_BASE_PATH = '/path-request' |
12 | 14 |
|
13 | 15 |
|
14 | 16 | @app.route(API_VERSION + PATH_REQUEST_BASE_PATH, methods=['POST']) |
15 | 17 | def path_request(path_request_service: PathRequestService): |
16 | | - data = request.json |
17 | | - service = data['gnpy-api:service'] |
18 | | - if 'gnpy-api:topology' in data: |
19 | | - topology = data['gnpy-api:topology'] |
| 18 | + is_legacy = 'gnpy-api:api' not in request.json |
| 19 | + if not is_legacy: |
| 20 | + legacy_data = yang_to_legacy(json.loads(request.json)) |
| 21 | + service = legacy_data['gnpy-path-computation:services'] |
| 22 | + topology = legacy_data['gnpy-network-topology:topology'] |
| 23 | + equipment = yang_to_legacy(json.loads(request.json)["gnpy-api:api"]['gnpy-eqpt-config:equipment']) |
20 | 24 | else: |
21 | | - raise TopologyError('No topology found in request') |
22 | | - if 'gnpy-api:equipment' in data: |
23 | | - equipment = data['gnpy-api:equipment'] |
24 | | - else: |
25 | | - raise EquipmentError('No equipment found in request') |
| 25 | + data = request.json |
| 26 | + service = data['gnpy-api:service'] |
| 27 | + if 'gnpy-api:topology' in data: |
| 28 | + topology = data['gnpy-api:topology'] |
| 29 | + else: |
| 30 | + raise TopologyError('No topology found in request') |
| 31 | + if 'gnpy-api:equipment' in data: |
| 32 | + equipment = data['gnpy-api:equipment'] |
| 33 | + else: |
| 34 | + raise EquipmentError('No equipment found in request') |
26 | 35 |
|
27 | 36 | return path_request_service.path_request(topology, equipment, service), 201 |
0 commit comments