@@ -16,39 +16,90 @@ def cli(env, ack_all):
1616 """Summary and acknowledgement of upcoming and ongoing maintenance events"""
1717
1818 manager = AccountManager (env .client )
19- events = manager .get_upcoming_events ()
19+ planned_events = manager .get_upcoming_events ("PLANNED" )
20+ unplanned_events = manager .get_upcoming_events ("UNPLANNED_INCIDENT" )
21+ announcement_events = manager .get_upcoming_events ("ANNOUNCEMENT" )
2022
23+ add_ack_flag (planned_events , manager , ack_all )
24+ env .fout (planned_event_table (planned_events ))
25+
26+ add_ack_flag (unplanned_events , manager , ack_all )
27+ env .fout (unplanned_event_table (unplanned_events ))
28+
29+ add_ack_flag (announcement_events , manager , ack_all )
30+ env .fout (announcement_event_table (announcement_events ))
31+
32+
33+ def add_ack_flag (events , manager , ack_all ):
34+ """Add acknowledgedFlag to the event"""
2135 if ack_all :
2236 for event in events :
2337 result = manager .ack_event (event ['id' ])
2438 event ['acknowledgedFlag' ] = result
25- env .fout (event_table (events ))
2639
2740
28- def event_table (events ):
41+ def planned_event_table (events ):
2942 """Formats a table for events"""
30- table = formatting .Table ([
31- "Id" ,
32- "Start Date" ,
33- "End Date" ,
34- "Subject" ,
35- "Status" ,
36- "Acknowledged" ,
37- "Updates" ,
38- "Impacted Resources"
39- ], title = "Upcoming Events" )
40- table .align ['Subject' ] = 'l'
41- table .align ['Impacted Resources' ] = 'l'
43+ planned_table = formatting .Table (['Event Data' , 'Id' , 'Event ID' , 'Subject' , 'Status' , 'Items' , 'Start Date' ,
44+ 'End Date' , 'Acknowledged' , 'Updates' ], title = "Planned Events" )
45+ planned_table .align ['Subject' ] = 'l'
46+ planned_table .align ['Impacted Resources' ] = 'l'
4247 for event in events :
43- table .add_row ([
48+ planned_table .add_row ([
49+ utils .clean_time (event .get ('startDate' )),
4450 event .get ('id' ),
51+ event .get ('systemTicketId' ),
52+ # Some subjects can have \r\n for some reason.
53+ utils .clean_splitlines (event .get ('subject' )),
54+ utils .lookup (event , 'statusCode' , 'name' ),
55+ event .get ('impactedResourceCount' ),
4556 utils .clean_time (event .get ('startDate' )),
4657 utils .clean_time (event .get ('endDate' )),
58+ event .get ('acknowledgedFlag' ),
59+ event .get ('updateCount' ),
60+
61+ ])
62+ return planned_table
63+
64+
65+ def unplanned_event_table (events ):
66+ """Formats a table for events"""
67+ unplanned_table = formatting .Table (['Id' , 'Event ID' , 'Subject' , 'Status' , 'Items' , 'Start Date' ,
68+ 'Last Updated' , 'Acknowledged' , 'Updates' ], title = "Unplanned Events" )
69+ unplanned_table .align ['Subject' ] = 'l'
70+ unplanned_table .align ['Impacted Resources' ] = 'l'
71+ for event in events :
72+ print (event .get ('modifyDate' ))
73+ unplanned_table .add_row ([
74+ event .get ('id' ),
75+ event .get ('systemTicketId' ),
4776 # Some subjects can have \r\n for some reason.
4877 utils .clean_splitlines (event .get ('subject' )),
4978 utils .lookup (event , 'statusCode' , 'name' ),
79+ event .get ('impactedResourceCount' ),
80+ utils .clean_time (event .get ('startDate' )),
81+ utils .clean_time (event .get ('modifyDate' )),
5082 event .get ('acknowledgedFlag' ),
5183 event .get ('updateCount' ),
52- event .get ('impactedResourceCount' )
5384 ])
54- return table
85+ return unplanned_table
86+
87+
88+ def announcement_event_table (events ):
89+ """Formats a table for events"""
90+ announcement_table = formatting .Table (
91+ ['Id' , 'Event ID' , 'Subject' , 'Status' , 'Items' , 'Acknowledged' , 'Updates' ], title = "Announcement Events" )
92+ announcement_table .align ['Subject' ] = 'l'
93+ announcement_table .align ['Impacted Resources' ] = 'l'
94+ for event in events :
95+ announcement_table .add_row ([
96+ event .get ('id' ),
97+ event .get ('systemTicketId' ),
98+ # Some subjects can have \r\n for some reason.
99+ utils .clean_splitlines (event .get ('subject' )),
100+ utils .lookup (event , 'statusCode' , 'name' ),
101+ event .get ('impactedResourceCount' ),
102+ event .get ('acknowledgedFlag' ),
103+ event .get ('updateCount' )
104+ ])
105+ return announcement_table
0 commit comments