Skip to content

Commit a10a6ee

Browse files
jasonyatesjyateschadell
authored
Updating Equinix parser (#197)
* Updating Equinix parser * Adding support for additional impact statement * Adding support for additional notification types. Equinix Connect notifications include 4 columns as IBX name is included. Equinix Fabric notifications include 14 columns as seller and subscriber ID's are included. * Fixing linting recommendation * Adding Equinix unit test * Update circuit_maintenance_parser/parsers/equinix.py protect against exceptions about some circuit_info unexpected structures Co-authored-by: Christian Adell <[email protected]> Co-authored-by: jyates <[email protected]> Co-authored-by: Christian Adell <[email protected]>
1 parent 315e63a commit a10a6ee

File tree

6 files changed

+498
-1
lines changed

6 files changed

+498
-1
lines changed

circuit_maintenance_parser/parsers/equinix.py

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,8 @@ def _parse_b(self, b_elements, data):
8686
impact = Impact.OUTAGE
8787
elif "Loss of redundancy" in impact_line:
8888
impact = Impact.REDUCED_REDUNDANCY
89+
elif "Traffic will be re-routed" in impact_line:
90+
impact = Impact.REDUCED_REDUNDANCY
8991
return impact
9092

9193
def _parse_table(self, theader_elements, data, impact): # pylint: disable=no-self-use
@@ -97,7 +99,31 @@ def _parse_table(self, theader_elements, data, impact): # pylint: disable=no-se
9799
continue
98100
circuit_info = list(tr_elem.find_all("td"))
99101
if circuit_info:
100-
account, _, circuit = circuit_info # pylint: disable=unused-variable
102+
if len(circuit_info) == 4:
103+
# Equinix Connect notifications contain the IBX name
104+
account, _, _, circuit = circuit_info # pylint: disable=unused-variable
105+
elif len(circuit_info) == 14:
106+
# Equinix Fabric notifications include a lot of additional detail on seller and subscriber ID's
107+
(
108+
account,
109+
_,
110+
_,
111+
circuit,
112+
_,
113+
_,
114+
_,
115+
_,
116+
_,
117+
_,
118+
_,
119+
_,
120+
_,
121+
_,
122+
) = circuit_info # pylint: disable=unused-variable
123+
elif len(circuit_info) == 3:
124+
account, _, circuit = circuit_info # pylint: disable=unused-variable
125+
else:
126+
return
101127
data["circuits"].append(
102128
{
103129
"circuit_id": circuit.text,

0 commit comments

Comments
 (0)