def _ParseDnsSettingsFromFile(path): """Parses dns_settings from a yaml file. Args: path: YAML file path. Returns: Pair (DnsSettings, DnsUpdateMask) or (None, None) if path is None. """ messages = registrations.GetMessagesModule() dns_settings = util.ParseMessageFromYamlFile( path, messages.DnsSettings, 'DNS settings file \'{}\' does not contain valid dns_settings message'. format(path)) if not dns_settings: return None, None update_mask = None if dns_settings.googleDomainsDns is not None: update_mask = DnsUpdateMask(name_servers=True, google_domains_dnssec=True, glue_records=True) elif dns_settings.customDns is not None: update_mask = DnsUpdateMask(name_servers=True, custom_dnssec=True, glue_records=True) else: raise exceptions.Error( 'dnsProvider is not present in DNS settings file \'{}\'.'.format( path)) return dns_settings, update_mask
def _ParseDnsSettingsFromFile(path): """Parses dns_settings from a yaml file. Args: path: YAML file path. Returns: Pair (DnsSettings, DnsUpdateMask) or (None, None) if path is None. """ messages = registrations.GetMessagesModule() dns_settings = util.ParseMessageFromYamlFile( path, messages.DnsSettings, 'DNS settings file \'{}\' does not contain valid dns_settings message'. format(path)) if not dns_settings: return None, None return dns_settings, DnsUpdateMask(dns_provider=True, glue_records=True)
def ParseContactData(path): """Parses contact data from a yaml file.""" messages = registrations.GetMessagesModule() class ContactData(_messages.Message): """Message that should be present in YAML file with contacts data.""" # pylint: disable=invalid-name allContacts = _messages.MessageField(messages.Contact, 1) registrantContact = _messages.MessageField(messages.Contact, 2) adminContact = _messages.MessageField(messages.Contact, 3) technicalContact = _messages.MessageField(messages.Contact, 4) contacts = util.ParseMessageFromYamlFile( path, ContactData, 'Contact data file \'{}\' does not contain valid contact messages'. format(path)) if not contacts: return None parsed_contact = None if contacts.allContacts: for field in ['registrantContact', 'adminContact', 'technicalContact']: if contacts.get_assigned_value(field): raise exceptions.Error( ('Contact data file \'{}\' cannot contain both ' 'allContacts and {} fields.').format(path, field)) parsed_contact = messages.ContactSettings( registrantContact=contacts.allContacts, adminContact=contacts.allContacts, technicalContact=contacts.allContacts) else: parsed_contact = messages.ContactSettings( registrantContact=contacts.registrantContact, adminContact=contacts.adminContact, technicalContact=contacts.technicalContact) return parsed_contact