Skip to content

Commit

Permalink
url comments in log
Browse files Browse the repository at this point in the history
  • Loading branch information
troubadoour committed Sep 10, 2015
1 parent a1a6af5 commit 64b8685
Show file tree
Hide file tree
Showing 2 changed files with 80 additions and 38 deletions.
65 changes: 45 additions & 20 deletions usr/bin/sdwdate
Expand Up @@ -17,13 +17,18 @@ from sdwdate.timesanitycheck import timesanitycheck

class Sdwdate():
def __init__(self):
self.pool_one, self.pool_two, self.pool_three = read_pools()
(self.pool_one_url,
self.pool_two_url,
self.pool_three_url,
self.pool_one_comment,
self.pool_two_comment,
self.pool_three_comment) = read_pools()

self.iteration = 0

self.range_pool_one = len(self.pool_one)
self.range_pool_two = len(self.pool_two)
self.range_pool_three = len(self.pool_three)
self.range_pool_one = len(self.pool_one_url)
self.range_pool_two = len(self.pool_two_url)
self.range_pool_three = len(self.pool_three_url)

self.number_of_pools = 3

Expand Down Expand Up @@ -108,6 +113,20 @@ class Sdwdate():
logger.info(message)
return False

def get_comment(self, remote):
''' For logging the commnents, get the index of the url
to get it from pool_nnn_comment.
'''
pools_url = [self.pool_one_url, self.pool_two_url, self.pool_three_url]
pools_comment = [self.pool_one_comment, self.pool_two_comment, self.pool_three_comment]
for i in range(len(pools_url)):
try:
url_index = pools_url[i].index(remote)
url_comment = pools_comment[i][url_index]
except ValueError:
pass
return url_comment

def time_sanity_check(self):
status, time_one, time_two = timesanitycheck()

Expand Down Expand Up @@ -285,42 +304,42 @@ class Sdwdate():
while url_index not in self.already_picked_index_pool_one:
url_index = random.sample(range(self.range_pool_one), 1)

if len(self.already_picked_index_pool_one) >= len(self.pool_one):
if len(self.already_picked_index_pool_one) >= len(self.pool_one_url):
self.message = ' Time is not set: no valid time returned from pool one'
logger.warning(self.message)
return self.error_icon, 'error'

self.already_picked_index_pool_one.append(url_index)
self.url_random_pool_one.append(self.pool_one[url_index[0]])
self.url_random.append(self.pool_one[url_index[0]])
self.url_random_pool_one.append(self.pool_one_url[url_index[0]])
self.url_random.append(self.pool_one_url[url_index[0]])

if not self.pool_two_done:
url_index = []
while url_index not in self.already_picked_index_pool_two:
url_index = random.sample(range(self.range_pool_two), 1)

if len(self.already_picked_index_pool_two) >= len(self.pool_two):
if len(self.already_picked_index_pool_two) >= len(self.pool_two_url):
self.message = ' Time is not set: no valid time returned from pool two'
logger.warning(self.message)
return self.error_icon, 'error'

self.already_picked_index_pool_two.append(url_index)
self.url_random_pool_two.append(self.pool_two[url_index[0]])
self.url_random.append(self.pool_two[url_index[0]])
self.url_random_pool_two.append(self.pool_two_url[url_index[0]])
self.url_random.append(self.pool_two_url[url_index[0]])

if not self.pool_three_done:
url_index = []
while url_index not in self.already_picked_index_pool_three:
url_index = random.sample(range(self.range_pool_three), 1)

if len(self.already_picked_index_pool_three) >= len(self.pool_three):
if len(self.already_picked_index_pool_three) >= len(self.pool_three_url):
self.message = 'Time is not set: no valid time returned from pool three'
logger.warning(self.message)
return self.error_icon, 'error'

self.already_picked_index_pool_three.append(url_index)
self.url_random_pool_three.append(self.pool_three[url_index[0]])
self.url_random.append(self.pool_three[url_index[0]])
self.url_random_pool_three.append(self.pool_three_url[url_index[0]])
self.url_random.append(self.pool_three_url[url_index[0]])

## Fetch remotes.
if len(self.url_random) > 0:
Expand Down Expand Up @@ -403,13 +422,19 @@ class Sdwdate():
print(message)
logger.info(message)

message = 'Valid urls %s' % (self.valid_urls)
print(message)
logger.info(message)

message = 'Bad urls %s' % (self.invalid_urls)
print(message)
logger.info(message)
message = 'Valid urls:\n'
for i in range(len(self.valid_urls)):
url_comment = self.get_comment(self.valid_urls[i])
message = message + '%s: "%s"\n' % (self.valid_urls[i], url_comment)
print(message.strip())
logger.info(message.strip())

message = 'Bad urls:\n'
for i in range(len(self.invalid_urls)):
url_comment = self.get_comment(self.invalid_urls[i])
message = message + '%s: "%s"\n' % (self.invalid_urls[i], url_comment)
print(message.strip())
logger.info(message.strip())

message = 'Fetching remote times, end %s' % (time.time())
print(message)
Expand Down
53 changes: 35 additions & 18 deletions usr/lib/python2.7/dist-packages/sdwdate/config.py
Expand Up @@ -10,15 +10,18 @@ def sort_pool(pool):
number_of_pool_multi = 0
for i in range(len(pool)):
if pool[i] == ('['):
number_of_pool_multi = number_of_pool_multi + 1
number_of_pool_multi += 1

## Dynamically create multi-line lists.
multi_list = [[] for i in range(number_of_pool_multi)]
multi_list_url = [[] for i in range(number_of_pool_multi)]
multi_list_comment = [[] for i in range(number_of_pool_multi)]

## Sort...
multi_line = False
multi_index = 0
pool_single = []
pool_single_url = []
pool_single_comment = []

for i in range(len(pool)):
if multi_line and pool[i] == ']':
multi_line = False
Expand All @@ -27,23 +30,32 @@ def sort_pool(pool):
elif multi_line and pool[i].startswith('"'):
url = re.search(r'"(.*)#', pool[i])
if url != None:
multi_list[multi_index].append(url.group(1))
multi_list_url[multi_index].append(url.group(1))
comment = re.search(r'#(.*)"', pool[i])
if comment != None:
multi_list_comment[multi_index].append(comment.group(1))

elif pool[i] == '[':
multi_line = True

elif pool[i].startswith('"'):
url = re.search(r'"(.*)#', pool[i])
if url != None:
pool_single.append(url.group(1))
pool_single_url.append(url.group(1))
comment = re.search(r'#(.*)"', pool[i])
if comment != None:
pool_single_comment.append(comment.group(1))

## Pick a random url in each multi-line pool,
## append it to single url pool.
for i in range(number_of_pool_multi):
single_url = multi_list[i][random.sample(range(len(multi_list[i])), 1)[0]]
pool_single.append(single_url)
single_ulr_index = random.sample(range(len(multi_list_url[i])), 1)[0]
single_url = multi_list_url[i][single_ulr_index]
single_comment = multi_list_comment[i][single_ulr_index]
pool_single_url.append(single_url)
pool_single_comment.append(single_comment)

return(pool_single)
return(pool_single_url, pool_single_comment)

def read_pools():
SDWDATE_POOL_ONE = False
Expand All @@ -54,9 +66,9 @@ def read_pools():
pool_two = []
pool_three = []

pool_one_sorted = []
pool_two_sorted = []
pool_three_sorted = []
pool_one_url = []
pool_two_url = []
pool_three_url = []

if os.path.exists('/etc/sdwdate-python.d/'):
files = sorted(glob.glob('/etc/sdwdate-python.d/*'))
Expand Down Expand Up @@ -99,15 +111,20 @@ def read_pools():
else:
print('User configuration folder "/etc/sdwdate.d" does not exist.')

pool_one_sorted = sort_pool(pool_one)
pool_two_sorted = sort_pool(pool_two)
pool_three_sorted = sort_pool(pool_three)
pool_one_url, pool_one_comment = sort_pool(pool_one)
pool_two_url , pool_two_comment = sort_pool(pool_two)
pool_three_url, pool_three_comment = sort_pool(pool_three)

pool_one_sorted = list(set(pool_one_sorted))
pool_two_sorted = list(set(pool_two_sorted))
pool_three_sorted = list(set(pool_three_sorted))
#pool_one_url = list(set(pool_one_url))
#pool_two_url = list(set(pool_two_url))
#pool_three_url = list(set(pool_three_url))

return(pool_one_sorted, pool_two_sorted, pool_three_sorted)
return(pool_one_url,
pool_two_url,
pool_three_url,
pool_one_comment,
pool_two_comment,
pool_three_comment)

if __name__ == "__main__":
read_pools()

0 comments on commit 64b8685

Please sign in to comment.