Author: sebb
Date: Tue Jun 21 11:54:39 2022
New Revision: 1902136

URL: http://svn.apache.org/viewvc?rev=1902136&view=rev
Log:
Detect rebooted committees

Modified:
    comdev/projects.apache.org/trunk/scripts/cronjobs/parsecommitteeinfo.py

Modified: 
comdev/projects.apache.org/trunk/scripts/cronjobs/parsecommitteeinfo.py
URL: 
http://svn.apache.org/viewvc/comdev/projects.apache.org/trunk/scripts/cronjobs/parsecommitteeinfo.py?rev=1902136&r1=1902135&r2=1902136&view=diff
==============================================================================
--- comdev/projects.apache.org/trunk/scripts/cronjobs/parsecommitteeinfo.py 
(original)
+++ comdev/projects.apache.org/trunk/scripts/cronjobs/parsecommitteeinfo.py Tue 
Jun 21 11:54:39 2022
@@ -1,4 +1,7 @@
 """
+Parse committee data to generate JSON files
+
+N.B. Must be run from scripts/cronjobs directory
 
 Reads:
 ../../data/committees.xml
@@ -75,7 +78,7 @@ def handleChild(el):
 pmcs = {}
 pmcDataUrls = {} # id -> url
 
-skipImageTest = len(sys.argv) >= 2 and sys.argv[1] == '--skipImageTest'
+skipImageTest = len(sys.argv) >= 2 and sys.argv[1] == '--skipImageTest' # 
speeds up testing considerably
 
 # get PMC Data from /data/committees.xml
 print("Reading PMC Data (/data/committees.xml)")
@@ -130,7 +133,8 @@ for loc in xmldoc.getElementsByTagName('
 committeeCount = 0
 committeesList = []
 committeesMap = {}
-addedCommittees = []
+addedCommittees = [] # new committees detected
+rebootedCommittees = [] # retired committees restarted
 
 # temporary fix to ensure comparisons of generated files work better
 # The original code relied on the order in the physical file
@@ -228,23 +232,35 @@ for group in sorted(committees, key=keyo
 with open("../../site/json/foundation/committees-retired.json", "r") as f:
     committeesRetired = json.loads(f.read())
     f.close()
+committeesRetiredIds = [item['id'] for item in committeesRetired]
 
 with open("../../site/json/foundation/committees.json", "r") as f:
     committeesPrevious = json.loads(f.read())
     f.close()
+committeesPreviousIds = [item['id'] for item in committeesPrevious]
 
 for currId in committeesMap:
-    if not currId in [item['id'] for item in committeesPrevious]:
+    if currId not in committeesPreviousIds:
         addedCommittees.append(currId)
+    if currId in committeesRetiredIds: # detect rebooted committees
+      rebootedCommittees.append(currId)
 
 print("found %s new committees from %s committees in committee_info.txt" % 
(len(addedCommittees), committeeCount))
 addedCommittees.sort()
 for added in addedCommittees:
     print("- %s" % added)
 
+print("found %s rebooted committees from %s committees in committee_info.txt" 
% (len(rebootedCommittees), committeeCount))
+rebootedCommittees.sort()
+for added in rebootedCommittees:
+    print("- %s" % added)
+
+# Drop the rebooted committees from the retired list
+committeesRetired = [x for x in committeesRetired if x['id'] not in 
rebootedCommittees]
+
 for previous in committeesPrevious:
     prevId = previous['id']
-    if not prevId in committeesMap:
+    if prevId not in committeesMap:
         print("found retired committee: %s %s" % (prevId, previous['name']))
         previous['retired'] = datetime.date.today().strftime('%Y-%m')
         # remove data that is not useful in a retired committee


Reply via email to