blades-ssh-scraper/dt.py

39 lines
2.8 KiB
Python

import logging
serverName = ['Bay Server Name Serial Number Status Power UID Partner\r', '--- ------------------------------------------------- --------------- -------- ------- --- -------\r', ' 1 tty-lab-1 OK On Off \r', ' 2 tty-lab-2 CZ320263P9 OK On Off \r', ' 3 tty-lab-3 CZJ14410KP Failed On Off \r', ' 4 kspve1 CZJ14410KK OK On Off \r', ' 5 kspve2-2 OK On Off \r', ' 6 kspve3 OK On Off \r', ' 7 plaes-blade OK On Off \r', ' 8 Ringly-01 CZ3402Y48C OK On Off \r', ' 9 toomas-lepik CZ3217FNYE OK On Off \r', ' 10 toomas-lepik2 CZ3217FFSS OK On Off \r', ' 11 [Absent] \r', ' 12 erki-naumanis OK On Off \r', ' 13 [Absent] \r', ' 14 [Absent] \r', ' 15 [Absent] \r', ' 16 [Absent] \r']
serverNamePos = [] # Init list
# https://stackoverflow.com/a/19842807
haystack = serverName[1]
needle = " "
for i, _ in enumerate(haystack):
if haystack[i:i + len(needle)] == needle:
serverNamePos.append(i) # Add results to list. The last positions of each field are indexed, the next one being the seperator.
serverNameFields = len(serverNamePos) # How many fields do we have to process
n = 2 # What server, 2 is the first one.
servers = [] # Init, the results of this.
for n in range(2, len(serverName)): # Loop through servers. | Adjust for the first two being headers.
# Fields: [BayNumber "Server Name", "Serial Number", "Status", "Power", "UID Partner"]
serverNameCurrentTmp = [] # Init
for i in range(serverNameFields):
if i == 0: # Special case, as i-1 would loop around.
serverNameCurrentTmp.append( int( serverName[n][0:serverNamePos[i]].strip() ) ) # Also convert to int, as we know it's a number.
else:
serverNameCurrentTmp.append( serverName[n][serverNamePos[i-1]+1:serverNamePos[i]].strip() ) # Get ith field by character position.
servers.append(serverNameCurrentTmp)
logging.debug('Bays:')
logging.debug(servers)
breakpoint()
for n in range(len(servers)):
print(n)
#print(servers)
breakpoint()