NEW: Move hostpoint updater to dedicated class
This commit is contained in:
parent
3dc5009ac9
commit
cac0363daf
|
@ -0,0 +1,69 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
import time
|
||||
import logging
|
||||
|
||||
logger = logging.getLogger(__file__)
|
||||
|
||||
from selenium import webdriver
|
||||
|
||||
class HpUpdater():
|
||||
|
||||
def __init__(self):
|
||||
logger.debug('Initiating HpUpdater')
|
||||
|
||||
def _login(self, driver):
|
||||
logger.debug('login called')
|
||||
|
||||
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()
|
||||
|
||||
def _updateARecord(self, driver, ip):
|
||||
logger.debug('updateARecord called')
|
||||
|
||||
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:
|
||||
logger.error(f'Exception during update: {str(e)}')
|
||||
|
||||
logger.info(f'Changed A records ip to {ip}')
|
||||
|
||||
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)
|
||||
|
||||
logger.info('Successfully saved changes')
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f'Exception during save: {str(e)}')
|
||||
|
||||
def update(self, ip):
|
||||
logger.info('Start Hostpoint Record update')
|
||||
|
||||
with webdriver.Firefox() as driver:
|
||||
|
||||
self._login(driver)
|
||||
self._updateARecord(driver, ip)
|
Loading…
Reference in New Issue