Zone class - Platform - BlueCat Gateway - 20.1.1

Gateway Administration Guide

prodname
BlueCat Gateway
version_custom
20.1.1

DNS zone object.

class zone.Zone(api, api_entity)

Bases: bluecat.dns.DNS

Instantiate a DNS zone object.

Parameter Description
api API instance used by the entity to communicate with BAM.
api_entity The entity returned by the BAM API.

ALLOW_QUERY= 'allow-query'

add_alias_record(name, linked_record, ttl=1, properties='')

Adds a new CNAME record for an existing host record. This method adds the record under a zone.

Parameter Description
name The name of the alias record you want to add to this zone.
linked_record The name of the record to which this alias will link.
ttl The time-to-live value (TTL) for the record. The TTL is ignored by default.
properties Adds object properties, including comments and user-defined fields.
Returns: An instance of alias_record.
Example:
api = g.user.get_api()                  # get api object
configuration_name = 'test_config'      # configuration name
view_name = 'test_view'                 # view name
zone_name = 'test_zone'                 # zone name

configuration = api.get_configuration(configuration_name)
view = configuration.get_view(view_name)
zone = view.get_zone(zone_name)

alias_record = zone.add_alias_record('test_alias', 'test_host_record.test_zone')

add_dns_deployment_option(dns_option, value, properties='')

Parameter Description
dns_option The name of the DNS option being added.
value The value being assigned to the option.
properties Adds object properties, including comments and user-defined fields.
Returns: Instance of the DNSOption added.

add_dns_deployment_role(server_interface, role_type, properties='')

Adds a DNS deployment role to a specified object.

Parameter Description
server_interface The object ID/server interface object to which the role is to be added.
role_type The type of DNS role to be added. The type must be one of: NONE MASTER MASTER_HIDDEN SLAVE SLAVE_STEALTH FORWARDER STUB RECURSION AD_MASTER.
properties Adds object properties, including the view associated with this DNS deployment role and user-defined fields.
Returns: Added DNS deployment role object.

add_generic_record(name, record_type, rdata, ttl=1, properties='')

Adds a new generic record of a specified type.
Parameter Description
name The name of the generic record you want to add to this zone.
record_type The type of record. The valid values for this parameter are the generic resource record types supported in Address Manager: A6, AAAA, AFSDB, APL, CERT, DNAME, DNSKEY, DS, ISDN, KEY, KX, LOC, MB, MG, MINFO, MR, NS, NSAP, PX, RP, RT, SINK, SSHFP, WKS, and X25.
rdata

The data for the resource record in BIND format. For example, for A records: A 10.0.0.4.

ttl The time-to-live (TTL) value for the record. The TTL is ignored by default.
properties Adds object properties, including comments and user-defined fields.
Returns: An instance of generic_record.
Example:
api = g.user.get_api()                  # get api object
configuration_name = 'test_config'      # configuration name
view_name = 'test_view'                 # view name
zone_name = 'test_zone'                 # zone name

configuration = api.get_configuration(configuration_name)
view = configuration.get_view(view_name)
zone = view.get_zone(zone_name)

generic_record = zone.add_generic_record('test_generic_record', 'A', 
'10.0.0.222')

add_hinfo_record(name, cpu, os, ttl=1, properties='')

Adds a new Host Info (HINFO) record.
Parameter Description
name The name of the HINFO record you want to add to this zone.
cpu A string providing the central processing unit information.
os

A string providing the operating system information.

ttl The time-to-live value (TTL) for the record. The TTL is ignored by default.
properties Adds object properties, including comments and user-defined fields.
Returns: An instance of host_info_record.
Example:
api = g.user.get_api()                  # get api object
configuration_name = 'test_config'      # configuration name
view_name = 'test_view'                 # view name
zone_name = 'test_zone'                 # zone name

configuration = api.get_configuration(configuration_name)
view = configuration.get_view(view_name)
zone = view.get_zone(zone_name)

hinfo_record = zone.add_hinfo_record('test_hinfo_record', 'cpu1', 'windows7')

