NEW: Bring IpManager and HpUpdater together and add logger

This commit is contained in:
Jean-Claude 2020-04-22 19:33:42 +02:00
parent 0bd9684348
commit 0ad32183e3
Signed by: jeanclaude
GPG Key ID: 8A300F57CBB9F63E
2 changed files with 56 additions and 52 deletions

33
logger.conf Normal file
View File

@ -0,0 +1,33 @@
[loggers]
keys=root
[handlers]
keys=consoleHandler, fileHandler, debugHandler
[formatters]
keys=defaultFormatter
[logger_root]
level=DEBUG
handlers=consoleHandler, fileHandler, debugHandler
[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=defaultFormatter
args=(sys.stdout,)
[handler_fileHandler]
class=FileHandler
level=INFO
formatter=defaultFormatter
args=('%(logfilename)s',)
[handler_debugHandler]
class=FileHandler
level=DEBUG
formatter=defaultFormatter
args=('%(debuglogfilename)s',)
[formatter_defaultFormatter]
format='%(asctime)s:%(levelname)s:%(message)s'

75
main.py
View File

@ -1,62 +1,33 @@
#!/usr/bin/env python
import logging
import logging.config
import os
import requests
import time
from selenium import webdriver
def login(driver):
driver.get('https://admin.hostpoint.ch/customer/Auth/Login')
driver.find_element_by_name('username').send_keys('jeanggi90@gmail.com')
driver.find_element_by_name('password').send_keys('`^0oVc2Yd9`tQ&l]&4X04QNV<')
driver.find_element_by_name('login').click()
from HpUpdater import HpUpdater
from IpManager import IpManager
def updateARecord(driver, ip):
loggerConfigPath = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'logger.conf')
logging.config.fileConfig(fname=loggerConfigPath, defaults={'logfilename': 'log/main.log', 'debuglogfilename': 'log/debug.log'}, disable_existing_loggers=False)
rowId = ['record-70642858', 'record-70642859']
logger = logging.getLogger(__name__)
driver.get('https://admin.hostpoint.ch/customer/Domains/Overview')
driver.find_element_by_name('edit_dns').click()
driver.implicitly_wait(10)
tableRows = driver.find_element_by_id('dns-record-list').find_elements_by_class_name('b-record')
# The last two entries are my A records
for e in tableRows[-2:]:
try:
e.find_element_by_name('edit').click()
# For some reason with each iteration it return one more such element
editForm = driver.find_elements_by_class_name('dns-record-list-edit')
editForm[-1].find_element_by_name('ip_address').clear()
editForm[-1].find_element_by_name('ip_address').send_keys(ip)
editForm[-1].find_element_by_name('apply').click()
except Exception as e:
print(f"Except: {str(e)}")
try:
e = driver.find_element_by_name('execute_now')
driver.execute_script("arguments[0].click();", e)
# Give the site some time to save
time.sleep(10)
except Exception as e:
print(f"Except: {str(e)}")
# try:
# if driver.find_element_by_id('dns-editor-content-success').get_attribute('display') != 'none':
# print('Success')
#
# else:
# print('Not successful')
# except Exception as e:
# print("Not successful")
ipFile = "lastIp"
timeout = 60
if __name__ == "__main__":
with webdriver.Firefox() as driver:
login(driver)
updateARecord(driver, '46.127.188.60')
time.sleep(60)
logger.info('Start script')
manager = IpManager(ipFile)
fetch = manager.hasIpChanged()
if fetch is not None:
logger.debug('Fetch successful, updating ip')
HpUpdater().update(fetch)
else:
logger.debug('no need to update')