def _build_record(cmd, data): from azure.mgmt.privatedns.models import AaaaRecord, ARecord, CnameRecord, MxRecord, PtrRecord, SoaRecord, SrvRecord, TxtRecord record_type = data['delim'].lower() try: if record_type == 'aaaa': return AaaaRecord(ipv6_address=data['ip']) if record_type == 'a': return ARecord(ipv4_address=data['ip']) if record_type == 'cname': return CnameRecord(cname=data['alias']) if record_type == 'mx': return MxRecord(preference=data['preference'], exchange=data['host']) if record_type == 'ptr': return PtrRecord(ptrdname=data['host']) if record_type == 'soa': return SoaRecord(host=data['host'], email=data['email'], serial_number=data['serial'], refresh_time=data['refresh'], retry_time=data['retry'], expire_time=data['expire'], minimum_ttl=data['minimum']) if record_type == 'srv': return SrvRecord(priority=int(data['priority']), weight=int(data['weight']), port=int(data['port']), target=data['target']) if record_type in ['txt', 'spf']: text_data = data['txt'] return TxtRecord(value=text_data) if isinstance( text_data, list) else TxtRecord(value=[text_data]) except KeyError as ke: raise CLIError("The {} record '{}' is missing a property. {}".format( record_type, data['name'], ke))
def remove_privatedns_mx_record(cmd, resource_group_name, private_zone_name, relative_record_set_name, preference, exchange, keep_empty_record_set=False): from azure.mgmt.privatedns import PrivateDnsManagementClient from azure.mgmt.privatedns.models import MxRecord client = get_mgmt_service_client(cmd.cli_ctx, PrivateDnsManagementClient).record_sets record = MxRecord(preference=int(preference), exchange=exchange) record_type = 'mx' return _privatedns_remove_record(client, record, record_type, relative_record_set_name, resource_group_name, private_zone_name, keep_empty_record_set=keep_empty_record_set)