add_host_record(name, addresses, ttl=1, properties='')

Adds a Host record.
Parameter Description
name The name of the host record you want to add to this zone.
addresses A list of comma-separated IP addresses. For example, 10.0.0.5,130.4.5.2.
ttl The time-to-live value (TTL) for the record. The TTL is ignored by default.
properties Adds object properties, including comments and user-defined fields.
Returns: An instance of hostRecord.
Example:
api = g.user.get_api()                  # get api object
configuration_name = 'test_config'      # configuration name
view_name = 'test_view'                 # view name
zone_name = 'test_zone'                 # zone name

configuration = api.get_configuration(configuration_name)
view = configuration.get_view(view_name)
zone = view.get_zone(zone_name)

host_record = zone.add_host_record('new', ['172.27.19.102'])

add_mx_record(name, priority, linked_record_name, ttl=1, properties='')

Adds a new Mail Exchanger (MX) record.
Parameter Description
name The name of the MX record you want to add to this zone.
priority

Specifies which mail server to send clients to first when multiple matching MX records are present. Multiple MX records with equal priority values are referred to in a round-robin fashion.

ttl The time-to-live value (TTL) for the record. The TTL is ignored by default.
properties Adds object properties, including comments and user-defined fields.
Returns: An instance of mx_record.
Example:
code:: python

api = g.user.get_api()                  # get api object
configuration_name = 'test_config'      # configuration name
view_name = 'test_view'                 # view name
zone_name = 'test_zone'                 # zone name

configuration = api.get_configuration(configuration_name)
view = configuration.get_view(view_name)
zone = view.get_zone(zone_name)

mx_record = zone.add_mx_record('test_name', 1, 'host_record.test.zone')

add_naptr_record(name, order, preference, service, regexp, replacement, flags, ttl=1, properties='')

Adds a new NAPTR record.
Parameter Description
name The name of the NAPTR record you want to add to this zone.
order

Specifies the order in which NAPTR records are read if several are present and are possible matches. The lower order value takes precedence.

preference

Specifies the order in which NAPTR records are read if the order values are the same in multiple records. The lower preference value takes precedence.

service

Specifies the service used for the NAPTR record. The valid values for this parameter are listed in ENUM Services on page 192 in the Address Manager Administration Guide.

regexp

A regular expression, enclosed in double quotation marks, used to transform the client data. If a regular expression is not specified, a domain name must be specified in the replacement parameter.

replacement

Specifies a domain name as an alternative to the regexp. This parameter replaces client data with a domain name.

flags An optional parameter used to set flag values for the record.
ttl The time-to-live (TTL) value for the record. The TTL is ignored by default.
properties Adds object properties, including comments and user-defined fields.
Returns: An instance of naptr_record.
Example:
api = g.user.get_api()                  # get api object
configuration_name = 'test_config'      # configuration name
view_name = 'test_view'                 # view name
zone_name = 'test_zone'                 # zone name

configuration = api.get_configuration(configuration_name)
view = configuration.get_view(view_name)
zone = view.get_zone(zone_name)

naptr_record = zone.add_naptr_record('test_naptr', order=1, preference=1, 
service='voice_tel', regexp='*', replacement=TEST_ZONE, flags='' )

add_resource_record(name, record_type, rdata, ttl=1, properties='')

Generic method for adding resource records of any type.
Parameter Description
name The name of the resource record you want to add to this zone.
record_type
The type of record. Supported types using this method:
  • AliasRecord

  • HINFORecord

  • HostRecord

  • MXRecord

  • TXTRecord

rdata The data for the resource record in BIND format. For example, for A records: A 10.0.0.4. You can specify either a single IPv4 or IPv6 address for the record.
ttl

The time-to-live value (TTL) for the record.

properties Adds object properties, including comments and user-defined fields.
Returns: An instance of the resource record type that was added.
Example:
api = g.user.get_api()              # get api object
configuration_name = 'test_config'  # configuration name
view_name = 'test_view'             # view name
zone_name = 'test_zone'             # zone name

