From 99e3fa9749a4eb0d3c69f8b2087fd21354e6e85e Mon Sep 17 00:00:00 2001 From: Brian Rimek Date: Tue, 4 Dec 2018 18:18:26 +0100 Subject: [PATCH 01/21] add Hetzner Robot provider --- CODEOWNERS | 1 + lexicon/providers/hetzner.py | 440 +++++++++++ optional-requirements.txt | 1 + setup.py | 1 + .../test_Provider_authenticate.yaml | 489 +++++++++++++ ...ate_with_unmanaged_domain_should_fail.yaml | 643 ++++++++++++++++ ...ord_for_A_with_valid_name_and_content.yaml | 489 +++++++++++++ ...for_CNAME_with_valid_name_and_content.yaml | 553 ++++++++++++++ ...rd_for_TXT_with_fqdn_name_and_content.yaml | 554 ++++++++++++++ ...rd_for_TXT_with_full_name_and_content.yaml | 555 ++++++++++++++ ...d_for_TXT_with_valid_name_and_content.yaml | 556 ++++++++++++++ ...ltiple_times_should_create_record_set.yaml | 620 ++++++++++++++++ ...with_duplicate_records_should_be_noop.yaml | 558 ++++++++++++++ ...record_by_filter_should_remove_record.yaml | 623 ++++++++++++++++ ...r_with_fqdn_name_should_remove_record.yaml | 623 ++++++++++++++++ ...r_with_full_name_should_remove_record.yaml | 623 ++++++++++++++++ ...rd_by_identifier_should_remove_record.yaml | 623 ++++++++++++++++ ...content_should_leave_others_untouched.yaml | 687 +++++++++++++++++ ...ecord_with_record_set_name_remove_all.yaml | 688 ++++++++++++++++++ ...alling_list_records_after_setting_ttl.yaml | 560 ++++++++++++++ ...ist_records_should_handle_record_sets.yaml | 625 ++++++++++++++++ ...fqdn_name_filter_should_return_record.yaml | 562 ++++++++++++++ ...full_name_filter_should_return_record.yaml | 563 ++++++++++++++ ...h_invalid_filter_should_be_empty_list.yaml | 500 +++++++++++++ ...with_name_filter_should_return_record.yaml | 564 ++++++++++++++ ...rds_with_no_arguments_should_list_all.yaml | 500 +++++++++++++ ...ng_update_record_should_modify_record.yaml | 628 ++++++++++++++++ ...d_should_modify_record_name_specified.yaml | 629 ++++++++++++++++ ...d_with_fqdn_name_should_modify_record.yaml | 630 ++++++++++++++++ ...d_with_full_name_should_modify_record.yaml | 631 ++++++++++++++++ tests/providers/test_hetzner.py | 47 ++ 31 files changed, 15766 insertions(+) create mode 100644 lexicon/providers/hetzner.py create mode 100644 tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_authenticate.yaml create mode 100644 tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_authenticate_with_unmanaged_domain_should_fail.yaml create mode 100644 tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_for_A_with_valid_name_and_content.yaml create mode 100644 tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_for_CNAME_with_valid_name_and_content.yaml create mode 100644 tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_fqdn_name_and_content.yaml create mode 100644 tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_full_name_and_content.yaml create mode 100644 tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_valid_name_and_content.yaml create mode 100644 tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_multiple_times_should_create_record_set.yaml create mode 100644 tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_with_duplicate_records_should_be_noop.yaml create mode 100644 tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_by_filter_should_remove_record.yaml create mode 100644 tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_fqdn_name_should_remove_record.yaml create mode 100644 tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_full_name_should_remove_record.yaml create mode 100644 tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_by_identifier_should_remove_record.yaml create mode 100644 tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_by_content_should_leave_others_untouched.yaml create mode 100644 tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_name_remove_all.yaml create mode 100644 tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_after_setting_ttl.yaml create mode 100644 tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_should_handle_record_sets.yaml create mode 100644 tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_with_fqdn_name_filter_should_return_record.yaml create mode 100644 tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_with_full_name_filter_should_return_record.yaml create mode 100644 tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_with_invalid_filter_should_be_empty_list.yaml create mode 100644 tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_with_name_filter_should_return_record.yaml create mode 100644 tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_with_no_arguments_should_list_all.yaml create mode 100644 tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_update_record_should_modify_record.yaml create mode 100644 tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_update_record_should_modify_record_name_specified.yaml create mode 100644 tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_update_record_with_fqdn_name_should_modify_record.yaml create mode 100644 tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_update_record_with_full_name_should_modify_record.yaml create mode 100644 tests/providers/test_hetzner.py diff --git a/CODEOWNERS b/CODEOWNERS index bdb6c9a44..46a2368f3 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -32,6 +32,7 @@ lexicon/providers/gehirn.py @chibiegg lexicon/providers/glesys.py @hecd lexicon/providers/godaddy.py @adferrand lexicon/providers/henet.py @hank +lexicon/providers/hetzner.py @rembik lexicon/providers/internetbs.py @edausq lexicon/providers/inwx.py @lociii lexicon/providers/linode.py @trinopoty diff --git a/lexicon/providers/hetzner.py b/lexicon/providers/hetzner.py new file mode 100644 index 000000000..cddc794f5 --- /dev/null +++ b/lexicon/providers/hetzner.py @@ -0,0 +1,440 @@ +from __future__ import absolute_import +from __future__ import unicode_literals + +import hashlib +import json +import logging +import os +import re +import requests +import time + +# Due to optional requirement +try: + from bs4 import BeautifulSoup + import dns.exception + import dns.resolver + import dns.zone +except ImportError: + pass + +from lexicon.providers.base import Provider as BaseProvider + +logger = logging.getLogger(__name__) + +# Lexicon Hetzner Robot Provider +# +# Author: Brian Rimek, 2018 +# +# Implementation notes: +# * The Hetzner Robot does not assign a unique identifier to each record in the way +# that Lexicon expects. We work around this by creating an ID based on the record +# type, name(FQDN) and content(if possible FQDN), which when taken together are unique. +# Supported record identifier formats are: +# * hash - generated|verified by 'list' command; e.g. '30fa112' +# * raw - concatenation of the record type, name(FQDN) and content(if possible FQDN) with delimiter '/'; +# e.g. 'TXT/example.com./challengetoken' or 'SRV/example.com./0 0 443 msx.example.com.' + +NAMESERVER_DOMAINS = [] + +def ProviderParser(subparser): + subparser.add_argument('--auth-username', help='specify Hetzner Robot username') + subparser.add_argument('--auth-password', help='specify Hetzner Robot password') + subparser.add_argument('--concatenate', + help='use existent CNAME as record name for create|update|delete action: by default (yes); ' + 'Restriction: Only enabled if the record name or the raw FQDN record identifier \'type/name/content\' ' + 'is spezified, and additionally for update action the record name remains the same', + default='yes'.encode('UTF-8'), choices=['yes'.encode('UTF-8'), 'no'.encode('UTF-8')]) + subparser.add_argument('--propagated', + help='wait until record is propagated after succeeded create|update action: by default (yes)', + default='yes'.encode('UTF-8'), choices=['yes'.encode('UTF-8'), 'no'.encode('UTF-8')]) + +class Provider(BaseProvider): + + def __init__(self, config): + super(Provider, self).__init__(config) + self.api_endpoint = 'https://robot.your-server.de' + self.auth_endpoint = 'https://accounts.hetzner.com' + + self.username = self._get_provider_option('auth_username') + assert self.username is not None + self.password = self._get_provider_option('auth_password') + assert self.password is not None + + self.nameservers = [] + self.cname = None + self.session = None + self.zone = None + + # Authenticate against provider. + def authenticate(self): + concatenate, name = self._concatenate() + zone, self.nameservers, self.cname = self._dns_cname(concatenate, self.domain, name) + self.session = self._open_session(self.username, self.password) + self.domain_id = self._get_zone_id(zone) + self.zone = self._get_zone(zone, self.domain_id) + + # Create record. If record already exists with the same content, do nothing. + def create_record(self, type, name, content): + if type is None or name is None or content is None: + logger.error('Hetzner => Record has no type|name|content spezified') + self._close_session() + return False + + rrset = self.zone['data'].get_rdataset((self.cname if self.cname else self._fqdn_name(name)), rdtype=type, create=True) + for rdata in rrset: + if self._wellformed_content(type, content) == rdata.to_text(): + logger.info('Hetzner => Record with content \'{0}\' already exists'.format(content)) + self._close_session() + return True + + ttl = rrset.ttl if rrset.ttl > 0 and rrset.ttl < self._get_lexicon_option('ttl') else self._get_lexicon_option('ttl') + rdataset = dns.rdataset.from_text(rrset.rdclass, rrset.rdtype, ttl, self._wellformed_content(type, content)) + rrset.update(rdataset) + synced_change = self._post_zone() + if synced_change: + self._propagated(type, name, content) + self._close_session() + return synced_change + + # List all records. Return an empty list if no records found. + # type, name and content are used to filter records. + # If possible filter during the query, otherwise filter after response is received. + def list_records(self, type=None, name=None, content=None): + records = [] + rrsets = self.zone['data'].iterate_rdatasets() if self.zone else [] + for rname, rdataset in rrsets: + rtype = dns.rdatatype.to_text(rdataset.rdtype) + rname = rname.to_text() + if (not type or type == rtype) and (not name or (self.cname if self.cname else self._fqdn_name(name)) == rname): + for rdata in rdataset: + rdata = rdata.to_text() + if (not content or self._wellformed_content(rtype, content) == rdata): + raw_rdata = self._raw_content(rtype, rdata) + data = { + 'type': rtype, + 'name': self._full_name(rname), + 'ttl': int(rdataset.ttl), + 'content': raw_rdata, + 'id': self._build_identifier(rtype, rname, raw_rdata) + } + records.append(data) + if self._get_lexicon_option('action') == 'list': + self._close_session() + return records + + # Update a record. + # If record does not exist or lookup matching more than one record, do nothing. + # If an identifier is specified, use it, otherwise do a lookup using type and name. + # Support existent CNAME as record name if: + # * record type & record name or raw FQDN record identifier 'type/name/content' are spezified + # * record name remains the same + def update_record(self, identifier=None, type=None, name=None, content=None): + if identifier: + delete_type, delete_name, delete_content = self._parse_identifier(identifier) + if delete_type and delete_name and delete_content: + type = type if type else delete_type + name = name if name else delete_name + content = content if content else delete_content + else: + logger.error('Hetzner => Record with identifier \'{0}\' does not exist'.format(identifier)) + self._close_session() + return False + + elif type and name and content: + delete_type, delete_name, delete_content = type, name, None + else: + logger.error('Hetzner => Record has no type|name|content spezified') + self._close_session() + return False + + # Delete record + delete_records = self.list_records(delete_type, delete_name, delete_content) + if len(delete_records) > 0: + for record in delete_records: + delete_rrset = self.zone['data'].get_rdataset(record['name']+'.', rdtype=record['type']) + keep_rdatas = [] + for delete_rdata in delete_rrset: + if self._wellformed_content(record['type'], record['content']) != delete_rdata.to_text(): + keep_rdatas.append(delete_rdata.to_text()) + if len(keep_rdatas) > 0: + if delete_content is None: + logger.error('Hetzner => Record lookup matching more than one record') + self._close_session() + return False + + else: + keep_rdataset = dns.rdataset.from_text_list(delete_rrset.rdclass, delete_rrset.rdtype, record['ttl'], keep_rdatas) + self.zone['data'].replace_rdataset(record['name']+'.', keep_rdataset) + else: + self.zone['data'].delete_rdataset(record['name']+'.', record['type']) + # Create record + rrset = self.zone['data'].get_rdataset((self.cname if self.cname else self._fqdn_name(name)), rdtype=type, create=True) + synced_create_change = False + for rdata in rrset: + if self._wellformed_content(type, content) == rdata.to_text(): + logger.info('Hetzner => Record with content \'{0}\' already exists'.format(content)) + synced_create_change = True + break + if not synced_create_change: + ttl = rrset.ttl if rrset.ttl > 0 and rrset.ttl < self._get_lexicon_option('ttl') else self._get_lexicon_option('ttl') + renew_rdataset = dns.rdataset.from_text(rrset.rdclass, rrset.rdtype, ttl, self._wellformed_content(type, content)) + rrset.update(renew_rdataset) + synced_change = self._post_zone() + if synced_change: + self._propagated(type, name, content) + self._close_session() + return synced_change + + logger.error('Hetzner => Record lookup has no matches') + self._close_session() + return False + + # Delete an existing record. + # If record does not exist, do nothing. + # If an identifier is specified, use it, otherwise do a lookup using type, name and content. + # Support existent CNAME as record name if: + # * record type & record name or raw FQDN record identifier 'type/name/content' are spezified + def delete_record(self, identifier=None, type=None, name=None, content=None): + if identifier: + type, name, content = self._parse_identifier(identifier) + if type is None or name is None or content is None: + logger.info('Hetzner => Record with identifier \'{0}\' does not exist'.format(identifier)) + self._close_session() + return True + + delete_records = self.list_records(type, name, content) + if len(delete_records) > 0: + for record in delete_records: + rrset = self.zone['data'].get_rdataset(record['name']+'.', rdtype=record['type']) + rdatas = [] + for rdata in rrset: + if self._wellformed_content(record['type'], record['content']) != rdata.to_text(): + rdatas.append(rdata.to_text()) + if len(rdatas) > 0: + rdataset = dns.rdataset.from_text_list(rrset.rdclass, rrset.rdtype, record['ttl'], rdatas) + self.zone['data'].replace_rdataset(record['name']+'.', rdataset) + else: + self.zone['data'].delete_rdataset(record['name']+'.', record['type']) + synced_change = self._post_zone() + self._close_session() + return synced_change + + logger.info('Hetzner => Record lookup has no matches') + self._close_session() + return True + + # Helpers + def _request(self, action='GET', url='/', data=None, query_params=None): + if data is None: + data = {} + if query_params is None: + query_params = {} + for i in range(10): + try: + r = self.session.request(action, self.api_endpoint + url, params=query_params, data=data) + r.raise_for_status() # if the request fails for any reason, throw an error. + break + except requests.exceptions.ConnectionError as e: + time.sleep(1) + return r + + def _build_identifier(self, type, name, content): + sha256 = hashlib.sha256() + sha256.update((type + '/').encode('UTF-8')) + sha256.update((name + '/').encode('UTF-8')) + sha256.update(content.encode('UTF-8')) + return sha256.hexdigest()[0:7] + + def _parse_identifier(self, identifier): + type, name, content = None, None, None + if len(identifier) > 7: + parts = identifier.split('/') + type, name, content = parts[0], parts[1], '/'.join(parts[2:]) + else: + records = self.list_records() + for record in records: + if(record['id'] == identifier): + type, name, content = record['type'], record['name']+'.', record['content'] + return type, name, content + + def _wellformed_content(self, type, content): + if type in ('TXT', 'LOC'): + if content[0] != '"': + content = '"' + content + if content[-1] != '"': + content += '"' + if type in ('CNAME', 'MX', 'NS', 'SRV'): + if content[-1] != '.': + content = self._fqdn_name(content) + return content + + def _raw_content(self, type, content): + if type in ('TXT', 'LOC'): + content = content.strip('"') + return content + + def _concatenate(self): + action = self._get_lexicon_option('action') + identifier = self._get_lexicon_option('identifier') + type = self._get_lexicon_option('type') + name = self._get_lexicon_option('name') + concatenate = True if self._get_provider_option('concatenate') == 'yes' else False + name_update = name + if identifier: + type, name, content = self._parse_identifier(identifier) + name_update = name if name_update is None or name_update == name else name_update + if action == 'list' or (action == 'update' and name != name_update ) or type is None or type == 'CNAME' or name is None or not concatenate: + logger.info('Hetzner => Disabled CNAME lookup, see --concatenate option with \'lexicon hetzner --help\'') + return False, name + logger.info('Hetzner => Enabled CNAME lookup, see --concatenate option with \'lexicon hetzner --help\'') + return True, name + + def _propagated(self, type, name, content): + propagated = True if self._get_provider_option('propagated') == 'yes' else False + if propagated: + retry, max_retry = 0, 30 + while(retry < max_retry): + for rdata in self._dns_lookup((self.cname if self.cname else self._fqdn_name(name)), type, self.nameservers): + if self._wellformed_content(type, content) == rdata.to_text(): + return True + retry += 1 + logger.info('Hetzner => Record is not propagated, {0} retries remaining - wait 30s...'.format(max_retry - retry)) + time.sleep(30) + return False + + def _dns_lookup(self, qname, rdtype, nameservers=[]): + if len(nameservers) == 0: + nameservers = ['8.8.8.8','8.8.4.4'] + rrset = dns.rrset.from_text(qname, 0, 1, rdtype) + try: + resolver = dns.resolver.Resolver() + resolver.nameservers = nameservers + rrset = resolver.query(qname, rdtype) + for rdata in rrset: + logger.debug('DNS Lookup => {0} {1} {2} {3}'.format(rrset.qname.to_text(), dns.rdataclass.to_text(rrset.rdclass), dns.rdatatype.to_text(rrset.rdtype), rdata.to_text())) + except dns.exception.DNSException as e: + logger.debug('DNS Lookup => {0}'.format(e)) + return rrset + + def _dns(self, zone, name): + qname = dns.name.from_text(name) + nameservers = [] + rdtypes_ns = ['SOA','NS'] + rdtypes_ip = ['A','AAAA'] + while (len(qname.labels)>2 and len(nameservers) == 0): + for rdtype_ns in rdtypes_ns: + for rdata_ns in self._dns_lookup(qname, rdtype_ns): + for rdtype_ip in rdtypes_ip: + for rdata_ip in self._dns_lookup(rdata_ns.to_text().split(' ')[0], rdtype_ip): + if rdata_ip.to_text() not in nameservers: + nameservers.append(rdata_ip.to_text()) + qzone = qname.to_text() + qname = qname.parent() + zone = qzone if len(nameservers) > 0 else zone + nameservers = nameservers if len(nameservers) > 0 else [] + logger.debug('DNS Lookup => {0} IN NS {1}'.format(zone, ' '.join(nameservers))) + return zone, nameservers + + def _dns_cname(self, concatenate, zone, name=None): + cname = None + if not concatenate: + name = self._fqdn_name(name) if name else zone+'.' + zone, nameservers = self._dns(zone, name) + else: + concat, max_concats, name = 0, 10, self._fqdn_name(name) + while(concatenate == True): + if concat >= max_concats: + logger.error('Hetzner => Record {0} has more than {1} concatenated CNAME entries. Reduce the amount of CNAME concatenations!'.format(name, max_concats)) + self._close_session() + raise AssertionError + qname = cname if cname else name + zone, nameservers = self._dns(zone, qname) + rrset = self._dns_lookup(qname, 'CNAME') + if len(rrset) > 0: + concat += 1 + cname = rrset[0].to_text() + else: + concatenate = False + logger.info('Hetzner => Record {0} has CNAME {1}'.format(name, cname)) + return zone, nameservers, cname + + def _open_session(self, username, password): + session = requests.session() + session.request('GET','{0}/login'.format(self.auth_endpoint)) + r = session.request('POST','{0}/login_check'.format(self.auth_endpoint), data={'_username': username, '_password': password}) + if '{0}/account/masterdata'.format(self.auth_endpoint) == r.url and r.status_code == 200: + r = session.request('GET','{0}/'.format(self.api_endpoint)) + if self.api_endpoint not in r.url or r.status_code != 200: + logger.error('Hetzner => Unable to open session to account {0}'.format(username)) + raise AssertionError + logger.info('Hetzner => Open session to account {0}'.format(username)) + return session + + def _close_session(self): + if self._get_provider_option('live_tests') is None: + r = self._get('/login/logout/r/true') + if '{0}/logout'.format(self.auth_endpoint) not in r.url and r.status_code != 200: + logger.error('Hetzner => Unable to safely close session') + else: + logger.info('Hetzner => Close session') + self.session = None + + def _extract_zone_id_from_js(self, s): + r = re.compile(r'\'(\d+)\'') + m = r.search(s) + if not m: return False + return int(m.group(1)) + + def _get_zone_id(self, zone): + zone = dns.name.from_text(zone).to_unicode(True) + id, zones, last_count, page = None, {}, -1, 1 + while (last_count != len(zones) and id is None): + last_count = len(zones) + r = self._get('/dns/index/page/{0}'.format(page)) + soup = BeautifulSoup(r.text, 'html.parser') + boxes = soup.findAll('table', attrs={'class': 'box_title'}) + for box in boxes: + expandBoxJS = dict(box.attrs)['onclick'] + zone_id = self._extract_zone_id_from_js(expandBoxJS) + zone_name = box.find('td', attrs={'class': 'title'}).renderContents().decode('UTF-8') + zones[zone_name] = zone_id + if zone_name == zone: + id = zone_id + break + page += 1 + if id is None: + logger.error('Hetzner => ID for zone {0} does not exists'.format(zone)) + self._close_session() + raise AssertionError + logger.info('Hetzner => Get ID {1} for zone {0}'.format(zone, id)) + return id + + def _get_zone(self, zone_name, zone_id): + r = self._get('/dns/update/id/{0}'.format(zone_id)) + soup = BeautifulSoup(r.text, 'html.parser') + csrf_token = soup.find('input', attrs={'id': 'csrf_token'})['value'] + zone_file = soup.find('textarea', attrs={'id': 'zonefile'}).renderContents().decode('UTF-8') + zone = {'data': dns.zone.from_text(zone_file, origin=zone_name, relativize=False), 'token': csrf_token} + logger.info('Hetzner => Get data for zone ID {0}'.format(zone_id)) + return zone + + def _get_language(self): + r = self._get('/preferences/culture') + soup = BeautifulSoup(r.text, 'html.parser') + language = (soup.find('select', attrs={'id': 'culture'})).find('option', attrs={'selected': 'selected'})['value'] + logger.info('Hetzner => Get GUI language {0} for account {1}'.format(language, self.username)) + return language + + def _post_zone(self): + language = self._get_language() + post_response = {'de_DE': 'Vielen Dank', 'en_GB': 'Thank you for'} + r = self._post('/dns/update', data={'id': self.domain_id, 'zonefile': self.zone['data'].to_text(relativize=True), '_csrf_token': self.zone['token']}) + # ugly: the Hetzner Robot status code is always 200 (delivering the update form as an 'error message') + if post_response[language] in r.text: + logger.info('Hetzner => Update data for zone ID {0} - wait 30s...\n\n{1}'.format(self.domain_id, self.zone['data'].to_text(relativize=True))) + if self._get_provider_option('live_tests') != 'false': + time.sleep(30) + return True + logger.error('Hetzner => Unable to update data for zone ID {0}\n\n{1}'.format(self.domain_id, self.zone['data'].to_text(relativize=True))) + return False \ No newline at end of file diff --git a/optional-requirements.txt b/optional-requirements.txt index b8514596a..578032e08 100644 --- a/optional-requirements.txt +++ b/optional-requirements.txt @@ -22,5 +22,6 @@ -e .[transip] -e .[plesk] -e .[henet] +-e .[hetzner] -e .[easyname] -e .[localzone] diff --git a/setup.py b/setup.py index b4b3865cf..7be230ea9 100644 --- a/setup.py +++ b/setup.py @@ -100,6 +100,7 @@ 'transip': ['transip>=0.3.0'], 'plesk': ['xmltodict'], 'henet': ['beautifulsoup4'], + 'hetzner': ['dnspython>=1.15.0','beautifulsoup4'], 'easyname': ['beautifulsoup4'], 'localzone': ['localzone'], }, diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_authenticate.yaml b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_authenticate.yaml new file mode 100644 index 000000000..f31882da1 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_authenticate.yaml @@ -0,0 +1,489 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:45:01 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:45:01 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:45:02 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:45:02 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:45:02 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=05e16df04c4ca2c3f4f46e80582e33e6'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=05e16df04c4ca2c3f4f46e80582e33e6 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Tue, 04 Dec 2018 16:45:03 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=01bcdbbb13b751a853d0d772819095d500aab3c8&state=05e16df04c4ca2c3f4f46e80582e33e6'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=01bcdbbb13b751a853d0d772819095d500aab3c8&state=05e16df04c4ca2c3f4f46e80582e33e6 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:45:03 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ + \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ + \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ +
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ + \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ + \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ + \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ + \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ + \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ + \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ + \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ + \n
\n
\n
\n
\n
\n\ +
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ + "} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:45:03 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: "
\n
\n
\n
\n
\n\ +
\n\n
\n\n\n\n8\n\ + \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

\n\n\n\n\n\n
8
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:45:03 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n\ + \
\n
\n
\n\n\ +
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:45:04 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_authenticate_with_unmanaged_domain_should_fail.yaml b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_authenticate_with_unmanaged_domain_should_fail.yaml new file mode 100644 index 000000000..b02e7047a --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_authenticate_with_unmanaged_domain_should_fail.yaml @@ -0,0 +1,643 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:45:04 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:45:05 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:45:05 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:45:05 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:45:06 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=32a80acc637f75d7b4aa6c3ec3f48386'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=32a80acc637f75d7b4aa6c3ec3f48386 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Tue, 04 Dec 2018 16:45:06 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=5b123d62b5d66f92e0f7b3884dceb63305c455e8&state=32a80acc637f75d7b4aa6c3ec3f48386'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=5b123d62b5d66f92e0f7b3884dceb63305c455e8&state=32a80acc637f75d7b4aa6c3ec3f48386 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:45:06 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ + \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ + \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ +
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ + \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ + \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ + \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ + \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ + \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ + \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ + \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ + \n
\n
\n
\n
\n
\n\ +
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ + "} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:45:07 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: "
\n
\n
\n
\n
\n\ +
\n\n
\n\n\n\n8\n\ + \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

\n\n\n\n\n\n
8
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:45:07 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/2 + response: + body: {string: "
\n
\n
\n
\n
\n\ +
\n\n
\n\n\n\n8\n\ + \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

\n\n\n\n\n\n
8
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:45:07 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_for_A_with_valid_name_and_content.yaml b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_for_A_with_valid_name_and_content.yaml new file mode 100644 index 000000000..692b84720 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_for_A_with_valid_name_and_content.yaml @@ -0,0 +1,489 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:45:09 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:45:09 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:45:09 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:45:09 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:45:10 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=7cd4637d3c08cec7ec06e2081c0b8da0'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=7cd4637d3c08cec7ec06e2081c0b8da0 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Tue, 04 Dec 2018 16:45:10 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=cf9ee02349ac2500fae19b82a299907d9c6af5bd&state=7cd4637d3c08cec7ec06e2081c0b8da0'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=cf9ee02349ac2500fae19b82a299907d9c6af5bd&state=7cd4637d3c08cec7ec06e2081c0b8da0 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:45:10 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ + \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ + \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ +
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ + \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ + \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ + \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ + \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ + \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ + \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ + \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ + \n
\n
\n
\n
\n
\n\ +
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ + "} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:45:11 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: "
\n
\n
\n
\n
\n\ +
\n\n
\n\n\n\n8\n\ + \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

\n\n\n\n\n\n
8
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:45:11 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n\ + \
\n
\n
\n\n\ +
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:45:11 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_for_CNAME_with_valid_name_and_content.yaml b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_for_CNAME_with_valid_name_and_content.yaml new file mode 100644 index 000000000..44d2cdf59 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_for_CNAME_with_valid_name_and_content.yaml @@ -0,0 +1,553 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:45:12 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:45:13 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:45:13 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:45:13 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:45:14 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=570574ac76c9ade411c6cd66ad094688'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=570574ac76c9ade411c6cd66ad094688 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Tue, 04 Dec 2018 16:45:14 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=25fc09de8e4693a05e8a754b2b6f4324bc7cdd36&state=570574ac76c9ade411c6cd66ad094688'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=25fc09de8e4693a05e8a754b2b6f4324bc7cdd36&state=570574ac76c9ade411c6cd66ad094688 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:45:14 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ + \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ + \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ +
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ + \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ + \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ + \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ + \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ + \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ + \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ + \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ + \n
\n
\n
\n
\n
\n\ +
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ + "} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:45:15 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: "
\n
\n
\n
\n
\n\ +
\n\n
\n\n\n\n8\n\ + \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

\n\n\n\n\n\n
8
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:45:15 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n\ + \
\n
\n
\n\n\ +
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:45:15 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/preferences/culture + response: + body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:45:15 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120639+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0Adocs+3600+IN+CNAME+docs.example.com%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A&_csrf_token=f0b8b3a02d3134ed4a77c87d87953dea + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['388'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: "

Vielen Dank\ + \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ + \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ + \ einsehen.

"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:45:16 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_fqdn_name_and_content.yaml b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_fqdn_name_and_content.yaml new file mode 100644 index 000000000..cd9d2d11a --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_fqdn_name_and_content.yaml @@ -0,0 +1,554 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:45:47 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:45:47 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:45:48 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:45:48 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:45:48 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=b10bb74cb778e1e4ecea24e19b41bb70'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=b10bb74cb778e1e4ecea24e19b41bb70 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Tue, 04 Dec 2018 16:45:48 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=fc13851da8233ec607bce30a45d92713b041ca3f&state=b10bb74cb778e1e4ecea24e19b41bb70'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=fc13851da8233ec607bce30a45d92713b041ca3f&state=b10bb74cb778e1e4ecea24e19b41bb70 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:45:49 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ + \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ + \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ +
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ + \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ + \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ + \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ + \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ + \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ + \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ + \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ + \n
\n
\n
\n
\n
\n\ +
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ + "} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:45:49 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: "
\n
\n
\n
\n
\n\ +
\n\n
\n\n\n\n8\n\ + \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

\n\n\n\n\n\n
8
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:45:50 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\ + \n\n\ + \n
\n
\n* \n
\n
\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:45:50 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/preferences/culture + response: + body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:45:50 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120640+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A&_csrf_token=47f477ba48c6ced896e86e04901f7d4c + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['444'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: "

Vielen Dank\ + \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ + \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ + \ einsehen.

"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:45:50 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_full_name_and_content.yaml b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_full_name_and_content.yaml new file mode 100644 index 000000000..0eaa173e5 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_full_name_and_content.yaml @@ -0,0 +1,555 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:46:22 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:46:22 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:46:22 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:46:22 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:46:23 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=0178783a8832ad2984d76552cc2d174c'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=0178783a8832ad2984d76552cc2d174c + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Tue, 04 Dec 2018 16:46:23 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=2ac48fa5f9afb96c0a0570bd0600ca61fee46380&state=0178783a8832ad2984d76552cc2d174c'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=2ac48fa5f9afb96c0a0570bd0600ca61fee46380&state=0178783a8832ad2984d76552cc2d174c + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:46:23 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ + \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ + \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ +
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ + \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ + \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ + \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ + \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ + \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ + \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ + \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ + \n
\n
\n
\n
\n
\n\ +
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ + "} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:46:24 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: "
\n
\n
\n
\n
\n\ +
\n\n
\n\n\n\n8\n\ + \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

\n\n\n\n\n\n
8
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:46:24 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:46:25 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/preferences/culture + response: + body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:46:25 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120641+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A&_csrf_token=318023f9fd0c4cc6f16fc1ea9bd18e3d + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['500'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: "

Vielen Dank\ + \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ + \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ + \ einsehen.

"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:46:25 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_valid_name_and_content.yaml b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_valid_name_and_content.yaml new file mode 100644 index 000000000..544a29529 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_valid_name_and_content.yaml @@ -0,0 +1,556 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:46:57 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:46:57 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:46:57 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:46:57 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:46:58 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=9940d2cd9e63ec6746af89ddfe5ce48d'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=9940d2cd9e63ec6746af89ddfe5ce48d + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Tue, 04 Dec 2018 16:46:58 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=b108b1ad15ddab85056882beae054e331c3e6729&state=9940d2cd9e63ec6746af89ddfe5ce48d'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=b108b1ad15ddab85056882beae054e331c3e6729&state=9940d2cd9e63ec6746af89ddfe5ce48d + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:46:58 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ + \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ + \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ +
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ + \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ + \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ + \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ + \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ + \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ + \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ + \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ + \n
\n
\n
\n
\n
\n\ +
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ + "} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:46:59 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: "
\n
\n
\n
\n
\n\ +
\n\n
\n\n\n\n8\n\ + \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

\n\n\n\n\n\n
8
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:46:59 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n \n\n
\n
\n* \n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:46:59 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/preferences/culture + response: + body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:47:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120642+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=4e2dc0cda2a14fbf51533432a40069ad + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['556'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: "

Vielen Dank\ + \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ + \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ + \ einsehen.

"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:47:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_multiple_times_should_create_record_set.yaml b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_multiple_times_should_create_record_set.yaml new file mode 100644 index 000000000..63edf0411 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_multiple_times_should_create_record_set.yaml @@ -0,0 +1,620 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:47:31 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:47:32 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:47:32 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:47:32 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:47:33 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=a3e25e177f723de992887ae3cf718d80'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=a3e25e177f723de992887ae3cf718d80 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Tue, 04 Dec 2018 16:47:33 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=5ffbdeddf41f5b196d8243590e27933bf20e24aa&state=a3e25e177f723de992887ae3cf718d80'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=5ffbdeddf41f5b196d8243590e27933bf20e24aa&state=a3e25e177f723de992887ae3cf718d80 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:47:33 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ + \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ + \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ +
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ + \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ + \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ + \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ + \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ + \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ + \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ + \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ + \n
\n
\n
\n
\n
\n\ +
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ + "} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:47:33 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: "
\n
\n
\n
\n
\n\ +
\n\n
\n\n\n\n8\n\ + \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

\n\n\n\n\n\n
8
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:47:34 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n
\n\n\ +
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:47:34 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/preferences/culture + response: + body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:47:35 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120643+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=858316fcddc68afc34d21a33ec5b2457 + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['624'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: "

Vielen Dank\ + \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ + \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ + \ einsehen.

"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:47:35 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/preferences/culture + response: + body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:48:06 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120643+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=858316fcddc68afc34d21a33ec5b2457 + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['692'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: "

Vielen Dank\ + \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ + \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ + \ einsehen.

"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:48:07 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_with_duplicate_records_should_be_noop.yaml b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_with_duplicate_records_should_be_noop.yaml new file mode 100644 index 000000000..e71de9ecc --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_with_duplicate_records_should_be_noop.yaml @@ -0,0 +1,558 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:48:38 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:48:38 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:48:38 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:48:38 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:48:39 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=ff35deb416da31b587152177fc2061dc'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=ff35deb416da31b587152177fc2061dc + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Tue, 04 Dec 2018 16:48:39 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=e2e2f14da65885769f841591cc0cc4f20533e712&state=ff35deb416da31b587152177fc2061dc'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=e2e2f14da65885769f841591cc0cc4f20533e712&state=ff35deb416da31b587152177fc2061dc + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:48:39 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ + \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ + \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ +
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ + \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ + \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ + \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ + \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ + \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ + \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ + \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ + \n
\n
\n
\n
\n
\n\ +
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ + "} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:48:40 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: "
\n
\n
\n
\n
\n\ +
\n\n
\n\n\n\n8\n\ + \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

\n\n\n\n\n\n
8
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:48:40 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\ + \n\n\n\ + \n
\n
\n* \n
\n
\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:48:41 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/preferences/culture + response: + body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:48:41 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120645+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=7ef3ef1318a5d749b739588be9b52266 + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['748'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: "

Vielen Dank\ + \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ + \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ + \ einsehen.

"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:48:41 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_by_filter_should_remove_record.yaml b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_by_filter_should_remove_record.yaml new file mode 100644 index 000000000..1f169b991 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_by_filter_should_remove_record.yaml @@ -0,0 +1,623 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:49:12 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:49:13 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:49:13 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:49:13 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:49:14 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=091658ffd7fb62be0632c980e499a71a'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=091658ffd7fb62be0632c980e499a71a + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Tue, 04 Dec 2018 16:49:14 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=2243b2cfe298569befb7735aba3757e4a2cc0b17&state=091658ffd7fb62be0632c980e499a71a'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=2243b2cfe298569befb7735aba3757e4a2cc0b17&state=091658ffd7fb62be0632c980e499a71a + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:49:14 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ + \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ + \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ +
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ + \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ + \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ + \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ + \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ + \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ + \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ + \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ + \n
\n
\n
\n
\n
\n\ +
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ + "} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:49:15 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: "
\n
\n
\n
\n
\n\ +
\n\n
\n\n\n\n8\n\ + \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

\n\n\n\n\n\n
8
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:49:15 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ + \n
\n
\n* \n
\n
\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:49:15 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/preferences/culture + response: + body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:49:16 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120646+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Adelete.testfilt+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=2e1b9acbdcfe03563161a60dece051d0 + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['799'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: "

Vielen Dank\ + \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ + \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ + \ einsehen.

"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:49:16 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/preferences/culture + response: + body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:49:47 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120646+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=2e1b9acbdcfe03563161a60dece051d0 + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['748'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: "

Vielen Dank\ + \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ + \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ + \ einsehen.

"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:49:48 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_fqdn_name_should_remove_record.yaml b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_fqdn_name_should_remove_record.yaml new file mode 100644 index 000000000..2c7f36e49 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_fqdn_name_should_remove_record.yaml @@ -0,0 +1,623 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:50:19 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:50:19 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:50:20 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:50:20 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:50:20 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=17ccbfafcaaac69bfa48f9fb3a28eb27'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=17ccbfafcaaac69bfa48f9fb3a28eb27 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Tue, 04 Dec 2018 16:50:21 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=d5fdd1ff40b11ad7bd813eeded4787507d07a4c4&state=17ccbfafcaaac69bfa48f9fb3a28eb27'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=d5fdd1ff40b11ad7bd813eeded4787507d07a4c4&state=17ccbfafcaaac69bfa48f9fb3a28eb27 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:50:21 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ + \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ + \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ +
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ + \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ + \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ + \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ + \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ + \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ + \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ + \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ + \n
\n
\n
\n
\n
\n\ +
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ + "} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:50:21 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: "
\n
\n
\n
\n
\n\ +
\n\n
\n\n\n\n8\n\ + \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

\n\n\n\n\n\n
8
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:50:21 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ + \n
\n
\n* \n
\n
\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:50:22 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/preferences/culture + response: + body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:50:22 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120648+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Adelete.testfqdn+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=d8de505f16226f9d492e3e95f345a639 + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['799'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: "

Vielen Dank\ + \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ + \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ + \ einsehen.

"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:50:22 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/preferences/culture + response: + body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:50:54 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120648+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=d8de505f16226f9d492e3e95f345a639 + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['748'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: "

Vielen Dank\ + \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ + \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ + \ einsehen.

"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:50:54 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_full_name_should_remove_record.yaml b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_full_name_should_remove_record.yaml new file mode 100644 index 000000000..03d3f396a --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_full_name_should_remove_record.yaml @@ -0,0 +1,623 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:51:26 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:51:26 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:51:26 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:51:26 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:51:27 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=22b46fd2566276cbf39f6145f728c72f'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=22b46fd2566276cbf39f6145f728c72f + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Tue, 04 Dec 2018 16:51:27 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=3c128d5d5e8b80baadaa2d83cb94cc10d4794de9&state=22b46fd2566276cbf39f6145f728c72f'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=3c128d5d5e8b80baadaa2d83cb94cc10d4794de9&state=22b46fd2566276cbf39f6145f728c72f + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:51:27 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ + \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ + \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ +
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ + \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ + \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ + \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ + \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ + \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ + \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ + \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ + \n
\n
\n
\n
\n
\n\ +
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ + "} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:51:28 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: "
\n
\n
\n
\n
\n\ +
\n\n
\n\n\n\n8\n\ + \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

\n\n\n\n\n\n
8
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:51:28 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ + \n
\n
\n* \n
\n
\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:51:29 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/preferences/culture + response: + body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:51:29 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120650+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Adelete.testfull+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=87112061a44512b9d6f3227caa7c9326 + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['799'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: "

Vielen Dank\ + \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ + \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ + \ einsehen.

"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:51:29 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/preferences/culture + response: + body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:52:01 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120650+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=87112061a44512b9d6f3227caa7c9326 + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['748'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: "

Vielen Dank\ + \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ + \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ + \ einsehen.

"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:52:01 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_by_identifier_should_remove_record.yaml b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_by_identifier_should_remove_record.yaml new file mode 100644 index 000000000..438f31452 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_by_identifier_should_remove_record.yaml @@ -0,0 +1,623 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:52:32 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:52:33 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:52:33 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:52:33 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:52:34 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=17a7c061973fbd50840db8228b5b4d3b'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=17a7c061973fbd50840db8228b5b4d3b + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Tue, 04 Dec 2018 16:52:34 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=bf3caa23d9b861dd9b0872d83471bff2bb5234da&state=17a7c061973fbd50840db8228b5b4d3b'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=bf3caa23d9b861dd9b0872d83471bff2bb5234da&state=17a7c061973fbd50840db8228b5b4d3b + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:52:34 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ + \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ + \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ +
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ + \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ + \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ + \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ + \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ + \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ + \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ + \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ + \n
\n
\n
\n
\n
\n\ +
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ + "} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:52:35 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: "
\n
\n
\n
\n
\n\ +
\n\n
\n\n\n\n8\n\ + \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

\n\n\n\n\n\n
8
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:52:35 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ + \n
\n
\n* \n
\n
\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:52:35 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/preferences/culture + response: + body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:52:36 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120652+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Adelete.testid+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=8f1500c28dc902944e06c1c712767c26 + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['797'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: "

Vielen Dank\ + \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ + \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ + \ einsehen.

"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:52:36 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/preferences/culture + response: + body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:53:08 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120652+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=8f1500c28dc902944e06c1c712767c26 + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['748'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: "

Vielen Dank\ + \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ + \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ + \ einsehen.

"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:53:08 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_by_content_should_leave_others_untouched.yaml b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_by_content_should_leave_others_untouched.yaml new file mode 100644 index 000000000..91c0635d3 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_by_content_should_leave_others_untouched.yaml @@ -0,0 +1,687 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:53:39 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:53:39 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:53:40 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:53:40 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:53:40 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=9bc058ba924954ae846f8ddc86a0873e'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=9bc058ba924954ae846f8ddc86a0873e + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Tue, 04 Dec 2018 16:53:40 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=a792a1f04c985153b61fc16e68b1ec52ec1f2fab&state=9bc058ba924954ae846f8ddc86a0873e'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=a792a1f04c985153b61fc16e68b1ec52ec1f2fab&state=9bc058ba924954ae846f8ddc86a0873e + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:53:41 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ + \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ + \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ +
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ + \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ + \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ + \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ + \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ + \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ + \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ + \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ + \n
\n
\n
\n
\n
\n\ +
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ + "} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:53:41 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: "
\n
\n
\n
\n
\n\ +
\n\n
\n\n\n\n8\n\ + \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

\n\n\n\n\n\n
8
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:53:42 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ + \n
\n
\n* \n
\n
\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:53:42 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/preferences/culture + response: + body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:53:42 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120654+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=3ba164c3da6f2a2f113f68730dee1f73 + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['818'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: "

Vielen Dank\ + \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ + \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ + \ einsehen.

"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:53:42 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/preferences/culture + response: + body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:54:14 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120654+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=3ba164c3da6f2a2f113f68730dee1f73 + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['888'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: "

Vielen Dank\ + \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ + \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ + \ einsehen.

"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:54:14 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/preferences/culture + response: + body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:54:46 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120654+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=3ba164c3da6f2a2f113f68730dee1f73 + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['818'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: "

Vielen Dank\ + \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ + \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ + \ einsehen.

"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:54:46 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_name_remove_all.yaml b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_name_remove_all.yaml new file mode 100644 index 000000000..9a7caa431 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_name_remove_all.yaml @@ -0,0 +1,688 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:55:18 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:55:18 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:55:18 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:55:18 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:55:19 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=3eded1d0e4e27d481d48fe4de4020992'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=3eded1d0e4e27d481d48fe4de4020992 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Tue, 04 Dec 2018 16:55:19 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=1797fb7ab6cf071b3663dd11a64679e64dd2d106&state=3eded1d0e4e27d481d48fe4de4020992'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=1797fb7ab6cf071b3663dd11a64679e64dd2d106&state=3eded1d0e4e27d481d48fe4de4020992 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:55:19 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ + \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ + \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ +
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ + \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ + \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ + \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ + \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ + \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ + \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ + \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ + \n
\n
\n
\n
\n
\n\ +
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ + "} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:55:20 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: "
\n
\n
\n
\n
\n\ +
\n\n
\n\n\n\n8\n\ + \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

\n\n\n\n\n\n
8
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:55:20 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ + \n
\n
\n* \n
\n
\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:55:21 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/preferences/culture + response: + body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:55:21 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120657+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.deleterecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=969767d9d6a938acd20127185c6b7167 + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['886'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: "

Vielen Dank\ + \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ + \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ + \ einsehen.

"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:55:21 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/preferences/culture + response: + body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:55:53 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120657+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.deleterecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=969767d9d6a938acd20127185c6b7167 + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['954'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: "

Vielen Dank\ + \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ + \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ + \ einsehen.

"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:55:53 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/preferences/culture + response: + body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:56:25 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120657+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=969767d9d6a938acd20127185c6b7167 + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['818'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: "

Vielen Dank\ + \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ + \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ + \ einsehen.

"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:56:25 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_after_setting_ttl.yaml b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_after_setting_ttl.yaml new file mode 100644 index 000000000..c795929d1 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_after_setting_ttl.yaml @@ -0,0 +1,560 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:56:57 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:56:57 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:56:57 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:56:57 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:56:58 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=18aaf1e7d94916d2f778bdc68dcb1b7f'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=18aaf1e7d94916d2f778bdc68dcb1b7f + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Tue, 04 Dec 2018 16:56:58 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=c905ad7d3b3177ce9ceacb031889c1e8b6de6848&state=18aaf1e7d94916d2f778bdc68dcb1b7f'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=c905ad7d3b3177ce9ceacb031889c1e8b6de6848&state=18aaf1e7d94916d2f778bdc68dcb1b7f + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:56:58 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ + \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ + \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ +
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ + \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ + \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ + \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ + \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ + \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ + \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ + \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ + \n
\n
\n
\n
\n
\n\ +
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ + "} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:56:59 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: "
\n
\n
\n
\n
\n\ +
\n\n
\n\n\n\n8\n\ + \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

\n\n\n\n\n\n
8
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:56:59 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ + \n
\n
\n* \n
\n
\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:56:59 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/preferences/culture + response: + body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:57:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120660+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=533acc87a73d603d87b538f069ed85ea + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['863'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: "

Vielen Dank\ + \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ + \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ + \ einsehen.

"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:57:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_should_handle_record_sets.yaml b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_should_handle_record_sets.yaml new file mode 100644 index 000000000..ea1e05d8a --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_should_handle_record_sets.yaml @@ -0,0 +1,625 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:57:31 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:57:31 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:57:32 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:57:32 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:57:32 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=26b401d5773fa3a66bd6d1960afff452'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=26b401d5773fa3a66bd6d1960afff452 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Tue, 04 Dec 2018 16:57:32 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=37da1dfb8ff48cdc6695a04615885030bb1be8ef&state=26b401d5773fa3a66bd6d1960afff452'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=37da1dfb8ff48cdc6695a04615885030bb1be8ef&state=26b401d5773fa3a66bd6d1960afff452 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:57:33 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ + \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ + \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ +
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ + \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ + \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ + \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ + \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ + \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ + \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ + \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ + \n
\n
\n
\n
\n
\n\ +
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ + "} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:57:33 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: "
\n
\n
\n
\n
\n\ +
\n\n
\n\n\n\n8\n\ + \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

\n\n\n\n\n\n
8
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:57:33 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:57:34 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/preferences/culture + response: + body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:57:34 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120661+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=bf2fe2726f34a18dc65ad482fbf12160 + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['929'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: "

Vielen Dank\ + \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ + \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ + \ einsehen.

"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:57:35 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/preferences/culture + response: + body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:58:06 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120661+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=bf2fe2726f34a18dc65ad482fbf12160 + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['995'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: "

Vielen Dank\ + \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ + \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ + \ einsehen.

"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:58:06 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_with_fqdn_name_filter_should_return_record.yaml b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_with_fqdn_name_filter_should_return_record.yaml new file mode 100644 index 000000000..11fab64ed --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_with_fqdn_name_filter_should_return_record.yaml @@ -0,0 +1,562 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:58:38 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:58:38 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:58:38 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:58:39 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:58:39 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=7889909d0ffa5309287edf97ebae2ce2'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=7889909d0ffa5309287edf97ebae2ce2 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Tue, 04 Dec 2018 16:58:39 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=51340464c2d386c75c110e0a3e357cc0de71dc9d&state=7889909d0ffa5309287edf97ebae2ce2'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=51340464c2d386c75c110e0a3e357cc0de71dc9d&state=7889909d0ffa5309287edf97ebae2ce2 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:58:39 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ + \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ + \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ +
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ + \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ + \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ + \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ + \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ + \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ + \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ + \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ + \n
\n
\n
\n
\n
\n\ +
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ + "} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:58:40 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: "
\n
\n
\n
\n
\n\ +
\n\n
\n\n\n\n8\n\ + \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

\n\n\n\n\n\n
8
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:58:40 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\ + \n\n\n\ + \n
\n
\n* \n
\n
\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:58:41 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/preferences/culture + response: + body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:58:41 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120663+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=d3a860bc57a237bdc551b1629202146a + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1046'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: "

Vielen Dank\ + \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ + \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ + \ einsehen.

"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:58:41 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_with_full_name_filter_should_return_record.yaml b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_with_full_name_filter_should_return_record.yaml new file mode 100644 index 000000000..02bfa739a --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_with_full_name_filter_should_return_record.yaml @@ -0,0 +1,563 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:59:13 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:59:13 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:59:13 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:59:13 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:59:14 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=31e0ed6e44b034833ab260f83ef751a7'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=31e0ed6e44b034833ab260f83ef751a7 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Tue, 04 Dec 2018 16:59:14 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=dea4f977337badc1bfdf6577ea1424a7b4a8365a&state=31e0ed6e44b034833ab260f83ef751a7'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=dea4f977337badc1bfdf6577ea1424a7b4a8365a&state=31e0ed6e44b034833ab260f83ef751a7 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:59:14 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ + \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ + \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ +
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ + \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ + \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ + \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ + \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ + \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ + \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ + \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ + \n
\n
\n
\n
\n
\n\ +
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ + "} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:59:15 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: "
\n
\n
\n
\n
\n\ +
\n\n
\n\n\n\n8\n\ + \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

\n\n\n\n\n\n
8
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:59:15 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ + \n
\n
\n* \n
\n
\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:59:16 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/preferences/culture + response: + body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:59:16 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120664+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=58be935d064431bc00dc24a34ce996de + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1097'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: "

Vielen Dank\ + \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ + \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ + \ einsehen.

"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:59:16 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_with_invalid_filter_should_be_empty_list.yaml b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_with_invalid_filter_should_be_empty_list.yaml new file mode 100644 index 000000000..20f950cf0 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_with_invalid_filter_should_be_empty_list.yaml @@ -0,0 +1,500 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:59:47 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:59:48 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:59:48 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:59:48 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:59:49 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=581fdce74cbaa53f7f66fa07ec931237'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=581fdce74cbaa53f7f66fa07ec931237 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Tue, 04 Dec 2018 16:59:49 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=efb523e31eb55b7b1175f23ecdc4296dcd9e9ee8&state=581fdce74cbaa53f7f66fa07ec931237'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=efb523e31eb55b7b1175f23ecdc4296dcd9e9ee8&state=581fdce74cbaa53f7f66fa07ec931237 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:59:49 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ + \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ + \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ +
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ + \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ + \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ + \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ + \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ + \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ + \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ + \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ + \n
\n
\n
\n
\n
\n\ +
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ + "} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:59:50 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: "
\n
\n
\n
\n
\n\ +
\n\n
\n\n\n\n8\n\ + \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

\n\n\n\n\n\n
8
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:59:50 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:59:51 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_with_name_filter_should_return_record.yaml b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_with_name_filter_should_return_record.yaml new file mode 100644 index 000000000..3496dbf3f --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_with_name_filter_should_return_record.yaml @@ -0,0 +1,564 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:59:52 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:59:52 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:59:52 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 16:59:53 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:59:53 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=5370a97601bfc402db07480024fe5ffe'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=5370a97601bfc402db07480024fe5ffe + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Tue, 04 Dec 2018 16:59:53 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=38eaae9da43536b8fb78ef46c9965bbd2ff0268b&state=5370a97601bfc402db07480024fe5ffe'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=38eaae9da43536b8fb78ef46c9965bbd2ff0268b&state=5370a97601bfc402db07480024fe5ffe + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:59:54 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ + \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ + \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ +
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ + \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ + \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ + \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ + \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ + \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ + \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ + \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ + \n
\n
\n
\n
\n
\n\ +
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ + "} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:59:54 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: "
\n
\n
\n
\n
\n\ +
\n\n
\n\n\n\n8\n\ + \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

\n\n\n\n\n\n
8
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:59:54 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:59:55 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/preferences/culture + response: + body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:59:55 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120665+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=865a14f21a872a1fd68afdcb3b3d70e6 + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1144'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: "

Vielen Dank\ + \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ + \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ + \ einsehen.

"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 16:59:56 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_with_no_arguments_should_list_all.yaml b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_with_no_arguments_should_list_all.yaml new file mode 100644 index 000000000..240f7b2a5 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_with_no_arguments_should_list_all.yaml @@ -0,0 +1,500 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 17:00:27 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 17:00:27 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 17:00:27 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 17:00:28 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:00:28 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=4839b51e389ae726c13974f96a39950e'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=4839b51e389ae726c13974f96a39950e + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Tue, 04 Dec 2018 17:00:28 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=ae40689cf730e81bb9045b5d3a9fc43593070780&state=4839b51e389ae726c13974f96a39950e'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=ae40689cf730e81bb9045b5d3a9fc43593070780&state=4839b51e389ae726c13974f96a39950e + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:00:28 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ + \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ + \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ +
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ + \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ + \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ + \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ + \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ + \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ + \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ + \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ + \n
\n
\n
\n
\n
\n\ +
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ + "} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:00:29 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: "
\n
\n
\n
\n
\n\ +
\n\n
\n\n\n\n8\n\ + \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

\n\n\n\n\n\n
8
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:00:29 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n
\n\n\ +
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:00:30 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_update_record_should_modify_record.yaml b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_update_record_should_modify_record.yaml new file mode 100644 index 000000000..e2042a974 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_update_record_should_modify_record.yaml @@ -0,0 +1,628 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 17:00:31 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 17:00:31 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 17:00:31 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 17:00:31 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:00:32 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=580e38cac44253bf2b484ddb6a2d6caf'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=580e38cac44253bf2b484ddb6a2d6caf + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Tue, 04 Dec 2018 17:00:32 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=9f0af4d5b185c0c02d122c317e065fc6a117cf8f&state=580e38cac44253bf2b484ddb6a2d6caf'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=9f0af4d5b185c0c02d122c317e065fc6a117cf8f&state=580e38cac44253bf2b484ddb6a2d6caf + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:00:32 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ + \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ + \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ +
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ + \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ + \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ + \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ + \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ + \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ + \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ + \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ + \n
\n
\n
\n
\n
\n\ +
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ + "} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:00:33 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: "
\n
\n
\n
\n
\n\ +
\n\n
\n\n\n\n8\n\ + \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

\n\n\n\n\n\n
8
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:00:33 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n
\n\n\ +
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:00:34 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/preferences/culture + response: + body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:00:34 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120666+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Aorig.test+3600+IN+TXT+%22challengetoken%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=a684a980dcaa3e59a995e9f91452b080 + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1189'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: "

Vielen Dank\ + \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ + \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ + \ einsehen.

"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:00:34 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/preferences/culture + response: + body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:01:06 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120666+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=a684a980dcaa3e59a995e9f91452b080 + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1192'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: "

Vielen Dank\ + \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ + \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ + \ einsehen.

"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:01:06 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_update_record_should_modify_record_name_specified.yaml b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_update_record_should_modify_record_name_specified.yaml new file mode 100644 index 000000000..2429c9b11 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_update_record_should_modify_record_name_specified.yaml @@ -0,0 +1,629 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 17:01:37 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 17:01:38 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 17:01:38 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 17:01:38 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:01:39 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=31f36140e7ad605e12c06111e61f08d5'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=31f36140e7ad605e12c06111e61f08d5 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Tue, 04 Dec 2018 17:01:39 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=cd05327ff05156b426f586528f5f69c5ebc11a25&state=31f36140e7ad605e12c06111e61f08d5'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=cd05327ff05156b426f586528f5f69c5ebc11a25&state=31f36140e7ad605e12c06111e61f08d5 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:01:39 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ + \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ + \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ +
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ + \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ + \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ + \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ + \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ + \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ + \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ + \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ + \n
\n
\n
\n
\n
\n\ +
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ + "} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:01:39 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: "
\n
\n
\n
\n
\n\ +
\n\n
\n\n\n\n8\n\ + \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

\n\n\n\n\n\n
8
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:01:40 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\ + \n\n\n\ + \n
\n
\n* \n
\n
\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:01:40 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/preferences/culture + response: + body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:01:41 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120668+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Aorig.nameonly.test+3600+IN+TXT+%22challengetoken%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=c4ebc5eb75d61d16d21ea3e9671fea26 + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1246'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: "

Vielen Dank\ + \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ + \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ + \ einsehen.

"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:01:41 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/preferences/culture + response: + body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:02:13 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120668+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Aorig.nameonly.test+3600+IN+TXT+%22updated%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=c4ebc5eb75d61d16d21ea3e9671fea26 + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1239'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: "

Vielen Dank\ + \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ + \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ + \ einsehen.

"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:02:13 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_update_record_with_fqdn_name_should_modify_record.yaml b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_update_record_with_fqdn_name_should_modify_record.yaml new file mode 100644 index 000000000..6231f156f --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_update_record_with_fqdn_name_should_modify_record.yaml @@ -0,0 +1,630 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 17:02:44 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 17:02:44 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 17:02:45 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 17:02:45 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:02:46 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=e66649c734122cfa819a7e7e9c5ea800'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=e66649c734122cfa819a7e7e9c5ea800 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Tue, 04 Dec 2018 17:02:46 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=754a93e7b6365b9fe798e1212facea13e3f320c0&state=e66649c734122cfa819a7e7e9c5ea800'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=754a93e7b6365b9fe798e1212facea13e3f320c0&state=e66649c734122cfa819a7e7e9c5ea800 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:02:46 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ + \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ + \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ +
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ + \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ + \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ + \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ + \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ + \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ + \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ + \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ + \n
\n
\n
\n
\n
\n\ +
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ + "} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:02:46 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: "
\n
\n
\n
\n
\n\ +
\n\n
\n\n\n\n8\n\ + \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

\n\n\n\n\n\n
8
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:02:47 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ + \n
\n
\n* \n
\n
\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:02:47 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/preferences/culture + response: + body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:02:47 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120670+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Aorig.nameonly.test+3600+IN+TXT+%22updated%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.test+3600+IN+TXT+%22challengetoken%22%0Aorig.testfqdn+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=0762d56d5f8b013c22844098d476f599 + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1288'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: "

Vielen Dank\ + \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ + \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ + \ einsehen.

"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:02:48 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/preferences/culture + response: + body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:03:19 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120670+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Aorig.nameonly.test+3600+IN+TXT+%22updated%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.testfqdn+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=0762d56d5f8b013c22844098d476f599 + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1291'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: "

Vielen Dank\ + \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ + \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ + \ einsehen.

"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:03:20 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_update_record_with_full_name_should_modify_record.yaml b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_update_record_with_full_name_should_modify_record.yaml new file mode 100644 index 000000000..08a9e07b0 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_update_record_with_full_name_should_modify_record.yaml @@ -0,0 +1,631 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 17:03:51 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 17:03:51 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 17:03:52 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Tue, 04 Dec 2018 17:03:52 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:03:52 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=af583fb7e898f13069ee5c1c5b64199f'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=af583fb7e898f13069ee5c1c5b64199f + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Tue, 04 Dec 2018 17:03:53 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=0b160f6b4093daf6a31fdcf841d0abd626a281c7&state=af583fb7e898f13069ee5c1c5b64199f'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=0b160f6b4093daf6a31fdcf841d0abd626a281c7&state=af583fb7e898f13069ee5c1c5b64199f + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:03:53 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/ + response: + body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ + \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ + \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ +
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ + \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ + \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ + \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ + \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ + \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ + \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ + \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ + \n
\n
\n
\n
\n
\n\ +
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ + "} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:03:53 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: "
\n
\n
\n
\n
\n\ +
\n\n
\n\n\n\n8\n\ + \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

\n\n\n\n\n\n
8
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:03:54 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:03:54 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/preferences/culture + response: + body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:03:55 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120672+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Aorig.nameonly.test+3600+IN+TXT+%22updated%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.testfqdn+3600+IN+TXT+%22challengetoken%22%0Aorig.testfull+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=ceb7cc89049e2eb593d67467f91ff41b + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1340'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: "

Vielen Dank\ + \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ + \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ + \ einsehen.

"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:03:55 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/preferences/culture + response: + body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:04:26 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120672+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Aorig.nameonly.test+3600+IN+TXT+%22updated%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.testfqdn+3600+IN+TXT+%22challengetoken%22%0Aupdated.testfull+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=ceb7cc89049e2eb593d67467f91ff41b + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1343'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: "

Vielen Dank\ + \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ + \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ + \ einsehen.

"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Tue, 04 Dec 2018 17:04:27 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/providers/test_hetzner.py b/tests/providers/test_hetzner.py new file mode 100644 index 000000000..a2b62152d --- /dev/null +++ b/tests/providers/test_hetzner.py @@ -0,0 +1,47 @@ +# Test for one implementation of the interface +from lexicon.providers.hetzner import Provider +from integration_tests import IntegrationTests +from unittest import TestCase +import pytest + +import os +from bs4 import BeautifulSoup + +# Hook into testing framework by inheriting unittest.TestCase and reuse +# the tests which *each and every* implementation of the interface must +# pass, by inheritance from integration_tests.IntegrationTests +class HetznerProviderTests(TestCase, IntegrationTests): + + Provider = Provider + provider_name = 'hetzner' + domain = 'rimek.info' + + def _filter_post_data_parameters(self): + return ['_username','_password'] + + def _filter_headers(self): + return ['Cookie'] + + def _filter_response(self, response): + for cookie in ['set-cookie','Set-Cookie']: + if cookie in response['headers']: + del response['headers'][cookie] + if os.environ.get('LEXICON_LIVE_TESTS', 'false') == 'true': + filter_body = BeautifulSoup(response['body']['string'], 'html.parser').find(id='center_col') + if filter_body is None: + filter_body = BeautifulSoup(response['body']['string'], 'html.parser').find(id='msgbox') + response['body']['string'] = str(filter_body) + return response + + def _test_parameters_overrides(self): + env_username = os.environ.get('LEXICON_HETZNER_AUTH_USERNAME') + env_password = os.environ.get('LEXICON_HETZNER_AUTH_PASSWORD') + env_live_tests = os.environ.get('LEXICON_LIVE_TESTS', 'false') + options = { + 'auth_username': env_username, + 'auth_password': env_password, + 'concatenate': 'no', + 'propagated': 'no', + 'live_tests': env_live_tests + } + return options \ No newline at end of file From add8c93ecb63fe2ec1e93bfae14454414a5623b8 Mon Sep 17 00:00:00 2001 From: Brian Rimek Date: Tue, 4 Dec 2018 19:31:15 +0100 Subject: [PATCH 02/21] enhance code quality --- lexicon/providers/hetzner.py | 190 ++++++++++++++++++----------------- 1 file changed, 97 insertions(+), 93 deletions(-) diff --git a/lexicon/providers/hetzner.py b/lexicon/providers/hetzner.py index cddc794f5..1fbe126b2 100644 --- a/lexicon/providers/hetzner.py +++ b/lexicon/providers/hetzner.py @@ -2,12 +2,10 @@ from __future__ import unicode_literals import hashlib -import json import logging -import os import re -import requests import time +import requests # Due to optional requirement try: @@ -20,7 +18,7 @@ from lexicon.providers.base import Provider as BaseProvider -logger = logging.getLogger(__name__) +LOGGER = logging.getLogger(__name__) # Lexicon Hetzner Robot Provider # @@ -32,7 +30,8 @@ # type, name(FQDN) and content(if possible FQDN), which when taken together are unique. # Supported record identifier formats are: # * hash - generated|verified by 'list' command; e.g. '30fa112' -# * raw - concatenation of the record type, name(FQDN) and content(if possible FQDN) with delimiter '/'; +# * raw - concatenation of the record type, name(FQDN) and content(if possible FQDN) +# with delimiter '/'; # e.g. 'TXT/example.com./challengetoken' or 'SRV/example.com./0 0 443 msx.example.com.' NAMESERVER_DOMAINS = [] @@ -40,14 +39,15 @@ def ProviderParser(subparser): subparser.add_argument('--auth-username', help='specify Hetzner Robot username') subparser.add_argument('--auth-password', help='specify Hetzner Robot password') - subparser.add_argument('--concatenate', - help='use existent CNAME as record name for create|update|delete action: by default (yes); ' - 'Restriction: Only enabled if the record name or the raw FQDN record identifier \'type/name/content\' ' - 'is spezified, and additionally for update action the record name remains the same', - default='yes'.encode('UTF-8'), choices=['yes'.encode('UTF-8'), 'no'.encode('UTF-8')]) - subparser.add_argument('--propagated', - help='wait until record is propagated after succeeded create|update action: by default (yes)', - default='yes'.encode('UTF-8'), choices=['yes'.encode('UTF-8'), 'no'.encode('UTF-8')]) + subparser.add_argument('--concatenate', + help='use existent CNAME as record name for create|update|delete action: by default (yes); ' + 'Restriction: Only enabled if the record name or the raw FQDN record identifier ' + '\'type/name/content\' is spezified, and additionally for update action the record name ' + 'remains the same', + default='yes'.encode('UTF-8'), choices=['yes'.encode('UTF-8'), 'no'.encode('UTF-8')]) + subparser.add_argument('--propagated', + help='wait until record is propagated after succeeded create|update action: by default (yes)', + default='yes'.encode('UTF-8'), choices=['yes'.encode('UTF-8'), 'no'.encode('UTF-8')]) class Provider(BaseProvider): @@ -55,7 +55,7 @@ def __init__(self, config): super(Provider, self).__init__(config) self.api_endpoint = 'https://robot.your-server.de' self.auth_endpoint = 'https://accounts.hetzner.com' - + self.username = self._get_provider_option('auth_username') assert self.username is not None self.password = self._get_provider_option('auth_password') @@ -68,7 +68,7 @@ def __init__(self, config): # Authenticate against provider. def authenticate(self): - concatenate, name = self._concatenate() + concatenate, name = self._concatenate() zone, self.nameservers, self.cname = self._dns_cname(concatenate, self.domain, name) self.session = self._open_session(self.username, self.password) self.domain_id = self._get_zone_id(zone) @@ -77,14 +77,14 @@ def authenticate(self): # Create record. If record already exists with the same content, do nothing. def create_record(self, type, name, content): if type is None or name is None or content is None: - logger.error('Hetzner => Record has no type|name|content spezified') + LOGGER.error('Hetzner => Record has no type|name|content spezified') self._close_session() return False rrset = self.zone['data'].get_rdataset((self.cname if self.cname else self._fqdn_name(name)), rdtype=type, create=True) for rdata in rrset: if self._wellformed_content(type, content) == rdata.to_text(): - logger.info('Hetzner => Record with content \'{0}\' already exists'.format(content)) + LOGGER.info('Hetzner => Record with content \'{0}\' already exists'.format(content)) self._close_session() return True @@ -137,14 +137,14 @@ def update_record(self, identifier=None, type=None, name=None, content=None): name = name if name else delete_name content = content if content else delete_content else: - logger.error('Hetzner => Record with identifier \'{0}\' does not exist'.format(identifier)) + LOGGER.error('Hetzner => Record with identifier \'{0}\' does not exist'.format(identifier)) self._close_session() return False elif type and name and content: delete_type, delete_name, delete_content = type, name, None else: - logger.error('Hetzner => Record has no type|name|content spezified') + LOGGER.error('Hetzner => Record has no type|name|content spezified') self._close_session() return False @@ -159,7 +159,7 @@ def update_record(self, identifier=None, type=None, name=None, content=None): keep_rdatas.append(delete_rdata.to_text()) if len(keep_rdatas) > 0: if delete_content is None: - logger.error('Hetzner => Record lookup matching more than one record') + LOGGER.error('Hetzner => Record lookup matching more than one record') self._close_session() return False @@ -168,12 +168,12 @@ def update_record(self, identifier=None, type=None, name=None, content=None): self.zone['data'].replace_rdataset(record['name']+'.', keep_rdataset) else: self.zone['data'].delete_rdataset(record['name']+'.', record['type']) - # Create record + # Create record rrset = self.zone['data'].get_rdataset((self.cname if self.cname else self._fqdn_name(name)), rdtype=type, create=True) synced_create_change = False for rdata in rrset: if self._wellformed_content(type, content) == rdata.to_text(): - logger.info('Hetzner => Record with content \'{0}\' already exists'.format(content)) + LOGGER.info('Hetzner => Record with content \'{0}\' already exists'.format(content)) synced_create_change = True break if not synced_create_change: @@ -185,13 +185,13 @@ def update_record(self, identifier=None, type=None, name=None, content=None): self._propagated(type, name, content) self._close_session() return synced_change - - logger.error('Hetzner => Record lookup has no matches') + + LOGGER.error('Hetzner => Record lookup has no matches') self._close_session() return False # Delete an existing record. - # If record does not exist, do nothing. + # If record does not exist, do nothing. # If an identifier is specified, use it, otherwise do a lookup using type, name and content. # Support existent CNAME as record name if: # * record type & record name or raw FQDN record identifier 'type/name/content' are spezified @@ -199,7 +199,7 @@ def delete_record(self, identifier=None, type=None, name=None, content=None): if identifier: type, name, content = self._parse_identifier(identifier) if type is None or name is None or content is None: - logger.info('Hetzner => Record with identifier \'{0}\' does not exist'.format(identifier)) + LOGGER.info('Hetzner => Record with identifier \'{0}\' does not exist'.format(identifier)) self._close_session() return True @@ -220,24 +220,25 @@ def delete_record(self, identifier=None, type=None, name=None, content=None): self._close_session() return synced_change - logger.info('Hetzner => Record lookup has no matches') + LOGGER.info('Hetzner => Record lookup has no matches') self._close_session() return True # Helpers - def _request(self, action='GET', url='/', data=None, query_params=None): + def _request(self, action='GET', url='/', data=None, query_params=None): if data is None: data = {} if query_params is None: query_params = {} - for i in range(10): + for retry in range(10): try: - r = self.session.request(action, self.api_endpoint + url, params=query_params, data=data) - r.raise_for_status() # if the request fails for any reason, throw an error. - break - except requests.exceptions.ConnectionError as e: + response = self.session.request(action, self.api_endpoint + url, params=query_params, data=data) + response.raise_for_status() + return response + except requests.exceptions.ConnectionError: time.sleep(1) - return r + raise requests.exceptions.ConnectionError + return None def _build_identifier(self, type, name, content): sha256 = hashlib.sha256() @@ -254,7 +255,7 @@ def _parse_identifier(self, identifier): else: records = self.list_records() for record in records: - if(record['id'] == identifier): + if record['id'] == identifier: type, name, content = record['type'], record['name']+'.', record['content'] return type, name, content @@ -284,45 +285,47 @@ def _concatenate(self): if identifier: type, name, content = self._parse_identifier(identifier) name_update = name if name_update is None or name_update == name else name_update - if action == 'list' or (action == 'update' and name != name_update ) or type is None or type == 'CNAME' or name is None or not concatenate: - logger.info('Hetzner => Disabled CNAME lookup, see --concatenate option with \'lexicon hetzner --help\'') + if action == 'list' or (action == 'update' and name != name_update) or type is None or type == 'CNAME' or name is None or not concatenate: + LOGGER.info('Hetzner => Disabled CNAME lookup, see --concatenate option with \'lexicon hetzner --help\'') return False, name - logger.info('Hetzner => Enabled CNAME lookup, see --concatenate option with \'lexicon hetzner --help\'') + + LOGGER.info('Hetzner => Enabled CNAME lookup, see --concatenate option with \'lexicon hetzner --help\'') return True, name def _propagated(self, type, name, content): propagated = True if self._get_provider_option('propagated') == 'yes' else False if propagated: retry, max_retry = 0, 30 - while(retry < max_retry): + while retry < max_retry: for rdata in self._dns_lookup((self.cname if self.cname else self._fqdn_name(name)), type, self.nameservers): if self._wellformed_content(type, content) == rdata.to_text(): return True + retry += 1 - logger.info('Hetzner => Record is not propagated, {0} retries remaining - wait 30s...'.format(max_retry - retry)) + LOGGER.info('Hetzner => Record is not propagated, {0} retries remaining - wait 30s...'.format(max_retry - retry)) time.sleep(30) return False def _dns_lookup(self, qname, rdtype, nameservers=[]): if len(nameservers) == 0: - nameservers = ['8.8.8.8','8.8.4.4'] + nameservers = ['8.8.8.8', '8.8.4.4'] rrset = dns.rrset.from_text(qname, 0, 1, rdtype) try: resolver = dns.resolver.Resolver() resolver.nameservers = nameservers rrset = resolver.query(qname, rdtype) for rdata in rrset: - logger.debug('DNS Lookup => {0} {1} {2} {3}'.format(rrset.qname.to_text(), dns.rdataclass.to_text(rrset.rdclass), dns.rdatatype.to_text(rrset.rdtype), rdata.to_text())) + LOGGER.debug('DNS Lookup => {0} {1} {2} {3}'.format(rrset.qname.to_text(), dns.rdataclass.to_text(rrset.rdclass), dns.rdatatype.to_text(rrset.rdtype), rdata.to_text())) except dns.exception.DNSException as e: - logger.debug('DNS Lookup => {0}'.format(e)) + LOGGER.debug('DNS Lookup => {0}'.format(e)) return rrset def _dns(self, zone, name): qname = dns.name.from_text(name) nameservers = [] - rdtypes_ns = ['SOA','NS'] - rdtypes_ip = ['A','AAAA'] - while (len(qname.labels)>2 and len(nameservers) == 0): + rdtypes_ns = ['SOA', 'NS'] + rdtypes_ip = ['A', 'AAAA'] + while (len(qname.labels) > 2 and len(nameservers) == 0): for rdtype_ns in rdtypes_ns: for rdata_ns in self._dns_lookup(qname, rdtype_ns): for rdtype_ip in rdtypes_ip: @@ -333,9 +336,9 @@ def _dns(self, zone, name): qname = qname.parent() zone = qzone if len(nameservers) > 0 else zone nameservers = nameservers if len(nameservers) > 0 else [] - logger.debug('DNS Lookup => {0} IN NS {1}'.format(zone, ' '.join(nameservers))) + LOGGER.debug('DNS Lookup => {0} IN NS {1}'.format(zone, ' '.join(nameservers))) return zone, nameservers - + def _dns_cname(self, concatenate, zone, name=None): cname = None if not concatenate: @@ -343,9 +346,9 @@ def _dns_cname(self, concatenate, zone, name=None): zone, nameservers = self._dns(zone, name) else: concat, max_concats, name = 0, 10, self._fqdn_name(name) - while(concatenate == True): + while concatenate == True: if concat >= max_concats: - logger.error('Hetzner => Record {0} has more than {1} concatenated CNAME entries. Reduce the amount of CNAME concatenations!'.format(name, max_concats)) + LOGGER.error('Hetzner => Record {0} has more than {1} concatenated CNAME entries. Reduce the amount of CNAME concatenations!'.format(name, max_concats)) self._close_session() raise AssertionError qname = cname if cname else name @@ -356,85 +359,86 @@ def _dns_cname(self, concatenate, zone, name=None): cname = rrset[0].to_text() else: concatenate = False - logger.info('Hetzner => Record {0} has CNAME {1}'.format(name, cname)) + LOGGER.info('Hetzner => Record {0} has CNAME {1}'.format(name, cname)) return zone, nameservers, cname def _open_session(self, username, password): session = requests.session() - session.request('GET','{0}/login'.format(self.auth_endpoint)) - r = session.request('POST','{0}/login_check'.format(self.auth_endpoint), data={'_username': username, '_password': password}) - if '{0}/account/masterdata'.format(self.auth_endpoint) == r.url and r.status_code == 200: - r = session.request('GET','{0}/'.format(self.api_endpoint)) - if self.api_endpoint not in r.url or r.status_code != 200: - logger.error('Hetzner => Unable to open session to account {0}'.format(username)) + session.request('GET', '{0}/login'.format(self.auth_endpoint)) + response = session.request('POST', '{0}/login_check'.format(self.auth_endpoint), data={'_username': username, '_password': password}) + if '{0}/account/masterdata'.format(self.auth_endpoint) == response.url and response.status_code == 200: + response = session.request('GET', '{0}/'.format(self.api_endpoint)) + if self.api_endpoint not in response.url or response.status_code != 200: + LOGGER.error('Hetzner => Unable to open session to account {0}'.format(username)) raise AssertionError - logger.info('Hetzner => Open session to account {0}'.format(username)) + LOGGER.info('Hetzner => Open session to account {0}'.format(username)) return session def _close_session(self): if self._get_provider_option('live_tests') is None: - r = self._get('/login/logout/r/true') - if '{0}/logout'.format(self.auth_endpoint) not in r.url and r.status_code != 200: - logger.error('Hetzner => Unable to safely close session') + response = self._get('/login/logout/r/true') + if '{0}/logout'.format(self.auth_endpoint) not in response.url and response.status_code != 200: + LOGGER.error('Hetzner => Unable to safely close session') else: - logger.info('Hetzner => Close session') + LOGGER.info('Hetzner => Close session') self.session = None - def _extract_zone_id_from_js(self, s): - r = re.compile(r'\'(\d+)\'') - m = r.search(s) - if not m: return False - return int(m.group(1)) - + def _extract_zone_id_from_js(self, string): + regex = re.compile(r'\'(\d+)\'') + match = regex.search(string) + if not match: + return False + return int(match.group(1)) + def _get_zone_id(self, zone): - zone = dns.name.from_text(zone).to_unicode(True) - id, zones, last_count, page = None, {}, -1, 1 - while (last_count != len(zones) and id is None): + qzone_name = dns.name.from_text(zone).to_unicode(True) + qzone_id, zones, last_count, page = None, {}, -1, 1 + while (last_count != len(zones) and qzone_id is None): last_count = len(zones) - r = self._get('/dns/index/page/{0}'.format(page)) - soup = BeautifulSoup(r.text, 'html.parser') - boxes = soup.findAll('table', attrs={'class': 'box_title'}) + response = self._get('/dns/index/page/{0}'.format(page)) + boxes = BeautifulSoup(response.text, 'html.parser').findAll('table', attrs={'class': 'box_title'}) for box in boxes: - expandBoxJS = dict(box.attrs)['onclick'] - zone_id = self._extract_zone_id_from_js(expandBoxJS) + expand_box = dict(box.attrs)['onclick'] + zone_id = self._extract_zone_id_from_js(expand_box) zone_name = box.find('td', attrs={'class': 'title'}).renderContents().decode('UTF-8') zones[zone_name] = zone_id - if zone_name == zone: - id = zone_id + if zone_name == qzone_name: + qzone_id = zone_id break page += 1 - if id is None: - logger.error('Hetzner => ID for zone {0} does not exists'.format(zone)) + if qzone_id is None: + LOGGER.error('Hetzner => ID for zone {0} does not exists'.format(zone)) self._close_session() raise AssertionError - logger.info('Hetzner => Get ID {1} for zone {0}'.format(zone, id)) - return id + LOGGER.info('Hetzner => Get ID {1} for zone {0}'.format(zone, qzone_id)) + return qzone_id def _get_zone(self, zone_name, zone_id): - r = self._get('/dns/update/id/{0}'.format(zone_id)) - soup = BeautifulSoup(r.text, 'html.parser') + response = self._get('/dns/update/id/{0}'.format(zone_id)) + soup = BeautifulSoup(response.text, 'html.parser') csrf_token = soup.find('input', attrs={'id': 'csrf_token'})['value'] zone_file = soup.find('textarea', attrs={'id': 'zonefile'}).renderContents().decode('UTF-8') zone = {'data': dns.zone.from_text(zone_file, origin=zone_name, relativize=False), 'token': csrf_token} - logger.info('Hetzner => Get data for zone ID {0}'.format(zone_id)) + LOGGER.info('Hetzner => Get data for zone ID {0}'.format(zone_id)) return zone def _get_language(self): - r = self._get('/preferences/culture') - soup = BeautifulSoup(r.text, 'html.parser') + response = self._get('/preferences/culture') + soup = BeautifulSoup(response.text, 'html.parser') language = (soup.find('select', attrs={'id': 'culture'})).find('option', attrs={'selected': 'selected'})['value'] - logger.info('Hetzner => Get GUI language {0} for account {1}'.format(language, self.username)) + LOGGER.info('Hetzner => Get GUI language {0} for account {1}'.format(language, self.username)) return language def _post_zone(self): language = self._get_language() post_response = {'de_DE': 'Vielen Dank', 'en_GB': 'Thank you for'} - r = self._post('/dns/update', data={'id': self.domain_id, 'zonefile': self.zone['data'].to_text(relativize=True), '_csrf_token': self.zone['token']}) + response = self._post('/dns/update', data={'id': self.domain_id, 'zonefile': self.zone['data'].to_text(relativize=True), '_csrf_token': self.zone['token']}) # ugly: the Hetzner Robot status code is always 200 (delivering the update form as an 'error message') - if post_response[language] in r.text: - logger.info('Hetzner => Update data for zone ID {0} - wait 30s...\n\n{1}'.format(self.domain_id, self.zone['data'].to_text(relativize=True))) + if post_response[language] in response.text: + LOGGER.info('Hetzner => Update data for zone ID {0} - wait 30s...\n\n{1}'.format(self.domain_id, self.zone['data'].to_text(relativize=True))) if self._get_provider_option('live_tests') != 'false': time.sleep(30) return True - logger.error('Hetzner => Unable to update data for zone ID {0}\n\n{1}'.format(self.domain_id, self.zone['data'].to_text(relativize=True))) - return False \ No newline at end of file + + LOGGER.error('Hetzner => Unable to update data for zone ID {0}\n\n{1}'.format(self.domain_id, self.zone['data'].to_text(relativize=True))) + return False From ad7d45d738207205d3bcc6ef5ba4fc0c5c21b823 Mon Sep 17 00:00:00 2001 From: Brian Rimek Date: Tue, 4 Dec 2018 20:08:52 +0100 Subject: [PATCH 03/21] enhance code quality #2 --- lexicon/providers/hetzner.py | 58 +++++++++++++++++++----------------- 1 file changed, 31 insertions(+), 27 deletions(-) diff --git a/lexicon/providers/hetzner.py b/lexicon/providers/hetzner.py index 1fbe126b2..78ef092c0 100644 --- a/lexicon/providers/hetzner.py +++ b/lexicon/providers/hetzner.py @@ -30,7 +30,7 @@ # type, name(FQDN) and content(if possible FQDN), which when taken together are unique. # Supported record identifier formats are: # * hash - generated|verified by 'list' command; e.g. '30fa112' -# * raw - concatenation of the record type, name(FQDN) and content(if possible FQDN) +# * raw - concatenation of the record type, name(FQDN) and content(if possible FQDN) # with delimiter '/'; # e.g. 'TXT/example.com./challengetoken' or 'SRV/example.com./0 0 443 msx.example.com.' @@ -40,14 +40,18 @@ def ProviderParser(subparser): subparser.add_argument('--auth-username', help='specify Hetzner Robot username') subparser.add_argument('--auth-password', help='specify Hetzner Robot password') subparser.add_argument('--concatenate', - help='use existent CNAME as record name for create|update|delete action: by default (yes); ' - 'Restriction: Only enabled if the record name or the raw FQDN record identifier ' - '\'type/name/content\' is spezified, and additionally for update action the record name ' - 'remains the same', - default='yes'.encode('UTF-8'), choices=['yes'.encode('UTF-8'), 'no'.encode('UTF-8')]) + help='use existent CNAME as record name for create|update|delete ' + 'action: by default (yes); Restriction: Only enabled if the record ' + 'name or the raw FQDN record identifier \'type/name/content\' is ' + 'spezified, and additionally for update action the record name ' + 'remains the same', + default='yes'.encode('UTF-8'), + choices=['yes'.encode('UTF-8'), 'no'.encode('UTF-8')]) subparser.add_argument('--propagated', - help='wait until record is propagated after succeeded create|update action: by default (yes)', - default='yes'.encode('UTF-8'), choices=['yes'.encode('UTF-8'), 'no'.encode('UTF-8')]) + help='wait until record is propagated after succeeded create|update ' + 'action: by default (yes)', + default='yes'.encode('UTF-8'), + choices=['yes'.encode('UTF-8'), 'no'.encode('UTF-8')]) class Provider(BaseProvider): @@ -150,14 +154,14 @@ def update_record(self, identifier=None, type=None, name=None, content=None): # Delete record delete_records = self.list_records(delete_type, delete_name, delete_content) - if len(delete_records) > 0: + if delete_records: for record in delete_records: delete_rrset = self.zone['data'].get_rdataset(record['name']+'.', rdtype=record['type']) keep_rdatas = [] for delete_rdata in delete_rrset: if self._wellformed_content(record['type'], record['content']) != delete_rdata.to_text(): keep_rdatas.append(delete_rdata.to_text()) - if len(keep_rdatas) > 0: + if keep_rdatas: if delete_content is None: LOGGER.error('Hetzner => Record lookup matching more than one record') self._close_session() @@ -204,14 +208,14 @@ def delete_record(self, identifier=None, type=None, name=None, content=None): return True delete_records = self.list_records(type, name, content) - if len(delete_records) > 0: + if delete_records: for record in delete_records: rrset = self.zone['data'].get_rdataset(record['name']+'.', rdtype=record['type']) rdatas = [] for rdata in rrset: if self._wellformed_content(record['type'], record['content']) != rdata.to_text(): rdatas.append(rdata.to_text()) - if len(rdatas) > 0: + if rdatas: rdataset = dns.rdataset.from_text_list(rrset.rdclass, rrset.rdtype, record['ttl'], rdatas) self.zone['data'].replace_rdataset(record['name']+'.', rdataset) else: @@ -283,14 +287,14 @@ def _concatenate(self): concatenate = True if self._get_provider_option('concatenate') == 'yes' else False name_update = name if identifier: - type, name, content = self._parse_identifier(identifier) + type, name = self._parse_identifier(identifier) name_update = name if name_update is None or name_update == name else name_update - if action == 'list' or (action == 'update' and name != name_update) or type is None or type == 'CNAME' or name is None or not concatenate: - LOGGER.info('Hetzner => Disabled CNAME lookup, see --concatenate option with \'lexicon hetzner --help\'') - return False, name - - LOGGER.info('Hetzner => Enabled CNAME lookup, see --concatenate option with \'lexicon hetzner --help\'') - return True, name + if action != 'list' and type and type != 'CNAME' and name and concatenate: + if action != 'update' or name == name_update: + LOGGER.info('Hetzner => Enabled CNAME lookup, see --concatenate option with \'lexicon hetzner --help\'') + return True, name + LOGGER.info('Hetzner => Disabled CNAME lookup, see --concatenate option with \'lexicon hetzner --help\'') + return False, name def _propagated(self, type, name, content): propagated = True if self._get_provider_option('propagated') == 'yes' else False @@ -300,14 +304,13 @@ def _propagated(self, type, name, content): for rdata in self._dns_lookup((self.cname if self.cname else self._fqdn_name(name)), type, self.nameservers): if self._wellformed_content(type, content) == rdata.to_text(): return True - retry += 1 LOGGER.info('Hetzner => Record is not propagated, {0} retries remaining - wait 30s...'.format(max_retry - retry)) time.sleep(30) return False - def _dns_lookup(self, qname, rdtype, nameservers=[]): - if len(nameservers) == 0: + def _dns_lookup(self, qname, rdtype, nameservers=None): + if not nameservers: nameservers = ['8.8.8.8', '8.8.4.4'] rrset = dns.rrset.from_text(qname, 0, 1, rdtype) try: @@ -377,16 +380,18 @@ def _open_session(self, username, password): def _close_session(self): if self._get_provider_option('live_tests') is None: response = self._get('/login/logout/r/true') - if '{0}/logout'.format(self.auth_endpoint) not in response.url and response.status_code != 200: - LOGGER.error('Hetzner => Unable to safely close session') - else: + if '{0}/logout'.format(self.auth_endpoint) in response.url and response.status_code == 200: LOGGER.info('Hetzner => Close session') + else: + LOGGER.error('Hetzner => Unable to safely close session') self.session = None + return True + return False def _extract_zone_id_from_js(self, string): regex = re.compile(r'\'(\d+)\'') match = regex.search(string) - if not match: + if not match: return False return int(match.group(1)) @@ -439,6 +444,5 @@ def _post_zone(self): if self._get_provider_option('live_tests') != 'false': time.sleep(30) return True - LOGGER.error('Hetzner => Unable to update data for zone ID {0}\n\n{1}'.format(self.domain_id, self.zone['data'].to_text(relativize=True))) return False From 7c2294e050c0aa09dc0b88eed12ef29396c3fc60 Mon Sep 17 00:00:00 2001 From: Brian Rimek Date: Tue, 4 Dec 2018 20:33:04 +0100 Subject: [PATCH 04/21] enhance code quality 3 --- lexicon/providers/hetzner.py | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/lexicon/providers/hetzner.py b/lexicon/providers/hetzner.py index 78ef092c0..15cb444db 100644 --- a/lexicon/providers/hetzner.py +++ b/lexicon/providers/hetzner.py @@ -167,9 +167,8 @@ def update_record(self, identifier=None, type=None, name=None, content=None): self._close_session() return False - else: - keep_rdataset = dns.rdataset.from_text_list(delete_rrset.rdclass, delete_rrset.rdtype, record['ttl'], keep_rdatas) - self.zone['data'].replace_rdataset(record['name']+'.', keep_rdataset) + keep_rdataset = dns.rdataset.from_text_list(delete_rrset.rdclass, delete_rrset.rdtype, record['ttl'], keep_rdatas) + self.zone['data'].replace_rdataset(record['name']+'.', keep_rdataset) else: self.zone['data'].delete_rdataset(record['name']+'.', record['type']) # Create record @@ -241,7 +240,6 @@ def _request(self, action='GET', url='/', data=None, query_params=None): return response except requests.exceptions.ConnectionError: time.sleep(1) - raise requests.exceptions.ConnectionError return None def _build_identifier(self, type, name, content): @@ -287,7 +285,7 @@ def _concatenate(self): concatenate = True if self._get_provider_option('concatenate') == 'yes' else False name_update = name if identifier: - type, name = self._parse_identifier(identifier) + type, name, content = self._parse_identifier(identifier) name_update = name if name_update is None or name_update == name else name_update if action != 'list' and type and type != 'CNAME' and name and concatenate: if action != 'update' or name == name_update: @@ -319,8 +317,8 @@ def _dns_lookup(self, qname, rdtype, nameservers=None): rrset = resolver.query(qname, rdtype) for rdata in rrset: LOGGER.debug('DNS Lookup => {0} {1} {2} {3}'.format(rrset.qname.to_text(), dns.rdataclass.to_text(rrset.rdclass), dns.rdatatype.to_text(rrset.rdtype), rdata.to_text())) - except dns.exception.DNSException as e: - LOGGER.debug('DNS Lookup => {0}'.format(e)) + except dns.exception.DNSException as error: + LOGGER.debug('DNS Lookup => {0}'.format(error)) return rrset def _dns(self, zone, name): @@ -328,7 +326,7 @@ def _dns(self, zone, name): nameservers = [] rdtypes_ns = ['SOA', 'NS'] rdtypes_ip = ['A', 'AAAA'] - while (len(qname.labels) > 2 and len(nameservers) == 0): + while (len(qname.labels) > 2 and not nameservers): for rdtype_ns in rdtypes_ns: for rdata_ns in self._dns_lookup(qname, rdtype_ns): for rdtype_ip in rdtypes_ip: @@ -337,8 +335,8 @@ def _dns(self, zone, name): nameservers.append(rdata_ip.to_text()) qzone = qname.to_text() qname = qname.parent() - zone = qzone if len(nameservers) > 0 else zone - nameservers = nameservers if len(nameservers) > 0 else [] + zone = qzone if nameservers else zone + nameservers = nameservers if nameservers else [] LOGGER.debug('DNS Lookup => {0} IN NS {1}'.format(zone, ' '.join(nameservers))) return zone, nameservers @@ -349,7 +347,7 @@ def _dns_cname(self, concatenate, zone, name=None): zone, nameservers = self._dns(zone, name) else: concat, max_concats, name = 0, 10, self._fqdn_name(name) - while concatenate == True: + while concatenate: if concat >= max_concats: LOGGER.error('Hetzner => Record {0} has more than {1} concatenated CNAME entries. Reduce the amount of CNAME concatenations!'.format(name, max_concats)) self._close_session() @@ -357,7 +355,7 @@ def _dns_cname(self, concatenate, zone, name=None): qname = cname if cname else name zone, nameservers = self._dns(zone, qname) rrset = self._dns_lookup(qname, 'CNAME') - if len(rrset) > 0: + if rrset: concat += 1 cname = rrset[0].to_text() else: From ec27c7f5118fd1c538e6919ea2fd9206a8ae6c40 Mon Sep 17 00:00:00 2001 From: Brian Rimek Date: Wed, 5 Dec 2018 01:42:20 +0100 Subject: [PATCH 05/21] enhance code format --- lexicon/providers/hetzner.py | 148 +++++++++++++++++++++----------- tests/providers/test_hetzner.py | 14 ++- 2 files changed, 103 insertions(+), 59 deletions(-) diff --git a/lexicon/providers/hetzner.py b/lexicon/providers/hetzner.py index 15cb444db..c697f27d8 100644 --- a/lexicon/providers/hetzner.py +++ b/lexicon/providers/hetzner.py @@ -85,15 +85,21 @@ def create_record(self, type, name, content): self._close_session() return False - rrset = self.zone['data'].get_rdataset((self.cname if self.cname else self._fqdn_name(name)), rdtype=type, create=True) + rrset = self.zone['data'].get_rdataset((self.cname if self.cname + else self._fqdn_name(name)), + rdtype=type, create=True) for rdata in rrset: if self._wellformed_content(type, content) == rdata.to_text(): - LOGGER.info('Hetzner => Record with content \'{0}\' already exists'.format(content)) + LOGGER.info('Hetzner => Record with content \'%s\' already exists', content) self._close_session() return True - ttl = rrset.ttl if rrset.ttl > 0 and rrset.ttl < self._get_lexicon_option('ttl') else self._get_lexicon_option('ttl') - rdataset = dns.rdataset.from_text(rrset.rdclass, rrset.rdtype, ttl, self._wellformed_content(type, content)) + ttl = (rrset.ttl if rrset.ttl > 0 and rrset.ttl < self._get_lexicon_option('ttl') + else self._get_lexicon_option('ttl')) + rdataset = dns.rdataset.from_text(rrset.rdclass, + rrset.rdtype, + ttl, + self._wellformed_content(type, content)) rrset.update(rdataset) synced_change = self._post_zone() if synced_change: @@ -110,7 +116,8 @@ def list_records(self, type=None, name=None, content=None): for rname, rdataset in rrsets: rtype = dns.rdatatype.to_text(rdataset.rdtype) rname = rname.to_text() - if (not type or type == rtype) and (not name or (self.cname if self.cname else self._fqdn_name(name)) == rname): + if ((not type or type == rtype) + and (not name or (self.cname if self.cname else self._fqdn_name(name)) == rname)): for rdata in rdataset: rdata = rdata.to_text() if (not content or self._wellformed_content(rtype, content) == rdata): @@ -141,7 +148,7 @@ def update_record(self, identifier=None, type=None, name=None, content=None): name = name if name else delete_name content = content if content else delete_content else: - LOGGER.error('Hetzner => Record with identifier \'{0}\' does not exist'.format(identifier)) + LOGGER.error('Hetzner => Record with identifier \'%s\' does not exist', identifier) self._close_session() return False @@ -156,10 +163,12 @@ def update_record(self, identifier=None, type=None, name=None, content=None): delete_records = self.list_records(delete_type, delete_name, delete_content) if delete_records: for record in delete_records: - delete_rrset = self.zone['data'].get_rdataset(record['name']+'.', rdtype=record['type']) + delete_rrset = self.zone['data'].get_rdataset(record['name']+'.', + rdtype=record['type']) keep_rdatas = [] for delete_rdata in delete_rrset: - if self._wellformed_content(record['type'], record['content']) != delete_rdata.to_text(): + if self._wellformed_content(record['type'], + record['content']) != delete_rdata.to_text(): keep_rdatas.append(delete_rdata.to_text()) if keep_rdatas: if delete_content is None: @@ -167,21 +176,28 @@ def update_record(self, identifier=None, type=None, name=None, content=None): self._close_session() return False - keep_rdataset = dns.rdataset.from_text_list(delete_rrset.rdclass, delete_rrset.rdtype, record['ttl'], keep_rdatas) + keep_rdataset = dns.rdataset.from_text_list(delete_rrset.rdclass, + delete_rrset.rdtype, + record['ttl'], + keep_rdatas) self.zone['data'].replace_rdataset(record['name']+'.', keep_rdataset) else: self.zone['data'].delete_rdataset(record['name']+'.', record['type']) # Create record - rrset = self.zone['data'].get_rdataset((self.cname if self.cname else self._fqdn_name(name)), rdtype=type, create=True) + rrset = self.zone['data'].get_rdataset((self.cname if self.cname + else self._fqdn_name(name)), + rdtype=type, create=True) synced_create_change = False for rdata in rrset: if self._wellformed_content(type, content) == rdata.to_text(): - LOGGER.info('Hetzner => Record with content \'{0}\' already exists'.format(content)) + LOGGER.info('Hetzner => Record with content \'%s\' already exists', content) synced_create_change = True break if not synced_create_change: - ttl = rrset.ttl if rrset.ttl > 0 and rrset.ttl < self._get_lexicon_option('ttl') else self._get_lexicon_option('ttl') - renew_rdataset = dns.rdataset.from_text(rrset.rdclass, rrset.rdtype, ttl, self._wellformed_content(type, content)) + ttl = (rrset.ttl if rrset.ttl > 0 and rrset.ttl < self._get_lexicon_option('ttl') + else self._get_lexicon_option('ttl')) + renew_rdataset = dns.rdataset.from_text(rrset.rdclass, rrset.rdtype, ttl, + self._wellformed_content(type, content)) rrset.update(renew_rdataset) synced_change = self._post_zone() if synced_change: @@ -202,7 +218,7 @@ def delete_record(self, identifier=None, type=None, name=None, content=None): if identifier: type, name, content = self._parse_identifier(identifier) if type is None or name is None or content is None: - LOGGER.info('Hetzner => Record with identifier \'{0}\' does not exist'.format(identifier)) + LOGGER.info('Hetzner => Record with identifier \'%s\' does not exist', identifier) self._close_session() return True @@ -212,10 +228,12 @@ def delete_record(self, identifier=None, type=None, name=None, content=None): rrset = self.zone['data'].get_rdataset(record['name']+'.', rdtype=record['type']) rdatas = [] for rdata in rrset: - if self._wellformed_content(record['type'], record['content']) != rdata.to_text(): + if self._wellformed_content(record['type'], + record['content']) != rdata.to_text(): rdatas.append(rdata.to_text()) if rdatas: - rdataset = dns.rdataset.from_text_list(rrset.rdclass, rrset.rdtype, record['ttl'], rdatas) + rdataset = dns.rdataset.from_text_list(rrset.rdclass, rrset.rdtype, + record['ttl'], rdatas) self.zone['data'].replace_rdataset(record['name']+'.', rdataset) else: self.zone['data'].delete_rdataset(record['name']+'.', record['type']) @@ -235,12 +253,15 @@ def _request(self, action='GET', url='/', data=None, query_params=None): query_params = {} for retry in range(10): try: - response = self.session.request(action, self.api_endpoint + url, params=query_params, data=data) + response = self.session.request(action, self.api_endpoint + url, + params=query_params, data=data) response.raise_for_status() - return response + break except requests.exceptions.ConnectionError: + if retry == 9: + raise requests.exceptions.ConnectionError time.sleep(1) - return None + return response def _build_identifier(self, type, name, content): sha256 = hashlib.sha256() @@ -289,9 +310,11 @@ def _concatenate(self): name_update = name if name_update is None or name_update == name else name_update if action != 'list' and type and type != 'CNAME' and name and concatenate: if action != 'update' or name == name_update: - LOGGER.info('Hetzner => Enabled CNAME lookup, see --concatenate option with \'lexicon hetzner --help\'') + LOGGER.info('Hetzner => Enabled CNAME lookup, ' + 'see --concatenate option with \'lexicon hetzner --help\'') return True, name - LOGGER.info('Hetzner => Disabled CNAME lookup, see --concatenate option with \'lexicon hetzner --help\'') + LOGGER.info('Hetzner => Disabled CNAME lookup, ' + 'see --concatenate option with \'lexicon hetzner --help\'') return False, name def _propagated(self, type, name, content): @@ -299,11 +322,14 @@ def _propagated(self, type, name, content): if propagated: retry, max_retry = 0, 30 while retry < max_retry: - for rdata in self._dns_lookup((self.cname if self.cname else self._fqdn_name(name)), type, self.nameservers): + for rdata in self._dns_lookup((self.cname if self.cname + else self._fqdn_name(name)), + type, self.nameservers): if self._wellformed_content(type, content) == rdata.to_text(): return True retry += 1 - LOGGER.info('Hetzner => Record is not propagated, {0} retries remaining - wait 30s...'.format(max_retry - retry)) + LOGGER.info('Hetzner => Record is not propagated, %d retries remaining - ' + 'wait 30s...', (max_retry - retry)) time.sleep(30) return False @@ -316,9 +342,11 @@ def _dns_lookup(self, qname, rdtype, nameservers=None): resolver.nameservers = nameservers rrset = resolver.query(qname, rdtype) for rdata in rrset: - LOGGER.debug('DNS Lookup => {0} {1} {2} {3}'.format(rrset.qname.to_text(), dns.rdataclass.to_text(rrset.rdclass), dns.rdatatype.to_text(rrset.rdtype), rdata.to_text())) + LOGGER.debug('DNS Lookup => %s %s %s %s', + rrset.qname.to_text(), dns.rdataclass.to_text(rrset.rdclass), + dns.rdatatype.to_text(rrset.rdtype), rdata.to_text()) except dns.exception.DNSException as error: - LOGGER.debug('DNS Lookup => {0}'.format(error)) + LOGGER.debug('DNS Lookup => %s', error) return rrset def _dns(self, zone, name): @@ -330,14 +358,15 @@ def _dns(self, zone, name): for rdtype_ns in rdtypes_ns: for rdata_ns in self._dns_lookup(qname, rdtype_ns): for rdtype_ip in rdtypes_ip: - for rdata_ip in self._dns_lookup(rdata_ns.to_text().split(' ')[0], rdtype_ip): + for rdata_ip in self._dns_lookup(rdata_ns.to_text().split(' ')[0], + rdtype_ip): if rdata_ip.to_text() not in nameservers: nameservers.append(rdata_ip.to_text()) qzone = qname.to_text() qname = qname.parent() zone = qzone if nameservers else zone nameservers = nameservers if nameservers else [] - LOGGER.debug('DNS Lookup => {0} IN NS {1}'.format(zone, ' '.join(nameservers))) + LOGGER.debug('DNS Lookup => %s IN NS %s', zone, ' '.join(nameservers)) return zone, nameservers def _dns_cname(self, concatenate, zone, name=None): @@ -349,7 +378,9 @@ def _dns_cname(self, concatenate, zone, name=None): concat, max_concats, name = 0, 10, self._fqdn_name(name) while concatenate: if concat >= max_concats: - LOGGER.error('Hetzner => Record {0} has more than {1} concatenated CNAME entries. Reduce the amount of CNAME concatenations!'.format(name, max_concats)) + LOGGER.error('Hetzner => Record %s has more than %d concatenated CNAME ' + 'entries. Reduce the amount of CNAME concatenations!', + name, max_concats) self._close_session() raise AssertionError qname = cname if cname else name @@ -360,25 +391,28 @@ def _dns_cname(self, concatenate, zone, name=None): cname = rrset[0].to_text() else: concatenate = False - LOGGER.info('Hetzner => Record {0} has CNAME {1}'.format(name, cname)) + LOGGER.info('Hetzner => Record %s has CNAME %s', name, cname) return zone, nameservers, cname def _open_session(self, username, password): session = requests.session() - session.request('GET', '{0}/login'.format(self.auth_endpoint)) - response = session.request('POST', '{0}/login_check'.format(self.auth_endpoint), data={'_username': username, '_password': password}) - if '{0}/account/masterdata'.format(self.auth_endpoint) == response.url and response.status_code == 200: - response = session.request('GET', '{0}/'.format(self.api_endpoint)) + session.request('GET', '{}/login'.format(self.auth_endpoint)) + response = session.request('POST', '{}/login_check'.format(self.auth_endpoint), + data={'_username': username, '_password': password}) + if ('{}/account/masterdata'.format(self.auth_endpoint) == response.url + and response.status_code == 200): + response = session.request('GET', '{}/'.format(self.api_endpoint)) if self.api_endpoint not in response.url or response.status_code != 200: - LOGGER.error('Hetzner => Unable to open session to account {0}'.format(username)) + LOGGER.error('Hetzner => Unable to open session to account %s', username) raise AssertionError - LOGGER.info('Hetzner => Open session to account {0}'.format(username)) + LOGGER.info('Hetzner => Open session to account %s', username) return session def _close_session(self): if self._get_provider_option('live_tests') is None: response = self._get('/login/logout/r/true') - if '{0}/logout'.format(self.auth_endpoint) in response.url and response.status_code == 200: + if ('{}/logout'.format(self.auth_endpoint) in response.url + and response.status_code == 200): LOGGER.info('Hetzner => Close session') else: LOGGER.error('Hetzner => Unable to safely close session') @@ -398,49 +432,61 @@ def _get_zone_id(self, zone): qzone_id, zones, last_count, page = None, {}, -1, 1 while (last_count != len(zones) and qzone_id is None): last_count = len(zones) - response = self._get('/dns/index/page/{0}'.format(page)) - boxes = BeautifulSoup(response.text, 'html.parser').findAll('table', attrs={'class': 'box_title'}) + response = self._get('/dns/index/page/{}'.format(page)) + boxes = (BeautifulSoup(response.text, 'html.parser') + .findAll('table', attrs={'class': 'box_title'})) for box in boxes: expand_box = dict(box.attrs)['onclick'] zone_id = self._extract_zone_id_from_js(expand_box) - zone_name = box.find('td', attrs={'class': 'title'}).renderContents().decode('UTF-8') + zone_name = (box.find('td', attrs={'class': 'title'}) + .renderContents().decode('UTF-8')) zones[zone_name] = zone_id if zone_name == qzone_name: qzone_id = zone_id break page += 1 if qzone_id is None: - LOGGER.error('Hetzner => ID for zone {0} does not exists'.format(zone)) + LOGGER.error('Hetzner => ID for zone %s does not exists', qzone_name) self._close_session() raise AssertionError - LOGGER.info('Hetzner => Get ID {1} for zone {0}'.format(zone, qzone_id)) + LOGGER.info('Hetzner => Get ID %d for zone %s', qzone_id, qzone_name) return qzone_id def _get_zone(self, zone_name, zone_id): - response = self._get('/dns/update/id/{0}'.format(zone_id)) + response = self._get('/dns/update/id/{}'.format(zone_id)) soup = BeautifulSoup(response.text, 'html.parser') csrf_token = soup.find('input', attrs={'id': 'csrf_token'})['value'] - zone_file = soup.find('textarea', attrs={'id': 'zonefile'}).renderContents().decode('UTF-8') - zone = {'data': dns.zone.from_text(zone_file, origin=zone_name, relativize=False), 'token': csrf_token} - LOGGER.info('Hetzner => Get data for zone ID {0}'.format(zone_id)) + zone_file = (soup.find('textarea', attrs={'id': 'zonefile'}) + .renderContents().decode('UTF-8')) + zone = {'data': dns.zone.from_text(zone_file, origin=zone_name, relativize=False), + 'token': csrf_token} + LOGGER.info('Hetzner => Get data for zone ID %d', zone_id) return zone def _get_language(self): response = self._get('/preferences/culture') soup = BeautifulSoup(response.text, 'html.parser') - language = (soup.find('select', attrs={'id': 'culture'})).find('option', attrs={'selected': 'selected'})['value'] - LOGGER.info('Hetzner => Get GUI language {0} for account {1}'.format(language, self.username)) + language = ((soup.find('select', attrs={'id': 'culture'})) + .find('option', attrs={'selected': 'selected'})['value']) + LOGGER.info('Hetzner => Get GUI language %s for account %s', + language, self.username) return language def _post_zone(self): language = self._get_language() post_response = {'de_DE': 'Vielen Dank', 'en_GB': 'Thank you for'} - response = self._post('/dns/update', data={'id': self.domain_id, 'zonefile': self.zone['data'].to_text(relativize=True), '_csrf_token': self.zone['token']}) - # ugly: the Hetzner Robot status code is always 200 (delivering the update form as an 'error message') + response = self._post('/dns/update', data={'id': self.domain_id, + 'zonefile': (self.zone['data'] + .to_text(relativize=True)), + '_csrf_token': self.zone['token']}) + # Hetzner Robot status code is always 200 + # (delivering the update form as an 'error message') if post_response[language] in response.text: - LOGGER.info('Hetzner => Update data for zone ID {0} - wait 30s...\n\n{1}'.format(self.domain_id, self.zone['data'].to_text(relativize=True))) + LOGGER.info('Hetzner => Update data for zone ID %d - wait 30s...\n\n%s', + self.domain_id, self.zone['data'].to_text(relativize=True)) if self._get_provider_option('live_tests') != 'false': time.sleep(30) return True - LOGGER.error('Hetzner => Unable to update data for zone ID {0}\n\n{1}'.format(self.domain_id, self.zone['data'].to_text(relativize=True))) + LOGGER.error('Hetzner => Unable to update data for zone ID %d\n\n%s', + self.domain_id, self.zone['data'].to_text(relativize=True)) return False diff --git a/tests/providers/test_hetzner.py b/tests/providers/test_hetzner.py index a2b62152d..fc13f52b3 100644 --- a/tests/providers/test_hetzner.py +++ b/tests/providers/test_hetzner.py @@ -23,7 +23,7 @@ def _filter_headers(self): return ['Cookie'] def _filter_response(self, response): - for cookie in ['set-cookie','Set-Cookie']: + for cookie in ['set-cookie', 'Set-Cookie']: if cookie in response['headers']: del response['headers'][cookie] if os.environ.get('LEXICON_LIVE_TESTS', 'false') == 'true': @@ -37,11 +37,9 @@ def _test_parameters_overrides(self): env_username = os.environ.get('LEXICON_HETZNER_AUTH_USERNAME') env_password = os.environ.get('LEXICON_HETZNER_AUTH_PASSWORD') env_live_tests = os.environ.get('LEXICON_LIVE_TESTS', 'false') - options = { - 'auth_username': env_username, - 'auth_password': env_password, - 'concatenate': 'no', - 'propagated': 'no', - 'live_tests': env_live_tests - } + options = {'auth_username': env_username, + 'auth_password': env_password, + 'concatenate': 'no', + 'propagated': 'no', + 'live_tests': env_live_tests} return options \ No newline at end of file From dde825e7d153d8a13721f8a88c616582e227ea4f Mon Sep 17 00:00:00 2001 From: Brian Rimek Date: Wed, 5 Dec 2018 02:11:12 +0100 Subject: [PATCH 06/21] enhance code format (final) --- lexicon/providers/hetzner.py | 28 ++++++++++++++-------------- tests/providers/test_hetzner.py | 2 +- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/lexicon/providers/hetzner.py b/lexicon/providers/hetzner.py index c697f27d8..c52f1b05d 100644 --- a/lexicon/providers/hetzner.py +++ b/lexicon/providers/hetzner.py @@ -96,10 +96,8 @@ def create_record(self, type, name, content): ttl = (rrset.ttl if rrset.ttl > 0 and rrset.ttl < self._get_lexicon_option('ttl') else self._get_lexicon_option('ttl')) - rdataset = dns.rdataset.from_text(rrset.rdclass, - rrset.rdtype, - ttl, - self._wellformed_content(type, content)) + rdataset = dns.rdataset.from_text(rrset.rdclass, rrset.rdtype, + ttl, self._wellformed_content(type, content)) rrset.update(rdataset) synced_change = self._post_zone() if synced_change: @@ -117,7 +115,8 @@ def list_records(self, type=None, name=None, content=None): rtype = dns.rdatatype.to_text(rdataset.rdtype) rname = rname.to_text() if ((not type or type == rtype) - and (not name or (self.cname if self.cname else self._fqdn_name(name)) == rname)): + and (not name or (self.cname if self.cname + else self._fqdn_name(name)) == rname)): for rdata in rdataset: rdata = rdata.to_text() if (not content or self._wellformed_content(rtype, content) == rdata): @@ -127,7 +126,7 @@ def list_records(self, type=None, name=None, content=None): 'name': self._full_name(rname), 'ttl': int(rdataset.ttl), 'content': raw_rdata, - 'id': self._build_identifier(rtype, rname, raw_rdata) + 'id': Provider._build_identifier(rtype, rname, raw_rdata) } records.append(data) if self._get_lexicon_option('action') == 'list': @@ -178,8 +177,7 @@ def update_record(self, identifier=None, type=None, name=None, content=None): keep_rdataset = dns.rdataset.from_text_list(delete_rrset.rdclass, delete_rrset.rdtype, - record['ttl'], - keep_rdatas) + record['ttl'], keep_rdatas) self.zone['data'].replace_rdataset(record['name']+'.', keep_rdataset) else: self.zone['data'].delete_rdataset(record['name']+'.', record['type']) @@ -262,8 +260,9 @@ def _request(self, action='GET', url='/', data=None, query_params=None): raise requests.exceptions.ConnectionError time.sleep(1) return response - - def _build_identifier(self, type, name, content): + + @staticmethod + def _build_identifier(type, name, content): sha256 = hashlib.sha256() sha256.update((type + '/').encode('UTF-8')) sha256.update((name + '/').encode('UTF-8')) @@ -400,7 +399,7 @@ def _open_session(self, username, password): response = session.request('POST', '{}/login_check'.format(self.auth_endpoint), data={'_username': username, '_password': password}) if ('{}/account/masterdata'.format(self.auth_endpoint) == response.url - and response.status_code == 200): + and response.status_code == 200): response = session.request('GET', '{}/'.format(self.api_endpoint)) if self.api_endpoint not in response.url or response.status_code != 200: LOGGER.error('Hetzner => Unable to open session to account %s', username) @@ -412,7 +411,7 @@ def _close_session(self): if self._get_provider_option('live_tests') is None: response = self._get('/login/logout/r/true') if ('{}/logout'.format(self.auth_endpoint) in response.url - and response.status_code == 200): + and response.status_code == 200): LOGGER.info('Hetzner => Close session') else: LOGGER.error('Hetzner => Unable to safely close session') @@ -420,7 +419,8 @@ def _close_session(self): return True return False - def _extract_zone_id_from_js(self, string): + @staticmethod + def _extract_zone_id_from_js(string): regex = re.compile(r'\'(\d+)\'') match = regex.search(string) if not match: @@ -437,7 +437,7 @@ def _get_zone_id(self, zone): .findAll('table', attrs={'class': 'box_title'})) for box in boxes: expand_box = dict(box.attrs)['onclick'] - zone_id = self._extract_zone_id_from_js(expand_box) + zone_id = Provider._extract_zone_id_from_js(expand_box) zone_name = (box.find('td', attrs={'class': 'title'}) .renderContents().decode('UTF-8')) zones[zone_name] = zone_id diff --git a/tests/providers/test_hetzner.py b/tests/providers/test_hetzner.py index fc13f52b3..8d5ea804d 100644 --- a/tests/providers/test_hetzner.py +++ b/tests/providers/test_hetzner.py @@ -42,4 +42,4 @@ def _test_parameters_overrides(self): 'concatenate': 'no', 'propagated': 'no', 'live_tests': env_live_tests} - return options \ No newline at end of file + return options From 2496d3fd668e55f13786adfee4dbe6b0a37304b8 Mon Sep 17 00:00:00 2001 From: Brian Rimek Date: Wed, 5 Dec 2018 02:37:13 +0100 Subject: [PATCH 07/21] Hopefully enough lint enhancement... --- lexicon/providers/hetzner.py | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/lexicon/providers/hetzner.py b/lexicon/providers/hetzner.py index c52f1b05d..1a01d7e2a 100644 --- a/lexicon/providers/hetzner.py +++ b/lexicon/providers/hetzner.py @@ -260,54 +260,54 @@ def _request(self, action='GET', url='/', data=None, query_params=None): raise requests.exceptions.ConnectionError time.sleep(1) return response - + @staticmethod - def _build_identifier(type, name, content): + def _build_identifier(rdtype, name, content): sha256 = hashlib.sha256() - sha256.update((type + '/').encode('UTF-8')) + sha256.update((rdtype + '/').encode('UTF-8')) sha256.update((name + '/').encode('UTF-8')) sha256.update(content.encode('UTF-8')) return sha256.hexdigest()[0:7] def _parse_identifier(self, identifier): - type, name, content = None, None, None + rdtype, name, content = None, None, None if len(identifier) > 7: parts = identifier.split('/') - type, name, content = parts[0], parts[1], '/'.join(parts[2:]) + rdtype, name, content = parts[0], parts[1], '/'.join(parts[2:]) else: records = self.list_records() for record in records: if record['id'] == identifier: - type, name, content = record['type'], record['name']+'.', record['content'] - return type, name, content + rdtype, name, content = record['type'], record['name']+'.', record['content'] + return rdtype, name, content - def _wellformed_content(self, type, content): - if type in ('TXT', 'LOC'): + def _wellformed_content(self, rdtype, content): + if rdtype in ('TXT', 'LOC'): if content[0] != '"': content = '"' + content if content[-1] != '"': content += '"' - if type in ('CNAME', 'MX', 'NS', 'SRV'): + if rdtype in ('CNAME', 'MX', 'NS', 'SRV'): if content[-1] != '.': content = self._fqdn_name(content) return content - def _raw_content(self, type, content): - if type in ('TXT', 'LOC'): + def _raw_content(self, rdtype, content): + if rdtype in ('TXT', 'LOC'): content = content.strip('"') return content def _concatenate(self): action = self._get_lexicon_option('action') identifier = self._get_lexicon_option('identifier') - type = self._get_lexicon_option('type') + rdtype = self._get_lexicon_option('type') name = self._get_lexicon_option('name') concatenate = True if self._get_provider_option('concatenate') == 'yes' else False name_update = name if identifier: - type, name, content = self._parse_identifier(identifier) + rdtype, name, _ = self._parse_identifier(identifier) name_update = name if name_update is None or name_update == name else name_update - if action != 'list' and type and type != 'CNAME' and name and concatenate: + if action != 'list' and rdtype and rdtype != 'CNAME' and name and concatenate: if action != 'update' or name == name_update: LOGGER.info('Hetzner => Enabled CNAME lookup, ' 'see --concatenate option with \'lexicon hetzner --help\'') @@ -316,15 +316,15 @@ def _concatenate(self): 'see --concatenate option with \'lexicon hetzner --help\'') return False, name - def _propagated(self, type, name, content): + def _propagated(self, rdtype, name, content): propagated = True if self._get_provider_option('propagated') == 'yes' else False if propagated: retry, max_retry = 0, 30 while retry < max_retry: for rdata in self._dns_lookup((self.cname if self.cname else self._fqdn_name(name)), - type, self.nameservers): - if self._wellformed_content(type, content) == rdata.to_text(): + rdtype, self.nameservers): + if self._wellformed_content(rdtype, content) == rdata.to_text(): return True retry += 1 LOGGER.info('Hetzner => Record is not propagated, %d retries remaining - ' From 6bc1e1f1154b9bc61d6fc613195222c1c5cf1c07 Mon Sep 17 00:00:00 2001 From: Brian Rimek Date: Wed, 5 Dec 2018 14:46:19 +0100 Subject: [PATCH 08/21] enhance --concatenate and --propagated options --- lexicon/providers/hetzner.py | 45 ++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/lexicon/providers/hetzner.py b/lexicon/providers/hetzner.py index 1a01d7e2a..70b46ece7 100644 --- a/lexicon/providers/hetzner.py +++ b/lexicon/providers/hetzner.py @@ -45,13 +45,13 @@ def ProviderParser(subparser): 'name or the raw FQDN record identifier \'type/name/content\' is ' 'spezified, and additionally for update action the record name ' 'remains the same', - default='yes'.encode('UTF-8'), - choices=['yes'.encode('UTF-8'), 'no'.encode('UTF-8')]) + default=str('yes'), + choices=['yes', 'no']) subparser.add_argument('--propagated', help='wait until record is propagated after succeeded create|update ' 'action: by default (yes)', - default='yes'.encode('UTF-8'), - choices=['yes'.encode('UTF-8'), 'no'.encode('UTF-8')]) + default=str('yes'), + choices=['yes', 'no']) class Provider(BaseProvider): @@ -72,11 +72,11 @@ def __init__(self, config): # Authenticate against provider. def authenticate(self): - concatenate, name = self._concatenate() - zone, self.nameservers, self.cname = self._dns_cname(concatenate, self.domain, name) + name, concatenate = self._concatenate() + self.domain, self.nameservers, self.cname = self._dns_cname(self.domain, name, concatenate) self.session = self._open_session(self.username, self.password) - self.domain_id = self._get_zone_id(zone) - self.zone = self._get_zone(zone, self.domain_id) + self.domain_id = self._get_zone_id(self.domain) + self.zone = self._get_zone(self.domain, self.domain_id) # Create record. If record already exists with the same content, do nothing. def create_record(self, type, name, content): @@ -306,20 +306,20 @@ def _concatenate(self): name_update = name if identifier: rdtype, name, _ = self._parse_identifier(identifier) - name_update = name if name_update is None or name_update == name else name_update + name_update = self._fqdn_name(name_update) if name_update else name if action != 'list' and rdtype and rdtype != 'CNAME' and name and concatenate: if action != 'update' or name == name_update: LOGGER.info('Hetzner => Enabled CNAME lookup, ' 'see --concatenate option with \'lexicon hetzner --help\'') - return True, name + return name, True LOGGER.info('Hetzner => Disabled CNAME lookup, ' 'see --concatenate option with \'lexicon hetzner --help\'') - return False, name + return name, False def _propagated(self, rdtype, name, content): propagated = True if self._get_provider_option('propagated') == 'yes' else False if propagated: - retry, max_retry = 0, 30 + retry, max_retry = 0, 20 while retry < max_retry: for rdata in self._dns_lookup((self.cname if self.cname else self._fqdn_name(name)), @@ -361,14 +361,13 @@ def _dns(self, zone, name): rdtype_ip): if rdata_ip.to_text() not in nameservers: nameservers.append(rdata_ip.to_text()) - qzone = qname.to_text() + qzone = qname.to_text(True) qname = qname.parent() zone = qzone if nameservers else zone - nameservers = nameservers if nameservers else [] - LOGGER.debug('DNS Lookup => %s IN NS %s', zone, ' '.join(nameservers)) + LOGGER.debug('DNS Lookup => %s IN NS %s', zone+'.', ' '.join(nameservers)) return zone, nameservers - def _dns_cname(self, concatenate, zone, name=None): + def _dns_cname(self, zone, name=None, concatenate=False): cname = None if not concatenate: name = self._fqdn_name(name) if name else zone+'.' @@ -427,8 +426,8 @@ def _extract_zone_id_from_js(string): return False return int(match.group(1)) - def _get_zone_id(self, zone): - qzone_name = dns.name.from_text(zone).to_unicode(True) + def _get_zone_id(self, zone_name): + qzone_name = dns.name.from_text(zone_name).to_unicode(True) qzone_id, zones, last_count, page = None, {}, -1, 1 while (last_count != len(zones) and qzone_id is None): last_count = len(zones) @@ -458,8 +457,8 @@ def _get_zone(self, zone_name, zone_id): csrf_token = soup.find('input', attrs={'id': 'csrf_token'})['value'] zone_file = (soup.find('textarea', attrs={'id': 'zonefile'}) .renderContents().decode('UTF-8')) - zone = {'data': dns.zone.from_text(zone_file, origin=zone_name, relativize=False), - 'token': csrf_token} + zone = {'id': zone_id, 'name': zone_name, 'token': csrf_token, + 'data': dns.zone.from_text(zone_file, origin=zone_name, relativize=False)} LOGGER.info('Hetzner => Get data for zone ID %d', zone_id) return zone @@ -475,7 +474,7 @@ def _get_language(self): def _post_zone(self): language = self._get_language() post_response = {'de_DE': 'Vielen Dank', 'en_GB': 'Thank you for'} - response = self._post('/dns/update', data={'id': self.domain_id, + response = self._post('/dns/update', data={'id': self.zone['id'], 'zonefile': (self.zone['data'] .to_text(relativize=True)), '_csrf_token': self.zone['token']}) @@ -483,10 +482,10 @@ def _post_zone(self): # (delivering the update form as an 'error message') if post_response[language] in response.text: LOGGER.info('Hetzner => Update data for zone ID %d - wait 30s...\n\n%s', - self.domain_id, self.zone['data'].to_text(relativize=True)) + self.zone['id'], self.zone['data'].to_text(relativize=True)) if self._get_provider_option('live_tests') != 'false': time.sleep(30) return True LOGGER.error('Hetzner => Unable to update data for zone ID %d\n\n%s', - self.domain_id, self.zone['data'].to_text(relativize=True)) + self.zone['id'], self.zone['data'].to_text(relativize=True)) return False From 6f62f40d01ac93f63cb09b6ed3f6fc0b5df098d1 Mon Sep 17 00:00:00 2001 From: Brian Rimek Date: Wed, 5 Dec 2018 15:02:59 +0100 Subject: [PATCH 09/21] fix logger output for zone data in python3 --- lexicon/providers/hetzner.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lexicon/providers/hetzner.py b/lexicon/providers/hetzner.py index 70b46ece7..2ad14a6dd 100644 --- a/lexicon/providers/hetzner.py +++ b/lexicon/providers/hetzner.py @@ -482,10 +482,12 @@ def _post_zone(self): # (delivering the update form as an 'error message') if post_response[language] in response.text: LOGGER.info('Hetzner => Update data for zone ID %d - wait 30s...\n\n%s', - self.zone['id'], self.zone['data'].to_text(relativize=True)) + self.zone['id'], + self.zone['data'].to_text(relativize=True).decode('UTF-8')) if self._get_provider_option('live_tests') != 'false': time.sleep(30) return True LOGGER.error('Hetzner => Unable to update data for zone ID %d\n\n%s', - self.zone['id'], self.zone['data'].to_text(relativize=True)) + self.zone['id'], + self.zone['data'].to_text(relativize=True).decode('UTF-8')) return False From abf6c68949a035f3a6ce69a246942c0bd2de3404 Mon Sep 17 00:00:00 2001 From: Brian Rimek Date: Sat, 8 Dec 2018 17:42:55 +0100 Subject: [PATCH 10/21] Added provider variant Hetzner KonsoleH Refactored code --- .vscode/settings.json | 3 + lexicon/providers/hetzner.py | 354 ++++--- ...for_CNAME_with_valid_name_and_content.yaml | 553 ----------- ...d_for_TXT_with_valid_name_and_content.yaml | 556 ----------- ...ltiple_times_should_create_record_set.yaml | 620 ------------ ...record_by_filter_should_remove_record.yaml | 623 ------------ ...r_with_fqdn_name_should_remove_record.yaml | 623 ------------ ...rd_by_identifier_should_remove_record.yaml | 623 ------------ ...content_should_leave_others_untouched.yaml | 687 ------------- ...ist_records_should_handle_record_sets.yaml | 625 ------------ ...ng_update_record_should_modify_record.yaml | 628 ------------ ...d_should_modify_record_name_specified.yaml | 629 ------------ .../test_Provider_authenticate.yaml | 318 ++++++ ...ate_with_unmanaged_domain_should_fail.yaml | 249 +++++ ...ord_for_A_with_valid_name_and_content.yaml | 318 ++++++ ...for_CNAME_with_valid_name_and_content.yaml | 510 ++++++++++ ...rd_for_TXT_with_fqdn_name_and_content.yaml | 511 ++++++++++ ...rd_for_TXT_with_full_name_and_content.yaml | 514 ++++++++++ ...d_for_TXT_with_valid_name_and_content.yaml | 516 ++++++++++ ...ltiple_times_should_create_record_set.yaml | 714 +++++++++++++ ...with_duplicate_records_should_be_noop.yaml | 522 ++++++++++ ...record_by_filter_should_remove_record.yaml | 727 ++++++++++++++ ...r_with_fqdn_name_should_remove_record.yaml | 727 ++++++++++++++ ...r_with_full_name_should_remove_record.yaml | 727 ++++++++++++++ ...rd_by_identifier_should_remove_record.yaml | 727 ++++++++++++++ ...content_should_leave_others_untouched.yaml | 933 +++++++++++++++++ ...ecord_with_record_set_name_remove_all.yaml | 939 ++++++++++++++++++ ...alling_list_records_after_setting_ttl.yaml | 528 ++++++++++ ...ist_records_should_handle_record_sets.yaml | 738 ++++++++++++++ ...fqdn_name_filter_should_return_record.yaml | 536 ++++++++++ ...full_name_filter_should_return_record.yaml | 537 ++++++++++ ...h_invalid_filter_should_be_empty_list.yaml | 328 ++++++ ...with_name_filter_should_return_record.yaml | 539 ++++++++++ ...rds_with_no_arguments_should_list_all.yaml | 329 ++++++ ...ng_update_record_should_modify_record.yaml | 756 ++++++++++++++ ...d_should_modify_record_name_specified.yaml | 759 ++++++++++++++ ...d_with_fqdn_name_should_modify_record.yaml | 761 ++++++++++++++ ...d_with_full_name_should_modify_record.yaml | 766 ++++++++++++++ .../test_Provider_authenticate.yaml | 431 ++++++++ ...ate_with_unmanaged_domain_should_fail.yaml | 195 ++-- ...ord_for_A_with_valid_name_and_content.yaml | 431 ++++++++ ...or_CNAME_with_valid_name_and_content.yaml} | 242 ++--- ...d_for_TXT_with_fqdn_name_and_content.yaml} | 258 ++--- ...rd_for_TXT_with_full_name_and_content.yaml | 503 ++++++++++ ...d_for_TXT_with_valid_name_and_content.yaml | 505 ++++++++++ ...tiple_times_should_create_record_set.yaml} | 317 +++--- ...with_duplicate_records_should_be_noop.yaml | 509 ++++++++++ ...ecord_by_filter_should_remove_record.yaml} | 304 +++--- ...r_with_fqdn_name_should_remove_record.yaml | 586 +++++++++++ ..._with_full_name_should_remove_record.yaml} | 306 +++--- ...d_by_identifier_should_remove_record.yaml} | 321 +++--- ...ontent_should_leave_others_untouched.yaml} | 363 ++++--- ...ecord_with_record_set_name_remove_all.yaml | 344 +++---- ...alling_list_records_after_setting_ttl.yaml | 513 ++++++++++ ...st_records_should_handle_record_sets.yaml} | 315 +++--- ...fqdn_name_filter_should_return_record.yaml | 517 ++++++++++ ...ull_name_filter_should_return_record.yaml} | 273 ++--- ...h_invalid_filter_should_be_empty_list.yaml | 442 +++++++++ ...ith_name_filter_should_return_record.yaml} | 253 ++--- ...rds_with_no_arguments_should_list_all.yaml | 442 +++++++++ ...g_update_record_should_modify_record.yaml} | 337 ++++--- ..._should_modify_record_name_specified.yaml} | 329 +++--- ...d_with_fqdn_name_should_modify_record.yaml | 295 +++--- ...d_with_full_name_should_modify_record.yaml | 296 +++--- tests/providers/test_hetzner.py | 45 +- 65 files changed, 23145 insertions(+), 8580 deletions(-) create mode 100644 .vscode/settings.json delete mode 100644 tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_for_CNAME_with_valid_name_and_content.yaml delete mode 100644 tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_valid_name_and_content.yaml delete mode 100644 tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_multiple_times_should_create_record_set.yaml delete mode 100644 tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_by_filter_should_remove_record.yaml delete mode 100644 tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_fqdn_name_should_remove_record.yaml delete mode 100644 tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_by_identifier_should_remove_record.yaml delete mode 100644 tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_by_content_should_leave_others_untouched.yaml delete mode 100644 tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_should_handle_record_sets.yaml delete mode 100644 tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_update_record_should_modify_record.yaml delete mode 100644 tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_update_record_should_modify_record_name_specified.yaml create mode 100644 tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_authenticate.yaml create mode 100644 tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_authenticate_with_unmanaged_domain_should_fail.yaml create mode 100644 tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_for_A_with_valid_name_and_content.yaml create mode 100644 tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_for_CNAME_with_valid_name_and_content.yaml create mode 100644 tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_fqdn_name_and_content.yaml create mode 100644 tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_full_name_and_content.yaml create mode 100644 tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_valid_name_and_content.yaml create mode 100644 tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_multiple_times_should_create_record_set.yaml create mode 100644 tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_with_duplicate_records_should_be_noop.yaml create mode 100644 tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_should_remove_record.yaml create mode 100644 tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_fqdn_name_should_remove_record.yaml create mode 100644 tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_full_name_should_remove_record.yaml create mode 100644 tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_by_identifier_should_remove_record.yaml create mode 100644 tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_by_content_should_leave_others_untouched.yaml create mode 100644 tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_name_remove_all.yaml create mode 100644 tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_after_setting_ttl.yaml create mode 100644 tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_should_handle_record_sets.yaml create mode 100644 tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_with_fqdn_name_filter_should_return_record.yaml create mode 100644 tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_with_full_name_filter_should_return_record.yaml create mode 100644 tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_with_invalid_filter_should_be_empty_list.yaml create mode 100644 tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_with_name_filter_should_return_record.yaml create mode 100644 tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_with_no_arguments_should_list_all.yaml create mode 100644 tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_update_record_should_modify_record.yaml create mode 100644 tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_update_record_should_modify_record_name_specified.yaml create mode 100644 tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_update_record_with_fqdn_name_should_modify_record.yaml create mode 100644 tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_update_record_with_full_name_should_modify_record.yaml create mode 100644 tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_authenticate.yaml rename tests/fixtures/cassettes/hetzner/{IntegrationTests => Robot-IntegrationTests}/test_Provider_authenticate_with_unmanaged_domain_should_fail.yaml (77%) create mode 100644 tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_for_A_with_valid_name_and_content.yaml rename tests/fixtures/cassettes/hetzner/{IntegrationTests/test_Provider_authenticate.yaml => Robot-IntegrationTests/test_Provider_when_calling_create_record_for_CNAME_with_valid_name_and_content.yaml} (76%) rename tests/fixtures/cassettes/hetzner/{IntegrationTests/test_Provider_when_calling_create_record_for_A_with_valid_name_and_content.yaml => Robot-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_fqdn_name_and_content.yaml} (74%) create mode 100644 tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_full_name_and_content.yaml create mode 100644 tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_valid_name_and_content.yaml rename tests/fixtures/cassettes/hetzner/{IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_fqdn_name_and_content.yaml => Robot-IntegrationTests/test_Provider_when_calling_create_record_multiple_times_should_create_record_set.yaml} (72%) create mode 100644 tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_with_duplicate_records_should_be_noop.yaml rename tests/fixtures/cassettes/hetzner/{IntegrationTests/test_Provider_when_calling_list_records_after_setting_ttl.yaml => Robot-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_should_remove_record.yaml} (73%) create mode 100644 tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_fqdn_name_should_remove_record.yaml rename tests/fixtures/cassettes/hetzner/{IntegrationTests/test_Provider_when_calling_create_record_with_duplicate_records_should_be_noop.yaml => Robot-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_full_name_should_remove_record.yaml} (74%) rename tests/fixtures/cassettes/hetzner/{IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_full_name_and_content.yaml => Robot-IntegrationTests/test_Provider_when_calling_delete_record_by_identifier_should_remove_record.yaml} (72%) rename tests/fixtures/cassettes/hetzner/{IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_full_name_should_remove_record.yaml => Robot-IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_by_content_should_leave_others_untouched.yaml} (68%) rename tests/fixtures/cassettes/hetzner/{IntegrationTests => Robot-IntegrationTests}/test_Provider_when_calling_delete_record_with_record_set_name_remove_all.yaml (68%) create mode 100644 tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_after_setting_ttl.yaml rename tests/fixtures/cassettes/hetzner/{IntegrationTests/test_Provider_when_calling_list_records_with_name_filter_should_return_record.yaml => Robot-IntegrationTests/test_Provider_when_calling_list_records_should_handle_record_sets.yaml} (72%) create mode 100644 tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_with_fqdn_name_filter_should_return_record.yaml rename tests/fixtures/cassettes/hetzner/{IntegrationTests/test_Provider_when_calling_list_records_with_no_arguments_should_list_all.yaml => Robot-IntegrationTests/test_Provider_when_calling_list_records_with_full_name_filter_should_return_record.yaml} (74%) create mode 100644 tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_with_invalid_filter_should_be_empty_list.yaml rename tests/fixtures/cassettes/hetzner/{IntegrationTests/test_Provider_when_calling_list_records_with_invalid_filter_should_be_empty_list.yaml => Robot-IntegrationTests/test_Provider_when_calling_list_records_with_name_filter_should_return_record.yaml} (77%) create mode 100644 tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_with_no_arguments_should_list_all.yaml rename tests/fixtures/cassettes/hetzner/{IntegrationTests/test_Provider_when_calling_list_records_with_fqdn_name_filter_should_return_record.yaml => Robot-IntegrationTests/test_Provider_when_calling_update_record_should_modify_record.yaml} (70%) rename tests/fixtures/cassettes/hetzner/{IntegrationTests/test_Provider_when_calling_list_records_with_full_name_filter_should_return_record.yaml => Robot-IntegrationTests/test_Provider_when_calling_update_record_should_modify_record_name_specified.yaml} (71%) rename tests/fixtures/cassettes/hetzner/{IntegrationTests => Robot-IntegrationTests}/test_Provider_when_calling_update_record_with_fqdn_name_should_modify_record.yaml (71%) rename tests/fixtures/cassettes/hetzner/{IntegrationTests => Robot-IntegrationTests}/test_Provider_when_calling_update_record_with_full_name_should_modify_record.yaml (71%) diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 000000000..fe7159848 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "python.linting.pylintEnabled": false +} \ No newline at end of file diff --git a/lexicon/providers/hetzner.py b/lexicon/providers/hetzner.py index 2ad14a6dd..40546c9de 100644 --- a/lexicon/providers/hetzner.py +++ b/lexicon/providers/hetzner.py @@ -6,6 +6,7 @@ import re import time import requests +import six # Due to optional requirement try: @@ -20,13 +21,13 @@ LOGGER = logging.getLogger(__name__) -# Lexicon Hetzner Robot Provider +# Lexicon Hetzner Provider # # Author: Brian Rimek, 2018 # # Implementation notes: -# * The Hetzner Robot does not assign a unique identifier to each record in the way -# that Lexicon expects. We work around this by creating an ID based on the record +# * Hetzner Robot and Hetzner KonsoleH does not assign a unique identifier to each record +# in the way that Lexicon expects. We work around this by creating an ID based on the record # type, name(FQDN) and content(if possible FQDN), which when taken together are unique. # Supported record identifier formats are: # * hash - generated|verified by 'list' command; e.g. '30fa112' @@ -37,8 +38,11 @@ NAMESERVER_DOMAINS = [] def ProviderParser(subparser): - subparser.add_argument('--auth-username', help='specify Hetzner Robot username') - subparser.add_argument('--auth-password', help='specify Hetzner Robot password') + subparser.add_argument('--auth-account', + help='specify type of Hetzner account: by default Hetzner Robot ' + '(robot) or Hetzner KonsoleH (konsoleh)') + subparser.add_argument('--auth-username', help='specify username of Hetzner account') + subparser.add_argument('--auth-password', help='specify password of Hetzner account') subparser.add_argument('--concatenate', help='use existent CNAME as record name for create|update|delete ' 'action: by default (yes); Restriction: Only enabled if the record ' @@ -57,15 +61,86 @@ class Provider(BaseProvider): def __init__(self, config): super(Provider, self).__init__(config) - self.api_endpoint = 'https://robot.your-server.de' - self.auth_endpoint = 'https://accounts.hetzner.com' - + self.api = { + 'robot': { + 'endpoint': 'https://robot.your-server.de', + 'filter': [{'name': 'div', 'attrs': {'id': 'center_col'}}], + 'auth': { + 'endpoint': 'https://accounts.hetzner.com', + 'GET': {'url': '/login'}, + 'POST': {'url': '/login_check'}, + 'filter': [{'name': 'form', 'attrs': {'id': 'login-form'}}], + 'user': '_username', + 'pass': '_password' + }, + 'exit': { + 'GET': {'url': '/login/logout/r/true'} + }, + 'domain_id': { + 'GET': {'url': '/dns/index/page/'}, + 'filter': [ + {'name': 'div', 'attrs': {'id': 'center_col'}}, + {'name': 'table', 'attrs': {'class': 'box_title'}} + ], + 'domain': [{'name': 'td', 'attrs': {'class': 'title'}}], + 'id': {'attr': 'onclick', 'regex': r'\'(\d+)\''} + }, + 'zone': { + 'GET': [{'url': '/dns/update/id/'}], + 'POST': {'url': '/dns/update'}, + 'filter': [ + {'name': 'div', 'attrs': {'id': 'center_col'}}, + {'name': 'ul', 'attrs': {'class': 'error_list'}} + ], + 'file': 'zonefile' + } + }, + 'konsoleh': { + 'endpoint': 'https://konsoleh.your-server.de', + 'filter': [{'name': 'div', 'attrs': {'id': 'content'}}], + 'auth': { + 'GET': {}, + 'POST': {'url': '/login.php'}, + 'filter': [{'name': 'form', 'attrs': {'id': 'loginform'}}], + 'user': 'login_user_inputbox', + 'pass': 'login_pass_inputbox' + }, + 'exit': { + 'GET': {'url': '/logout.php'} + }, + 'domain_id': { + 'GET': {'params': {'page': ''}}, + 'filter': [ + {'name': 'div', 'attrs': {'id': 'domainlist'}}, + {'name': 'dl'}, + {'name': 'a'} + ], + 'domain': [{'name': 'strong'}], + 'id': {'attr': 'href', 'regex': r'=(D\d+)'} + }, + 'zone': { + 'GET': [ + {'params': {'domain_number': ''}}, + {'url': '/dns.php', 'params': {'dnsaction2': 'editintextarea'}} + ], + 'POST': {'url': '/dns.php'}, + 'filter': [ + {'name': 'div', 'attrs': {'id': 'content'}}, + {'name': 'div', 'attrs': {'class': 'error'}} + ], + 'file': 'zone_file1' + } + } + } + + self.account = ('robot' if self._get_provider_option('auth_account') != 'konsoleh' + else 'konsoleh') self.username = self._get_provider_option('auth_username') assert self.username is not None self.password = self._get_provider_option('auth_password') assert self.password is not None - self.nameservers = [] + self.nameservers = None self.cname = None self.session = None self.zone = None @@ -73,16 +148,16 @@ def __init__(self, config): # Authenticate against provider. def authenticate(self): name, concatenate = self._concatenate() - self.domain, self.nameservers, self.cname = self._dns_cname(self.domain, name, concatenate) - self.session = self._open_session(self.username, self.password) - self.domain_id = self._get_zone_id(self.domain) + self.domain, self.nameservers, self.cname = self._get_dns_cname(self.domain, name, concatenate) + self.session = self._auth_session(self.username, self.password) + self.domain_id = self._get_domain_id(self.domain) self.zone = self._get_zone(self.domain, self.domain_id) # Create record. If record already exists with the same content, do nothing. def create_record(self, type, name, content): if type is None or name is None or content is None: LOGGER.error('Hetzner => Record has no type|name|content spezified') - self._close_session() + self._exit_session() return False rrset = self.zone['data'].get_rdataset((self.cname if self.cname @@ -91,7 +166,7 @@ def create_record(self, type, name, content): for rdata in rrset: if self._wellformed_content(type, content) == rdata.to_text(): LOGGER.info('Hetzner => Record with content \'%s\' already exists', content) - self._close_session() + self._exit_session() return True ttl = (rrset.ttl if rrset.ttl > 0 and rrset.ttl < self._get_lexicon_option('ttl') @@ -102,7 +177,7 @@ def create_record(self, type, name, content): synced_change = self._post_zone() if synced_change: self._propagated(type, name, content) - self._close_session() + self._exit_session() return synced_change # List all records. Return an empty list if no records found. @@ -130,7 +205,7 @@ def list_records(self, type=None, name=None, content=None): } records.append(data) if self._get_lexicon_option('action') == 'list': - self._close_session() + self._exit_session() return records # Update a record. @@ -148,14 +223,14 @@ def update_record(self, identifier=None, type=None, name=None, content=None): content = content if content else delete_content else: LOGGER.error('Hetzner => Record with identifier \'%s\' does not exist', identifier) - self._close_session() + self._exit_session() return False elif type and name and content: delete_type, delete_name, delete_content = type, name, None else: LOGGER.error('Hetzner => Record has no type|name|content spezified') - self._close_session() + self._exit_session() return False # Delete record @@ -172,7 +247,7 @@ def update_record(self, identifier=None, type=None, name=None, content=None): if keep_rdatas: if delete_content is None: LOGGER.error('Hetzner => Record lookup matching more than one record') - self._close_session() + self._exit_session() return False keep_rdataset = dns.rdataset.from_text_list(delete_rrset.rdclass, @@ -200,11 +275,11 @@ def update_record(self, identifier=None, type=None, name=None, content=None): synced_change = self._post_zone() if synced_change: self._propagated(type, name, content) - self._close_session() + self._exit_session() return synced_change LOGGER.error('Hetzner => Record lookup has no matches') - self._close_session() + self._exit_session() return False # Delete an existing record. @@ -217,7 +292,7 @@ def delete_record(self, identifier=None, type=None, name=None, content=None): type, name, content = self._parse_identifier(identifier) if type is None or name is None or content is None: LOGGER.info('Hetzner => Record with identifier \'%s\' does not exist', identifier) - self._close_session() + self._exit_session() return True delete_records = self.list_records(type, name, content) @@ -236,14 +311,15 @@ def delete_record(self, identifier=None, type=None, name=None, content=None): else: self.zone['data'].delete_rdataset(record['name']+'.', record['type']) synced_change = self._post_zone() - self._close_session() + self._exit_session() return synced_change LOGGER.info('Hetzner => Record lookup has no matches') - self._close_session() + self._exit_session() return True - # Helpers + # Lexicon Helpers + ########################################################################### def _request(self, action='GET', url='/', data=None, query_params=None): if data is None: data = {} @@ -251,7 +327,7 @@ def _request(self, action='GET', url='/', data=None, query_params=None): query_params = {} for retry in range(10): try: - response = self.session.request(action, self.api_endpoint + url, + response = self.session.request(action, self.api[self.account]['endpoint'] + url, params=query_params, data=data) response.raise_for_status() break @@ -282,7 +358,7 @@ def _parse_identifier(self, identifier): return rdtype, name, content def _wellformed_content(self, rdtype, content): - if rdtype in ('TXT', 'LOC'): + if rdtype in ('TXT'): if content[0] != '"': content = '"' + content if content[-1] != '"': @@ -293,7 +369,7 @@ def _wellformed_content(self, rdtype, content): return content def _raw_content(self, rdtype, content): - if rdtype in ('TXT', 'LOC'): + if rdtype in ('TXT'): content = content.strip('"') return content @@ -332,6 +408,8 @@ def _propagated(self, rdtype, name, content): time.sleep(30) return False + # DNS Helpers + ########################################################################### def _dns_lookup(self, qname, rdtype, nameservers=None): if not nameservers: nameservers = ['8.8.8.8', '8.8.4.4'] @@ -348,7 +426,7 @@ def _dns_lookup(self, qname, rdtype, nameservers=None): LOGGER.debug('DNS Lookup => %s', error) return rrset - def _dns(self, zone, name): + def _get_dns(self, domain, name): qname = dns.name.from_text(name) nameservers = [] rdtypes_ns = ['SOA', 'NS'] @@ -361,17 +439,17 @@ def _dns(self, zone, name): rdtype_ip): if rdata_ip.to_text() not in nameservers: nameservers.append(rdata_ip.to_text()) - qzone = qname.to_text(True) + qdomain = qname.to_text(True) qname = qname.parent() - zone = qzone if nameservers else zone - LOGGER.debug('DNS Lookup => %s IN NS %s', zone+'.', ' '.join(nameservers)) - return zone, nameservers + domain = qdomain if nameservers else domain + LOGGER.debug('DNS Lookup => %s IN NS %s', domain+'.', ' '.join(nameservers)) + return domain, nameservers - def _dns_cname(self, zone, name=None, concatenate=False): + def _get_dns_cname(self, domain, name=None, concatenate=False): cname = None if not concatenate: - name = self._fqdn_name(name) if name else zone+'.' - zone, nameservers = self._dns(zone, name) + name = self._fqdn_name(name) if name else domain+'.' + domain, nameservers = self._get_dns(domain, name) else: concat, max_concats, name = 0, 10, self._fqdn_name(name) while concatenate: @@ -379,10 +457,10 @@ def _dns_cname(self, zone, name=None, concatenate=False): LOGGER.error('Hetzner => Record %s has more than %d concatenated CNAME ' 'entries. Reduce the amount of CNAME concatenations!', name, max_concats) - self._close_session() + self._exit_session() raise AssertionError qname = cname if cname else name - zone, nameservers = self._dns(zone, qname) + domain, nameservers = self._get_dns(domain, qname) rrset = self._dns_lookup(qname, 'CNAME') if rrset: concat += 1 @@ -390,104 +468,136 @@ def _dns_cname(self, zone, name=None, concatenate=False): else: concatenate = False LOGGER.info('Hetzner => Record %s has CNAME %s', name, cname) - return zone, nameservers, cname + return domain, nameservers, cname + + # Hetzner Helpers + ########################################################################### + @staticmethod + def _extract_domain_id(string, regex): + regex = re.compile(regex) + match = regex.search(string) + if not match: + return False + return str(match.group(1)) - def _open_session(self, username, password): + @staticmethod + def _extract_hidden_data(dom): + input_tags = dom.find_all('input', attrs={'type': 'hidden'}) + data = {} + for input_tag in input_tags: + data[input_tag['name']] = input_tag['value'] + return data + + @staticmethod + def _filter_dom(dom, filters, last_find_all=False): + if isinstance(dom, six.string_types): + dom = BeautifulSoup(dom, 'html.parser') + for idx, filter in enumerate(filters, start=1): + if not dom: + break + name = filter.get('name', None) + attrs = filter.get('attrs',{}) + if len(filters) == idx and last_find_all: + dom = dom.find_all(name, attrs=attrs) if name else dom.find_all(attrs=attrs) + else: + dom = dom.find(name, attrs=attrs) if name else dom.find(attrs=attrs) + return dom + + def _auth_session(self, username, password): + api = self.api[self.account]['auth'] + endpoint = api.get('endpoint', self.api[self.account]['endpoint']) session = requests.session() - session.request('GET', '{}/login'.format(self.auth_endpoint)) - response = session.request('POST', '{}/login_check'.format(self.auth_endpoint), - data={'_username': username, '_password': password}) - if ('{}/account/masterdata'.format(self.auth_endpoint) == response.url - and response.status_code == 200): - response = session.request('GET', '{}/'.format(self.api_endpoint)) - if self.api_endpoint not in response.url or response.status_code != 200: - LOGGER.error('Hetzner => Unable to open session to account %s', username) + response = session.request('GET', endpoint + api['GET'].get('url','/')) + dom = Provider._filter_dom(response.text, api['filter']) + data = Provider._extract_hidden_data(dom) + data[api['user']], data[api['pass']] = username, password + response = session.request('POST', endpoint + api['POST']['url'], data=data) + if Provider._filter_dom(response.text, api['filter']): + LOGGER.error('Hetzner => Unable to authenticate session with %s account \'%s\': ' + 'Invalid credentials', + self.account, username) raise AssertionError - LOGGER.info('Hetzner => Open session to account %s', username) + LOGGER.info('Hetzner => Authenticate session with %s account \'%s\'', + self.account, username) return session - def _close_session(self): + def _exit_session(self): if self._get_provider_option('live_tests') is None: - response = self._get('/login/logout/r/true') - if ('{}/logout'.format(self.auth_endpoint) in response.url - and response.status_code == 200): - LOGGER.info('Hetzner => Close session') + api = self.api[self.account] + response = self._get(api['exit']['GET']['url']) + if not Provider._filter_dom(response.text, api['filter']): + LOGGER.info('Hetzner => Exit session') else: - LOGGER.error('Hetzner => Unable to safely close session') + LOGGER.error('Hetzner => Unable to savely exit session') self.session = None return True return False - @staticmethod - def _extract_zone_id_from_js(string): - regex = re.compile(r'\'(\d+)\'') - match = regex.search(string) - if not match: - return False - return int(match.group(1)) - - def _get_zone_id(self, zone_name): - qzone_name = dns.name.from_text(zone_name).to_unicode(True) - qzone_id, zones, last_count, page = None, {}, -1, 1 - while (last_count != len(zones) and qzone_id is None): - last_count = len(zones) - response = self._get('/dns/index/page/{}'.format(page)) - boxes = (BeautifulSoup(response.text, 'html.parser') - .findAll('table', attrs={'class': 'box_title'})) - for box in boxes: - expand_box = dict(box.attrs)['onclick'] - zone_id = Provider._extract_zone_id_from_js(expand_box) - zone_name = (box.find('td', attrs={'class': 'title'}) - .renderContents().decode('UTF-8')) - zones[zone_name] = zone_id - if zone_name == qzone_name: - qzone_id = zone_id + def _get_domain_id(self, domain): + api = self.api[self.account]['domain_id'] + qdomain = dns.name.from_text(domain).to_unicode(True) + qdomain_id, domains, last_count, page = None, {}, -1, 1 + while (last_count != len(domains) and qdomain_id is None): + last_count = len(domains) + request = api['GET'].copy() + url = request.get('url', '/').replace('', str(page)) + params = request.get('params', {}) + for param in params: + params[param] = params[param].replace('', str(page)) + response = self._get(url, query_params=params) + domain_tags = Provider._filter_dom(response.text, api['filter'], True) + for domain_tag in domain_tags: + exp_domain_tag = dict(domain_tag.attrs)[api['id']['attr']] + domain_id = Provider._extract_domain_id(exp_domain_tag, api['id']['regex']) + domain = (Provider._filter_dom(domain_tag, api['domain']) + .renderContents().decode('UTF-8')) + domains[domain] = domain_id + if domain == qdomain: + qdomain_id = domain_id break page += 1 - if qzone_id is None: - LOGGER.error('Hetzner => ID for zone %s does not exists', qzone_name) - self._close_session() + if qdomain_id is None: + LOGGER.error('Hetzner => ID for domain %s does not exists', qdomain) + self._exit_session() raise AssertionError - LOGGER.info('Hetzner => Get ID %d for zone %s', qzone_id, qzone_name) - return qzone_id - - def _get_zone(self, zone_name, zone_id): - response = self._get('/dns/update/id/{}'.format(zone_id)) - soup = BeautifulSoup(response.text, 'html.parser') - csrf_token = soup.find('input', attrs={'id': 'csrf_token'})['value'] - zone_file = (soup.find('textarea', attrs={'id': 'zonefile'}) - .renderContents().decode('UTF-8')) - zone = {'id': zone_id, 'name': zone_name, 'token': csrf_token, - 'data': dns.zone.from_text(zone_file, origin=zone_name, relativize=False)} - LOGGER.info('Hetzner => Get data for zone ID %d', zone_id) + LOGGER.info('Hetzner => Get ID %s for domain %s', qdomain_id, qdomain) + return qdomain_id + + def _get_zone(self, domain, domain_id): + api = self.api[self.account] + for request in api['zone']['GET']: + request = request.copy() + url = request.get('url', '/').replace('', domain_id) + params = request.get('params', {}) + for param in params: + params[param] = params[param].replace('', domain_id) + response = self._get(url, query_params=params) + dom = Provider._filter_dom(response.text, api['filter']) + zone_file_filter = [{'name': 'textarea', 'attrs': {'name': api['zone']['file']}}] + zone_file = Provider._filter_dom(dom, zone_file_filter).renderContents().decode('UTF-8') + hidden = Provider._extract_hidden_data(dom) + zone = {'data': dns.zone.from_text(zone_file, origin=domain, relativize=False), + 'hidden': hidden} + LOGGER.info('Hetzner => Get data for domain ID %s', domain_id) return zone - def _get_language(self): - response = self._get('/preferences/culture') - soup = BeautifulSoup(response.text, 'html.parser') - language = ((soup.find('select', attrs={'id': 'culture'})) - .find('option', attrs={'selected': 'selected'})['value']) - LOGGER.info('Hetzner => Get GUI language %s for account %s', - language, self.username) - return language - def _post_zone(self): - language = self._get_language() - post_response = {'de_DE': 'Vielen Dank', 'en_GB': 'Thank you for'} - response = self._post('/dns/update', data={'id': self.zone['id'], - 'zonefile': (self.zone['data'] - .to_text(relativize=True)), - '_csrf_token': self.zone['token']}) - # Hetzner Robot status code is always 200 - # (delivering the update form as an 'error message') - if post_response[language] in response.text: - LOGGER.info('Hetzner => Update data for zone ID %d - wait 30s...\n\n%s', - self.zone['id'], - self.zone['data'].to_text(relativize=True).decode('UTF-8')) - if self._get_provider_option('live_tests') != 'false': - time.sleep(30) - return True - LOGGER.error('Hetzner => Unable to update data for zone ID %d\n\n%s', - self.zone['id'], - self.zone['data'].to_text(relativize=True).decode('UTF-8')) - return False + api = self.api[self.account]['zone'] + zone = self._get_zone(self.domain, self.domain_id) + data = zone['hidden'] + data[api['file']] = self.zone['data'].to_text(relativize=True) + response = self._post(api['POST']['url'], data=data) + if Provider._filter_dom(response.text, api['filter']): + LOGGER.error('Hetzner => Unable to update data for domain ID %s: Syntax error\n\n%s', + self.domain_id, + self.zone['data'].to_text(relativize=True).decode('UTF-8')) + self.zone = zone + return False + + LOGGER.info('Hetzner => Update data for domain ID %s\n\n%s', + self.domain_id, + self.zone['data'].to_text(relativize=True).decode('UTF-8')) + if self._get_provider_option('live_tests') != 'false' and self.account == 'robot': + LOGGER.info('Hetzner => Wait 30s...') + time.sleep(30) + return True diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_for_CNAME_with_valid_name_and_content.yaml b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_for_CNAME_with_valid_name_and_content.yaml deleted file mode 100644 index 44d2cdf59..000000000 --- a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_for_CNAME_with_valid_name_and_content.yaml +++ /dev/null @@ -1,553 +0,0 @@ -interactions: -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/login - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:45:12 GMT'] - Keep-Alive: ['timeout=15, max=100'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 200, message: OK} -- request: - body: '' - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['51'] - Content-Type: [application/x-www-form-urlencoded] - User-Agent: [python-requests/2.20.1] - method: POST - uri: https://accounts.hetzner.com/login_check - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:45:13 GMT'] - Keep-Alive: ['timeout=15, max=99'] - Location: ['https://accounts.hetzner.com/'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/ - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:45:13 GMT'] - Keep-Alive: ['timeout=15, max=98'] - Location: [/account/masterdata] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/account/masterdata - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:45:13 GMT'] - Keep-Alive: ['timeout=15, max=97'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/ - response: - body: {string: None} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:45:14 GMT'] - Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=570574ac76c9ade411c6cd66ad094688'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=570574ac76c9ade411c6cd66ad094688 - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [application/json] - Date: ['Tue, 04 Dec 2018 16:45:14 GMT'] - Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=25fc09de8e4693a05e8a754b2b6f4324bc7cdd36&state=570574ac76c9ade411c6cd66ad094688'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/login/check?code=25fc09de8e4693a05e8a754b2b6f4324bc7cdd36&state=570574ac76c9ade411c6cd66ad094688 - response: - body: {string: None} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:45:14 GMT'] - Keep-Alive: ['timeout=15, max=99'] - Location: ['https://robot.your-server.de/'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/ - response: - body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ - \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ - \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ -
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ - \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ - \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ - \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ - \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ - \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ - \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ - \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ - \n
\n
\n
\n
\n
\n\ -
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ - "} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:45:15 GMT'] - Keep-Alive: ['timeout=15, max=98'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/dns/index/page/1 - response: - body: {string: "
\n
\n
\n
\n
\n\ -
\n\n
\n\n\n\n8\n\ - \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

\n\n\n\n\n\n
8
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:45:15 GMT'] - Keep-Alive: ['timeout=15, max=97'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/dns/update/id/556218 - response: - body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n\ - \
\n
\n
\n\n\ -
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:45:15 GMT'] - Keep-Alive: ['timeout=15, max=96'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/preferences/culture - response: - body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ -
\n\n
\n \xA9 2018 Hetzner\ - \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ - \
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:45:15 GMT'] - Keep-Alive: ['timeout=15, max=95'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120639+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0Adocs+3600+IN+CNAME+docs.example.com%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A&_csrf_token=f0b8b3a02d3134ed4a77c87d87953dea - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['388'] - Content-Type: [application/x-www-form-urlencoded] - User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update - response: - body: {string: "

Vielen Dank\ - \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ - \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ - \ einsehen.

"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:45:16 GMT'] - Keep-Alive: ['timeout=15, max=94'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_valid_name_and_content.yaml b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_valid_name_and_content.yaml deleted file mode 100644 index 544a29529..000000000 --- a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_valid_name_and_content.yaml +++ /dev/null @@ -1,556 +0,0 @@ -interactions: -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/login - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:46:57 GMT'] - Keep-Alive: ['timeout=15, max=100'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 200, message: OK} -- request: - body: '' - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['51'] - Content-Type: [application/x-www-form-urlencoded] - User-Agent: [python-requests/2.20.1] - method: POST - uri: https://accounts.hetzner.com/login_check - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:46:57 GMT'] - Keep-Alive: ['timeout=15, max=99'] - Location: ['https://accounts.hetzner.com/'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/ - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:46:57 GMT'] - Keep-Alive: ['timeout=15, max=98'] - Location: [/account/masterdata] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/account/masterdata - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:46:57 GMT'] - Keep-Alive: ['timeout=15, max=97'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/ - response: - body: {string: None} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:46:58 GMT'] - Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=9940d2cd9e63ec6746af89ddfe5ce48d'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=9940d2cd9e63ec6746af89ddfe5ce48d - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [application/json] - Date: ['Tue, 04 Dec 2018 16:46:58 GMT'] - Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=b108b1ad15ddab85056882beae054e331c3e6729&state=9940d2cd9e63ec6746af89ddfe5ce48d'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/login/check?code=b108b1ad15ddab85056882beae054e331c3e6729&state=9940d2cd9e63ec6746af89ddfe5ce48d - response: - body: {string: None} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:46:58 GMT'] - Keep-Alive: ['timeout=15, max=99'] - Location: ['https://robot.your-server.de/'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/ - response: - body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ - \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ - \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ -
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ - \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ - \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ - \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ - \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ - \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ - \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ - \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ - \n
\n
\n
\n
\n
\n\ -
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ - "} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:46:59 GMT'] - Keep-Alive: ['timeout=15, max=98'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/dns/index/page/1 - response: - body: {string: "
\n
\n
\n
\n
\n\ -
\n\n
\n\n\n\n8\n\ - \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

\n\n\n\n\n\n
8
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:46:59 GMT'] - Keep-Alive: ['timeout=15, max=97'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/dns/update/id/556218 - response: - body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n \n\n
\n
\n* \n
\n\ -
\n\n
\n \xA9 2018 Hetzner\ - \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ - \
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:46:59 GMT'] - Keep-Alive: ['timeout=15, max=96'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/preferences/culture - response: - body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ -
\n\n
\n \xA9 2018 Hetzner\ - \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ - \
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:47:00 GMT'] - Keep-Alive: ['timeout=15, max=95'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120642+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=4e2dc0cda2a14fbf51533432a40069ad - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['556'] - Content-Type: [application/x-www-form-urlencoded] - User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update - response: - body: {string: "

Vielen Dank\ - \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ - \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ - \ einsehen.

"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:47:00 GMT'] - Keep-Alive: ['timeout=15, max=94'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_multiple_times_should_create_record_set.yaml b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_multiple_times_should_create_record_set.yaml deleted file mode 100644 index 63edf0411..000000000 --- a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_multiple_times_should_create_record_set.yaml +++ /dev/null @@ -1,620 +0,0 @@ -interactions: -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/login - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:47:31 GMT'] - Keep-Alive: ['timeout=15, max=100'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 200, message: OK} -- request: - body: '' - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['51'] - Content-Type: [application/x-www-form-urlencoded] - User-Agent: [python-requests/2.20.1] - method: POST - uri: https://accounts.hetzner.com/login_check - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:47:32 GMT'] - Keep-Alive: ['timeout=15, max=99'] - Location: ['https://accounts.hetzner.com/'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/ - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:47:32 GMT'] - Keep-Alive: ['timeout=15, max=98'] - Location: [/account/masterdata] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/account/masterdata - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:47:32 GMT'] - Keep-Alive: ['timeout=15, max=97'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/ - response: - body: {string: None} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:47:33 GMT'] - Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=a3e25e177f723de992887ae3cf718d80'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=a3e25e177f723de992887ae3cf718d80 - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [application/json] - Date: ['Tue, 04 Dec 2018 16:47:33 GMT'] - Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=5ffbdeddf41f5b196d8243590e27933bf20e24aa&state=a3e25e177f723de992887ae3cf718d80'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/login/check?code=5ffbdeddf41f5b196d8243590e27933bf20e24aa&state=a3e25e177f723de992887ae3cf718d80 - response: - body: {string: None} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:47:33 GMT'] - Keep-Alive: ['timeout=15, max=99'] - Location: ['https://robot.your-server.de/'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/ - response: - body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ - \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ - \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ -
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ - \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ - \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ - \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ - \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ - \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ - \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ - \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ - \n
\n
\n
\n
\n
\n\ -
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ - "} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:47:33 GMT'] - Keep-Alive: ['timeout=15, max=98'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/dns/index/page/1 - response: - body: {string: "
\n
\n
\n
\n
\n\ -
\n\n
\n\n\n\n8\n\ - \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

\n\n\n\n\n\n
8
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:47:34 GMT'] - Keep-Alive: ['timeout=15, max=97'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/dns/update/id/556218 - response: - body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n
\n\n\ -
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:47:34 GMT'] - Keep-Alive: ['timeout=15, max=96'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/preferences/culture - response: - body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ -
\n\n
\n \xA9 2018 Hetzner\ - \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ - \
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:47:35 GMT'] - Keep-Alive: ['timeout=15, max=95'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120643+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=858316fcddc68afc34d21a33ec5b2457 - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['624'] - Content-Type: [application/x-www-form-urlencoded] - User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update - response: - body: {string: "

Vielen Dank\ - \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ - \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ - \ einsehen.

"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:47:35 GMT'] - Keep-Alive: ['timeout=15, max=94'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/preferences/culture - response: - body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ -
\n\n
\n \xA9 2018 Hetzner\ - \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ - \
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:48:06 GMT'] - Keep-Alive: ['timeout=15, max=100'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120643+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=858316fcddc68afc34d21a33ec5b2457 - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['692'] - Content-Type: [application/x-www-form-urlencoded] - User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update - response: - body: {string: "

Vielen Dank\ - \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ - \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ - \ einsehen.

"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:48:07 GMT'] - Keep-Alive: ['timeout=15, max=99'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_by_filter_should_remove_record.yaml b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_by_filter_should_remove_record.yaml deleted file mode 100644 index 1f169b991..000000000 --- a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_by_filter_should_remove_record.yaml +++ /dev/null @@ -1,623 +0,0 @@ -interactions: -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/login - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:49:12 GMT'] - Keep-Alive: ['timeout=15, max=100'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 200, message: OK} -- request: - body: '' - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['51'] - Content-Type: [application/x-www-form-urlencoded] - User-Agent: [python-requests/2.20.1] - method: POST - uri: https://accounts.hetzner.com/login_check - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:49:13 GMT'] - Keep-Alive: ['timeout=15, max=99'] - Location: ['https://accounts.hetzner.com/'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/ - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:49:13 GMT'] - Keep-Alive: ['timeout=15, max=98'] - Location: [/account/masterdata] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/account/masterdata - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:49:13 GMT'] - Keep-Alive: ['timeout=15, max=97'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/ - response: - body: {string: None} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:49:14 GMT'] - Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=091658ffd7fb62be0632c980e499a71a'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=091658ffd7fb62be0632c980e499a71a - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [application/json] - Date: ['Tue, 04 Dec 2018 16:49:14 GMT'] - Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=2243b2cfe298569befb7735aba3757e4a2cc0b17&state=091658ffd7fb62be0632c980e499a71a'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/login/check?code=2243b2cfe298569befb7735aba3757e4a2cc0b17&state=091658ffd7fb62be0632c980e499a71a - response: - body: {string: None} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:49:14 GMT'] - Keep-Alive: ['timeout=15, max=99'] - Location: ['https://robot.your-server.de/'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/ - response: - body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ - \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ - \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ -
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ - \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ - \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ - \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ - \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ - \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ - \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ - \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ - \n
\n
\n
\n
\n
\n\ -
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ - "} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:49:15 GMT'] - Keep-Alive: ['timeout=15, max=98'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/dns/index/page/1 - response: - body: {string: "
\n
\n
\n
\n
\n\ -
\n\n
\n\n\n\n8\n\ - \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

\n\n\n\n\n\n
8
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:49:15 GMT'] - Keep-Alive: ['timeout=15, max=97'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/dns/update/id/556218 - response: - body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ - \n
\n
\n* \n
\n
\n
\n\n
\n\ - \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ - \ inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:49:15 GMT'] - Keep-Alive: ['timeout=15, max=96'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/preferences/culture - response: - body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ -
\n\n
\n \xA9 2018 Hetzner\ - \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ - \
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:49:16 GMT'] - Keep-Alive: ['timeout=15, max=95'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120646+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Adelete.testfilt+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=2e1b9acbdcfe03563161a60dece051d0 - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['799'] - Content-Type: [application/x-www-form-urlencoded] - User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update - response: - body: {string: "

Vielen Dank\ - \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ - \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ - \ einsehen.

"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:49:16 GMT'] - Keep-Alive: ['timeout=15, max=94'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/preferences/culture - response: - body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ -
\n\n
\n \xA9 2018 Hetzner\ - \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ - \
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:49:47 GMT'] - Keep-Alive: ['timeout=15, max=100'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120646+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=2e1b9acbdcfe03563161a60dece051d0 - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['748'] - Content-Type: [application/x-www-form-urlencoded] - User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update - response: - body: {string: "

Vielen Dank\ - \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ - \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ - \ einsehen.

"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:49:48 GMT'] - Keep-Alive: ['timeout=15, max=99'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_fqdn_name_should_remove_record.yaml b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_fqdn_name_should_remove_record.yaml deleted file mode 100644 index 2c7f36e49..000000000 --- a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_fqdn_name_should_remove_record.yaml +++ /dev/null @@ -1,623 +0,0 @@ -interactions: -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/login - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:50:19 GMT'] - Keep-Alive: ['timeout=15, max=100'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 200, message: OK} -- request: - body: '' - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['51'] - Content-Type: [application/x-www-form-urlencoded] - User-Agent: [python-requests/2.20.1] - method: POST - uri: https://accounts.hetzner.com/login_check - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:50:19 GMT'] - Keep-Alive: ['timeout=15, max=99'] - Location: ['https://accounts.hetzner.com/'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/ - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:50:20 GMT'] - Keep-Alive: ['timeout=15, max=98'] - Location: [/account/masterdata] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/account/masterdata - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:50:20 GMT'] - Keep-Alive: ['timeout=15, max=97'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/ - response: - body: {string: None} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:50:20 GMT'] - Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=17ccbfafcaaac69bfa48f9fb3a28eb27'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=17ccbfafcaaac69bfa48f9fb3a28eb27 - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [application/json] - Date: ['Tue, 04 Dec 2018 16:50:21 GMT'] - Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=d5fdd1ff40b11ad7bd813eeded4787507d07a4c4&state=17ccbfafcaaac69bfa48f9fb3a28eb27'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/login/check?code=d5fdd1ff40b11ad7bd813eeded4787507d07a4c4&state=17ccbfafcaaac69bfa48f9fb3a28eb27 - response: - body: {string: None} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:50:21 GMT'] - Keep-Alive: ['timeout=15, max=99'] - Location: ['https://robot.your-server.de/'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/ - response: - body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ - \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ - \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ -
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ - \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ - \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ - \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ - \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ - \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ - \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ - \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ - \n
\n
\n
\n
\n
\n\ -
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ - "} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:50:21 GMT'] - Keep-Alive: ['timeout=15, max=98'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/dns/index/page/1 - response: - body: {string: "
\n
\n
\n
\n
\n\ -
\n\n
\n\n\n\n8\n\ - \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

\n\n\n\n\n\n
8
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:50:21 GMT'] - Keep-Alive: ['timeout=15, max=97'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/dns/update/id/556218 - response: - body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ - \n
\n
\n* \n
\n
\n
\n\n
\n\ - \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ - \ inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:50:22 GMT'] - Keep-Alive: ['timeout=15, max=96'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/preferences/culture - response: - body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ -
\n\n
\n \xA9 2018 Hetzner\ - \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ - \
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:50:22 GMT'] - Keep-Alive: ['timeout=15, max=95'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120648+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Adelete.testfqdn+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=d8de505f16226f9d492e3e95f345a639 - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['799'] - Content-Type: [application/x-www-form-urlencoded] - User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update - response: - body: {string: "

Vielen Dank\ - \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ - \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ - \ einsehen.

"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:50:22 GMT'] - Keep-Alive: ['timeout=15, max=94'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/preferences/culture - response: - body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ -
\n\n
\n \xA9 2018 Hetzner\ - \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ - \
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:50:54 GMT'] - Keep-Alive: ['timeout=15, max=100'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120648+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=d8de505f16226f9d492e3e95f345a639 - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['748'] - Content-Type: [application/x-www-form-urlencoded] - User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update - response: - body: {string: "

Vielen Dank\ - \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ - \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ - \ einsehen.

"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:50:54 GMT'] - Keep-Alive: ['timeout=15, max=99'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_by_identifier_should_remove_record.yaml b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_by_identifier_should_remove_record.yaml deleted file mode 100644 index 438f31452..000000000 --- a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_by_identifier_should_remove_record.yaml +++ /dev/null @@ -1,623 +0,0 @@ -interactions: -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/login - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:52:32 GMT'] - Keep-Alive: ['timeout=15, max=100'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 200, message: OK} -- request: - body: '' - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['51'] - Content-Type: [application/x-www-form-urlencoded] - User-Agent: [python-requests/2.20.1] - method: POST - uri: https://accounts.hetzner.com/login_check - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:52:33 GMT'] - Keep-Alive: ['timeout=15, max=99'] - Location: ['https://accounts.hetzner.com/'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/ - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:52:33 GMT'] - Keep-Alive: ['timeout=15, max=98'] - Location: [/account/masterdata] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/account/masterdata - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:52:33 GMT'] - Keep-Alive: ['timeout=15, max=97'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/ - response: - body: {string: None} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:52:34 GMT'] - Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=17a7c061973fbd50840db8228b5b4d3b'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=17a7c061973fbd50840db8228b5b4d3b - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [application/json] - Date: ['Tue, 04 Dec 2018 16:52:34 GMT'] - Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=bf3caa23d9b861dd9b0872d83471bff2bb5234da&state=17a7c061973fbd50840db8228b5b4d3b'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/login/check?code=bf3caa23d9b861dd9b0872d83471bff2bb5234da&state=17a7c061973fbd50840db8228b5b4d3b - response: - body: {string: None} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:52:34 GMT'] - Keep-Alive: ['timeout=15, max=99'] - Location: ['https://robot.your-server.de/'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/ - response: - body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ - \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ - \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ -
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ - \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ - \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ - \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ - \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ - \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ - \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ - \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ - \n
\n
\n
\n
\n
\n\ -
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ - "} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:52:35 GMT'] - Keep-Alive: ['timeout=15, max=98'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/dns/index/page/1 - response: - body: {string: "
\n
\n
\n
\n
\n\ -
\n\n
\n\n\n\n8\n\ - \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

\n\n\n\n\n\n
8
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:52:35 GMT'] - Keep-Alive: ['timeout=15, max=97'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/dns/update/id/556218 - response: - body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ - \n
\n
\n* \n
\n
\n
\n\n
\n\ - \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ - \ inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:52:35 GMT'] - Keep-Alive: ['timeout=15, max=96'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/preferences/culture - response: - body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ -
\n\n
\n \xA9 2018 Hetzner\ - \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ - \
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:52:36 GMT'] - Keep-Alive: ['timeout=15, max=95'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120652+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Adelete.testid+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=8f1500c28dc902944e06c1c712767c26 - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['797'] - Content-Type: [application/x-www-form-urlencoded] - User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update - response: - body: {string: "

Vielen Dank\ - \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ - \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ - \ einsehen.

"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:52:36 GMT'] - Keep-Alive: ['timeout=15, max=94'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/preferences/culture - response: - body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ -
\n\n
\n \xA9 2018 Hetzner\ - \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ - \
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:53:08 GMT'] - Keep-Alive: ['timeout=15, max=100'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120652+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=8f1500c28dc902944e06c1c712767c26 - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['748'] - Content-Type: [application/x-www-form-urlencoded] - User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update - response: - body: {string: "

Vielen Dank\ - \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ - \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ - \ einsehen.

"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:53:08 GMT'] - Keep-Alive: ['timeout=15, max=99'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_by_content_should_leave_others_untouched.yaml b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_by_content_should_leave_others_untouched.yaml deleted file mode 100644 index 91c0635d3..000000000 --- a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_by_content_should_leave_others_untouched.yaml +++ /dev/null @@ -1,687 +0,0 @@ -interactions: -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/login - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:53:39 GMT'] - Keep-Alive: ['timeout=15, max=100'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 200, message: OK} -- request: - body: '' - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['51'] - Content-Type: [application/x-www-form-urlencoded] - User-Agent: [python-requests/2.20.1] - method: POST - uri: https://accounts.hetzner.com/login_check - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:53:39 GMT'] - Keep-Alive: ['timeout=15, max=99'] - Location: ['https://accounts.hetzner.com/'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/ - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:53:40 GMT'] - Keep-Alive: ['timeout=15, max=98'] - Location: [/account/masterdata] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/account/masterdata - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:53:40 GMT'] - Keep-Alive: ['timeout=15, max=97'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/ - response: - body: {string: None} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:53:40 GMT'] - Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=9bc058ba924954ae846f8ddc86a0873e'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=9bc058ba924954ae846f8ddc86a0873e - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [application/json] - Date: ['Tue, 04 Dec 2018 16:53:40 GMT'] - Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=a792a1f04c985153b61fc16e68b1ec52ec1f2fab&state=9bc058ba924954ae846f8ddc86a0873e'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/login/check?code=a792a1f04c985153b61fc16e68b1ec52ec1f2fab&state=9bc058ba924954ae846f8ddc86a0873e - response: - body: {string: None} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:53:41 GMT'] - Keep-Alive: ['timeout=15, max=99'] - Location: ['https://robot.your-server.de/'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/ - response: - body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ - \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ - \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ -
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ - \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ - \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ - \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ - \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ - \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ - \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ - \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ - \n
\n
\n
\n
\n
\n\ -
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ - "} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:53:41 GMT'] - Keep-Alive: ['timeout=15, max=98'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/dns/index/page/1 - response: - body: {string: "
\n
\n
\n
\n
\n\ -
\n\n
\n\n\n\n8\n\ - \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

\n\n\n\n\n\n
8
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:53:42 GMT'] - Keep-Alive: ['timeout=15, max=97'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/dns/update/id/556218 - response: - body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ - \n
\n
\n* \n
\n
\n
\n\n
\n\ - \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ - \ inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:53:42 GMT'] - Keep-Alive: ['timeout=15, max=96'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/preferences/culture - response: - body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ -
\n\n
\n \xA9 2018 Hetzner\ - \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ - \
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:53:42 GMT'] - Keep-Alive: ['timeout=15, max=95'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120654+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=3ba164c3da6f2a2f113f68730dee1f73 - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['818'] - Content-Type: [application/x-www-form-urlencoded] - User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update - response: - body: {string: "

Vielen Dank\ - \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ - \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ - \ einsehen.

"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:53:42 GMT'] - Keep-Alive: ['timeout=15, max=94'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/preferences/culture - response: - body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ -
\n\n
\n \xA9 2018 Hetzner\ - \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ - \
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:54:14 GMT'] - Keep-Alive: ['timeout=15, max=100'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120654+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=3ba164c3da6f2a2f113f68730dee1f73 - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['888'] - Content-Type: [application/x-www-form-urlencoded] - User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update - response: - body: {string: "

Vielen Dank\ - \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ - \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ - \ einsehen.

"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:54:14 GMT'] - Keep-Alive: ['timeout=15, max=99'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/preferences/culture - response: - body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ -
\n\n
\n \xA9 2018 Hetzner\ - \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ - \
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:54:46 GMT'] - Keep-Alive: ['timeout=15, max=100'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120654+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=3ba164c3da6f2a2f113f68730dee1f73 - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['818'] - Content-Type: [application/x-www-form-urlencoded] - User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update - response: - body: {string: "

Vielen Dank\ - \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ - \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ - \ einsehen.

"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:54:46 GMT'] - Keep-Alive: ['timeout=15, max=99'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_should_handle_record_sets.yaml b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_should_handle_record_sets.yaml deleted file mode 100644 index ea1e05d8a..000000000 --- a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_should_handle_record_sets.yaml +++ /dev/null @@ -1,625 +0,0 @@ -interactions: -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/login - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:57:31 GMT'] - Keep-Alive: ['timeout=15, max=100'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 200, message: OK} -- request: - body: '' - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['51'] - Content-Type: [application/x-www-form-urlencoded] - User-Agent: [python-requests/2.20.1] - method: POST - uri: https://accounts.hetzner.com/login_check - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:57:31 GMT'] - Keep-Alive: ['timeout=15, max=99'] - Location: ['https://accounts.hetzner.com/'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/ - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:57:32 GMT'] - Keep-Alive: ['timeout=15, max=98'] - Location: [/account/masterdata] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/account/masterdata - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:57:32 GMT'] - Keep-Alive: ['timeout=15, max=97'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/ - response: - body: {string: None} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:57:32 GMT'] - Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=26b401d5773fa3a66bd6d1960afff452'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=26b401d5773fa3a66bd6d1960afff452 - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [application/json] - Date: ['Tue, 04 Dec 2018 16:57:32 GMT'] - Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=37da1dfb8ff48cdc6695a04615885030bb1be8ef&state=26b401d5773fa3a66bd6d1960afff452'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/login/check?code=37da1dfb8ff48cdc6695a04615885030bb1be8ef&state=26b401d5773fa3a66bd6d1960afff452 - response: - body: {string: None} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:57:33 GMT'] - Keep-Alive: ['timeout=15, max=99'] - Location: ['https://robot.your-server.de/'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/ - response: - body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ - \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ - \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ -
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ - \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ - \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ - \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ - \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ - \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ - \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ - \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ - \n
\n
\n
\n
\n
\n\ -
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ - "} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:57:33 GMT'] - Keep-Alive: ['timeout=15, max=98'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/dns/index/page/1 - response: - body: {string: "
\n
\n
\n
\n
\n\ -
\n\n
\n\n\n\n8\n\ - \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

\n\n\n\n\n\n
8
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:57:33 GMT'] - Keep-Alive: ['timeout=15, max=97'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/dns/update/id/556218 - response: - body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n\ -
\n\n
\n \xA9 2018 Hetzner\ - \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ - \
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:57:34 GMT'] - Keep-Alive: ['timeout=15, max=96'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/preferences/culture - response: - body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ -
\n\n
\n \xA9 2018 Hetzner\ - \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ - \
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:57:34 GMT'] - Keep-Alive: ['timeout=15, max=95'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120661+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=bf2fe2726f34a18dc65ad482fbf12160 - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['929'] - Content-Type: [application/x-www-form-urlencoded] - User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update - response: - body: {string: "

Vielen Dank\ - \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ - \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ - \ einsehen.

"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:57:35 GMT'] - Keep-Alive: ['timeout=15, max=94'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/preferences/culture - response: - body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ -
\n\n
\n \xA9 2018 Hetzner\ - \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ - \
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:58:06 GMT'] - Keep-Alive: ['timeout=15, max=100'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120661+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=bf2fe2726f34a18dc65ad482fbf12160 - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['995'] - Content-Type: [application/x-www-form-urlencoded] - User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update - response: - body: {string: "

Vielen Dank\ - \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ - \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ - \ einsehen.

"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:58:06 GMT'] - Keep-Alive: ['timeout=15, max=99'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_update_record_should_modify_record.yaml b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_update_record_should_modify_record.yaml deleted file mode 100644 index e2042a974..000000000 --- a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_update_record_should_modify_record.yaml +++ /dev/null @@ -1,628 +0,0 @@ -interactions: -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/login - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 17:00:31 GMT'] - Keep-Alive: ['timeout=15, max=100'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 200, message: OK} -- request: - body: '' - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['51'] - Content-Type: [application/x-www-form-urlencoded] - User-Agent: [python-requests/2.20.1] - method: POST - uri: https://accounts.hetzner.com/login_check - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 17:00:31 GMT'] - Keep-Alive: ['timeout=15, max=99'] - Location: ['https://accounts.hetzner.com/'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/ - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 17:00:31 GMT'] - Keep-Alive: ['timeout=15, max=98'] - Location: [/account/masterdata] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/account/masterdata - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 17:00:31 GMT'] - Keep-Alive: ['timeout=15, max=97'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/ - response: - body: {string: None} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 17:00:32 GMT'] - Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=580e38cac44253bf2b484ddb6a2d6caf'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=580e38cac44253bf2b484ddb6a2d6caf - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [application/json] - Date: ['Tue, 04 Dec 2018 17:00:32 GMT'] - Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=9f0af4d5b185c0c02d122c317e065fc6a117cf8f&state=580e38cac44253bf2b484ddb6a2d6caf'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/login/check?code=9f0af4d5b185c0c02d122c317e065fc6a117cf8f&state=580e38cac44253bf2b484ddb6a2d6caf - response: - body: {string: None} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 17:00:32 GMT'] - Keep-Alive: ['timeout=15, max=99'] - Location: ['https://robot.your-server.de/'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/ - response: - body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ - \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ - \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ -
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ - \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ - \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ - \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ - \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ - \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ - \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ - \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ - \n
\n
\n
\n
\n
\n\ -
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ - "} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 17:00:33 GMT'] - Keep-Alive: ['timeout=15, max=98'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/dns/index/page/1 - response: - body: {string: "
\n
\n
\n
\n
\n\ -
\n\n
\n\n\n\n8\n\ - \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

\n\n\n\n\n\n
8
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 17:00:33 GMT'] - Keep-Alive: ['timeout=15, max=97'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/dns/update/id/556218 - response: - body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n
\n\n\ -
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 17:00:34 GMT'] - Keep-Alive: ['timeout=15, max=96'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/preferences/culture - response: - body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ -
\n\n
\n \xA9 2018 Hetzner\ - \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ - \
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 17:00:34 GMT'] - Keep-Alive: ['timeout=15, max=95'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120666+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Aorig.test+3600+IN+TXT+%22challengetoken%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=a684a980dcaa3e59a995e9f91452b080 - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['1189'] - Content-Type: [application/x-www-form-urlencoded] - User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update - response: - body: {string: "

Vielen Dank\ - \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ - \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ - \ einsehen.

"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 17:00:34 GMT'] - Keep-Alive: ['timeout=15, max=94'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/preferences/culture - response: - body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ -
\n\n
\n \xA9 2018 Hetzner\ - \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ - \
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 17:01:06 GMT'] - Keep-Alive: ['timeout=15, max=100'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120666+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=a684a980dcaa3e59a995e9f91452b080 - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['1192'] - Content-Type: [application/x-www-form-urlencoded] - User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update - response: - body: {string: "

Vielen Dank\ - \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ - \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ - \ einsehen.

"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 17:01:06 GMT'] - Keep-Alive: ['timeout=15, max=99'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_update_record_should_modify_record_name_specified.yaml b/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_update_record_should_modify_record_name_specified.yaml deleted file mode 100644 index 2429c9b11..000000000 --- a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_update_record_should_modify_record_name_specified.yaml +++ /dev/null @@ -1,629 +0,0 @@ -interactions: -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/login - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 17:01:37 GMT'] - Keep-Alive: ['timeout=15, max=100'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 200, message: OK} -- request: - body: '' - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['51'] - Content-Type: [application/x-www-form-urlencoded] - User-Agent: [python-requests/2.20.1] - method: POST - uri: https://accounts.hetzner.com/login_check - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 17:01:38 GMT'] - Keep-Alive: ['timeout=15, max=99'] - Location: ['https://accounts.hetzner.com/'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/ - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 17:01:38 GMT'] - Keep-Alive: ['timeout=15, max=98'] - Location: [/account/masterdata] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/account/masterdata - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 17:01:38 GMT'] - Keep-Alive: ['timeout=15, max=97'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/ - response: - body: {string: None} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 17:01:39 GMT'] - Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=31f36140e7ad605e12c06111e61f08d5'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=31f36140e7ad605e12c06111e61f08d5 - response: - body: {string: None} - headers: - Cache-Control: ['max-age=0, must-revalidate, private'] - Connection: [Keep-Alive] - Content-Type: [application/json] - Date: ['Tue, 04 Dec 2018 17:01:39 GMT'] - Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=cd05327ff05156b426f586528f5f69c5ebc11a25&state=31f36140e7ad605e12c06111e61f08d5'] - Server: [Apache] - Strict-Transport-Security: [max-age=31536000] - Transfer-Encoding: [chunked] - Vary: [Host] - X-Frame-Options: [SAMEORIGIN] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/login/check?code=cd05327ff05156b426f586528f5f69c5ebc11a25&state=31f36140e7ad605e12c06111e61f08d5 - response: - body: {string: None} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 17:01:39 GMT'] - Keep-Alive: ['timeout=15, max=99'] - Location: ['https://robot.your-server.de/'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/ - response: - body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ - \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ - \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ -
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ - \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ - \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ - \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ - \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ - \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ - \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ - \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ - \n
\n
\n
\n
\n
\n\ -
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ - "} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 17:01:39 GMT'] - Keep-Alive: ['timeout=15, max=98'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/dns/index/page/1 - response: - body: {string: "
\n
\n
\n
\n
\n\ -
\n\n
\n\n\n\n8\n\ - \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

\n\n\n\n\n\n
8
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 17:01:40 GMT'] - Keep-Alive: ['timeout=15, max=97'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/dns/update/id/556218 - response: - body: {string: "
\n
\n
\n\n\n\n\n\n\n\ - \n\n\n\ - \n
\n
\n* \n
\n
\n
\n\n
\n\ - \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ - \ inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 17:01:40 GMT'] - Keep-Alive: ['timeout=15, max=96'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/preferences/culture - response: - body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ -
\n\n
\n \xA9 2018 Hetzner\ - \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ - \
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 17:01:41 GMT'] - Keep-Alive: ['timeout=15, max=95'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120668+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Aorig.nameonly.test+3600+IN+TXT+%22challengetoken%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=c4ebc5eb75d61d16d21ea3e9671fea26 - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['1246'] - Content-Type: [application/x-www-form-urlencoded] - User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update - response: - body: {string: "

Vielen Dank\ - \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ - \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ - \ einsehen.

"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 17:01:41 GMT'] - Keep-Alive: ['timeout=15, max=94'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/preferences/culture - response: - body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ -
\n\n
\n \xA9 2018 Hetzner\ - \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ - \
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 17:02:13 GMT'] - Keep-Alive: ['timeout=15, max=100'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -- request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120668+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Aorig.nameonly.test+3600+IN+TXT+%22updated%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=c4ebc5eb75d61d16d21ea3e9671fea26 - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - Content-Length: ['1239'] - Content-Type: [application/x-www-form-urlencoded] - User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update - response: - body: {string: "

Vielen Dank\ - \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ - \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ - \ einsehen.

"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 17:02:13 GMT'] - Keep-Alive: ['timeout=15, max=99'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} -version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_authenticate.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_authenticate.yaml new file mode 100644 index 000000000..5823f2ff4 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_authenticate.yaml @@ -0,0 +1,318 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:10 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6791'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['240'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:11 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:11 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?page=1 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:11 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:11 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n\ +
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:12 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10338'] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_authenticate_with_unmanaged_domain_should_fail.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_authenticate_with_unmanaged_domain_should_fail.yaml new file mode 100644 index 000000000..b32844a22 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_authenticate_with_unmanaged_domain_should_fail.yaml @@ -0,0 +1,249 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:13 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6792'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['241'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:13 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:13 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?page=1 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:13 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?page=1 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:13 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_for_A_with_valid_name_and_content.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_for_A_with_valid_name_and_content.yaml new file mode 100644 index 000000000..f3b7aa2d3 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_for_A_with_valid_name_and_content.yaml @@ -0,0 +1,318 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:16 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6792'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['241'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:16 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:16 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?page=1 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:16 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:16 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n\ +
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:17 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10341'] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_for_CNAME_with_valid_name_and_content.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_for_CNAME_with_valid_name_and_content.yaml new file mode 100644 index 000000000..91bb556c7 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_for_CNAME_with_valid_name_and_content.yaml @@ -0,0 +1,510 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:18 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6792'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['241'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:18 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:18 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?page=1 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:18 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:18 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n\ +
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:19 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10339'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:19 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n\ +
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:20 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=93'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10339'] + status: {code: 200, message: OK} +- request: + body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018120960+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0Adocs+3600+IN+CNAME+docs.example.com%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['544'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/dns.php + response: + body: {string: "
Das DNS-Zonefile wurde\ + \ erfolgreich ersetzt
Bitte beachten Sie, dass\ + \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso sollten\ + \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ + \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ + \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:20 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=92'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10240'] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_fqdn_name_and_content.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_fqdn_name_and_content.yaml new file mode 100644 index 000000000..4d179d87c --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_fqdn_name_and_content.yaml @@ -0,0 +1,511 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:22 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6792'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['241'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:22 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:22 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?page=1 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:22 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:22 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:23 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10392'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:23 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:24 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=93'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10393'] + status: {code: 200, message: OK} +- request: + body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018120961+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['600'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/dns.php + response: + body: {string: "
Das DNS-Zonefile wurde\ + \ erfolgreich ersetzt
Bitte beachten Sie, dass\ + \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso sollten\ + \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ + \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ + \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\ + \n\ + \n
\n\ +

\n\n\ +

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:24 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=92'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10298'] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_full_name_and_content.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_full_name_and_content.yaml new file mode 100644 index 000000000..6efa27510 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_full_name_and_content.yaml @@ -0,0 +1,514 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:26 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6792'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['241'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:26 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:26 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?page=1 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:26 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:27 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n\ +

\n\n\ +

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:27 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10458'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:28 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n\ +

\n\n\ +

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:28 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=93'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10458'] + status: {code: 200, message: OK} +- request: + body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018120962+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['657'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/dns.php + response: + body: {string: "
Das DNS-Zonefile wurde\ + \ erfolgreich ersetzt
Bitte beachten Sie, dass\ + \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso sollten\ + \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ + \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ + \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n\ +
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:29 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=92'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10359'] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_valid_name_and_content.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_valid_name_and_content.yaml new file mode 100644 index 000000000..e7ab727f5 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_valid_name_and_content.yaml @@ -0,0 +1,516 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:30 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6792'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['241'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:30 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:31 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?page=1 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:31 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:31 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\ + \n\ + \n
\n\ +

\n\n\ +

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:31 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10524'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:32 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\ + \n\ + \n
\n\ +

\n\n\ +

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:32 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=93'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10524'] + status: {code: 200, message: OK} +- request: + body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018120963+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['713'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/dns.php + response: + body: {string: "
Das DNS-Zonefile wurde\ + \ erfolgreich ersetzt
Bitte beachten Sie, dass\ + \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso sollten\ + \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ + \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ + \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:33 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=92'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10419'] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_multiple_times_should_create_record_set.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_multiple_times_should_create_record_set.yaml new file mode 100644 index 000000000..dd4e30024 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_multiple_times_should_create_record_set.yaml @@ -0,0 +1,714 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:34 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6791'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['240'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:35 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:35 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?page=1 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:35 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:35 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:35 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10588'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:36 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:36 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=93'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10588'] + status: {code: 200, message: OK} +- request: + body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018120964+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['780'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/dns.php + response: + body: {string: "
Das DNS-Zonefile wurde\ + \ erfolgreich ersetzt
Bitte beachten Sie, dass\ + \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso sollten\ + \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ + \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ + \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:37 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=92'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10491'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:38 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=91'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:38 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=90'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10666'] + status: {code: 200, message: OK} +- request: + body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018120964+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['849'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/dns.php + response: + body: {string: "
Das DNS-Zonefile wurde\ + \ erfolgreich ersetzt
Bitte beachten Sie, dass\ + \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso sollten\ + \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ + \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ + \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:39 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=89'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10563'] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_with_duplicate_records_should_be_noop.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_with_duplicate_records_should_be_noop.yaml new file mode 100644 index 000000000..2710c75c9 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_with_duplicate_records_should_be_noop.yaml @@ -0,0 +1,522 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:41 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6791'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['240'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:41 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:41 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?page=1 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:41 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:41 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:41 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10742'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:42 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:42 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=93'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10742'] + status: {code: 200, message: OK} +- request: + body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018120966+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['905'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/dns.php + response: + body: {string: "
Das DNS-Zonefile wurde\ + \ erfolgreich ersetzt
Bitte beachten Sie, dass\ + \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso sollten\ + \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ + \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ + \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n\ +

\n\n\ +

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:43 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=92'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10622'] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_should_remove_record.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_should_remove_record.yaml new file mode 100644 index 000000000..2cbcec755 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_should_remove_record.yaml @@ -0,0 +1,727 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:44 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6790'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['239'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:44 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:45 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?page=1 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:45 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:45 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:45 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10808'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:46 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:46 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=93'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10808'] + status: {code: 200, message: OK} +- request: + body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018120967+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Adelete.testfilt+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['956'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/dns.php + response: + body: {string: "
Das DNS-Zonefile wurde\ + \ erfolgreich ersetzt
Bitte beachten Sie, dass\ + \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso sollten\ + \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ + \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ + \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n\ +
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:47 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=92'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10679'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:48 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=91'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n\ +

\n\n\ +

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:48 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=90'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10869'] + status: {code: 200, message: OK} +- request: + body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018120967+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['903'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/dns.php + response: + body: {string: "
Das DNS-Zonefile wurde\ + \ erfolgreich ersetzt
Bitte beachten Sie, dass\ + \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso sollten\ + \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ + \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ + \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n\ +

\n\n\ +

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:49 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=89'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10623'] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_fqdn_name_should_remove_record.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_fqdn_name_should_remove_record.yaml new file mode 100644 index 000000000..27dc86a0e --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_fqdn_name_should_remove_record.yaml @@ -0,0 +1,727 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:50 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6792'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['241'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:50 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:50 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?page=1 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:50 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:51 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:51 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10808'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:52 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:52 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=93'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10807'] + status: {code: 200, message: OK} +- request: + body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018120969+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Adelete.testfqdn+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['955'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/dns.php + response: + body: {string: "
Das DNS-Zonefile wurde\ + \ erfolgreich ersetzt
Bitte beachten Sie, dass\ + \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso sollten\ + \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ + \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ + \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n\ +
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:53 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=92'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10678'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:53 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=91'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n\ +

\n\n\ +

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:54 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=90'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10868'] + status: {code: 200, message: OK} +- request: + body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018120969+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['903'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/dns.php + response: + body: {string: "
Das DNS-Zonefile wurde\ + \ erfolgreich ersetzt
Bitte beachten Sie, dass\ + \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso sollten\ + \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ + \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ + \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n\ +

\n\n\ +

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:54 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=89'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10623'] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_full_name_should_remove_record.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_full_name_should_remove_record.yaml new file mode 100644 index 000000000..368b05e94 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_full_name_should_remove_record.yaml @@ -0,0 +1,727 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:56 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6792'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['241'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:56 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:56 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?page=1 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:56 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:57 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:57 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10807'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:58 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:58 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=93'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10806'] + status: {code: 200, message: OK} +- request: + body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018120971+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Adelete.testfull+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['955'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/dns.php + response: + body: {string: "
Das DNS-Zonefile wurde\ + \ erfolgreich ersetzt
Bitte beachten Sie, dass\ + \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso sollten\ + \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ + \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ + \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n\ +
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:19:59 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=92'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10677'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:00 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=91'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n\ +

\n\n\ +

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:00 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=90'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10870'] + status: {code: 200, message: OK} +- request: + body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018120971+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['905'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/dns.php + response: + body: {string: "
Das DNS-Zonefile wurde\ + \ erfolgreich ersetzt
Bitte beachten Sie, dass\ + \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso sollten\ + \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ + \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ + \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n\ +

\n\n\ +

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:01 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=89'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10624'] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_by_identifier_should_remove_record.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_by_identifier_should_remove_record.yaml new file mode 100644 index 000000000..779beceeb --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_by_identifier_should_remove_record.yaml @@ -0,0 +1,727 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:02 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6791'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['240'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:02 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:02 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?page=1 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:03 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:03 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:03 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10807'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:04 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:04 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=93'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10808'] + status: {code: 200, message: OK} +- request: + body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018120973+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Adelete.testid+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['954'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/dns.php + response: + body: {string: "
Das DNS-Zonefile wurde\ + \ erfolgreich ersetzt
Bitte beachten Sie, dass\ + \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso sollten\ + \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ + \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ + \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n\ +
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:05 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=92'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10675'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:06 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=91'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n\ +

\n\n\ +

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:06 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=90'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10870'] + status: {code: 200, message: OK} +- request: + body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018120973+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['905'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/dns.php + response: + body: {string: "
Das DNS-Zonefile wurde\ + \ erfolgreich ersetzt
Bitte beachten Sie, dass\ + \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso sollten\ + \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ + \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ + \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n\ +

\n\n\ +

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:07 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=89'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10622'] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_by_content_should_leave_others_untouched.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_by_content_should_leave_others_untouched.yaml new file mode 100644 index 000000000..0cdb54f5c --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_by_content_should_leave_others_untouched.yaml @@ -0,0 +1,933 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:09 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6791'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['240'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:09 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:09 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?page=1 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:09 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:09 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:10 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10808'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:10 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:11 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=93'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10806'] + status: {code: 200, message: OK} +- request: + body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018120975+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['973'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/dns.php + response: + body: {string: "
Das DNS-Zonefile wurde\ + \ erfolgreich ersetzt
Bitte beachten Sie, dass\ + \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso sollten\ + \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ + \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ + \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n\ +

\n\n\ +

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:11 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=92'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10697'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:12 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=91'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:13 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=90'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10886'] + status: {code: 200, message: OK} +- request: + body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018120975+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1044'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/dns.php + response: + body: {string: "
Das DNS-Zonefile wurde\ + \ erfolgreich ersetzt
Bitte beachten Sie, dass\ + \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso sollten\ + \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ + \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ + \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n\ +

\n\n\ +

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:13 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=89'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10772'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:14 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=88'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:14 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=87'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10966'] + status: {code: 200, message: OK} +- request: + body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018120975+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['975'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/dns.php + response: + body: {string: "
Das DNS-Zonefile wurde\ + \ erfolgreich ersetzt
Bitte beachten Sie, dass\ + \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso sollten\ + \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ + \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ + \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n\ +

\n\n\ +

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:15 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=86'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10697'] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_name_remove_all.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_name_remove_all.yaml new file mode 100644 index 000000000..441720047 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_name_remove_all.yaml @@ -0,0 +1,939 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:18 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6791'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['240'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:18 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:18 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?page=1 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:18 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:19 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:19 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10885'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:20 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:20 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=93'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10886'] + status: {code: 200, message: OK} +- request: + body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018120978+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.deleterecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1042'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/dns.php + response: + body: {string: "
Das DNS-Zonefile wurde\ + \ erfolgreich ersetzt
Bitte beachten Sie, dass\ + \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso sollten\ + \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ + \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ + \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n\ +

\n\n\ +

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:21 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=92'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10769'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:21 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=91'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:22 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=90'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10963'] + status: {code: 200, message: OK} +- request: + body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018120978+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.deleterecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1111'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/dns.php + response: + body: {string: "
Das DNS-Zonefile wurde\ + \ erfolgreich ersetzt
Bitte beachten Sie, dass\ + \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso sollten\ + \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ + \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ + \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n\ +

\n\n\ +

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:23 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=89'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10842'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:23 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=88'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n\ +

\n\n\ +

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:24 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=87'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['11039'] + status: {code: 200, message: OK} +- request: + body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018120978+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['974'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/dns.php + response: + body: {string: "
Das DNS-Zonefile wurde\ + \ erfolgreich ersetzt
Bitte beachten Sie, dass\ + \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso sollten\ + \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ + \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ + \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n\ +

\n\n\ +

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:24 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=86'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10697'] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_after_setting_ttl.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_after_setting_ttl.yaml new file mode 100644 index 000000000..f32282f3c --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_after_setting_ttl.yaml @@ -0,0 +1,528 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:26 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6792'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['241'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:26 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:26 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?page=1 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:26 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:26 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:27 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10887'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:28 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:28 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=93'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10885'] + status: {code: 200, message: OK} +- request: + body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018120981+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1019'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/dns.php + response: + body: {string: "
Das DNS-Zonefile wurde\ + \ erfolgreich ersetzt
Bitte beachten Sie, dass\ + \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso sollten\ + \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ + \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ + \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n\ +

\n\n\ +

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:30 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=92'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10747'] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_should_handle_record_sets.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_should_handle_record_sets.yaml new file mode 100644 index 000000000..106df97b6 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_should_handle_record_sets.yaml @@ -0,0 +1,738 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:31 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6790'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['239'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:31 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:31 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?page=1 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:31 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:31 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n\ +

\n\n\ +

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:32 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10949'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:33 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n\ +

\n\n\ +

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:33 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=93'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10949'] + status: {code: 200, message: OK} +- request: + body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018120982+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1084'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/dns.php + response: + body: {string: "
Das DNS-Zonefile wurde\ + \ erfolgreich ersetzt
Bitte beachten Sie, dass\ + \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso sollten\ + \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ + \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ + \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\ + \n

\n\ +
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:34 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=92'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10816'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:34 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=91'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\ + \n

\n\ +
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:35 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=90'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['11024'] + status: {code: 200, message: OK} +- request: + body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018120982+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1151'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/dns.php + response: + body: {string: "
Das DNS-Zonefile wurde\ + \ erfolgreich ersetzt
Bitte beachten Sie, dass\ + \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso sollten\ + \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ + \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ + \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:36 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=89'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10887'] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_with_fqdn_name_filter_should_return_record.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_with_fqdn_name_filter_should_return_record.yaml new file mode 100644 index 000000000..6e3af803d --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_with_fqdn_name_filter_should_return_record.yaml @@ -0,0 +1,536 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:37 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6791'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['240'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:37 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:37 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?page=1 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:37 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:38 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\ + \n

\n\ +
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:38 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['11101'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:39 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\ + \n

\n\ +
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:39 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=93'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['11100'] + status: {code: 200, message: OK} +- request: + body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018120984+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1202'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/dns.php + response: + body: {string: "
Das DNS-Zonefile wurde\ + \ erfolgreich ersetzt
Bitte beachten Sie, dass\ + \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso sollten\ + \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ + \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ + \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n\ +

\n\n\ +

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:40 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=92'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10942'] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_with_full_name_filter_should_return_record.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_with_full_name_filter_should_return_record.yaml new file mode 100644 index 000000000..d4bbd0eb8 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_with_full_name_filter_should_return_record.yaml @@ -0,0 +1,537 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:41 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6791'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['240'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:41 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:41 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?page=1 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:41 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:42 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:42 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['11164'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:43 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:43 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=93'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['11164'] + status: {code: 200, message: OK} +- request: + body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018120985+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1254'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/dns.php + response: + body: {string: "
Das DNS-Zonefile wurde\ + \ erfolgreich ersetzt
Bitte beachten Sie, dass\ + \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso sollten\ + \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ + \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ + \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\ + \n

\n\ +
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:44 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=92'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10997'] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_with_invalid_filter_should_be_empty_list.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_with_invalid_filter_should_be_empty_list.yaml new file mode 100644 index 000000000..92b403bd0 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_with_invalid_filter_should_be_empty_list.yaml @@ -0,0 +1,328 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:45 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6791'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['240'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:45 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:46 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?page=1 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:46 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:46 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:46 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['11225'] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_with_name_filter_should_return_record.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_with_name_filter_should_return_record.yaml new file mode 100644 index 000000000..06013f0aa --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_with_name_filter_should_return_record.yaml @@ -0,0 +1,539 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:48 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6792'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['241'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:48 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:48 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?page=1 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:48 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:48 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:49 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['11225'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:49 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:50 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=93'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['11226'] + status: {code: 200, message: OK} +- request: + body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018120986+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1301'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/dns.php + response: + body: {string: "
Das DNS-Zonefile wurde\ + \ erfolgreich ersetzt
Bitte beachten Sie, dass\ + \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso sollten\ + \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ + \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ + \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:50 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=92'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['11045'] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_with_no_arguments_should_list_all.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_with_no_arguments_should_list_all.yaml new file mode 100644 index 000000000..a7e32c0f9 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_with_no_arguments_should_list_all.yaml @@ -0,0 +1,329 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:52 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6791'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['240'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:52 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:52 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?page=1 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:52 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:52 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n\ +

\n\n\ +

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:53 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['11288'] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_update_record_should_modify_record.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_update_record_should_modify_record.yaml new file mode 100644 index 000000000..8dc56070a --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_update_record_should_modify_record.yaml @@ -0,0 +1,756 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:54 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6792'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['241'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:54 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:54 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?page=1 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:55 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:55 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n\ +

\n\n\ +

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:55 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['11289'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:56 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n\ +

\n\n\ +

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:56 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=93'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['11290'] + status: {code: 200, message: OK} +- request: + body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018120987+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Aorig.test+3600+IN+TXT+%22challengetoken%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1346'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/dns.php + response: + body: {string: "
Das DNS-Zonefile wurde\ + \ erfolgreich ersetzt
Bitte beachten Sie, dass\ + \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso sollten\ + \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ + \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ + \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\ + \n\ + \n
\n\ +

\n\n\ +

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:57 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=92'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['11096'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:58 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=91'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\ + \n

\n\ +
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:58 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=90'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['11352'] + status: {code: 200, message: OK} +- request: + body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018120987+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1349'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/dns.php + response: + body: {string: "
Das DNS-Zonefile wurde\ + \ erfolgreich ersetzt
Bitte beachten Sie, dass\ + \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso sollten\ + \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ + \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ + \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\ + \n\ + \n
\n\ +

\n\n\ +

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:20:59 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=89'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['11100'] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_update_record_should_modify_record_name_specified.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_update_record_should_modify_record_name_specified.yaml new file mode 100644 index 000000000..a898d4325 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_update_record_should_modify_record_name_specified.yaml @@ -0,0 +1,759 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:21:00 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6791'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['240'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:21:00 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:21:00 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?page=1 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:21:01 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:21:01 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\ + \n

\n\ +
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:21:01 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['11351'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:21:02 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\ + \n

\n\ +
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:21:02 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=93'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['11351'] + status: {code: 200, message: OK} +- request: + body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018120989+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Aorig.nameonly.test+3600+IN+TXT+%22challengetoken%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1402'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/dns.php + response: + body: {string: "
Das DNS-Zonefile wurde\ + \ erfolgreich ersetzt
Bitte beachten Sie, dass\ + \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso sollten\ + \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ + \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ + \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n\ +
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:21:03 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=92'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['11158'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:21:04 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=91'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:21:04 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=90'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['11415'] + status: {code: 200, message: OK} +- request: + body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018120989+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Aorig.nameonly.test+3600+IN+TXT+%22updated%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1395'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/dns.php + response: + body: {string: "
Das DNS-Zonefile wurde\ + \ erfolgreich ersetzt
Bitte beachten Sie, dass\ + \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso sollten\ + \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ + \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ + \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:21:05 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=89'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['11151'] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_update_record_with_fqdn_name_should_modify_record.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_update_record_with_fqdn_name_should_modify_record.yaml new file mode 100644 index 000000000..b33f37029 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_update_record_with_fqdn_name_should_modify_record.yaml @@ -0,0 +1,761 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:21:06 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6791'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['240'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:21:06 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:21:06 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?page=1 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:21:06 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:21:06 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:21:07 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['11408'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:21:08 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:21:08 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=93'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['11408'] + status: {code: 200, message: OK} +- request: + body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018120991+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Aorig.nameonly.test+3600+IN+TXT+%22updated%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.test+3600+IN+TXT+%22challengetoken%22%0Aorig.testfqdn+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1445'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/dns.php + response: + body: {string: "
Das DNS-Zonefile wurde\ + \ erfolgreich ersetzt
Bitte beachten Sie, dass\ + \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso sollten\ + \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ + \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ + \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n\ +

\n\n\ +

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:21:09 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=92'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['11203'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:21:09 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=91'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n\ +

\n\n\ +

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:21:10 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=90'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['11472'] + status: {code: 200, message: OK} +- request: + body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018120991+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Aorig.nameonly.test+3600+IN+TXT+%22updated%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.testfqdn+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1448'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/dns.php + response: + body: {string: "
Das DNS-Zonefile wurde\ + \ erfolgreich ersetzt
Bitte beachten Sie, dass\ + \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso sollten\ + \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ + \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ + \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n\ +

\n\n\ +

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:21:10 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=89'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['11206'] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_update_record_with_full_name_should_modify_record.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_update_record_with_full_name_should_modify_record.yaml new file mode 100644 index 000000000..2687e27b2 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_update_record_with_full_name_should_modify_record.yaml @@ -0,0 +1,766 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:21:12 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6791'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['240'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:21:12 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:21:12 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?page=1 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:21:12 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6147'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:21:13 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n\ +

\n\n\ +

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:21:13 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['11470'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:21:14 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n\ +

\n\n\ +

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:21:14 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=93'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['11472'] + status: {code: 200, message: OK} +- request: + body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018120993+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Aorig.nameonly.test+3600+IN+TXT+%22updated%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.testfqdn+3600+IN+TXT+%22challengetoken%22%0Aorig.testfull+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1497'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/dns.php + response: + body: {string: "
Das DNS-Zonefile wurde\ + \ erfolgreich ersetzt
Bitte beachten Sie, dass\ + \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso sollten\ + \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ + \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ + \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n\ +
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:21:15 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=92'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['11260'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:21:15 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=91'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9688'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\ + \n

\n\ +
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:21:16 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=90'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['11535'] + status: {code: 200, message: OK} +- request: + body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018120993+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Aorig.nameonly.test+3600+IN+TXT+%22updated%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.testfqdn+3600+IN+TXT+%22challengetoken%22%0Aupdated.testfull+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1500'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/dns.php + response: + body: {string: "
Das DNS-Zonefile wurde\ + \ erfolgreich ersetzt
Bitte beachten Sie, dass\ + \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso sollten\ + \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ + \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ + \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n\ +
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:21:16 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=89'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['11261'] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_authenticate.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_authenticate.yaml new file mode 100644 index 000000000..461371ef8 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_authenticate.yaml @@ -0,0 +1,431 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:00:35 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:00:36 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:00:36 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:00:36 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:00:37 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=aeeb07db4762523de18a9799a99c1fbe'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=aeeb07db4762523de18a9799a99c1fbe + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Sat, 08 Dec 2018 15:00:37 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=5b5cd21ecfbd242b21671ce968afae15aafacf50&state=aeeb07db4762523de18a9799a99c1fbe'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=5b5cd21ecfbd242b21671ce968afae15aafacf50&state=aeeb07db4762523de18a9799a99c1fbe + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:00:37 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/index/page/1'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: "
\n
\n
\n
\n
\n\ +
\n\n
\n\n\n\n7\n\ + \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

\n\n\n\n\n\n
7
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:00:37 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n\ + \
\n
\n
\n\n\ +
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:00:38 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_authenticate_with_unmanaged_domain_should_fail.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_authenticate_with_unmanaged_domain_should_fail.yaml similarity index 77% rename from tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_authenticate_with_unmanaged_domain_should_fail.yaml rename to tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_authenticate_with_unmanaged_domain_should_fail.yaml index b02e7047a..9bc6db32f 100644 --- a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_authenticate_with_unmanaged_domain_should_fail.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_authenticate_with_unmanaged_domain_should_fail.yaml @@ -9,12 +9,50 @@ interactions: method: GET uri: https://accounts.hetzner.com/login response: - body: {string: None} + body: {string: ''} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:45:04 GMT'] + Date: ['Sat, 08 Dec 2018 15:00:39 GMT'] Keep-Alive: ['timeout=15, max=100'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] @@ -39,7 +77,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:45:05 GMT'] + Date: ['Sat, 08 Dec 2018 15:00:39 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] Server: [Apache] @@ -63,7 +101,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:45:05 GMT'] + Date: ['Sat, 08 Dec 2018 15:00:39 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] Server: [Apache] @@ -87,7 +125,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:45:05 GMT'] + Date: ['Sat, 08 Dec 2018 15:00:40 GMT'] Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] @@ -103,15 +141,15 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/ + uri: https://robot.your-server.de/dns/index/page/1 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:45:06 GMT'] + Date: ['Sat, 08 Dec 2018 15:00:40 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=32a80acc637f75d7b4aa6c3ec3f48386'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=fa322c12fc39ab6c7d6bdd0478b18e87'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -123,16 +161,16 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=32a80acc637f75d7b4aa6c3ec3f48386 + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=fa322c12fc39ab6c7d6bdd0478b18e87 response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Tue, 04 Dec 2018 16:45:06 GMT'] + Date: ['Sat, 08 Dec 2018 15:00:40 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=5b123d62b5d66f92e0f7b3884dceb63305c455e8&state=32a80acc637f75d7b4aa6c3ec3f48386'] + Location: ['https://robot.your-server.de/login/check?code=f4c3da888c7d6bf065f4b3e132b4eff0c637c9b3&state=fa322c12fc39ab6c7d6bdd0478b18e87'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,97 +185,18 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=5b123d62b5d66f92e0f7b3884dceb63305c455e8&state=32a80acc637f75d7b4aa6c3ec3f48386 + uri: https://robot.your-server.de/login/check?code=f4c3da888c7d6bf065f4b3e132b4eff0c637c9b3&state=fa322c12fc39ab6c7d6bdd0478b18e87 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:45:06 GMT'] + Date: ['Sat, 08 Dec 2018 15:00:41 GMT'] Keep-Alive: ['timeout=15, max=99'] - Location: ['https://robot.your-server.de/'] + Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/ - response: - body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ - \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ - \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ -
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ - \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ - \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ - \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ - \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ - \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ - \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ - \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ - \n
\n
\n
\n
\n
\n\ -
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ - "} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:45:07 GMT'] - Keep-Alive: ['timeout=15, max=98'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} - request: body: null headers: @@ -275,7 +234,7 @@ interactions: \ parent.location='/dns/scheduled'\" type=\"button\" value=\"K\xFCndigungsvormerkungen\"\ />\n8\n\ + >7\n\ \n\n
\n\n\ + >7\n\ \n

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

\n\n
bettilaila.de
\n\n\n\n\n\n
8
\n\n
7
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ \ Preise inkl. 19 % USt
\n
Impressum\ @@ -434,8 +376,8 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:45:07 GMT'] - Keep-Alive: ['timeout=15, max=97'] + Date: ['Sat, 08 Dec 2018 15:00:41 GMT'] + Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} @@ -476,7 +418,7 @@ interactions: \ parent.location='/dns/scheduled'\" type=\"button\" value=\"K\xFCndigungsvormerkungen\"\ />
8
\n
\n\n\n\ + \n

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

\n\n
bettilaila.de
\n\n\n\n\n\n
8
\n\n
7
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ \ Preise inkl. 19 % USt
\n
Impressum\ @@ -635,8 +560,8 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:45:07 GMT'] - Keep-Alive: ['timeout=15, max=96'] + Date: ['Sat, 08 Dec 2018 15:00:42 GMT'] + Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} diff --git a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_for_A_with_valid_name_and_content.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_for_A_with_valid_name_and_content.yaml new file mode 100644 index 000000000..c90fbd143 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_for_A_with_valid_name_and_content.yaml @@ -0,0 +1,431 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:00:43 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:00:43 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:00:43 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:00:43 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:00:44 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=47a832590b280344018c026bd76552d2'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=47a832590b280344018c026bd76552d2 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Sat, 08 Dec 2018 15:00:44 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=0bace48c439c9d80d71987f9ee511e651a6cd887&state=47a832590b280344018c026bd76552d2'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=0bace48c439c9d80d71987f9ee511e651a6cd887&state=47a832590b280344018c026bd76552d2 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:00:45 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/index/page/1'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: "
\n
\n
\n
\n
\n\ +
\n\n
\n\n
7
\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

\n\n\n\n\n\n
7
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:00:45 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n\ + \
\n
\n
\n\n\ +
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:00:46 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_authenticate.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_for_CNAME_with_valid_name_and_content.yaml similarity index 76% rename from tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_authenticate.yaml rename to tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_for_CNAME_with_valid_name_and_content.yaml index f31882da1..f1b0390bd 100644 --- a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_authenticate.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_for_CNAME_with_valid_name_and_content.yaml @@ -9,12 +9,50 @@ interactions: method: GET uri: https://accounts.hetzner.com/login response: - body: {string: None} + body: {string: ''} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:45:01 GMT'] + Date: ['Sat, 08 Dec 2018 15:00:47 GMT'] Keep-Alive: ['timeout=15, max=100'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] @@ -39,7 +77,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:45:01 GMT'] + Date: ['Sat, 08 Dec 2018 15:00:47 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] Server: [Apache] @@ -63,7 +101,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:45:02 GMT'] + Date: ['Sat, 08 Dec 2018 15:00:47 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] Server: [Apache] @@ -87,7 +125,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:45:02 GMT'] + Date: ['Sat, 08 Dec 2018 15:00:47 GMT'] Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] @@ -103,15 +141,15 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/ + uri: https://robot.your-server.de/dns/index/page/1 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:45:02 GMT'] + Date: ['Sat, 08 Dec 2018 15:00:48 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=05e16df04c4ca2c3f4f46e80582e33e6'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=03a3a7e006ef925cf9cf5d79d3c85703'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -123,16 +161,16 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=05e16df04c4ca2c3f4f46e80582e33e6 + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=03a3a7e006ef925cf9cf5d79d3c85703 response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Tue, 04 Dec 2018 16:45:03 GMT'] + Date: ['Sat, 08 Dec 2018 15:00:48 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=01bcdbbb13b751a853d0d772819095d500aab3c8&state=05e16df04c4ca2c3f4f46e80582e33e6'] + Location: ['https://robot.your-server.de/login/check?code=8fada7cb1fd927dce8c48fa1dbacb03736b9ee66&state=03a3a7e006ef925cf9cf5d79d3c85703'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,97 +185,18 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=01bcdbbb13b751a853d0d772819095d500aab3c8&state=05e16df04c4ca2c3f4f46e80582e33e6 + uri: https://robot.your-server.de/login/check?code=8fada7cb1fd927dce8c48fa1dbacb03736b9ee66&state=03a3a7e006ef925cf9cf5d79d3c85703 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:45:03 GMT'] + Date: ['Sat, 08 Dec 2018 15:00:48 GMT'] Keep-Alive: ['timeout=15, max=99'] - Location: ['https://robot.your-server.de/'] + Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/ - response: - body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ - \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ - \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ -
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ - \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ - \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ - \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ - \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ - \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ - \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ - \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ - \n
\n
\n
\n
\n
\n\ -
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ - "} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:45:03 GMT'] - Keep-Alive: ['timeout=15, max=98'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} - request: body: null headers: @@ -275,7 +234,7 @@ interactions: \ parent.location='/dns/scheduled'\" type=\"button\" value=\"K\xFCndigungsvormerkungen\"\ />\n8\n\ + >7\n\ \n\n
\n\n\n\n\n\n\n\n\n

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

\n\n
bettilaila.de
\n\n\n\n\n\n
8
\n\n
7
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ \ Preise inkl. 19 % USt
\n
Impressum\ @@ -434,7 +376,54 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:45:03 GMT'] + Date: ['Sat, 08 Dec 2018 15:00:49 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n\ + \
\n
\n
\n\n\ +
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:00:49 GMT'] Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Transfer-Encoding: [chunked] @@ -457,7 +446,7 @@ interactions: 2\">\n
\n* \n\ \
\n
\n
\n\n\
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ @@ -481,9 +470,30 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:45:04 GMT'] + Date: ['Sat, 08 Dec 2018 15:00:50 GMT'] Keep-Alive: ['timeout=15, max=96'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120993+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0Adocs+3600+IN+CNAME+docs.example.com%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['388'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:00:50 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_for_A_with_valid_name_and_content.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_fqdn_name_and_content.yaml similarity index 74% rename from tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_for_A_with_valid_name_and_content.yaml rename to tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_fqdn_name_and_content.yaml index 692b84720..337065e88 100644 --- a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_for_A_with_valid_name_and_content.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_fqdn_name_and_content.yaml @@ -9,12 +9,50 @@ interactions: method: GET uri: https://accounts.hetzner.com/login response: - body: {string: None} + body: {string: ''} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:45:09 GMT'] + Date: ['Sat, 08 Dec 2018 15:01:19 GMT'] Keep-Alive: ['timeout=15, max=100'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] @@ -39,7 +77,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:45:09 GMT'] + Date: ['Sat, 08 Dec 2018 15:01:19 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] Server: [Apache] @@ -63,7 +101,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:45:09 GMT'] + Date: ['Sat, 08 Dec 2018 15:01:19 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] Server: [Apache] @@ -87,7 +125,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:45:09 GMT'] + Date: ['Sat, 08 Dec 2018 15:01:20 GMT'] Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] @@ -103,15 +141,15 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/ + uri: https://robot.your-server.de/dns/index/page/1 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:45:10 GMT'] + Date: ['Sat, 08 Dec 2018 15:01:20 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=7cd4637d3c08cec7ec06e2081c0b8da0'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=14dda14733ac5aea40b2abac28755fd8'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -123,16 +161,16 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=7cd4637d3c08cec7ec06e2081c0b8da0 + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=14dda14733ac5aea40b2abac28755fd8 response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Tue, 04 Dec 2018 16:45:10 GMT'] + Date: ['Sat, 08 Dec 2018 15:01:20 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=cf9ee02349ac2500fae19b82a299907d9c6af5bd&state=7cd4637d3c08cec7ec06e2081c0b8da0'] + Location: ['https://robot.your-server.de/login/check?code=7cb88df4ea9b8fb055afc81608a270b09a875642&state=14dda14733ac5aea40b2abac28755fd8'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,97 +185,18 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=cf9ee02349ac2500fae19b82a299907d9c6af5bd&state=7cd4637d3c08cec7ec06e2081c0b8da0 + uri: https://robot.your-server.de/login/check?code=7cb88df4ea9b8fb055afc81608a270b09a875642&state=14dda14733ac5aea40b2abac28755fd8 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:45:10 GMT'] + Date: ['Sat, 08 Dec 2018 15:01:21 GMT'] Keep-Alive: ['timeout=15, max=99'] - Location: ['https://robot.your-server.de/'] + Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/ - response: - body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ - \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ - \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ -
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ - \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ - \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ - \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ - \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ - \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ - \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ - \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ -
\n
\n
\n
\n
\n
\n\ -
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ - "} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:45:11 GMT'] - Keep-Alive: ['timeout=15, max=98'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} - request: body: null headers: @@ -275,7 +234,7 @@ interactions: \ parent.location='/dns/scheduled'\" type=\"button\" value=\"K\xFCndigungsvormerkungen\"\ />\n8\n\ + >7\n\ \n\n
\n\n\n\n\n\n\n\n\n

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

\n\n
bettilaila.de
\n\n\n\n\n\n
8
\n\n
7
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ \ Preise inkl. 19 % USt
\n
Impressum\ @@ -434,7 +376,55 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:45:11 GMT'] + Date: ['Sat, 08 Dec 2018 15:01:21 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\ + \n\n\ + \n
\n
\n* \n
\n
\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:01:22 GMT'] Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Transfer-Encoding: [chunked] @@ -457,19 +447,20 @@ interactions: 2\">\n
\n* \n\ - \
\n
\n
\n\n\ -
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ - \ Preise inkl. 19 % USt
\n \n\n\ + \n\n \n\ + \n\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\n
Impressum\ \ |\n Datenschutz\ @@ -481,9 +472,30 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:45:11 GMT'] + Date: ['Sat, 08 Dec 2018 15:01:22 GMT'] Keep-Alive: ['timeout=15, max=96'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120994+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['444'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:01:22 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_full_name_and_content.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_full_name_and_content.yaml new file mode 100644 index 000000000..02035fcc4 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_full_name_and_content.yaml @@ -0,0 +1,503 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:01:51 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:01:52 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:01:52 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:01:52 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:01:53 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=367dd670813de9f9108c0984d6defaeb'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=367dd670813de9f9108c0984d6defaeb + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Sat, 08 Dec 2018 15:01:53 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=40455adb3bd9910e0a17b1e128f500e0ce4ab47a&state=367dd670813de9f9108c0984d6defaeb'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=40455adb3bd9910e0a17b1e128f500e0ce4ab47a&state=367dd670813de9f9108c0984d6defaeb + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:01:53 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/index/page/1'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: "
\n
\n
\n
\n
\n\ +
\n\n
\n\n\n\n7\n\ + \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

\n\n\n\n\n\n
7
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:01:54 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:01:54 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:01:54 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120995+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['500'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:01:54 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_valid_name_and_content.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_valid_name_and_content.yaml new file mode 100644 index 000000000..eb321c6eb --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_valid_name_and_content.yaml @@ -0,0 +1,505 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:02:23 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:02:24 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:02:24 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:02:24 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:02:25 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=50b4b694995b2254c946ff1c00c75883'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=50b4b694995b2254c946ff1c00c75883 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Sat, 08 Dec 2018 15:02:25 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=3241c192857f655d0aa2592e90365d8ccb469478&state=50b4b694995b2254c946ff1c00c75883'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=3241c192857f655d0aa2592e90365d8ccb469478&state=50b4b694995b2254c946ff1c00c75883 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:02:25 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/index/page/1'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: "
\n
\n
\n
\n
\n\ +
\n\n
\n\n\n\n7\n\ + \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

\n\n\n\n\n\n
7
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:02:26 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n \n\n
\n
\n* \n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:02:26 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n \n\n
\n
\n* \n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:02:26 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120996+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['556'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:02:27 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_fqdn_name_and_content.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_multiple_times_should_create_record_set.yaml similarity index 72% rename from tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_fqdn_name_and_content.yaml rename to tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_multiple_times_should_create_record_set.yaml index cd9d2d11a..97d8167d1 100644 --- a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_fqdn_name_and_content.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_multiple_times_should_create_record_set.yaml @@ -9,12 +9,50 @@ interactions: method: GET uri: https://accounts.hetzner.com/login response: - body: {string: None} + body: {string: ''} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:45:47 GMT'] + Date: ['Sat, 08 Dec 2018 15:02:56 GMT'] Keep-Alive: ['timeout=15, max=100'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] @@ -39,7 +77,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:45:47 GMT'] + Date: ['Sat, 08 Dec 2018 15:02:56 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] Server: [Apache] @@ -63,7 +101,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:45:48 GMT'] + Date: ['Sat, 08 Dec 2018 15:02:56 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] Server: [Apache] @@ -87,7 +125,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:45:48 GMT'] + Date: ['Sat, 08 Dec 2018 15:02:57 GMT'] Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] @@ -103,15 +141,15 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/ + uri: https://robot.your-server.de/dns/index/page/1 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:45:48 GMT'] + Date: ['Sat, 08 Dec 2018 15:02:57 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=b10bb74cb778e1e4ecea24e19b41bb70'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=eaf184c049eae2535aa1cc0fd8cd5a34'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -123,16 +161,16 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=b10bb74cb778e1e4ecea24e19b41bb70 + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=eaf184c049eae2535aa1cc0fd8cd5a34 response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Tue, 04 Dec 2018 16:45:48 GMT'] + Date: ['Sat, 08 Dec 2018 15:02:57 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=fc13851da8233ec607bce30a45d92713b041ca3f&state=b10bb74cb778e1e4ecea24e19b41bb70'] + Location: ['https://robot.your-server.de/login/check?code=221e68e40935f61dbacbf5e9ba1ed7c363f6ef1b&state=eaf184c049eae2535aa1cc0fd8cd5a34'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,97 +185,18 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=fc13851da8233ec607bce30a45d92713b041ca3f&state=b10bb74cb778e1e4ecea24e19b41bb70 + uri: https://robot.your-server.de/login/check?code=221e68e40935f61dbacbf5e9ba1ed7c363f6ef1b&state=eaf184c049eae2535aa1cc0fd8cd5a34 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:45:49 GMT'] + Date: ['Sat, 08 Dec 2018 15:02:58 GMT'] Keep-Alive: ['timeout=15, max=99'] - Location: ['https://robot.your-server.de/'] + Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/ - response: - body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ - \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ - \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ -
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ - \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ - \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ - \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ - \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ - \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ - \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ - \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ -
\n
\n
\n
\n
\n
\n\ -
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ - "} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:45:49 GMT'] - Keep-Alive: ['timeout=15, max=98'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} - request: body: null headers: @@ -275,7 +234,7 @@ interactions: \ parent.location='/dns/scheduled'\" type=\"button\" value=\"K\xFCndigungsvormerkungen\"\ />\n8\n\ + >7\n\ \n\n
\n\n\n\n\n\n\ - \n\n\ - \n

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

\n\n
bettilaila.de
\n\n\n\n\n\n
8
\n\n
7
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ \ Preise inkl. 19 % USt
\n
Impressum\ @@ -434,7 +376,57 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:45:50 GMT'] + Date: ['Sat, 08 Dec 2018 15:02:58 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n
\n\n\ +
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:02:59 GMT'] Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Transfer-Encoding: [chunked] @@ -457,20 +449,22 @@ interactions: 2\">\n
\n* \n
\n
\n
\n\n
\n\ - \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ - \ inkl. 19 % USt
\n \n\n\n\n \n\n\n
\n\n\ +
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\n
Impressum\ \ |\n Datenschutz\ @@ -482,11 +476,32 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:45:50 GMT'] + Date: ['Sat, 08 Dec 2018 15:02:59 GMT'] Keep-Alive: ['timeout=15, max=96'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120997+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['624'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:02:59 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} - request: body: null headers: @@ -495,22 +510,33 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/preferences/culture + uri: https://robot.your-server.de/dns/update/id/556218 response: body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ -
\n\n\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\n
Impressum\ \ |\n Datenschutz\ @@ -522,32 +548,29 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:45:50 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Date: ['Sat, 08 Dec 2018 15:03:29 GMT'] + Keep-Alive: ['timeout=15, max=100'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120640+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A&_csrf_token=47f477ba48c6ced896e86e04901f7d4c + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120997+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] Connection: [keep-alive] - Content-Length: ['444'] + Content-Length: ['692'] Content-Type: [application/x-www-form-urlencoded] User-Agent: [python-requests/2.20.1] method: POST uri: https://robot.your-server.de/dns/update response: - body: {string: "

Vielen Dank\ - \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ - \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ - \ einsehen.

"} + body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:45:50 GMT'] - Keep-Alive: ['timeout=15, max=94'] + Date: ['Sat, 08 Dec 2018 15:03:29 GMT'] + Keep-Alive: ['timeout=15, max=99'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} diff --git a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_with_duplicate_records_should_be_noop.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_with_duplicate_records_should_be_noop.yaml new file mode 100644 index 000000000..b1acf841b --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_with_duplicate_records_should_be_noop.yaml @@ -0,0 +1,509 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:03:58 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:03:58 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:03:59 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:03:59 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:03:59 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=7026d123d097b35f62130f73699db936'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=7026d123d097b35f62130f73699db936 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Sat, 08 Dec 2018 15:04:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=5c71967d7c93161de93eaf291e776f382b1e38f4&state=7026d123d097b35f62130f73699db936'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=5c71967d7c93161de93eaf291e776f382b1e38f4&state=7026d123d097b35f62130f73699db936 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:04:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/index/page/1'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: "
\n
\n
\n
\n
\n\ +
\n\n
\n\n\n\n7\n\ + \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

\n\n\n\n\n\n
7
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:04:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\ + \n\n\n\ + \n
\n
\n* \n
\n
\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:04:01 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\ + \n\n\n\ + \n
\n
\n* \n
\n
\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:04:01 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120999+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['748'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:04:01 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_after_setting_ttl.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_should_remove_record.yaml similarity index 73% rename from tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_after_setting_ttl.yaml rename to tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_should_remove_record.yaml index c795929d1..6bcaddfed 100644 --- a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_after_setting_ttl.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_should_remove_record.yaml @@ -9,12 +9,50 @@ interactions: method: GET uri: https://accounts.hetzner.com/login response: - body: {string: None} + body: {string: ''} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:56:57 GMT'] + Date: ['Sat, 08 Dec 2018 15:04:30 GMT'] Keep-Alive: ['timeout=15, max=100'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] @@ -39,7 +77,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:56:57 GMT'] + Date: ['Sat, 08 Dec 2018 15:04:30 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] Server: [Apache] @@ -63,7 +101,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:56:57 GMT'] + Date: ['Sat, 08 Dec 2018 15:04:31 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] Server: [Apache] @@ -87,7 +125,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:56:57 GMT'] + Date: ['Sat, 08 Dec 2018 15:04:31 GMT'] Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] @@ -103,15 +141,15 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/ + uri: https://robot.your-server.de/dns/index/page/1 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:56:58 GMT'] + Date: ['Sat, 08 Dec 2018 15:04:32 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=18aaf1e7d94916d2f778bdc68dcb1b7f'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=3af83f2160f51a19e662313df10562c9'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -123,16 +161,16 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=18aaf1e7d94916d2f778bdc68dcb1b7f + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=3af83f2160f51a19e662313df10562c9 response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Tue, 04 Dec 2018 16:56:58 GMT'] + Date: ['Sat, 08 Dec 2018 15:04:32 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=c905ad7d3b3177ce9ceacb031889c1e8b6de6848&state=18aaf1e7d94916d2f778bdc68dcb1b7f'] + Location: ['https://robot.your-server.de/login/check?code=60ae30c38406fa63042b0d9bb007a4fc0167ab94&state=3af83f2160f51a19e662313df10562c9'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,97 +185,18 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=c905ad7d3b3177ce9ceacb031889c1e8b6de6848&state=18aaf1e7d94916d2f778bdc68dcb1b7f + uri: https://robot.your-server.de/login/check?code=60ae30c38406fa63042b0d9bb007a4fc0167ab94&state=3af83f2160f51a19e662313df10562c9 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:56:58 GMT'] + Date: ['Sat, 08 Dec 2018 15:04:32 GMT'] Keep-Alive: ['timeout=15, max=99'] - Location: ['https://robot.your-server.de/'] + Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/ - response: - body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ - \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ - \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ -
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ - \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ - \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ - \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ - \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ - \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ - \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ - \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ -
\n
\n
\n
\n
\n
\n\ -
\n
\n
\n
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ - "} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:56:59 GMT'] - Keep-Alive: ['timeout=15, max=98'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} - request: body: null headers: @@ -275,7 +234,7 @@ interactions: \ parent.location='/dns/scheduled'\" type=\"button\" value=\"K\xFCndigungsvormerkungen\"\ />\n8\n\ + >7\n\ \n\n
\n\n\n\n\n\n\n\n\ \n

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

\n\n
bettilaila.de
\n\n\n\n\n\n
8
\n\n
7
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ \ Preise inkl. 19 % USt
\n
Impressum\ @@ -434,7 +376,60 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:56:59 GMT'] + Date: ['Sat, 08 Dec 2018 15:04:33 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ + \n
\n
\n* \n
\n
\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:04:33 GMT'] Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Transfer-Encoding: [chunked] @@ -457,7 +452,7 @@ interactions: 2\">\n
\n* \n
\n
\n
\n\n
\n\ \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ @@ -488,11 +482,32 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:56:59 GMT'] + Date: ['Sat, 08 Dec 2018 15:04:33 GMT'] Keep-Alive: ['timeout=15, max=96'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121000+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Adelete.testfilt+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['799'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:04:34 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} - request: body: null headers: @@ -501,19 +516,33 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/preferences/culture + uri: https://robot.your-server.de/dns/update/id/556218 response: body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ + centerpadding\">\n \n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n\
\n\n
\n \xA9 2018 Hetzner\ \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ \
\n

Vielen Dank\ - \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ - \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ - \ einsehen.

"} + body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:57:00 GMT'] - Keep-Alive: ['timeout=15, max=94'] + Date: ['Sat, 08 Dec 2018 15:05:03 GMT'] + Keep-Alive: ['timeout=15, max=99'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} diff --git a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_fqdn_name_should_remove_record.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_fqdn_name_should_remove_record.yaml new file mode 100644 index 000000000..50a1d13e1 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_fqdn_name_should_remove_record.yaml @@ -0,0 +1,586 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:05:32 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:05:32 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:05:33 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:05:33 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:05:34 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=ef19804d15ac2dd27efe66ab9ba00e82'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=ef19804d15ac2dd27efe66ab9ba00e82 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Sat, 08 Dec 2018 15:05:34 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=b1b30425f8bee69778dbc842985c721dfd83ae0c&state=ef19804d15ac2dd27efe66ab9ba00e82'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=b1b30425f8bee69778dbc842985c721dfd83ae0c&state=ef19804d15ac2dd27efe66ab9ba00e82 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:05:34 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/index/page/1'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: "
\n
\n
\n
\n
\n\ +
\n\n
\n\n\n\n7\n\ + \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

\n\n\n\n\n\n
7
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:05:35 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ + \n
\n
\n* \n
\n
\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:05:35 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ + \n
\n
\n* \n
\n
\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:05:35 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121002+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Adelete.testfqdn+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['799'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:05:36 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:06:05 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121002+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['748'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:06:05 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_with_duplicate_records_should_be_noop.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_full_name_should_remove_record.yaml similarity index 74% rename from tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_with_duplicate_records_should_be_noop.yaml rename to tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_full_name_should_remove_record.yaml index e71de9ecc..5755d46f7 100644 --- a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_with_duplicate_records_should_be_noop.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_full_name_should_remove_record.yaml @@ -9,12 +9,50 @@ interactions: method: GET uri: https://accounts.hetzner.com/login response: - body: {string: None} + body: {string: ''} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:48:38 GMT'] + Date: ['Sat, 08 Dec 2018 15:06:34 GMT'] Keep-Alive: ['timeout=15, max=100'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] @@ -39,7 +77,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:48:38 GMT'] + Date: ['Sat, 08 Dec 2018 15:06:35 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] Server: [Apache] @@ -63,7 +101,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:48:38 GMT'] + Date: ['Sat, 08 Dec 2018 15:06:35 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] Server: [Apache] @@ -87,7 +125,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:48:38 GMT'] + Date: ['Sat, 08 Dec 2018 15:06:35 GMT'] Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] @@ -103,15 +141,15 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/ + uri: https://robot.your-server.de/dns/index/page/1 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:48:39 GMT'] + Date: ['Sat, 08 Dec 2018 15:06:36 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=ff35deb416da31b587152177fc2061dc'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=7e99fa61f635ca0c6c045906a527f73e'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -123,16 +161,16 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=ff35deb416da31b587152177fc2061dc + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=7e99fa61f635ca0c6c045906a527f73e response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Tue, 04 Dec 2018 16:48:39 GMT'] + Date: ['Sat, 08 Dec 2018 15:06:36 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=e2e2f14da65885769f841591cc0cc4f20533e712&state=ff35deb416da31b587152177fc2061dc'] + Location: ['https://robot.your-server.de/login/check?code=39de1f7485c600c8a63ea01c58c83d506587a367&state=7e99fa61f635ca0c6c045906a527f73e'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,97 +185,18 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=e2e2f14da65885769f841591cc0cc4f20533e712&state=ff35deb416da31b587152177fc2061dc + uri: https://robot.your-server.de/login/check?code=39de1f7485c600c8a63ea01c58c83d506587a367&state=7e99fa61f635ca0c6c045906a527f73e response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:48:39 GMT'] + Date: ['Sat, 08 Dec 2018 15:06:36 GMT'] Keep-Alive: ['timeout=15, max=99'] - Location: ['https://robot.your-server.de/'] + Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/ - response: - body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ - \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ - \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ -
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ - \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ - \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ - \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ - \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ - \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ - \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ - \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ -
\n
\n
\n
\n
\n
\n\ -
\n
\n
\n
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ - "} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:48:40 GMT'] - Keep-Alive: ['timeout=15, max=98'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} - request: body: null headers: @@ -275,7 +234,7 @@ interactions: \ parent.location='/dns/scheduled'\" type=\"button\" value=\"K\xFCndigungsvormerkungen\"\ />\n8\n\ + >7\n\ \n\n
\n\n\n\n\n\ - \n\n\n\n\n\n\ \n

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

\n\n
bettilaila.de
\n\n\n\n\n\n
8
\n\n
7
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ \ Preise inkl. 19 % USt
\n
Impressum\ @@ -434,7 +376,60 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:48:40 GMT'] + Date: ['Sat, 08 Dec 2018 15:06:37 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ + \n
\n
\n* \n
\n
\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:06:37 GMT'] Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Transfer-Encoding: [chunked] @@ -457,7 +452,7 @@ interactions: 2\">\n
\n* \n
\n
\n
\n
\n\n
\n\ \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ @@ -486,11 +482,32 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:48:41 GMT'] + Date: ['Sat, 08 Dec 2018 15:06:38 GMT'] Keep-Alive: ['timeout=15, max=96'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121004+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Adelete.testfull+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['799'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:06:38 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} - request: body: null headers: @@ -499,19 +516,33 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/preferences/culture + uri: https://robot.your-server.de/dns/update/id/556218 response: body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ + centerpadding\">\n \n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n\
\n\n
\n \xA9 2018 Hetzner\ \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ \
\n

Vielen Dank\ - \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ - \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ - \ einsehen.

"} + body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:48:41 GMT'] - Keep-Alive: ['timeout=15, max=94'] + Date: ['Sat, 08 Dec 2018 15:07:08 GMT'] + Keep-Alive: ['timeout=15, max=99'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_full_name_and_content.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_by_identifier_should_remove_record.yaml similarity index 72% rename from tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_full_name_and_content.yaml rename to tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_by_identifier_should_remove_record.yaml index 0eaa173e5..c56d30161 100644 --- a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_full_name_and_content.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_by_identifier_should_remove_record.yaml @@ -9,12 +9,50 @@ interactions: method: GET uri: https://accounts.hetzner.com/login response: - body: {string: None} + body: {string: ''} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:46:22 GMT'] + Date: ['Sat, 08 Dec 2018 15:07:37 GMT'] Keep-Alive: ['timeout=15, max=100'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] @@ -39,7 +77,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:46:22 GMT'] + Date: ['Sat, 08 Dec 2018 15:07:37 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] Server: [Apache] @@ -63,7 +101,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:46:22 GMT'] + Date: ['Sat, 08 Dec 2018 15:07:37 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] Server: [Apache] @@ -87,7 +125,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:46:22 GMT'] + Date: ['Sat, 08 Dec 2018 15:07:37 GMT'] Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] @@ -103,15 +141,15 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/ + uri: https://robot.your-server.de/dns/index/page/1 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:46:23 GMT'] + Date: ['Sat, 08 Dec 2018 15:07:38 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=0178783a8832ad2984d76552cc2d174c'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=05242ca275af1c94893daf6499306dcb'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -123,16 +161,16 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=0178783a8832ad2984d76552cc2d174c + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=05242ca275af1c94893daf6499306dcb response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Tue, 04 Dec 2018 16:46:23 GMT'] + Date: ['Sat, 08 Dec 2018 15:07:38 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=2ac48fa5f9afb96c0a0570bd0600ca61fee46380&state=0178783a8832ad2984d76552cc2d174c'] + Location: ['https://robot.your-server.de/login/check?code=167dd449e1441cdfccbe3d5c42675daf6dad693f&state=05242ca275af1c94893daf6499306dcb'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,97 +185,18 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=2ac48fa5f9afb96c0a0570bd0600ca61fee46380&state=0178783a8832ad2984d76552cc2d174c + uri: https://robot.your-server.de/login/check?code=167dd449e1441cdfccbe3d5c42675daf6dad693f&state=05242ca275af1c94893daf6499306dcb response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:46:23 GMT'] + Date: ['Sat, 08 Dec 2018 15:07:38 GMT'] Keep-Alive: ['timeout=15, max=99'] - Location: ['https://robot.your-server.de/'] + Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/ - response: - body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ - \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ - \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ -
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ - \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ - \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ - \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ - \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ - \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ - \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ - \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ -
\n
\n
\n
\n
\n
\n\ -
\n
\n
\n
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ - "} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:46:24 GMT'] - Keep-Alive: ['timeout=15, max=98'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} - request: body: null headers: @@ -275,7 +234,7 @@ interactions: \ parent.location='/dns/scheduled'\" type=\"button\" value=\"K\xFCndigungsvormerkungen\"\ />\n8\n\ + >7\n\ \n\n
\n\n\n\n\n\n\n\n\n

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

\n\n
bettilaila.de
\n\n\n\n\n\n
8
\n\n
7
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ \ Preise inkl. 19 % USt
\n
Impressum\ @@ -434,7 +376,60 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:46:24 GMT'] + Date: ['Sat, 08 Dec 2018 15:07:39 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ + \n
\n
\n* \n
\n
\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:07:39 GMT'] Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Transfer-Encoding: [chunked] @@ -457,21 +452,25 @@ interactions: 2\">\n
\n* \n
\n
\n\ -
\n\n
\n \xA9 2018 Hetzner\ - \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ - \
\n \n\n\n\n \n\ + \n\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\n
Impressum\ \ |\n Datenschutz\ @@ -483,11 +482,32 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:46:25 GMT'] + Date: ['Sat, 08 Dec 2018 15:07:40 GMT'] Keep-Alive: ['timeout=15, max=96'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121006+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Adelete.testid+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['797'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:07:40 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} - request: body: null headers: @@ -496,19 +516,33 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/preferences/culture + uri: https://robot.your-server.de/dns/update/id/556218 response: body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ + centerpadding\">\n \n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n\
\n\n
\n \xA9 2018 Hetzner\ \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ \
\n

Vielen Dank\ - \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ - \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ - \ einsehen.

"} + body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:46:25 GMT'] - Keep-Alive: ['timeout=15, max=94'] + Date: ['Sat, 08 Dec 2018 15:08:10 GMT'] + Keep-Alive: ['timeout=15, max=99'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_full_name_should_remove_record.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_by_content_should_leave_others_untouched.yaml similarity index 68% rename from tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_full_name_should_remove_record.yaml rename to tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_by_content_should_leave_others_untouched.yaml index 03d3f396a..cde695dbe 100644 --- a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_full_name_should_remove_record.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_by_content_should_leave_others_untouched.yaml @@ -9,12 +9,50 @@ interactions: method: GET uri: https://accounts.hetzner.com/login response: - body: {string: None} + body: {string: ''} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:51:26 GMT'] + Date: ['Sat, 08 Dec 2018 15:08:39 GMT'] Keep-Alive: ['timeout=15, max=100'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] @@ -39,7 +77,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:51:26 GMT'] + Date: ['Sat, 08 Dec 2018 15:08:39 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] Server: [Apache] @@ -63,7 +101,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:51:26 GMT'] + Date: ['Sat, 08 Dec 2018 15:08:39 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] Server: [Apache] @@ -87,7 +125,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:51:26 GMT'] + Date: ['Sat, 08 Dec 2018 15:08:39 GMT'] Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] @@ -103,15 +141,15 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/ + uri: https://robot.your-server.de/dns/index/page/1 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:51:27 GMT'] + Date: ['Sat, 08 Dec 2018 15:08:40 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=22b46fd2566276cbf39f6145f728c72f'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=ef4b94c86609b1d181cd2cc6012207ff'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -123,16 +161,16 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=22b46fd2566276cbf39f6145f728c72f + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=ef4b94c86609b1d181cd2cc6012207ff response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Tue, 04 Dec 2018 16:51:27 GMT'] + Date: ['Sat, 08 Dec 2018 15:08:40 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=3c128d5d5e8b80baadaa2d83cb94cc10d4794de9&state=22b46fd2566276cbf39f6145f728c72f'] + Location: ['https://robot.your-server.de/login/check?code=4fe97cb8684bec6541bae7fd0b1464e113c066be&state=ef4b94c86609b1d181cd2cc6012207ff'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,97 +185,18 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=3c128d5d5e8b80baadaa2d83cb94cc10d4794de9&state=22b46fd2566276cbf39f6145f728c72f + uri: https://robot.your-server.de/login/check?code=4fe97cb8684bec6541bae7fd0b1464e113c066be&state=ef4b94c86609b1d181cd2cc6012207ff response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:51:27 GMT'] + Date: ['Sat, 08 Dec 2018 15:08:40 GMT'] Keep-Alive: ['timeout=15, max=99'] - Location: ['https://robot.your-server.de/'] + Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/ - response: - body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ - \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ - \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ -
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ - \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ - \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ - \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ - \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ - \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ - \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ - \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ -
\n
\n
\n
\n
\n
\n\ -
\n
\n
\n
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ - "} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:51:28 GMT'] - Keep-Alive: ['timeout=15, max=98'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} - request: body: null headers: @@ -275,7 +234,7 @@ interactions: \ parent.location='/dns/scheduled'\" type=\"button\" value=\"K\xFCndigungsvormerkungen\"\ />\n8\n\ + >7\n\ \n\n
\n\n\n\n\n\n\n\n\ \n

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

\n\n
bettilaila.de
\n\n\n\n\n\n
8
\n\n
7
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ \ Preise inkl. 19 % USt
\n
Impressum\ @@ -434,7 +376,60 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:51:28 GMT'] + Date: ['Sat, 08 Dec 2018 15:08:41 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ + \n
\n
\n* \n
\n
\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:08:41 GMT'] Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Transfer-Encoding: [chunked] @@ -457,7 +452,7 @@ interactions: 2\">\n
\n* \n
\n
\n
\n\n
\n\ \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ @@ -487,11 +482,32 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:51:29 GMT'] + Date: ['Sat, 08 Dec 2018 15:08:42 GMT'] Keep-Alive: ['timeout=15, max=96'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121008+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['818'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:08:42 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} - request: body: null headers: @@ -500,22 +516,36 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/preferences/culture + uri: https://robot.your-server.de/dns/update/id/556218 response: body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ -
\n\n\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\n
Impressum\ \ |\n Datenschutz\ @@ -527,32 +557,29 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:51:29 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Date: ['Sat, 08 Dec 2018 15:09:11 GMT'] + Keep-Alive: ['timeout=15, max=100'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120650+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Adelete.testfull+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=87112061a44512b9d6f3227caa7c9326 + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121008+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] Connection: [keep-alive] - Content-Length: ['799'] + Content-Length: ['888'] Content-Type: [application/x-www-form-urlencoded] User-Agent: [python-requests/2.20.1] method: POST uri: https://robot.your-server.de/dns/update response: - body: {string: "

Vielen Dank\ - \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ - \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ - \ einsehen.

"} + body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:51:29 GMT'] - Keep-Alive: ['timeout=15, max=94'] + Date: ['Sat, 08 Dec 2018 15:09:12 GMT'] + Keep-Alive: ['timeout=15, max=99'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} @@ -564,22 +591,37 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/preferences/culture + uri: https://robot.your-server.de/dns/update/id/556218 response: body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ -
\n\n\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\n
Impressum\ \ |\n Datenschutz\ @@ -591,31 +633,28 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:52:01 GMT'] + Date: ['Sat, 08 Dec 2018 15:09:41 GMT'] Keep-Alive: ['timeout=15, max=100'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120650+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=87112061a44512b9d6f3227caa7c9326 + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121008+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] Connection: [keep-alive] - Content-Length: ['748'] + Content-Length: ['818'] Content-Type: [application/x-www-form-urlencoded] User-Agent: [python-requests/2.20.1] method: POST uri: https://robot.your-server.de/dns/update response: - body: {string: "

Vielen Dank\ - \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ - \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ - \ einsehen.

"} + body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:52:01 GMT'] + Date: ['Sat, 08 Dec 2018 15:09:41 GMT'] Keep-Alive: ['timeout=15, max=99'] Server: [Apache] Transfer-Encoding: [chunked] diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_name_remove_all.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_name_remove_all.yaml similarity index 68% rename from tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_name_remove_all.yaml rename to tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_name_remove_all.yaml index 9a7caa431..c51fc479f 100644 --- a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_name_remove_all.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_name_remove_all.yaml @@ -9,12 +9,50 @@ interactions: method: GET uri: https://accounts.hetzner.com/login response: - body: {string: None} + body: {string: ''} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:55:18 GMT'] + Date: ['Sat, 08 Dec 2018 15:10:10 GMT'] Keep-Alive: ['timeout=15, max=100'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] @@ -39,7 +77,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:55:18 GMT'] + Date: ['Sat, 08 Dec 2018 15:10:11 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] Server: [Apache] @@ -63,7 +101,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:55:18 GMT'] + Date: ['Sat, 08 Dec 2018 15:10:11 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] Server: [Apache] @@ -87,7 +125,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:55:18 GMT'] + Date: ['Sat, 08 Dec 2018 15:10:11 GMT'] Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] @@ -103,15 +141,15 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/ + uri: https://robot.your-server.de/dns/index/page/1 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:55:19 GMT'] + Date: ['Sat, 08 Dec 2018 15:10:12 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=3eded1d0e4e27d481d48fe4de4020992'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=2bc88ba50abfa85feab285f771e25d85'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -123,16 +161,16 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=3eded1d0e4e27d481d48fe4de4020992 + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=2bc88ba50abfa85feab285f771e25d85 response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Tue, 04 Dec 2018 16:55:19 GMT'] + Date: ['Sat, 08 Dec 2018 15:10:12 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=1797fb7ab6cf071b3663dd11a64679e64dd2d106&state=3eded1d0e4e27d481d48fe4de4020992'] + Location: ['https://robot.your-server.de/login/check?code=81329906735cba4868846a46d14411fb155f1305&state=2bc88ba50abfa85feab285f771e25d85'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,97 +185,18 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=1797fb7ab6cf071b3663dd11a64679e64dd2d106&state=3eded1d0e4e27d481d48fe4de4020992 + uri: https://robot.your-server.de/login/check?code=81329906735cba4868846a46d14411fb155f1305&state=2bc88ba50abfa85feab285f771e25d85 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:55:19 GMT'] + Date: ['Sat, 08 Dec 2018 15:10:12 GMT'] Keep-Alive: ['timeout=15, max=99'] - Location: ['https://robot.your-server.de/'] + Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/ - response: - body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ - \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ - \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ -
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ - \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ - \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ - \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ - \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ - \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ - \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ - \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ -
\n
\n
\n
\n
\n
\n\ -
\n
\n
\n
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:55:20 GMT'] - Keep-Alive: ['timeout=15, max=98'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} - request: body: null headers: @@ -275,7 +234,7 @@ interactions: \ parent.location='/dns/scheduled'\" type=\"button\" value=\"K\xFCndigungsvormerkungen\"\ />\n8\n\ + >7\n\ \n\n
\n\n\n\n\n\n\n\n\ \n

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

\n\n
bettilaila.de
\n\n\n\n\n\n
8
\n\n
7
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ \ Preise inkl. 19 % USt
\n
Impressum\ @@ -434,8 +376,8 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:55:20 GMT'] - Keep-Alive: ['timeout=15, max=97'] + Date: ['Sat, 08 Dec 2018 15:10:13 GMT'] + Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} @@ -457,7 +399,7 @@ interactions: 2\">\n
\n* \n
\n
\n
\n\n
\n\ \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ @@ -488,8 +430,8 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:55:21 GMT'] - Keep-Alive: ['timeout=15, max=96'] + Date: ['Sat, 08 Dec 2018 15:10:13 GMT'] + Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} @@ -501,22 +443,36 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/preferences/culture + uri: https://robot.your-server.de/dns/update/id/556218 response: body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ -
\n\n\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\n
Impressum\ \ |\n Datenschutz\ @@ -528,13 +484,13 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:55:21 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Date: ['Sat, 08 Dec 2018 15:10:13 GMT'] + Keep-Alive: ['timeout=15, max=96'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120657+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.deleterecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=969767d9d6a938acd20127185c6b7167 + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121011+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.deleterecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] @@ -545,15 +501,12 @@ interactions: method: POST uri: https://robot.your-server.de/dns/update response: - body: {string: "

Vielen Dank\ - \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ - \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ - \ einsehen.

"} + body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:55:21 GMT'] - Keep-Alive: ['timeout=15, max=94'] + Date: ['Sat, 08 Dec 2018 15:10:14 GMT'] + Keep-Alive: ['timeout=15, max=95'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} @@ -565,22 +518,37 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/preferences/culture + uri: https://robot.your-server.de/dns/update/id/556218 response: body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ -
\n\n\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\n
Impressum\ \ |\n Datenschutz\ @@ -592,13 +560,13 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:55:53 GMT'] + Date: ['Sat, 08 Dec 2018 15:10:43 GMT'] Keep-Alive: ['timeout=15, max=100'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120657+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.deleterecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=969767d9d6a938acd20127185c6b7167 + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121011+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.deleterecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] @@ -609,14 +577,11 @@ interactions: method: POST uri: https://robot.your-server.de/dns/update response: - body: {string: "

Vielen Dank\ - \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ - \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ - \ einsehen.

"} + body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:55:53 GMT'] + Date: ['Sat, 08 Dec 2018 15:10:43 GMT'] Keep-Alive: ['timeout=15, max=99'] Server: [Apache] Transfer-Encoding: [chunked] @@ -629,22 +594,38 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/preferences/culture + uri: https://robot.your-server.de/dns/update/id/556218 response: body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ -
\n\n\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\n
Impressum\ \ |\n Datenschutz\ @@ -656,13 +637,13 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:56:25 GMT'] + Date: ['Sat, 08 Dec 2018 15:11:13 GMT'] Keep-Alive: ['timeout=15, max=100'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120657+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=969767d9d6a938acd20127185c6b7167 + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121011+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] @@ -673,14 +654,11 @@ interactions: method: POST uri: https://robot.your-server.de/dns/update response: - body: {string: "

Vielen Dank\ - \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ - \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ - \ einsehen.

"} + body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:56:25 GMT'] + Date: ['Sat, 08 Dec 2018 15:11:13 GMT'] Keep-Alive: ['timeout=15, max=99'] Server: [Apache] Transfer-Encoding: [chunked] diff --git a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_after_setting_ttl.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_after_setting_ttl.yaml new file mode 100644 index 000000000..835a957f1 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_after_setting_ttl.yaml @@ -0,0 +1,513 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:11:42 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:11:42 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:11:43 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:11:43 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:11:43 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=75f2fefad5fafd05d73ef2a3a5763653'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=75f2fefad5fafd05d73ef2a3a5763653 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Sat, 08 Dec 2018 15:11:44 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=6daebc83d6c5bf30789cef18b6f2e6eae3ad25b7&state=75f2fefad5fafd05d73ef2a3a5763653'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=6daebc83d6c5bf30789cef18b6f2e6eae3ad25b7&state=75f2fefad5fafd05d73ef2a3a5763653 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:11:44 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/index/page/1'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: "
\n
\n
\n
\n
\n\ +
\n\n
\n\n\n\n7\n\ + \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

\n\n\n\n\n\n
7
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:11:44 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ + \n
\n
\n* \n
\n
\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:11:45 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ + \n
\n
\n* \n
\n
\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:11:45 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121014+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['863'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:11:45 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_with_name_filter_should_return_record.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_should_handle_record_sets.yaml similarity index 72% rename from tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_with_name_filter_should_return_record.yaml rename to tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_should_handle_record_sets.yaml index 3496dbf3f..40c66dbf6 100644 --- a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_with_name_filter_should_return_record.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_should_handle_record_sets.yaml @@ -9,12 +9,50 @@ interactions: method: GET uri: https://accounts.hetzner.com/login response: - body: {string: None} + body: {string: ''} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:59:52 GMT'] + Date: ['Sat, 08 Dec 2018 15:12:14 GMT'] Keep-Alive: ['timeout=15, max=100'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] @@ -39,7 +77,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:59:52 GMT'] + Date: ['Sat, 08 Dec 2018 15:12:15 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] Server: [Apache] @@ -63,7 +101,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:59:52 GMT'] + Date: ['Sat, 08 Dec 2018 15:12:15 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] Server: [Apache] @@ -87,7 +125,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:59:53 GMT'] + Date: ['Sat, 08 Dec 2018 15:12:15 GMT'] Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] @@ -103,15 +141,15 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/ + uri: https://robot.your-server.de/dns/index/page/1 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:59:53 GMT'] + Date: ['Sat, 08 Dec 2018 15:12:16 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=5370a97601bfc402db07480024fe5ffe'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=b0161b509f6980fcd359941975b787be'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -123,16 +161,16 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=5370a97601bfc402db07480024fe5ffe + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=b0161b509f6980fcd359941975b787be response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Tue, 04 Dec 2018 16:59:53 GMT'] + Date: ['Sat, 08 Dec 2018 15:12:16 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=38eaae9da43536b8fb78ef46c9965bbd2ff0268b&state=5370a97601bfc402db07480024fe5ffe'] + Location: ['https://robot.your-server.de/login/check?code=224d1b92b579b26a3e86520099effe2ac1d647bf&state=b0161b509f6980fcd359941975b787be'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,97 +185,18 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=38eaae9da43536b8fb78ef46c9965bbd2ff0268b&state=5370a97601bfc402db07480024fe5ffe + uri: https://robot.your-server.de/login/check?code=224d1b92b579b26a3e86520099effe2ac1d647bf&state=b0161b509f6980fcd359941975b787be response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:59:54 GMT'] + Date: ['Sat, 08 Dec 2018 15:12:16 GMT'] Keep-Alive: ['timeout=15, max=99'] - Location: ['https://robot.your-server.de/'] + Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/ - response: - body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ - \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ - \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ -
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ - \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ - \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ - \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ - \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ - \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ - \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ - \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ -
\n
\n
\n
\n
\n
\n\ -
\n
\n
\n
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:59:54 GMT'] - Keep-Alive: ['timeout=15, max=98'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} - request: body: null headers: @@ -275,7 +234,7 @@ interactions: \ parent.location='/dns/scheduled'\" type=\"button\" value=\"K\xFCndigungsvormerkungen\"\ />\n8\n\ + >7\n\ \n\n
\n\n\n\n\n\n\n\n\n\n\n

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

\n\n
bettilaila.de
\n\n\n\n\n\n
8
\n\n
7
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ \ Preise inkl. 19 % USt
\n
Impressum\ @@ -434,8 +376,8 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:59:54 GMT'] - Keep-Alive: ['timeout=15, max=97'] + Date: ['Sat, 08 Dec 2018 15:12:17 GMT'] + Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} @@ -457,7 +399,7 @@ interactions: 2\">\n
\n* \n
\n
\n\
\n\n
\n \xA9 2018 Hetzner\ \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ @@ -492,8 +431,8 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:59:55 GMT'] - Keep-Alive: ['timeout=15, max=96'] + Date: ['Sat, 08 Dec 2018 15:12:17 GMT'] + Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} @@ -505,19 +444,34 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/preferences/culture + uri: https://robot.your-server.de/dns/update/id/556218 response: body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ + centerpadding\">\n \n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n\
\n\n"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:12:47 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121015+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['995'] Content-Type: [application/x-www-form-urlencoded] User-Agent: [python-requests/2.20.1] method: POST uri: https://robot.your-server.de/dns/update response: - body: {string: "

Vielen Dank\ - \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ - \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ - \ einsehen.

"} + body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:59:56 GMT'] - Keep-Alive: ['timeout=15, max=94'] + Date: ['Sat, 08 Dec 2018 15:12:47 GMT'] + Keep-Alive: ['timeout=15, max=99'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} diff --git a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_with_fqdn_name_filter_should_return_record.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_with_fqdn_name_filter_should_return_record.yaml new file mode 100644 index 000000000..333e9b5c2 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_with_fqdn_name_filter_should_return_record.yaml @@ -0,0 +1,517 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:13:16 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:13:17 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:13:17 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:13:17 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:13:18 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=3f5d1cd877471716b959f9f5d48ccd58'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=3f5d1cd877471716b959f9f5d48ccd58 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Sat, 08 Dec 2018 15:13:18 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=9aa62573b7a2ca499c92c90ceb5fd74dd5f1461c&state=3f5d1cd877471716b959f9f5d48ccd58'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=9aa62573b7a2ca499c92c90ceb5fd74dd5f1461c&state=3f5d1cd877471716b959f9f5d48ccd58 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:13:18 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/index/page/1'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: "
\n
\n
\n
\n
\n\ +
\n\n
\n\n\n\n7\n\ + \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

\n\n\n\n\n\n
7
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:13:19 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\ + \n\n\n\ + \n
\n
\n* \n
\n
\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:13:19 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\ + \n\n\n\ + \n
\n
\n* \n
\n
\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:13:19 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121017+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1046'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:13:20 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_with_no_arguments_should_list_all.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_with_full_name_filter_should_return_record.yaml similarity index 74% rename from tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_with_no_arguments_should_list_all.yaml rename to tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_with_full_name_filter_should_return_record.yaml index 240f7b2a5..e2fde7ae3 100644 --- a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_with_no_arguments_should_list_all.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_with_full_name_filter_should_return_record.yaml @@ -9,12 +9,50 @@ interactions: method: GET uri: https://accounts.hetzner.com/login response: - body: {string: None} + body: {string: ''} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 17:00:27 GMT'] + Date: ['Sat, 08 Dec 2018 15:13:49 GMT'] Keep-Alive: ['timeout=15, max=100'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] @@ -39,7 +77,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 17:00:27 GMT'] + Date: ['Sat, 08 Dec 2018 15:13:49 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] Server: [Apache] @@ -63,7 +101,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 17:00:27 GMT'] + Date: ['Sat, 08 Dec 2018 15:13:49 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] Server: [Apache] @@ -87,7 +125,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 17:00:28 GMT'] + Date: ['Sat, 08 Dec 2018 15:13:49 GMT'] Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] @@ -103,15 +141,15 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/ + uri: https://robot.your-server.de/dns/index/page/1 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 17:00:28 GMT'] + Date: ['Sat, 08 Dec 2018 15:13:50 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=4839b51e389ae726c13974f96a39950e'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=9009c1c585cf71e798448d7bf6b8ff82'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -123,16 +161,16 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=4839b51e389ae726c13974f96a39950e + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=9009c1c585cf71e798448d7bf6b8ff82 response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Tue, 04 Dec 2018 17:00:28 GMT'] + Date: ['Sat, 08 Dec 2018 15:13:50 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=ae40689cf730e81bb9045b5d3a9fc43593070780&state=4839b51e389ae726c13974f96a39950e'] + Location: ['https://robot.your-server.de/login/check?code=8afe8d0652db9192cc2696792f8fc9f96e1cb795&state=9009c1c585cf71e798448d7bf6b8ff82'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,97 +185,18 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=ae40689cf730e81bb9045b5d3a9fc43593070780&state=4839b51e389ae726c13974f96a39950e + uri: https://robot.your-server.de/login/check?code=8afe8d0652db9192cc2696792f8fc9f96e1cb795&state=9009c1c585cf71e798448d7bf6b8ff82 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 17:00:28 GMT'] + Date: ['Sat, 08 Dec 2018 15:13:50 GMT'] Keep-Alive: ['timeout=15, max=99'] - Location: ['https://robot.your-server.de/'] + Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/ - response: - body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ - \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ - \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ -
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ - \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ - \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ - \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ - \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ - \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ - \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ - \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ -
\n
\n
\n
\n
\n
\n\ -
\n
\n
\n
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 17:00:29 GMT'] - Keep-Alive: ['timeout=15, max=98'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} - request: body: null headers: @@ -275,7 +234,7 @@ interactions: \ parent.location='/dns/scheduled'\" type=\"button\" value=\"K\xFCndigungsvormerkungen\"\ />\n8\n\ + >7\n\ \n\n
\n\n\n\n\n\n\n\n\n

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

\n\n
bettilaila.de
\n\n\n\n\n\n
8
\n\n
7
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ \ Preise inkl. 19 % USt
\n
Impressum\ @@ -434,7 +376,64 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 17:00:29 GMT'] + Date: ['Sat, 08 Dec 2018 15:13:51 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ + \n
\n
\n* \n
\n
\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:13:51 GMT'] Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Transfer-Encoding: [chunked] @@ -457,30 +456,29 @@ interactions: 2\">\n
\n* \n
\n
\n
\n\n\ -
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ - \ Preise inkl. 19 % USt
\n \n\n\n\n \n\ + \n\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\n
Impressum\ \ |\n Datenschutz\ @@ -492,9 +490,30 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 17:00:30 GMT'] + Date: ['Sat, 08 Dec 2018 15:13:52 GMT'] Keep-Alive: ['timeout=15, max=96'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121018+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1097'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:13:52 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_with_invalid_filter_should_be_empty_list.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_with_invalid_filter_should_be_empty_list.yaml new file mode 100644 index 000000000..0656d2876 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_with_invalid_filter_should_be_empty_list.yaml @@ -0,0 +1,442 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:14:21 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:14:21 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:14:22 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:14:22 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:14:23 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=b1729772f9deb5ed6b2f8e71adc81435'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=b1729772f9deb5ed6b2f8e71adc81435 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Sat, 08 Dec 2018 15:14:23 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=cda840bf3a6b72f0694dadbae54b0a54e50d2e34&state=b1729772f9deb5ed6b2f8e71adc81435'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=cda840bf3a6b72f0694dadbae54b0a54e50d2e34&state=b1729772f9deb5ed6b2f8e71adc81435 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:14:23 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/index/page/1'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: "
\n
\n
\n
\n
\n\ +
\n\n
\n\n\n\n7\n\ + \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

\n\n\n\n\n\n
7
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:14:24 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:14:24 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_with_invalid_filter_should_be_empty_list.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_with_name_filter_should_return_record.yaml similarity index 77% rename from tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_with_invalid_filter_should_be_empty_list.yaml rename to tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_with_name_filter_should_return_record.yaml index 20f950cf0..219e4bae6 100644 --- a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_with_invalid_filter_should_be_empty_list.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_with_name_filter_should_return_record.yaml @@ -9,12 +9,50 @@ interactions: method: GET uri: https://accounts.hetzner.com/login response: - body: {string: None} + body: {string: ''} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:59:47 GMT'] + Date: ['Sat, 08 Dec 2018 15:14:25 GMT'] Keep-Alive: ['timeout=15, max=100'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] @@ -39,7 +77,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:59:48 GMT'] + Date: ['Sat, 08 Dec 2018 15:14:26 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] Server: [Apache] @@ -63,7 +101,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:59:48 GMT'] + Date: ['Sat, 08 Dec 2018 15:14:26 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] Server: [Apache] @@ -87,7 +125,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:59:48 GMT'] + Date: ['Sat, 08 Dec 2018 15:14:26 GMT'] Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] @@ -103,15 +141,15 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/ + uri: https://robot.your-server.de/dns/index/page/1 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:59:49 GMT'] + Date: ['Sat, 08 Dec 2018 15:14:27 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=581fdce74cbaa53f7f66fa07ec931237'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=11c0565470dbf36f726be511c8307f23'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -123,16 +161,16 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=581fdce74cbaa53f7f66fa07ec931237 + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=11c0565470dbf36f726be511c8307f23 response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Tue, 04 Dec 2018 16:59:49 GMT'] + Date: ['Sat, 08 Dec 2018 15:14:27 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=efb523e31eb55b7b1175f23ecdc4296dcd9e9ee8&state=581fdce74cbaa53f7f66fa07ec931237'] + Location: ['https://robot.your-server.de/login/check?code=cea0cfddbcc03e7035ae0b7be1161af8d48abb7f&state=11c0565470dbf36f726be511c8307f23'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,97 +185,18 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=efb523e31eb55b7b1175f23ecdc4296dcd9e9ee8&state=581fdce74cbaa53f7f66fa07ec931237 + uri: https://robot.your-server.de/login/check?code=cea0cfddbcc03e7035ae0b7be1161af8d48abb7f&state=11c0565470dbf36f726be511c8307f23 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:59:49 GMT'] + Date: ['Sat, 08 Dec 2018 15:14:27 GMT'] Keep-Alive: ['timeout=15, max=99'] - Location: ['https://robot.your-server.de/'] + Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/ - response: - body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ - \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ - \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ -
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ - \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ - \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ - \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ - \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ - \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ - \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ - \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ -
\n
\n
\n
\n
\n
\n\ -
\n
\n
\n
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ - "} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:59:50 GMT'] - Keep-Alive: ['timeout=15, max=98'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} - request: body: null headers: @@ -275,7 +234,7 @@ interactions: \ parent.location='/dns/scheduled'\" type=\"button\" value=\"K\xFCndigungsvormerkungen\"\ />\n8\n\ + >7\n\ \n\n
\n\n\n\n\n\n\n\n\n

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

\n\n
bettilaila.de
\n\n\n\n\n\n
8
\n\n
7
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ \ Preise inkl. 19 % USt
\n
Impressum\ @@ -434,7 +376,65 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:59:50 GMT'] + Date: ['Sat, 08 Dec 2018 15:14:28 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:14:28 GMT'] Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Transfer-Encoding: [chunked] @@ -457,7 +457,7 @@ interactions: 2\">\n
\n* \n
\n
\n\
\n\n
\n \xA9 2018 Hetzner\ \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ @@ -492,9 +492,30 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:59:51 GMT'] + Date: ['Sat, 08 Dec 2018 15:14:28 GMT'] Keep-Alive: ['timeout=15, max=96'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121019+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1144'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:14:29 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_with_no_arguments_should_list_all.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_with_no_arguments_should_list_all.yaml new file mode 100644 index 000000000..dff4fa674 --- /dev/null +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_with_no_arguments_should_list_all.yaml @@ -0,0 +1,442 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:14:58 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:14:58 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:14:58 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Sat, 08 Dec 2018 15:14:58 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:14:59 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=b228e0beb7dd08c97d9ba2a72271f359'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=b228e0beb7dd08c97d9ba2a72271f359 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Sat, 08 Dec 2018 15:14:59 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=7022faf1106acb390b9f04262c69da634f6cd2f0&state=b228e0beb7dd08c97d9ba2a72271f359'] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=7022faf1106acb390b9f04262c69da634f6cd2f0&state=b228e0beb7dd08c97d9ba2a72271f359 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:14:59 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/index/page/1'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/index/page/1 + response: + body: {string: "
\n
\n
\n
\n
\n\ +
\n\n
\n\n\n\n7\n\ + \n\n
\n
aranox.deprimary13.06.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

bettilaila.deprimary02.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ferienwohnung-kubis.deprimary24.02.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

rimek.infoprimary24.01.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

toni-schoenberger.deprimary27.03.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.comprimary17.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

ulock-justice.deprimary21.04.19
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ +

\n\n\n\n\n\n
7
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:15:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n
\n\n\ +
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:15:00 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +version: 1 diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_with_fqdn_name_filter_should_return_record.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_update_record_should_modify_record.yaml similarity index 70% rename from tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_with_fqdn_name_filter_should_return_record.yaml rename to tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_update_record_should_modify_record.yaml index 11fab64ed..60321de0d 100644 --- a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_with_fqdn_name_filter_should_return_record.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_update_record_should_modify_record.yaml @@ -9,12 +9,50 @@ interactions: method: GET uri: https://accounts.hetzner.com/login response: - body: {string: None} + body: {string: ''} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:58:38 GMT'] + Date: ['Sat, 08 Dec 2018 15:15:01 GMT'] Keep-Alive: ['timeout=15, max=100'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] @@ -39,7 +77,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:58:38 GMT'] + Date: ['Sat, 08 Dec 2018 15:15:02 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] Server: [Apache] @@ -63,7 +101,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:58:38 GMT'] + Date: ['Sat, 08 Dec 2018 15:15:02 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] Server: [Apache] @@ -87,7 +125,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:58:39 GMT'] + Date: ['Sat, 08 Dec 2018 15:15:02 GMT'] Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] @@ -103,15 +141,15 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/ + uri: https://robot.your-server.de/dns/index/page/1 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:58:39 GMT'] + Date: ['Sat, 08 Dec 2018 15:15:03 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=7889909d0ffa5309287edf97ebae2ce2'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=ccf82137742cb25807afb4051f80d827'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -123,16 +161,16 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=7889909d0ffa5309287edf97ebae2ce2 + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=ccf82137742cb25807afb4051f80d827 response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Tue, 04 Dec 2018 16:58:39 GMT'] + Date: ['Sat, 08 Dec 2018 15:15:03 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=51340464c2d386c75c110e0a3e357cc0de71dc9d&state=7889909d0ffa5309287edf97ebae2ce2'] + Location: ['https://robot.your-server.de/login/check?code=5539ace29f1219de617422adf784ccc5c4ca22bb&state=ccf82137742cb25807afb4051f80d827'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,97 +185,18 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=51340464c2d386c75c110e0a3e357cc0de71dc9d&state=7889909d0ffa5309287edf97ebae2ce2 + uri: https://robot.your-server.de/login/check?code=5539ace29f1219de617422adf784ccc5c4ca22bb&state=ccf82137742cb25807afb4051f80d827 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:58:39 GMT'] + Date: ['Sat, 08 Dec 2018 15:15:03 GMT'] Keep-Alive: ['timeout=15, max=99'] - Location: ['https://robot.your-server.de/'] + Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/ - response: - body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ - \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ - \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ -
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ - \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ - \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ - \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ - \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ - \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ - \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ - \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ -
\n
\n
\n
\n
\n
\n\ -
\n
\n\n\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ - "} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:58:40 GMT'] - Keep-Alive: ['timeout=15, max=98'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} - request: body: null headers: @@ -275,7 +234,7 @@ interactions: \ parent.location='/dns/scheduled'\" type=\"button\" value=\"K\xFCndigungsvormerkungen\"\ />\n8\n\ + >7\n\ \n\n
\n\n\n\n\n\ - \n\n\n\ - \n

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

\n\n
bettilaila.de
\n\n\n\n\n\n
8
\n\n
7
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ \ Preise inkl. 19 % USt
\n
Impressum\ @@ -434,7 +376,65 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:58:40 GMT'] + Date: ['Sat, 08 Dec 2018 15:15:03 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n
\n\n\ +
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:15:04 GMT'] Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Transfer-Encoding: [chunked] @@ -457,28 +457,30 @@ interactions: 2\">\n
\n* \n
\n
\n
\n\n
\n\ - \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ - \ inkl. 19 % USt
\n \n\n\n\n \n\n\n
\n\n\ +
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\n
Impressum\ \ |\n Datenschutz\ @@ -490,11 +492,32 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:58:41 GMT'] + Date: ['Sat, 08 Dec 2018 15:15:04 GMT'] Keep-Alive: ['timeout=15, max=96'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121020+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Aorig.test+3600+IN+TXT+%22challengetoken%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1189'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:15:04 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} - request: body: null headers: @@ -503,22 +526,41 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/preferences/culture + uri: https://robot.your-server.de/dns/update/id/556218 response: body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ -
\n\n\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\n
Impressum\ \ |\n Datenschutz\ @@ -530,32 +572,29 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:58:41 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Date: ['Sat, 08 Dec 2018 15:15:34 GMT'] + Keep-Alive: ['timeout=15, max=100'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120663+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=d3a860bc57a237bdc551b1629202146a + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121020+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.test+3600+IN+TXT+%22challengetoken%22%0A headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] Connection: [keep-alive] - Content-Length: ['1046'] + Content-Length: ['1192'] Content-Type: [application/x-www-form-urlencoded] User-Agent: [python-requests/2.20.1] method: POST uri: https://robot.your-server.de/dns/update response: - body: {string: "

Vielen Dank\ - \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ - \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ - \ einsehen.

"} + body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:58:41 GMT'] - Keep-Alive: ['timeout=15, max=94'] + Date: ['Sat, 08 Dec 2018 15:15:34 GMT'] + Keep-Alive: ['timeout=15, max=99'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_with_full_name_filter_should_return_record.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_update_record_should_modify_record_name_specified.yaml similarity index 71% rename from tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_with_full_name_filter_should_return_record.yaml rename to tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_update_record_should_modify_record_name_specified.yaml index 02bfa739a..0d36bfb38 100644 --- a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_list_records_with_full_name_filter_should_return_record.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_update_record_should_modify_record_name_specified.yaml @@ -9,12 +9,50 @@ interactions: method: GET uri: https://accounts.hetzner.com/login response: - body: {string: None} + body: {string: ''} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:59:13 GMT'] + Date: ['Sat, 08 Dec 2018 15:16:03 GMT'] Keep-Alive: ['timeout=15, max=100'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] @@ -39,7 +77,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:59:13 GMT'] + Date: ['Sat, 08 Dec 2018 15:16:04 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] Server: [Apache] @@ -63,7 +101,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:59:13 GMT'] + Date: ['Sat, 08 Dec 2018 15:16:04 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] Server: [Apache] @@ -87,7 +125,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 16:59:13 GMT'] + Date: ['Sat, 08 Dec 2018 15:16:04 GMT'] Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] @@ -103,15 +141,15 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/ + uri: https://robot.your-server.de/dns/index/page/1 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:59:14 GMT'] + Date: ['Sat, 08 Dec 2018 15:16:05 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=31e0ed6e44b034833ab260f83ef751a7'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=42496691604b2e8ae6778fc8143069fe'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -123,16 +161,16 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=31e0ed6e44b034833ab260f83ef751a7 + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=42496691604b2e8ae6778fc8143069fe response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Tue, 04 Dec 2018 16:59:14 GMT'] + Date: ['Sat, 08 Dec 2018 15:16:05 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=dea4f977337badc1bfdf6577ea1424a7b4a8365a&state=31e0ed6e44b034833ab260f83ef751a7'] + Location: ['https://robot.your-server.de/login/check?code=88f4d2db8d8ce4e811fde764fd9d7110a66d83d7&state=42496691604b2e8ae6778fc8143069fe'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,97 +185,18 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=dea4f977337badc1bfdf6577ea1424a7b4a8365a&state=31e0ed6e44b034833ab260f83ef751a7 + uri: https://robot.your-server.de/login/check?code=88f4d2db8d8ce4e811fde764fd9d7110a66d83d7&state=42496691604b2e8ae6778fc8143069fe response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:59:14 GMT'] + Date: ['Sat, 08 Dec 2018 15:16:05 GMT'] Keep-Alive: ['timeout=15, max=99'] - Location: ['https://robot.your-server.de/'] + Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/ - response: - body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ - \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ - \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ -
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ - \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ - \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ - \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ - \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ - \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ - \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ - \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ -
\n
\n
\n
\n
\n
\n\ -
\n
\n
\n
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ - "} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:59:15 GMT'] - Keep-Alive: ['timeout=15, max=98'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} - request: body: null headers: @@ -275,7 +234,7 @@ interactions: \ parent.location='/dns/scheduled'\" type=\"button\" value=\"K\xFCndigungsvormerkungen\"\ />\n8\n\ + >7\n\ \n\n
\n\n\n\n\n\n\n\n\ + \n\n\n\ \n

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

\n\n
bettilaila.de
\n\n\n\n\n\n
8
\n\n
7
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ \ Preise inkl. 19 % USt
\n
Impressum\ @@ -434,7 +376,66 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:59:15 GMT'] + Date: ['Sat, 08 Dec 2018 15:16:06 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\ + \n\n\n\ + \n
\n
\n* \n
\n
\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:16:06 GMT'] Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Transfer-Encoding: [chunked] @@ -457,7 +458,7 @@ interactions: 2\">\n
\n* \n
\n
\n
\n
\n\n
\n\ \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ @@ -491,11 +494,32 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:59:16 GMT'] + Date: ['Sat, 08 Dec 2018 15:16:06 GMT'] Keep-Alive: ['timeout=15, max=96'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121022+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Aorig.nameonly.test+3600+IN+TXT+%22challengetoken%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1246'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Sat, 08 Dec 2018 15:16:07 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} - request: body: null headers: @@ -504,22 +528,42 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/preferences/culture + uri: https://robot.your-server.de/dns/update/id/556218 response: body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ -
\n\n\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\n
Impressum\ \ |\n Datenschutz\ @@ -531,32 +575,29 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:59:16 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Date: ['Sat, 08 Dec 2018 15:16:36 GMT'] + Keep-Alive: ['timeout=15, max=100'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120664+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=58be935d064431bc00dc24a34ce996de + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121022+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Aorig.nameonly.test+3600+IN+TXT+%22updated%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.test+3600+IN+TXT+%22challengetoken%22%0A headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] Connection: [keep-alive] - Content-Length: ['1097'] + Content-Length: ['1239'] Content-Type: [application/x-www-form-urlencoded] User-Agent: [python-requests/2.20.1] method: POST uri: https://robot.your-server.de/dns/update response: - body: {string: "

Vielen Dank\ - \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ - \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ - \ einsehen.

"} + body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 16:59:16 GMT'] - Keep-Alive: ['timeout=15, max=94'] + Date: ['Sat, 08 Dec 2018 15:16:36 GMT'] + Keep-Alive: ['timeout=15, max=99'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_update_record_with_fqdn_name_should_modify_record.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_update_record_with_fqdn_name_should_modify_record.yaml similarity index 71% rename from tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_update_record_with_fqdn_name_should_modify_record.yaml rename to tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_update_record_with_fqdn_name_should_modify_record.yaml index 6231f156f..2eb6687ae 100644 --- a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_update_record_with_fqdn_name_should_modify_record.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_update_record_with_fqdn_name_should_modify_record.yaml @@ -9,12 +9,50 @@ interactions: method: GET uri: https://accounts.hetzner.com/login response: - body: {string: None} + body: {string: ''} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 17:02:44 GMT'] + Date: ['Sat, 08 Dec 2018 15:17:05 GMT'] Keep-Alive: ['timeout=15, max=100'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] @@ -39,7 +77,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 17:02:44 GMT'] + Date: ['Sat, 08 Dec 2018 15:17:05 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] Server: [Apache] @@ -63,7 +101,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 17:02:45 GMT'] + Date: ['Sat, 08 Dec 2018 15:17:06 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] Server: [Apache] @@ -87,7 +125,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 17:02:45 GMT'] + Date: ['Sat, 08 Dec 2018 15:17:06 GMT'] Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] @@ -103,15 +141,15 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/ + uri: https://robot.your-server.de/dns/index/page/1 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 17:02:46 GMT'] + Date: ['Sat, 08 Dec 2018 15:17:07 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=e66649c734122cfa819a7e7e9c5ea800'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=3b665a78e825e3249cdfad586d0184e7'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -123,16 +161,16 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=e66649c734122cfa819a7e7e9c5ea800 + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=3b665a78e825e3249cdfad586d0184e7 response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Tue, 04 Dec 2018 17:02:46 GMT'] + Date: ['Sat, 08 Dec 2018 15:17:07 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=754a93e7b6365b9fe798e1212facea13e3f320c0&state=e66649c734122cfa819a7e7e9c5ea800'] + Location: ['https://robot.your-server.de/login/check?code=1e958855b761302c11285b7a2885e9b86b55648d&state=3b665a78e825e3249cdfad586d0184e7'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,97 +185,18 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=754a93e7b6365b9fe798e1212facea13e3f320c0&state=e66649c734122cfa819a7e7e9c5ea800 + uri: https://robot.your-server.de/login/check?code=1e958855b761302c11285b7a2885e9b86b55648d&state=3b665a78e825e3249cdfad586d0184e7 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 17:02:46 GMT'] + Date: ['Sat, 08 Dec 2018 15:17:07 GMT'] Keep-Alive: ['timeout=15, max=99'] - Location: ['https://robot.your-server.de/'] + Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/ - response: - body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ - \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ - \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ -
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ - \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ - \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ - \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ - \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ - \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ - \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ - \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ -
\n
\n
\n
\n
\n
\n\ -
\n
\n
\n
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ - "} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 17:02:46 GMT'] - Keep-Alive: ['timeout=15, max=98'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} - request: body: null headers: @@ -275,7 +234,7 @@ interactions: \ parent.location='/dns/scheduled'\" type=\"button\" value=\"K\xFCndigungsvormerkungen\"\ />\n8\n\ + >7\n\ \n\n
\n\n\n\n\n\n\n\n\ \n

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

\n\n
bettilaila.de
\n\n\n\n\n\n
8
\n\n
7
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ \ Preise inkl. 19 % USt
\n
Impressum\ @@ -434,8 +376,8 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 17:02:47 GMT'] - Keep-Alive: ['timeout=15, max=97'] + Date: ['Sat, 08 Dec 2018 15:17:08 GMT'] + Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} @@ -457,7 +399,7 @@ interactions: 2\">\n
\n* \n
\n
\n
\n\n
\n\ \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ @@ -494,8 +436,8 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 17:02:47 GMT'] - Keep-Alive: ['timeout=15, max=96'] + Date: ['Sat, 08 Dec 2018 15:17:08 GMT'] + Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} @@ -507,22 +449,42 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/preferences/culture + uri: https://robot.your-server.de/dns/update/id/556218 response: body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ -
\n\n\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\n
Impressum\ \ |\n Datenschutz\ @@ -534,13 +496,13 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 17:02:47 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Date: ['Sat, 08 Dec 2018 15:17:08 GMT'] + Keep-Alive: ['timeout=15, max=96'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120670+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Aorig.nameonly.test+3600+IN+TXT+%22updated%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.test+3600+IN+TXT+%22challengetoken%22%0Aorig.testfqdn+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=0762d56d5f8b013c22844098d476f599 + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121024+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Aorig.nameonly.test+3600+IN+TXT+%22updated%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.test+3600+IN+TXT+%22challengetoken%22%0Aorig.testfqdn+3600+IN+TXT+%22challengetoken%22%0A headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] @@ -551,15 +513,12 @@ interactions: method: POST uri: https://robot.your-server.de/dns/update response: - body: {string: "

Vielen Dank\ - \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ - \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ - \ einsehen.

"} + body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 17:02:48 GMT'] - Keep-Alive: ['timeout=15, max=94'] + Date: ['Sat, 08 Dec 2018 15:17:09 GMT'] + Keep-Alive: ['timeout=15, max=95'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} @@ -571,19 +530,40 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/preferences/culture + uri: https://robot.your-server.de/dns/update/id/556218 response: body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ + centerpadding\">\n \n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n\
\n\n
\n \xA9 2018 Hetzner\ \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ \
\n

Vielen Dank\ - \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ - \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ - \ einsehen.

"} + body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 17:03:20 GMT'] + Date: ['Sat, 08 Dec 2018 15:17:39 GMT'] Keep-Alive: ['timeout=15, max=99'] Server: [Apache] Transfer-Encoding: [chunked] diff --git a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_update_record_with_full_name_should_modify_record.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_update_record_with_full_name_should_modify_record.yaml similarity index 71% rename from tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_update_record_with_full_name_should_modify_record.yaml rename to tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_update_record_with_full_name_should_modify_record.yaml index 08a9e07b0..9e690434b 100644 --- a/tests/fixtures/cassettes/hetzner/IntegrationTests/test_Provider_when_calling_update_record_with_full_name_should_modify_record.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_update_record_with_full_name_should_modify_record.yaml @@ -9,12 +9,50 @@ interactions: method: GET uri: https://accounts.hetzner.com/login response: - body: {string: None} + body: {string: ''} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 17:03:51 GMT'] + Date: ['Sat, 08 Dec 2018 15:18:08 GMT'] Keep-Alive: ['timeout=15, max=100'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] @@ -39,7 +77,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 17:03:51 GMT'] + Date: ['Sat, 08 Dec 2018 15:18:08 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] Server: [Apache] @@ -63,7 +101,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 17:03:52 GMT'] + Date: ['Sat, 08 Dec 2018 15:18:08 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] Server: [Apache] @@ -87,7 +125,7 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Tue, 04 Dec 2018 17:03:52 GMT'] + Date: ['Sat, 08 Dec 2018 15:18:08 GMT'] Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] @@ -103,15 +141,15 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/ + uri: https://robot.your-server.de/dns/index/page/1 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 17:03:52 GMT'] + Date: ['Sat, 08 Dec 2018 15:18:09 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=af583fb7e898f13069ee5c1c5b64199f'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=5dcdd1d4c51ac0f6cf26e48709f78fe1'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -123,16 +161,16 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=af583fb7e898f13069ee5c1c5b64199f + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=5dcdd1d4c51ac0f6cf26e48709f78fe1 response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Tue, 04 Dec 2018 17:03:53 GMT'] + Date: ['Sat, 08 Dec 2018 15:18:09 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=0b160f6b4093daf6a31fdcf841d0abd626a281c7&state=af583fb7e898f13069ee5c1c5b64199f'] + Location: ['https://robot.your-server.de/login/check?code=80fb64706e6c8df1358f8405b0c15460ff33e09a&state=5dcdd1d4c51ac0f6cf26e48709f78fe1'] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,97 +185,18 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=0b160f6b4093daf6a31fdcf841d0abd626a281c7&state=af583fb7e898f13069ee5c1c5b64199f + uri: https://robot.your-server.de/login/check?code=80fb64706e6c8df1358f8405b0c15460ff33e09a&state=5dcdd1d4c51ac0f6cf26e48709f78fe1 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 17:03:53 GMT'] + Date: ['Sat, 08 Dec 2018 15:18:09 GMT'] Keep-Alive: ['timeout=15, max=99'] - Location: ['https://robot.your-server.de/'] + Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://robot.your-server.de/ - response: - body: {string: "
\n
\n\n

Herzlich Willkommen auf Ihrer\ - \ Weboberfl\xE4che zur Serveradministration und Domainverwaltung.

\n

Bitte\ - \ werfen Sie einen Blick auf unsere aktuellen Angebote:

\n
Top Angebote
\n\ -
Dedicated Root Server EX41
  • Intel\xAE Core\u2122 i7-6700 Quad-Core\ - \ Skylake
  • 32 GB DDR4 RAM
  • 2 x\ - \ 4 TB SATA 6 Gb/s Enterprise HDD; 7200 rpm (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 40,46 \u20AC
Setup (einmal): 94,01\ - \ \u20AC
\n
Dedicated Root Server PX61-SSD
  • Intel\xAE Xeon\xAE E3-1275 v5 Quad-Core\ - \ Skylake
  • 64 GB DDR4 ECC RAM
  • 2 x 480 GB 6 Gb/s SSD Datacenter Edition (Software-RAID 1)
  • 1 Gbit/s Anbindung
mehr Infos...

Preis (monatl.): ab 64,26 \u20AC
Setup (einmal): 141,61\ - \ \u20AC
\n
Dedicated Root Server AX160-NVMe
  • AMD EPYC\u2122 7401P 24-Core \"Naples\"\ - \ (Zen)
  • 128 GB DDR4 ECC RAM
  • 2 x 960 GB NVMe SSD Datacenter Edition
  • 1 Gbit/s Anbindung
mehr\ - \ Infos...

Preis (monatl.): ab 195,16 \u20AC
Setup (einmal): 201,11 \u20AC
\n\ -
\n
\n
\n
\n
\n
\n\ -
\n
\n
\n
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n \ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} - headers: - Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 17:03:53 GMT'] - Keep-Alive: ['timeout=15, max=98'] - Server: [Apache] - Transfer-Encoding: [chunked] - status: {code: 200, message: OK} - request: body: null headers: @@ -275,7 +234,7 @@ interactions: \ parent.location='/dns/scheduled'\" type=\"button\" value=\"K\xFCndigungsvormerkungen\"\ />\n8\n\ + >7\n\ \n\n
\n\n\n\n\n\n\n\n\n

bettilaila.comprimary24.12.18
  • DNS-Daten
  • DNS-Eintrag k\xFCndigen
  • \_\ -

\n\n
bettilaila.de
\n\n\n\n\n\n
8
\n\n
7
\n\n
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ \ Preise inkl. 19 % USt
\n
Impressum\ @@ -434,8 +376,8 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 17:03:54 GMT'] - Keep-Alive: ['timeout=15, max=97'] + Date: ['Sat, 08 Dec 2018 15:18:10 GMT'] + Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} @@ -457,7 +399,7 @@ interactions: 2\">\n
\n* \n
\n
\n\
\n\n
\n \xA9 2018 Hetzner\ \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ @@ -495,8 +437,8 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 17:03:54 GMT'] - Keep-Alive: ['timeout=15, max=96'] + Date: ['Sat, 08 Dec 2018 15:18:11 GMT'] + Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} @@ -508,19 +450,40 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/preferences/culture + uri: https://robot.your-server.de/dns/update/id/556218 response: body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ + centerpadding\">\n \n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n\
\n\n
\n \xA9 2018 Hetzner\ \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ \
\n

Vielen Dank\ - \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ - \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ - \ einsehen.

"} + body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 17:03:55 GMT'] - Keep-Alive: ['timeout=15, max=94'] + Date: ['Sat, 08 Dec 2018 15:18:11 GMT'] + Keep-Alive: ['timeout=15, max=95'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} @@ -572,22 +532,43 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/preferences/culture + uri: https://robot.your-server.de/dns/update/id/556218 response: body: {string: "
\n
\n
\n\n\n\n\n
*
\n
\n\ -
\n\n\n\n\ +
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\n
Impressum\ \ |\n Datenschutz\ @@ -599,13 +580,13 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 17:04:26 GMT'] + Date: ['Sat, 08 Dec 2018 15:18:41 GMT'] Keep-Alive: ['timeout=15, max=100'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120672+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Aorig.nameonly.test+3600+IN+TXT+%22updated%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.testfqdn+3600+IN+TXT+%22challengetoken%22%0Aupdated.testfull+3600+IN+TXT+%22challengetoken%22%0A&_csrf_token=ceb7cc89049e2eb593d67467f91ff41b + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121026+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Aorig.nameonly.test+3600+IN+TXT+%22updated%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.testfqdn+3600+IN+TXT+%22challengetoken%22%0Aupdated.testfull+3600+IN+TXT+%22challengetoken%22%0A headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] @@ -616,14 +597,11 @@ interactions: method: POST uri: https://robot.your-server.de/dns/update response: - body: {string: "

Vielen Dank\ - \ f\xFCr Ihren Auftrag. Der DNS-Eintrag wird nun ge\xE4ndert.

Den aktuellen\ - \ Status k\xF6nnen Sie auf der Liste der DNS-Eintr\xE4ge\ - \ einsehen.

"} + body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Tue, 04 Dec 2018 17:04:27 GMT'] + Date: ['Sat, 08 Dec 2018 15:18:41 GMT'] Keep-Alive: ['timeout=15, max=99'] Server: [Apache] Transfer-Encoding: [chunked] diff --git a/tests/providers/test_hetzner.py b/tests/providers/test_hetzner.py index 8d5ea804d..c8c9889e3 100644 --- a/tests/providers/test_hetzner.py +++ b/tests/providers/test_hetzner.py @@ -10,14 +10,15 @@ # Hook into testing framework by inheriting unittest.TestCase and reuse # the tests which *each and every* implementation of the interface must # pass, by inheritance from integration_tests.IntegrationTests -class HetznerProviderTests(TestCase, IntegrationTests): +class HetznerRobotProviderTests(TestCase, IntegrationTests): Provider = Provider provider_name = 'hetzner' + provider_variant = 'Robot' domain = 'rimek.info' def _filter_post_data_parameters(self): - return ['_username','_password'] + return ['_username','_password', '_csrf_token'] def _filter_headers(self): return ['Cookie'] @@ -28,8 +29,8 @@ def _filter_response(self, response): del response['headers'][cookie] if os.environ.get('LEXICON_LIVE_TESTS', 'false') == 'true': filter_body = BeautifulSoup(response['body']['string'], 'html.parser').find(id='center_col') - if filter_body is None: - filter_body = BeautifulSoup(response['body']['string'], 'html.parser').find(id='msgbox') + if not filter_body: + filter_body = BeautifulSoup(response['body']['string'], 'html.parser').find(id='login-form') response['body']['string'] = str(filter_body) return response @@ -43,3 +44,39 @@ def _test_parameters_overrides(self): 'propagated': 'no', 'live_tests': env_live_tests} return options + +class HetznerKonsoleHProviderTests(TestCase, IntegrationTests): + + Provider = Provider + provider_name = 'hetzner' + provider_variant = 'KonsoleH' + domain = 'bettilaila.com' + + def _filter_post_data_parameters(self): + return ['login_user_inputbox','login_pass_inputbox', '_csrf_name', '_csrf_token'] + + def _filter_headers(self): + return ['Cookie'] + + def _filter_response(self, response): + for cookie in ['set-cookie', 'Set-Cookie']: + if cookie in response['headers']: + del response['headers'][cookie] + if os.environ.get('LEXICON_LIVE_TESTS', 'false') == 'true': + filter_body = BeautifulSoup(response['body']['string'], 'html.parser').find(id='content') + if not filter_body: + filter_body = BeautifulSoup(response['body']['string'], 'html.parser').find(id='loginform') + response['body']['string'] = str(filter_body) + return response + + def _test_parameters_overrides(self): + env_username = os.environ.get('LEXICON_HETZNER_KONSOLEH_USERNAME') + env_password = os.environ.get('LEXICON_HETZNER_KONSOLEH_PASSWORD') + env_live_tests = os.environ.get('LEXICON_LIVE_TESTS', 'false') + options = {'auth_account': 'konsoleh', + 'auth_username': env_username, + 'auth_password': env_password, + 'concatenate': 'no', + 'propagated': 'no', + 'live_tests': env_live_tests} + return options From 330517f9ff2ebc3870062dc75a8a011af4025c9f Mon Sep 17 00:00:00 2001 From: Brian Rimek Date: Sat, 8 Dec 2018 17:55:21 +0100 Subject: [PATCH 11/21] pylint fixes --- lexicon/providers/hetzner.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/lexicon/providers/hetzner.py b/lexicon/providers/hetzner.py index 40546c9de..2d6a19e30 100644 --- a/lexicon/providers/hetzner.py +++ b/lexicon/providers/hetzner.py @@ -132,7 +132,7 @@ def __init__(self, config): } } } - + self.account = ('robot' if self._get_provider_option('auth_account') != 'konsoleh' else 'konsoleh') self.username = self._get_provider_option('auth_username') @@ -148,7 +148,8 @@ def __init__(self, config): # Authenticate against provider. def authenticate(self): name, concatenate = self._concatenate() - self.domain, self.nameservers, self.cname = self._get_dns_cname(self.domain, name, concatenate) + self.domain, self.nameservers, self.cname = self._get_dns_cname(self.domain, name, + concatenate) self.session = self._auth_session(self.username, self.password) self.domain_id = self._get_domain_id(self.domain) self.zone = self._get_zone(self.domain, self.domain_id) @@ -358,7 +359,7 @@ def _parse_identifier(self, identifier): return rdtype, name, content def _wellformed_content(self, rdtype, content): - if rdtype in ('TXT'): + if rdtype == 'TXT': if content[0] != '"': content = '"' + content if content[-1] != '"': @@ -369,7 +370,7 @@ def _wellformed_content(self, rdtype, content): return content def _raw_content(self, rdtype, content): - if rdtype in ('TXT'): + if rdtype == 'TXT': content = content.strip('"') return content @@ -492,22 +493,22 @@ def _extract_hidden_data(dom): def _filter_dom(dom, filters, last_find_all=False): if isinstance(dom, six.string_types): dom = BeautifulSoup(dom, 'html.parser') - for idx, filter in enumerate(filters, start=1): + for idx, find in enumerate(filters, start=1): if not dom: break - name = filter.get('name', None) - attrs = filter.get('attrs',{}) + name = find.get('name', None) + attrs = find.get('attrs', {}) if len(filters) == idx and last_find_all: dom = dom.find_all(name, attrs=attrs) if name else dom.find_all(attrs=attrs) else: dom = dom.find(name, attrs=attrs) if name else dom.find(attrs=attrs) return dom - + def _auth_session(self, username, password): api = self.api[self.account]['auth'] endpoint = api.get('endpoint', self.api[self.account]['endpoint']) session = requests.session() - response = session.request('GET', endpoint + api['GET'].get('url','/')) + response = session.request('GET', endpoint + api['GET'].get('url', '/')) dom = Provider._filter_dom(response.text, api['filter']) data = Provider._extract_hidden_data(dom) data[api['user']], data[api['pass']] = username, password From 7a3f3cf4ed41aa2bc7e66fc1b04224965fba167b Mon Sep 17 00:00:00 2001 From: Brian Rimek Date: Sun, 9 Dec 2018 23:13:09 +0100 Subject: [PATCH 12/21] Replaced try loop with built-in request retry, --- lexicon/providers/hetzner.py | 358 ++++++++++++++++---------------- tests/providers/test_hetzner.py | 9 +- 2 files changed, 184 insertions(+), 183 deletions(-) diff --git a/lexicon/providers/hetzner.py b/lexicon/providers/hetzner.py index 2d6a19e30..17c6c4b25 100644 --- a/lexicon/providers/hetzner.py +++ b/lexicon/providers/hetzner.py @@ -1,12 +1,14 @@ from __future__ import absolute_import from __future__ import unicode_literals +from contextlib import contextmanager import hashlib import logging import re import time import requests import six +from urllib3.util.retry import Retry # Due to optional requirement try: @@ -47,7 +49,7 @@ def ProviderParser(subparser): help='use existent CNAME as record name for create|update|delete ' 'action: by default (yes); Restriction: Only enabled if the record ' 'name or the raw FQDN record identifier \'type/name/content\' is ' - 'spezified, and additionally for update action the record name ' + 'specified, and additionally for update action the record name ' 'remains the same', default=str('yes'), choices=['yes', 'no']) @@ -133,8 +135,14 @@ def __init__(self, config): } } - self.account = ('robot' if self._get_provider_option('auth_account') != 'konsoleh' - else 'konsoleh') + self.account = self._get_provider_option('auth_account') + if self.account in (None, 'robot', 'konsoleh'): + self.account = self.account if self.account else 'robot' + else: + LOGGER.error('Hetzner => Argument for --auth-account is invalid: \'%s\' ' + '(choose from \'robot\' or \'konsoleh\')', + self._get_provider_option('auth_account')) + raise AssertionError self.username = self._get_provider_option('auth_username') assert self.username is not None self.password = self._get_provider_option('auth_password') @@ -151,191 +159,187 @@ def authenticate(self): self.domain, self.nameservers, self.cname = self._get_dns_cname(self.domain, name, concatenate) self.session = self._auth_session(self.username, self.password) - self.domain_id = self._get_domain_id(self.domain) - self.zone = self._get_zone(self.domain, self.domain_id) + with self._exit_session(False): + self.domain_id = self._get_domain_id(self.domain) + self.zone = self._get_zone(self.domain, self.domain_id) # Create record. If record already exists with the same content, do nothing. def create_record(self, type, name, content): - if type is None or name is None or content is None: - LOGGER.error('Hetzner => Record has no type|name|content spezified') - self._exit_session() - return False + with self._exit_session(): + if type is None or name is None or content is None: + LOGGER.error('Hetzner => Record has no type|name|content specified') + return False - rrset = self.zone['data'].get_rdataset((self.cname if self.cname - else self._fqdn_name(name)), - rdtype=type, create=True) - for rdata in rrset: - if self._wellformed_content(type, content) == rdata.to_text(): - LOGGER.info('Hetzner => Record with content \'%s\' already exists', content) - self._exit_session() - return True - - ttl = (rrset.ttl if rrset.ttl > 0 and rrset.ttl < self._get_lexicon_option('ttl') - else self._get_lexicon_option('ttl')) - rdataset = dns.rdataset.from_text(rrset.rdclass, rrset.rdtype, - ttl, self._wellformed_content(type, content)) - rrset.update(rdataset) - synced_change = self._post_zone() - if synced_change: - self._propagated(type, name, content) - self._exit_session() - return synced_change + rrset = self.zone['data'].get_rdataset((self.cname if self.cname + else self._fqdn_name(name)), + rdtype=type, create=True) + for rdata in rrset: + if self._wellformed_content(type, content) == rdata.to_text(): + LOGGER.info('Hetzner => Record with content \'%s\' already exists', + content) + return True + + ttl = (rrset.ttl if rrset.ttl > 0 + and rrset.ttl < self._get_lexicon_option('ttl') + else self._get_lexicon_option('ttl')) + rdataset = dns.rdataset.from_text(rrset.rdclass, rrset.rdtype, + ttl, self._wellformed_content(type, content)) + rrset.update(rdataset) + synced_change = self._post_zone() + if synced_change: + self._propagated(type, name, content) + return synced_change # List all records. Return an empty list if no records found. # type, name and content are used to filter records. # If possible filter during the query, otherwise filter after response is received. def list_records(self, type=None, name=None, content=None): - records = [] - rrsets = self.zone['data'].iterate_rdatasets() if self.zone else [] - for rname, rdataset in rrsets: - rtype = dns.rdatatype.to_text(rdataset.rdtype) - rname = rname.to_text() - if ((not type or type == rtype) - and (not name or (self.cname if self.cname - else self._fqdn_name(name)) == rname)): - for rdata in rdataset: - rdata = rdata.to_text() - if (not content or self._wellformed_content(rtype, content) == rdata): - raw_rdata = self._raw_content(rtype, rdata) - data = { - 'type': rtype, - 'name': self._full_name(rname), - 'ttl': int(rdataset.ttl), - 'content': raw_rdata, - 'id': Provider._build_identifier(rtype, rname, raw_rdata) - } - records.append(data) - if self._get_lexicon_option('action') == 'list': - self._exit_session() - return records + with self._exit_session(): + return self._list_records(type, name, content) # Update a record. # If record does not exist or lookup matching more than one record, do nothing. # If an identifier is specified, use it, otherwise do a lookup using type and name. # Support existent CNAME as record name if: - # * record type & record name or raw FQDN record identifier 'type/name/content' are spezified + # * record type & record name or raw FQDN record identifier 'type/name/content' are specified # * record name remains the same def update_record(self, identifier=None, type=None, name=None, content=None): - if identifier: - delete_type, delete_name, delete_content = self._parse_identifier(identifier) - if delete_type and delete_name and delete_content: - type = type if type else delete_type - name = name if name else delete_name - content = content if content else delete_content + with self._exit_session(): + if identifier: + delete_type, delete_name, delete_content = self._parse_identifier(identifier) + if delete_type and delete_name and delete_content: + type = type if type else delete_type + name = name if name else delete_name + content = content if content else delete_content + else: + LOGGER.error('Hetzner => Record with identifier \'%s\' does not exist', + identifier) + return False + + elif type and name and content: + delete_type, delete_name, delete_content = type, name, None else: - LOGGER.error('Hetzner => Record with identifier \'%s\' does not exist', identifier) - self._exit_session() + LOGGER.error('Hetzner => Record has no type|name|content specified') return False - elif type and name and content: - delete_type, delete_name, delete_content = type, name, None - else: - LOGGER.error('Hetzner => Record has no type|name|content spezified') - self._exit_session() + # Delete record + delete_records = self._list_records(delete_type, delete_name, delete_content) + if delete_records: + for record in delete_records: + delete_rrset = self.zone['data'].get_rdataset(record['name']+'.', + rdtype=record['type']) + keep_rdatas = [] + for delete_rdata in delete_rrset: + if self._wellformed_content(record['type'], + record['content']) != delete_rdata.to_text(): + keep_rdatas.append(delete_rdata.to_text()) + if keep_rdatas: + if delete_content is None: + LOGGER.error('Hetzner => Record lookup matching more than one record') + return False + + keep_rdataset = dns.rdataset.from_text_list(delete_rrset.rdclass, + delete_rrset.rdtype, + record['ttl'], keep_rdatas) + self.zone['data'].replace_rdataset(record['name']+'.', keep_rdataset) + else: + self.zone['data'].delete_rdataset(record['name']+'.', record['type']) + # Create record + rrset = self.zone['data'].get_rdataset((self.cname if self.cname + else self._fqdn_name(name)), + rdtype=type, create=True) + synced_create_change = False + for rdata in rrset: + if self._wellformed_content(type, content) == rdata.to_text(): + LOGGER.info('Hetzner => Record with content \'%s\' already exists', + content) + synced_create_change = True + break + if not synced_create_change: + ttl = (rrset.ttl if rrset.ttl > 0 + and rrset.ttl < self._get_lexicon_option('ttl') + else self._get_lexicon_option('ttl')) + renew_rdataset = dns.rdataset.from_text(rrset.rdclass, rrset.rdtype, ttl, + self._wellformed_content(type, content)) + rrset.update(renew_rdataset) + synced_change = self._post_zone() + if synced_change: + self._propagated(type, name, content) + return synced_change + + LOGGER.error('Hetzner => Record lookup has no matches') return False - # Delete record - delete_records = self.list_records(delete_type, delete_name, delete_content) - if delete_records: - for record in delete_records: - delete_rrset = self.zone['data'].get_rdataset(record['name']+'.', - rdtype=record['type']) - keep_rdatas = [] - for delete_rdata in delete_rrset: - if self._wellformed_content(record['type'], - record['content']) != delete_rdata.to_text(): - keep_rdatas.append(delete_rdata.to_text()) - if keep_rdatas: - if delete_content is None: - LOGGER.error('Hetzner => Record lookup matching more than one record') - self._exit_session() - return False - - keep_rdataset = dns.rdataset.from_text_list(delete_rrset.rdclass, - delete_rrset.rdtype, - record['ttl'], keep_rdatas) - self.zone['data'].replace_rdataset(record['name']+'.', keep_rdataset) - else: - self.zone['data'].delete_rdataset(record['name']+'.', record['type']) - # Create record - rrset = self.zone['data'].get_rdataset((self.cname if self.cname - else self._fqdn_name(name)), - rdtype=type, create=True) - synced_create_change = False - for rdata in rrset: - if self._wellformed_content(type, content) == rdata.to_text(): - LOGGER.info('Hetzner => Record with content \'%s\' already exists', content) - synced_create_change = True - break - if not synced_create_change: - ttl = (rrset.ttl if rrset.ttl > 0 and rrset.ttl < self._get_lexicon_option('ttl') - else self._get_lexicon_option('ttl')) - renew_rdataset = dns.rdataset.from_text(rrset.rdclass, rrset.rdtype, ttl, - self._wellformed_content(type, content)) - rrset.update(renew_rdataset) - synced_change = self._post_zone() - if synced_change: - self._propagated(type, name, content) - self._exit_session() - return synced_change - - LOGGER.error('Hetzner => Record lookup has no matches') - self._exit_session() - return False - # Delete an existing record. # If record does not exist, do nothing. # If an identifier is specified, use it, otherwise do a lookup using type, name and content. # Support existent CNAME as record name if: - # * record type & record name or raw FQDN record identifier 'type/name/content' are spezified + # * record type & record name or raw FQDN record identifier 'type/name/content' are specified def delete_record(self, identifier=None, type=None, name=None, content=None): - if identifier: - type, name, content = self._parse_identifier(identifier) - if type is None or name is None or content is None: - LOGGER.info('Hetzner => Record with identifier \'%s\' does not exist', identifier) - self._exit_session() - return True - - delete_records = self.list_records(type, name, content) - if delete_records: - for record in delete_records: - rrset = self.zone['data'].get_rdataset(record['name']+'.', rdtype=record['type']) - rdatas = [] - for rdata in rrset: - if self._wellformed_content(record['type'], - record['content']) != rdata.to_text(): - rdatas.append(rdata.to_text()) - if rdatas: - rdataset = dns.rdataset.from_text_list(rrset.rdclass, rrset.rdtype, - record['ttl'], rdatas) - self.zone['data'].replace_rdataset(record['name']+'.', rdataset) - else: - self.zone['data'].delete_rdataset(record['name']+'.', record['type']) - synced_change = self._post_zone() - self._exit_session() - return synced_change - - LOGGER.info('Hetzner => Record lookup has no matches') - self._exit_session() - return True + with self._exit_session(): + if identifier: + type, name, content = self._parse_identifier(identifier) + if type is None or name is None or content is None: + LOGGER.info('Hetzner => Record with identifier \'%s\' does not exist', + identifier) + return True + + delete_records = self._list_records(type, name, content) + if delete_records: + for record in delete_records: + rrset = self.zone['data'].get_rdataset(record['name']+'.', + rdtype=record['type']) + rdatas = [] + for rdata in rrset: + if self._wellformed_content(record['type'], + record['content']) != rdata.to_text(): + rdatas.append(rdata.to_text()) + if rdatas: + rdataset = dns.rdataset.from_text_list(rrset.rdclass, rrset.rdtype, + record['ttl'], rdatas) + self.zone['data'].replace_rdataset(record['name']+'.', rdataset) + else: + self.zone['data'].delete_rdataset(record['name']+'.', record['type']) + synced_change = self._post_zone() + return synced_change + + LOGGER.info('Hetzner => Record lookup has no matches') + return True # Lexicon Helpers ########################################################################### + def _list_records(self, rdtype=None, name=None, content=None): + records = [] + rrsets = self.zone['data'].iterate_rdatasets() if self.zone else [] + for rname, rdataset in rrsets: + rtype = dns.rdatatype.to_text(rdataset.rdtype) + rname = rname.to_text() + if ((not rdtype or rdtype == rtype) + and (not name or (self.cname if self.cname + else self._fqdn_name(name)) == rname)): + for rdata in rdataset: + rdata = rdata.to_text() + if (not content or self._wellformed_content(rtype, content) == rdata): + raw_rdata = self._clean_TXT_record({'type': rtype, + 'content': rdata})['content'] + data = { + 'type': rtype, + 'name': self._full_name(rname), + 'ttl': int(rdataset.ttl), + 'content': raw_rdata, + 'id': Provider._build_identifier(rtype, rname, raw_rdata) + } + records.append(data) + return records + def _request(self, action='GET', url='/', data=None, query_params=None): if data is None: data = {} if query_params is None: query_params = {} - for retry in range(10): - try: - response = self.session.request(action, self.api[self.account]['endpoint'] + url, - params=query_params, data=data) - response.raise_for_status() - break - except requests.exceptions.ConnectionError: - if retry == 9: - raise requests.exceptions.ConnectionError - time.sleep(1) + response = self.session.request(action, self.api[self.account]['endpoint'] + url, + params=query_params, data=data) + response.raise_for_status() return response @staticmethod @@ -352,7 +356,7 @@ def _parse_identifier(self, identifier): parts = identifier.split('/') rdtype, name, content = parts[0], parts[1], '/'.join(parts[2:]) else: - records = self.list_records() + records = self._list_records() for record in records: if record['id'] == identifier: rdtype, name, content = record['type'], record['name']+'.', record['content'] @@ -369,11 +373,6 @@ def _wellformed_content(self, rdtype, content): content = self._fqdn_name(content) return content - def _raw_content(self, rdtype, content): - if rdtype == 'TXT': - content = content.strip('"') - return content - def _concatenate(self): action = self._get_lexicon_option('action') identifier = self._get_lexicon_option('identifier') @@ -458,7 +457,6 @@ def _get_dns_cname(self, domain, name=None, concatenate=False): LOGGER.error('Hetzner => Record %s has more than %d concatenated CNAME ' 'entries. Reduce the amount of CNAME concatenations!', name, max_concats) - self._exit_session() raise AssertionError qname = cname if cname else name domain, nameservers = self._get_dns(domain, qname) @@ -468,7 +466,7 @@ def _get_dns_cname(self, domain, name=None, concatenate=False): cname = rrset[0].to_text() else: concatenate = False - LOGGER.info('Hetzner => Record %s has CNAME %s', name, cname) + LOGGER.info('Hetzner => Record %s has CNAME %s', name, cname) return domain, nameservers, cname # Hetzner Helpers @@ -496,8 +494,7 @@ def _filter_dom(dom, filters, last_find_all=False): for idx, find in enumerate(filters, start=1): if not dom: break - name = find.get('name', None) - attrs = find.get('attrs', {}) + name , attrs = find.get('name', None), find.get('attrs', {}) if len(filters) == idx and last_find_all: dom = dom.find_all(name, attrs=attrs) if name else dom.find_all(attrs=attrs) else: @@ -507,7 +504,10 @@ def _filter_dom(dom, filters, last_find_all=False): def _auth_session(self, username, password): api = self.api[self.account]['auth'] endpoint = api.get('endpoint', self.api[self.account]['endpoint']) - session = requests.session() + session = requests.Session() + session_retries = Retry(total=10, backoff_factor=0.5) + session_adapter = requests.adapters.HTTPAdapter(max_retries=session_retries) + session.mount('https://', session_adapter) response = session.request('GET', endpoint + api['GET'].get('url', '/')) dom = Provider._filter_dom(response.text, api['filter']) data = Provider._extract_hidden_data(dom) @@ -522,17 +522,22 @@ def _auth_session(self, username, password): self.account, username) return session - def _exit_session(self): - if self._get_provider_option('live_tests') is None: - api = self.api[self.account] - response = self._get(api['exit']['GET']['url']) - if not Provider._filter_dom(response.text, api['filter']): - LOGGER.info('Hetzner => Exit session') - else: - LOGGER.error('Hetzner => Unable to savely exit session') - self.session = None - return True - return False + @contextmanager + def _exit_session(self, always=True): + try: + yield + except Exception as exc: + always = True + raise exc + finally: + if always and self._get_provider_option('live_tests') is None: + api = self.api[self.account] + response = self._get(api['exit']['GET']['url']) + if not Provider._filter_dom(response.text, api['filter']): + LOGGER.info('Hetzner => Exit session') + else: + LOGGER.error('Hetzner => Unable to savely exit session') + self.session = None def _get_domain_id(self, domain): api = self.api[self.account]['domain_id'] @@ -559,7 +564,6 @@ def _get_domain_id(self, domain): page += 1 if qdomain_id is None: LOGGER.error('Hetzner => ID for domain %s does not exists', qdomain) - self._exit_session() raise AssertionError LOGGER.info('Hetzner => Get ID %s for domain %s', qdomain_id, qdomain) return qdomain_id diff --git a/tests/providers/test_hetzner.py b/tests/providers/test_hetzner.py index c8c9889e3..8f6298a73 100644 --- a/tests/providers/test_hetzner.py +++ b/tests/providers/test_hetzner.py @@ -31,15 +31,12 @@ def _filter_response(self, response): filter_body = BeautifulSoup(response['body']['string'], 'html.parser').find(id='center_col') if not filter_body: filter_body = BeautifulSoup(response['body']['string'], 'html.parser').find(id='login-form') - response['body']['string'] = str(filter_body) + response['body']['string'] = str(filter_body).encode('UTF-8') return response def _test_parameters_overrides(self): - env_username = os.environ.get('LEXICON_HETZNER_AUTH_USERNAME') - env_password = os.environ.get('LEXICON_HETZNER_AUTH_PASSWORD') env_live_tests = os.environ.get('LEXICON_LIVE_TESTS', 'false') - options = {'auth_username': env_username, - 'auth_password': env_password, + options = {'auth_account': 'robot', 'concatenate': 'no', 'propagated': 'no', 'live_tests': env_live_tests} @@ -66,7 +63,7 @@ def _filter_response(self, response): filter_body = BeautifulSoup(response['body']['string'], 'html.parser').find(id='content') if not filter_body: filter_body = BeautifulSoup(response['body']['string'], 'html.parser').find(id='loginform') - response['body']['string'] = str(filter_body) + response['body']['string'] = str(filter_body).encode('UTF-8') return response def _test_parameters_overrides(self): From 984856ceaaae4cc12acd9f818284fafaa39b368b Mon Sep 17 00:00:00 2001 From: Brian Rimek Date: Mon, 10 Dec 2018 00:03:46 +0100 Subject: [PATCH 13/21] use local defined nameserver as initial one pylint: disable=E1101 --- lexicon/providers/hetzner.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/lexicon/providers/hetzner.py b/lexicon/providers/hetzner.py index 17c6c4b25..c43b38567 100644 --- a/lexicon/providers/hetzner.py +++ b/lexicon/providers/hetzner.py @@ -411,12 +411,11 @@ def _propagated(self, rdtype, name, content): # DNS Helpers ########################################################################### def _dns_lookup(self, qname, rdtype, nameservers=None): - if not nameservers: - nameservers = ['8.8.8.8', '8.8.4.4'] rrset = dns.rrset.from_text(qname, 0, 1, rdtype) try: resolver = dns.resolver.Resolver() - resolver.nameservers = nameservers + if nameservers: + resolver.nameservers = nameservers rrset = resolver.query(qname, rdtype) for rdata in rrset: LOGGER.debug('DNS Lookup => %s %s %s %s', @@ -431,7 +430,7 @@ def _get_dns(self, domain, name): nameservers = [] rdtypes_ns = ['SOA', 'NS'] rdtypes_ip = ['A', 'AAAA'] - while (len(qname.labels) > 2 and not nameservers): + while (len(qname.labels) > 2 and not nameservers): # pylint: disable=E1101 for rdtype_ns in rdtypes_ns: for rdata_ns in self._dns_lookup(qname, rdtype_ns): for rdtype_ip in rdtypes_ip: From 3bc9fa8d6cb7cbfc07c9230e2e6c7e5c934f75c3 Mon Sep 17 00:00:00 2001 From: Brian Rimek Date: Mon, 10 Dec 2018 19:04:03 +0100 Subject: [PATCH 14/21] Isolated session building for every public method/action --- .vscode/settings.json | 3 - lexicon/providers/hetzner.py | 98 +- .../test_Provider_authenticate.yaml | 151 +- ...ate_with_unmanaged_domain_should_fail.yaml | 103 +- ...ord_for_A_with_valid_name_and_content.yaml | 335 +++- ...for_CNAME_with_valid_name_and_content.yaml | 379 ++-- ...rd_for_TXT_with_fqdn_name_and_content.yaml | 379 ++-- ...rd_for_TXT_with_full_name_and_content.yaml | 380 ++-- ...d_for_TXT_with_valid_name_and_content.yaml | 385 ++-- ...ltiple_times_should_create_record_set.yaml | 639 +++++-- ...with_duplicate_records_should_be_noop.yaml | 1077 ++++++++++-- ...record_by_filter_should_remove_record.yaml | 1077 ++++++++++-- ...r_with_fqdn_name_should_remove_record.yaml | 1081 ++++++++++-- ...r_with_full_name_should_remove_record.yaml | 1079 ++++++++++-- ...rd_by_identifier_should_remove_record.yaml | 1497 +++++++++++++--- ...content_should_leave_others_untouched.yaml | 1522 +++++++++++++--- ...ecord_with_record_set_name_remove_all.yaml | 1545 +++++++++++++---- ...alling_list_records_after_setting_ttl.yaml | 696 +++++++- ...ist_records_should_handle_record_sets.yaml | 1091 ++++++++++-- ...fqdn_name_filter_should_return_record.yaml | 737 ++++++-- ...full_name_filter_should_return_record.yaml | 744 ++++++-- ...h_invalid_filter_should_be_empty_list.yaml | 335 +++- ...with_name_filter_should_return_record.yaml | 742 ++++++-- ...rds_with_no_arguments_should_list_all.yaml | 335 +++- ...ng_update_record_should_modify_record.yaml | 1086 ++++++++++-- ...d_should_modify_record_name_specified.yaml | 661 +++++-- ...d_with_fqdn_name_should_modify_record.yaml | 1090 ++++++++++-- ...d_with_full_name_should_modify_record.yaml | 1082 ++++++++++-- .../test_Provider_authenticate.yaml | 88 +- ...ate_with_unmanaged_domain_should_fail.yaml | 75 +- ...ord_for_A_with_valid_name_and_content.yaml | 326 +++- ...for_CNAME_with_valid_name_and_content.yaml | 349 +++- ...rd_for_TXT_with_fqdn_name_and_content.yaml | 350 +++- ...rd_for_TXT_with_full_name_and_content.yaml | 351 +++- ...d_for_TXT_with_valid_name_and_content.yaml | 352 +++- ...ltiple_times_should_create_record_set.yaml | 613 ++++++- ...with_duplicate_records_should_be_noop.yaml | 900 +++++++++- ...record_by_filter_should_remove_record.yaml | 1016 +++++++++-- ...r_with_fqdn_name_should_remove_record.yaml | 1016 +++++++++-- ...r_with_full_name_should_remove_record.yaml | 1016 +++++++++-- ...rd_by_identifier_should_remove_record.yaml | 1317 ++++++++++++-- ...content_should_leave_others_untouched.yaml | 1278 ++++++++++++-- ...ecord_with_record_set_name_remove_all.yaml | 1285 ++++++++++++-- ...alling_list_records_after_setting_ttl.yaml | 608 ++++++- ...ist_records_should_handle_record_sets.yaml | 1031 +++++++++-- ...fqdn_name_filter_should_return_record.yaml | 600 ++++++- ...full_name_filter_should_return_record.yaml | 614 ++++++- ...h_invalid_filter_should_be_empty_list.yaml | 326 +++- ...with_name_filter_should_return_record.yaml | 609 ++++++- ...rds_with_no_arguments_should_list_all.yaml | 326 +++- ...ng_update_record_should_modify_record.yaml | 1013 +++++++++-- ...d_should_modify_record_name_specified.yaml | 710 ++++++-- ...d_with_fqdn_name_should_modify_record.yaml | 1021 +++++++++-- ...d_with_full_name_should_modify_record.yaml | 1024 +++++++++-- tests/providers/test_hetzner.py | 8 +- 55 files changed, 33243 insertions(+), 5308 deletions(-) delete mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index fe7159848..000000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "python.linting.pylintEnabled": false -} \ No newline at end of file diff --git a/lexicon/providers/hetzner.py b/lexicon/providers/hetzner.py index c43b38567..2a539f978 100644 --- a/lexicon/providers/hetzner.py +++ b/lexicon/providers/hetzner.py @@ -135,44 +135,35 @@ def __init__(self, config): } } - self.account = self._get_provider_option('auth_account') + self.account = self._get_provider_option('auth_account') if self.account in (None, 'robot', 'konsoleh'): self.account = self.account if self.account else 'robot' else: LOGGER.error('Hetzner => Argument for --auth-account is invalid: \'%s\' ' - '(choose from \'robot\' or \'konsoleh\')', - self._get_provider_option('auth_account')) + '(choose from \'robot\' or \'konsoleh\')', self.account) raise AssertionError self.username = self._get_provider_option('auth_username') assert self.username is not None self.password = self._get_provider_option('auth_password') assert self.password is not None - self.nameservers = None - self.cname = None - self.session = None - self.zone = None + self.session, self.nameservers, self.cname, self.zone = None, None, None, None # Authenticate against provider. def authenticate(self): - name, concatenate = self._concatenate() - self.domain, self.nameservers, self.cname = self._get_dns_cname(self.domain, name, - concatenate) - self.session = self._auth_session(self.username, self.password) - with self._exit_session(False): - self.domain_id = self._get_domain_id(self.domain) - self.zone = self._get_zone(self.domain, self.domain_id) + with self._session(): + return True # Create record. If record already exists with the same content, do nothing. def create_record(self, type, name, content): - with self._exit_session(): + with self._session(self.domain): if type is None or name is None or content is None: LOGGER.error('Hetzner => Record has no type|name|content specified') return False rrset = self.zone['data'].get_rdataset((self.cname if self.cname else self._fqdn_name(name)), - rdtype=type, create=True) + rdtype=type, create=True) for rdata in rrset: if self._wellformed_content(type, content) == rdata.to_text(): LOGGER.info('Hetzner => Record with content \'%s\' already exists', @@ -183,7 +174,7 @@ def create_record(self, type, name, content): and rrset.ttl < self._get_lexicon_option('ttl') else self._get_lexicon_option('ttl')) rdataset = dns.rdataset.from_text(rrset.rdclass, rrset.rdtype, - ttl, self._wellformed_content(type, content)) + ttl, self._wellformed_content(type, content)) rrset.update(rdataset) synced_change = self._post_zone() if synced_change: @@ -194,7 +185,7 @@ def create_record(self, type, name, content): # type, name and content are used to filter records. # If possible filter during the query, otherwise filter after response is received. def list_records(self, type=None, name=None, content=None): - with self._exit_session(): + with self._session(self.domain): return self._list_records(type, name, content) # Update a record. @@ -204,7 +195,7 @@ def list_records(self, type=None, name=None, content=None): # * record type & record name or raw FQDN record identifier 'type/name/content' are specified # * record name remains the same def update_record(self, identifier=None, type=None, name=None, content=None): - with self._exit_session(): + with self._session(self.domain): if identifier: delete_type, delete_name, delete_content = self._parse_identifier(identifier) if delete_type and delete_name and delete_content: @@ -227,7 +218,7 @@ def update_record(self, identifier=None, type=None, name=None, content=None): if delete_records: for record in delete_records: delete_rrset = self.zone['data'].get_rdataset(record['name']+'.', - rdtype=record['type']) + rdtype=record['type']) keep_rdatas = [] for delete_rdata in delete_rrset: if self._wellformed_content(record['type'], @@ -247,7 +238,7 @@ def update_record(self, identifier=None, type=None, name=None, content=None): # Create record rrset = self.zone['data'].get_rdataset((self.cname if self.cname else self._fqdn_name(name)), - rdtype=type, create=True) + rdtype=type, create=True) synced_create_change = False for rdata in rrset: if self._wellformed_content(type, content) == rdata.to_text(): @@ -276,7 +267,7 @@ def update_record(self, identifier=None, type=None, name=None, content=None): # Support existent CNAME as record name if: # * record type & record name or raw FQDN record identifier 'type/name/content' are specified def delete_record(self, identifier=None, type=None, name=None, content=None): - with self._exit_session(): + with self._session(self.domain): if identifier: type, name, content = self._parse_identifier(identifier) if type is None or name is None or content is None: @@ -296,7 +287,7 @@ def delete_record(self, identifier=None, type=None, name=None, content=None): rdatas.append(rdata.to_text()) if rdatas: rdataset = dns.rdataset.from_text_list(rrset.rdclass, rrset.rdtype, - record['ttl'], rdatas) + record['ttl'], rdatas) self.zone['data'].replace_rdataset(record['name']+'.', rdataset) else: self.zone['data'].delete_rdataset(record['name']+'.', record['type']) @@ -316,7 +307,7 @@ def _list_records(self, rdtype=None, name=None, content=None): rname = rname.to_text() if ((not rdtype or rdtype == rtype) and (not name or (self.cname if self.cname - else self._fqdn_name(name)) == rname)): + else self._fqdn_name(name)) == rname)): for rdata in rdataset: rdata = rdata.to_text() if (not content or self._wellformed_content(rtype, content) == rdata): @@ -385,11 +376,11 @@ def _concatenate(self): name_update = self._fqdn_name(name_update) if name_update else name if action != 'list' and rdtype and rdtype != 'CNAME' and name and concatenate: if action != 'update' or name == name_update: - LOGGER.info('Hetzner => Enabled CNAME lookup, ' - 'see --concatenate option with \'lexicon hetzner --help\'') + LOGGER.info('Hetzner => Enable CNAME lookup, ' + 'see --concatenate option') return name, True - LOGGER.info('Hetzner => Disabled CNAME lookup, ' - 'see --concatenate option with \'lexicon hetzner --help\'') + LOGGER.info('Hetzner => Disable CNAME lookup, ' + 'see --concatenate option') return name, False def _propagated(self, rdtype, name, content): @@ -403,8 +394,8 @@ def _propagated(self, rdtype, name, content): if self._wellformed_content(rdtype, content) == rdata.to_text(): return True retry += 1 - LOGGER.info('Hetzner => Record is not propagated, %d retries remaining - ' - 'wait 30s...', (max_retry - retry)) + LOGGER.info('Hetzner => Record is not propagated, retry (%d remaining) ' + 'after 30s...', (max_retry - retry)) time.sleep(30) return False @@ -430,7 +421,7 @@ def _get_dns(self, domain, name): nameservers = [] rdtypes_ns = ['SOA', 'NS'] rdtypes_ip = ['A', 'AAAA'] - while (len(qname.labels) > 2 and not nameservers): # pylint: disable=E1101 + while (len(qname.labels) > 2 and not nameservers): # pylint: disable=no-member for rdtype_ns in rdtypes_ns: for rdata_ns in self._dns_lookup(qname, rdtype_ns): for rdtype_ip in rdtypes_ip: @@ -493,7 +484,7 @@ def _filter_dom(dom, filters, last_find_all=False): for idx, find in enumerate(filters, start=1): if not dom: break - name , attrs = find.get('name', None), find.get('attrs', {}) + name, attrs = find.get('name', None), find.get('attrs', {}) if len(filters) == idx and last_find_all: dom = dom.find_all(name, attrs=attrs) if name else dom.find_all(attrs=attrs) else: @@ -521,22 +512,33 @@ def _auth_session(self, username, password): self.account, username) return session + def _exit_session(self): + api = self.api[self.account] + response = self._get(api['exit']['GET']['url']) + if not Provider._filter_dom(response.text, api['filter']): + LOGGER.info('Hetzner => Exit session') + else: + LOGGER.error('Hetzner => Unable to savely exit session') + return None + @contextmanager - def _exit_session(self, always=True): + def _session(self, domain=None): + name, concatenate = self._concatenate() + self.domain, self.nameservers, self.cname = self._get_dns_cname(self.domain, name, + concatenate) + self.session = self._auth_session(self.username, self.password) try: - yield + if self.domain != domain: + self.domain_id = self._get_domain_id(self.domain) + if domain: + self.zone = self._get_zone(self.domain, self.domain_id) except Exception as exc: - always = True + self.session = self._exit_session() + self.nameservers, self.cname, self.zone = None, None, None raise exc - finally: - if always and self._get_provider_option('live_tests') is None: - api = self.api[self.account] - response = self._get(api['exit']['GET']['url']) - if not Provider._filter_dom(response.text, api['filter']): - LOGGER.info('Hetzner => Exit session') - else: - LOGGER.error('Hetzner => Unable to savely exit session') - self.session = None + yield + self.session = self._exit_session() + self.nameservers, self.cname, self.zone = None, None, None def _get_domain_id(self, domain): api = self.api[self.account]['domain_id'] @@ -587,21 +589,19 @@ def _get_zone(self, domain, domain_id): def _post_zone(self): api = self.api[self.account]['zone'] - zone = self._get_zone(self.domain, self.domain_id) - data = zone['hidden'] + data = self.zone['hidden'] data[api['file']] = self.zone['data'].to_text(relativize=True) response = self._post(api['POST']['url'], data=data) if Provider._filter_dom(response.text, api['filter']): LOGGER.error('Hetzner => Unable to update data for domain ID %s: Syntax error\n\n%s', self.domain_id, self.zone['data'].to_text(relativize=True).decode('UTF-8')) - self.zone = zone return False LOGGER.info('Hetzner => Update data for domain ID %s\n\n%s', self.domain_id, self.zone['data'].to_text(relativize=True).decode('UTF-8')) - if self._get_provider_option('live_tests') != 'false' and self.account == 'robot': - LOGGER.info('Hetzner => Wait 30s...') + if self.account == 'robot': + LOGGER.info('Hetzner => Wait 30s until Hetzner Robot has took over data...') time.sleep(30) return True diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_authenticate.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_authenticate.yaml index 5823f2ff4..1cedc9ecf 100644 --- a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_authenticate.yaml +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_authenticate.yaml @@ -11,8 +11,8 @@ interactions: response: body: {string: "
\n\n\n\n\"konsoleH\"\n
\"de\"\\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ - \n\n\_\n
\n\ - \n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ - \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ - \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ -
\n

\nStatus:\n\ - \_\uE800\_\_\ - Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ - In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ - Gek\xFCndigt

\n
"} + body: {string: None} headers: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] + Content-Length: ['0'] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:19:11 GMT'] + Date: ['Mon, 10 Dec 2018 17:33:43 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] Keep-Alive: ['timeout=15, max=96'] + Location: ['https://konsoleh.your-server.de/?err=logout'] Pragma: [no-cache] Server: [Apache] - Vary: [Accept-Encoding] - content-length: ['9688'] - status: {code: 200, message: OK} + status: {code: 302, message: Moved Temporarily} - request: body: null headers: @@ -255,64 +222,52 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + uri: https://konsoleh.your-server.de/?err=logout response: - body: {string: "
Bitte beachten Sie,\ - \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ - \ Sie wirksam werden.

\nEbenso\ - \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ - \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ - \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ - chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ - \ keine Haftung.

\n \ - \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ - \ m\xF6chten, ist es zwingend\n notwendig ein\ - \ Update der Domain beim Registrar durchzuf\xFChren.\n \ - \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ - \ reicht\n daf\xFCr nicht aus!

DNS:\ - \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ - Record hinzuf\xFCgen\n \_\_|\_\_\ - \n \n\n\n
\n
\n\ -
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n\ -
\n
"} + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n
"} headers: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:19:12 GMT'] + Date: ['Mon, 10 Dec 2018 17:33:43 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] Keep-Alive: ['timeout=15, max=95'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['10338'] + content-length: ['6620'] status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_authenticate_with_unmanaged_domain_should_fail.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_authenticate_with_unmanaged_domain_should_fail.yaml index b32844a22..3591d930d 100644 --- a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_authenticate_with_unmanaged_domain_should_fail.yaml +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_authenticate_with_unmanaged_domain_should_fail.yaml @@ -11,8 +11,8 @@ interactions: response: body: {string: "
\n\n\n\n\"konsoleH\"\n
\"de\"\\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:33:44 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6621'] status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_for_A_with_valid_name_and_content.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_for_A_with_valid_name_and_content.yaml index f3b7aa2d3..041628f48 100644 --- a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_for_A_with_valid_name_and_content.yaml +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_for_A_with_valid_name_and_content.yaml @@ -11,8 +11,8 @@ interactions: response: body: {string: "
\n\n\n\n\"konsoleH\"\n
\"de\"\\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:33:45 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6621'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:33:45 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6791'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['240'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:33:46 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:33:46 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6148'] status: {code: 200, message: OK} - request: body: null @@ -239,13 +455,13 @@ interactions: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:19:16 GMT'] + Date: ['Mon, 10 Dec 2018 17:33:46 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=96'] + Keep-Alive: ['timeout=15, max=97'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['9688'] + content-length: ['9705'] status: {code: 200, message: OK} - request: body: null @@ -272,8 +488,8 @@ interactions: \ reicht\n daf\xFCr nicht aus!

DNS:\ \ bettilaila.com

\n
\n
\n
\n\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ Record hinzuf\xFCgen\n \_\_|\_\_\ @@ -289,11 +505,11 @@ interactions: \ m\xF6chten? Dies k\xF6nnte dazu f\xFChren, dass die Domain nicht mehr erreichbar\ \ ist!')\" type=\"submit\" value=\"Zone l\xF6schen\"/>\n
\n
\n\
\n\n\n\n
\n\n\n\n
\n

\n\n

\n
\n\ -
\n
"} + Gek\xFCndigt

\n
"} headers: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:19:19 GMT'] + Date: ['Mon, 10 Dec 2018 17:33:54 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Keep-Alive: ['timeout=15, max=98'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['10339'] + content-length: ['6148'] status: {code: 200, message: OK} - request: body: null @@ -363,13 +455,13 @@ interactions: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:19:19 GMT'] + Date: ['Mon, 10 Dec 2018 17:33:54 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=94'] + Keep-Alive: ['timeout=15, max=97'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['9688'] + content-length: ['9705'] status: {code: 200, message: OK} - request: body: null @@ -396,8 +488,8 @@ interactions: \ reicht\n daf\xFCr nicht aus!

DNS:\ \ bettilaila.com

\n
\n
\n
\n\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ Record hinzuf\xFCgen\n \_\_|\_\_\ @@ -413,11 +505,11 @@ interactions: \ m\xF6chten? Dies k\xF6nnte dazu f\xFChren, dass die Domain nicht mehr erreichbar\ \ ist!')\" type=\"submit\" value=\"Zone l\xF6schen\"/>\n
\n
\n\
\n\n\n\n
\n\n\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:33:56 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=93'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['10240'] + content-length: ['6619'] status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_fqdn_name_and_content.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_fqdn_name_and_content.yaml index 4d179d87c..3008bd756 100644 --- a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_fqdn_name_and_content.yaml +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_fqdn_name_and_content.yaml @@ -11,8 +11,8 @@ interactions: response: body: {string: "
\n\n\n\n\"konsoleH\"\n
\"de\"\\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:33:58 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6621'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:33:58 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6792'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['241'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:33:58 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ response: body: {string: "
\n
\nHerzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ \

Domains (1)

bettilaila.com
Domainregistrierung
\n\
\n

\nStatus:\n\ @@ -233,87 +394,18 @@ interactions: \ title=\"Gesperrt\">\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ - Gek\xFCndigt

\n
"} - headers: - Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:19:22 GMT'] - Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=96'] - Pragma: [no-cache] - Server: [Apache] - Vary: [Accept-Encoding] - content-length: ['9688'] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea - response: - body: {string: "
Bitte beachten Sie,\ - \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ - \ Sie wirksam werden.

\nEbenso\ - \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ - \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ - \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ - chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ - \ keine Haftung.

\n \ - \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ - \ m\xF6chten, ist es zwingend\n notwendig ein\ - \ Update der Domain beim Registrar durchzuf\xFChren.\n \ - \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ - \ reicht\n daf\xFCr nicht aus!

DNS:\ - \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ - Record hinzuf\xFCgen\n \_\_|\_\_\ - \n \n\n\n
\n
\n\ -
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + Gek\xFCndigt

\n
"} headers: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:19:23 GMT'] + Date: ['Mon, 10 Dec 2018 17:33:59 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Keep-Alive: ['timeout=15, max=98'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['10392'] + content-length: ['6148'] status: {code: 200, message: OK} - request: body: null @@ -363,13 +455,13 @@ interactions: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:19:23 GMT'] + Date: ['Mon, 10 Dec 2018 17:33:59 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=94'] + Keep-Alive: ['timeout=15, max=97'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['9688'] + content-length: ['9705'] status: {code: 200, message: OK} - request: body: null @@ -396,8 +488,8 @@ interactions: \ reicht\n daf\xFCr nicht aus!

DNS:\ \ bettilaila.com

\n
\n
\n
\n\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ Record hinzuf\xFCgen\n \_\_|\_\_\ @@ -413,11 +505,11 @@ interactions: \ m\xF6chten? Dies k\xF6nnte dazu f\xFChren, dass die Domain nicht mehr erreichbar\ \ ist!')\" type=\"submit\" value=\"Zone l\xF6schen\"/>\n
\n
\n\
\n\n\n\n
\n\n\ @@ -500,12 +592,91 @@ interactions: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:19:24 GMT'] + Date: ['Mon, 10 Dec 2018 17:34:00 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=92'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10315'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/logout.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:00 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Location: ['https://konsoleh.your-server.de/?err=logout'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?err=logout + response: + body: {string: "\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:01 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=93'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['10298'] + content-length: ['6621'] status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_full_name_and_content.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_full_name_and_content.yaml index 6efa27510..05af36ae1 100644 --- a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_full_name_and_content.yaml +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_full_name_and_content.yaml @@ -11,8 +11,8 @@ interactions: response: body: {string: "
\n\n\n\n\"konsoleH\"\n
\"de\"\\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:02 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6621'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:02 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6792'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['241'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:02 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ response: body: {string: "
\n
\nHerzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ \

Domains (1)

bettilaila.com
Domainregistrierung
\n\
\n

\nStatus:\n\ @@ -233,88 +394,18 @@ interactions: \ title=\"Gesperrt\">\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ - Gek\xFCndigt

\n
"} - headers: - Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:19:27 GMT'] - Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=96'] - Pragma: [no-cache] - Server: [Apache] - Vary: [Accept-Encoding] - content-length: ['9688'] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea - response: - body: {string: "
Bitte beachten Sie,\ - \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ - \ Sie wirksam werden.

\nEbenso\ - \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ - \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ - \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ - chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ - \ keine Haftung.

\n \ - \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ - \ m\xF6chten, ist es zwingend\n notwendig ein\ - \ Update der Domain beim Registrar durchzuf\xFChren.\n \ - \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ - \ reicht\n daf\xFCr nicht aus!

DNS:\ - \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ - Record hinzuf\xFCgen\n \_\_|\_\_\ - \n \n\n\n
\n
\n\ -
\n\n\n
\n\n\n\n
\n\ -

\n\n\ -

\n
\n
\n
"} + Gek\xFCndigt

\n
"} headers: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:19:27 GMT'] + Date: ['Mon, 10 Dec 2018 17:34:02 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Keep-Alive: ['timeout=15, max=98'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['10458'] + content-length: ['6148'] status: {code: 200, message: OK} - request: body: null @@ -364,13 +455,13 @@ interactions: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:19:28 GMT'] + Date: ['Mon, 10 Dec 2018 17:34:02 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=94'] + Keep-Alive: ['timeout=15, max=97'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['9688'] + content-length: ['9705'] status: {code: 200, message: OK} - request: body: null @@ -397,8 +488,8 @@ interactions: \ reicht\n daf\xFCr nicht aus!

DNS:\ \ bettilaila.com

\n
\n
\n
\n\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ Record hinzuf\xFCgen\n \_\_|\_\_\ @@ -414,11 +505,11 @@ interactions: \ m\xF6chten? Dies k\xF6nnte dazu f\xFChren, dass die Domain nicht mehr erreichbar\ \ ist!')\" type=\"submit\" value=\"Zone l\xF6schen\"/>\n
\n
\n\
\n\n\n\n
\n\n\ - \n\ - \n
\n\ -

\n\n\ -

\n
\n
\n
"} + Gek\xFCndigt

\n
"} headers: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:19:31 GMT'] + Date: ['Mon, 10 Dec 2018 17:34:06 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Keep-Alive: ['timeout=15, max=98'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['10524'] + content-length: ['6148'] status: {code: 200, message: OK} - request: body: null @@ -365,13 +455,13 @@ interactions: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:19:32 GMT'] + Date: ['Mon, 10 Dec 2018 17:34:06 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=94'] + Keep-Alive: ['timeout=15, max=97'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['9688'] + content-length: ['9705'] status: {code: 200, message: OK} - request: body: null @@ -398,8 +488,8 @@ interactions: \ reicht\n daf\xFCr nicht aus!

DNS:\ \ bettilaila.com

\n
\n
\n
\n\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ Record hinzuf\xFCgen\n \_\_|\_\_\ @@ -415,11 +505,11 @@ interactions: \ m\xF6chten? Dies k\xF6nnte dazu f\xFChren, dass die Domain nicht mehr erreichbar\ \ ist!')\" type=\"submit\" value=\"Zone l\xF6schen\"/>\n
\n
\n\
\n\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n"} + Gek\xFCndigt

\n"} headers: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:19:35 GMT'] + Date: ['Mon, 10 Dec 2018 17:34:09 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Keep-Alive: ['timeout=15, max=98'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['10588'] + content-length: ['6148'] status: {code: 200, message: OK} - request: body: null @@ -365,13 +455,13 @@ interactions: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:19:36 GMT'] + Date: ['Mon, 10 Dec 2018 17:34:09 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=94'] + Keep-Alive: ['timeout=15, max=97'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['9688'] + content-length: ['9705'] status: {code: 200, message: OK} - request: body: null @@ -398,8 +488,8 @@ interactions: \ reicht\n daf\xFCr nicht aus!

DNS:\ \ bettilaila.com

\n
\n
\n
\n\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ Record hinzuf\xFCgen\n \_\_|\_\_\ @@ -415,11 +505,11 @@ interactions: \ m\xF6chten? Dies k\xF6nnte dazu f\xFChren, dass die Domain nicht mehr erreichbar\ \ ist!')\" type=\"submit\" value=\"Zone l\xF6schen\"/>\n
\n
\n\
\n\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n"} + Gek\xFCndigt

\n"} headers: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:19:41 GMT'] + Date: ['Mon, 10 Dec 2018 17:34:15 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Keep-Alive: ['timeout=15, max=98'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['10742'] + content-length: ['6148'] status: {code: 200, message: OK} - request: body: null @@ -367,13 +455,13 @@ interactions: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:19:42 GMT'] + Date: ['Mon, 10 Dec 2018 17:34:15 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=94'] + Keep-Alive: ['timeout=15, max=97'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['9688'] + content-length: ['9705'] status: {code: 200, message: OK} - request: body: null @@ -400,8 +488,8 @@ interactions: \ reicht\n daf\xFCr nicht aus!

DNS:\ \ bettilaila.com

\n
\n
\n
\n\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ Record hinzuf\xFCgen\n \_\_|\_\_\ @@ -417,11 +505,11 @@ interactions: \ m\xF6chten? Dies k\xF6nnte dazu f\xFChren, dass die Domain nicht mehr erreichbar\ \ ist!')\" type=\"submit\" value=\"Zone l\xF6schen\"/>\n
\n
\n\
\n\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:18 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10824'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/logout.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:19 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Location: ['https://konsoleh.your-server.de/?err=logout'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?err=logout + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:19 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6620'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:19 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6791'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['240'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:19 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:19 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6148'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:19 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9705'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:20 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10824'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/logout.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:21 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Location: ['https://konsoleh.your-server.de/?err=logout'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?err=logout + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:21 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['10622'] + content-length: ['6621'] status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_should_remove_record.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_should_remove_record.yaml index 2cbcec755..ec87181a2 100644 --- a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_should_remove_record.yaml +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_should_remove_record.yaml @@ -11,8 +11,8 @@ interactions: response: body: {string: "
\n\n\n\n\"konsoleH\"\n
\"de\"\\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:22 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6621'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:22 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6790'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['239'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:23 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ response: body: {string: "
\n
\nHerzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ \

Domains (1)

bettilaila.com
Domainregistrierung
\n\
\n

\nStatus:\n\ @@ -233,92 +394,18 @@ interactions: \ title=\"Gesperrt\">\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ - Gek\xFCndigt

\n
"} - headers: - Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:19:45 GMT'] - Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=96'] - Pragma: [no-cache] - Server: [Apache] - Vary: [Accept-Encoding] - content-length: ['9688'] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea - response: - body: {string: "
Bitte beachten Sie,\ - \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ - \ Sie wirksam werden.

\nEbenso\ - \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ - \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ - \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ - chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ - \ keine Haftung.

\n \ - \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ - \ m\xF6chten, ist es zwingend\n notwendig ein\ - \ Update der Domain beim Registrar durchzuf\xFChren.\n \ - \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ - \ reicht\n daf\xFCr nicht aus!

DNS:\ - \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ - Record hinzuf\xFCgen\n \_\_|\_\_\ - \n \n\n\n
\n
\n\ -
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + Gek\xFCndigt

\n"} headers: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:19:45 GMT'] + Date: ['Mon, 10 Dec 2018 17:34:23 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Keep-Alive: ['timeout=15, max=98'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['10808'] + content-length: ['6148'] status: {code: 200, message: OK} - request: body: null @@ -368,13 +455,13 @@ interactions: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:19:46 GMT'] + Date: ['Mon, 10 Dec 2018 17:34:23 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=94'] + Keep-Alive: ['timeout=15, max=97'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['9688'] + content-length: ['9705'] status: {code: 200, message: OK} - request: body: null @@ -401,8 +488,8 @@ interactions: \ reicht\n daf\xFCr nicht aus!

DNS:\ \ bettilaila.com

\n
\n
\n
\n\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ Record hinzuf\xFCgen\n \_\_|\_\_\ @@ -418,11 +505,11 @@ interactions: \ m\xF6chten? Dies k\xF6nnte dazu f\xFChren, dass die Domain nicht mehr erreichbar\ \ ist!')\" type=\"submit\" value=\"Zone l\xF6schen\"/>\n
\n
\n\
\n\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:28 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10824'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/logout.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:28 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Location: ['https://konsoleh.your-server.de/?err=logout'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?err=logout + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:28 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['10623'] + content-length: ['6620'] status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_fqdn_name_should_remove_record.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_fqdn_name_should_remove_record.yaml index 27dc86a0e..9c07cf868 100644 --- a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_fqdn_name_should_remove_record.yaml +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_fqdn_name_should_remove_record.yaml @@ -11,8 +11,8 @@ interactions: response: body: {string: "
\n\n\n\n\"konsoleH\"\n
\"de\"\\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:30 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6621'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:30 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6792'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['241'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:30 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ response: body: {string: "
\n
\nHerzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ \

Domains (1)

bettilaila.com
Domainregistrierung
\n\
\n

\nStatus:\n\ @@ -233,92 +394,18 @@ interactions: \ title=\"Gesperrt\">\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ - Gek\xFCndigt

\n
"} - headers: - Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:19:51 GMT'] - Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=96'] - Pragma: [no-cache] - Server: [Apache] - Vary: [Accept-Encoding] - content-length: ['9688'] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea - response: - body: {string: "
Bitte beachten Sie,\ - \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ - \ Sie wirksam werden.

\nEbenso\ - \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ - \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ - \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ - chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ - \ keine Haftung.

\n \ - \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ - \ m\xF6chten, ist es zwingend\n notwendig ein\ - \ Update der Domain beim Registrar durchzuf\xFChren.\n \ - \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ - \ reicht\n daf\xFCr nicht aus!

DNS:\ - \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ - Record hinzuf\xFCgen\n \_\_|\_\_\ - \n \n\n\n
\n
\n\ -
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + Gek\xFCndigt

\n"} headers: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:19:51 GMT'] + Date: ['Mon, 10 Dec 2018 17:34:30 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Keep-Alive: ['timeout=15, max=98'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['10808'] + content-length: ['6148'] status: {code: 200, message: OK} - request: body: null @@ -368,13 +455,13 @@ interactions: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:19:52 GMT'] + Date: ['Mon, 10 Dec 2018 17:34:31 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=94'] + Keep-Alive: ['timeout=15, max=97'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['9688'] + content-length: ['9705'] status: {code: 200, message: OK} - request: body: null @@ -401,8 +488,8 @@ interactions: \ reicht\n daf\xFCr nicht aus!

DNS:\ \ bettilaila.com

\n
\n
\n
\n\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ Record hinzuf\xFCgen\n \_\_|\_\_\ @@ -418,11 +505,11 @@ interactions: \ m\xF6chten? Dies k\xF6nnte dazu f\xFChren, dass die Domain nicht mehr erreichbar\ \ ist!')\" type=\"submit\" value=\"Zone l\xF6schen\"/>\n
\n
\n\
\n\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:36 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10823'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/logout.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:36 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Location: ['https://konsoleh.your-server.de/?err=logout'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?err=logout + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:36 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['10623'] + content-length: ['6620'] status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_full_name_should_remove_record.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_full_name_should_remove_record.yaml index 368b05e94..0757c53ab 100644 --- a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_full_name_should_remove_record.yaml +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_full_name_should_remove_record.yaml @@ -11,8 +11,8 @@ interactions: response: body: {string: "
\n\n\n\n\"konsoleH\"\n
\"de\"\\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:38 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6620'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:38 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6792'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['241'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:38 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ response: body: {string: "
\n
\nHerzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ \

Domains (1)

bettilaila.com
Domainregistrierung
\n\
\n

\nStatus:\n\ @@ -233,92 +394,18 @@ interactions: \ title=\"Gesperrt\">\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ - Gek\xFCndigt

\n
"} - headers: - Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:19:57 GMT'] - Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=96'] - Pragma: [no-cache] - Server: [Apache] - Vary: [Accept-Encoding] - content-length: ['9688'] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea - response: - body: {string: "
Bitte beachten Sie,\ - \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ - \ Sie wirksam werden.

\nEbenso\ - \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ - \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ - \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ - chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ - \ keine Haftung.

\n \ - \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ - \ m\xF6chten, ist es zwingend\n notwendig ein\ - \ Update der Domain beim Registrar durchzuf\xFChren.\n \ - \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ - \ reicht\n daf\xFCr nicht aus!

DNS:\ - \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ - Record hinzuf\xFCgen\n \_\_|\_\_\ - \n \n\n\n
\n
\n\ -
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + Gek\xFCndigt

\n"} headers: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:19:57 GMT'] + Date: ['Mon, 10 Dec 2018 17:34:38 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Keep-Alive: ['timeout=15, max=98'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['10807'] + content-length: ['6148'] status: {code: 200, message: OK} - request: body: null @@ -368,13 +455,13 @@ interactions: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:19:58 GMT'] + Date: ['Mon, 10 Dec 2018 17:34:38 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=94'] + Keep-Alive: ['timeout=15, max=97'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['9688'] + content-length: ['9705'] status: {code: 200, message: OK} - request: body: null @@ -401,8 +488,8 @@ interactions: \ reicht\n daf\xFCr nicht aus!

DNS:\ \ bettilaila.com

\n
\n
\n
\n\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ Record hinzuf\xFCgen\n \_\_|\_\_\ @@ -418,11 +505,11 @@ interactions: \ m\xF6chten? Dies k\xF6nnte dazu f\xFChren, dass die Domain nicht mehr erreichbar\ \ ist!')\" type=\"submit\" value=\"Zone l\xF6schen\"/>\n
\n
\n\
\n\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:45 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10823'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/logout.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:46 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Location: ['https://konsoleh.your-server.de/?err=logout'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?err=logout + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:46 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['10624'] + content-length: ['6620'] status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_by_identifier_should_remove_record.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_by_identifier_should_remove_record.yaml index 779beceeb..a22daa5ef 100644 --- a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_by_identifier_should_remove_record.yaml +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_by_identifier_should_remove_record.yaml @@ -11,8 +11,8 @@ interactions: response: body: {string: "
\n\n\n\n\"konsoleH\"\n
\"de\"\\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:47 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6621'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:48 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6791'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['240'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:48 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ response: body: {string: "
\n
\nHerzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ \

Domains (1)

bettilaila.com
Domainregistrierung
\n\
\n

\nStatus:\n\ @@ -233,92 +394,18 @@ interactions: \ title=\"Gesperrt\">\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ - Gek\xFCndigt

\n
"} - headers: - Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:20:03 GMT'] - Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=96'] - Pragma: [no-cache] - Server: [Apache] - Vary: [Accept-Encoding] - content-length: ['9688'] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea - response: - body: {string: "
Bitte beachten Sie,\ - \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ - \ Sie wirksam werden.

\nEbenso\ - \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ - \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ - \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ - chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ - \ keine Haftung.

\n \ - \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ - \ m\xF6chten, ist es zwingend\n notwendig ein\ - \ Update der Domain beim Registrar durchzuf\xFChren.\n \ - \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ - \ reicht\n daf\xFCr nicht aus!

DNS:\ - \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ - Record hinzuf\xFCgen\n \_\_|\_\_\ - \n \n\n\n
\n
\n\ -
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + Gek\xFCndigt

\n"} headers: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:20:03 GMT'] + Date: ['Mon, 10 Dec 2018 17:34:48 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Keep-Alive: ['timeout=15, max=98'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['10807'] + content-length: ['6148'] status: {code: 200, message: OK} - request: body: null @@ -368,13 +455,13 @@ interactions: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:20:04 GMT'] + Date: ['Mon, 10 Dec 2018 17:34:48 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=94'] + Keep-Alive: ['timeout=15, max=97'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['9688'] + content-length: ['9705'] status: {code: 200, message: OK} - request: body: null @@ -401,8 +488,8 @@ interactions: \ reicht\n daf\xFCr nicht aus!

DNS:\ \ bettilaila.com

\n
\n
\n
\n\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ Record hinzuf\xFCgen\n \_\_|\_\_\ @@ -418,11 +505,11 @@ interactions: \ m\xF6chten? Dies k\xF6nnte dazu f\xFChren, dass die Domain nicht mehr erreichbar\ \ ist!')\" type=\"submit\" value=\"Zone l\xF6schen\"/>\n
\n
\n\
\n\n\n\n
\n\n\n\n
\n\ +

\n\n\ +

\n
\n
\n"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:54 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10888'] + status: {code: 200, message: OK} +- request: + body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018121014+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['905'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/dns.php + response: + body: {string: "
Das DNS-Zonefile wurde\ + \ erfolgreich ersetzt
Bitte beachten Sie, dass\ + \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso sollten\ + \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ + \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ + \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:56 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10824'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/logout.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:57 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Location: ['https://konsoleh.your-server.de/?err=logout'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?err=logout + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:57 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=89'] + Keep-Alive: ['timeout=15, max=94'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['10622'] + content-length: ['6619'] status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_by_content_should_leave_others_untouched.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_by_content_should_leave_others_untouched.yaml index 0cdb54f5c..414a61e56 100644 --- a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_by_content_should_leave_others_untouched.yaml +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_by_content_should_leave_others_untouched.yaml @@ -11,8 +11,8 @@ interactions: response: body: {string: "
\n\n\n\n\"konsoleH\"\n
\"de\"\\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:34:59 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6620'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:00 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6791'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['240'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:00 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ response: body: {string: "
\n
\nHerzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ \

Domains (1)

bettilaila.com
Domainregistrierung
\n\
\n

\nStatus:\n\ @@ -233,92 +394,18 @@ interactions: \ title=\"Gesperrt\">\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ - Gek\xFCndigt

\n
"} - headers: - Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:20:09 GMT'] - Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=96'] - Pragma: [no-cache] - Server: [Apache] - Vary: [Accept-Encoding] - content-length: ['9688'] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea - response: - body: {string: "
Bitte beachten Sie,\ - \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ - \ Sie wirksam werden.

\nEbenso\ - \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ - \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ - \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ - chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ - \ keine Haftung.

\n \ - \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ - \ m\xF6chten, ist es zwingend\n notwendig ein\ - \ Update der Domain beim Registrar durchzuf\xFChren.\n \ - \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ - \ reicht\n daf\xFCr nicht aus!

DNS:\ - \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ - Record hinzuf\xFCgen\n \_\_|\_\_\ - \n \n\n\n
\n
\n\ -
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + Gek\xFCndigt

\n"} headers: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:20:10 GMT'] + Date: ['Mon, 10 Dec 2018 17:35:00 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Keep-Alive: ['timeout=15, max=98'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['10808'] + content-length: ['6148'] status: {code: 200, message: OK} - request: body: null @@ -368,13 +455,13 @@ interactions: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:20:10 GMT'] + Date: ['Mon, 10 Dec 2018 17:35:00 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=94'] + Keep-Alive: ['timeout=15, max=97'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['9688'] + content-length: ['9705'] status: {code: 200, message: OK} - request: body: null @@ -401,8 +488,8 @@ interactions: \ reicht\n daf\xFCr nicht aus!

DNS:\ \ bettilaila.com

\n
\n
\n
\n\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ Record hinzuf\xFCgen\n \_\_|\_\_\ @@ -418,11 +505,11 @@ interactions: \ m\xF6chten? Dies k\xF6nnte dazu f\xFChren, dass die Domain nicht mehr erreichbar\ \ ist!')\" type=\"submit\" value=\"Zone l\xF6schen\"/>\n
\n
\n\
\n\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n"} + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n
"} headers: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:20:13 GMT'] + Date: ['Mon, 10 Dec 2018 17:35:02 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=93'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6621'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:02 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=90'] + Keep-Alive: ['timeout=15, max=100'] Pragma: [no-cache] Server: [Apache] + Upgrade: [h2] Vary: [Accept-Encoding] - content-length: ['10886'] + content-length: ['6791'] status: {code: 200, message: OK} - request: - body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018120975+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + body: '' headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] Connection: [keep-alive] - Content-Length: ['1044'] + Content-Length: ['240'] Content-Type: [application/x-www-form-urlencoded] User-Agent: [python-requests/2.20.1] method: POST - uri: https://konsoleh.your-server.de/dns.php + uri: https://konsoleh.your-server.de/login.php response: - body: {string: "
Das DNS-Zonefile wurde\ - \ erfolgreich ersetzt
Bitte beachten Sie, dass\ - \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ - \ Sie wirksam werden.

\nEbenso sollten\ - \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ - \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ - \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ - \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ - \ keine Haftung.

\n \ - \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ - \ m\xF6chten, ist es zwingend\n notwendig ein\ - \ Update der Domain beim Registrar durchzuf\xFChren.\n \ - \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ - \ reicht\n daf\xFCr nicht aus!

DNS:\ - \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ - Record hinzuf\xFCgen\n \_\_|\_\_\ - \n \n\n\n
\n
\n\ -
\n\n\n
\n\n\n\n
\n\ -

\n\n\ -

\n
\n
\n
"} + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:02 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} headers: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:20:13 GMT'] + Date: ['Mon, 10 Dec 2018 17:35:02 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=89'] + Keep-Alive: ['timeout=15, max=98'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['10772'] + content-length: ['6148'] status: {code: 200, message: OK} - request: body: null @@ -774,13 +873,13 @@ interactions: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:20:14 GMT'] + Date: ['Mon, 10 Dec 2018 17:35:02 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=88'] + Keep-Alive: ['timeout=15, max=97'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['9688'] + content-length: ['9705'] status: {code: 200, message: OK} - request: body: null @@ -807,8 +906,8 @@ interactions: \ reicht\n daf\xFCr nicht aus!

DNS:\ \ bettilaila.com

\n
\n
\n
\n\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ Record hinzuf\xFCgen\n \_\_|\_\_\ @@ -824,11 +923,11 @@ interactions: \ m\xF6chten? Dies k\xF6nnte dazu f\xFChren, dass die Domain nicht mehr erreichbar\ \ ist!')\" type=\"submit\" value=\"Zone l\xF6schen\"/>\n
\n
\n\
\n\n\n
\n\n\n\n
\n\ @@ -922,12 +1021,857 @@ interactions: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:20:15 GMT'] + Date: ['Mon, 10 Dec 2018 17:35:03 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10788'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/logout.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:04 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=86'] + Keep-Alive: ['timeout=15, max=94'] + Location: ['https://konsoleh.your-server.de/?err=logout'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?err=logout + response: + body: {string: "\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:04 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=93'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6620'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:04 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6792'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['241'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:04 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:05 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6148'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:05 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9705'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:05 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10983'] + status: {code: 200, message: OK} +- request: + body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018121017+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['975'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/dns.php + response: + body: {string: "
Das DNS-Zonefile wurde\ + \ erfolgreich ersetzt
Bitte beachten Sie, dass\ + \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso sollten\ + \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ + \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ + \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n\ +

\n\n\ +

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:06 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10715'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/logout.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:06 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Location: ['https://konsoleh.your-server.de/?err=logout'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?err=logout + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:06 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=93'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6621'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:07 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6791'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['240'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:07 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:07 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6148'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:07 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9705'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:08 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10904'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/logout.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:08 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Location: ['https://konsoleh.your-server.de/?err=logout'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?err=logout + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:08 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['10697'] + content-length: ['6621'] status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_name_remove_all.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_name_remove_all.yaml index 441720047..55cffc915 100644 --- a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_name_remove_all.yaml +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_name_remove_all.yaml @@ -11,8 +11,8 @@ interactions: response: body: {string: "
\n\n\n\n\"konsoleH\"\n
\"de\"\\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:11 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6621'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:11 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6791'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['240'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:11 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ response: body: {string: "
\n
\nHerzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ \

Domains (1)

bettilaila.com
Domainregistrierung
\n\
\n

\nStatus:\n\ @@ -233,93 +394,18 @@ interactions: \ title=\"Gesperrt\">\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ - Gek\xFCndigt

\n
"} - headers: - Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:20:19 GMT'] - Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=96'] - Pragma: [no-cache] - Server: [Apache] - Vary: [Accept-Encoding] - content-length: ['9688'] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea - response: - body: {string: "
Bitte beachten Sie,\ - \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ - \ Sie wirksam werden.

\nEbenso\ - \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ - \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ - \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ - chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ - \ keine Haftung.

\n \ - \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ - \ m\xF6chten, ist es zwingend\n notwendig ein\ - \ Update der Domain beim Registrar durchzuf\xFChren.\n \ - \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ - \ reicht\n daf\xFCr nicht aus!

DNS:\ - \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ - Record hinzuf\xFCgen\n \_\_|\_\_\ - \n \n\n\n
\n
\n\ -
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + Gek\xFCndigt

\n
"} headers: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:20:19 GMT'] + Date: ['Mon, 10 Dec 2018 17:35:11 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Keep-Alive: ['timeout=15, max=98'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['10885'] + content-length: ['6148'] status: {code: 200, message: OK} - request: body: null @@ -369,13 +455,13 @@ interactions: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:20:20 GMT'] + Date: ['Mon, 10 Dec 2018 17:35:12 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=94'] + Keep-Alive: ['timeout=15, max=97'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['9688'] + content-length: ['9705'] status: {code: 200, message: OK} - request: body: null @@ -402,8 +488,8 @@ interactions: \ reicht\n daf\xFCr nicht aus!

DNS:\ \ bettilaila.com

\n
\n
\n
\n\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ Record hinzuf\xFCgen\n \_\_|\_\_\ @@ -419,11 +505,11 @@ interactions: \ m\xF6chten? Dies k\xF6nnte dazu f\xFChren, dass die Domain nicht mehr erreichbar\ \ ist!')\" type=\"submit\" value=\"Zone l\xF6schen\"/>\n
\n
\n\
\n\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n"} + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n
"} headers: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:20:22 GMT'] + Date: ['Mon, 10 Dec 2018 17:35:14 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=93'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6620'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:15 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=90'] + Keep-Alive: ['timeout=15, max=100'] Pragma: [no-cache] Server: [Apache] + Upgrade: [h2] Vary: [Accept-Encoding] - content-length: ['10963'] + content-length: ['6791'] status: {code: 200, message: OK} - request: - body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018120978+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.deleterecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + body: '' headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] Connection: [keep-alive] - Content-Length: ['1111'] + Content-Length: ['240'] Content-Type: [application/x-www-form-urlencoded] User-Agent: [python-requests/2.20.1] method: POST - uri: https://konsoleh.your-server.de/dns.php + uri: https://konsoleh.your-server.de/login.php response: - body: {string: "
Das DNS-Zonefile wurde\ - \ erfolgreich ersetzt
Bitte beachten Sie, dass\ - \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ - \ Sie wirksam werden.

\nEbenso sollten\ - \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ - \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ - \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ - \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ - \ keine Haftung.

\n \ - \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ - \ m\xF6chten, ist es zwingend\n notwendig ein\ - \ Update der Domain beim Registrar durchzuf\xFChren.\n \ - \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ - \ reicht\n daf\xFCr nicht aus!

DNS:\ - \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ - Record hinzuf\xFCgen\n \_\_|\_\_\ - \n \n\n\n
\n
\n\ -
\n\n\n
\n\n\n\n
\n\ -

\n\n\ -

\n
\n
\n
"} + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:15 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} headers: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:20:23 GMT'] + Date: ['Mon, 10 Dec 2018 17:35:15 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=89'] + Keep-Alive: ['timeout=15, max=98'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['10842'] + content-length: ['6148'] status: {code: 200, message: OK} - request: body: null @@ -779,13 +875,13 @@ interactions: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:20:23 GMT'] + Date: ['Mon, 10 Dec 2018 17:35:15 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=88'] + Keep-Alive: ['timeout=15, max=97'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['9688'] + content-length: ['9705'] status: {code: 200, message: OK} - request: body: null @@ -812,8 +908,8 @@ interactions: \ reicht\n daf\xFCr nicht aus!

DNS:\ \ bettilaila.com

\n
\n
\n
\n\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ Record hinzuf\xFCgen\n \_\_|\_\_\ @@ -829,11 +925,11 @@ interactions: \ m\xF6chten? Dies k\xF6nnte dazu f\xFChren, dass die Domain nicht mehr erreichbar\ \ ist!')\" type=\"submit\" value=\"Zone l\xF6schen\"/>\n
\n
\n\
\n\n\n
\n\n\n\n
\n\ -

\n\n\ -

\n
\n
\n"} + challengetoken1\"\n_acme-challenge.fqdn 3600 IN TXT \"challengetoken\"\ + \n_acme-challenge.full 3600 IN TXT \"challengetoken\"\n_acme-challenge.noop\ + \ 3600 IN TXT \"challengetoken\"\n_acme-challenge.test 3600 IN TXT \ + \ \"challengetoken\"\n\n\n\n\n

\n\n

\n\n\n"} headers: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:20:24 GMT'] + Date: ['Mon, 10 Dec 2018 17:35:15 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=87'] + Keep-Alive: ['timeout=15, max=96'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['11039'] + content-length: ['10979'] status: {code: 200, message: OK} - request: - body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018120978+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018121019+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.deleterecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] Connection: [keep-alive] - Content-Length: ['974'] + Content-Length: ['1110'] Content-Type: [application/x-www-form-urlencoded] User-Agent: [python-requests/2.20.1] method: POST @@ -891,8 +986,8 @@ interactions: \ reicht\n daf\xFCr nicht aus!

DNS:\ \ bettilaila.com

\n
\n
\n
\n\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ Record hinzuf\xFCgen\n \_\_|\_\_\ @@ -908,18 +1003,20 @@ interactions: \ m\xF6chten? Dies k\xF6nnte dazu f\xFChren, dass die Domain nicht mehr erreichbar\ \ ist!')\" type=\"submit\" value=\"Zone l\xF6schen\"/>\n
\n
\n\
\n\n\n
\n\n\n\n
\n\

\n\n\ @@ -928,12 +1025,858 @@ interactions: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:20:24 GMT'] + Date: ['Mon, 10 Dec 2018 17:35:16 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=86'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10857'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/logout.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:17 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Location: ['https://konsoleh.your-server.de/?err=logout'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?err=logout + response: + body: {string: "\n\n\n\"konsoleH\"\n

\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:17 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=93'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6621'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:17 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6792'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['241'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:17 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:17 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6148'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:17 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9705'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n\ +

\n\n\ +

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:18 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['11057'] + status: {code: 200, message: OK} +- request: + body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018121020+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['975'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/dns.php + response: + body: {string: "
Das DNS-Zonefile wurde\ + \ erfolgreich ersetzt
Bitte beachten Sie, dass\ + \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso sollten\ + \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ + \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ + \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n\ +

\n\n\ +

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:18 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10713'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/logout.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:19 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Location: ['https://konsoleh.your-server.de/?err=logout'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?err=logout + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:19 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=93'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6620'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:19 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6792'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['241'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:20 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:20 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6148'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:20 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9705'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ + \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ + \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ + chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ + \ keine Haftung.

\n \ + \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ + \ m\xF6chten, ist es zwingend\n notwendig ein\ + \ Update der Domain beim Registrar durchzuf\xFChren.\n \ + \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ + \ reicht\n daf\xFCr nicht aus!

DNS:\ + \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ + Record hinzuf\xFCgen\n \_\_|\_\_\ + \n \n\n\n
\n
\n\ +
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:20 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['10902'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/logout.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:21 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Location: ['https://konsoleh.your-server.de/?err=logout'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?err=logout + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:21 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['10697'] + content-length: ['6621'] status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_after_setting_ttl.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_after_setting_ttl.yaml index f32282f3c..6b52e08f0 100644 --- a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_after_setting_ttl.yaml +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_after_setting_ttl.yaml @@ -11,8 +11,8 @@ interactions: response: body: {string: "
\n\n\n\n\"konsoleH\"\n
\"de\"\\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:22 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6620'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:23 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6791'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['240'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:23 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:23 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6148'] status: {code: 200, message: OK} - request: body: null @@ -239,13 +455,13 @@ interactions: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:20:26 GMT'] + Date: ['Mon, 10 Dec 2018 17:35:23 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=96'] + Keep-Alive: ['timeout=15, max=97'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['9688'] + content-length: ['9705'] status: {code: 200, message: OK} - request: body: null @@ -272,8 +488,8 @@ interactions: \ reicht\n daf\xFCr nicht aus!

DNS:\ \ bettilaila.com

\n
\n
\n
\n\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ Record hinzuf\xFCgen\n \_\_|\_\_\ @@ -289,11 +505,11 @@ interactions: \ m\xF6chten? Dies k\xF6nnte dazu f\xFChren, dass die Domain nicht mehr erreichbar\ \ ist!')\" type=\"submit\" value=\"Zone l\xF6schen\"/>\n
\n
\n\
\n\n\n\n
\n\n\n\n
\n\ +

\n\n\ +

\n
\n
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:24 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] Keep-Alive: ['timeout=15, max=95'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['10887'] + content-length: ['10764'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/logout.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:25 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Location: ['https://konsoleh.your-server.de/?err=logout'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?err=logout + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:25 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=93'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6621'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:25 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6791'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['240'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:25 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:25 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6148'] status: {code: 200, message: OK} - request: body: null @@ -369,13 +875,13 @@ interactions: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:20:28 GMT'] + Date: ['Mon, 10 Dec 2018 17:35:25 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=94'] + Keep-Alive: ['timeout=15, max=97'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['9688'] + content-length: ['9705'] status: {code: 200, message: OK} - request: body: null @@ -402,8 +908,8 @@ interactions: \ reicht\n daf\xFCr nicht aus!

DNS:\ \ bettilaila.com

\n
\n
\n
\n\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ Record hinzuf\xFCgen\n \_\_|\_\_\ @@ -419,11 +925,11 @@ interactions: \ m\xF6chten? Dies k\xF6nnte dazu f\xFChren, dass die Domain nicht mehr erreichbar\ \ ist!')\" type=\"submit\" value=\"Zone l\xF6schen\"/>\n
\n
\n\
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n"} + \ \"challengetoken\"\nttl.fqdn 3600 IN TXT \"ttlshouldbe3600\"\ + \n\n\n\n\n\ +

\n\n\ +

\n\n\n"} headers: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:20:28 GMT'] + Date: ['Mon, 10 Dec 2018 17:35:31 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=93'] + Keep-Alive: ['timeout=15, max=96'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['10885'] + content-length: ['10967'] status: {code: 200, message: OK} - request: - body: dnsaction2=zonereplace&domain_to_use=bettilaila.com&zone_file1=%40+7200+IN+SOA+ns1.your-server.de.+postmaster.your-server.de.+2018120981+86400+10800+3600000+86400%0A%40+7200+IN+NS+ns3.second-ns.de.%0A%40+7200+IN+NS+ns.second-ns.com.%0A%40+7200+IN+NS+ns1.your-server.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+7200+IN+A+127.0.0.1%0Aloopback+7200+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + body: null headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] Connection: [keep-alive] - Content-Length: ['1019'] - Content-Type: [application/x-www-form-urlencoded] User-Agent: [python-requests/2.20.1] - method: POST - uri: https://konsoleh.your-server.de/dns.php + method: GET + uri: https://konsoleh.your-server.de/logout.php response: - body: {string: "
Das DNS-Zonefile wurde\ - \ erfolgreich ersetzt
Bitte beachten Sie, dass\ - \ es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ - \ Sie wirksam werden.

\nEbenso sollten\ - \ Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ - \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw. Ihrer\ - \ E-Mail-Konten negativ\n beeintr\xE4chtigen\ - \ k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n \ - \ keine Haftung.

\n \ - \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ - \ m\xF6chten, ist es zwingend\n notwendig ein\ - \ Update der Domain beim Registrar durchzuf\xFChren.\n \ - \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ - \ reicht\n daf\xFCr nicht aus!

DNS:\ - \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ - Record hinzuf\xFCgen\n \_\_|\_\_\ - \n \n\n\n
\n
\n\ -
\n\n\n
\n\n\n\n
\n\ -

\n\n\ -

\n
\n
\n
"} + body: {string: None} headers: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] + Content-Length: ['0'] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:20:30 GMT'] + Date: ['Mon, 10 Dec 2018 17:35:32 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=92'] + Keep-Alive: ['timeout=15, max=95'] + Location: ['https://konsoleh.your-server.de/?err=logout'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?err=logout + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:32 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['10747'] + content-length: ['6620'] status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_should_handle_record_sets.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_should_handle_record_sets.yaml index 106df97b6..f642fb7ed 100644 --- a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_should_handle_record_sets.yaml +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_should_handle_record_sets.yaml @@ -11,8 +11,8 @@ interactions: response: body: {string: "
\n\n\n\n\"konsoleH\"\n
\"de\"\\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:33 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6620'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:33 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6792'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['241'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:33 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ response: body: {string: "
\n
\nHerzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ \

Domains (1)

bettilaila.com
Domainregistrierung
\n\
\n

\nStatus:\n\ @@ -233,94 +394,18 @@ interactions: \ title=\"Gesperrt\">\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ - Gek\xFCndigt

\n
"} - headers: - Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:20:31 GMT'] - Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=96'] - Pragma: [no-cache] - Server: [Apache] - Vary: [Accept-Encoding] - content-length: ['9688'] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea - response: - body: {string: "
Bitte beachten Sie,\ - \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ - \ Sie wirksam werden.

\nEbenso\ - \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ - \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ - \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ - chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ - \ keine Haftung.

\n \ - \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ - \ m\xF6chten, ist es zwingend\n notwendig ein\ - \ Update der Domain beim Registrar durchzuf\xFChren.\n \ - \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ - \ reicht\n daf\xFCr nicht aus!

DNS:\ - \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ - Record hinzuf\xFCgen\n \_\_|\_\_\ - \n \n\n\n
\n
\n\ -
\n\n\n
\n\n\n\n
\n\ -

\n\n\ -

\n
\n
\n
"} + Gek\xFCndigt

\n"} headers: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:20:32 GMT'] + Date: ['Mon, 10 Dec 2018 17:35:33 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Keep-Alive: ['timeout=15, max=98'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['10949'] + content-length: ['6148'] status: {code: 200, message: OK} - request: body: null @@ -370,13 +455,13 @@ interactions: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:20:33 GMT'] + Date: ['Mon, 10 Dec 2018 17:35:34 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=94'] + Keep-Alive: ['timeout=15, max=97'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['9688'] + content-length: ['9705'] status: {code: 200, message: OK} - request: body: null @@ -403,8 +488,8 @@ interactions: \ reicht\n daf\xFCr nicht aus!

DNS:\ \ bettilaila.com

\n
\n
\n
\n\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ Record hinzuf\xFCgen\n \_\_|\_\_\ @@ -420,11 +505,11 @@ interactions: \ m\xF6chten? Dies k\xF6nnte dazu f\xFChren, dass die Domain nicht mehr erreichbar\ \ ist!')\" type=\"submit\" value=\"Zone l\xF6schen\"/>\n
\n
\n\
\n\n\n\n
\n\n\n\n
\n

\n\ + \n

\n\ +
\n
\n"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:39 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['11118'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/logout.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:39 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Location: ['https://konsoleh.your-server.de/?err=logout'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?err=logout + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:39 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['10887'] + content-length: ['6621'] status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_with_fqdn_name_filter_should_return_record.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_with_fqdn_name_filter_should_return_record.yaml index 6e3af803d..3a47dd935 100644 --- a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_with_fqdn_name_filter_should_return_record.yaml +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_with_fqdn_name_filter_should_return_record.yaml @@ -11,8 +11,8 @@ interactions: response: body: {string: "
\n\n\n\n\"konsoleH\"\n
\"de\"\\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:42 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6619'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:42 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6792'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['241'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:42 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ response: body: {string: "
\n
\nHerzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ \

Domains (1)

bettilaila.com
Domainregistrierung
\n\
\n

\nStatus:\n\ @@ -233,96 +394,18 @@ interactions: \ title=\"Gesperrt\">\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ - Gek\xFCndigt

\n
"} - headers: - Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:20:38 GMT'] - Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=96'] - Pragma: [no-cache] - Server: [Apache] - Vary: [Accept-Encoding] - content-length: ['9688'] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea - response: - body: {string: "
Bitte beachten Sie,\ - \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ - \ Sie wirksam werden.

\nEbenso\ - \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ - \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ - \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ - chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ - \ keine Haftung.

\n \ - \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ - \ m\xF6chten, ist es zwingend\n notwendig ein\ - \ Update der Domain beim Registrar durchzuf\xFChren.\n \ - \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ - \ reicht\n daf\xFCr nicht aus!

DNS:\ - \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ - Record hinzuf\xFCgen\n \_\_|\_\_\ - \n \n\n\n
\n
\n\ -
\n\n\n
\n\n\n\n
\n

\n\ - \n

\n\ -
\n
\n
"} + Gek\xFCndigt

\n"} headers: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:20:38 GMT'] + Date: ['Mon, 10 Dec 2018 17:35:42 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Keep-Alive: ['timeout=15, max=98'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['11101'] + content-length: ['6148'] status: {code: 200, message: OK} - request: body: null @@ -372,13 +455,13 @@ interactions: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:20:39 GMT'] + Date: ['Mon, 10 Dec 2018 17:35:43 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=94'] + Keep-Alive: ['timeout=15, max=97'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['9688'] + content-length: ['9705'] status: {code: 200, message: OK} - request: body: null @@ -405,8 +488,8 @@ interactions: \ reicht\n daf\xFCr nicht aus!

DNS:\ \ bettilaila.com

\n
\n
\n
\n\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ Record hinzuf\xFCgen\n \_\_|\_\_\ @@ -422,11 +505,11 @@ interactions: \ m\xF6chten? Dies k\xF6nnte dazu f\xFChren, dass die Domain nicht mehr erreichbar\ \ ist!')\" type=\"submit\" value=\"Zone l\xF6schen\"/>\n
\n
\n\
\n\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:45 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['11180'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/logout.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:46 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Location: ['https://konsoleh.your-server.de/?err=logout'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?err=logout + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:46 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['10942'] + content-length: ['6621'] status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_with_full_name_filter_should_return_record.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_with_full_name_filter_should_return_record.yaml index d4bbd0eb8..308f77fc6 100644 --- a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_with_full_name_filter_should_return_record.yaml +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_with_full_name_filter_should_return_record.yaml @@ -11,8 +11,8 @@ interactions: response: body: {string: "
\n\n\n\n\"konsoleH\"\n
\"de\"\\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:47 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6621'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:48 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6792'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['241'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:48 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ response: body: {string: "
\n
\nHerzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ \

Domains (1)

bettilaila.com
Domainregistrierung
\n\
\n

\nStatus:\n\ @@ -233,96 +394,18 @@ interactions: \ title=\"Gesperrt\">\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ - Gek\xFCndigt

\n
"} - headers: - Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] - Connection: [Keep-Alive] - Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:20:42 GMT'] - Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=96'] - Pragma: [no-cache] - Server: [Apache] - Vary: [Accept-Encoding] - content-length: ['9688'] - status: {code: 200, message: OK} -- request: - body: null - headers: - Accept: ['*/*'] - Accept-Encoding: ['gzip, deflate'] - Connection: [keep-alive] - User-Agent: [python-requests/2.20.1] - method: GET - uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea - response: - body: {string: "
Bitte beachten Sie,\ - \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ - \ Sie wirksam werden.

\nEbenso\ - \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ - \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ - \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ - chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ - \ keine Haftung.

\n \ - \ Falls Sie f\xFCr die Domain andere DNS-Server verwenden\ - \ m\xF6chten, ist es zwingend\n notwendig ein\ - \ Update der Domain beim Registrar durchzuf\xFChren.\n \ - \ Die \xC4nderung der DNS-Servernamen hier im Zonefile\ - \ reicht\n daf\xFCr nicht aus!

DNS:\ - \ bettilaila.com

\n
\n
\n
\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ - Record hinzuf\xFCgen\n \_\_|\_\_\ - \n \n\n\n
\n
\n\ -
\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n
"} + Gek\xFCndigt

\n"} headers: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:20:42 GMT'] + Date: ['Mon, 10 Dec 2018 17:35:48 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Keep-Alive: ['timeout=15, max=98'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['11164'] + content-length: ['6148'] status: {code: 200, message: OK} - request: body: null @@ -372,13 +455,13 @@ interactions: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:20:43 GMT'] + Date: ['Mon, 10 Dec 2018 17:35:48 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=94'] + Keep-Alive: ['timeout=15, max=97'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['9688'] + content-length: ['9705'] status: {code: 200, message: OK} - request: body: null @@ -405,8 +488,8 @@ interactions: \ reicht\n daf\xFCr nicht aus!

DNS:\ \ bettilaila.com

\n
\n
\n
\n\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ Record hinzuf\xFCgen\n \_\_|\_\_\ @@ -422,11 +505,11 @@ interactions: \ m\xF6chten? Dies k\xF6nnte dazu f\xFChren, dass die Domain nicht mehr erreichbar\ \ ist!')\" type=\"submit\" value=\"Zone l\xF6schen\"/>\n
\n
\n\
\n\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:35:59 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['11242'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/logout.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:36:00 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Location: ['https://konsoleh.your-server.de/?err=logout'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?err=logout + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:36:00 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['10997'] + content-length: ['6620'] status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_with_invalid_filter_should_be_empty_list.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_with_invalid_filter_should_be_empty_list.yaml index 92b403bd0..cca7cdae8 100644 --- a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_with_invalid_filter_should_be_empty_list.yaml +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_with_invalid_filter_should_be_empty_list.yaml @@ -11,8 +11,8 @@ interactions: response: body: {string: "
\n\n\n\n\"konsoleH\"\n
\"de\"\\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:36:02 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6620'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:36:02 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6792'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['241'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:36:02 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:36:02 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6148'] status: {code: 200, message: OK} - request: body: null @@ -239,13 +455,13 @@ interactions: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:20:46 GMT'] + Date: ['Mon, 10 Dec 2018 17:36:02 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=96'] + Keep-Alive: ['timeout=15, max=97'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['9688'] + content-length: ['9705'] status: {code: 200, message: OK} - request: body: null @@ -272,8 +488,8 @@ interactions: \ reicht\n daf\xFCr nicht aus!

DNS:\ \ bettilaila.com

\n
\n
\n
\n\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ Record hinzuf\xFCgen\n \_\_|\_\_\ @@ -289,11 +505,11 @@ interactions: \ m\xF6chten? Dies k\xF6nnte dazu f\xFChren, dass die Domain nicht mehr erreichbar\ \ ist!')\" type=\"submit\" value=\"Zone l\xF6schen\"/>\n
\n
\n\
\n\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n"} + Gek\xFCndigt

\n"} headers: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:20:49 GMT'] + Date: ['Mon, 10 Dec 2018 17:36:05 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Keep-Alive: ['timeout=15, max=98'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['11225'] + content-length: ['6148'] status: {code: 200, message: OK} - request: body: null @@ -373,13 +455,13 @@ interactions: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:20:49 GMT'] + Date: ['Mon, 10 Dec 2018 17:36:05 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=94'] + Keep-Alive: ['timeout=15, max=97'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['9688'] + content-length: ['9705'] status: {code: 200, message: OK} - request: body: null @@ -406,8 +488,8 @@ interactions: \ reicht\n daf\xFCr nicht aus!

DNS:\ \ bettilaila.com

\n
\n
\n
\n\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ Record hinzuf\xFCgen\n \_\_|\_\_\ @@ -423,11 +505,11 @@ interactions: \ m\xF6chten? Dies k\xF6nnte dazu f\xFChren, dass die Domain nicht mehr erreichbar\ \ ist!')\" type=\"submit\" value=\"Zone l\xF6schen\"/>\n
\n
\n\
\n\n\n\n
\n\n\n\n
\n\ +

\n\n\ +

\n
\n
\n"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:36:09 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['11305'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/logout.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:36:09 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Location: ['https://konsoleh.your-server.de/?err=logout'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?err=logout + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:36:09 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['11045'] + content-length: ['6620'] status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_with_no_arguments_should_list_all.yaml b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_with_no_arguments_should_list_all.yaml index a7e32c0f9..73ef07bc7 100644 --- a/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_with_no_arguments_should_list_all.yaml +++ b/tests/fixtures/cassettes/hetzner/KonsoleH-IntegrationTests/test_Provider_when_calling_list_records_with_no_arguments_should_list_all.yaml @@ -11,8 +11,8 @@ interactions: response: body: {string: "
\n\n\n\n\"konsoleH\"\n
\"de\"\\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:36:11 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6620'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:36:11 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6791'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['240'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:36:11 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:36:11 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6148'] status: {code: 200, message: OK} - request: body: null @@ -239,13 +455,13 @@ interactions: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:20:52 GMT'] + Date: ['Mon, 10 Dec 2018 17:36:11 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=96'] + Keep-Alive: ['timeout=15, max=97'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['9688'] + content-length: ['9705'] status: {code: 200, message: OK} - request: body: null @@ -272,8 +488,8 @@ interactions: \ reicht\n daf\xFCr nicht aus!

DNS:\ \ bettilaila.com

\n
\n
\n
\n\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ Record hinzuf\xFCgen\n \_\_|\_\_\ @@ -289,11 +505,11 @@ interactions: \ m\xF6chten? Dies k\xF6nnte dazu f\xFChren, dass die Domain nicht mehr erreichbar\ \ ist!')\" type=\"submit\" value=\"Zone l\xF6schen\"/>\n
\n
\n\
\n\n\n\n
\n\n\n\n
\n\ -

\n\n\ -

\n
\n
\n"} + Gek\xFCndigt

\n"} headers: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:20:55 GMT'] + Date: ['Mon, 10 Dec 2018 17:36:14 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Keep-Alive: ['timeout=15, max=98'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['11289'] + content-length: ['6148'] status: {code: 200, message: OK} - request: body: null @@ -374,13 +455,13 @@ interactions: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:20:56 GMT'] + Date: ['Mon, 10 Dec 2018 17:36:14 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=94'] + Keep-Alive: ['timeout=15, max=97'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['9688'] + content-length: ['9705'] status: {code: 200, message: OK} - request: body: null @@ -407,8 +488,8 @@ interactions: \ reicht\n daf\xFCr nicht aus!

DNS:\ \ bettilaila.com

\n
\n
\n
\n\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ Record hinzuf\xFCgen\n \_\_|\_\_\ @@ -424,11 +505,11 @@ interactions: \ m\xF6chten? Dies k\xF6nnte dazu f\xFChren, dass die Domain nicht mehr erreichbar\ \ ist!')\" type=\"submit\" value=\"Zone l\xF6schen\"/>\n
\n
\n\
\n\n\n\n
\n\n\n\n
\n

\n\ + \n

\n\ +
\n
\n"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:36:17 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['11369'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/logout.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:36:18 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Location: ['https://konsoleh.your-server.de/?err=logout'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?err=logout + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:36:18 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6620'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:36:18 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6792'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['241'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:36:19 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:36:19 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6148'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:36:19 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9705'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ + \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ chtigen k\xF6nnen. Wir \xFCbernehmen f\xFCr evtl. entstandene Sch\xE4den\n\ @@ -620,8 +1269,8 @@ interactions: \ reicht\n daf\xFCr nicht aus!

DNS:\ \ bettilaila.com

\n
\n
\n
\n\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ Record hinzuf\xFCgen\n \_\_|\_\_\ @@ -637,11 +1286,11 @@ interactions: \ m\xF6chten? Dies k\xF6nnte dazu f\xFChren, dass die Domain nicht mehr erreichbar\ \ ist!')\" type=\"submit\" value=\"Zone l\xF6schen\"/>\n
\n
\n\
\n\n\n\n
\n\n\n\n
\n

\n\ - \n

\n\ -
\n
\n
"} + Gek\xFCndigt

\n"} headers: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:21:01 GMT'] + Date: ['Mon, 10 Dec 2018 17:36:24 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Keep-Alive: ['timeout=15, max=98'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['11351'] + content-length: ['6148'] status: {code: 200, message: OK} - request: body: null @@ -375,13 +455,13 @@ interactions: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:21:02 GMT'] + Date: ['Mon, 10 Dec 2018 17:36:24 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=94'] + Keep-Alive: ['timeout=15, max=97'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['9688'] + content-length: ['9705'] status: {code: 200, message: OK} - request: body: null @@ -408,8 +488,8 @@ interactions: \ reicht\n daf\xFCr nicht aus!

DNS:\ \ bettilaila.com

\n
\n
\n
\n\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ Record hinzuf\xFCgen\n \_\_|\_\_\ @@ -425,11 +505,11 @@ interactions: \ m\xF6chten? Dies k\xF6nnte dazu f\xFChren, dass die Domain nicht mehr erreichbar\ \ ist!')\" type=\"submit\" value=\"Zone l\xF6schen\"/>\n
\n
\n\
\n\n\n\n
\n\n\n\n
\n

\n\n

\n
\n
\n"} + Gek\xFCndigt

\n"} headers: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:21:07 GMT'] + Date: ['Mon, 10 Dec 2018 17:36:32 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Keep-Alive: ['timeout=15, max=98'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['11408'] + content-length: ['6148'] status: {code: 200, message: OK} - request: body: null @@ -375,13 +455,13 @@ interactions: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:21:08 GMT'] + Date: ['Mon, 10 Dec 2018 17:36:32 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=94'] + Keep-Alive: ['timeout=15, max=97'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['9688'] + content-length: ['9705'] status: {code: 200, message: OK} - request: body: null @@ -408,8 +488,8 @@ interactions: \ reicht\n daf\xFCr nicht aus!

DNS:\ \ bettilaila.com

\n
\n
\n
\n\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ Record hinzuf\xFCgen\n \_\_|\_\_\ @@ -425,11 +505,11 @@ interactions: \ m\xF6chten? Dies k\xF6nnte dazu f\xFChren, dass die Domain nicht mehr erreichbar\ \ ist!')\" type=\"submit\" value=\"Zone l\xF6schen\"/>\n
\n
\n\
\n\n\n\n
\n\n\n\n
\n\ +

\n\n\ +

\n
\n
\n"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:36:35 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['11488'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/logout.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:36:35 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Location: ['https://konsoleh.your-server.de/?err=logout'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?err=logout + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:36:35 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6620'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:36:36 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6792'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['241'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:36:36 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:36:36 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6148'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:36:36 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9705'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ + \ Sie wirksam werden.

\nEbenso\ \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ \ Ihrer E-Mail-Konten negativ\n beeintr\xE4\ @@ -623,8 +1272,8 @@ interactions: \ reicht\n daf\xFCr nicht aus!

DNS:\ \ bettilaila.com

\n
\n
\n
\n\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ Record hinzuf\xFCgen\n \_\_|\_\_\ @@ -640,11 +1289,11 @@ interactions: \ m\xF6chten? Dies k\xF6nnte dazu f\xFChren, dass die Domain nicht mehr erreichbar\ \ ist!')\" type=\"submit\" value=\"Zone l\xF6schen\"/>\n
\n
\n\
\n\n\n\n
\n\n\n\n
\n\ -

\n\n\ -

\n
\n
\n
"} + Gek\xFCndigt

\n"} headers: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:21:13 GMT'] + Date: ['Mon, 10 Dec 2018 17:36:40 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Keep-Alive: ['timeout=15, max=98'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['11470'] + content-length: ['6148'] status: {code: 200, message: OK} - request: body: null @@ -376,13 +455,13 @@ interactions: Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:21:14 GMT'] + Date: ['Mon, 10 Dec 2018 17:36:41 GMT'] Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - Keep-Alive: ['timeout=15, max=94'] + Keep-Alive: ['timeout=15, max=97'] Pragma: [no-cache] Server: [Apache] Vary: [Accept-Encoding] - content-length: ['9688'] + content-length: ['9705'] status: {code: 200, message: OK} - request: body: null @@ -409,8 +488,8 @@ interactions: \ reicht\n daf\xFCr nicht aus!

DNS:\ \ bettilaila.com

\n
\n
\n
\n\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ Record hinzuf\xFCgen\n \_\_|\_\_\ @@ -426,11 +505,11 @@ interactions: \ m\xF6chten? Dies k\xF6nnte dazu f\xFChren, dass die Domain nicht mehr erreichbar\ \ ist!')\" type=\"submit\" value=\"Zone l\xF6schen\"/>\n
\n
\n\
\n\n\n\n
\n\n\n\n
\n

\n\ + \n

\n\ +
\n
\n"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:36:44 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['11552'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/logout.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:36:44 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Location: ['https://konsoleh.your-server.de/?err=logout'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?err=logout + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
Sie wurden abgemeldet.
\n
\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\n
Welchen Zugang m\xF6chten Sie nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826
Webmail-
zugang
\_
Login
Passwort
\_\ +
\_
Passwort vergessen?
\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:36:44 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=94'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6620'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n\n\n\"konsoleH\"\n
\"de\"\\_
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\ + \n\ + \n\n\n\ + \n\n\n\n\n\n\n\n\n\n\ + \n\n\n\n\n\ + \n\n\n\n\n\n\n\n\n\n\n\n\n\n
Welchen Zugang m\xF6chten Sie\ + \ nutzen?
\_
\uE824
konsoleH
Kundenaccount
\uE825
konsoleH
Domainzugang
\uE826\ +
Webmail-
zugang
\_
Login
Passwort
\_
\_\ +
Passwort vergessen?
\n\ +
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: ['Upgrade, Keep-Alive'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:36:45 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Pragma: [no-cache] + Server: [Apache] + Upgrade: [h2] + Vary: [Accept-Encoding] + content-length: ['6792'] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['241'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://konsoleh.your-server.de/login.php + response: + body: {string: None} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Length: ['0'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:36:45 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://konsoleh.your-server.de/'] + Pragma: [no-cache] + Server: [Apache] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/ + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:36:45 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['6148'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/?domain_number=D1279684218 + response: + body: {string: "
\n
\nDomain suchen:\n\n\n\n\n\n\nIn K\xFCndigung\n\n\ + \n\n\_\n
\n\ +
\n\n
\n

Herzlich Willkommen bei der Hetzner Online GmbH. F\xFCr neue\ + \ Bestellungen klicken Sie bitte auf Neue Bestellung

\ + \

Domains (1)

bettilaila.com
Domainregistrierung
\n\ +
\n

\nStatus:\n\ + \_\uE800\_\_\ + Fertiggestellt\_|\n \_\_\uE802\_\_In Bearbeitung\_|\n \_\_\uE803\_\_\ + In K\xFCndigung\_|\n \_\_\uE801\_\_Gesperrt|\n \_\_\uE804\_\_\ + Gek\xFCndigt

\n
"} + headers: + Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:36:45 GMT'] + Expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Pragma: [no-cache] + Server: [Apache] + Vary: [Accept-Encoding] + content-length: ['9705'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://konsoleh.your-server.de/dns.php?dnsaction2=editintextarea + response: + body: {string: "
Bitte beachten Sie,\ + \ dass es bis zu 24 Stunden dauern kann, bis die \xC4nderungen f\xFCr\n \ \ Sie wirksam werden.

\nEbenso\ \ sollten Sie in Betracht ziehen, dass fehlerhafte \xC4nderungen der\n \ \ DNS-Eintr\xE4ge den Betrieb Ihrer Webseite bzw.\ @@ -626,8 +1275,8 @@ interactions: \ reicht\n daf\xFCr nicht aus!

DNS:\ \ bettilaila.com

\n
\n
\n
\n\n\n\n Normale Ansicht\nErweiterte Ansicht\n\ Record hinzuf\xFCgen\n \_\_|\_\_\ @@ -643,11 +1292,11 @@ interactions: \ m\xF6chten? Dies k\xF6nnte dazu f\xFChren, dass die Domain nicht mehr erreichbar\ \ ist!')\" type=\"submit\" value=\"Zone l\xF6schen\"/>\n
\n
\n\
\n\n\n\n
\n\ - \ \n\n\n\n \n\n\n
\n\n\ -
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} + body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:00:38 GMT'] + Date: ['Mon, 10 Dec 2018 17:12:37 GMT'] Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] Server: [Apache] Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:12:37 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_authenticate_with_unmanaged_domain_should_fail.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_authenticate_with_unmanaged_domain_should_fail.yaml index 9bc6db32f..c97327d32 100644 --- a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_authenticate_with_unmanaged_domain_should_fail.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_authenticate_with_unmanaged_domain_should_fail.yaml @@ -52,8 +52,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:00:39 GMT'] + Date: ['Mon, 10 Dec 2018 17:12:38 GMT'] Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -77,9 +78,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:00:39 GMT'] + Date: ['Mon, 10 Dec 2018 17:12:38 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -101,9 +103,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:00:39 GMT'] + Date: ['Mon, 10 Dec 2018 17:12:39 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -125,8 +128,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:00:40 GMT'] + Date: ['Mon, 10 Dec 2018 17:12:39 GMT'] Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,9 +151,9 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:00:40 GMT'] + Date: ['Mon, 10 Dec 2018 17:12:39 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=fa322c12fc39ab6c7d6bdd0478b18e87'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=f34f9bc7142024fa0816970999a0dbe8'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -161,16 +165,17 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=fa322c12fc39ab6c7d6bdd0478b18e87 + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=f34f9bc7142024fa0816970999a0dbe8 response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Sat, 08 Dec 2018 15:00:40 GMT'] + Date: ['Mon, 10 Dec 2018 17:12:39 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=f4c3da888c7d6bf065f4b3e132b4eff0c637c9b3&state=fa322c12fc39ab6c7d6bdd0478b18e87'] + Location: ['https://robot.your-server.de/login/check?code=fdf941f52b33e7f0d24563044ed1930a1380c403&state=f34f9bc7142024fa0816970999a0dbe8'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -185,13 +190,13 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=f4c3da888c7d6bf065f4b3e132b4eff0c637c9b3&state=fa322c12fc39ab6c7d6bdd0478b18e87 + uri: https://robot.your-server.de/login/check?code=fdf941f52b33e7f0d24563044ed1930a1380c403&state=f34f9bc7142024fa0816970999a0dbe8 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:00:41 GMT'] + Date: ['Mon, 10 Dec 2018 17:12:40 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] @@ -376,7 +381,7 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:00:41 GMT'] + Date: ['Mon, 10 Dec 2018 17:12:40 GMT'] Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] @@ -560,9 +565,53 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:00:42 GMT'] + Date: ['Mon, 10 Dec 2018 17:12:41 GMT'] Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:12:41 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:12:41 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_for_A_with_valid_name_and_content.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_for_A_with_valid_name_and_content.yaml index c90fbd143..9d9063fd9 100644 --- a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_for_A_with_valid_name_and_content.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_for_A_with_valid_name_and_content.yaml @@ -52,8 +52,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:00:43 GMT'] + Date: ['Mon, 10 Dec 2018 17:12:42 GMT'] Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -77,9 +78,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:00:43 GMT'] + Date: ['Mon, 10 Dec 2018 17:12:42 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -101,9 +103,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:00:43 GMT'] + Date: ['Mon, 10 Dec 2018 17:12:42 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -125,8 +128,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:00:43 GMT'] + Date: ['Mon, 10 Dec 2018 17:12:43 GMT'] Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,9 +151,9 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:00:44 GMT'] + Date: ['Mon, 10 Dec 2018 17:12:43 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=47a832590b280344018c026bd76552d2'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=a3117de75367e230d627a1f44e998e48'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -161,16 +165,17 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=47a832590b280344018c026bd76552d2 + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=a3117de75367e230d627a1f44e998e48 response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Sat, 08 Dec 2018 15:00:44 GMT'] + Date: ['Mon, 10 Dec 2018 17:12:43 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=0bace48c439c9d80d71987f9ee511e651a6cd887&state=47a832590b280344018c026bd76552d2'] + Location: ['https://robot.your-server.de/login/check?code=dc2bcd2eba5089e1310e8dfab284a6cacef3ec95&state=a3117de75367e230d627a1f44e998e48'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -185,13 +190,13 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=0bace48c439c9d80d71987f9ee511e651a6cd887&state=47a832590b280344018c026bd76552d2 + uri: https://robot.your-server.de/login/check?code=dc2bcd2eba5089e1310e8dfab284a6cacef3ec95&state=a3117de75367e230d627a1f44e998e48 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:00:45 GMT'] + Date: ['Mon, 10 Dec 2018 17:12:43 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] @@ -376,11 +381,258 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:00:45 GMT'] + Date: ['Mon, 10 Dec 2018 17:12:44 GMT'] Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:12:44 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:12:45 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:12:45 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:12:45 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:12:46 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:12:46 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:12:46 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=3c57f9177f256415d2531244326f4f4d'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=3c57f9177f256415d2531244326f4f4d + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:12:46 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=b53a69a03330066f55624a68f36cbe30c1fc64e6&state=3c57f9177f256415d2531244326f4f4d'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=b53a69a03330066f55624a68f36cbe30c1fc64e6&state=3c57f9177f256415d2531244326f4f4d + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:12:47 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} - request: body: null headers: @@ -399,7 +651,7 @@ interactions: 2\">\n\n\n\n\n* \n\n\ \ \n\n\n\n \n\n\n
\n\n\
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ @@ -423,9 +675,53 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:00:46 GMT'] + Date: ['Mon, 10 Dec 2018 17:12:47 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:12:47 GMT'] Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:12:47 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_for_CNAME_with_valid_name_and_content.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_for_CNAME_with_valid_name_and_content.yaml index f1b0390bd..3be06fb64 100644 --- a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_for_CNAME_with_valid_name_and_content.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_for_CNAME_with_valid_name_and_content.yaml @@ -52,8 +52,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:00:47 GMT'] + Date: ['Mon, 10 Dec 2018 17:12:48 GMT'] Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -77,9 +78,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:00:47 GMT'] + Date: ['Mon, 10 Dec 2018 17:12:48 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -101,9 +103,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:00:47 GMT'] + Date: ['Mon, 10 Dec 2018 17:12:49 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -125,8 +128,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:00:47 GMT'] + Date: ['Mon, 10 Dec 2018 17:12:49 GMT'] Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,9 +151,9 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:00:48 GMT'] + Date: ['Mon, 10 Dec 2018 17:12:49 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=03a3a7e006ef925cf9cf5d79d3c85703'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=5b635f70f9a304af22c85101d3ba4f49'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -161,16 +165,17 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=03a3a7e006ef925cf9cf5d79d3c85703 + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=5b635f70f9a304af22c85101d3ba4f49 response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Sat, 08 Dec 2018 15:00:48 GMT'] + Date: ['Mon, 10 Dec 2018 17:12:50 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=8fada7cb1fd927dce8c48fa1dbacb03736b9ee66&state=03a3a7e006ef925cf9cf5d79d3c85703'] + Location: ['https://robot.your-server.de/login/check?code=60bb7046014ba00fa406fc04df030f903803803b&state=5b635f70f9a304af22c85101d3ba4f49'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -185,13 +190,13 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=8fada7cb1fd927dce8c48fa1dbacb03736b9ee66&state=03a3a7e006ef925cf9cf5d79d3c85703 + uri: https://robot.your-server.de/login/check?code=60bb7046014ba00fa406fc04df030f903803803b&state=5b635f70f9a304af22c85101d3ba4f49 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:00:48 GMT'] + Date: ['Mon, 10 Dec 2018 17:12:50 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] @@ -376,7 +381,7 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:00:49 GMT'] + Date: ['Mon, 10 Dec 2018 17:12:50 GMT'] Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] @@ -389,45 +394,245 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/dns/update/id/556218 + uri: https://robot.your-server.de/login/logout/r/true response: - body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n\ - \
\n
\n
\n\n\ -
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} + body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:00:49 GMT'] + Date: ['Mon, 10 Dec 2018 17:12:51 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:12:51 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:12:51 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:12:52 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:12:52 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:12:52 GMT'] Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:12:53 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=9296ccbf641d32ba6e5187b7d8e0e4cc'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=9296ccbf641d32ba6e5187b7d8e0e4cc + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:12:53 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=247dc3f2a3d0529c10399083725fb595ad1769fd&state=9296ccbf641d32ba6e5187b7d8e0e4cc'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=247dc3f2a3d0529c10399083725fb595ad1769fd&state=9296ccbf641d32ba6e5187b7d8e0e4cc + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:12:53 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} - request: body: null headers: @@ -446,7 +651,7 @@ interactions: 2\">\n\n\n\n\n* \n\n\ \ \n\n\n\n \n\n\n
\n\n\
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ @@ -470,13 +675,13 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:00:50 GMT'] - Keep-Alive: ['timeout=15, max=96'] + Date: ['Mon, 10 Dec 2018 17:12:53 GMT'] + Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120993+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0Adocs+3600+IN+CNAME+docs.example.com%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121041+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0Adocs+3600+IN+CNAME+docs.example.com%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] @@ -491,9 +696,53 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:00:50 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Date: ['Mon, 10 Dec 2018 17:12:54 GMT'] + Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:13:22 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:13:22 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_fqdn_name_and_content.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_fqdn_name_and_content.yaml index 337065e88..4032aa51e 100644 --- a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_fqdn_name_and_content.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_fqdn_name_and_content.yaml @@ -52,8 +52,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:01:19 GMT'] + Date: ['Mon, 10 Dec 2018 17:13:23 GMT'] Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -77,9 +78,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:01:19 GMT'] + Date: ['Mon, 10 Dec 2018 17:13:23 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -101,9 +103,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:01:19 GMT'] + Date: ['Mon, 10 Dec 2018 17:13:23 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -125,8 +128,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:01:20 GMT'] + Date: ['Mon, 10 Dec 2018 17:13:24 GMT'] Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,9 +151,9 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:01:20 GMT'] + Date: ['Mon, 10 Dec 2018 17:13:24 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=14dda14733ac5aea40b2abac28755fd8'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=a6fd8d4b4eae07d9dd6c4edb6d7d494a'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -161,16 +165,17 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=14dda14733ac5aea40b2abac28755fd8 + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=a6fd8d4b4eae07d9dd6c4edb6d7d494a response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Sat, 08 Dec 2018 15:01:20 GMT'] + Date: ['Mon, 10 Dec 2018 17:13:24 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=7cb88df4ea9b8fb055afc81608a270b09a875642&state=14dda14733ac5aea40b2abac28755fd8'] + Location: ['https://robot.your-server.de/login/check?code=55bca90c0460fdc41c80d90afef1adffd6ef8479&state=a6fd8d4b4eae07d9dd6c4edb6d7d494a'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -185,13 +190,13 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=7cb88df4ea9b8fb055afc81608a270b09a875642&state=14dda14733ac5aea40b2abac28755fd8 + uri: https://robot.your-server.de/login/check?code=55bca90c0460fdc41c80d90afef1adffd6ef8479&state=a6fd8d4b4eae07d9dd6c4edb6d7d494a response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:01:21 GMT'] + Date: ['Mon, 10 Dec 2018 17:13:24 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] @@ -376,7 +381,7 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:01:21 GMT'] + Date: ['Mon, 10 Dec 2018 17:13:25 GMT'] Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] @@ -389,46 +394,245 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/dns/update/id/556218 + uri: https://robot.your-server.de/login/logout/r/true response: - body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\ - \n\n\ - \n
\n
\n* \n
\n
\n
\n\n
\n\ - \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ - \ inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} + body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:01:22 GMT'] + Date: ['Mon, 10 Dec 2018 17:13:25 GMT'] Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:13:25 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:13:26 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:13:26 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:13:26 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:13:26 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:13:27 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=df4082ed851477f32d6ca3568a937b4f'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=df4082ed851477f32d6ca3568a937b4f + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:13:27 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=31d1c40470ab908fb6bed23f4e30b653fcf36b08&state=df4082ed851477f32d6ca3568a937b4f'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=31d1c40470ab908fb6bed23f4e30b653fcf36b08&state=df4082ed851477f32d6ca3568a937b4f + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:13:27 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} - request: body: null headers: @@ -447,7 +651,7 @@ interactions: 2\">\n\n\n\n\n* \n\n \n\n\ \n\n \n\ \n\n
\n\n
\n\ \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ @@ -472,13 +676,13 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:01:22 GMT'] - Keep-Alive: ['timeout=15, max=96'] + Date: ['Mon, 10 Dec 2018 17:13:28 GMT'] + Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120994+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121042+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] @@ -493,9 +697,53 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:01:22 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Date: ['Mon, 10 Dec 2018 17:13:28 GMT'] + Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:13:57 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:13:57 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_full_name_and_content.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_full_name_and_content.yaml index 02035fcc4..de97a79a5 100644 --- a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_full_name_and_content.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_full_name_and_content.yaml @@ -52,8 +52,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:01:51 GMT'] + Date: ['Mon, 10 Dec 2018 17:13:58 GMT'] Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -77,9 +78,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:01:52 GMT'] + Date: ['Mon, 10 Dec 2018 17:13:58 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -101,9 +103,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:01:52 GMT'] + Date: ['Mon, 10 Dec 2018 17:13:58 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -125,8 +128,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:01:52 GMT'] + Date: ['Mon, 10 Dec 2018 17:13:58 GMT'] Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,9 +151,9 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:01:53 GMT'] + Date: ['Mon, 10 Dec 2018 17:13:59 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=367dd670813de9f9108c0984d6defaeb'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=c64b53b8375c53ec11aa75988249af3b'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -161,16 +165,17 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=367dd670813de9f9108c0984d6defaeb + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=c64b53b8375c53ec11aa75988249af3b response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Sat, 08 Dec 2018 15:01:53 GMT'] + Date: ['Mon, 10 Dec 2018 17:13:59 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=40455adb3bd9910e0a17b1e128f500e0ce4ab47a&state=367dd670813de9f9108c0984d6defaeb'] + Location: ['https://robot.your-server.de/login/check?code=8b40134b9b2c0121dbb8e382f273d403ef9c69e9&state=c64b53b8375c53ec11aa75988249af3b'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -185,13 +190,13 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=40455adb3bd9910e0a17b1e128f500e0ce4ab47a&state=367dd670813de9f9108c0984d6defaeb + uri: https://robot.your-server.de/login/check?code=8b40134b9b2c0121dbb8e382f273d403ef9c69e9&state=c64b53b8375c53ec11aa75988249af3b response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:01:53 GMT'] + Date: ['Mon, 10 Dec 2018 17:13:59 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] @@ -376,7 +381,7 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:01:54 GMT'] + Date: ['Mon, 10 Dec 2018 17:14:00 GMT'] Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] @@ -389,47 +394,245 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/dns/update/id/556218 + uri: https://robot.your-server.de/login/logout/r/true response: - body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n\ -
\n\n
\n \xA9 2018 Hetzner\ - \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ - \
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} + body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:01:54 GMT'] + Date: ['Mon, 10 Dec 2018 17:14:00 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:14:00 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:14:01 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:14:01 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:14:01 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:14:02 GMT'] Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:14:02 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=35978422950d511d302eea7a91d2681d'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=35978422950d511d302eea7a91d2681d + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:14:02 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=4f448224b330d1bf27aad81ba78f27eeeeb4934e&state=35978422950d511d302eea7a91d2681d'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=4f448224b330d1bf27aad81ba78f27eeeeb4934e&state=35978422950d511d302eea7a91d2681d + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:14:03 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} - request: body: null headers: @@ -448,7 +651,7 @@ interactions: 2\">\n\n\n\n\n* \n\n \n\n\n\n \n\n\n\
\n\n
\n \xA9 2018 Hetzner\ \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ @@ -474,13 +677,13 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:01:54 GMT'] - Keep-Alive: ['timeout=15, max=96'] + Date: ['Mon, 10 Dec 2018 17:14:03 GMT'] + Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120995+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121043+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] @@ -495,9 +698,53 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:01:54 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Date: ['Mon, 10 Dec 2018 17:14:03 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:14:32 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] Server: [Apache] Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:14:32 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_valid_name_and_content.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_valid_name_and_content.yaml index eb321c6eb..0e0ef9889 100644 --- a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_valid_name_and_content.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_for_TXT_with_valid_name_and_content.yaml @@ -52,8 +52,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:02:23 GMT'] + Date: ['Mon, 10 Dec 2018 17:14:33 GMT'] Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -77,9 +78,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:02:24 GMT'] + Date: ['Mon, 10 Dec 2018 17:14:33 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -101,9 +103,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:02:24 GMT'] + Date: ['Mon, 10 Dec 2018 17:14:33 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -125,8 +128,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:02:24 GMT'] + Date: ['Mon, 10 Dec 2018 17:14:33 GMT'] Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,9 +151,9 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:02:25 GMT'] + Date: ['Mon, 10 Dec 2018 17:14:34 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=50b4b694995b2254c946ff1c00c75883'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=8ee4cb6309e2f4825c5546bf949fcac5'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -161,16 +165,17 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=50b4b694995b2254c946ff1c00c75883 + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=8ee4cb6309e2f4825c5546bf949fcac5 response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Sat, 08 Dec 2018 15:02:25 GMT'] + Date: ['Mon, 10 Dec 2018 17:14:34 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=3241c192857f655d0aa2592e90365d8ccb469478&state=50b4b694995b2254c946ff1c00c75883'] + Location: ['https://robot.your-server.de/login/check?code=4cb6d2c85d1a5ad00d34cf5c1181efa9864489dc&state=8ee4cb6309e2f4825c5546bf949fcac5'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -185,13 +190,13 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=3241c192857f655d0aa2592e90365d8ccb469478&state=50b4b694995b2254c946ff1c00c75883 + uri: https://robot.your-server.de/login/check?code=4cb6d2c85d1a5ad00d34cf5c1181efa9864489dc&state=8ee4cb6309e2f4825c5546bf949fcac5 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:02:25 GMT'] + Date: ['Mon, 10 Dec 2018 17:14:34 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] @@ -376,7 +381,7 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:02:26 GMT'] + Date: ['Mon, 10 Dec 2018 17:14:35 GMT'] Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] @@ -389,48 +394,245 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/dns/update/id/556218 + uri: https://robot.your-server.de/login/logout/r/true response: - body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n \n\n
\n
\n* \n
\n\ -
\n\n
\n \xA9 2018 Hetzner\ - \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ - \
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} + body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:02:26 GMT'] + Date: ['Mon, 10 Dec 2018 17:14:35 GMT'] Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] Server: [Apache] Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:14:36 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:14:36 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:14:36 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:14:36 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:14:37 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:14:37 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=a02664670170819587ac2d6f06549f13'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=a02664670170819587ac2d6f06549f13 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:14:37 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=4e6ed1743a57e6a3b00b73d76e608b6979f43941&state=a02664670170819587ac2d6f06549f13'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=4e6ed1743a57e6a3b00b73d76e608b6979f43941&state=a02664670170819587ac2d6f06549f13 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:14:38 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} - request: body: null headers: @@ -449,7 +651,7 @@ interactions: 2\">\n\n\n\n\n* \n\n \n\n\n\n \n\n\n\
\n\n
\n \xA9 2018 Hetzner\ \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ @@ -476,13 +678,13 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:02:26 GMT'] - Keep-Alive: ['timeout=15, max=96'] + Date: ['Mon, 10 Dec 2018 17:14:38 GMT'] + Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120996+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121044+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] @@ -497,9 +699,53 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:02:27 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Date: ['Mon, 10 Dec 2018 17:14:38 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:15:07 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] Server: [Apache] Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:15:07 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_multiple_times_should_create_record_set.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_multiple_times_should_create_record_set.yaml index 97d8167d1..3581a2df0 100644 --- a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_multiple_times_should_create_record_set.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_multiple_times_should_create_record_set.yaml @@ -52,8 +52,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:02:56 GMT'] + Date: ['Mon, 10 Dec 2018 17:15:09 GMT'] Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -77,9 +78,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:02:56 GMT'] + Date: ['Mon, 10 Dec 2018 17:15:09 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -101,9 +103,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:02:56 GMT'] + Date: ['Mon, 10 Dec 2018 17:15:09 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -125,8 +128,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:02:57 GMT'] + Date: ['Mon, 10 Dec 2018 17:15:09 GMT'] Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,9 +151,9 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:02:57 GMT'] + Date: ['Mon, 10 Dec 2018 17:15:10 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=eaf184c049eae2535aa1cc0fd8cd5a34'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=3e273f9a5a96fb32c3d02dd32d714edc'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -161,16 +165,17 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=eaf184c049eae2535aa1cc0fd8cd5a34 + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=3e273f9a5a96fb32c3d02dd32d714edc response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Sat, 08 Dec 2018 15:02:57 GMT'] + Date: ['Mon, 10 Dec 2018 17:15:10 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=221e68e40935f61dbacbf5e9ba1ed7c363f6ef1b&state=eaf184c049eae2535aa1cc0fd8cd5a34'] + Location: ['https://robot.your-server.de/login/check?code=cdc78feadc5a3add7cfe4495ede5a6c2daf2a70f&state=3e273f9a5a96fb32c3d02dd32d714edc'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -185,13 +190,13 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=221e68e40935f61dbacbf5e9ba1ed7c363f6ef1b&state=eaf184c049eae2535aa1cc0fd8cd5a34 + uri: https://robot.your-server.de/login/check?code=cdc78feadc5a3add7cfe4495ede5a6c2daf2a70f&state=3e273f9a5a96fb32c3d02dd32d714edc response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:02:58 GMT'] + Date: ['Mon, 10 Dec 2018 17:15:10 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] @@ -376,7 +381,7 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:02:58 GMT'] + Date: ['Mon, 10 Dec 2018 17:15:11 GMT'] Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] @@ -389,48 +394,245 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/dns/update/id/556218 + uri: https://robot.your-server.de/login/logout/r/true response: - body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n
\n\n\ -
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} + body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:02:59 GMT'] + Date: ['Mon, 10 Dec 2018 17:15:11 GMT'] Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] Server: [Apache] Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:15:12 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:15:12 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:15:12 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:15:13 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:15:13 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:15:13 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=49b45f7421f94036e5e79a16c1b5ed67'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=49b45f7421f94036e5e79a16c1b5ed67 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:15:13 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=01b8b8365e06d9ee2f37445d1a20861cbd009b08&state=49b45f7421f94036e5e79a16c1b5ed67'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=01b8b8365e06d9ee2f37445d1a20861cbd009b08&state=49b45f7421f94036e5e79a16c1b5ed67 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:15:14 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} - request: body: null headers: @@ -449,7 +651,7 @@ interactions: 2\">\n\n\n\n\n* \n\n \n\n\n\n \n\n\n
\n\n\
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ @@ -476,13 +678,13 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:02:59 GMT'] - Keep-Alive: ['timeout=15, max=96'] + Date: ['Mon, 10 Dec 2018 17:15:14 GMT'] + Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120997+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121045+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] @@ -497,11 +699,258 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:02:59 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Date: ['Mon, 10 Dec 2018 17:15:15 GMT'] + Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:15:43 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:15:43 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:15:44 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:15:44 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:15:44 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:15:44 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:15:45 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=41885f9ab5f00d9b8a89e9aa3edf8857'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=41885f9ab5f00d9b8a89e9aa3edf8857 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:15:45 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=782349bd98a263cfce65f15bed7516fd8769f19e&state=41885f9ab5f00d9b8a89e9aa3edf8857'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=782349bd98a263cfce65f15bed7516fd8769f19e&state=41885f9ab5f00d9b8a89e9aa3edf8857 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:15:45 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} - request: body: null headers: @@ -520,7 +969,7 @@ interactions: 2\">\n\n\n\n\n* \n\n \n\ \n\n\n \n\ \n\n
\n\n
\n\ \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ @@ -548,13 +997,13 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:03:29 GMT'] - Keep-Alive: ['timeout=15, max=100'] + Date: ['Mon, 10 Dec 2018 17:15:46 GMT'] + Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120997+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121046+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] @@ -569,9 +1018,53 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:03:29 GMT'] - Keep-Alive: ['timeout=15, max=99'] + Date: ['Mon, 10 Dec 2018 17:15:46 GMT'] + Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:16:15 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:16:15 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_with_duplicate_records_should_be_noop.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_with_duplicate_records_should_be_noop.yaml index b1acf841b..cc6de9282 100644 --- a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_with_duplicate_records_should_be_noop.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_create_record_with_duplicate_records_should_be_noop.yaml @@ -52,8 +52,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:03:58 GMT'] + Date: ['Mon, 10 Dec 2018 17:16:16 GMT'] Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -77,9 +78,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:03:58 GMT'] + Date: ['Mon, 10 Dec 2018 17:16:16 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -101,9 +103,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:03:59 GMT'] + Date: ['Mon, 10 Dec 2018 17:16:16 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -125,8 +128,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:03:59 GMT'] + Date: ['Mon, 10 Dec 2018 17:16:16 GMT'] Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,9 +151,9 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:03:59 GMT'] + Date: ['Mon, 10 Dec 2018 17:16:17 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=7026d123d097b35f62130f73699db936'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=33326a72b48707a2a5cdd497426c7955'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -161,16 +165,17 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=7026d123d097b35f62130f73699db936 + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=33326a72b48707a2a5cdd497426c7955 response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Sat, 08 Dec 2018 15:04:00 GMT'] + Date: ['Mon, 10 Dec 2018 17:16:17 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=5c71967d7c93161de93eaf291e776f382b1e38f4&state=7026d123d097b35f62130f73699db936'] + Location: ['https://robot.your-server.de/login/check?code=25bc4e04879ef92b657ecbdffbe80c3da697b60b&state=33326a72b48707a2a5cdd497426c7955'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -185,13 +190,13 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=5c71967d7c93161de93eaf291e776f382b1e38f4&state=7026d123d097b35f62130f73699db936 + uri: https://robot.your-server.de/login/check?code=25bc4e04879ef92b657ecbdffbe80c3da697b60b&state=33326a72b48707a2a5cdd497426c7955 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:04:00 GMT'] + Date: ['Mon, 10 Dec 2018 17:16:17 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] @@ -376,11 +381,258 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:04:00 GMT'] + Date: ['Mon, 10 Dec 2018 17:16:18 GMT'] Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:16:18 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:16:18 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:16:19 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:16:19 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:16:19 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:16:19 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:16:20 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=0bc69081eaeb22b758448855915665a7'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=0bc69081eaeb22b758448855915665a7 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:16:20 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=91c2d3fd6592e4126a9ab867c7f4d3f6966b9dc8&state=0bc69081eaeb22b758448855915665a7'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=91c2d3fd6592e4126a9ab867c7f4d3f6966b9dc8&state=0bc69081eaeb22b758448855915665a7 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:16:20 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} - request: body: null headers: @@ -399,7 +651,7 @@ interactions: 2\">\n\n\n\n\n* \n\n \n\ \n\n\n \n\ + \n\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ + "} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:16:21 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121047+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['748'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:16:21 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:16:49 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:16:50 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:16:50 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:16:50 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:16:51 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:16:51 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:16:51 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=c60fda86438a596e127c7f9f326149b6'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=c60fda86438a596e127c7f9f326149b6 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:16:51 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=a7e1316a3fa23cbed6ad43e7b288d62a78413262&state=c60fda86438a596e127c7f9f326149b6'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=a7e1316a3fa23cbed6ad43e7b288d62a78413262&state=c60fda86438a596e127c7f9f326149b6 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:16:52 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ \n
\n
\n* \n
\n
\n
\n\n
\n\ \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ @@ -428,11 +1001,258 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:04:01 GMT'] + Date: ['Mon, 10 Dec 2018 17:16:52 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:16:52 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:16:52 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:16:53 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:16:53 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:16:53 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:16:53 GMT'] Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:16:54 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=05b3f1b3b497beda8300a1ec6fdda24d'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=05b3f1b3b497beda8300a1ec6fdda24d + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:16:54 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=e0ece837a747045554dd22061643c88c307ee10f&state=05b3f1b3b497beda8300a1ec6fdda24d'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=e0ece837a747045554dd22061643c88c307ee10f&state=05b3f1b3b497beda8300a1ec6fdda24d + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:16:54 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} - request: body: null headers: @@ -451,7 +1271,7 @@ interactions: 2\">\n\n\n\n\n* \n\n \n\ - \n\n\n \n\n\n\n \n\ \n\n
\n\n
\n\ \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ @@ -480,30 +1301,53 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:04:01 GMT'] - Keep-Alive: ['timeout=15, max=96'] + Date: ['Mon, 10 Dec 2018 17:16:55 GMT'] + Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018120999+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + body: null headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] Connection: [keep-alive] - Content-Length: ['748'] - Content-Type: [application/x-www-form-urlencoded] User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update + method: GET + uri: https://robot.your-server.de/login/logout/r/true response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:04:01 GMT'] + Date: ['Mon, 10 Dec 2018 17:16:55 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:16:55 GMT'] Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_should_remove_record.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_should_remove_record.yaml index 6bcaddfed..cade92c00 100644 --- a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_should_remove_record.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_should_remove_record.yaml @@ -52,8 +52,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:04:30 GMT'] + Date: ['Mon, 10 Dec 2018 17:16:56 GMT'] Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -77,9 +78,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:04:30 GMT'] + Date: ['Mon, 10 Dec 2018 17:16:57 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -101,9 +103,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:04:31 GMT'] + Date: ['Mon, 10 Dec 2018 17:16:57 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -125,8 +128,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:04:31 GMT'] + Date: ['Mon, 10 Dec 2018 17:16:57 GMT'] Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,9 +151,9 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:04:32 GMT'] + Date: ['Mon, 10 Dec 2018 17:16:58 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=3af83f2160f51a19e662313df10562c9'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=0b5a385f247aea2783615532defda2e1'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -161,16 +165,17 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=3af83f2160f51a19e662313df10562c9 + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=0b5a385f247aea2783615532defda2e1 response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Sat, 08 Dec 2018 15:04:32 GMT'] + Date: ['Mon, 10 Dec 2018 17:16:58 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=60ae30c38406fa63042b0d9bb007a4fc0167ab94&state=3af83f2160f51a19e662313df10562c9'] + Location: ['https://robot.your-server.de/login/check?code=02f8b17215e223fe89b293358279bcef91017cf5&state=0b5a385f247aea2783615532defda2e1'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -185,13 +190,13 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=60ae30c38406fa63042b0d9bb007a4fc0167ab94&state=3af83f2160f51a19e662313df10562c9 + uri: https://robot.your-server.de/login/check?code=02f8b17215e223fe89b293358279bcef91017cf5&state=0b5a385f247aea2783615532defda2e1 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:04:32 GMT'] + Date: ['Mon, 10 Dec 2018 17:16:58 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] @@ -376,11 +381,579 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:04:33 GMT'] + Date: ['Mon, 10 Dec 2018 17:16:58 GMT'] Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:16:59 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:16:59 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:17:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:17:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:17:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:17:00 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:17:01 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=b5b30b085abfe9de003077e82ff77e4d'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=b5b30b085abfe9de003077e82ff77e4d + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:17:01 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=b441319b1132f8ca4568f2f50a16af1af3516d15&state=b5b30b085abfe9de003077e82ff77e4d'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=b441319b1132f8ca4568f2f50a16af1af3516d15&state=b5b30b085abfe9de003077e82ff77e4d + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:17:01 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ + \n
\n
\n* \n
\n
\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:17:02 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121048+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Adelete.testfilt+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['799'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:17:02 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:17:30 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:17:31 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:17:31 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:17:32 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:17:32 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:17:32 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:17:33 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=1a5de451369e2a8d6c5619b82bc8eda5'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=1a5de451369e2a8d6c5619b82bc8eda5 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:17:33 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=272a9ae9e759b6f6c5b978e753046d79aa2842bd&state=1a5de451369e2a8d6c5619b82bc8eda5'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=272a9ae9e759b6f6c5b978e753046d79aa2842bd&state=1a5de451369e2a8d6c5619b82bc8eda5 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:17:33 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} - request: body: null headers: @@ -391,48 +964,252 @@ interactions: method: GET uri: https://robot.your-server.de/dns/update/id/556218 response: - body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ - \n
\n
\n* \n
\n
\n
\n\n
\n\ - \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ - \ inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:17:33 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121049+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['748'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:17:34 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:18:02 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:18:02 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:18:03 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} headers: + Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:04:33 GMT'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:18:03 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:18:03 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:18:04 GMT'] Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} - request: body: null @@ -444,70 +1221,61 @@ interactions: method: GET uri: https://robot.your-server.de/dns/update/id/556218 response: - body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ - \n
\n
\n* \n
\n
\n
\n\n
\n\ - \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ - \ inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} + body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:04:33 GMT'] + Date: ['Mon, 10 Dec 2018 17:18:04 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=f9c18f7f8eba5ff529f6f234c9c22544'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=f9c18f7f8eba5ff529f6f234c9c22544 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:18:04 GMT'] Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=9e77fba7d792cc0896aeced580c8e3fcd4ffb20a&state=f9c18f7f8eba5ff529f6f234c9c22544'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] - status: {code: 200, message: OK} + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121000+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Adelete.testfilt+3600+IN+TXT+%22challengetoken%22%0A + body: null headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] Connection: [keep-alive] - Content-Length: ['799'] - Content-Type: [application/x-www-form-urlencoded] User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update + method: GET + uri: https://robot.your-server.de/login/check?code=9e77fba7d792cc0896aeced580c8e3fcd4ffb20a&state=f9c18f7f8eba5ff529f6f234c9c22544 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:04:34 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Date: ['Mon, 10 Dec 2018 17:18:04 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] Server: [Apache] Transfer-Encoding: [chunked] - status: {code: 200, message: OK} + status: {code: 302, message: Found} - request: body: null headers: @@ -526,7 +1294,7 @@ interactions: 2\">\n\n\n\n\n* \n\n \n\n\n\n \n\n\n\ -
\n\n
\n \xA9 2018 Hetzner\ - \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ - \
\n \n\n\n\n \n\ + \n\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\n
Impressum\ \ |\n Datenschutz\ @@ -557,30 +1324,53 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:05:03 GMT'] - Keep-Alive: ['timeout=15, max=100'] + Date: ['Mon, 10 Dec 2018 17:18:05 GMT'] + Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121000+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + body: null headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] Connection: [keep-alive] - Content-Length: ['748'] - Content-Type: [application/x-www-form-urlencoded] User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update + method: GET + uri: https://robot.your-server.de/login/logout/r/true response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:05:03 GMT'] - Keep-Alive: ['timeout=15, max=99'] + Date: ['Mon, 10 Dec 2018 17:18:05 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:18:05 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_fqdn_name_should_remove_record.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_fqdn_name_should_remove_record.yaml index 50a1d13e1..bf5d2d2bb 100644 --- a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_fqdn_name_should_remove_record.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_fqdn_name_should_remove_record.yaml @@ -52,8 +52,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:05:32 GMT'] + Date: ['Mon, 10 Dec 2018 17:18:06 GMT'] Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -77,9 +78,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:05:32 GMT'] + Date: ['Mon, 10 Dec 2018 17:18:07 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -101,9 +103,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:05:33 GMT'] + Date: ['Mon, 10 Dec 2018 17:18:07 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -125,8 +128,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:05:33 GMT'] + Date: ['Mon, 10 Dec 2018 17:18:07 GMT'] Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,9 +151,9 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:05:34 GMT'] + Date: ['Mon, 10 Dec 2018 17:18:08 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=ef19804d15ac2dd27efe66ab9ba00e82'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=70b8c88b16564eba6f6af3a87832de50'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -161,16 +165,17 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=ef19804d15ac2dd27efe66ab9ba00e82 + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=70b8c88b16564eba6f6af3a87832de50 response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Sat, 08 Dec 2018 15:05:34 GMT'] + Date: ['Mon, 10 Dec 2018 17:18:08 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=b1b30425f8bee69778dbc842985c721dfd83ae0c&state=ef19804d15ac2dd27efe66ab9ba00e82'] + Location: ['https://robot.your-server.de/login/check?code=1698d470608568ba59f12597ba6abe4107dc76ca&state=70b8c88b16564eba6f6af3a87832de50'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -185,13 +190,13 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=b1b30425f8bee69778dbc842985c721dfd83ae0c&state=ef19804d15ac2dd27efe66ab9ba00e82 + uri: https://robot.your-server.de/login/check?code=1698d470608568ba59f12597ba6abe4107dc76ca&state=70b8c88b16564eba6f6af3a87832de50 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:05:34 GMT'] + Date: ['Mon, 10 Dec 2018 17:18:08 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] @@ -376,11 +381,579 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:05:35 GMT'] + Date: ['Mon, 10 Dec 2018 17:18:08 GMT'] Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:18:09 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:18:09 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:18:09 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:18:10 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:18:10 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:18:10 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:18:11 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=50a42fa494683a2a33a83507213a04c6'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=50a42fa494683a2a33a83507213a04c6 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:18:11 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=738284930b84dbef9a5c928d428f1366a735ae79&state=50a42fa494683a2a33a83507213a04c6'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=738284930b84dbef9a5c928d428f1366a735ae79&state=50a42fa494683a2a33a83507213a04c6 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:18:11 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ + \n
\n
\n* \n
\n
\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:18:11 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121050+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Adelete.testfqdn+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['799'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:18:12 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:18:40 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:18:40 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:18:41 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:18:41 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:18:41 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:18:42 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:18:42 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=8baa5ba5b1e6e5c1c2da68e48c2eb279'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=8baa5ba5b1e6e5c1c2da68e48c2eb279 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:18:42 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=6310eb5aa6d51897c3e4fab0ea562f5a49b86735&state=8baa5ba5b1e6e5c1c2da68e48c2eb279'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=6310eb5aa6d51897c3e4fab0ea562f5a49b86735&state=8baa5ba5b1e6e5c1c2da68e48c2eb279 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:18:42 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} - request: body: null headers: @@ -391,48 +964,252 @@ interactions: method: GET uri: https://robot.your-server.de/dns/update/id/556218 response: - body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ - \n
\n
\n* \n
\n
\n
\n\n
\n\ - \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ - \ inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:18:43 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121051+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['748'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:18:43 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:19:12 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:19:12 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:19:12 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} headers: + Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:05:35 GMT'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:19:13 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:19:13 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:19:13 GMT'] Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} - request: body: null @@ -444,70 +1221,61 @@ interactions: method: GET uri: https://robot.your-server.de/dns/update/id/556218 response: - body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ - \n
\n
\n* \n
\n
\n
\n\n
\n\ - \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ - \ inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} + body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:05:35 GMT'] + Date: ['Mon, 10 Dec 2018 17:19:14 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=ff538b9a10da53c8a75d046650196899'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=ff538b9a10da53c8a75d046650196899 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:19:14 GMT'] Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=4c08a68f9df22a1813e3110118057220fe03e03d&state=ff538b9a10da53c8a75d046650196899'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] - status: {code: 200, message: OK} + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121002+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Adelete.testfqdn+3600+IN+TXT+%22challengetoken%22%0A + body: null headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] Connection: [keep-alive] - Content-Length: ['799'] - Content-Type: [application/x-www-form-urlencoded] User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update + method: GET + uri: https://robot.your-server.de/login/check?code=4c08a68f9df22a1813e3110118057220fe03e03d&state=ff538b9a10da53c8a75d046650196899 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:05:36 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Date: ['Mon, 10 Dec 2018 17:19:14 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] Server: [Apache] Transfer-Encoding: [chunked] - status: {code: 200, message: OK} + status: {code: 302, message: Found} - request: body: null headers: @@ -526,7 +1294,7 @@ interactions: 2\">\n\n\n\n\n* \n\n \n\n\n\n \n\n\n\ -
\n\n
\n \xA9 2018 Hetzner\ - \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ - \
\n \n\n\n\n \n\ + \n\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\n
Impressum\ \ |\n Datenschutz\ @@ -557,30 +1324,53 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:06:05 GMT'] - Keep-Alive: ['timeout=15, max=100'] + Date: ['Mon, 10 Dec 2018 17:19:15 GMT'] + Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121002+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + body: null headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] Connection: [keep-alive] - Content-Length: ['748'] - Content-Type: [application/x-www-form-urlencoded] User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update + method: GET + uri: https://robot.your-server.de/login/logout/r/true response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:06:05 GMT'] - Keep-Alive: ['timeout=15, max=99'] + Date: ['Mon, 10 Dec 2018 17:19:15 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:19:15 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_full_name_should_remove_record.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_full_name_should_remove_record.yaml index 5755d46f7..ffec06d64 100644 --- a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_full_name_should_remove_record.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_by_filter_with_full_name_should_remove_record.yaml @@ -52,8 +52,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:06:34 GMT'] + Date: ['Mon, 10 Dec 2018 17:19:16 GMT'] Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -77,9 +78,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:06:35 GMT'] + Date: ['Mon, 10 Dec 2018 17:19:16 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -101,9 +103,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:06:35 GMT'] + Date: ['Mon, 10 Dec 2018 17:19:17 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -125,8 +128,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:06:35 GMT'] + Date: ['Mon, 10 Dec 2018 17:19:17 GMT'] Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,9 +151,9 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:06:36 GMT'] + Date: ['Mon, 10 Dec 2018 17:19:18 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=7e99fa61f635ca0c6c045906a527f73e'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=79744542652723e83e9afd48aab67c55'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -161,16 +165,17 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=7e99fa61f635ca0c6c045906a527f73e + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=79744542652723e83e9afd48aab67c55 response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Sat, 08 Dec 2018 15:06:36 GMT'] + Date: ['Mon, 10 Dec 2018 17:19:18 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=39de1f7485c600c8a63ea01c58c83d506587a367&state=7e99fa61f635ca0c6c045906a527f73e'] + Location: ['https://robot.your-server.de/login/check?code=f9f47f1412a122d1825cf069c625926764f64d20&state=79744542652723e83e9afd48aab67c55'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -185,13 +190,13 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=39de1f7485c600c8a63ea01c58c83d506587a367&state=7e99fa61f635ca0c6c045906a527f73e + uri: https://robot.your-server.de/login/check?code=f9f47f1412a122d1825cf069c625926764f64d20&state=79744542652723e83e9afd48aab67c55 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:06:36 GMT'] + Date: ['Mon, 10 Dec 2018 17:19:18 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] @@ -376,11 +381,579 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:06:37 GMT'] + Date: ['Mon, 10 Dec 2018 17:19:19 GMT'] Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:19:19 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:19:19 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:19:19 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:19:20 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:19:20 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:19:20 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:19:21 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=846afdb57d704a0227fb3a4915b0e477'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=846afdb57d704a0227fb3a4915b0e477 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:19:21 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=aa646852325a4a3b81c52db3cc0a0ee36edf6f30&state=846afdb57d704a0227fb3a4915b0e477'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=aa646852325a4a3b81c52db3cc0a0ee36edf6f30&state=846afdb57d704a0227fb3a4915b0e477 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:19:21 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ + \n
\n
\n* \n
\n
\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:19:21 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121052+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Adelete.testfull+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['799'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:19:22 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:19:50 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:19:51 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:19:51 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:19:51 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:19:52 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:19:52 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:19:52 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=aa097cb5ae10f025a9b18a585f1184a8'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=aa097cb5ae10f025a9b18a585f1184a8 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:19:53 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=0af0d39952614d2aacd0efd4ec235213012bdb53&state=aa097cb5ae10f025a9b18a585f1184a8'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=0af0d39952614d2aacd0efd4ec235213012bdb53&state=aa097cb5ae10f025a9b18a585f1184a8 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:19:53 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} - request: body: null headers: @@ -391,48 +964,252 @@ interactions: method: GET uri: https://robot.your-server.de/dns/update/id/556218 response: - body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ - \n
\n
\n* \n
\n
\n
\n\n
\n\ - \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ - \ inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:19:53 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121053+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['748'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:19:54 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:20:22 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:20:22 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:20:23 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} headers: + Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:06:37 GMT'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:20:23 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:20:23 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:20:23 GMT'] Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} - request: body: null @@ -444,70 +1221,61 @@ interactions: method: GET uri: https://robot.your-server.de/dns/update/id/556218 response: - body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ - \n
\n
\n* \n
\n
\n
\n\n
\n\ - \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ - \ inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} + body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:06:38 GMT'] + Date: ['Mon, 10 Dec 2018 17:20:24 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=2d2f98df03b6ed697f533a803702efc6'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=2d2f98df03b6ed697f533a803702efc6 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:20:24 GMT'] Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=741776311834bb7e1359d5e49555c3ece7c94efe&state=2d2f98df03b6ed697f533a803702efc6'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] - status: {code: 200, message: OK} + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121004+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Adelete.testfull+3600+IN+TXT+%22challengetoken%22%0A + body: null headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] Connection: [keep-alive] - Content-Length: ['799'] - Content-Type: [application/x-www-form-urlencoded] User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update + method: GET + uri: https://robot.your-server.de/login/check?code=741776311834bb7e1359d5e49555c3ece7c94efe&state=2d2f98df03b6ed697f533a803702efc6 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:06:38 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Date: ['Mon, 10 Dec 2018 17:20:24 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] Server: [Apache] Transfer-Encoding: [chunked] - status: {code: 200, message: OK} + status: {code: 302, message: Found} - request: body: null headers: @@ -526,7 +1294,7 @@ interactions: 2\">\n\n\n\n\n* \n\n \n\n\n\n \n\n\n\ -
\n\n
\n \xA9 2018 Hetzner\ - \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ - \
\n \n\n\n\n \n\ + \n\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\n
Impressum\ \ |\n Datenschutz\ @@ -557,30 +1324,53 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:07:07 GMT'] - Keep-Alive: ['timeout=15, max=100'] + Date: ['Mon, 10 Dec 2018 17:20:25 GMT'] + Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121004+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + body: null headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] Connection: [keep-alive] - Content-Length: ['748'] - Content-Type: [application/x-www-form-urlencoded] User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update + method: GET + uri: https://robot.your-server.de/login/logout/r/true response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:07:08 GMT'] - Keep-Alive: ['timeout=15, max=99'] + Date: ['Mon, 10 Dec 2018 17:20:25 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:20:25 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_by_identifier_should_remove_record.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_by_identifier_should_remove_record.yaml index c56d30161..fb8270ee6 100644 --- a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_by_identifier_should_remove_record.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_by_identifier_should_remove_record.yaml @@ -52,8 +52,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:07:37 GMT'] + Date: ['Mon, 10 Dec 2018 17:20:26 GMT'] Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -77,9 +78,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:07:37 GMT'] + Date: ['Mon, 10 Dec 2018 17:20:27 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -101,9 +103,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:07:37 GMT'] + Date: ['Mon, 10 Dec 2018 17:20:27 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -125,8 +128,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:07:37 GMT'] + Date: ['Mon, 10 Dec 2018 17:20:27 GMT'] Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,9 +151,9 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:07:38 GMT'] + Date: ['Mon, 10 Dec 2018 17:20:28 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=05242ca275af1c94893daf6499306dcb'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=b38de98afa2f0b55e067a18770da4973'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -161,16 +165,17 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=05242ca275af1c94893daf6499306dcb + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=b38de98afa2f0b55e067a18770da4973 response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Sat, 08 Dec 2018 15:07:38 GMT'] + Date: ['Mon, 10 Dec 2018 17:20:28 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=167dd449e1441cdfccbe3d5c42675daf6dad693f&state=05242ca275af1c94893daf6499306dcb'] + Location: ['https://robot.your-server.de/login/check?code=7d62d1f2ccef20e64f5b707e872a40dd0ad8e268&state=b38de98afa2f0b55e067a18770da4973'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -185,13 +190,13 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=167dd449e1441cdfccbe3d5c42675daf6dad693f&state=05242ca275af1c94893daf6499306dcb + uri: https://robot.your-server.de/login/check?code=7d62d1f2ccef20e64f5b707e872a40dd0ad8e268&state=b38de98afa2f0b55e067a18770da4973 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:07:38 GMT'] + Date: ['Mon, 10 Dec 2018 17:20:28 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] @@ -376,11 +381,880 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:07:39 GMT'] + Date: ['Mon, 10 Dec 2018 17:20:28 GMT'] Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:20:29 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:20:29 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:20:29 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:20:29 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:20:30 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:20:30 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:20:32 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=9a3b326078efda156a5183b34f4884b5'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=9a3b326078efda156a5183b34f4884b5 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:20:32 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=7bb62a5392e6d669efc1467803c79dae9c60a831&state=9a3b326078efda156a5183b34f4884b5'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=7bb62a5392e6d669efc1467803c79dae9c60a831&state=9a3b326078efda156a5183b34f4884b5 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:20:32 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ + \n
\n
\n* \n
\n
\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:20:32 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121054+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Adelete.testid+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['797'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:20:33 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:21:01 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:21:02 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:21:03 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:21:03 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:21:03 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:21:03 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:21:04 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=8dc28f19763c700b071867bb0eb0604e'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=8dc28f19763c700b071867bb0eb0604e + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:21:04 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=d4167963e80cd339fc554b4291c4dbd01c0890f7&state=8dc28f19763c700b071867bb0eb0604e'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=d4167963e80cd339fc554b4291c4dbd01c0890f7&state=8dc28f19763c700b071867bb0eb0604e + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:21:04 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:21:05 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:21:05 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:21:05 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:21:05 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:21:06 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:21:06 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:21:06 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:21:07 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=674284a74e9eeab2eaf4b611c6c97f4f'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=674284a74e9eeab2eaf4b611c6c97f4f + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:21:07 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=3b2e490c2bd659d4f9725ae86a04652e3f0066b7&state=674284a74e9eeab2eaf4b611c6c97f4f'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=3b2e490c2bd659d4f9725ae86a04652e3f0066b7&state=674284a74e9eeab2eaf4b611c6c97f4f + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:21:07 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} - request: body: null headers: @@ -391,48 +1265,252 @@ interactions: method: GET uri: https://robot.your-server.de/dns/update/id/556218 response: - body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ - \n
\n
\n* \n
\n
\n
\n\n
\n\ - \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ - \ inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:21:08 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121055+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['748'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:21:08 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:21:36 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:21:37 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:21:37 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} headers: + Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:07:39 GMT'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:21:38 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:21:38 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:21:38 GMT'] Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} - request: body: null @@ -444,70 +1522,61 @@ interactions: method: GET uri: https://robot.your-server.de/dns/update/id/556218 response: - body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ - \n
\n
\n* \n
\n
\n
\n\n
\n\ - \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ - \ inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} + body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:07:40 GMT'] + Date: ['Mon, 10 Dec 2018 17:21:39 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=143bc8ff94ddc12345c67ec10ca78ebc'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=143bc8ff94ddc12345c67ec10ca78ebc + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:21:39 GMT'] Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=7a0f7977b680c5367ddfc5fc3678f75ba30bd110&state=143bc8ff94ddc12345c67ec10ca78ebc'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] - status: {code: 200, message: OK} + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121006+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Adelete.testid+3600+IN+TXT+%22challengetoken%22%0A + body: null headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] Connection: [keep-alive] - Content-Length: ['797'] - Content-Type: [application/x-www-form-urlencoded] User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update + method: GET + uri: https://robot.your-server.de/login/check?code=7a0f7977b680c5367ddfc5fc3678f75ba30bd110&state=143bc8ff94ddc12345c67ec10ca78ebc response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:07:40 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Date: ['Mon, 10 Dec 2018 17:21:39 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] Server: [Apache] Transfer-Encoding: [chunked] - status: {code: 200, message: OK} + status: {code: 302, message: Found} - request: body: null headers: @@ -526,7 +1595,7 @@ interactions: 2\">\n\n\n\n\n* \n\n \n\n\n\n \n\n\n\ -
\n\n
\n \xA9 2018 Hetzner\ - \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ - \
\n \n\n\n\n \n\ + \n\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\n
Impressum\ \ |\n Datenschutz\ @@ -557,30 +1625,53 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:08:09 GMT'] - Keep-Alive: ['timeout=15, max=100'] + Date: ['Mon, 10 Dec 2018 17:21:40 GMT'] + Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121006+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + body: null headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] Connection: [keep-alive] - Content-Length: ['748'] - Content-Type: [application/x-www-form-urlencoded] User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update + method: GET + uri: https://robot.your-server.de/login/logout/r/true response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:08:10 GMT'] - Keep-Alive: ['timeout=15, max=99'] + Date: ['Mon, 10 Dec 2018 17:21:40 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:21:40 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_by_content_should_leave_others_untouched.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_by_content_should_leave_others_untouched.yaml index cde695dbe..33ef605cd 100644 --- a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_by_content_should_leave_others_untouched.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_by_content_should_leave_others_untouched.yaml @@ -52,8 +52,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:08:39 GMT'] + Date: ['Mon, 10 Dec 2018 17:21:42 GMT'] Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -77,9 +78,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:08:39 GMT'] + Date: ['Mon, 10 Dec 2018 17:21:42 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -101,9 +103,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:08:39 GMT'] + Date: ['Mon, 10 Dec 2018 17:21:43 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -125,8 +128,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:08:39 GMT'] + Date: ['Mon, 10 Dec 2018 17:21:43 GMT'] Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,9 +151,9 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:08:40 GMT'] + Date: ['Mon, 10 Dec 2018 17:21:43 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=ef4b94c86609b1d181cd2cc6012207ff'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=d3d91ae88f4203d4eb563475790926f9'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -161,16 +165,17 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=ef4b94c86609b1d181cd2cc6012207ff + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=d3d91ae88f4203d4eb563475790926f9 response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Sat, 08 Dec 2018 15:08:40 GMT'] + Date: ['Mon, 10 Dec 2018 17:21:44 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=4fe97cb8684bec6541bae7fd0b1464e113c066be&state=ef4b94c86609b1d181cd2cc6012207ff'] + Location: ['https://robot.your-server.de/login/check?code=a784aec2198d26f07e08a3eb8f3bb4763c671322&state=d3d91ae88f4203d4eb563475790926f9'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -185,13 +190,13 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=4fe97cb8684bec6541bae7fd0b1464e113c066be&state=ef4b94c86609b1d181cd2cc6012207ff + uri: https://robot.your-server.de/login/check?code=a784aec2198d26f07e08a3eb8f3bb4763c671322&state=d3d91ae88f4203d4eb563475790926f9 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:08:40 GMT'] + Date: ['Mon, 10 Dec 2018 17:21:44 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] @@ -376,11 +381,901 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:08:41 GMT'] + Date: ['Mon, 10 Dec 2018 17:21:44 GMT'] Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:21:45 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:21:45 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:21:45 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:21:46 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:21:46 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:21:46 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:21:47 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=d18db4955a7f616a93250c56987e61c8'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=d18db4955a7f616a93250c56987e61c8 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:21:47 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=64f388bf839c0e89796d6dc209cd5c298713ad54&state=d18db4955a7f616a93250c56987e61c8'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=64f388bf839c0e89796d6dc209cd5c298713ad54&state=d18db4955a7f616a93250c56987e61c8 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:21:47 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ + \n
\n
\n* \n
\n
\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:21:47 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121056+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['818'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:21:48 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:22:16 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:22:17 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:22:17 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:22:17 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:22:18 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:22:18 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:22:18 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=dc5082d9b4fedf58e34e7f4301d72336'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=dc5082d9b4fedf58e34e7f4301d72336 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:22:19 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=9172bdb89adcaf3b8429e3ef8901287d16adf13f&state=dc5082d9b4fedf58e34e7f4301d72336'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=9172bdb89adcaf3b8429e3ef8901287d16adf13f&state=dc5082d9b4fedf58e34e7f4301d72336 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:22:19 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ + \n
\n
\n* \n
\n
\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:22:19 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121057+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['888'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:22:20 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:22:48 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:22:48 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:22:49 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:22:49 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:22:50 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:22:50 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:22:50 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=ae00a0398d09b1d7c8ff5573024ac9e1'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=ae00a0398d09b1d7c8ff5573024ac9e1 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:22:51 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=4827619f69893225e6f54d63320b63d2010728c2&state=ae00a0398d09b1d7c8ff5573024ac9e1'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=4827619f69893225e6f54d63320b63d2010728c2&state=ae00a0398d09b1d7c8ff5573024ac9e1 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:22:51 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} - request: body: null headers: @@ -399,7 +1294,7 @@ interactions: 2\">\n\n\n\n\n* \n\n \n\n\n\n \n\ \n\n
\n\n
\n\ \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ @@ -428,11 +1325,76 @@ interactions:
"} headers: Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:08:41 GMT'] - Keep-Alive: ['timeout=15, max=97'] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:22:51 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121058+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['818'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:22:52 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:23:20 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:23:20 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} - request: body: null @@ -442,71 +1404,135 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/dns/update/id/556218 + uri: https://accounts.hetzner.com/login response: - body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ - \n
\n
\n* \n
\n
\n
\n\n
\n\ - \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ - \ inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} + body: {string: ''} headers: + Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:08:42 GMT'] - Keep-Alive: ['timeout=15, max=96'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:23:21 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121008+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + body: '' headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] Connection: [keep-alive] - Content-Length: ['818'] + Content-Length: ['51'] Content-Type: [application/x-www-form-urlencoded] User-Agent: [python-requests/2.20.1] method: POST - uri: https://robot.your-server.de/dns/update + uri: https://accounts.hetzner.com/login_check response: body: {string: None} headers: + Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:08:42 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:23:21 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:23:21 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:23:21 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} - request: body: null @@ -518,71 +1544,61 @@ interactions: method: GET uri: https://robot.your-server.de/dns/update/id/556218 response: - body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ - \n
\n
\n* \n
\n
\n
\n\n
\n\ - \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ - \ inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} + body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:09:11 GMT'] + Date: ['Mon, 10 Dec 2018 17:23:22 GMT'] Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=b1ee782ca397d05ad369e039263e6b7b'] Server: [Apache] Transfer-Encoding: [chunked] - status: {code: 200, message: OK} + status: {code: 302, message: Found} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121008+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + body: null headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] Connection: [keep-alive] - Content-Length: ['888'] - Content-Type: [application/x-www-form-urlencoded] User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=b1ee782ca397d05ad369e039263e6b7b + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:23:22 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=59c9310f48089bf10270cd693b9d38571c6ac206&state=b1ee782ca397d05ad369e039263e6b7b'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=59c9310f48089bf10270cd693b9d38571c6ac206&state=b1ee782ca397d05ad369e039263e6b7b response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:09:12 GMT'] + Date: ['Mon, 10 Dec 2018 17:23:22 GMT'] Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] Server: [Apache] Transfer-Encoding: [chunked] - status: {code: 200, message: OK} + status: {code: 302, message: Found} - request: body: null headers: @@ -601,7 +1617,7 @@ interactions: 2\">\n\n\n\n\n* \n\n \n\n\n\n \n\ \n\n
\n\n
\n\ \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ @@ -633,30 +1648,53 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:09:41 GMT'] - Keep-Alive: ['timeout=15, max=100'] + Date: ['Mon, 10 Dec 2018 17:23:23 GMT'] + Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121008+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + body: null headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] Connection: [keep-alive] - Content-Length: ['818'] - Content-Type: [application/x-www-form-urlencoded] User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update + method: GET + uri: https://robot.your-server.de/login/logout/r/true response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:09:41 GMT'] - Keep-Alive: ['timeout=15, max=99'] + Date: ['Mon, 10 Dec 2018 17:23:23 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:23:24 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_name_remove_all.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_name_remove_all.yaml index c51fc479f..206dc7811 100644 --- a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_name_remove_all.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_delete_record_with_record_set_name_remove_all.yaml @@ -52,8 +52,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:10:10 GMT'] + Date: ['Mon, 10 Dec 2018 17:23:25 GMT'] Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -77,9 +78,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:10:11 GMT'] + Date: ['Mon, 10 Dec 2018 17:23:25 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -101,9 +103,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:10:11 GMT'] + Date: ['Mon, 10 Dec 2018 17:23:25 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -125,8 +128,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:10:11 GMT'] + Date: ['Mon, 10 Dec 2018 17:23:25 GMT'] Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,9 +151,9 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:10:12 GMT'] + Date: ['Mon, 10 Dec 2018 17:23:26 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=2bc88ba50abfa85feab285f771e25d85'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=3e8b76bef8fbeb2e79a91d2bc2e57dda'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -161,16 +165,17 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=2bc88ba50abfa85feab285f771e25d85 + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=3e8b76bef8fbeb2e79a91d2bc2e57dda response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Sat, 08 Dec 2018 15:10:12 GMT'] + Date: ['Mon, 10 Dec 2018 17:23:26 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=81329906735cba4868846a46d14411fb155f1305&state=2bc88ba50abfa85feab285f771e25d85'] + Location: ['https://robot.your-server.de/login/check?code=0993cea3fa4270351c58e69660e125e2da9504ab&state=3e8b76bef8fbeb2e79a91d2bc2e57dda'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -185,13 +190,13 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=81329906735cba4868846a46d14411fb155f1305&state=2bc88ba50abfa85feab285f771e25d85 + uri: https://robot.your-server.de/login/check?code=0993cea3fa4270351c58e69660e125e2da9504ab&state=3e8b76bef8fbeb2e79a91d2bc2e57dda response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:10:12 GMT'] + Date: ['Mon, 10 Dec 2018 17:23:26 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] @@ -376,11 +381,258 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:10:13 GMT'] + Date: ['Mon, 10 Dec 2018 17:23:27 GMT'] Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:23:27 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:23:27 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:23:28 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:23:28 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:23:28 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:23:29 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:23:29 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=604d6fe90d30c370b0182ca7ecdf6847'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=604d6fe90d30c370b0182ca7ecdf6847 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:23:29 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=b473b587d81d563879f2a155b666f667a03025b2&state=604d6fe90d30c370b0182ca7ecdf6847'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=b473b587d81d563879f2a155b666f667a03025b2&state=604d6fe90d30c370b0182ca7ecdf6847 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:23:29 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} - request: body: null headers: @@ -399,7 +651,7 @@ interactions: 2\">\n\n\n\n\n* \n\n \n\n\n\n \n\ \n\n
\n\n
\n\ \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ @@ -429,11 +681,723 @@ interactions:
"} headers: Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:10:13 GMT'] - Keep-Alive: ['timeout=15, max=97'] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:23:30 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121059+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.deleterecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['886'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:23:30 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:23:59 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:23:59 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:23:59 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:24:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:24:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:24:00 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:24:01 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=a725cfa4abdee84914aafd176ecd9566'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=a725cfa4abdee84914aafd176ecd9566 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:24:01 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=b780983006423377535c41dd0cb26a3ac9bb5639&state=a725cfa4abdee84914aafd176ecd9566'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=b780983006423377535c41dd0cb26a3ac9bb5639&state=a725cfa4abdee84914aafd176ecd9566 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:24:01 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ + \n
\n
\n* \n
\n
\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:24:01 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121060+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.deleterecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['954'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:24:02 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:24:30 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:24:30 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:24:31 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:24:31 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:24:31 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:24:31 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:24:32 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=c04a8b94b1f53c3f193b2b9f9cffd748'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=c04a8b94b1f53c3f193b2b9f9cffd748 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:24:32 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=f89a6782f462095c5d0ed2f03aba91bbc2b70ac4&state=c04a8b94b1f53c3f193b2b9f9cffd748'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=f89a6782f462095c5d0ed2f03aba91bbc2b70ac4&state=c04a8b94b1f53c3f193b2b9f9cffd748 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:24:32 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ + \n
\n
\n* \n
\n
\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:24:33 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121061+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['818'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:24:33 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:25:02 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:25:02 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} - request: body: null @@ -443,72 +1407,135 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/dns/update/id/556218 + uri: https://accounts.hetzner.com/login response: - body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ - \n
\n
\n* \n
\n
\n
\n\n
\n\ - \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ - \ inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} + body: {string: ''} headers: + Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:10:13 GMT'] - Keep-Alive: ['timeout=15, max=96'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:25:02 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121011+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.deleterecordset+3600+IN+TXT+%22challengetoken1%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + body: '' headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] Connection: [keep-alive] - Content-Length: ['886'] + Content-Length: ['51'] Content-Type: [application/x-www-form-urlencoded] User-Agent: [python-requests/2.20.1] method: POST - uri: https://robot.your-server.de/dns/update + uri: https://accounts.hetzner.com/login_check response: body: {string: None} headers: + Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:10:14 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:25:02 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:25:03 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:25:03 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} - request: body: null @@ -520,72 +1547,61 @@ interactions: method: GET uri: https://robot.your-server.de/dns/update/id/556218 response: - body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ - \n
\n
\n* \n
\n
\n
\n\n
\n\ - \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ - \ inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} + body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:10:43 GMT'] + Date: ['Mon, 10 Dec 2018 17:25:03 GMT'] Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=1c5a0cba6d6328564d7e7322771f321c'] Server: [Apache] Transfer-Encoding: [chunked] - status: {code: 200, message: OK} + status: {code: 302, message: Found} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121011+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.deleterecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + body: null headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] Connection: [keep-alive] - Content-Length: ['954'] - Content-Type: [application/x-www-form-urlencoded] User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=1c5a0cba6d6328564d7e7322771f321c + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:25:03 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=6ca6361cf470c3a4b8237ee657c8e064fcafda95&state=1c5a0cba6d6328564d7e7322771f321c'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=6ca6361cf470c3a4b8237ee657c8e064fcafda95&state=1c5a0cba6d6328564d7e7322771f321c response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:10:43 GMT'] + Date: ['Mon, 10 Dec 2018 17:25:04 GMT'] Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] Server: [Apache] Transfer-Encoding: [chunked] - status: {code: 200, message: OK} + status: {code: 302, message: Found} - request: body: null headers: @@ -604,7 +1620,7 @@ interactions: 2\">\n\n\n\n\n* \n\n \n\n\n\n \n\ \n\n \n\n
\n\ \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ @@ -637,30 +1651,53 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:11:13 GMT'] - Keep-Alive: ['timeout=15, max=100'] + Date: ['Mon, 10 Dec 2018 17:25:04 GMT'] + Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121011+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + body: null headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] Connection: [keep-alive] - Content-Length: ['818'] - Content-Type: [application/x-www-form-urlencoded] User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update + method: GET + uri: https://robot.your-server.de/login/logout/r/true response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:11:13 GMT'] - Keep-Alive: ['timeout=15, max=99'] + Date: ['Mon, 10 Dec 2018 17:25:04 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:25:04 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_after_setting_ttl.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_after_setting_ttl.yaml index 835a957f1..499b801fb 100644 --- a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_after_setting_ttl.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_after_setting_ttl.yaml @@ -52,8 +52,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:11:42 GMT'] + Date: ['Mon, 10 Dec 2018 17:25:06 GMT'] Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -77,9 +78,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:11:42 GMT'] + Date: ['Mon, 10 Dec 2018 17:25:06 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -101,9 +103,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:11:43 GMT'] + Date: ['Mon, 10 Dec 2018 17:25:06 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -125,8 +128,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:11:43 GMT'] + Date: ['Mon, 10 Dec 2018 17:25:06 GMT'] Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,9 +151,9 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:11:43 GMT'] + Date: ['Mon, 10 Dec 2018 17:25:07 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=75f2fefad5fafd05d73ef2a3a5763653'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=a329473bc2c9c9472c170ab489a634f4'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -161,16 +165,17 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=75f2fefad5fafd05d73ef2a3a5763653 + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=a329473bc2c9c9472c170ab489a634f4 response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Sat, 08 Dec 2018 15:11:44 GMT'] + Date: ['Mon, 10 Dec 2018 17:25:07 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=6daebc83d6c5bf30789cef18b6f2e6eae3ad25b7&state=75f2fefad5fafd05d73ef2a3a5763653'] + Location: ['https://robot.your-server.de/login/check?code=7ac4a5f6575d936bdbf53939c21d5067108c3810&state=a329473bc2c9c9472c170ab489a634f4'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -185,13 +190,13 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=6daebc83d6c5bf30789cef18b6f2e6eae3ad25b7&state=75f2fefad5fafd05d73ef2a3a5763653 + uri: https://robot.your-server.de/login/check?code=7ac4a5f6575d936bdbf53939c21d5067108c3810&state=a329473bc2c9c9472c170ab489a634f4 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:11:44 GMT'] + Date: ['Mon, 10 Dec 2018 17:25:07 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] @@ -376,11 +381,258 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:11:44 GMT'] + Date: ['Mon, 10 Dec 2018 17:25:08 GMT'] Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:25:08 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:25:08 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:25:09 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:25:09 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:25:09 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:25:09 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:25:10 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=9a363e4f09c882a7f141b312f214fe7c'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=9a363e4f09c882a7f141b312f214fe7c + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:25:10 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=94a0681fac47127b93b8d01a79ee113e840554b5&state=9a363e4f09c882a7f141b312f214fe7c'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=94a0681fac47127b93b8d01a79ee113e840554b5&state=9a363e4f09c882a7f141b312f214fe7c + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:25:11 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} - request: body: null headers: @@ -399,7 +651,7 @@ interactions: 2\">\n\n\n\n\n* \n\n \n\n\n\n \n\ \n\n
\n\n
\n\ \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ @@ -430,11 +682,279 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:11:45 GMT'] + Date: ['Mon, 10 Dec 2018 17:25:11 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121062+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['863'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:25:11 GMT'] Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:25:40 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:25:40 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:25:41 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:25:41 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:25:41 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:25:42 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:25:42 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=1b22fe36a11a2a0f282260ea10dc4814'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=1b22fe36a11a2a0f282260ea10dc4814 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:25:43 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=62fd6f2ca887e10b1300762995b74e36b01ea2f0&state=1b22fe36a11a2a0f282260ea10dc4814'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=62fd6f2ca887e10b1300762995b74e36b01ea2f0&state=1b22fe36a11a2a0f282260ea10dc4814 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:25:43 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} - request: body: null headers: @@ -453,7 +973,7 @@ interactions: 2\">\n\n\n\n\n* \n\n \n\n\n\n \n\ - \n\n
\n\n
\n\ - \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ - \ inkl. 19 % USt
\n \n\n\n\n \n\n\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\n
Impressum\ \ |\n Datenschutz\ @@ -484,30 +1005,53 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:11:45 GMT'] - Keep-Alive: ['timeout=15, max=96'] + Date: ['Mon, 10 Dec 2018 17:25:43 GMT'] + Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121014+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + body: null headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] Connection: [keep-alive] - Content-Length: ['863'] - Content-Type: [application/x-www-form-urlencoded] User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update + method: GET + uri: https://robot.your-server.de/login/logout/r/true response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:11:45 GMT'] + Date: ['Mon, 10 Dec 2018 17:25:43 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:25:44 GMT'] Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_should_handle_record_sets.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_should_handle_record_sets.yaml index 40c66dbf6..84c4bb554 100644 --- a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_should_handle_record_sets.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_should_handle_record_sets.yaml @@ -52,8 +52,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:12:14 GMT'] + Date: ['Mon, 10 Dec 2018 17:25:45 GMT'] Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -77,9 +78,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:12:15 GMT'] + Date: ['Mon, 10 Dec 2018 17:25:45 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -101,9 +103,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:12:15 GMT'] + Date: ['Mon, 10 Dec 2018 17:25:45 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -125,8 +128,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:12:15 GMT'] + Date: ['Mon, 10 Dec 2018 17:25:45 GMT'] Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,9 +151,9 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:12:16 GMT'] + Date: ['Mon, 10 Dec 2018 17:25:46 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=b0161b509f6980fcd359941975b787be'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=2f5ce90516368173eec424dbcb376018'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -161,16 +165,17 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=b0161b509f6980fcd359941975b787be + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=2f5ce90516368173eec424dbcb376018 response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Sat, 08 Dec 2018 15:12:16 GMT'] + Date: ['Mon, 10 Dec 2018 17:25:46 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=224d1b92b579b26a3e86520099effe2ac1d647bf&state=b0161b509f6980fcd359941975b787be'] + Location: ['https://robot.your-server.de/login/check?code=4db4d5f0f4bb1a1534a126d36e0ce7b888180773&state=2f5ce90516368173eec424dbcb376018'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -185,13 +190,13 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=224d1b92b579b26a3e86520099effe2ac1d647bf&state=b0161b509f6980fcd359941975b787be + uri: https://robot.your-server.de/login/check?code=4db4d5f0f4bb1a1534a126d36e0ce7b888180773&state=2f5ce90516368173eec424dbcb376018 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:12:16 GMT'] + Date: ['Mon, 10 Dec 2018 17:25:46 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] @@ -376,11 +381,581 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:12:17 GMT'] + Date: ['Mon, 10 Dec 2018 17:25:47 GMT'] Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:25:47 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:25:47 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:25:48 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:25:48 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:25:48 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:25:48 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:25:49 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=6d5014dc3a14abcfd4d6e8e29c5ab8ec'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=6d5014dc3a14abcfd4d6e8e29c5ab8ec + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:25:49 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=a9b2a8713b1fb3f5734a22f09adc1a78bb4a02d7&state=6d5014dc3a14abcfd4d6e8e29c5ab8ec'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=a9b2a8713b1fb3f5734a22f09adc1a78bb4a02d7&state=6d5014dc3a14abcfd4d6e8e29c5ab8ec + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:25:49 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:25:50 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121063+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['929'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:25:50 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:26:19 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:26:19 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:26:19 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:26:20 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:26:20 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:26:20 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:26:21 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=e996c95390c517da38f1bde115e4e2ee'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=e996c95390c517da38f1bde115e4e2ee + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:26:21 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=e1b91367f7e222f4e0041d30d50944f7f6822f70&state=e996c95390c517da38f1bde115e4e2ee'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=e1b91367f7e222f4e0041d30d50944f7f6822f70&state=e996c95390c517da38f1bde115e4e2ee + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:26:21 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} - request: body: null headers: @@ -391,50 +966,253 @@ interactions: method: GET uri: https://robot.your-server.de/dns/update/id/556218 response: - body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n\ -
\n\n
\n \xA9 2018 Hetzner\ - \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ - \
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n
\n\n\ +
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:26:22 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121064+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['995'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:26:22 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:26:51 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:26:51 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:26:51 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} headers: + Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:12:17 GMT'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:26:52 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:26:52 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:26:52 GMT'] Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} - request: body: null @@ -446,72 +1224,61 @@ interactions: method: GET uri: https://robot.your-server.de/dns/update/id/556218 response: - body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n\ -
\n\n
\n \xA9 2018 Hetzner\ - \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ - \
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} + body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:12:17 GMT'] + Date: ['Mon, 10 Dec 2018 17:26:53 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=d37b5f010e10f3074fbe050a13d4bead'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=d37b5f010e10f3074fbe050a13d4bead + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:26:53 GMT'] Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=dd47df0a80281c9bf535b5537b7bb9b062f0ead0&state=d37b5f010e10f3074fbe050a13d4bead'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] - status: {code: 200, message: OK} + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121015+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + body: null headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] Connection: [keep-alive] - Content-Length: ['929'] - Content-Type: [application/x-www-form-urlencoded] User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update + method: GET + uri: https://robot.your-server.de/login/check?code=dd47df0a80281c9bf535b5537b7bb9b062f0ead0&state=d37b5f010e10f3074fbe050a13d4bead response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:12:18 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Date: ['Mon, 10 Dec 2018 17:26:53 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] Server: [Apache] Transfer-Encoding: [chunked] - status: {code: 200, message: OK} + status: {code: 302, message: Found} - request: body: null headers: @@ -530,27 +1297,28 @@ interactions: 2\">\n\n\n\n\n* \n\n \n\n\n\n \n\n\n
\n\n\ -
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ - \ Preise inkl. 19 % USt
\n \n\ + \n\n\n \n\ + \n\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\n
Impressum\ \ |\n Datenschutz\ @@ -562,30 +1330,53 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:12:47 GMT'] - Keep-Alive: ['timeout=15, max=100'] + Date: ['Mon, 10 Dec 2018 17:26:53 GMT'] + Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121015+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + body: null headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] Connection: [keep-alive] - Content-Length: ['995'] - Content-Type: [application/x-www-form-urlencoded] User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update + method: GET + uri: https://robot.your-server.de/login/logout/r/true response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:12:47 GMT'] - Keep-Alive: ['timeout=15, max=99'] + Date: ['Mon, 10 Dec 2018 17:26:54 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:26:54 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_with_fqdn_name_filter_should_return_record.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_with_fqdn_name_filter_should_return_record.yaml index 333e9b5c2..6cb70cdea 100644 --- a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_with_fqdn_name_filter_should_return_record.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_with_fqdn_name_filter_should_return_record.yaml @@ -52,8 +52,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:13:16 GMT'] + Date: ['Mon, 10 Dec 2018 17:26:55 GMT'] Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -77,9 +78,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:13:17 GMT'] + Date: ['Mon, 10 Dec 2018 17:26:55 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -101,9 +103,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:13:17 GMT'] + Date: ['Mon, 10 Dec 2018 17:26:55 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -125,8 +128,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:13:17 GMT'] + Date: ['Mon, 10 Dec 2018 17:26:56 GMT'] Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,9 +151,9 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:13:18 GMT'] + Date: ['Mon, 10 Dec 2018 17:26:56 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=3f5d1cd877471716b959f9f5d48ccd58'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=b405a7b2c4228990bf1bcc52c94eed51'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -161,16 +165,17 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=3f5d1cd877471716b959f9f5d48ccd58 + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=b405a7b2c4228990bf1bcc52c94eed51 response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Sat, 08 Dec 2018 15:13:18 GMT'] + Date: ['Mon, 10 Dec 2018 17:26:56 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=9aa62573b7a2ca499c92c90ceb5fd74dd5f1461c&state=3f5d1cd877471716b959f9f5d48ccd58'] + Location: ['https://robot.your-server.de/login/check?code=cfa7a2fbc0b1d8912a215062b22eb925cfa9fcee&state=b405a7b2c4228990bf1bcc52c94eed51'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -185,13 +190,13 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=9aa62573b7a2ca499c92c90ceb5fd74dd5f1461c&state=3f5d1cd877471716b959f9f5d48ccd58 + uri: https://robot.your-server.de/login/check?code=cfa7a2fbc0b1d8912a215062b22eb925cfa9fcee&state=b405a7b2c4228990bf1bcc52c94eed51 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:13:18 GMT'] + Date: ['Mon, 10 Dec 2018 17:26:57 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] @@ -376,11 +381,258 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:13:19 GMT'] + Date: ['Mon, 10 Dec 2018 17:26:57 GMT'] Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:26:58 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:26:58 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:26:58 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:26:58 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:26:59 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:26:59 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:27:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=ae2794b5511d4d20ee77e952b05d088a'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=ae2794b5511d4d20ee77e952b05d088a + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:27:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=9fe9f9d889755d021c2a494a62b71551240e0ae8&state=ae2794b5511d4d20ee77e952b05d088a'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=9fe9f9d889755d021c2a494a62b71551240e0ae8&state=ae2794b5511d4d20ee77e952b05d088a + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:27:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} - request: body: null headers: @@ -399,7 +651,7 @@ interactions: 2\">\n\n\n\n\n* \n\n \n\ \n\n\n \n\ \n\n
\n\n
\n\ \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ @@ -432,11 +684,279 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:13:19 GMT'] + Date: ['Mon, 10 Dec 2018 17:27:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121065+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1046'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:27:01 GMT'] Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:27:29 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:27:29 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:27:30 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:27:30 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:27:30 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:27:30 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:27:31 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=941ee3622a4416067c0d1c3acc5c07f9'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=941ee3622a4416067c0d1c3acc5c07f9 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:27:31 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=b67ee795619acbaf23084ebe143907c4fcb548e9&state=941ee3622a4416067c0d1c3acc5c07f9'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=b67ee795619acbaf23084ebe143907c4fcb548e9&state=941ee3622a4416067c0d1c3acc5c07f9 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:27:31 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} - request: body: null headers: @@ -455,7 +975,7 @@ interactions: 2\">\n\n\n\n\n* \n\n \n\ - \n\n\n \n\n\n\n \n\ \n\n
\n\n
\n\ \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ @@ -488,30 +1009,53 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:13:19 GMT'] - Keep-Alive: ['timeout=15, max=96'] + Date: ['Mon, 10 Dec 2018 17:27:32 GMT'] + Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121017+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + body: null headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] Connection: [keep-alive] - Content-Length: ['1046'] - Content-Type: [application/x-www-form-urlencoded] User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update + method: GET + uri: https://robot.your-server.de/login/logout/r/true response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:13:20 GMT'] + Date: ['Mon, 10 Dec 2018 17:27:32 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:27:32 GMT'] Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_with_full_name_filter_should_return_record.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_with_full_name_filter_should_return_record.yaml index e2fde7ae3..bc40f0a86 100644 --- a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_with_full_name_filter_should_return_record.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_with_full_name_filter_should_return_record.yaml @@ -52,8 +52,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:13:49 GMT'] + Date: ['Mon, 10 Dec 2018 17:27:33 GMT'] Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -77,9 +78,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:13:49 GMT'] + Date: ['Mon, 10 Dec 2018 17:27:33 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -101,9 +103,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:13:49 GMT'] + Date: ['Mon, 10 Dec 2018 17:27:34 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -125,8 +128,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:13:49 GMT'] + Date: ['Mon, 10 Dec 2018 17:27:34 GMT'] Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,9 +151,9 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:13:50 GMT'] + Date: ['Mon, 10 Dec 2018 17:27:34 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=9009c1c585cf71e798448d7bf6b8ff82'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=ba5852180b4142994d46fbc74b38ebbf'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -161,16 +165,17 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=9009c1c585cf71e798448d7bf6b8ff82 + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=ba5852180b4142994d46fbc74b38ebbf response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Sat, 08 Dec 2018 15:13:50 GMT'] + Date: ['Mon, 10 Dec 2018 17:27:34 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=8afe8d0652db9192cc2696792f8fc9f96e1cb795&state=9009c1c585cf71e798448d7bf6b8ff82'] + Location: ['https://robot.your-server.de/login/check?code=13362cdabdf9bbeef15f4fa0e51448ff8a0638e7&state=ba5852180b4142994d46fbc74b38ebbf'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -185,13 +190,13 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=8afe8d0652db9192cc2696792f8fc9f96e1cb795&state=9009c1c585cf71e798448d7bf6b8ff82 + uri: https://robot.your-server.de/login/check?code=13362cdabdf9bbeef15f4fa0e51448ff8a0638e7&state=ba5852180b4142994d46fbc74b38ebbf response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:13:50 GMT'] + Date: ['Mon, 10 Dec 2018 17:27:35 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] @@ -376,11 +381,258 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:13:51 GMT'] + Date: ['Mon, 10 Dec 2018 17:27:35 GMT'] Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:27:36 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:27:36 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:27:36 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:27:36 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:27:37 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:27:37 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:27:38 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=c5ab47d3aa8729c46af4c9b8c683bd80'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=c5ab47d3aa8729c46af4c9b8c683bd80 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:27:38 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=09f82d5c70eff89d33cbaf6a59f08ee009bb6e43&state=c5ab47d3aa8729c46af4c9b8c683bd80'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=09f82d5c70eff89d33cbaf6a59f08ee009bb6e43&state=c5ab47d3aa8729c46af4c9b8c683bd80 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:27:38 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} - request: body: null headers: @@ -399,7 +651,7 @@ interactions: 2\">\n\n\n\n\n* \n\n \n\n\n\n \n\ \n\n
\n\n
\n\ \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ @@ -433,11 +685,279 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:13:51 GMT'] + Date: ['Mon, 10 Dec 2018 17:27:38 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121066+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1097'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:27:39 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:28:07 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:28:07 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:28:08 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:28:08 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:28:08 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:28:09 GMT'] Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:28:09 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=96061e63e0a21dc7864694bbb6273cd7'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=96061e63e0a21dc7864694bbb6273cd7 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:28:09 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=14b474689efb3cf692e557e815c184a3a1f0d2f9&state=96061e63e0a21dc7864694bbb6273cd7'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=14b474689efb3cf692e557e815c184a3a1f0d2f9&state=96061e63e0a21dc7864694bbb6273cd7 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:28:09 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} - request: body: null headers: @@ -456,29 +976,30 @@ interactions: 2\">\n\n\n\n\n* \n\n \n\n\n\n \n\ - \n\n
\n\n
\n\ - \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ - \ inkl. 19 % USt
\n \n\n\n\n \n\n\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\n
Impressum\ \ |\n Datenschutz\ @@ -490,30 +1011,53 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:13:52 GMT'] - Keep-Alive: ['timeout=15, max=96'] + Date: ['Mon, 10 Dec 2018 17:28:10 GMT'] + Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121018+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0A + body: null headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] Connection: [keep-alive] - Content-Length: ['1097'] - Content-Type: [application/x-www-form-urlencoded] User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update + method: GET + uri: https://robot.your-server.de/login/logout/r/true response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:13:52 GMT'] + Date: ['Mon, 10 Dec 2018 17:28:10 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:28:10 GMT'] Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_with_invalid_filter_should_be_empty_list.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_with_invalid_filter_should_be_empty_list.yaml index 0656d2876..31e502335 100644 --- a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_with_invalid_filter_should_be_empty_list.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_with_invalid_filter_should_be_empty_list.yaml @@ -52,8 +52,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:14:21 GMT'] + Date: ['Mon, 10 Dec 2018 17:28:11 GMT'] Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -77,9 +78,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:14:21 GMT'] + Date: ['Mon, 10 Dec 2018 17:28:11 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -101,9 +103,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:14:22 GMT'] + Date: ['Mon, 10 Dec 2018 17:28:12 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -125,8 +128,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:14:22 GMT'] + Date: ['Mon, 10 Dec 2018 17:28:12 GMT'] Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,9 +151,9 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:14:23 GMT'] + Date: ['Mon, 10 Dec 2018 17:28:12 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=b1729772f9deb5ed6b2f8e71adc81435'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=7bd7cf4019e02844f65f226cdf34bd0e'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -161,16 +165,17 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=b1729772f9deb5ed6b2f8e71adc81435 + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=7bd7cf4019e02844f65f226cdf34bd0e response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Sat, 08 Dec 2018 15:14:23 GMT'] + Date: ['Mon, 10 Dec 2018 17:28:12 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=cda840bf3a6b72f0694dadbae54b0a54e50d2e34&state=b1729772f9deb5ed6b2f8e71adc81435'] + Location: ['https://robot.your-server.de/login/check?code=21fe886fe95d1feea26fe6cfddf65096dffce517&state=7bd7cf4019e02844f65f226cdf34bd0e'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -185,13 +190,13 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=cda840bf3a6b72f0694dadbae54b0a54e50d2e34&state=b1729772f9deb5ed6b2f8e71adc81435 + uri: https://robot.your-server.de/login/check?code=21fe886fe95d1feea26fe6cfddf65096dffce517&state=7bd7cf4019e02844f65f226cdf34bd0e response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:14:23 GMT'] + Date: ['Mon, 10 Dec 2018 17:28:13 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] @@ -376,11 +381,258 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:14:24 GMT'] + Date: ['Mon, 10 Dec 2018 17:28:13 GMT'] Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:28:14 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:28:14 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:28:14 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:28:15 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:28:15 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:28:15 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:28:16 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=00b34cc0727c851ae2997034737207ec'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=00b34cc0727c851ae2997034737207ec + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:28:16 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=df1d1452ff723f02f7677bc2f57f3dba196a7592&state=00b34cc0727c851ae2997034737207ec'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=df1d1452ff723f02f7677bc2f57f3dba196a7592&state=00b34cc0727c851ae2997034737207ec + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:28:16 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} - request: body: null headers: @@ -399,7 +651,7 @@ interactions: 2\">\n\n\n\n\n* \n\n \n\n\n\n \n\n\n\
\n\n
\n \xA9 2018 Hetzner\ \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ @@ -434,9 +686,53 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:14:24 GMT'] + Date: ['Mon, 10 Dec 2018 17:28:16 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:28:17 GMT'] Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:28:17 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_with_name_filter_should_return_record.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_with_name_filter_should_return_record.yaml index 219e4bae6..3a283bbcc 100644 --- a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_with_name_filter_should_return_record.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_with_name_filter_should_return_record.yaml @@ -52,8 +52,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:14:25 GMT'] + Date: ['Mon, 10 Dec 2018 17:28:18 GMT'] Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -77,9 +78,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:14:26 GMT'] + Date: ['Mon, 10 Dec 2018 17:28:18 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -101,9 +103,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:14:26 GMT'] + Date: ['Mon, 10 Dec 2018 17:28:18 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -125,8 +128,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:14:26 GMT'] + Date: ['Mon, 10 Dec 2018 17:28:18 GMT'] Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,9 +151,9 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:14:27 GMT'] + Date: ['Mon, 10 Dec 2018 17:28:19 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=11c0565470dbf36f726be511c8307f23'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=b30eea97ba4a2ba3ec6123e733be3a8c'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -161,16 +165,17 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=11c0565470dbf36f726be511c8307f23 + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=b30eea97ba4a2ba3ec6123e733be3a8c response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Sat, 08 Dec 2018 15:14:27 GMT'] + Date: ['Mon, 10 Dec 2018 17:28:19 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=cea0cfddbcc03e7035ae0b7be1161af8d48abb7f&state=11c0565470dbf36f726be511c8307f23'] + Location: ['https://robot.your-server.de/login/check?code=292ebdc67efcdc0b391ed897b977fc3102e5f9d0&state=b30eea97ba4a2ba3ec6123e733be3a8c'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -185,13 +190,13 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=cea0cfddbcc03e7035ae0b7be1161af8d48abb7f&state=11c0565470dbf36f726be511c8307f23 + uri: https://robot.your-server.de/login/check?code=292ebdc67efcdc0b391ed897b977fc3102e5f9d0&state=b30eea97ba4a2ba3ec6123e733be3a8c response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:14:27 GMT'] + Date: ['Mon, 10 Dec 2018 17:28:19 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] @@ -376,11 +381,258 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:14:28 GMT'] + Date: ['Mon, 10 Dec 2018 17:28:20 GMT'] Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:28:20 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:28:20 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:28:21 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:28:21 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:28:21 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:28:22 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:28:22 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=fb103b0792b61c62e881898fee484332'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=fb103b0792b61c62e881898fee484332 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:28:22 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=5bc39ceb45039c80191ccebf376beb05d22a2cba&state=fb103b0792b61c62e881898fee484332'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=5bc39ceb45039c80191ccebf376beb05d22a2cba&state=fb103b0792b61c62e881898fee484332 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:28:22 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} - request: body: null headers: @@ -399,7 +651,7 @@ interactions: 2\">\n\n\n\n\n* \n\n \n\n\n\n \n\n\n\
\n\n
\n \xA9 2018 Hetzner\ \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ @@ -434,11 +686,279 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:14:28 GMT'] + Date: ['Mon, 10 Dec 2018 17:28:23 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121067+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1144'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:28:23 GMT'] Keep-Alive: ['timeout=15, max=97'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:28:52 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:28:52 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:28:52 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:28:53 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:28:53 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:28:53 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:28:54 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=1f6b1d36b50c85c6eda0980599d0f05f'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=1f6b1d36b50c85c6eda0980599d0f05f + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:28:54 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=490045f99468b7466a11b4752d5336891c03d1d1&state=1f6b1d36b50c85c6eda0980599d0f05f'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=490045f99468b7466a11b4752d5336891c03d1d1&state=1f6b1d36b50c85c6eda0980599d0f05f + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:28:54 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} - request: body: null headers: @@ -457,7 +977,7 @@ interactions: 2\">\n\n\n\n\n* \n\n \n\n\n\n \n\n\n\ -
\n\n
\n \xA9 2018 Hetzner\ - \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ - \
\n \n\n\n\n \n\n\n
\n\n\ +
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\n
Impressum\ \ |\n Datenschutz\ @@ -492,30 +1012,53 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:14:28 GMT'] - Keep-Alive: ['timeout=15, max=96'] + Date: ['Mon, 10 Dec 2018 17:28:55 GMT'] + Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121019+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0A + body: null headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] Connection: [keep-alive] - Content-Length: ['1144'] - Content-Type: [application/x-www-form-urlencoded] User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update + method: GET + uri: https://robot.your-server.de/login/logout/r/true response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:14:29 GMT'] + Date: ['Mon, 10 Dec 2018 17:28:55 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:28:55 GMT'] Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_with_no_arguments_should_list_all.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_with_no_arguments_should_list_all.yaml index dff4fa674..5e2d73fb7 100644 --- a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_with_no_arguments_should_list_all.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_list_records_with_no_arguments_should_list_all.yaml @@ -52,8 +52,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:14:58 GMT'] + Date: ['Mon, 10 Dec 2018 17:28:56 GMT'] Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -77,9 +78,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:14:58 GMT'] + Date: ['Mon, 10 Dec 2018 17:28:56 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -101,9 +103,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:14:58 GMT'] + Date: ['Mon, 10 Dec 2018 17:28:56 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -125,8 +128,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:14:58 GMT'] + Date: ['Mon, 10 Dec 2018 17:28:57 GMT'] Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,9 +151,9 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:14:59 GMT'] + Date: ['Mon, 10 Dec 2018 17:28:57 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=b228e0beb7dd08c97d9ba2a72271f359'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=df50066cf635ce54cf8e2b3de7176543'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -161,16 +165,17 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=b228e0beb7dd08c97d9ba2a72271f359 + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=df50066cf635ce54cf8e2b3de7176543 response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Sat, 08 Dec 2018 15:14:59 GMT'] + Date: ['Mon, 10 Dec 2018 17:28:57 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=7022faf1106acb390b9f04262c69da634f6cd2f0&state=b228e0beb7dd08c97d9ba2a72271f359'] + Location: ['https://robot.your-server.de/login/check?code=f017b5068dc0e0241ed4d9a9e1b3aed73b8b41d0&state=df50066cf635ce54cf8e2b3de7176543'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -185,13 +190,13 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=7022faf1106acb390b9f04262c69da634f6cd2f0&state=b228e0beb7dd08c97d9ba2a72271f359 + uri: https://robot.your-server.de/login/check?code=f017b5068dc0e0241ed4d9a9e1b3aed73b8b41d0&state=df50066cf635ce54cf8e2b3de7176543 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:14:59 GMT'] + Date: ['Mon, 10 Dec 2018 17:28:58 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] @@ -376,11 +381,258 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:15:00 GMT'] + Date: ['Mon, 10 Dec 2018 17:28:58 GMT'] Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:28:59 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:28:59 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:28:59 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:28:59 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:29:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:29:00 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:29:00 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=5fbbb4856e5512e25d1d3cba492ce62d'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=5fbbb4856e5512e25d1d3cba492ce62d + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:29:00 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=5b3609d33e963ae42c2407bdcc59a260dcd53b50&state=5fbbb4856e5512e25d1d3cba492ce62d'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=5b3609d33e963ae42c2407bdcc59a260dcd53b50&state=5fbbb4856e5512e25d1d3cba492ce62d + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:29:01 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} - request: body: null headers: @@ -399,7 +651,7 @@ interactions: 2\">\n\n\n\n\n* \n\n \n\n\n\n \n\n\n
\n\n\
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ @@ -434,9 +686,53 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:15:00 GMT'] + Date: ['Mon, 10 Dec 2018 17:29:01 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:29:01 GMT'] Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:29:02 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_update_record_should_modify_record.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_update_record_should_modify_record.yaml index 60321de0d..b77f1be3b 100644 --- a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_update_record_should_modify_record.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_update_record_should_modify_record.yaml @@ -52,8 +52,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:15:01 GMT'] + Date: ['Mon, 10 Dec 2018 17:29:02 GMT'] Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -77,9 +78,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:15:02 GMT'] + Date: ['Mon, 10 Dec 2018 17:29:03 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -101,9 +103,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:15:02 GMT'] + Date: ['Mon, 10 Dec 2018 17:29:03 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -125,8 +128,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:15:02 GMT'] + Date: ['Mon, 10 Dec 2018 17:29:03 GMT'] Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,9 +151,9 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:15:03 GMT'] + Date: ['Mon, 10 Dec 2018 17:29:04 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=ccf82137742cb25807afb4051f80d827'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=fdb42e8364a58b4a624c513c8f61a58c'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -161,16 +165,17 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=ccf82137742cb25807afb4051f80d827 + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=fdb42e8364a58b4a624c513c8f61a58c response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Sat, 08 Dec 2018 15:15:03 GMT'] + Date: ['Mon, 10 Dec 2018 17:29:04 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=5539ace29f1219de617422adf784ccc5c4ca22bb&state=ccf82137742cb25807afb4051f80d827'] + Location: ['https://robot.your-server.de/login/check?code=bdc8ef3c6a2de2b92c1a1026ecef76244dd4841f&state=fdb42e8364a58b4a624c513c8f61a58c'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -185,13 +190,13 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=5539ace29f1219de617422adf784ccc5c4ca22bb&state=ccf82137742cb25807afb4051f80d827 + uri: https://robot.your-server.de/login/check?code=bdc8ef3c6a2de2b92c1a1026ecef76244dd4841f&state=fdb42e8364a58b4a624c513c8f61a58c response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:15:03 GMT'] + Date: ['Mon, 10 Dec 2018 17:29:04 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] @@ -376,11 +381,584 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:15:03 GMT'] + Date: ['Mon, 10 Dec 2018 17:29:04 GMT'] Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:29:05 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:29:05 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:29:05 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:29:06 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:29:06 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:29:06 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:29:07 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=d47824c13f4c30182396edccd2a76601'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=d47824c13f4c30182396edccd2a76601 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:29:07 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=6e987a0888dd2c686141a316382f622620b21ee5&state=d47824c13f4c30182396edccd2a76601'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=6e987a0888dd2c686141a316382f622620b21ee5&state=d47824c13f4c30182396edccd2a76601 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:29:07 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n
\n\n\ +
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:29:07 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121068+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Aorig.test+3600+IN+TXT+%22challengetoken%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1189'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:29:08 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:29:36 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:29:36 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:29:37 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:29:37 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:29:37 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:29:38 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:29:38 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=1c38670c51b0a6951378fb35b6e8e5c0'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=1c38670c51b0a6951378fb35b6e8e5c0 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:29:38 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=7ee6fdd06cc1993099fe1dfacfd3b94200a037e7&state=1c38670c51b0a6951378fb35b6e8e5c0'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=7ee6fdd06cc1993099fe1dfacfd3b94200a037e7&state=1c38670c51b0a6951378fb35b6e8e5c0 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:29:39 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} - request: body: null headers: @@ -391,53 +969,236 @@ interactions: method: GET uri: https://robot.your-server.de/dns/update/id/556218 response: - body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n
\n\n\ -
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} + body: {string: "
\n
\n
\n\n\n\n\n\n\n\ + \n\n\n\ + \n
\n
\n* \n
\n
\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:29:39 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:29:40 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:29:40 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:29:40 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} headers: + Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:15:04 GMT'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:29:40 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:29:41 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:29:41 GMT'] Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} - request: body: null @@ -449,75 +1210,61 @@ interactions: method: GET uri: https://robot.your-server.de/dns/update/id/556218 response: - body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n
\n\n\ -
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ - \ Preise inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} + body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:15:04 GMT'] + Date: ['Mon, 10 Dec 2018 17:29:41 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=2eba90f09503773ca9806f41e69f6316'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=2eba90f09503773ca9806f41e69f6316 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:29:42 GMT'] Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=b4e904a50b7d49033bc6a75808163d5c2a76ba65&state=2eba90f09503773ca9806f41e69f6316'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] - status: {code: 200, message: OK} + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121020+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Aorig.test+3600+IN+TXT+%22challengetoken%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0A + body: null headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] Connection: [keep-alive] - Content-Length: ['1189'] - Content-Type: [application/x-www-form-urlencoded] User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update + method: GET + uri: https://robot.your-server.de/login/check?code=b4e904a50b7d49033bc6a75808163d5c2a76ba65&state=2eba90f09503773ca9806f41e69f6316 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:15:04 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Date: ['Mon, 10 Dec 2018 17:29:42 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] Server: [Apache] Transfer-Encoding: [chunked] - status: {code: 200, message: OK} + status: {code: 302, message: Found} - request: body: null headers: @@ -536,7 +1283,7 @@ interactions: 2\">\n\n\n\n\n* \n\n \n\ \n\n\n \n\ \n\n
\n\n
\n\ \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ @@ -572,13 +1319,13 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:15:34 GMT'] - Keep-Alive: ['timeout=15, max=100'] + Date: ['Mon, 10 Dec 2018 17:29:42 GMT'] + Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121020+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.test+3600+IN+TXT+%22challengetoken%22%0A + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121069+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.test+3600+IN+TXT+%22challengetoken%22%0A headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] @@ -593,9 +1340,53 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:15:34 GMT'] - Keep-Alive: ['timeout=15, max=99'] + Date: ['Mon, 10 Dec 2018 17:29:43 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:30:11 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:30:11 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_update_record_should_modify_record_name_specified.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_update_record_should_modify_record_name_specified.yaml index 0d36bfb38..e5f7138cc 100644 --- a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_update_record_should_modify_record_name_specified.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_update_record_should_modify_record_name_specified.yaml @@ -52,8 +52,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:16:03 GMT'] + Date: ['Mon, 10 Dec 2018 17:30:12 GMT'] Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -77,9 +78,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:16:04 GMT'] + Date: ['Mon, 10 Dec 2018 17:30:13 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -101,9 +103,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:16:04 GMT'] + Date: ['Mon, 10 Dec 2018 17:30:13 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -125,8 +128,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:16:04 GMT'] + Date: ['Mon, 10 Dec 2018 17:30:13 GMT'] Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,9 +151,9 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:16:05 GMT'] + Date: ['Mon, 10 Dec 2018 17:30:14 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=42496691604b2e8ae6778fc8143069fe'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=dc31318f954898e47f4711ff4c2c5a71'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -161,16 +165,17 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=42496691604b2e8ae6778fc8143069fe + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=dc31318f954898e47f4711ff4c2c5a71 response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Sat, 08 Dec 2018 15:16:05 GMT'] + Date: ['Mon, 10 Dec 2018 17:30:14 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=88f4d2db8d8ce4e811fde764fd9d7110a66d83d7&state=42496691604b2e8ae6778fc8143069fe'] + Location: ['https://robot.your-server.de/login/check?code=cca4c1d4ab9c9000b18eb56e4a2fff3d4b50ee26&state=dc31318f954898e47f4711ff4c2c5a71'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -185,13 +190,13 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=88f4d2db8d8ce4e811fde764fd9d7110a66d83d7&state=42496691604b2e8ae6778fc8143069fe + uri: https://robot.your-server.de/login/check?code=cca4c1d4ab9c9000b18eb56e4a2fff3d4b50ee26&state=dc31318f954898e47f4711ff4c2c5a71 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:16:05 GMT'] + Date: ['Mon, 10 Dec 2018 17:30:14 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] @@ -376,11 +381,258 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:16:06 GMT'] + Date: ['Mon, 10 Dec 2018 17:30:15 GMT'] Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:30:15 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:30:15 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:30:16 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:30:16 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:30:16 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:30:16 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:30:17 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=a3880107ce49d9cf75676b6aaeac0814'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=a3880107ce49d9cf75676b6aaeac0814 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:30:17 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=ced009777bd71fbeabadf2e28f3cee31c19253d1&state=a3880107ce49d9cf75676b6aaeac0814'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=ced009777bd71fbeabadf2e28f3cee31c19253d1&state=a3880107ce49d9cf75676b6aaeac0814 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:30:17 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} - request: body: null headers: @@ -391,54 +643,257 @@ interactions: method: GET uri: https://robot.your-server.de/dns/update/id/556218 response: - body: {string: "
\n
\n
\n\n\n\n\n\n\n\ - \n\n\n\ - \n
\n
\n* \n
\n
\n
\n\n
\n\ - \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ - \ inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} + body: {string: "
\n
\n
\n\n\n\n\n\n\n\ + \n\n\n\ + \n
\n
\n* \n
\n
\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:30:18 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121070+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Aorig.nameonly.test+3600+IN+TXT+%22challengetoken%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.test+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1246'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:30:18 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:30:46 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:30:47 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:30:47 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} headers: + Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:16:06 GMT'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:30:48 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:30:48 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:30:48 GMT'] Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} - request: body: null @@ -450,76 +905,61 @@ interactions: method: GET uri: https://robot.your-server.de/dns/update/id/556218 response: - body: {string: "
\n
\n
\n\n\n\n\n\n\n\ - \n\n\n\ - \n
\n
\n* \n
\n
\n
\n\n
\n\ - \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ - \ inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} + body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:16:06 GMT'] + Date: ['Mon, 10 Dec 2018 17:30:49 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=9e3b38a6056f4cace69d0123844b9a68'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=9e3b38a6056f4cace69d0123844b9a68 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:30:49 GMT'] Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=ec4f4b301990c2698d4b273b5df093400101510d&state=9e3b38a6056f4cace69d0123844b9a68'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] - status: {code: 200, message: OK} + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121022+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Aorig.nameonly.test+3600+IN+TXT+%22challengetoken%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.test+3600+IN+TXT+%22challengetoken%22%0A + body: null headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] Connection: [keep-alive] - Content-Length: ['1246'] - Content-Type: [application/x-www-form-urlencoded] User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update + method: GET + uri: https://robot.your-server.de/login/check?code=ec4f4b301990c2698d4b273b5df093400101510d&state=9e3b38a6056f4cace69d0123844b9a68 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:16:07 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Date: ['Mon, 10 Dec 2018 17:30:49 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] Server: [Apache] Transfer-Encoding: [chunked] - status: {code: 200, message: OK} + status: {code: 302, message: Found} - request: body: null headers: @@ -538,7 +978,7 @@ interactions: 2\">\n\n\n\n\n* \n\n \n\n\n\n \n\ \n\n
\n\n
\n\ \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ @@ -575,13 +1015,13 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:16:36 GMT'] - Keep-Alive: ['timeout=15, max=100'] + Date: ['Mon, 10 Dec 2018 17:30:50 GMT'] + Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121022+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Aorig.nameonly.test+3600+IN+TXT+%22updated%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.test+3600+IN+TXT+%22challengetoken%22%0A + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121071+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Aorig.nameonly.test+3600+IN+TXT+%22updated%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.test+3600+IN+TXT+%22challengetoken%22%0A headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] @@ -596,9 +1036,53 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:16:36 GMT'] - Keep-Alive: ['timeout=15, max=99'] + Date: ['Mon, 10 Dec 2018 17:30:50 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:31:18 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:31:19 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_update_record_with_fqdn_name_should_modify_record.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_update_record_with_fqdn_name_should_modify_record.yaml index 2eb6687ae..70290a556 100644 --- a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_update_record_with_fqdn_name_should_modify_record.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_update_record_with_fqdn_name_should_modify_record.yaml @@ -52,8 +52,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:17:05 GMT'] + Date: ['Mon, 10 Dec 2018 17:31:20 GMT'] Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -77,9 +78,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:17:05 GMT'] + Date: ['Mon, 10 Dec 2018 17:31:20 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -101,9 +103,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:17:06 GMT'] + Date: ['Mon, 10 Dec 2018 17:31:20 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -125,8 +128,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:17:06 GMT'] + Date: ['Mon, 10 Dec 2018 17:31:20 GMT'] Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,9 +151,9 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:17:07 GMT'] + Date: ['Mon, 10 Dec 2018 17:31:21 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=3b665a78e825e3249cdfad586d0184e7'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=36a7c72ec8bd68b22a3f9e1239171ff3'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -161,16 +165,17 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=3b665a78e825e3249cdfad586d0184e7 + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=36a7c72ec8bd68b22a3f9e1239171ff3 response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Sat, 08 Dec 2018 15:17:07 GMT'] + Date: ['Mon, 10 Dec 2018 17:31:21 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=1e958855b761302c11285b7a2885e9b86b55648d&state=3b665a78e825e3249cdfad586d0184e7'] + Location: ['https://robot.your-server.de/login/check?code=78555923cdfacd6b38452150d29dfc057f2da87c&state=36a7c72ec8bd68b22a3f9e1239171ff3'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -185,13 +190,13 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=1e958855b761302c11285b7a2885e9b86b55648d&state=3b665a78e825e3249cdfad586d0184e7 + uri: https://robot.your-server.de/login/check?code=78555923cdfacd6b38452150d29dfc057f2da87c&state=36a7c72ec8bd68b22a3f9e1239171ff3 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:17:07 GMT'] + Date: ['Mon, 10 Dec 2018 17:31:21 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] @@ -376,11 +381,586 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:17:08 GMT'] + Date: ['Mon, 10 Dec 2018 17:31:22 GMT'] Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:31:22 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:31:23 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:31:23 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:31:23 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:31:24 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:31:24 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:31:24 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=42633cd37634cda354bcacec022512b4'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=42633cd37634cda354bcacec022512b4 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:31:25 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=4a1d020282021659ed1ad3e1b2bd446e8e641934&state=42633cd37634cda354bcacec022512b4'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=4a1d020282021659ed1ad3e1b2bd446e8e641934&state=42633cd37634cda354bcacec022512b4 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:31:25 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ + \n
\n
\n* \n
\n
\n
\n\n
\n\ + \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ + \ inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:31:25 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121072+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Aorig.nameonly.test+3600+IN+TXT+%22updated%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.test+3600+IN+TXT+%22challengetoken%22%0Aorig.testfqdn+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1288'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:31:26 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:31:54 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:31:54 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:31:55 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:31:55 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:31:55 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:31:56 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:31:56 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=d6b037e3b84d5a726815d96d4220619e'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=d6b037e3b84d5a726815d96d4220619e + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:31:56 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=b172e5e475d9c73b2131f41253a291eaeb7c0a34&state=d6b037e3b84d5a726815d96d4220619e'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=b172e5e475d9c73b2131f41253a291eaeb7c0a34&state=d6b037e3b84d5a726815d96d4220619e + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:31:56 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} - request: body: null headers: @@ -391,55 +971,238 @@ interactions: method: GET uri: https://robot.your-server.de/dns/update/id/556218 response: - body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ - \n
\n
\n* \n
\n
\n
\n\n
\n\ - \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ - \ inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:31:57 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:31:57 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:31:58 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:31:58 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} headers: + Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:17:08 GMT'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:31:58 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:31:59 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:31:59 GMT'] Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} - request: body: null @@ -451,77 +1214,61 @@ interactions: method: GET uri: https://robot.your-server.de/dns/update/id/556218 response: - body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\ - \n
\n
\n* \n
\n
\n
\n\n
\n\ - \ \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n Preise\ - \ inkl. 19 % USt
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} + body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:17:08 GMT'] + Date: ['Mon, 10 Dec 2018 17:31:59 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=faff99ea1e994609d94b76e1325e9e84'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=faff99ea1e994609d94b76e1325e9e84 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:32:00 GMT'] Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=2e2f2a0d3598c76e0d3400492afd855f916566e0&state=faff99ea1e994609d94b76e1325e9e84'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] - status: {code: 200, message: OK} + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121024+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Aorig.nameonly.test+3600+IN+TXT+%22updated%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.test+3600+IN+TXT+%22challengetoken%22%0Aorig.testfqdn+3600+IN+TXT+%22challengetoken%22%0A + body: null headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] Connection: [keep-alive] - Content-Length: ['1288'] - Content-Type: [application/x-www-form-urlencoded] User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update + method: GET + uri: https://robot.your-server.de/login/check?code=2e2f2a0d3598c76e0d3400492afd855f916566e0&state=faff99ea1e994609d94b76e1325e9e84 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:17:09 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Date: ['Mon, 10 Dec 2018 17:32:00 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] Server: [Apache] Transfer-Encoding: [chunked] - status: {code: 200, message: OK} + status: {code: 302, message: Found} - request: body: null headers: @@ -540,7 +1287,7 @@ interactions: 2\">\n\n\n\n\n* \n\n \n\n\n\n \n\n\n\
\n\n
\n \xA9 2018 Hetzner\ \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ @@ -578,13 +1325,13 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:17:38 GMT'] - Keep-Alive: ['timeout=15, max=100'] + Date: ['Mon, 10 Dec 2018 17:32:00 GMT'] + Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121024+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Aorig.nameonly.test+3600+IN+TXT+%22updated%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.testfqdn+3600+IN+TXT+%22challengetoken%22%0A + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121073+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Aorig.nameonly.test+3600+IN+TXT+%22updated%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.testfqdn+3600+IN+TXT+%22challengetoken%22%0A headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] @@ -599,9 +1346,53 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:17:39 GMT'] - Keep-Alive: ['timeout=15, max=99'] + Date: ['Mon, 10 Dec 2018 17:32:01 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:32:29 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:32:29 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} version: 1 diff --git a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_update_record_with_full_name_should_modify_record.yaml b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_update_record_with_full_name_should_modify_record.yaml index 9e690434b..f56fb1a35 100644 --- a/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_update_record_with_full_name_should_modify_record.yaml +++ b/tests/fixtures/cassettes/hetzner/Robot-IntegrationTests/test_Provider_when_calling_update_record_with_full_name_should_modify_record.yaml @@ -52,8 +52,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:18:08 GMT'] + Date: ['Mon, 10 Dec 2018 17:32:30 GMT'] Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -77,9 +78,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:18:08 GMT'] + Date: ['Mon, 10 Dec 2018 17:32:31 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -101,9 +103,10 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:18:08 GMT'] + Date: ['Mon, 10 Dec 2018 17:32:31 GMT'] Keep-Alive: ['timeout=15, max=98'] Location: [/account/masterdata] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -125,8 +128,9 @@ interactions: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [text/html; charset=UTF-8] - Date: ['Sat, 08 Dec 2018 15:18:08 GMT'] + Date: ['Mon, 10 Dec 2018 17:32:31 GMT'] Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -147,9 +151,9 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:18:09 GMT'] + Date: ['Mon, 10 Dec 2018 17:32:33 GMT'] Keep-Alive: ['timeout=15, max=100'] - Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=5dcdd1d4c51ac0f6cf26e48709f78fe1'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=c31267204fa1fc55ff41f5994559d884'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 302, message: Found} @@ -161,16 +165,17 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=5dcdd1d4c51ac0f6cf26e48709f78fe1 + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=c31267204fa1fc55ff41f5994559d884 response: body: {string: None} headers: Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] Content-Type: [application/json] - Date: ['Sat, 08 Dec 2018 15:18:09 GMT'] + Date: ['Mon, 10 Dec 2018 17:32:33 GMT'] Keep-Alive: ['timeout=15, max=96'] - Location: ['https://robot.your-server.de/login/check?code=80fb64706e6c8df1358f8405b0c15460ff33e09a&state=5dcdd1d4c51ac0f6cf26e48709f78fe1'] + Location: ['https://robot.your-server.de/login/check?code=93cbda5b0fd6340bc46526982996d93dd23ceeb7&state=c31267204fa1fc55ff41f5994559d884'] + Referrer-Policy: [same-origin] Server: [Apache] Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] @@ -185,13 +190,13 @@ interactions: Connection: [keep-alive] User-Agent: [python-requests/2.20.1] method: GET - uri: https://robot.your-server.de/login/check?code=80fb64706e6c8df1358f8405b0c15460ff33e09a&state=5dcdd1d4c51ac0f6cf26e48709f78fe1 + uri: https://robot.your-server.de/login/check?code=93cbda5b0fd6340bc46526982996d93dd23ceeb7&state=c31267204fa1fc55ff41f5994559d884 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:18:09 GMT'] + Date: ['Mon, 10 Dec 2018 17:32:33 GMT'] Keep-Alive: ['timeout=15, max=99'] Location: ['https://robot.your-server.de/dns/index/page/1'] Server: [Apache] @@ -376,11 +381,587 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:18:10 GMT'] + Date: ['Mon, 10 Dec 2018 17:32:34 GMT'] Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:32:34 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:32:34 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:32:35 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:32:35 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:32:35 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:32:35 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:32:36 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=f8bac9f2accfb3cbf14a5eea5b862102'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=f8bac9f2accfb3cbf14a5eea5b862102 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:32:36 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=70a7b18a0d233258a9ddfcbb592268f38e6cd21d&state=f8bac9f2accfb3cbf14a5eea5b862102'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=70a7b18a0d233258a9ddfcbb592268f38e6cd21d&state=f8bac9f2accfb3cbf14a5eea5b862102 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:32:36 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n\ +
\n\n
\n \xA9 2018 Hetzner\ + \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ + \
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:32:37 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121074+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Aorig.nameonly.test+3600+IN+TXT+%22updated%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.testfqdn+3600+IN+TXT+%22challengetoken%22%0Aorig.testfull+3600+IN+TXT+%22challengetoken%22%0A + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['1340'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://robot.your-server.de/dns/update + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:32:37 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:33:06 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:33:06 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:33:07 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:33:07 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:33:07 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:33:07 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/dns/update/id/556218 + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:33:08 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=f6fb3e007422fcf7c7db563d603f728e'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=f6fb3e007422fcf7c7db563d603f728e + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:33:08 GMT'] + Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=ca5fbd0e966fb600eea2d80289a6c9da8b5b7e41&state=f6fb3e007422fcf7c7db563d603f728e'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/check?code=ca5fbd0e966fb600eea2d80289a6c9da8b5b7e41&state=f6fb3e007422fcf7c7db563d603f728e + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:33:08 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} - request: body: null headers: @@ -391,56 +972,238 @@ interactions: method: GET uri: https://robot.your-server.de/dns/update/id/556218 response: - body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n\ -
\n\n
\n \xA9 2018 Hetzner\ - \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ - \
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} + body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n
\n\n\ +
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ + \ Preise inkl. 19 % USt
\nImpressum\ + \ |\n Datenschutz\ + \ |\n System\ + \ Policies |\n AGB
\n\ +
"} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:33:09 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:33:09 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:33:09 GMT'] + Keep-Alive: ['timeout=15, max=95'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/login + response: + body: {string: ''} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:33:10 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 200, message: OK} +- request: + body: '' + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Content-Length: ['51'] + Content-Type: [application/x-www-form-urlencoded] + User-Agent: [python-requests/2.20.1] + method: POST + uri: https://accounts.hetzner.com/login_check + response: + body: {string: None} headers: + Cache-Control: ['max-age=0, must-revalidate, private'] Connection: [Keep-Alive] - Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:18:11 GMT'] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:33:10 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://accounts.hetzner.com/'] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:33:10 GMT'] + Keep-Alive: ['timeout=15, max=98'] + Location: [/account/masterdata] + Referrer-Policy: [same-origin] + Server: [Apache] + Strict-Transport-Security: [max-age=31536000] + Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/account/masterdata + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:33:10 GMT'] Keep-Alive: ['timeout=15, max=97'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} - request: body: null @@ -452,78 +1215,61 @@ interactions: method: GET uri: https://robot.your-server.de/dns/update/id/556218 response: - body: {string: "
\n
\n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n* \n
\n
\n\ -
\n\n
\n \xA9 2018 Hetzner\ - \ Online GmbH. Alle Rechte vorbehalten.
\n Preise inkl. 19 % USt\ - \
\nImpressum\ - \ |\n Datenschutz\ - \ |\n System\ - \ Policies |\n AGB
\n\ -
"} + body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:18:11 GMT'] + Date: ['Mon, 10 Dec 2018 17:33:11 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=fccadc8e078e41a9a4995ebcd0345895'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/oauth/authorize?client_id=robot_418&redirect_uri=https%3A%2F%2Frobot.your-server.de%2Flogin%2Fcheck&response_type=code&scope=openid&state=fccadc8e078e41a9a4995ebcd0345895 + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [application/json] + Date: ['Mon, 10 Dec 2018 17:33:11 GMT'] Keep-Alive: ['timeout=15, max=96'] + Location: ['https://robot.your-server.de/login/check?code=5309d3699d6d84c80814792545d90ddfcd012fd5&state=fccadc8e078e41a9a4995ebcd0345895'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] - status: {code: 200, message: OK} + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] + status: {code: 302, message: Found} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121026+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Aorig.nameonly.test+3600+IN+TXT+%22updated%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.testfqdn+3600+IN+TXT+%22challengetoken%22%0Aorig.testfull+3600+IN+TXT+%22challengetoken%22%0A + body: null headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] Connection: [keep-alive] - Content-Length: ['1340'] - Content-Type: [application/x-www-form-urlencoded] User-Agent: [python-requests/2.20.1] - method: POST - uri: https://robot.your-server.de/dns/update + method: GET + uri: https://robot.your-server.de/login/check?code=5309d3699d6d84c80814792545d90ddfcd012fd5&state=fccadc8e078e41a9a4995ebcd0345895 response: body: {string: None} headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:18:11 GMT'] - Keep-Alive: ['timeout=15, max=95'] + Date: ['Mon, 10 Dec 2018 17:33:11 GMT'] + Keep-Alive: ['timeout=15, max=99'] + Location: ['https://robot.your-server.de/dns/update/id/556218'] Server: [Apache] Transfer-Encoding: [chunked] - status: {code: 200, message: OK} + status: {code: 302, message: Found} - request: body: null headers: @@ -542,7 +1288,7 @@ interactions: 2\">\n\n\n\n\n* \n\n \n\n\n\n \n\n\n
\n\n\
\n \xA9 2018 Hetzner Online GmbH. Alle Rechte vorbehalten.
\n\ @@ -580,13 +1326,13 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:18:41 GMT'] - Keep-Alive: ['timeout=15, max=100'] + Date: ['Mon, 10 Dec 2018 17:33:12 GMT'] + Keep-Alive: ['timeout=15, max=98'] Server: [Apache] Transfer-Encoding: [chunked] status: {code: 200, message: OK} - request: - body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121026+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Aorig.nameonly.test+3600+IN+TXT+%22updated%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.testfqdn+3600+IN+TXT+%22challengetoken%22%0Aupdated.testfull+3600+IN+TXT+%22challengetoken%22%0A + body: id=556218&zonefile=%40+3600+IN+SOA+ns1.first-ns.de.+postmaster.robot.first-ns.de.+2018121075+14400+1800+604800+86400%0A%40+86400+IN+NS+robotns3.second-ns.com.%0A%40+86400+IN+NS+robotns2.second-ns.de.%0A%40+86400+IN+NS+ns1.first-ns.de.%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken2%22%0A_acme-challenge.createrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.deleterecordinset+3600+IN+TXT+%22challengetoken2%22%0Adocs+3600+IN+CNAME+docs.example.com%0A_acme-challenge.fqdn+3600+IN+TXT+%22challengetoken%22%0Attl.fqdn+3600+IN+TXT+%22ttlshouldbe3600%22%0Arandom.fqdntest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.full+3600+IN+TXT+%22challengetoken%22%0Arandom.fulltest+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken1%22%0A_acme-challenge.listrecordset+3600+IN+TXT+%22challengetoken2%22%0Alocalhost+86400+IN+A+127.0.0.1%0Aloopback+3600+IN+CNAME+localhost%0A_acme-challenge.noop+3600+IN+TXT+%22challengetoken%22%0A_acme-challenge.test+3600+IN+TXT+%22challengetoken%22%0Aorig.nameonly.test+3600+IN+TXT+%22updated%22%0Arandom.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.test+3600+IN+TXT+%22challengetoken%22%0Aupdated.testfqdn+3600+IN+TXT+%22challengetoken%22%0Aupdated.testfull+3600+IN+TXT+%22challengetoken%22%0A headers: Accept: ['*/*'] Accept-Encoding: ['gzip, deflate'] @@ -601,9 +1347,53 @@ interactions: headers: Connection: [Keep-Alive] Content-Type: [text/html; charset=utf-8] - Date: ['Sat, 08 Dec 2018 15:18:41 GMT'] - Keep-Alive: ['timeout=15, max=99'] + Date: ['Mon, 10 Dec 2018 17:33:12 GMT'] + Keep-Alive: ['timeout=15, max=97'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://robot.your-server.de/login/logout/r/true + response: + body: {string: None} + headers: + Connection: [Keep-Alive] + Content-Type: [text/html; charset=utf-8] + Date: ['Mon, 10 Dec 2018 17:33:40 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Location: ['https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/'] + Server: [Apache] + Transfer-Encoding: [chunked] + status: {code: 302, message: Found} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.20.1] + method: GET + uri: https://accounts.hetzner.com/logout?post_logout_redirect_uri=https://robot.your-server.de/ + response: + body: {string: None} + headers: + Cache-Control: ['max-age=0, must-revalidate, private'] + Connection: [Keep-Alive] + Content-Type: [text/html; charset=UTF-8] + Date: ['Mon, 10 Dec 2018 17:33:41 GMT'] + Keep-Alive: ['timeout=15, max=100'] + Referrer-Policy: [same-origin] Server: [Apache] + Strict-Transport-Security: [max-age=31536000] Transfer-Encoding: [chunked] + Vary: [Host] + X-Frame-Options: [SAMEORIGIN] status: {code: 200, message: OK} version: 1 diff --git a/tests/providers/test_hetzner.py b/tests/providers/test_hetzner.py index 8f6298a73..dc1cd34e5 100644 --- a/tests/providers/test_hetzner.py +++ b/tests/providers/test_hetzner.py @@ -35,11 +35,9 @@ def _filter_response(self, response): return response def _test_parameters_overrides(self): - env_live_tests = os.environ.get('LEXICON_LIVE_TESTS', 'false') options = {'auth_account': 'robot', 'concatenate': 'no', - 'propagated': 'no', - 'live_tests': env_live_tests} + 'propagated': 'no'} return options class HetznerKonsoleHProviderTests(TestCase, IntegrationTests): @@ -69,11 +67,9 @@ def _filter_response(self, response): def _test_parameters_overrides(self): env_username = os.environ.get('LEXICON_HETZNER_KONSOLEH_USERNAME') env_password = os.environ.get('LEXICON_HETZNER_KONSOLEH_PASSWORD') - env_live_tests = os.environ.get('LEXICON_LIVE_TESTS', 'false') options = {'auth_account': 'konsoleh', 'auth_username': env_username, 'auth_password': env_password, 'concatenate': 'no', - 'propagated': 'no', - 'live_tests': env_live_tests} + 'propagated': 'no'} return options From c68f87ba0c1f7c1a90b6bf24961148606f829d6d Mon Sep 17 00:00:00 2001 From: Brian Rimek Date: Mon, 10 Dec 2018 19:10:17 +0100 Subject: [PATCH 15/21] pylint fix --- lexicon/providers/hetzner.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lexicon/providers/hetzner.py b/lexicon/providers/hetzner.py index 2a539f978..072fa44dc 100644 --- a/lexicon/providers/hetzner.py +++ b/lexicon/providers/hetzner.py @@ -519,7 +519,7 @@ def _exit_session(self): LOGGER.info('Hetzner => Exit session') else: LOGGER.error('Hetzner => Unable to savely exit session') - return None + return True @contextmanager def _session(self, domain=None): @@ -533,12 +533,12 @@ def _session(self, domain=None): if domain: self.zone = self._get_zone(self.domain, self.domain_id) except Exception as exc: - self.session = self._exit_session() - self.nameservers, self.cname, self.zone = None, None, None + self._exit_session() + self.session, self.nameservers, self.cname, self.zone = None, None, None, None raise exc yield - self.session = self._exit_session() - self.nameservers, self.cname, self.zone = None, None, None + self._exit_session() + self.session, self.nameservers, self.cname, self.zone = None, None, None, None def _get_domain_id(self, domain): api = self.api[self.account]['domain_id'] From 713d1cd3c31507bc72004d0ffa2803de9bffc25a Mon Sep 17 00:00:00 2001 From: Brian Rimek Date: Mon, 10 Dec 2018 22:03:46 +0100 Subject: [PATCH 16/21] specify latency option, used after record updates of Hetzner Robot and during checks for publicly propagation: by default 30s (30) --- lexicon/providers/hetzner.py | 20 ++++++++++++++------ tests/providers/test_hetzner.py | 6 ++++-- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/lexicon/providers/hetzner.py b/lexicon/providers/hetzner.py index 072fa44dc..31ff6e2ab 100644 --- a/lexicon/providers/hetzner.py +++ b/lexicon/providers/hetzner.py @@ -54,10 +54,15 @@ def ProviderParser(subparser): default=str('yes'), choices=['yes', 'no']) subparser.add_argument('--propagated', - help='wait until record is propagated after succeeded create|update ' - 'action: by default (yes)', + help='wait until record is publicly propagated after succeeded ' + 'create|update action: by default (yes)', default=str('yes'), choices=['yes', 'no']) + subparser.add_argument('--latency', + help='specify latency, used after record updates of Hetzner Robot ' + 'and during checks for publicly propagation: by default 30s (30)', + default=int(30), + type=int) class Provider(BaseProvider): @@ -384,6 +389,7 @@ def _concatenate(self): return name, False def _propagated(self, rdtype, name, content): + latency = self._get_provider_option('latency') propagated = True if self._get_provider_option('propagated') == 'yes' else False if propagated: retry, max_retry = 0, 20 @@ -395,8 +401,8 @@ def _propagated(self, rdtype, name, content): return True retry += 1 LOGGER.info('Hetzner => Record is not propagated, retry (%d remaining) ' - 'after 30s...', (max_retry - retry)) - time.sleep(30) + 'after %ds...', (max_retry - retry), latency) + time.sleep(latency) return False # DNS Helpers @@ -602,6 +608,8 @@ def _post_zone(self): self.domain_id, self.zone['data'].to_text(relativize=True).decode('UTF-8')) if self.account == 'robot': - LOGGER.info('Hetzner => Wait 30s until Hetzner Robot has took over data...') - time.sleep(30) + latency = self._get_provider_option('latency') + LOGGER.info('Hetzner => Wait %ds until Hetzner Robot has took over data...', + latency) + time.sleep(latency) return True diff --git a/tests/providers/test_hetzner.py b/tests/providers/test_hetzner.py index dc1cd34e5..a7fdd6c05 100644 --- a/tests/providers/test_hetzner.py +++ b/tests/providers/test_hetzner.py @@ -37,7 +37,8 @@ def _filter_response(self, response): def _test_parameters_overrides(self): options = {'auth_account': 'robot', 'concatenate': 'no', - 'propagated': 'no'} + 'propagated': 'no', + 'latency': 1} return options class HetznerKonsoleHProviderTests(TestCase, IntegrationTests): @@ -71,5 +72,6 @@ def _test_parameters_overrides(self): 'auth_username': env_username, 'auth_password': env_password, 'concatenate': 'no', - 'propagated': 'no'} + 'propagated': 'no', + 'latency': 1} return options From 8b96ac8a3f8b764cc528c38f8ca481f5728b7f95 Mon Sep 17 00:00:00 2001 From: Brian Rimek Date: Fri, 14 Dec 2018 00:54:06 +0100 Subject: [PATCH 17/21] Added method documentations Refactored code base --- lexicon/providers/hetzner.py | 696 ++++++++++++++++++++--------------- 1 file changed, 399 insertions(+), 297 deletions(-) diff --git a/lexicon/providers/hetzner.py b/lexicon/providers/hetzner.py index 31ff6e2ab..77c7e7f83 100644 --- a/lexicon/providers/hetzner.py +++ b/lexicon/providers/hetzner.py @@ -7,7 +7,7 @@ import re import time import requests -import six +from six import string_types from urllib3.util.retry import Retry # Due to optional requirement @@ -23,20 +23,6 @@ LOGGER = logging.getLogger(__name__) -# Lexicon Hetzner Provider -# -# Author: Brian Rimek, 2018 -# -# Implementation notes: -# * Hetzner Robot and Hetzner KonsoleH does not assign a unique identifier to each record -# in the way that Lexicon expects. We work around this by creating an ID based on the record -# type, name(FQDN) and content(if possible FQDN), which when taken together are unique. -# Supported record identifier formats are: -# * hash - generated|verified by 'list' command; e.g. '30fa112' -# * raw - concatenation of the record type, name(FQDN) and content(if possible FQDN) -# with delimiter '/'; -# e.g. 'TXT/example.com./challengetoken' or 'SRV/example.com./0 0 443 msx.example.com.' - NAMESERVER_DOMAINS = [] def ProviderParser(subparser): @@ -45,26 +31,48 @@ def ProviderParser(subparser): '(robot) or Hetzner KonsoleH (konsoleh)') subparser.add_argument('--auth-username', help='specify username of Hetzner account') subparser.add_argument('--auth-password', help='specify password of Hetzner account') - subparser.add_argument('--concatenate', - help='use existent CNAME as record name for create|update|delete ' - 'action: by default (yes); Restriction: Only enabled if the record ' - 'name or the raw FQDN record identifier \'type/name/content\' is ' - 'specified, and additionally for update action the record name ' + subparser.add_argument('--linked', + help='if exists, uses linked CNAME as A|AAAA|TXT record name for edit ' + 'actions: by default (yes); Further restriction: Only enabled if ' + 'record name or raw FQDN record identifier \'type/name/content\' is ' + 'specified, and additionally for update actions the record name ' 'remains the same', default=str('yes'), choices=['yes', 'no']) subparser.add_argument('--propagated', - help='wait until record is publicly propagated after succeeded ' - 'create|update action: by default (yes)', + help='waits until record is publicly propagated after succeeded ' + 'create|update actions: by default (yes)', default=str('yes'), choices=['yes', 'no']) subparser.add_argument('--latency', - help='specify latency, used after record updates of Hetzner Robot ' - 'and during checks for publicly propagation: by default 30s (30)', + help='specify latency, used during checks for publicly propagation ' + 'and additionally for Hetzner Robot after record edits: by default ' + '30s (30)', default=int(30), type=int) class Provider(BaseProvider): + """ + Implements the Hetzner DNS Provider. + There are two variants to manage DNS records on Hetzner: Hetzner Robot or + Hetzner KonsoleH. Both do not provide a common API, therefore this provider + implements missing read and write methods in a generic way. For editing DNS + records on Hetzner, this provider manipulates and replaces the whole DNS zone. + Furthermore, there is no unique identifier to each record in the way that Lexicon + expects, why this provider implements a pseudo-identifer based on the record type, + name and content for use of the --identifier parameter. Supported identifier + formats are: + - hash generated|verified by 'list' command; e.g. '30fa112' + - raw concatenation of the record type, name (FQDN) and content (if possible + FQDN) with delimiter '/'; e.g. 'SRV/example.com./0 0 443 msx.example.com.' + or 'TXT/example.com./challengetoken' + Additional, this provider implements the option of replacing an A, AAAA or TXT record + name with an existent linked CNAME for edit actions via the --linked parameter and + the option of waiting until record is publicly propagated after succeeded create or + update actions via the --propagated parameter. As further restriction, the use of a + linked CNAME is only enabled if the record type & record name or the raw identifier are + specified, and additionally for the update action the record name remains the same. + """ def __init__(self, config): super(Provider, self).__init__(config) @@ -139,6 +147,7 @@ def __init__(self, config): } } } + self.session= None self.account = self._get_provider_option('auth_account') if self.account in (None, 'robot', 'konsoleh'): @@ -152,25 +161,31 @@ def __init__(self, config): self.password = self._get_provider_option('auth_password') assert self.password is not None - self.session, self.nameservers, self.cname, self.zone = None, None, None, None - - # Authenticate against provider. def authenticate(self): - with self._session(): + """ + Connects to Hetzner account and returns, if authentification was + successful and the domain or CNAME target is managed by this account. + """ + with self._session(self.domain, get_zone=False): return True - # Create record. If record already exists with the same content, do nothing. def create_record(self, type, name, content): - with self._session(self.domain): - if type is None or name is None or content is None: - LOGGER.error('Hetzner => Record has no type|name|content specified') + """ + Connects to Hetzner account, adds a new record to the zone and returns a + boolean, if creation was successful or not. Needed record type, name and + content for record to create. + """ + with self._session(self.domain, self.domain_id) as ddata: + # Validate method parameters + if not type or not name or not content: + LOGGER.warning('Hetzner => Record has no type|name|content specified') return False - rrset = self.zone['data'].get_rdataset((self.cname if self.cname - else self._fqdn_name(name)), - rdtype=type, create=True) + # Add record to zone + name = ddata['cname'] if ddata['cname'] else self._fqdn_name(name) + rrset = ddata['zone']['data'].get_rdataset(name, rdtype=type, create=True) for rdata in rrset: - if self._wellformed_content(type, content) == rdata.to_text(): + if self._convert_content(type, content) == rdata.to_text(): LOGGER.info('Hetzner => Record with content \'%s\' already exists', content) return True @@ -179,186 +194,171 @@ def create_record(self, type, name, content): and rrset.ttl < self._get_lexicon_option('ttl') else self._get_lexicon_option('ttl')) rdataset = dns.rdataset.from_text(rrset.rdclass, rrset.rdtype, - ttl, self._wellformed_content(type, content)) + ttl, self._convert_content(type, content)) rrset.update(rdataset) - synced_change = self._post_zone() + # Post zone to Hetzner + synced_change = self._post_zone(ddata['zone']) if synced_change: - self._propagated(type, name, content) + self._propagated_record(type, name, self._convert_content(type, content), + ddata['nameservers']) return synced_change - # List all records. Return an empty list if no records found. - # type, name and content are used to filter records. - # If possible filter during the query, otherwise filter after response is received. def list_records(self, type=None, name=None, content=None): - with self._session(self.domain): - return self._list_records(type, name, content) - - # Update a record. - # If record does not exist or lookup matching more than one record, do nothing. - # If an identifier is specified, use it, otherwise do a lookup using type and name. - # Support existent CNAME as record name if: - # * record type & record name or raw FQDN record identifier 'type/name/content' are specified - # * record name remains the same + """ + Connects to Hetzner account and returns a list of records filtered by record + type, name and content. The list is empty if no records found. + """ + with self._session(self.domain, self.domain_id) as ddata: + name = self._fqdn_name(name) if name else None + return self._list_records(ddata['zone']['data'], type, name, content) + def update_record(self, identifier=None, type=None, name=None, content=None): - with self._session(self.domain): + """ + Connects to Hetzner account, changes an existing record and returns a boolean, + if update was successful or not. Needed identifier or type & name to lookup + over all records of the zone for exactly one record to update. + """ + with self._session(self.domain, self.domain_id) as ddata: + # Validate method parameters if identifier: - delete_type, delete_name, delete_content = self._parse_identifier(identifier) - if delete_type and delete_name and delete_content: - type = type if type else delete_type - name = name if name else delete_name - content = content if content else delete_content + dtype, dname, dcontent = self._parse_identifier(identifier, ddata['zone']['data']) + if dtype and dname and dcontent: + type = type if type else dtype + name = name if name else dname + content = content if content else dcontent else: - LOGGER.error('Hetzner => Record with identifier \'%s\' does not exist', + LOGGER.warning('Hetzner => Record with identifier \'%s\' does not exist', identifier) return False elif type and name and content: - delete_type, delete_name, delete_content = type, name, None + dtype, dname, dcontent = type, name, None else: - LOGGER.error('Hetzner => Record has no type|name|content specified') + LOGGER.warning('Hetzner => Record has no type|name|content specified') return False - # Delete record - delete_records = self._list_records(delete_type, delete_name, delete_content) - if delete_records: - for record in delete_records: - delete_rrset = self.zone['data'].get_rdataset(record['name']+'.', - rdtype=record['type']) - keep_rdatas = [] - for delete_rdata in delete_rrset: - if self._wellformed_content(record['type'], - record['content']) != delete_rdata.to_text(): - keep_rdatas.append(delete_rdata.to_text()) - if keep_rdatas: - if delete_content is None: - LOGGER.error('Hetzner => Record lookup matching more than one record') - return False - - keep_rdataset = dns.rdataset.from_text_list(delete_rrset.rdclass, - delete_rrset.rdtype, - record['ttl'], keep_rdatas) - self.zone['data'].replace_rdataset(record['name']+'.', keep_rdataset) - else: - self.zone['data'].delete_rdataset(record['name']+'.', record['type']) - # Create record - rrset = self.zone['data'].get_rdataset((self.cname if self.cname - else self._fqdn_name(name)), - rdtype=type, create=True) - synced_create_change = False + dname = ddata['cname'] if ddata['cname'] else self._fqdn_name(dname) + records = self._list_records(ddata['zone']['data'], dtype, dname, dcontent) + if len(records) == 1: + # Remove record from zone + rrset = ddata['zone']['data'].get_rdataset(records[0]['name']+'.', + rdtype=records[0]['type']) + rdatas = [] + for rdata in rrset: + if self._convert_content(records[0]['type'], + records[0]['content']) != rdata.to_text(): + rdatas.append(rdata.to_text()) + if rdatas: + rdataset = dns.rdataset.from_text_list(rrset.rdclass, rrset.rdtype, + records[0]['ttl'], rdatas) + ddata['zone']['data'].replace_rdataset(records[0]['name']+'.', rdataset) + else: + ddata['zone']['data'].delete_rdataset(records[0]['name']+'.', + records[0]['type']) + # Add record to zone + name = ddata['cname'] if ddata['cname'] else self._fqdn_name(name) + rrset = ddata['zone']['data'].get_rdataset(name, rdtype=type, create=True) + synced_change = False for rdata in rrset: - if self._wellformed_content(type, content) == rdata.to_text(): + if self._convert_content(type, content) == rdata.to_text(): LOGGER.info('Hetzner => Record with content \'%s\' already exists', content) - synced_create_change = True + synced_change = True break - if not synced_create_change: + if not synced_change: ttl = (rrset.ttl if rrset.ttl > 0 and rrset.ttl < self._get_lexicon_option('ttl') else self._get_lexicon_option('ttl')) - renew_rdataset = dns.rdataset.from_text(rrset.rdclass, rrset.rdtype, ttl, - self._wellformed_content(type, content)) - rrset.update(renew_rdataset) - synced_change = self._post_zone() + rdataset = dns.rdataset.from_text(rrset.rdclass, rrset.rdtype, ttl, + self._convert_content(type, content)) + rrset.update(rdataset) + # Post zone to Hetzner + synced_change = self._post_zone(ddata['zone']) if synced_change: - self._propagated(type, name, content) + self._propagated_record(type, name, self._convert_content(type, content), + ddata['nameservers']) return synced_change - LOGGER.error('Hetzner => Record lookup has no matches') + LOGGER.warning('Hetzner => Record lookup has not only one match') return False - # Delete an existing record. - # If record does not exist, do nothing. - # If an identifier is specified, use it, otherwise do a lookup using type, name and content. - # Support existent CNAME as record name if: - # * record type & record name or raw FQDN record identifier 'type/name/content' are specified def delete_record(self, identifier=None, type=None, name=None, content=None): - with self._session(self.domain): + """ + Connects to Hetzner account, removes an existing record from the zone and returns a + boolean, if deletion was successful or not. Uses identifier or type, name & content to + lookup over all records of the zone for one or more records to delete. + """ + with self._session(self.domain, self.domain_id) as ddata: + # Validate method parameters if identifier: - type, name, content = self._parse_identifier(identifier) + type, name, content = self._parse_identifier(identifier, ddata['zone']['data']) if type is None or name is None or content is None: LOGGER.info('Hetzner => Record with identifier \'%s\' does not exist', identifier) return True - - delete_records = self._list_records(type, name, content) - if delete_records: - for record in delete_records: - rrset = self.zone['data'].get_rdataset(record['name']+'.', - rdtype=record['type']) + + name = ddata['cname'] if ddata['cname'] else (self._fqdn_name(name) if name else None) + records = self._list_records(ddata['zone']['data'], type, name, content) + if records: + # Remove records from zone + for record in records: + rrset = ddata['zone']['data'].get_rdataset(record['name']+'.', + rdtype=record['type']) rdatas = [] for rdata in rrset: - if self._wellformed_content(record['type'], - record['content']) != rdata.to_text(): + if self._convert_content(record['type'], + record['content']) != rdata.to_text(): rdatas.append(rdata.to_text()) if rdatas: rdataset = dns.rdataset.from_text_list(rrset.rdclass, rrset.rdtype, record['ttl'], rdatas) - self.zone['data'].replace_rdataset(record['name']+'.', rdataset) + ddata['zone']['data'].replace_rdataset(record['name']+'.', rdataset) else: - self.zone['data'].delete_rdataset(record['name']+'.', record['type']) - synced_change = self._post_zone() + ddata['zone']['data'].delete_rdataset(record['name']+'.', record['type']) + # Post zone to Hetzner + synced_change = self._post_zone(ddata['zone']) return synced_change LOGGER.info('Hetzner => Record lookup has no matches') return True - # Lexicon Helpers - ########################################################################### - def _list_records(self, rdtype=None, name=None, content=None): - records = [] - rrsets = self.zone['data'].iterate_rdatasets() if self.zone else [] - for rname, rdataset in rrsets: - rtype = dns.rdatatype.to_text(rdataset.rdtype) - rname = rname.to_text() - if ((not rdtype or rdtype == rtype) - and (not name or (self.cname if self.cname - else self._fqdn_name(name)) == rname)): - for rdata in rdataset: - rdata = rdata.to_text() - if (not content or self._wellformed_content(rtype, content) == rdata): - raw_rdata = self._clean_TXT_record({'type': rtype, - 'content': rdata})['content'] - data = { - 'type': rtype, - 'name': self._full_name(rname), - 'ttl': int(rdataset.ttl), - 'content': raw_rdata, - 'id': Provider._build_identifier(rtype, rname, raw_rdata) - } - records.append(data) - return records - - def _request(self, action='GET', url='/', data=None, query_params=None): - if data is None: - data = {} - if query_params is None: - query_params = {} - response = self.session.request(action, self.api[self.account]['endpoint'] + url, - params=query_params, data=data) - response.raise_for_status() - return response + ############################################################################### + # Provider base helpers + ############################################################################### @staticmethod - def _build_identifier(rdtype, name, content): + def _create_identifier(rdtype, name, content): + """ + Creates hashed identifier based on full qualified record type, name & content + and returns hash. + """ sha256 = hashlib.sha256() sha256.update((rdtype + '/').encode('UTF-8')) sha256.update((name + '/').encode('UTF-8')) sha256.update(content.encode('UTF-8')) return sha256.hexdigest()[0:7] - def _parse_identifier(self, identifier): + def _parse_identifier(self, identifier, zone=None): + """ + Parses the record identifier and returns type, name & content of the associated record + as tuple. The tuple is empty if no associated record found. + """ rdtype, name, content = None, None, None if len(identifier) > 7: parts = identifier.split('/') rdtype, name, content = parts[0], parts[1], '/'.join(parts[2:]) else: - records = self._list_records() + records = self._list_records(zone) for record in records: if record['id'] == identifier: rdtype, name, content = record['type'], record['name']+'.', record['content'] return rdtype, name, content - def _wellformed_content(self, rdtype, content): + def _convert_content(self, rdtype, content): + """ + Converts type dependent record content into well formed and fully qualified + content for domain zone and returns content. + """ if rdtype == 'TXT': if content[0] != '"': content = '"' + content @@ -369,135 +369,244 @@ def _wellformed_content(self, rdtype, content): content = self._fqdn_name(content) return content - def _concatenate(self): - action = self._get_lexicon_option('action') - identifier = self._get_lexicon_option('identifier') - rdtype = self._get_lexicon_option('type') - name = self._get_lexicon_option('name') - concatenate = True if self._get_provider_option('concatenate') == 'yes' else False - name_update = name - if identifier: - rdtype, name, _ = self._parse_identifier(identifier) - name_update = self._fqdn_name(name_update) if name_update else name - if action != 'list' and rdtype and rdtype != 'CNAME' and name and concatenate: - if action != 'update' or name == name_update: - LOGGER.info('Hetzner => Enable CNAME lookup, ' - 'see --concatenate option') - return name, True - LOGGER.info('Hetzner => Disable CNAME lookup, ' - 'see --concatenate option') - return name, False - - def _propagated(self, rdtype, name, content): - latency = self._get_provider_option('latency') - propagated = True if self._get_provider_option('propagated') == 'yes' else False - if propagated: - retry, max_retry = 0, 20 - while retry < max_retry: - for rdata in self._dns_lookup((self.cname if self.cname - else self._fqdn_name(name)), - rdtype, self.nameservers): - if self._wellformed_content(rdtype, content) == rdata.to_text(): - return True - retry += 1 - LOGGER.info('Hetzner => Record is not propagated, retry (%d remaining) ' - 'after %ds...', (max_retry - retry), latency) - time.sleep(latency) - return False + def _list_records(self, zone, rdtype=None, name=None, content=None): + """ + Iterates over all records of the zone and returns a list of records filtered + by record type, name and content. The list is empty if no records found. + """ + records = [] + rrsets = zone.iterate_rdatasets() if zone else [] + for rname, rdataset in rrsets: + rtype = dns.rdatatype.to_text(rdataset.rdtype) + if ((not rdtype or rdtype == rtype) + and (not name or name == rname.to_text())): + for rdata in rdataset: + rdata = rdata.to_text() + if (not content or self._convert_content(rtype, content) == rdata): + raw_rdata = self._clean_TXT_record({'type': rtype, + 'content': rdata})['content'] + data = { + 'type': rtype, + 'name': rname.to_text(True), + 'ttl': int(rdataset.ttl), + 'content': raw_rdata, + 'id': Provider._create_identifier(rtype, rname.to_text(), raw_rdata) + } + records.append(data) + return records + + def _request(self, action='GET', url='/', data=None, query_params=None): + """ + Requests to Hetzner by current session and returns the response. + """ + if data is None: + data = {} + if query_params is None: + query_params = {} + response = self.session.request(action, self.api[self.account]['endpoint'] + url, + params=query_params, data=data) + response.raise_for_status() + return response - # DNS Helpers - ########################################################################### - def _dns_lookup(self, qname, rdtype, nameservers=None): - rrset = dns.rrset.from_text(qname, 0, 1, rdtype) + ############################################################################### + # Provider option helpers + ############################################################################### + + @staticmethod + def _dns_lookup(name, rdtype, nameservers=None): + """ + Looks on specified or default system domain nameservers to resolve record type + & name and returns record set. The record set is empty if no propagated + record found. + """ + rrset = dns.rrset.from_text(name, 0, 1, rdtype) try: resolver = dns.resolver.Resolver() if nameservers: resolver.nameservers = nameservers - rrset = resolver.query(qname, rdtype) + rrset = resolver.query(name, rdtype) for rdata in rrset: LOGGER.debug('DNS Lookup => %s %s %s %s', - rrset.qname.to_text(), dns.rdataclass.to_text(rrset.rdclass), + rrset.name.to_text(), dns.rdataclass.to_text(rrset.rdclass), dns.rdatatype.to_text(rrset.rdtype), rdata.to_text()) except dns.exception.DNSException as error: LOGGER.debug('DNS Lookup => %s', error) return rrset - def _get_dns(self, domain, name): - qname = dns.name.from_text(name) + @staticmethod + def _get_nameservers(domain): + """ + Looks for domain nameservers and returns the IPs of the nameservers as a list. + The list is empty, if no nameservers were found. Needed associated domain zone + name for lookup. + """ nameservers = [] rdtypes_ns = ['SOA', 'NS'] rdtypes_ip = ['A', 'AAAA'] - while (len(qname.labels) > 2 and not nameservers): # pylint: disable=no-member - for rdtype_ns in rdtypes_ns: - for rdata_ns in self._dns_lookup(qname, rdtype_ns): - for rdtype_ip in rdtypes_ip: - for rdata_ip in self._dns_lookup(rdata_ns.to_text().split(' ')[0], + for rdtype_ns in rdtypes_ns: + for rdata_ns in Provider._dns_lookup(domain, rdtype_ns): + for rdtype_ip in rdtypes_ip: + for rdata_ip in Provider._dns_lookup(rdata_ns.to_text().split(' ')[0], rdtype_ip): - if rdata_ip.to_text() not in nameservers: - nameservers.append(rdata_ip.to_text()) - qdomain = qname.to_text(True) - qname = qname.parent() - domain = qdomain if nameservers else domain - LOGGER.debug('DNS Lookup => %s IN NS %s', domain+'.', ' '.join(nameservers)) - return domain, nameservers - - def _get_dns_cname(self, domain, name=None, concatenate=False): + if rdata_ip.to_text() not in nameservers: + nameservers.append(rdata_ip.to_text()) + LOGGER.debug('DNS Lookup => %s IN NS %s', domain, ' '.join(nameservers)) + return nameservers + + @staticmethod + def _get_dns_cname(name, link=False): + """ + Looks for associated domain zone, nameservers and linked record name until no + more linked record name was found for the given fully qualified record name or + the CNAME lookup was disabled, and then returns the parameters as a tuple. + """ + domain = dns.resolver.zone_for_name(name).to_text(True) + nameservers = Provider._get_nameservers(domain) cname = None - if not concatenate: - name = self._fqdn_name(name) if name else domain+'.' - domain, nameservers = self._get_dns(domain, name) - else: - concat, max_concats, name = 0, 10, self._fqdn_name(name) - while concatenate: - if concat >= max_concats: - LOGGER.error('Hetzner => Record %s has more than %d concatenated CNAME ' - 'entries. Reduce the amount of CNAME concatenations!', - name, max_concats) - raise AssertionError - qname = cname if cname else name - domain, nameservers = self._get_dns(domain, qname) - rrset = self._dns_lookup(qname, 'CNAME') - if rrset: - concat += 1 - cname = rrset[0].to_text() - else: - concatenate = False + links, max_links = 0, 5 + while link: + if links >= max_links: + LOGGER.error('Hetzner => Record %s has more than %d linked CNAME ' + 'records. Reduce the amount of CNAME links!', + name, max_links) + raise AssertionError + qname = cname if cname else name + rrset = Provider._dns_lookup(qname, 'CNAME', nameservers) + if rrset: + links += 1 + cname = rrset[0].to_text() + qdomain = dns.resolver.zone_for_name(cname) + if domain != qdomain.to_text(True): + domain = qdomain.to_text(True) + nameservers = Provider._get_nameservers(qdomain) + else: + link = False + if cname: LOGGER.info('Hetzner => Record %s has CNAME %s', name, cname) return domain, nameservers, cname - # Hetzner Helpers - ########################################################################### - @staticmethod - def _extract_domain_id(string, regex): - regex = re.compile(regex) - match = regex.search(string) - if not match: - return False - return str(match.group(1)) + def _link_record(self): + """ + Checks restrictions for use of CNAME lookup and returns a tuple of the + fully qualified record name to lookup and a boolean, if a CNAME lookup + should be done or not. The fully qualified record name is empty if no + record name is specified by this provider. + """ + action = self._get_lexicon_option('action') + identifier = self._get_lexicon_option('identifier') + rdtype = self._get_lexicon_option('type') + name = (self._fqdn_name(self._get_lexicon_option('name')) + if self._get_lexicon_option('name') else None) + link = True if self._get_provider_option('linked') == 'yes' else False + qname = name + if identifier: + rdtype, name, _ = self._parse_identifier(identifier) + qname = qname if qname else name + if action != 'list' and rdtype in ('A', 'AAAA', 'TXT') and name and link: + if action != 'update' or name == qname: + LOGGER.info('Hetzner => Enable CNAME lookup ' + '(see --linked parameter)') + return qname, True + LOGGER.info('Hetzner => Disable CNAME lookup ' + '(see --linked parameter)') + return qname, False + + def _propagated_record(self, rdtype, name, content, nameservers=None): + """ + If the publicly propagation check should be done, waits until the domain nameservers + responses with the propagated record type, name & content and returns a boolean, + if the publicly propagation was successful or not. + """ + latency = self._get_provider_option('latency') + propagated = True if self._get_provider_option('propagated') == 'yes' else False + if propagated: + retry, max_retry = 0, 20 + while retry < max_retry: + for rdata in Provider._dns_lookup(name, rdtype, nameservers): + if content == rdata.to_text(): + return True + retry += 1 + LOGGER.info('Hetzner => Record is not propagated, retry (%d remaining) ' + 'after %ds...', (max_retry - retry), latency) + time.sleep(latency) + return False - @staticmethod - def _extract_hidden_data(dom): - input_tags = dom.find_all('input', attrs={'type': 'hidden'}) - data = {} - for input_tag in input_tags: - data[input_tag['name']] = input_tag['value'] - return data + ############################################################################### + # Hetzner API helpers + ############################################################################### @staticmethod def _filter_dom(dom, filters, last_find_all=False): - if isinstance(dom, six.string_types): + """ + If not exists, creates an DOM from a given session response, then filters the DOM + via given API filters and returns the filtered DOM. The DOM is empty if the filters + have no match. + """ + if isinstance(dom, string_types): dom = BeautifulSoup(dom, 'html.parser') for idx, find in enumerate(filters, start=1): if not dom: break - name, attrs = find.get('name', None), find.get('attrs', {}) + name, attrs = find.get('name'), find.get('attrs', {}) if len(filters) == idx and last_find_all: dom = dom.find_all(name, attrs=attrs) if name else dom.find_all(attrs=attrs) else: dom = dom.find(name, attrs=attrs) if name else dom.find(attrs=attrs) return dom + @staticmethod + def _extract_hidden_data(dom): + """ + Extracts hidden input data from DOM and returns the data as dictionary. + """ + input_tags = dom.find_all('input', attrs={'type': 'hidden'}) + data = {} + for input_tag in input_tags: + data[input_tag['name']] = input_tag['value'] + return data + + @staticmethod + def _extract_domain_id(string, regex): + """ + Extracts domain ID from given string and returns the domain ID. + """ + regex = re.compile(regex) + match = regex.search(string) + if not match: + return False + return str(match.group(1)) + + @contextmanager + def _session(self, domain, domain_id=None, get_zone=True): + """ + Generates, authenticates and exits session to Hetzner account, and + provides tuple of additional needed domain data (domain nameservers, + zone and linked record name) to public methods. The tuple parameters + are empty if not existent or specified. Exits session and raises error + if provider fails during session. + """ + name, link = self._link_record() + qdomain, nameservers, cname = Provider._get_dns_cname((name if name else domain+'.'), link) + qdomain_id, zone = domain_id, None + self.session = self._auth_session(self.username, self.password) + try: + if not domain_id or qdomain != domain: + qdomain_id = self._get_domain_id(qdomain) + if qdomain == domain: + self.domain_id = qdomain_id + if get_zone: + zone = self._get_zone(qdomain, qdomain_id) + yield {'nameservers': nameservers, 'zone': zone, 'cname': cname} + except Exception as exc: + raise exc + finally: + self._exit_session() + def _auth_session(self, username, password): + """ + Creates session to Hetzner account, authenticates with given credentials and + returns the session, if authentication was successful. Otherwise raises error. + """ api = self.api[self.account]['auth'] endpoint = api.get('endpoint', self.api[self.account]['endpoint']) session = requests.Session() @@ -519,68 +628,56 @@ def _auth_session(self, username, password): return session def _exit_session(self): + """ + Exits session to Hetzner account and returns. + """ api = self.api[self.account] response = self._get(api['exit']['GET']['url']) if not Provider._filter_dom(response.text, api['filter']): LOGGER.info('Hetzner => Exit session') else: - LOGGER.error('Hetzner => Unable to savely exit session') + LOGGER.warning('Hetzner => Unable to exit session') + self.session= None return True - - @contextmanager - def _session(self, domain=None): - name, concatenate = self._concatenate() - self.domain, self.nameservers, self.cname = self._get_dns_cname(self.domain, name, - concatenate) - self.session = self._auth_session(self.username, self.password) - try: - if self.domain != domain: - self.domain_id = self._get_domain_id(self.domain) - if domain: - self.zone = self._get_zone(self.domain, self.domain_id) - except Exception as exc: - self._exit_session() - self.session, self.nameservers, self.cname, self.zone = None, None, None, None - raise exc - yield - self._exit_session() - self.session, self.nameservers, self.cname, self.zone = None, None, None, None - + def _get_domain_id(self, domain): + """ + Pulls all domains managed by authenticated Hetzner account, extracts their IDs + and returns the ID for the current domain, if exists. Otherwise raises error. + """ api = self.api[self.account]['domain_id'] qdomain = dns.name.from_text(domain).to_unicode(True) - qdomain_id, domains, last_count, page = None, {}, -1, 1 - while (last_count != len(domains) and qdomain_id is None): + domains, last_count, page = {}, -1, 0 + while last_count != len(domains): last_count = len(domains) - request = api['GET'].copy() - url = request.get('url', '/').replace('', str(page)) - params = request.get('params', {}) + page += 1 + url = (api['GET'].copy()).get('url', '/').replace('', str(page)) + params = api['GET'].get('params', {}).copy() for param in params: params[param] = params[param].replace('', str(page)) response = self._get(url, query_params=params) domain_tags = Provider._filter_dom(response.text, api['filter'], True) for domain_tag in domain_tags: - exp_domain_tag = dict(domain_tag.attrs)[api['id']['attr']] - domain_id = Provider._extract_domain_id(exp_domain_tag, api['id']['regex']) + domain_id = Provider._extract_domain_id(dict(domain_tag.attrs)[api['id']['attr']], + api['id']['regex']) domain = (Provider._filter_dom(domain_tag, api['domain']) .renderContents().decode('UTF-8')) domains[domain] = domain_id if domain == qdomain: - qdomain_id = domain_id - break - page += 1 - if qdomain_id is None: - LOGGER.error('Hetzner => ID for domain %s does not exists', qdomain) - raise AssertionError - LOGGER.info('Hetzner => Get ID %s for domain %s', qdomain_id, qdomain) - return qdomain_id + LOGGER.info('Hetzner => Get ID %s for domain %s', domain_id, qdomain) + return domain_id + LOGGER.error('Hetzner => ID for domain %s does not exists', qdomain) + raise AssertionError def _get_zone(self, domain, domain_id): + """ + Pulls the zone for the current domain from authenticated Hetzner account and + returns it as an zone object. + """ api = self.api[self.account] for request in api['zone']['GET']: - request = request.copy() - url = request.get('url', '/').replace('', domain_id) - params = request.get('params', {}) + url = (request.copy()).get('url', '/').replace('', domain_id) + params = request.get('params', {}).copy() for param in params: params[param] = params[param].replace('', domain_id) response = self._get(url, query_params=params) @@ -590,26 +687,31 @@ def _get_zone(self, domain, domain_id): hidden = Provider._extract_hidden_data(dom) zone = {'data': dns.zone.from_text(zone_file, origin=domain, relativize=False), 'hidden': hidden} - LOGGER.info('Hetzner => Get data for domain ID %s', domain_id) + LOGGER.info('Hetzner => Get zone for domain %s', domain) return zone - def _post_zone(self): + def _post_zone(self, zone): + """ + Pushes updated zone for current domain to authenticated Hetzner account and + returns a boolean, if update was successful or not. Furthermore, waits until + the zone has been taken over, if it is a Hetzner Robot account. + """ api = self.api[self.account]['zone'] - data = self.zone['hidden'] - data[api['file']] = self.zone['data'].to_text(relativize=True) + data = zone['hidden'] + data[api['file']] = zone['data'].to_text(relativize=True) response = self._post(api['POST']['url'], data=data) if Provider._filter_dom(response.text, api['filter']): - LOGGER.error('Hetzner => Unable to update data for domain ID %s: Syntax error\n\n%s', - self.domain_id, - self.zone['data'].to_text(relativize=True).decode('UTF-8')) + LOGGER.error('Hetzner => Unable to update zone for domain %s: Syntax error\n\n%s', + zone['data'].origin.to_unicode(True), + zone['data'].to_text(relativize=True).decode('UTF-8')) return False - LOGGER.info('Hetzner => Update data for domain ID %s\n\n%s', - self.domain_id, - self.zone['data'].to_text(relativize=True).decode('UTF-8')) + LOGGER.info('Hetzner => Update zone for domain %s\n\n%s', + zone['data'].origin.to_unicode(True), + zone['data'].to_text(relativize=True).decode('UTF-8')) if self.account == 'robot': latency = self._get_provider_option('latency') - LOGGER.info('Hetzner => Wait %ds until Hetzner Robot has took over data...', + LOGGER.info('Hetzner => Wait %ds until Hetzner Robot has taken over zone...', latency) time.sleep(latency) return True From b26ae0087f004d5d578e6457c75e919681b9af72 Mon Sep 17 00:00:00 2001 From: Brian Rimek Date: Fri, 14 Dec 2018 01:07:34 +0100 Subject: [PATCH 18/21] Fixed pylint --- lexicon/providers/hetzner.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/lexicon/providers/hetzner.py b/lexicon/providers/hetzner.py index 77c7e7f83..6b7377dc0 100644 --- a/lexicon/providers/hetzner.py +++ b/lexicon/providers/hetzner.py @@ -147,7 +147,7 @@ def __init__(self, config): } } } - self.session= None + self.session = None self.account = self._get_provider_option('auth_account') if self.account in (None, 'robot', 'konsoleh'): @@ -228,7 +228,7 @@ def update_record(self, identifier=None, type=None, name=None, content=None): content = content if content else dcontent else: LOGGER.warning('Hetzner => Record with identifier \'%s\' does not exist', - identifier) + identifier) return False elif type and name and content: @@ -296,7 +296,7 @@ def delete_record(self, identifier=None, type=None, name=None, content=None): LOGGER.info('Hetzner => Record with identifier \'%s\' does not exist', identifier) return True - + name = ddata['cname'] if ddata['cname'] else (self._fqdn_name(name) if name else None) records = self._list_records(ddata['zone']['data'], type, name, content) if records: @@ -372,7 +372,7 @@ def _convert_content(self, rdtype, content): def _list_records(self, zone, rdtype=None, name=None, content=None): """ Iterates over all records of the zone and returns a list of records filtered - by record type, name and content. The list is empty if no records found. + by record type, name and content. The list is empty if no records found. """ records = [] rrsets = zone.iterate_rdatasets() if zone else [] @@ -458,7 +458,7 @@ def _get_dns_cname(name, link=False): """ Looks for associated domain zone, nameservers and linked record name until no more linked record name was found for the given fully qualified record name or - the CNAME lookup was disabled, and then returns the parameters as a tuple. + the CNAME lookup was disabled, and then returns the parameters as a tuple. """ domain = dns.resolver.zone_for_name(name).to_text(True) nameservers = Provider._get_nameservers(domain) @@ -467,8 +467,8 @@ def _get_dns_cname(name, link=False): while link: if links >= max_links: LOGGER.error('Hetzner => Record %s has more than %d linked CNAME ' - 'records. Reduce the amount of CNAME links!', - name, max_links) + 'records. Reduce the amount of CNAME links!', + name, max_links) raise AssertionError qname = cname if cname else name rrset = Provider._dns_lookup(qname, 'CNAME', nameservers) @@ -637,9 +637,9 @@ def _exit_session(self): LOGGER.info('Hetzner => Exit session') else: LOGGER.warning('Hetzner => Unable to exit session') - self.session= None + self.session = None return True - + def _get_domain_id(self, domain): """ Pulls all domains managed by authenticated Hetzner account, extracts their IDs From c35b7c0f8376516eb2916f93384129900edcde53 Mon Sep 17 00:00:00 2001 From: Brian Rimek Date: Fri, 14 Dec 2018 01:16:57 +0100 Subject: [PATCH 19/21] Fixes last pylint warning --- lexicon/providers/hetzner.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lexicon/providers/hetzner.py b/lexicon/providers/hetzner.py index 6b7377dc0..270323a04 100644 --- a/lexicon/providers/hetzner.py +++ b/lexicon/providers/hetzner.py @@ -468,7 +468,7 @@ def _get_dns_cname(name, link=False): if links >= max_links: LOGGER.error('Hetzner => Record %s has more than %d linked CNAME ' 'records. Reduce the amount of CNAME links!', - name, max_links) + name, max_links) raise AssertionError qname = cname if cname else name rrset = Provider._dns_lookup(qname, 'CNAME', nameservers) From 9caf5032cceb6568fc3c9cd6ee53dc49829b3979 Mon Sep 17 00:00:00 2001 From: Brian Rimek Date: Fri, 14 Dec 2018 13:54:44 +0100 Subject: [PATCH 20/21] Edits log output --- lexicon/providers/hetzner.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/lexicon/providers/hetzner.py b/lexicon/providers/hetzner.py index 270323a04..e18871e64 100644 --- a/lexicon/providers/hetzner.py +++ b/lexicon/providers/hetzner.py @@ -13,7 +13,6 @@ # Due to optional requirement try: from bs4 import BeautifulSoup - import dns.exception import dns.resolver import dns.zone except ImportError: @@ -501,9 +500,8 @@ def _link_record(self): qname = name if identifier: rdtype, name, _ = self._parse_identifier(identifier) - qname = qname if qname else name if action != 'list' and rdtype in ('A', 'AAAA', 'TXT') and name and link: - if action != 'update' or name == qname: + if action != 'update' or name == qname or not qname: LOGGER.info('Hetzner => Enable CNAME lookup ' '(see --linked parameter)') return qname, True @@ -524,10 +522,11 @@ def _propagated_record(self, rdtype, name, content, nameservers=None): while retry < max_retry: for rdata in Provider._dns_lookup(name, rdtype, nameservers): if content == rdata.to_text(): + LOGGER.info('Hetzner => Record %s has %s %s', name, rdtype, content) return True retry += 1 - LOGGER.info('Hetzner => Record is not propagated, retry (%d remaining) ' - 'after %ds...', (max_retry - retry), latency) + LOGGER.info('Hetzner => Record is not propagated, retry (-%d) in %ds...', + (max_retry - retry), latency) time.sleep(latency) return False @@ -706,9 +705,8 @@ def _post_zone(self, zone): zone['data'].to_text(relativize=True).decode('UTF-8')) return False - LOGGER.info('Hetzner => Update zone for domain %s\n\n%s', - zone['data'].origin.to_unicode(True), - zone['data'].to_text(relativize=True).decode('UTF-8')) + LOGGER.info('Hetzner => Update zone for domain %s', + zone['data'].origin.to_unicode(True)) if self.account == 'robot': latency = self._get_provider_option('latency') LOGGER.info('Hetzner => Wait %ds until Hetzner Robot has taken over zone...', From 290380bc32ffbe8010bb8d01920dd2ef652fdf07 Mon Sep 17 00:00:00 2001 From: Brian Rimek Date: Fri, 14 Dec 2018 20:25:16 +0100 Subject: [PATCH 21/21] Added provider info to README.md --- README.md | 1 + lexicon/providers/hetzner.py | 9 +++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 5269d3a55..7385711d3 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,7 @@ The current supported providers are: - GoDaddy ([docs](https://developer.godaddy.com/getstarted#access)) - Google Cloud DNS ([docs](https://cloud.google.com/dns/api/v1/)) - Hurricane Electric DNS ([docs](https://dns.he.net/)) +- Hetzner ([docs](https://wiki.hetzner.de/index.php/DNS_Zonendatei/en)) - Internet.bs ([docs](https://internetbs.net/ResellerRegistrarDomainNameAPI)) - INWX ([docs](https://www.inwx.de/en/offer/api)) - Linode ([docs](https://www.linode.com/api/dns)) diff --git a/lexicon/providers/hetzner.py b/lexicon/providers/hetzner.py index e18871e64..6d3ea5815 100644 --- a/lexicon/providers/hetzner.py +++ b/lexicon/providers/hetzner.py @@ -27,7 +27,7 @@ def ProviderParser(subparser): subparser.add_argument('--auth-account', help='specify type of Hetzner account: by default Hetzner Robot ' - '(robot) or Hetzner KonsoleH (konsoleh)') + '(robot) or Hetzner konsoleH (konsoleh)') subparser.add_argument('--auth-username', help='specify username of Hetzner account') subparser.add_argument('--auth-password', help='specify password of Hetzner account') subparser.add_argument('--linked', @@ -54,7 +54,7 @@ class Provider(BaseProvider): """ Implements the Hetzner DNS Provider. There are two variants to manage DNS records on Hetzner: Hetzner Robot or - Hetzner KonsoleH. Both do not provide a common API, therefore this provider + Hetzner konsoleH. Both do not provide a common API, therefore this provider implements missing read and write methods in a generic way. For editing DNS records on Hetzner, this provider manipulates and replaces the whole DNS zone. Furthermore, there is no unique identifier to each record in the way that Lexicon @@ -525,8 +525,9 @@ def _propagated_record(self, rdtype, name, content, nameservers=None): LOGGER.info('Hetzner => Record %s has %s %s', name, rdtype, content) return True retry += 1 - LOGGER.info('Hetzner => Record is not propagated, retry (-%d) in %ds...', - (max_retry - retry), latency) + retry_log = (', retry ({}/{}) in {}s...'.format((retry + 1), max_retry, latency) + if retry < max_retry else '') + LOGGER.info('Hetzner => Record is not propagated%s', retry_log) time.sleep(latency) return False