in libcloud/dns/drivers/zerigo.py [0:0]
def _to_zone_elem(self, domain=None, type=None, ttl=None, extra=None):
zone_elem = ET.Element("zone", {})
if domain:
domain_elem = ET.SubElement(zone_elem, "domain")
domain_elem.text = domain
if type:
ns_type_elem = ET.SubElement(zone_elem, "ns-type")
if type == "master":
ns_type_elem.text = "pri_sec"
elif type == "slave":
if not extra or "ns1" not in extra:
raise LibcloudError(
"ns1 extra attribute is required " + "when zone type is slave",
driver=self,
)
ns_type_elem.text = "sec"
ns1_elem = ET.SubElement(zone_elem, "ns1")
ns1_elem.text = extra["ns1"]
elif type == "std_master":
# TODO: Each driver should provide supported zone types
# Slave name servers are elsewhere
if not extra or "slave-nameservers" not in extra:
raise LibcloudError(
"slave-nameservers extra "
+ "attribute is required whenzone "
+ "type is std_master",
driver=self,
)
ns_type_elem.text = "pri"
slave_nameservers_elem = ET.SubElement(zone_elem, "slave-nameservers")
slave_nameservers_elem.text = extra["slave-nameservers"]
if ttl:
default_ttl_elem = ET.SubElement(zone_elem, "default-ttl")
default_ttl_elem.text = str(ttl)
if extra and "tag-list" in extra:
tags = extra["tag-list"]
tags_elem = ET.SubElement(zone_elem, "tag-list")
tags_elem.text = " ".join(tags)
return zone_elem