def _change_resource_record_sets(self, change_set, comment=None): """ Given a ChangeSet, POST it to the Route53 API. .. note:: You probably shouldn't be using this method directly, as there are convenience methods on the ResourceRecordSet sub-classes. :param change_set.ChangeSet change_set: The ChangeSet object to create the XML doc from. :keyword str comment: An optional comment to go along with the request. :rtype: dict :returns: A dict of change info, which contains some details about the request. """ body = xml_generators.change_resource_record_set_writer( connection=self, change_set=change_set, comment=comment ) root = self._send_request( path='hostedzone/%s/rrset' % change_set.hosted_zone_id, data=body, method='POST', ) e_change_info = root.find('./{*}ChangeInfo') if e_change_info is None: error = root.find('./{*}Error').find('./{*}Message').text raise Route53Error(error) return parse_change_info(e_change_info)
def created_hosted_zone_parser(root, connection): """ Parses the API responses for the :py:meth:`route53.connection.Route53Connection.create_hosted_zone` method. :param lxml.etree._Element root: The root node of the etree parsed response from the API. :param Route53Connection connection: The connection instance used to query the API. :rtype: HostedZone :returns: The newly created HostedZone. """ zone = root.find('./{*}HostedZone') # This pops out a HostedZone instance. hosted_zone = parse_hosted_zone(zone, connection) # Now we'll fill in the nameservers. e_delegation_set = root.find('./{*}DelegationSet') # Modifies the HostedZone in place. parse_delegation_set(hosted_zone, e_delegation_set) # With each CreateHostedZone request, there's some details about the # request's ID, status, and submission time. We'll return this in a tuple # just for the sake of completeness. e_change_info = root.find('./{*}ChangeInfo') # Translate the ChangeInfo values to a dict. change_info = parse_change_info(e_change_info) return hosted_zone, change_info
def created_hosted_zone_parser(root, connection): """ Parses the API responses for the :py:meth:`route53.connection.Route53Connection.create_hosted_zone` method. :param lxml.etree._Element root: The root node of the etree parsed response from the API. :param Route53Connection connection: The connection instance used to query the API. :rtype: HostedZone :returns: The newly created HostedZone. """ zone = root.find('./{*}HostedZone') # This pops out a HostedZone instance. hosted_zone = parse_hosted_zone(zone, connection) # Now we'll fill in the nameservers. e_delegation_set = root.find('./{*}DelegationSet') # Modifies the HostedZone in place. parse_delegation_set(hosted_zone, e_delegation_set) # With each CreateHostedZone request, there's some details about the # request's ID, status, and submission time. We'll return this in a tuple # just for the sake of completeness. e_change_info = root.find('./{*}ChangeInfo') # Translate the ChangeInfo values to a dict. change_info = parse_change_info(e_change_info) return hosted_zone, change_info
def _change_resource_record_sets(self, change_set, comment=None): """ Given a ChangeSet, POST it to the Route53 API. .. note:: You probably shouldn't be using this method directly, as there are convenience methods on the ResourceRecordSet sub-classes. :param change_set.ChangeSet change_set: The ChangeSet object to create the XML doc from. :keyword str comment: An optional comment to go along with the request. :rtype: dict :returns: A dict of change info, which contains some details about the request. """ body = xml_generators.change_resource_record_set_writer( connection=self, change_set=change_set, comment=comment) root = self._send_request( path='hostedzone/%s/rrset' % change_set.hosted_zone_id, data=body, method='POST', ) #print(prettyprint_xml(root)) e_change_info = root.find('./{*}ChangeInfo') if e_change_info is None: error = root.find('./{*}Error').find('./{*}Message').text raise Route53Error(error) return parse_change_info(e_change_info)
def delete_hosted_zone_by_id_parser(root, connection): """ Parses the API responses for the :py:meth:`route53.connection.Route53Connection.delete_hosted_zone_by_id` method. :param lxml.etree._Element root: The root node of the etree parsed response from the API. :param Route53Connection connection: The connection instance used to query the API. :rtype: dict :returns: Details about the deletion. """ e_change_info = root.find('./{*}ChangeInfo') return parse_change_info(e_change_info)
def delete_hosted_zone_by_id_parser(root, connection): """ Parses the API responses for the :py:meth:`route53.connection.Route53Connection.delete_hosted_zone_by_id` method. :param lxml.etree._Element root: The root node of the etree parsed response from the API. :param Route53Connection connection: The connection instance used to query the API. :rtype: dict :returns: Details about the deletion. """ e_change_info = root.find("./{*}ChangeInfo") return parse_change_info(e_change_info)