configuration = api.get_configuration(configuration_name)
view = configuration.get_view(view_name)
zone = view.get_zone(zone_name)

resource_record = zone.add_resource_record('test_name', zone.AliasRecord, 10.0.0.2)

add_srv_record(name, priority, port, weight, linked_record_name, ttl=1, properties='')

Adds a new SRV record. This method adds the record under a zone.
Parameter Description
name The name of the SRV record you want to add to this zone.
priority Specifies which SRV record to use when multiple matching SRV records are present. The record with the lowest value takes precedence.
port

The TCP/UDP port on which the service is available.

weight

If two matching SRV records within a zone have equal priority, the weight value is analyzed. If the weight value for one object is higher than the other,the record with the highest weight has its resource records returned first.

linked_record_name

The FQDN of the host record to which this SRV record is linked.

ttl The time-to-live (TTL) value for the record. The TTL is ignored by default.
properties Adds object properties, including comments and user-defined fields.
Returns: An instance of srv_record.
Example:
api = g.user.get_api()                  # get api object
configuration_name = 'test_config'      # configuration name
view_name = 'test_view'                 # view name
zone_name = 'test_zone'                 # zone name

configuration = api.get_configuration(configuration_name)
view = configuration.get_view(view_name)
zone = view.get_zone(zone_name)

srv_record = zone.add_srv_record('test_srv_record', 1, 500, 1, 
'test_host_record.test_zone')

add_text_record(name, txt, ttl=1, properties='')

Adds a new TXT record. This method adds the record under a zone.
Parameter Description
name The name of the TXT record you want to add to this zone.
txt

The text data for the record.

ttl

The time-to-live (TTL) value for the record. The TTL is ignored by default.

properties Adds object properties, including comments and user-defined fields.
Returns: An instance of text_record.
Example:
api = g.user.get_api()                  # get api object
configuration_name = 'test_config'      # configuration name
view_name = 'test_view'                 # view name
zone_name = 'test_zone'                 # zone name

configuration = api.get_configuration(configuration_name)
view = configuration.get_view(view_name)
zone = view.get_zone(zone_name)

text_record = zone.add_text_record('test_text_record', 'example')

add_zone(absolute_name, deployable=False, template=0, **kwargs)

Adds DNS zones. You can use . (dot) characters to create the top level domain and subzones.

Parameter Description
absolute_name Fully qualified name of the DNS zone to add (eg. example.com).
deployable Boolean. The default is False.
template ID of the associated network template.
kwargs Keyword arguments of user-defined fields and values.
Returns: Zone instance of the new DNS zone.

assign_or_update_template(template_id, zone_template_reapply_mode=''update")

Assigns, updates, or removes zone network templates. Also specifies the reapply mode for various properties of the template.
Note: The possible values for the reapply mode are:
  • update
  • ignore (default value)
  • overwrite
Parameter Description
template_id (integer, required)

The object ID of the DNS zone template or IPv4 network template. To remove a template, set this value to 0 (zero).

gateway_reapply_mode (string, required)

The reapply mode for the gateway in the template.

reserved_addresses_reapply_mode (string, required) The reapply mode for reserved addresses in the template.
dhcp_ranges_reapply_mode (string, required) The reapply mode for DHCP ranges in the template.
ip_groups_reapply_mode (string, required) The reapply mode for IP groups in the template.
options_reapply_mode (string, required) The reapply mode for options in the template.

Example:

from constants import TemplateValues

api = g.user.get_api()                              # get api object
ip4_network_id = 11111                              # ip4 network id
ip6_object = api.get_entity_by_id(ip4_network_id)
template_id = 12345                                 # the template id to be assigned

ip4_object.assign_or_update_template(template_id, gateway_reapply_mode=TemplateValues.UPDATE,
reserved_addresses_reapply_mode=TemplateValues.IGNORE, dhcp_ranges_reapply_mode=
TemplateValues.OVERWRITE, ip_groups_reapply_mode=TemplateValues.UPDATE, options_reapply_mode=
TemplateValues.OVERWRITE)

get_alias_record(dns_option, server)

Gets an alias record.

Parameter Description
name The name of the alias record.
Returns: An instance of alias_record.

get_configuration()

Return the parent Configuration object.

get_deployment_options(dns_option, server)

Gets the deployment option for the entity.

Parameter Description
option_types The Deployment option type you would like to search. Includes the following types:
  • DNSOption

  • DNSRawOption

  • DHCPRawOption

  • DHCPV6RawOption

  • DHCPV4ClientOption

  • DHCPV6ClientOption

  • DHCPServiceOption

  • DHCPV6ServiceOption

  • VendorClientOption

  • StartOfAuthority

server The server which the deployment option is attached to. There are 3 options:
  • >0—returns only the options that are linked to the specified server ID.

  • <0—returns all options regardless of the server ID specified.

  • =0—returns only the options that are linked to all servers.

get_dns_deployment_option(dns_option, server)

Parameter Description
dns_option The name of the DNS option.
server Specifies the server to which this option is assigned.
Returns: An instance of the type DNSOption that represents the DNS deployment option.

get_dns_deployment_role(server_interface)

Retrieves a DNS deployment role from a specified object.

Parameter Description
server_interface The object ID/server interface object to which the DNS deployment role is assigned.

get_full_name()

Get absolute name.

Returns: The absolute name of the zone.

get_generic_record(name)

Gets a generic record.

Parameter Description
name The name of the generic record.
Returns: An instance of generic_record.

get_hinfo_record(name)

Gets a host info (HINFO) record.

Parameter Description
name The name of the HINFO record.
Returns: An instance of host_info_record.

get_host_record(name)

Gets a host record.

Parameter Description
name The name of the host record.
Returns: An instance of hostRecord.

get_ksk(ksk_format)

Get the Key Signing Key (KSK) associated to a zone.

Parameter Description
ksk_format (string, required) The KSK return type. The following are accepted formats:
  • TRUST_ANCHOR
  • DNS_KEY
  • DS_RECORD

Returns: List of KSKs in string format.

Example:

import constants.DNSSECKeyFormats

api = g.user.get_api()              # get api object
configuration_name = 'test_config'  # configuration name
view_name = 'test_view'             # view name
zone_name = 'test_zone'             # zone name

configuration = api.get_configuration(configuration_name)
view = configuration.get_view(view_name)
zone = view.get_zone(zone_name)

ksk = zone.get_ksk(constants.DNSSECKeyFormats.TRUST_ANCHOR)

get_mx_record(name)

Gets a MX record.

Parameter Description
name The name of the MX record.
Returns: An instance of mx_record.

get_naptr_record(name)

Gets a NAPTR record.

Parameter Description
name The name of the NAPTR record.
Returns: An instance of naptr_record.

get_resource_record(name)

Gets a resource record of the specified type.

Parameter Description
name The FQDN of the resource record.
resource_type The type of resource record.
Returns: An instance of the specified resource record type.

get_server_interface_id()

Returns: Server Interface Id.

get_service()

Returns: DeploymentServices enum service type.

get_srv_record(name)

Gets a SRV record.

Parameter Description
name The name of the SRV record.
Returns: An instance of srv_record.

get_text_record(name)

Gets a text record.

Parameter Description
name The name of the text record.
Returns: An instance of textget_record.

get_zone(name)

Get an immediate child zone by name without dot character.
Parameter Description
name Name of the child zone.
Returns: Instance of the child zone or None.

get_zones_by_hint(hint)

Search for zones by hint under the parent zone. Returns an array of maximum 10 elements of accessible zones under the parent zone.

Parameter Description
hint Partial or full name of the zone.
Returns: The FQDN list of any zones that match the given hint as data in list format.

get_zones()

Get all immediate child zones.

Returns: Iterator for Zone entities.

update_view()

Updates to the current parent view.

Returns: The new updated parent view.