NEW: Bring IpManager and HpUpdater together and add logger
This commit is contained in:
parent
0bd9684348
commit
0ad32183e3
|
@ -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
75
main.py
|
@ -1,62 +1,33 @@
|
||||||
|
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import logging
|
||||||
|
import logging.config
|
||||||
|
import os
|
||||||
|
import requests
|
||||||
import time
|
import time
|
||||||
|
|
||||||
from selenium import webdriver
|
from selenium import webdriver
|
||||||
|
|
||||||
def login(driver):
|
from HpUpdater import HpUpdater
|
||||||
driver.get('https://admin.hostpoint.ch/customer/Auth/Login')
|
from IpManager import IpManager
|
||||||
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()
|
|
||||||
|
|
||||||
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')
|
ipFile = "lastIp"
|
||||||
driver.find_element_by_name('edit_dns').click()
|
timeout = 60
|
||||||
|
|
||||||
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")
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
with webdriver.Firefox() as driver:
|
logger.info('Start script')
|
||||||
login(driver)
|
|
||||||
updateARecord(driver, '46.127.188.60')
|
manager = IpManager(ipFile)
|
||||||
time.sleep(60)
|
|
||||||
|
fetch = manager.hasIpChanged()
|
||||||
|
if fetch is not None:
|
||||||
|
logger.debug('Fetch successful, updating ip')
|
||||||
|
HpUpdater().update(fetch)
|
||||||
|
else:
|
||||||
|
logger.debug('no need to update')
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue