Skip to content
Snippets Groups Projects
Commit adb6c6d3 authored by Erik Reid's avatar Erik Reid
Browse files

added port num, card id to coriant response

parent 83ce28cb
Branches
Tags
No related merge requests found
...@@ -259,7 +259,9 @@ SELECT ...@@ -259,7 +259,9 @@ SELECT
eqc_a.card_id as card_id_a, eqc_a.card_id as card_id_a,
eqc_a.card_id as card_id_b, eqc_a.card_id as card_id_b,
pop_a.name as pop_name_a, pop_a.name as pop_name_a,
pop_b.name as pop_name_b pop_b.name as pop_name_b,
vcc.port_a as port_a,
vcc.port_b as port_b
FROM vcircuitconns vcc FROM vcircuitconns vcc
LEFT JOIN equipment eq_a ON eq_a.absid = vcc.PTR_equip_a LEFT JOIN equipment eq_a ON eq_a.absid = vcc.PTR_equip_a
...@@ -279,10 +281,14 @@ SELECT ...@@ -279,10 +281,14 @@ SELECT
'peering_type': row['peering_type'], 'peering_type': row['peering_type'],
'a': { 'a': {
'name': row['equipment_name_a'], 'name': row['equipment_name_a'],
'card id': row['card_id_a'],
'port number': row['port_a'],
'pop': row['pop_name_a'] 'pop': row['pop_name_a']
}, },
'b': { 'b': {
'name': row['equipment_name_b'], 'name': row['equipment_name_b'],
'card id': row['card_id_b'],
'port number': row['port_b'],
'pop': row['pop_name_b'] 'pop': row['pop_name_b']
} }
} }
...@@ -316,10 +322,12 @@ AND circuit_type = 'Path' ...@@ -316,10 +322,12 @@ AND circuit_type = 'Path'
# eq_b.name as equipment_name_b, # eq_b.name as equipment_name_b,
# eqc_a.card_id as card_id_a, # eqc_a.card_id as card_id_a,
# eqc_a.card_id as card_id_b, # eqc_a.card_id as card_id_b,
# child.port_a as port_a,
# child.port_b as port_b,
# pop_a.name as pop_name_a, # pop_a.name as pop_name_a,
# pop_b.name as pop_name_b # pop_b.name as pop_name_b,
# parent.port_a as port_a,
# parent.port_b as port_b,
# child.port_a as child_port_a,
# child.port_b as child_port_b
# #
# FROM vcircuitconns parent # FROM vcircuitconns parent
# RIGHT JOIN circuit_glue # RIGHT JOIN circuit_glue
...@@ -327,12 +335,12 @@ AND circuit_type = 'Path' ...@@ -327,12 +335,12 @@ AND circuit_type = 'Path'
# JOIN vcircuitconns child # JOIN vcircuitconns child
# ON circuit_glue.PTR_component = child.absid # ON circuit_glue.PTR_component = child.absid
# #
# LEFT JOIN equipment eq_a ON eq_a.absid = child.PTR_equip_a # LEFT JOIN equipment eq_a ON eq_a.absid = parent.PTR_equip_a
# LEFT JOIN equipment eq_b ON eq_b.absid = child.PTR_equip_b # LEFT JOIN equipment eq_b ON eq_b.absid = parent.PTR_equip_b
# LEFT JOIN equipment_card eqc_a ON eqc_a.absid = child.PTR_card_a # LEFT JOIN equipment_card eqc_a ON eqc_a.absid = parent.PTR_card_a
# LEFT JOIN equipment_card eqc_b ON eqc_b.absid = child.PTR_card_b # LEFT JOIN equipment_card eqc_b ON eqc_b.absid = parent.PTR_card_b
# LEFT JOIN pop pop_a ON pop_a.absid = child.PTR_pop_a # LEFT JOIN pop pop_a ON pop_a.absid = parent.PTR_pop_a
# LEFT JOIN pop pop_b ON pop_b.absid = child.PTR_pop_b # LEFT JOIN pop pop_b ON pop_b.absid = parent.PTR_pop_b
# #
# WHERE parent.circuit_type = 'Path' # WHERE parent.circuit_type = 'Path'
# AND child.circuit_type <> 'Path' # AND child.circuit_type <> 'Path'
......
...@@ -296,17 +296,17 @@ def get_coriant_info(equipment_name, card_id, port_number): ...@@ -296,17 +296,17 @@ def get_coriant_info(equipment_name, card_id, port_number):
else: else:
config = current_app.config['INVENTORY_PROVIDER_CONFIG'] config = current_app.config['INVENTORY_PROVIDER_CONFIG']
with db.connection(config['ops-db']) as cx: with db.connection(config['ops-db']) as cx:
result = opsdb.get_coriant_path( path = opsdb.get_coriant_path(
cx, equipment_name, card_id, port_number) cx, equipment_name, card_id, port_number)
if not result: if not path:
return Response( return Response(
response="no available info for {} {} {}".format( response="no available info for {} {} {}".format(
equipment_name, card_id, port_number), equipment_name, card_id, port_number),
status=404, status=404,
mimetype="text/html") mimetype="text/html")
result = json.dumps(result) result = json.dumps({'path': path})
# cache this data for the next call # cache this data for the next call
r.set(cache_key, result.encode('utf-8')) r.set(cache_key, result.encode('utf-8'))
......
...@@ -278,7 +278,7 @@ def test_coriant_info(client, mocker): ...@@ -278,7 +278,7 @@ def test_coriant_info(client, mocker):
""" """
just check the correct method is called, but mock out all sql access just check the correct method is called, but mock out all sql access
""" """
expected_response = { expected_path = {
'C': 'bogus connection', 'C': 'bogus connection',
'E': 'bogus equipment name', 'E': 'bogus equipment name',
'CID': 'bogus card id', 'CID': 'bogus card id',
...@@ -287,7 +287,7 @@ def test_coriant_info(client, mocker): ...@@ -287,7 +287,7 @@ def test_coriant_info(client, mocker):
@contextlib.contextmanager @contextlib.contextmanager
def mocked_connection(ignored): def mocked_connection(ignored):
yield expected_response['C'] yield expected_path['C']
mocker.patch( mocker.patch(
'inventory_provider.db.db.connection', mocked_connection) 'inventory_provider.db.db.connection', mocked_connection)
...@@ -296,12 +296,14 @@ def test_coriant_info(client, mocker): ...@@ -296,12 +296,14 @@ def test_coriant_info(client, mocker):
lambda a, b, c, d: {'C': a, 'E': b, 'CID': c, 'P': d}) lambda a, b, c, d: {'C': a, 'E': b, 'CID': c, 'P': d})
rv = client.get( rv = client.get(
'/classifier/coriant-info/{E}/{CID}/{P}'.format(**expected_response), '/classifier/coriant-info/{E}/{CID}/{P}'.format(**expected_path),
headers=DEFAULT_REQUEST_HEADERS) headers=DEFAULT_REQUEST_HEADERS)
assert rv.status_code == 200 assert rv.status_code == 200
assert rv.is_json assert rv.is_json
response_data = json.loads(rv.data.decode('utf-8')) response_data = json.loads(rv.data.decode('utf-8'))
expected_response = {'path': expected_path}
assert response_data == expected_response assert response_data == expected_response
......
...@@ -38,7 +38,7 @@ def connection(db_params): ...@@ -38,7 +38,7 @@ def connection(db_params):
@pytest.mark.parametrize('equipment,card,port', [ @pytest.mark.parametrize('equipment,card,port', [
('grv3.lon.uk.geant.net', '1-1', '3'), ('grv3.lon.uk.geant.net', '1-1', '3'),
('grv3.lon.uk.geant.net', '1-1', '5'), ('grv3.lon.uk.geant.net', '1-1', '5'),
# ('grv2.ams.nl.geant.net', '1-1', '1'), ('grv1.ams.nl.geant.net', '1-1', '1'),
('grv3.lon.uk.geant.net', '1-1', '1'), ('grv3.lon.uk.geant.net', '1-1', '1'),
]) ])
def test_query(connection, equipment, card, port): def test_query(connection, equipment, card, port):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment