File manager - Edit - /opt/saltstack/salt/lib/python3.10/site-packages/libcloud/dns/drivers/__pycache__/dnsimple.cpython-310.pyc
Back
o ;j�% � @ sz d Z dgZzddlZW n ey ddlZY nw ddlmZmZmZ ddl m Z mZ ddlm Z dZG dd� de�ZdS ) z DNSimple DNS Driver �DNSimpleDNSDriver� N)�Zone�Record� DNSDriver)�Provider� RecordType)�DNSimpleDNSConnectioni c @ s� e Zd ZejZdZdZeZ e jde jde j de jde jde jde jd e jd dde jde jd e jde jde jde jdiZdd� Zdd� Zdd� Zdd� Zd.dd�Zd/dd�Zd/d d!�Z d"d#� Z!d$d%� Z"d&d'� Z#d(d)� Z$d*d+� Z%d0d,d-�Z&dS )1r ZDNSimplezhttps://dnsimple.com/�A�AAAA�ALIAS�CNAME�HINFO�MX�NAPTR�NSZPOOL�SOA�SPF�SRV�SSHFP�TXT�URLc C s | j �d�}| �|j�}|S )zU Return a list of zones. :return: ``list`` of :class:`Zone` �/v1/domains)� connection�request� _to_zones�object)�self�response�zones� r �Q/opt/saltstack/salt/lib/python3.10/site-packages/libcloud/dns/drivers/dnsimple.py� list_zones9 s zDNSimpleDNSDriver.list_zonesc C s$ | j �d|j �}| �|j|�}|S )z� Return a list of records for the provided zone. :param zone: Zone to list records for. :type zone: :class:`Zone` :return: ``list`` of :class:`Record` �/v1/domains/%s/records)r r �id�_to_recordsr )r �zoner �recordsr r r �list_recordsD s zDNSimpleDNSDriver.list_recordsc C s | j �d| �}| �|j�}|S )z� Return a Zone instance. :param zone_id: ID of the required zone :type zone_id: ``str`` :rtype: :class:`Zone` �/v1/domains/%s)r r �_to_zoner )r �zone_idr r% r r r �get_zoneQ s zDNSimpleDNSDriver.get_zonec C s( | j �d�||��}| j|j|d�}|S )z� Return a Record instance. :param zone_id: ID of the required zone :type zone_id: ``str`` :param record_id: ID of the required record :type record_id: ``str`` :rtype: :class:`Record` �/v1/domains/{}/records/{})r* )r r �format� _to_recordr )r r* Z record_idr �recordr r r � get_record^ s zDNSimpleDNSDriver.get_record�masterNc C sJ d|i}|dur |� |� t�d|i�}| jjdd|d�}| �|j�}|S )a Create a new zone. :param domain: Zone domain name (e.g. example.com) :type domain: ``str`` :param type: Zone type (All zones are master by design). :type type: ``str`` :param ttl: TTL for new records. (This is not really used) :type ttl: ``int`` :param extra: Extra attributes (driver specific). (optional) :type extra: ``dict`` :rtype: :class:`Zone` For more info, please see: http://developer.dnsimple.com/v1/domains/ �nameN�domainr �POST��method�data)�update�json�dumpsr r r) r ) r r3 �type�ttl�extra�r_json�r_datar r% r r r �create_zonen s zDNSimpleDNSDriver.create_zonec C sX |||d�}|dur|� |� t�d|i�}| jjd|j d|d�}| j|j|d�} | S )a� Create a new record. :param name: Record name without the domain name (e.g. www). Note: If you want to create a record for a base domain name, you should specify empty string ('') for this argument. :type name: ``str`` :param zone: Zone where the requested record is created. :type zone: :class:`Zone` :param type: DNS record type (A, AAAA, ...). :type type: :class:`RecordType` :param data: Data for the record (depends on the record type). :type data: ``str`` :param extra: Extra attributes (driver specific). (optional) :type extra: ``dict`` :rtype: :class:`Record` )r2 �record_type�contentNr/ r"