diff --git a/circuit_maintenance_parser/parsers/equinix.py b/circuit_maintenance_parser/parsers/equinix.py index 7b95e90b..fa0097c0 100644 --- a/circuit_maintenance_parser/parsers/equinix.py +++ b/circuit_maintenance_parser/parsers/equinix.py @@ -23,7 +23,8 @@ def parse_html(self, soup: ResultSet) -> List[Dict]: """ data: Dict[str, Any] = {"circuits": []} - impact = self._parse_b(soup.find_all("b"), data) + bolded_elems = soup.find_all(["b", "strong"]) + impact = self._parse_bolded(bolded_elems, data) self._parse_table(soup.find_all("th"), data, impact) return [data] @@ -43,8 +44,8 @@ def _isascii(string): except UnicodeEncodeError: return False - def _parse_b(self, b_elements, data): - """Parse the elements from the notification to capture start and end times, description, and impact. + def _parse_bolded(self, b_elements, data): + """Parse the / elements from the notification to capture start and end times, description, and impact. Args: b_elements (): resulting soup object with all elements @@ -63,7 +64,7 @@ def _parse_b(self, b_elements, data): raw_year_span = b_elem.text.strip().split() start_year = raw_year_span[1].split("-")[-1] end_year = raw_year_span[-1].split("-")[-1] - if "UTC:" in b_elem: + if start_year != 0 and "UTC:" in b_elem.text: raw_time = b_elem.next_sibling # for non english equinix notifications # english section is usually at the bottom @@ -80,9 +81,13 @@ def _parse_b(self, b_elements, data): # all circuits in the notification share the same impact if "IMPACT:" in b_elem: impact_line = b_elem.next_sibling + impact_sibling_line = (impact_line.next_sibling and impact_line.next_sibling.text) or "" + if "No impact to your service" in impact_line: impact = Impact.NO_IMPACT - elif "There will be service interruptions" in impact_line.next_sibling.text: + elif "There will be service interruptions" in impact_line: + impact = Impact.OUTAGE + elif "There will be service interruptions" in impact_sibling_line: impact = Impact.OUTAGE elif "Loss of redundancy" in impact_line: impact = Impact.REDUCED_REDUNDANCY @@ -158,6 +163,8 @@ def parse_subject(self, subject: str) -> List[Dict]: data["status"] = Status.RE_SCHEDULED elif "scheduled" in subject.lower() or "reminder" in subject.lower(): data["status"] = Status.CONFIRMED + elif "cancelled" in subject.lower(): + data["status"] = Status.CANCELLED else: # Some Equinix notifications don't clearly state a status in their subject. # From inspection of examples, it looks like "Confirmed" would be the most appropriate in this case. diff --git a/tests/unit/data/equinix/equinix6.eml b/tests/unit/data/equinix/equinix6.eml new file mode 100644 index 00000000..a7ae0e7f --- /dev/null +++ b/tests/unit/data/equinix/equinix6.eml @@ -0,0 +1,333 @@ +Delivered-To: foobar@example.com +Date: Tue, 19 Dec 2023 13:54:45 -0800 (PST) +From: Equinix Network Maintenance +Reply-To: +Message-ID: +Subject: CANCELLED - Remedial 3rd Party Dark Fiber OTDR testing between SV2 and SV8 - SV Metro Area Network Maintenance - 19-DEC-2023 [CHG0031000] +MIME-Version: 1.0 +Content-Type: multipart/mixed; boundary="----=_Part_123455_12375292.1234567" +Precedence: bulk +Auto-Submitted: auto-generated +X-ServiceNow-Generated: true + +------=_Part_123455_12375292.1234567 +Content-Type: multipart/alternative; boundary="----=_Part_123456_54321.1234567" + +------=_Part_123456_54321.1234567 +Content-Transfer-Encoding: quoted-printable +Content-Type: text/plain; charset=UTF-8 + + + + + + + + +=C2=A0=C2=A0=C2=A0 +=C2=A0Dear Equinix Customers,=C2=A0 +=C2=A0 +The notification indicating maintenance on the systems below has been cance= +lled. Any follow up or new system maintenance requests will follow our stan= +dard notification protocol. +=C2=A0=C2=A0=C2=A0 + **************************************************************************= +*** +From: Equinix Network Maintenance +Sent: 2023-12-18 23:23:55 +Subject: Remedial 3rd Party Dark Fiber OTDR testing between SV2 and SV8 - S= +V Metro Area Network Maintenance - 19-DEC-2023 [CHG0031000] +=C2=A0=C2=A0=C2=A0 +=C2=A0Dear Equinix Customers,=C2=A0 +=C2=A0 +DATE: 19-DEC-2023 - 19-DEC-2023 + +SPAN: 19-DEC-2023 - 19-DEC-2023 + +LOCAL: TUESDAY, 19 DEC 14:00 - TUESDAY, 19 DEC 18:00 +UTC: TUESDAY, 19 DEC 22:00 - WEDNESDAY, 20 DEC 02:00 + +IBX(s): SV2, SV8 +=C2=A0 +DESCRIPTION: Please be advised that one of our dark fiber providers will be= + performing a planned maintenance activity. + +EXPECTED SERVICE IMPACT:=20 +1. Unprotected Metro Connect (MC) circuits or Metro Remote ports will exper= +ience service interruption. +2. Protected Metro Connect circuits will experience multiple switching hits= + as traffic switches to protection path. +3. One of your Dual Diverse Metro Connect circuits will experience port dow= +ntime of up to 60 Minutes while Redundant circuits will not be affected. +4. Equinix Fabric Metro Remote Port will experience service interruption. +5. Network Edge circuits will experience service interruption. + +EXPECTED DURATION:=20 +1.Up to 60 minutes for Unprotected MC +2.Up to 15 minutes for one of your Dual Diverse MC +3.Up to 15 minutes for Equinix Fabric Metro Remote ports +4.Up to 15 minutes for Network Edge circuits=C2=A0 +=C2=A0 +PRODUCTS: Metro Connect=C2=A0 +=C2=A0 +IMPACT: Loss of redundancy to your service +=C2=A0 +RECOMMENDED ACTION: Please be advised that one of our dark fiber providers = +will be performing a planned maintenance activity. + +EXPECTED SERVICE IMPACT:=20 +1. Unprotected Metro Connect (MC) circuits or Metro Remote ports will exper= +ience service interruption. +2. Protected Metro Connect circuits will experience multiple switching hits= + as traffic switches to protection path. +3. One of your Dual Diverse Metro Connect circuits will experience port dow= +ntime of up to 60 Minutes while Redundant circuits will not be affected. +4. Equinix Fabric Metro Remote Port will experience service interruption. +5. Network Edge circuits will experience service interruption. + +EXPECTED DURATION:=20 +1.Up to 60 minutes for Unprotected MC +2.Up to 15 minutes for one of your Dual Diverse MC +3.Up to 15 minutes for Equinix Fabric Metro Remote ports +4.Up to 15 minutes for Network Edge circuits +=C2=A0 + +Impacted Assets + +Equinix Connect + +Account #ProductIBXService Serial # +555555Equinix ConnectSV82345678 + +=C2=A0 +We apologize for any inconvenience you may experience during this activity.= + Your cooperation and understanding are=C2=A0greatly appreciated. +=C2=A0 +Please do not reply to this email address. If you have any questions or con= +cerns regarding this notification, please log a network ticket via the Equi= +nix Customer Portal or contact Global Service Desk and quote the ticket ref= +erence. +=C2=A0 +Equinix is available to answer questions, provide up-to-date status informa= +tion or additional details regarding the maintenance. Please reference CHG0= +031000.=C2=A0 +=C2=A0=C2=A0=C2=A0 + + + + + + + + + + + + + + +Service Insight | Notification Preferences | Equinix Status Page | Support = +Case=20 + + Glossary of terms | Equinix Customer Portal=20 + + + + + + + + + + + + +Equinix | Legal | Privacy =20 + =E2=80=AF =E2=80=AF =E2=80=AF =20 + + + + + + +------=_Part_123456_54321.1234567 +Content-Transfer-Encoding: quoted-printable +Content-Type: text/html; charset=UTF-8 + +
+ + + + + +
3D"Meet
   
 Dear Equinix Customers, 
&= +nbsp;
The notification indicating maintenance on the systems bel= +ow has been cancelled. Any follow up or new system maintenance requests wil= +l follow our standard notification protocol.
   
 ******************= +***********************************************************
From: Equini= +x Network Maintenance <no-reply@equinix.com>
Sent: 2023-12-18 23:2= +3:55
Subject: Remedial 3rd Party Dark Fiber OTDR testing between SV2 and= + SV8 - SV Metro Area Network Maintenance - 19-DEC-2023 [CHG0031000]
  &n= +bsp;
 Dear Equinix Customers, 
&n= +bsp;
DATE: 19-DEC-2023 - 19-DEC-2023
= +
SPAN: 19-DEC-2023 - 19-DEC-2023

LOCAL: TUESDAY, 1= +9 DEC 14:00 - TUESDAY, 19 DEC 18:00
UTC: TUESDAY, 19 DEC 22:00 - = +WEDNESDAY, 20 DEC 02:00

IBX(s): SV2, SV8
&= +nbsp;
DESCRIPTION: Please be advised that one o= +f our dark fiber providers will be performing a planned maintenance activit= +y. +
+
EXPECTED SERVICE IMPACT:=20 +
1. Unprotected Metro Connect (MC) circuits or Metro Remote ports will e= +xperience service interruption. +
2. Protected Metro Connect circuits will experience multiple switching = +hits as traffic switches to protection path. +
3. One of your Dual Diverse Metro Connect circuits will experience port= + downtime of up to 60 Minutes while Redundant circuits will not be affected= +. +
4. Equinix Fabric Metro Remote Port will experience service interruptio= +n. +
5. Network Edge circuits will experience service interruption. +
+
EXPECTED DURATION:=20 +
1.Up to 60 minutes for Unprotected MC +
2.Up to 15 minutes for one of your Dual Diverse MC +
3.Up to 15 minutes for Equinix Fabric Metro Remote ports +
4.Up to 15 minutes for Network Edge circuits 

 
PRODUCTS: Metro Connect 
 <= +/span>
IMPACT: Loss of redundancy to your service
 
RECOMMENDED ACTION: Please be adv= +ised that one of our dark fiber providers will be performing a planned main= +tenance activity. +
+
EXPECTED SERVICE IMPACT:=20 +
1. Unprotected Metro Connect (MC) circuits or Metro Remote ports will e= +xperience service interruption. +
2. Protected Metro Connect circuits will experience multiple switching = +hits as traffic switches to protection path. +
3. One of your Dual Diverse Metro Connect circuits will experience port= + downtime of up to 60 Minutes while Redundant circuits will not be affected= +. +
4. Equinix Fabric Metro Remote Port will experience service interruptio= +n. +
5. Network Edge circuits will experience service interruption. +
+
EXPECTED DURATION:=20 +
1.Up to 60 minutes for Unprotected MC +
2.Up to 15 minutes for one of your Dual Diverse MC +
3.Up to 15 minutes for Equinix Fabric Metro Remote ports +
4.Up to 15 minutes for Network Edge circuits

 <= +br>
Impacted Assets

Equinix Connec= +t

Account #ProductIBXService Serial #
555= +555Equinix ConnectSV82345678

 
We apologize for any in= +convenience you may experience during this activity. Your cooperation and u= +nderstanding are greatly appreciated.
 
Ple= +ase do not reply to this email address. If you have any questions or concer= +ns regarding this notification, please log a network ticket via the Equinix= + Customer Portal or contact Global Service Desk and quote the ticket refere= +nce.

 
Equinix is available to answer questions,= + provide up-to-date status information or additional details regarding the = +maintenance. Please reference CHG0031000.
 
   
+ + + + + +
+ + + + + + +
+

+

Service Insight | Notification Preferences | Equinix Status Page | Support Case 

+

 Glossary of terms | Equinix Customer Portal 

+

+
+ + + + + + + +
+------=_Part_123456_54321.1234567-- +------=_Part_123455_12375292.1234567-- diff --git a/tests/unit/data/equinix/equinix6_result.json b/tests/unit/data/equinix/equinix6_result.json new file mode 100644 index 00000000..cd5803f8 --- /dev/null +++ b/tests/unit/data/equinix/equinix6_result.json @@ -0,0 +1,13 @@ +[ + { + "account": "555555", + "circuits": [ + { + "circuit_id": "2345678", + "impact": "REDUCED-REDUNDANCY" + } + ], + "end": 1703037600, + "start": 1703023200 + } +] diff --git a/tests/unit/data/equinix/equinix6_result_combined.json b/tests/unit/data/equinix/equinix6_result_combined.json new file mode 100644 index 00000000..b3f68f8a --- /dev/null +++ b/tests/unit/data/equinix/equinix6_result_combined.json @@ -0,0 +1,21 @@ +[ + { + "account": "555555", + "circuits": [ + { + "circuit_id": "2345678", + "impact": "REDUCED-REDUNDANCY" + } + ], + "end": 1703037600, + "maintenance_id": "CHG0031000", + "organizer": "servicedesk@equinix.com", + "provider": "equinix", + "sequence": 1, + "stamp": 1703022885, + "start": 1703023200, + "status": "CANCELLED", + "summary": "CANCELLED - Remedial 3rd Party Dark Fiber OTDR testing between SV2 and SV8 - SV Metro Area Network Maintenance - 19-DEC-2023 [CHG0031000]", + "uid": "0" + } +] diff --git a/tests/unit/data/equinix/equinix7.eml b/tests/unit/data/equinix/equinix7.eml new file mode 100644 index 00000000..1885c937 --- /dev/null +++ b/tests/unit/data/equinix/equinix7.eml @@ -0,0 +1,266 @@ +Date: Thu, 21 Dec 2023 04:16:05 -0800 (PST) +From: Equinix Network Maintenance +Reply-To: +Subject: Scheduled Software Upgrade - AM6, DB2, HE6, ZW1 Network Maintenance - (SERVICE IMPACTING) - 10-JAN-2024 [CHG0031000] +MIME-Version: 1.0 +Content-Type: multipart/mixed; boundary="----=_Part_111111_2222222.1234567898" +X-ServiceNow-Generated: true + +------=_Part_111111_2222222.1234567898 +Content-Type: multipart/alternative; boundary="----=_Part_111112_17421832.1234567898" + +------=_Part_111112_17421832.1234567898 +Content-Transfer-Encoding: quoted-printable +Content-Type: text/plain; charset=UTF-8 + + + + + + + + +=C2=A0=C2=A0=C2=A0 +=C2=A0Dear Equinix Customers,=C2=A0 +=C2=A0 +DATE: 10-JAN-2024 - 11-JAN-2024 + +SPAN: 10-JAN-2024 - 11-JAN-2024 + +UTC: WEDNESDAY, 10 JAN 22:00 - THURSDAY, 11 JAN 06:00 + +(Time Conversion Guide) +=C2=A0 +LOCATION: AM6, DB2, HE6, ZW1=C2=A0 +=C2=A0 +DESCRIPTION: Please be advised that Equinix engineers will be performing a = +planned software upgrade.=20 + +For customers without redundancy configured ports and services a downtime i= +s expected. +Customers with redundant configured services will only experience a loss of= + redundancy. + +This work will impact network ports and virtual services listed in this not= +ification. + +The expected duration would be:=20 +up to 120 minutes in the maintenance window (between 20 to 120 minutes).=C2= +=A0 +=C2=A0 +OUTAGE DURATION: 2 Hours +=C2=A0 +PRODUCTS: Equinix Connect, Equinix Internet Access, Equinix Fabric, Metro C= +onnect=C2=A0 +=C2=A0 +IMPACT: There will be service interruptions +=C2=A0 +RECOMMENDED ACTION: The Equinix platform provides redundancy options. To mi= +tigate the impact of a maintenance event, we recommend customers to setup r= +edundant connections according to best practices. + +No action is required from customers with redundancy. +=C2=A0 + +Impacted Assets + +Equinix Connect + +Account #ProductIBXService Serial # +555555Equinix ConnectDB2EC1234.1 + +=C2=A0 +We apologize for any inconvenience you may experience during this activity.= + Your cooperation and understanding are=C2=A0greatly appreciated. +=C2=A0 +Please do not reply to this email address. If you have any questions or con= +cerns regarding this notification, please log a network ticket via the Equi= +nix Customer Portal or contact Global Service Desk and quote the ticket ref= +erence. +=C2=A0 +Equinix is available to answer questions, provide up-to-date status informa= +tion or additional details regarding the maintenance. Please reference CHG0= +031000.=C2=A0 +=C2=A0=C2=A0=C2=A0 + + + + + + + + + + + + + + +Service Insight | Notification Preferences | Equinix Status Page | Support = +Case=20 + + Glossary of terms | Equinix Customer Portal=20 + + + + + + + + + + + + +Equinix | Legal | Privacy =20 + =E2=80=AF =E2=80=AF =E2=80=AF =20 + + + + + + +------=_Part_111112_17421832.1234567898 +Content-Transfer-Encoding: quoted-printable +Content-Type: text/html; charset=UTF-8 + + + + + + +
+ + + + + +
3D"Meet
   
 Dear Equinix Customers, 
 = +;
DATE: 10-JAN-2024 - 11-JAN-2024
SPAN: 10-JAN-2024 - 11-JAN-2024

UTC: WEDNESDAY, 10 J= +AN 22:00 - THURSDAY, 11 JAN 06:00

(Time Conv= +ersion Guide)
 
LOCATION: A= +M6, DB2, HE6, ZW1 
 
DESCRIPTION: Please be advised that Equinix engineers will be performing a plann= +ed software upgrade.=20 +
+
For customers without redundancy configured ports and services a downti= +me is expected. +
Customers with redundant configured services will only experience a los= +s of redundancy. +
+
This work will impact network ports and virtual services listed in this= + notification. +
+
The expected duration would be:=20 +
up to 120 minutes in the maintenance window (between 20 to 120 minutes)= +. 

 
OUTAGE DURATION: 2 Hours
&= +nbsp;

PRODUCTS: Equinix Connect, Equinix Intern= +et Access, Equinix Fabric, Metro Connect 
 
= +IMPACT: There will be service interruptions
&n= +bsp;
RECOMMENDED ACTION: The Equinix platform p= +rovides redundancy options. To mitigate the impact of a maintenance event, = +we recommend customers to setup redundant connections according to best pra= +ctices. +
+
No action is required from customers with redundancy.

 = +

<= +/tr>
Impacted Assets

Equini= +x Connect

Account #ProductIBXService Serial #
555555Equinix ConnectDB2EC1= +234.1

 
We apologize f= +or any inconvenience you may experience during this activity. Your cooperat= +ion and understanding are greatly appreciated.
 

Please do not reply to this email address. If you have any question= +s or concerns regarding this notification, please log a network ticket via = +the Equinix Customer Portal or contact Global Service Desk and quote the ti= +cket reference.
 
Equinix is available to answer= + questions, provide up-to-date status information or additional details reg= +arding the maintenance. Please reference CHG0031000.
 
&n= +bsp;  
+
+ + + + + + +
+

+

Service Insight | Notification Preferences | Equinix Status Page | Support Case 

+

 Glossary of terms | Equinix Customer Portal 

+

+
+ + + + + + + +
+------=_Part_111112_17421832.1234567898-- +------=_Part_111111_2222222.1234567898-- diff --git a/tests/unit/data/equinix/equinix7_result.json b/tests/unit/data/equinix/equinix7_result.json new file mode 100644 index 00000000..47f688fb --- /dev/null +++ b/tests/unit/data/equinix/equinix7_result.json @@ -0,0 +1,13 @@ +[ + { + "account": "555555", + "circuits": [ + { + "circuit_id": "EC1234.1", + "impact": "OUTAGE" + } + ], + "end": 1704952800, + "start": 1704924000 + } +] diff --git a/tests/unit/data/equinix/equinix7_result_combined.json b/tests/unit/data/equinix/equinix7_result_combined.json new file mode 100644 index 00000000..04889a94 --- /dev/null +++ b/tests/unit/data/equinix/equinix7_result_combined.json @@ -0,0 +1,21 @@ +[ + { + "account": "555555", + "circuits": [ + { + "circuit_id": "EC1234.1", + "impact": "OUTAGE" + } + ], + "end": 1704952800, + "maintenance_id": "CHG0031000", + "organizer": "servicedesk@equinix.com", + "provider": "equinix", + "sequence": 1, + "stamp": 1703160965, + "start": 1704924000, + "status": "CONFIRMED", + "summary": "Scheduled Software Upgrade - AM6, DB2, HE6, ZW1 Network Maintenance - (SERVICE IMPACTING) - 10-JAN-2024 [CHG0031000]", + "uid": "0" + } +] diff --git a/tests/unit/data/equinix/equinix8.eml b/tests/unit/data/equinix/equinix8.eml new file mode 100644 index 00000000..2ff95f96 --- /dev/null +++ b/tests/unit/data/equinix/equinix8.eml @@ -0,0 +1,266 @@ +Date: Thu, 21 Dec 2023 04:16:05 -0800 (PST) +From: Equinix Network Maintenance +Reply-To: +Subject: Scheduled Software Upgrade - AM6, DB2, HE6, ZW1 Network Maintenance - (SERVICE IMPACTING) - 10-JAN-2024 [CHG0031000] +MIME-Version: 1.0 +Content-Type: multipart/mixed; boundary="----=_Part_111111_2222222.1234567898" +X-ServiceNow-Generated: true + +------=_Part_111111_2222222.1234567898 +Content-Type: multipart/alternative; boundary="----=_Part_111112_17421832.1234567898" + +------=_Part_111112_17421832.1234567898 +Content-Transfer-Encoding: quoted-printable +Content-Type: text/plain; charset=UTF-8 + + + + + + + + +=C2=A0=C2=A0=C2=A0 +=C2=A0Dear Equinix Customers,=C2=A0 +=C2=A0 +DATE: 10-JAN-2024 - 11-JAN-2024 + +SPAN: 10-JAN-2024 - 11-JAN-2024 + +UTC: WEDNESDAY, 10 JAN 22:00 - THURSDAY, 11 JAN 06:00 + +(Time Conversion Guide) +=C2=A0 +LOCATION: AM6, DB2, HE6, ZW1=C2=A0 +=C2=A0 +DESCRIPTION: Please be advised that Equinix engineers will be performing a = +planned software upgrade.=20 + +For customers without redundancy configured ports and services a downtime i= +s expected. +Customers with redundant configured services will only experience a loss of= + redundancy. + +This work will impact network ports and virtual services listed in this not= +ification. + +The expected duration would be:=20 +up to 120 minutes in the maintenance window (between 20 to 120 minutes).=C2= +=A0 +=C2=A0 +OUTAGE DURATION: 2 Hours +=C2=A0 +PRODUCTS: Equinix Connect, Equinix Internet Access, Equinix Fabric, Metro C= +onnect=C2=A0 +=C2=A0 +IMPACT: There will be service interruptions +=C2=A0 +RECOMMENDED ACTION: The Equinix platform provides redundancy options. To mi= +tigate the impact of a maintenance event, we recommend customers to setup r= +edundant connections according to best practices. + +No action is required from customers with redundancy. +=C2=A0 + +Impacted Assets + +Equinix Connect + +Account #ProductIBXService Serial # +555555Equinix ConnectDB2EC1234.1 + +=C2=A0 +We apologize for any inconvenience you may experience during this activity.= + Your cooperation and understanding are=C2=A0greatly appreciated. +=C2=A0 +Please do not reply to this email address. If you have any questions or con= +cerns regarding this notification, please log a network ticket via the Equi= +nix Customer Portal or contact Global Service Desk and quote the ticket ref= +erence. +=C2=A0 +Equinix is available to answer questions, provide up-to-date status informa= +tion or additional details regarding the maintenance. Please reference CHG0= +031000.=C2=A0 +=C2=A0=C2=A0=C2=A0 + + + + + + + + + + + + + + +Service Insight | Notification Preferences | Equinix Status Page | Support = +Case=20 + + Glossary of terms | Equinix Customer Portal=20 + + + + + + + + + + + + +Equinix | Legal | Privacy =20 + =E2=80=AF =E2=80=AF =E2=80=AF =20 + + + + + + +------=_Part_111112_17421832.1234567898 +Content-Transfer-Encoding: quoted-printable +Content-Type: text/html; charset=UTF-8 + + + + + + +
+ + + + + +
3D"Meet
   
 Dear Equinix Customers, 
 = +;
DATE: 10-JAN-2024 - 11-JAN-2024
SPAN: 10-JAN-2024 - 11-JAN-2024

UTC: WEDNESDAY, 10 J= +AN 22:00 - THURSDAY, 11 JAN 06:00

(Time Conv= +ersion Guide)
 
LOCATION: A= +M6, DB2, HE6, ZW1 
 
DESCRIPTION: Please be advised that Equinix engineers will be performing a plann= +ed software upgrade.=20 +
+
For customers without redundancy configured ports and services a downti= +me is expected. +
Customers with redundant configured services will only experience a los= +s of redundancy. +
+
This work will impact network ports and virtual services listed in this= + notification. +
+
The expected duration would be:=20 +
up to 120 minutes in the maintenance window (between 20 to 120 minutes)= +. 

 
OUTAGE DURATION: 2 Hours
&= +nbsp;

PRODUCTS: Equinix Connect, Equinix Intern= +et Access, Equinix Fabric, Metro Connect 
 
= +IMPACT:=09There will be se= +rvice interruptions
&n= +bsp;
RECOMMENDED ACTION: The Equinix platform p= +rovides redundancy options. To mitigate the impact of a maintenance event, = +we recommend customers to setup redundant connections according to best pra= +ctices. +
+
No action is required from customers with redundancy.

 = +

<= +/tr>
Impacted Assets

Equini= +x Connect

Account #ProductIBXService Serial #
555555Equinix ConnectDB2EC1= +234.1

 
We apologize f= +or any inconvenience you may experience during this activity. Your cooperat= +ion and understanding are greatly appreciated.
 

Please do not reply to this email address. If you have any question= +s or concerns regarding this notification, please log a network ticket via = +the Equinix Customer Portal or contact Global Service Desk and quote the ti= +cket reference.
 
Equinix is available to answer= + questions, provide up-to-date status information or additional details reg= +arding the maintenance. Please reference CHG0031000.
 
&n= +bsp;  
+
+ + + + + + +
+

+

Service Insight | Notification Preferences | Equinix Status Page | Support Case 

+

 Glossary of terms | Equinix Customer Portal 

+

+
+ + + + + + + +
+------=_Part_111112_17421832.1234567898-- +------=_Part_111111_2222222.1234567898-- diff --git a/tests/unit/data/equinix/equinix8.json b/tests/unit/data/equinix/equinix8.json new file mode 100644 index 00000000..04889a94 --- /dev/null +++ b/tests/unit/data/equinix/equinix8.json @@ -0,0 +1,21 @@ +[ + { + "account": "555555", + "circuits": [ + { + "circuit_id": "EC1234.1", + "impact": "OUTAGE" + } + ], + "end": 1704952800, + "maintenance_id": "CHG0031000", + "organizer": "servicedesk@equinix.com", + "provider": "equinix", + "sequence": 1, + "stamp": 1703160965, + "start": 1704924000, + "status": "CONFIRMED", + "summary": "Scheduled Software Upgrade - AM6, DB2, HE6, ZW1 Network Maintenance - (SERVICE IMPACTING) - 10-JAN-2024 [CHG0031000]", + "uid": "0" + } +] diff --git a/tests/unit/data/equinix/equinix8_result.json b/tests/unit/data/equinix/equinix8_result.json new file mode 100644 index 00000000..47f688fb --- /dev/null +++ b/tests/unit/data/equinix/equinix8_result.json @@ -0,0 +1,13 @@ +[ + { + "account": "555555", + "circuits": [ + { + "circuit_id": "EC1234.1", + "impact": "OUTAGE" + } + ], + "end": 1704952800, + "start": 1704924000 + } +] diff --git a/tests/unit/data/equinix/equinix8_result_combined.json b/tests/unit/data/equinix/equinix8_result_combined.json new file mode 100644 index 00000000..04889a94 --- /dev/null +++ b/tests/unit/data/equinix/equinix8_result_combined.json @@ -0,0 +1,21 @@ +[ + { + "account": "555555", + "circuits": [ + { + "circuit_id": "EC1234.1", + "impact": "OUTAGE" + } + ], + "end": 1704952800, + "maintenance_id": "CHG0031000", + "organizer": "servicedesk@equinix.com", + "provider": "equinix", + "sequence": 1, + "stamp": 1703160965, + "start": 1704924000, + "status": "CONFIRMED", + "summary": "Scheduled Software Upgrade - AM6, DB2, HE6, ZW1 Network Maintenance - (SERVICE IMPACTING) - 10-JAN-2024 [CHG0031000]", + "uid": "0" + } +] diff --git a/tests/unit/data/equinix/equinix9.eml b/tests/unit/data/equinix/equinix9.eml new file mode 100644 index 00000000..477f5a2c --- /dev/null +++ b/tests/unit/data/equinix/equinix9.eml @@ -0,0 +1,326 @@ +Return-Path: +Date: Tue, 7 Nov 2023 05:04:09 +0000 (UTC) +From: Equinix Network Maintenance NO-REPLY +Reply-To: Equinix Network Maintenance NO-REPLY +To: "Equinix Network Maintenance.NL" +Subject: COMPLETED - Scheduled Software Upgrade-AM Metro Area Network Maintenance (SERVICE IMPACTING)-06-NOV-2023 [5-230281950000] +MIME-Version: 1.0 +Content-Type: multipart/alternative; boundary="----=_Part_333333_222222222.111111111111111111" +X-Priority: 1 +Organization: Equinix, Inc + +------=_Part_333333_222222222.111111111111111111 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: quoted-printable + + Geachte Equinix Klant/Dear Equinix Customer, + +De hieronder vermelde onderhoudswerkzaamheden zijn inmiddels afgerond. + +The maintenance listed below has now been completed. + + =20 + +Geachte Equinix klant, + +DATUM:=09=0906-NOV-2023 - 07-NOV-2023 + +TIJDSDUUR:=09=0906-NOV-2023 - 07-NOV-2023 + +LOKALE TIJD:=09=09MAANDAG, 06 NOV 22:00 - DINSDAG, 07 NOV 06:00 +UTC:=09=09MAANDAG, 06 NOV 21:00 - DINSDAG, 07 NOV 05:00 + +IBX(s): AM1,AM2 + +BESCHRIJVING:=09 +Please be advised that Equinix engineers will perform a software upgrade on= + our Equinix Fabric routers.=20 +The Equinix platform provides redundancy options. To mitigate the impact of= + a maintenance event, we recommend customers to setup redundant connections= + according to best practices. + +EXPECTED SERVICE IMPACT:=20 +For customers without redundancy configured ports and services a downtime i= +s expected. Customers with redundant configured services will only experien= +ce a loss of redundancy. +This work will impact network ports and virtual services listed in the Tabl= +e below. + +EXPECTED DURATION:=20 +Up to 60 minutes in the maintenance window (between 20 to 60 minutes) + +PRODUCTEN:EQUINIX CONNECT, EQUINIX FABRIC, EQUINIX INTERNET ACCESS, INTER M= +ETRO CONNECT, METRO CONNECT + +IMPACT:=09Er zullen service onderbrekingen zijn. + + +Equinix Connect =09 =09=09=09 =09=09=09 =09=09=09=09 Account # =09=09=09= +=09 Product =09=09=09=09 IBX =09=09=09=09 Service Serial # =09=09= +=09 =09=09=09=09 =09=09=09=09=09=09 333333 =09=09=09=09=09=09 Equinix Conne= +ct =09=09=09=09=09=09 AM5 =09=09=09=09=09=09 44444.AM1 =09=09=09=09 =09=09= +=09=09 =09=09=09=09=09=09 333333 =09=09=09=09=09=09 Equinix Connect =09=09= +=09=09=09=09 AM5 =09=09=09=09=09=09 66666.AM1 =09=09=09=09 =09=09=09 =09 + + + +Onze excuses voor het eventuele ongemak dat u kunt ervaren tijdens deze act= +iviteit. Uw medewerking en begrip worden zeer gewaardeerd. + +De Equinix SMC is beschikbaar om up-to-date informatie of extra gegevens te= + verschaffen. Mocht u vragen hebben over deze activiteit wilt u dan referer= +en aan 5-230281950685.=20 + +***************************************************************************= +*********** + +Dear Equinix Customer, + +DATE:=09=0906-NOV-2023 - 07-NOV-2023 + +SPAN:=09=0906-NOV-2023 - 07-NOV-2023 + +LOCAL:=09=09MONDAY, 06 NOV 22:00 - TUESDAY, 07 NOV 06:00 +UTC:=09=09MONDAY, 06 NOV 21:00 - TUESDAY, 07 NOV 05:00 + +IBX(s): AM1,AM11,AM3,AM5,EN1 + + +DESCRIPTION: +Please be advised that Equinix engineers will perform a software upgrade on= + our Equinix Fabric routers.=20 +The Equinix platform provides redundancy options. To mitigate the impact of= + a maintenance event, we recommend customers to setup redundant connections= + according to best practices. + +EXPECTED SERVICE IMPACT:=20 +For customers without redundancy configured ports and services a downtime i= +s expected. Customers with redundant configured services will only experien= +ce a loss of redundancy. +This work will impact network ports and virtual services listed in the Tabl= +e below. + +EXPECTED DURATION:=20 +Up to 60 minutes in the maintenance window (between 20 to 60 minutes) + +PRODUCTS:=09EQUINIX CONNECT, EQUINIX FABRIC, EQUINIX INTERNET ACCESS, INTER= + METRO CONNECT, METRO CONNECT + +IMPACT:=09There will be service interruptions. + +=09 +We apologize for any inconvenience you may experience during this activity.= + Your cooperation and understanding are greatly appreciated. + +The Equinix SMC is available to provide up-to-date status information or ad= +ditional details, should you have any questions regarding the maintenance. = + Please reference 5-230281950000.=20 + + +Sincerely,=20 +Equinix SMC=20 +Contacts: +Please do not reply to this email address. If you have any questions or con= +cerns regarding this notification, please log a network ticket via the Equi= +nix Customer Portal, or contact Global Service Desk and quote the the ticke= +t reference [5-230281950000].=20 +To unsubscribe from notifications, please log in to the Equinix Customer Po= +rtal and change your preferences. + +------=_Part_333333_222222222.111111111111111111 +Content-Type: text/html; charset=UTF-8 +Content-Transfer-Encoding: 7bit + + + + + + + + + + + + + + +
+ + + + + +
Meet Equinix
+ +
+
+
+ + + + + + +
  + +
+

+Geachte Equinix Klant/Dear Equinix Customer,
+
+De hieronder vermelde onderhoudswerkzaamheden zijn inmiddels afgerond.
+
+The maintenance listed below has now been completed.
+
+

+
+


+Geachte Equinix klant,
+
+DATUM: 06-NOV-2023 - 07-NOV-2023
+
+TIJDSDUUR: 06-NOV-2023 - 07-NOV-2023
+
+LOKALE TIJD: MAANDAG, 06 NOV 22:00 - DINSDAG, 07 NOV 06:00
+UTC: MAANDAG, 06 NOV 21:00 - DINSDAG, 07 NOV 05:00
+
+IBX(s): AM1,AM11,AM3,AM5,EN1
+
+BESCHRIJVING:
Please be advised that Equinix engineers will perform a software upgrade on our Equinix Fabric routers.
+The Equinix platform provides redundancy options. To mitigate the impact of a maintenance event, we recommend customers to setup redundant connections according to best practices.
+
+EXPECTED SERVICE IMPACT:
+For customers without redundancy configured ports and services a downtime is expected. Customers with redundant configured services will only experience a loss of redundancy.
+This work will impact network ports and virtual services listed in the Table below.
+
+EXPECTED DURATION:
+Up to 60 minutes in the maintenance window (between 20 to 60 minutes)
+
+PRODUCTEN:EQUINIX CONNECT, EQUINIX FABRIC, EQUINIX INTERNET ACCESS, INTER METRO CONNECT, METRO CONNECT
+
+IMPACT: Er zullen service onderbrekingen zijn.
+


+
+ Equinix Connect + + +
+ + + + + + + + + + + + + + + + + + +
Account #ProductIBXService Serial #
333333Equinix ConnectAM544444.AM1
333333Equinix ConnectAM566666.AM1
+
+
+


+Onze excuses voor het eventuele ongemak dat u kunt ervaren tijdens deze activiteit. Uw medewerking en begrip worden zeer gewaardeerd.
+
+De Equinix SMC is beschikbaar om up-to-date informatie of extra gegevens te verschaffen. Mocht u vragen hebben over deze activiteit wilt u dan refereren aan 5-230281950000.
+
+**************************************************************************************
+
+Dear Equinix Customer,
+
+DATE: 06-NOV-2023 - 07-NOV-2023
+
+SPAN: 06-NOV-2023 - 07-NOV-2023
+
+LOCAL: MONDAY, 06 NOV 22:00 - TUESDAY, 07 NOV 06:00
+UTC: MONDAY, 06 NOV 21:00 - TUESDAY, 07 NOV 05:00
+
+IBX(s): AM1,AM11,AM3,AM5,EN1
+
+
+DESCRIPTION:
Please be advised that Equinix engineers will perform a software upgrade on our Equinix Fabric routers.
+The Equinix platform provides redundancy options. To mitigate the impact of a maintenance event, we recommend customers to setup redundant connections according to best practices.
+
+EXPECTED SERVICE IMPACT:
+For customers without redundancy configured ports and services a downtime is expected. Customers with redundant configured services will only experience a loss of redundancy.
+This work will impact network ports and virtual services listed in the Table below.
+
+EXPECTED DURATION:
+Up to 60 minutes in the maintenance window (between 20 to 60 minutes)
+
+PRODUCTS: EQUINIX CONNECT, EQUINIX FABRIC, EQUINIX INTERNET ACCESS, INTER METRO CONNECT, METRO CONNECT
+
+IMPACT: There will be service interruptions.
+

We apologize for any inconvenience you may experience during this activity. Your cooperation and understanding are greatly appreciated.

The Equinix SMC is available to provide up-to-date status information or additional details, should you have any questions regarding the maintenance. Please reference 5-230281950000.
+
+

Sincerely,
Equinix SMC

Contacts:

Please do not reply to this email address. If you have any questions or concerns regarding this notification, please log a network ticket via the Equinix Customer Portal, or contact Global Service Desk and quote the the ticket reference [5-230281950000].


+
To unsubscribe from notifications, please log in to the Equinix Customer Portal and change your preferences.

+
+
+
+
+

 

+
+
+ + + +
Equinix + + + +
How are we doing? Tell Equinix - We're Listening. + +  +
+
 
+
+ + + + + +
+ + + + + + + + + +------=_Part_333333_222222222.111111111111111111-- diff --git a/tests/unit/data/equinix/equinix9_result.json b/tests/unit/data/equinix/equinix9_result.json new file mode 100644 index 00000000..2824641e --- /dev/null +++ b/tests/unit/data/equinix/equinix9_result.json @@ -0,0 +1,17 @@ +[ + { + "account": "333333", + "circuits": [ + { + "circuit_id": "44444.AM1", + "impact": "OUTAGE" + }, + { + "circuit_id": "66666.AM1", + "impact": "OUTAGE" + } + ], + "end": 1699333200, + "start": 1699304400 + } +] diff --git a/tests/unit/data/equinix/equinix9_result_combined.json b/tests/unit/data/equinix/equinix9_result_combined.json new file mode 100644 index 00000000..70a06f9a --- /dev/null +++ b/tests/unit/data/equinix/equinix9_result_combined.json @@ -0,0 +1,25 @@ +[ + { + "account": "333333", + "circuits": [ + { + "circuit_id": "44444.AM1", + "impact": "OUTAGE" + }, + { + "circuit_id": "66666.AM1", + "impact": "OUTAGE" + } + ], + "end": 1699333200, + "maintenance_id": "5-230281950000", + "organizer": "servicedesk@equinix.com", + "provider": "equinix", + "sequence": 1, + "stamp": 1699333449, + "start": 1699304400, + "status": "COMPLETED", + "summary": "COMPLETED - Scheduled Software Upgrade-AM Metro Area Network Maintenance (SERVICE IMPACTING)-06-NOV-2023 [5-230281950000]", + "uid": "0" + } +] diff --git a/tests/unit/test_e2e.py b/tests/unit/test_e2e.py index 01b0d536..d595bf4e 100644 --- a/tests/unit/test_e2e.py +++ b/tests/unit/test_e2e.py @@ -279,6 +279,26 @@ [("email", Path(dir_path, "data", "equinix", "equinix5.eml"))], [Path(dir_path, "data", "equinix", "equinix5_result_combined.json")], ), + ( + Equinix, + [("email", Path(dir_path, "data", "equinix", "equinix6.eml"))], + [Path(dir_path, "data", "equinix", "equinix6_result_combined.json")], + ), + ( + Equinix, + [("email", Path(dir_path, "data", "equinix", "equinix7.eml"))], + [Path(dir_path, "data", "equinix", "equinix7_result_combined.json")], + ), + ( + Equinix, + [("email", Path(dir_path, "data", "equinix", "equinix8.eml"))], + [Path(dir_path, "data", "equinix", "equinix8_result_combined.json")], + ), + ( + Equinix, + [("email", Path(dir_path, "data", "equinix", "equinix9.eml"))], + [Path(dir_path, "data", "equinix", "equinix9_result_combined.json")], + ), # EUNetworks ( EUNetworks, diff --git a/tests/unit/test_parsers.py b/tests/unit/test_parsers.py index 8691b4d3..0ad75020 100644 --- a/tests/unit/test_parsers.py +++ b/tests/unit/test_parsers.py @@ -244,6 +244,26 @@ Path(dir_path, "data", "equinix", "equinix5.eml"), Path(dir_path, "data", "equinix", "equinix5_result.json"), ), + ( + HtmlParserEquinix, + Path(dir_path, "data", "equinix", "equinix6.eml"), + Path(dir_path, "data", "equinix", "equinix6_result.json"), + ), + ( + HtmlParserEquinix, + Path(dir_path, "data", "equinix", "equinix7.eml"), + Path(dir_path, "data", "equinix", "equinix7_result.json"), + ), + ( + HtmlParserEquinix, + Path(dir_path, "data", "equinix", "equinix8.eml"), + Path(dir_path, "data", "equinix", "equinix8_result.json"), + ), + ( + HtmlParserEquinix, + Path(dir_path, "data", "equinix", "equinix9.eml"), + Path(dir_path, "data", "equinix", "equinix9_result.json"), + ), # GTT ( HtmlParserGTT1,