ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/ns_dev/Python/NinoCode/Active_prgs/Redgrave/EndoIGServerAnalyzer.py
(Generate patch)

Comparing Python/NinoCode/Active_prgs/Redgrave/EndoIGServerAnalyzer.py (file contents):
Revision 788 by nino.borges, Wed Aug 24 15:31:17 2022 UTC vs.
Revision 789 by nino.borges, Fri Sep 2 15:43:05 2022 UTC

# Line 19 | Line 19 | import os
19  
20   if __name__ == '__main__':
21  
22 <    outputFileName = r"C:\Users\eborges\Documents\Cases\Endo\20220715 - IG Projects\4 - Develop Identification Process to Inventory NCDS stored in Endo IT\20220822-WindowsServer8_Matrix_Report.csv"
22 >    outputFileName = r"C:\Users\eborges\Documents\Cases\Endo\20220715 - IG Projects\4 - Develop Identification Process to Inventory NCDS stored in Endo IT\20220824-WindowsServer8_Matrix_Report.csv"
23  
24      ## This should all be csvs with pre-selected fields that are verified didnt already contain pipes. Also a headder row.
25      #win2kServersFile = r"C:\Users\eborges\Documents\Cases\Endo\20220715 - IG Projects\4 - Develop Identification Process to Inventory NCDS stored in Endo IT\_fromEndo\_csv\Win8Servers_filtered.csv"
# Line 31 | Line 31 | if __name__ == '__main__':
31      aspectDatabasesToServersFile = r"C:\Users\eborges\Documents\Cases\Endo\20220715 - IG Projects\4 - Develop Identification Process to Inventory NCDS stored in Endo IT\_fromEndo\_csv\All_endo_SQL_Server_databases.csv"
32      serviceNowToServersFile = r"C:\Users\eborges\Documents\Cases\Endo\20220715 - IG Projects\4 - Develop Identification Process to Inventory NCDS stored in Endo IT\_fromEndo\_csv\ServiceNow-PreParsed.txt"
33      legacySnowToServersFile = r"C:\Users\eborges\Documents\Cases\Endo\20220715 - IG Projects\4 - Develop Identification Process to Inventory NCDS stored in Endo IT\_fromEndo\_csv\LegacySNOW-PreParsed.txt"
34 +    win2kChngReqToServersFile = r"C:\Users\eborges\Documents\Cases\Endo\20220715 - IG Projects\4 - Develop Identification Process to Inventory NCDS stored in Endo IT\_fromEndo\_csv\SN-FromWinFile-PreParsed.txt"
35  
36      win2kServersFileMatrix = {}
37      appListServersFileMatrix = {}
# Line 39 | Line 40 | if __name__ == '__main__':
40      aspectDatabasesToServersMatrix = {}
41      serviceNowToServersMatrix = {}
42      legacySnowToServersMatrix = {}
43 +    win2kChngReqToServersMatrix = {}
44      
45  
46      ## Start with ingesting the win2kservers file but be sure to save the headders on this one.
# Line 141 | Line 143 | if __name__ == '__main__':
143      print("There are %s servers on the Legacy SNOW Export to servers file."%len(list(legacySnowToServersMatrix.keys())))
144  
145  
146 +    ## Next ingest the SN Numbers from the original win2008 file Export to server list. check that there is a chg number at all.
147 +    contents = open(win2kChngReqToServersFile).readlines()
148 +    contents = contents[1:]
149 +    for line in contents:
150 +        line = line.replace("\n","")
151 +        parsedLine = line.split("|")
152 +        ## Dont add it to the matrix if there is no chg number.
153 +        if parsedLine[1]:
154 +            if parsedLine[0].upper() in list(win2kChngReqToServersMatrix.keys()):
155 +                win2kChngReqToServersMatrix[parsedLine[0].upper()].append(line)
156 +            else:
157 +                win2kChngReqToServersMatrix[parsedLine[0].upper()] = [line,]
158 +    print("There are %s servers on the SN Numbers from the original win2008 file Export to servers file."%len(list(win2kChngReqToServersMatrix.keys())))
159 +
160 +
161 +
162      outputFile = open(outputFileName,'w')
163 <    outputFile.write(win2kServersFileHeadders + "|Found on 2022 SQL Server Report?|Found on 2021 SQL Server Report?|Found DatabaseNames Server Report?|DB Names Found on AspectList|Found on Application Inventory?|Applications|App IT Leadership Owner|App IT System Owner|App Executive Leadership Owner|App Business Owner|Found on ServiceNow|ServiceNowChangeReqNumbers|ServiceNow Business Owner|ServiceNowChangeBusiness/IT Approver|ServiceNow Parent Change Req Numbers|Found on LegacySNOW|Legacy SNOW ChangeRequestNumbers\n")
163 >    outputFile.write(win2kServersFileHeadders + "|Found on 2022 SQL Server Report?|Found on 2021 SQL Server Report?|Found DatabaseNames Server Report?|DB Names Found on AspectList|Found on Application Inventory?|Applications|App IT Leadership Owner|App IT System Owner|App Executive Leadership Owner|App Business Owner|Found on ServiceNow|ServiceNowChangeReqNumbers|ServiceNow Business Owner|ServiceNowChangeBusiness/IT Approver|ServiceNow Parent Change Req Numbers|Found on LegacySNOW|Legacy SNOW ChangeRequestNumbers|Win2008 Report ChngRequest Found|Win2008 Report ChngRequestNumbers|Win2008 Report SN Business Owner|Win2008 Report SN Business/IT Approver|Win2008 Report SN Parent Change Req Numbers\n")
164      for i in list(win2kServersFileMatrix.keys()):
165          nl=outputFile.write(win2kServersFileMatrix[i][0])
166          
# Line 315 | Line 333 | if __name__ == '__main__':
333          else:
334              nl=outputFile.write("|")
335  
336 +
337 +
338 +
339 +        chngReqList = ""
340 +        snBusinessOwnerList = set()
341 +        snApproverOwnerList = set()
342 +        snParentChgReqNumbList = set()
343 +        
344 +        if i in list(win2kChngReqToServersMatrix.keys()):
345 +            nl=outputFile.write("|YES")
346 +            for chngReqLine in win2kChngReqToServersMatrix[i]:
347 +                chngReqLine = chngReqLine.replace("\n","")
348 +                chngReqLine = chngReqLine.split("|")
349 +                chngReqDt = chngReqLine[3]
350 +                ##  Grab just the date for now but can change to date and time if needed
351 +                chngReqDt = chngReqDt.split(" ")[0]
352 +                chngReqNumbWDate = "%s [%s]"%(chngReqLine[1],chngReqDt)
353 +                if chngReqList:
354 +                    chngReqList = chngReqList + "; " +chngReqNumbWDate
355 +                else:
356 +                    chngReqList = chngReqNumbWDate
357 +                if chngReqLine[4]:
358 +                    if chngReqLine[4] == "None":
359 +                        pass
360 +                    else:
361 +                        snBusinessOwnerList.add("%s [%s]"%(chngReqLine[4],chngReqLine[1]))
362 +                if chngReqLine[5]:
363 +                    if chngReqLine[5] == "None":
364 +                        pass
365 +                    else:
366 +                        snApproverOwnerList.add("%s [%s]"%(chngReqLine[5],chngReqLine[1]))
367 +                if chngReqLine[6]:
368 +                    if chngReqLine[6] == "None":
369 +                        pass
370 +                    else:
371 +                        snParentChgReqNumbList.add("%s [%s]"%(chngReqLine[6],chngReqLine[1]))
372 +                    
373 +        else:
374 +            nl=outputFile.write("|NO")
375 +        if chngReqList:
376 +            nl=outputFile.write("|" + chngReqList)
377 +        else:
378 +            nl=outputFile.write("|")
379 +        if snBusinessOwnerList:
380 +            nl=outputFile.write("|" + "; ".join(snBusinessOwnerList))
381 +        else:
382 +            nl=outputFile.write("|")
383 +        if snApproverOwnerList:
384 +            nl=outputFile.write("|" + "; ".join(snApproverOwnerList))
385 +        else:
386 +            nl=outputFile.write("|")
387 +        if snParentChgReqNumbList:
388 +            nl=outputFile.write("|" + "; ".join(snParentChgReqNumbList))
389 +        else:
390 +            nl=outputFile.write("|")
391 +
392  
393          nl = outputFile.write("\n")
394      outputFile.close()

Diff Legend

Removed lines
+ Added lines
< Changed lines (old)
> Changed lines (new)