summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPetr Voborník <pvoborni@redhat.com>2012-01-19 10:28:44 +0100
committerEndi S. Dewata <edewata@redhat.com>2012-01-30 17:47:20 -0600
commit0021ce57b94d050948ad3683fcafa48b6fdf162f (patch)
tree3d3adfbf8c50de574b120cbdc36ca0b6572bd590
parentcb557e0b88476bea0fb491cffdd0f626dac8e428 (diff)
downloadfreeipa.git-0021ce57b94d050948ad3683fcafa48b6fdf162f.tar.gz
freeipa.git-0021ce57b94d050948ad3683fcafa48b6fdf162f.tar.xz
freeipa.git-0021ce57b94d050948ad3683fcafa48b6fdf162f.zip
Modifying DNS UI to benefit from new DNS API
DNS UI was modified to offer structured way of defining DNS records. https://fedorahosted.org/freeipa/ticket/2208
-rw-r--r--install/ui/dns.js1316
-rw-r--r--install/ui/field.js4
-rw-r--r--install/ui/ipa.css12
-rw-r--r--install/ui/ipa.js16
-rw-r--r--install/ui/test/data/dnsrecord_add.json63
-rw-r--r--install/ui/test/data/dnsrecord_del.json66
-rw-r--r--install/ui/test/data/dnsrecord_show.json80
-rw-r--r--install/ui/test/data/ipa_init.json2
-rw-r--r--install/ui/test/data/ipa_init_objects.json3889
-rw-r--r--install/ui/widget.js59
-rw-r--r--ipalib/plugins/internal.py2
11 files changed, 5247 insertions, 262 deletions
diff --git a/install/ui/dns.js b/install/ui/dns.js
index d23eca3a..d30cc312 100644
--- a/install/ui/dns.js
+++ b/install/ui/dns.js
@@ -4,6 +4,7 @@
/* Authors:
* Adam Young <ayoung@redhat.com>
+ * Petr Vobornik <pvoborni@redhat.com>
*
* Copyright (C) 2010 Red Hat
* see file 'COPYING' for use and warranty information
@@ -439,6 +440,16 @@ IPA.dnszone_name_widget = function(spec) {
IPA.widget_factories['dnszone_name'] = IPA.dnszone_name_widget;
+IPA.force_dnszone_add_checkbox_widget = function(spec) {
+ var metadata = IPA.get_command_option('dnszone_add', spec.name);
+ spec.label = metadata.label;
+ spec.tooltip = metadata.doc;
+ return IPA.checkbox_widget(spec);
+};
+
+IPA.widget_factories['force_dnszone_add_checkbox'] = IPA.force_dnszone_add_checkbox_widget;
+IPA.field_factories['force_dnszone_add_checkbox'] = IPA.checkbox_field;
+
IPA.dnszone_adder_dialog = function(spec) {
spec = spec || {};
@@ -536,6 +547,334 @@ IPA.dns.record_search_facet = function(spec) {
return that;
};
+IPA.dns.record_metadata = null;
+IPA.dns.get_record_metadata = function() {
+
+ if (IPA.dns.record_metadata === null) {
+
+ IPA.dns.record_metadata = [
+ {
+ name: 'arecord',
+ attributes: [
+ {
+ name: 'a_part_ip_address',
+ validators: [IPA.ip_v4_address_validator()]
+ }
+ ],
+ columns: ['a_part_ip_address']
+ },
+ {
+ name: 'aaaarecord',
+ attributes: [
+ {
+ name:'aaaa_part_ip_address',
+ validators: [IPA.ip_v6_address_validator()]
+ }
+ ],
+ columns: ['aaaa_part_ip_address']
+ },
+ {
+ name: 'a6record',
+ attributes: [
+ 'a6record'
+ ],
+ columns: ['a6record']
+ },
+ {
+ name: 'afsdbrecord',
+ attributes: [
+ 'afsdb_part_subtype',
+ 'afsdb_part_hostname'
+ ],
+ columns: ['afsdb_part_subtype', 'afsdb_part_hostname']
+ },
+ {
+ name: 'certrecord',
+ attributes: [
+ 'cert_part_type',
+ 'cert_part_key_tag',
+ 'cert_part_algorithm',
+ {
+ name: 'cert_part_certificate_or_crl',
+ type: 'textarea'
+ }
+ ],
+ columns: ['cert_part_type','cert_part_key_tag','cert_part_algorithm']
+ },
+ {
+ name: 'cnamerecord',
+ attributes: [
+ 'cname_part_hostname'
+ ],
+ columns: ['cname_part_hostname']
+ },
+ {
+ name: 'dnamerecord',
+ attributes: [
+ 'dname_part_target'
+ ],
+ columns: ['dname_part_target']
+ },
+ {
+ name: 'dsrecord',
+ attributes: [
+ 'ds_part_key_tag',
+ 'ds_part_algorithm',
+ 'ds_part_digest_type',
+ {
+ name: 'ds_part_digest',
+ type: 'textarea'
+ }
+ ],
+ columns: ['ds_part_key_tag', 'ds_part_algorithm',
+ 'ds_part_digest_type']
+ },
+ {
+ name: 'keyrecord',
+ attributes: [
+ 'key_part_flags',
+ 'key_part_protocol',
+ 'key_part_algorithm',
+ {
+ name: 'key_part_public_key',
+ type: 'textarea'
+ }
+ ],
+ columns: ['key_part_flags', 'key_part_protocol',
+ 'key_part_algorithm']
+ },
+ {
+ name: 'kxrecord',
+ attributes: [
+ 'kx_part_preference',
+ 'kx_part_exchanger'
+ ],
+ columns: ['kx_part_preference', 'kx_part_exchanger']
+ },
+ {
+ name: 'locrecord',
+ attributes: [
+ 'loc_part_lat_deg',
+ 'loc_part_lat_min',
+ 'loc_part_lat_sec',
+ {
+ name: 'loc_part_lat_dir',
+ options: IPA.create_options(['N','S']),
+ type: 'radio',
+ widget_opt: {
+ default_value: 'N'
+ }
+ },
+ 'loc_part_lon_deg',
+ 'loc_part_lon_min',
+ 'loc_part_lon_sec',
+ {
+ name: 'loc_part_lon_dir',
+ options: IPA.create_options(['E','W']),
+ type: 'radio',
+ widget_opt: {
+ default_value: 'E'
+ }
+ },
+ 'loc_part_altitude',
+ 'loc_part_size',
+ 'loc_part_h_precision',
+ 'loc_part_v_precision'
+ ],
+ columns: ['dnsdata']
+ },
+ {
+ name: 'mxrecord',
+ attributes: [
+ 'mx_part_preference',
+ 'mx_part_exchanger'
+ ],
+ columns: ['mx_part_preference', 'mx_part_exchanger']
+ },
+ {
+ name: 'naptrrecord',
+ attributes: [
+ 'naptr_part_order',
+ 'naptr_part_preference',
+ {
+ name: 'naptr_part_flags',
+ type: 'select',
+ options: IPA.create_options(['S', 'A', 'U', 'P'])
+ },
+ 'naptr_part_service',
+ 'naptr_part_regexp',
+ 'naptr_part_replacement'
+ ],
+ adder_attributes: [],
+ columns: ['dnsdata']
+ },
+ {
+ name: 'nsrecord',
+ attributes: [
+ 'ns_part_hostname'
+ ],
+ adder_attributes: [],
+ columns: ['ns_part_hostname']
+ },
+ {
+ name: 'nsecrecord',
+ attributes: [
+ 'nsec_part_next',
+ 'nsec_part_types'
+// TODO: nsec_part_types is multivalued attribute. New selector
+// widget or at least new validator should be created.
+// {
+// name: 'nsec_part_types',
+// options: IPA.create_options(['SOA', 'A', 'AAAA', 'A6', 'AFSDB',
+// 'APL', 'CERT', 'CNAME', 'DHCID', 'DLV', 'DNAME', 'DNSKEY',
+// 'DS', 'HIP', 'IPSECKEY', 'KEY', 'KX', 'LOC', 'MX', 'NAPTR',
+// 'NS', 'NSEC','NSEC3', 'NSEC3PARAM', 'PTR', 'RRSIG', 'RP',
+// 'SIG', 'SPF', 'SRV', 'SSHFP', 'TA', 'TKEY', 'TSIG', 'TXT']),
+// type: 'select'
+// }
+ ],
+ adder_attributes: [],
+ columns: [ 'nsec_part_next', 'nsec_part_types']
+ },
+ {
+ name: 'ptrrecord',
+ attributes: [
+ 'ptr_part_hostname'
+ ],
+ adder_attributes: [],
+ columns: [ 'ptr_part_hostname']
+ },
+ {
+ name: 'rrsigrecord',
+ attributes: [
+ {
+ name: 'rrsig_part_type_covered',
+ type: 'select',
+ options: IPA.create_options(['SOA', 'A', 'AAAA', 'A6', 'AFSDB',
+ 'APL', 'CERT', 'CNAME', 'DHCID', 'DLV', 'DNAME',
+ 'DNSKEY', 'DS', 'HIP', 'IPSECKEY', 'KEY', 'KX',
+ 'LOC', 'MX', 'NAPTR', 'NS', 'NSEC', 'NSEC3',
+ 'NSEC3PARAM', 'PTR', 'RRSIG', 'RP', 'SPF', 'SRV',
+ 'SSHFP', 'TA', 'TKEY', 'TSIG', 'TXT'])
+ },
+ 'rrsig_part_algorithm',
+ 'rrsig_part_labels',
+ 'rrsig_part_original_ttl',
+ 'rrsig_part_signature_expiration',
+ 'rrsig_part_signature_inception',
+ 'rrsig_part_key_tag',
+ 'rrsig_part_signers_name',
+ {
+ name: 'rrsig_part_signature',
+ type: 'textarea'
+ }
+ ],
+ adder_attributes: [],
+ columns: ['dnsdata']
+ },
+ {
+ name: 'sigrecord',
+ attributes: [
+ {
+ name: 'sig_part_type_covered',
+ type: 'select',
+ options: IPA.create_options(['SOA', 'A', 'AAAA', 'A6', 'AFSDB',
+ 'APL', 'CERT', 'CNAME', 'DHCID', 'DLV', 'DNAME',
+ 'DNSKEY', 'DS', 'HIP', 'IPSECKEY', 'KEY', 'KX',
+ 'LOC', 'MX', 'NAPTR', 'NS', 'NSEC', 'NSEC3',
+ 'NSEC3PARAM', 'PTR', 'RRSIG', 'RP', 'SPF', 'SRV',
+ 'SSHFP', 'TA', 'TKEY', 'TSIG', 'TXT'])
+ },
+ 'sig_part_algorithm',
+ 'sig_part_labels',
+ 'sig_part_original_ttl',
+ 'sig_part_signature_expiration',
+ 'sig_part_signature_inception',
+ 'sig_part_key_tag',
+ 'sig_part_signers_name',
+ {
+ name: 'sig_part_signature',
+ type: 'textarea'
+ }
+ ],
+ adder_attributes: [],
+ columns: ['dnsdata']
+ },
+ {
+ name: 'srvrecord',
+ attributes: [
+ 'srv_part_priority',
+ 'srv_part_weight',
+ 'srv_part_port',
+ 'srv_part_target'
+ ],
+ adder_attributes: [],
+ columns: ['srv_part_priority', 'srv_part_weight', 'srv_part_port',
+ 'srv_part_target']
+ },
+ {
+ name: 'sshfprecord',
+ attributes: [
+ 'sshfp_part_algorithm',
+ 'sshfp_part_fp_type',
+ {
+ name: 'sshfp_part_fingerprint',
+ type: 'textarea'
+ }
+ ],
+ adder_attributes: [],
+ columns: ['sshfp_part_algorithm', 'sshfp_part_fp_type']
+ },
+ {
+ name: 'txtrecord',
+ attributes: [
+ 'txt_part_data'
+ ],
+ adder_attributes: [],
+ columns: ['txt_part_data']
+ }
+ ];
+
+ //set required flags for attributes based on 'dnsrecord_optional' flag
+ //in param metadata
+
+ for (var i=0; i<IPA.dns.record_metadata.length; i++) {
+ var type = IPA.dns.record_metadata[i];
+
+ for (var j=0; j<type.attributes.length; j++) {
+ var attr = type.attributes[j];
+ if (typeof attr === 'string') {
+ attr = {
+ name: attr
+ };
+ type.attributes[j] = attr;
+ }
+ var attr_meta = IPA.get_entity_param('dnsrecord', attr.name);
+
+ if (attr_meta && attr_meta.flags.indexOf('dnsrecord_optional') === -1) {
+ attr.required = true;
+ }
+ }
+ }
+
+ }
+
+ return IPA.dns.record_metadata;
+};
+
+
+IPA.dns.get_record_type = function(type_name) {
+
+ var metadata = IPA.dns.get_record_metadata();
+
+ for (var i=0; i<metadata.length; i++) {
+ var type = metadata[i];
+ if (type.name === type_name) return type;
+ }
+
+ return null;
+};
+
IPA.dns.record_entity = function(spec) {
var that = IPA.entity(spec);
@@ -554,11 +893,20 @@ IPA.dns.record_entity = function(spec) {
details_facet({
factory: IPA.dns.record_details_facet,
disable_breadcrumb: false,
- sections: [
+ fields: [
+ {
+ type: 'dnsrecord_host_link',
+ name: 'idnsname',
+ other_entity: 'host',
+ widget: 'identity.idnsname'
+ }
+ ],
+ widgets:[
{
name: 'identity',
label: IPA.messages.details.identity,
- fields: [
+ type: 'details_table_section',
+ widgets: [
{
type: 'dnsrecord_host_link',
name: 'idnsname',
@@ -567,140 +915,6 @@ IPA.dns.record_entity = function(spec) {
'dnsrecord', 'idnsname').label
}
]
- },
- {
- name: 'standard',
- label: IPA.messages.objects.dnsrecord.standard,
- fields: [
- {
- type: 'multivalued',
- name: 'arecord',
- metadata: { primary_key: false },
- label: 'A',
- validators: [ IPA.ip_v4_address_validator() ]
- },
- {
- type: 'multivalued',
- name: 'aaaarecord',
- metadata: { primary_key: false },
- label: 'AAAA',
- validators: [ IPA.ip_v6_address_validator() ]
- },
- {
- type: 'multivalued',
- name: 'ptrrecord',
- metadata: { primary_key: false },
- label: 'PTR'
- },
- {
- type: 'multivalued',
- name: 'srvrecord',
- metadata: { primary_key: false },
- label: 'SRV'
- },
- {
- type: 'multivalued',
- name: 'txtrecord',
- metadata: { primary_key: false },
- label: 'TXT'
- },
- {
- type: 'multivalued',
- name: 'cnamerecord',
- metadata: { primary_key: false },
- label: 'CNAME'
- },
- {
- type: 'multivalued',
- label:'MX',
- metadata: { primary_key: false },
- name: 'mxrecord'
- },
- {
- type: 'multivalued',
- label:'NS',
- metadata: { primary_key: false },
- name: 'nsrecord'
- }
- ]
- },
- {
- name: 'other',
- label: IPA.messages.objects.dnsrecord.other,
- fields: [
- {
- type: 'multivalued',
- name: 'afsdbrecord',
- metadata: { primary_key: false },
- label: 'AFSDB'
- },
- {
- type: 'multivalued',
- name: 'certrecord',
- metadata: { primary_key: false },
- label: 'CERT'
- },
- {
- type: 'multivalued',
- name: 'dnamerecord',
- metadata: { primary_key: false },
- label: 'DNAME'
- },
- {
- type: 'multivalued',
- name: 'dsrecord',
- metadata: { primary_key: false },
- label: 'DSRECORD'
- },
- {
- type: 'multivalued',
- name: 'keyrecord',
- metadata: { primary_key: false },
- label: 'KEY'
- },
- {
- type: 'multivalued',
- name: 'kxrecord',
- metadata: { primary_key: false },
- label: 'KX'
- },
- {
- type: 'multivalued',
- name: 'locrecord',
- metadata: { primary_key: false },
- label: 'LOC'
- },
- {
- type: 'multivalued',
- name: 'naptrrecord',
- metadata: { primary_key: false },
- label: 'NAPTR'
- },
- {
- type: 'multivalued',
- name: 'nsecrecord',
- metadata: { primary_key: false },
- label: 'NSEC'
- },
- {
- type: 'multivalued',
- name: 'rrsigrecord',
- metadata: { primary_key: false },
- label: 'RRSIG'
- },
- {
- type: 'multivalued',
- name: 'sigrecord',
- metadata: { primary_key: false },
- label: 'SIG'
- },
- {
- type: 'multivalued',
- name: 'sshfprecord',
- metadata: { primary_key: false },
- label: 'SSHFP'
- }
- ]
}
]
}).
@@ -713,14 +927,9 @@ IPA.dns.record_entity = function(spec) {
},
{
name: 'record_type',
+ type: 'dnsrecord_type',
+ enabled: false,
widget: 'general.record_type'
- },
- {
- type: 'dnsrecord',
- name: 'record_data',
- required: true,
- widget: 'general.record_data',
- type_widget: 'general.record_type'
}
],
widgets: [
@@ -733,14 +942,14 @@ IPA.dns.record_entity = function(spec) {
type: 'dnsrecord_type',
name: 'record_type',
label: IPA.messages.objects.dnsrecord.type
- },
- {
- type: 'text',
- name: 'record_data',
- label: IPA.messages.objects.dnsrecord.data
}
]
}
+ ],
+ policies: [
+ IPA.dnsrecord_adder_dialog_type_policy({
+ type_field: 'record_type'
+ })
]
});
};
@@ -750,32 +959,22 @@ IPA.dns.record_entity = function(spec) {
IPA.dns.record_adder_dialog = function(spec) {
- var that = IPA.entity_adder_dialog(spec);
-
- that.create_add_command = function(record) {
-
- var command = that.entity_adder_dialog_create_add_command(record);
-
- var record_type = command.options.record_type;
- var record_data = command.options.record_data;
-
- delete command.options.record_type;
- delete command.options.record_data;
-
- command.options[record_type] = record_data;
+ spec = spec || {};
- return command;
- };
+ IPA.dns.record_prepare_spec(spec, IPA.dns.record_prepare_editor_for_type);
+ var that = IPA.entity_adder_dialog(spec);
return that;
};
IPA.dns.record_details_facet = function(spec) {
+ IPA.dns.record_prepare_details_spec(spec);
+
var that = IPA.details_facet(spec);
- that.update_on_success = function(data, text_status, xhr) {
+ that.load = function(data) {
if (!data.result.result.idnsname) {
that.reset();
@@ -784,7 +983,14 @@ IPA.dns.record_details_facet = function(spec) {
return;
}
- that.load(data);
+ that.details_facet_load(data);
+ };
+
+ that.create_refresh_command = function() {
+
+ var command = that.details_facet_create_refresh_command();
+ command.set_option('structured', true);
+ return command;
};
return that;
@@ -816,6 +1022,171 @@ IPA.dnsrecord_redirection_dialog = function(spec) {
return that;
};
+/*
+ * Spec preparation methods
+ */
+
+IPA.dns.record_prepare_spec = function(spec, type_prepare_method) {
+
+ var metadata = IPA.dns.get_record_metadata();
+
+ var fields = [];
+ var widgets = [];
+
+ for (var i=0; i<metadata.length; i++) {
+
+ var type = metadata[i];
+
+ type_prepare_method(type, fields, widgets);
+ }
+
+ IPA.dns.extend_spec(spec, fields, widgets);
+};
+
+IPA.dns.extend_spec = function(spec, fields, widgets) {
+
+ if (spec.sections) delete spec.sections;
+
+ if (spec.fields instanceof Array) {
+ spec.fields.push.apply(spec.fields, fields);
+ } else {
+ spec.fields = fields;
+ }
+
+ if (spec.widgets instanceof Array) {
+ spec.widgets.push.apply(spec.widgets, widgets);
+ } else {
+ spec.widgets = widgets;
+ }
+};
+
+IPA.dns.record_prepare_editor_for_type = function(type, fields, widgets) {
+
+ var set_defined = function(property, object, name) {
+ if (property !== undefined) {
+ object[name] = property;
+ }
+ };
+
+ var copy_obj = function(source, dest) {
+ if (source !== null || source !== undefined) {
+ $.extend(source,dest);
+ }
+ };
+
+ var section = {
+ name: type.name,
+ type: 'details_table_section_nc',
+ widgets: []
+ };
+ widgets.push(section);
+
+ for (var i=0; i<type.attributes.length;i++) {
+ var attribute = type.attributes[i];
+
+ //create field
+ var field = {};
+ if (typeof attribute === 'string') {
+ field.name = attribute;
+ } else {
+ field.name = attribute.name;
+ field.label = attribute.label ||
+ IPA.dns.record_get_attr_label(attribute.name);
+ set_defined(attribute.type, field, 'type');
+ set_defined(attribute.validators, field, 'validators');
+ set_defined(attribute.required, field, 'required');
+ copy_obj(widget, attribute.field_opt);
+ }
+ field.widget = type.name+'.'+field.name;
+ fields.push(field);
+
+ //create editor widget
+ var widget = {};
+ if (typeof attribute === 'string') {
+ widget.name = attribute;
+ } else {
+ widget.name = attribute.name;
+ set_defined(attribute.type, widget, 'type');
+ set_defined(attribute.options, widget, 'options');
+ copy_obj(widget, attribute.widget_opt);
+ }
+ section.widgets.push(widget);
+ }
+};
+
+IPA.dns.record_prepare_details_spec = function(spec, type_prepare_method) {
+
+ var metadata = IPA.dns.get_record_metadata();
+
+ var fields = [];
+ var widgets = [];
+
+ var standard_record_section = {
+ name: 'standard_types',
+ type: 'details_table_section',
+ label: IPA.messages.objects.dnsrecord.standard,
+ widgets: []
+ };
+
+ var other_record_section = {
+ name: 'other_types',
+ type: 'details_table_section',
+ label: IPA.messages.objects.dnsrecord.other,
+ widgets: []
+ };
+
+ widgets.push(standard_record_section);
+ widgets.push(other_record_section);
+
+ var standard_types = ['arecord', 'aaaarecord', 'ptrrecord', 'srvrecord',
+ 'txtrecord', 'cnamerecord', 'mxrecord', 'nsrecord'];
+
+ for (var i=0; i<metadata.length; i++) {
+
+ var type = metadata[i];
+
+ if (standard_types.indexOf(type.name) > -1) {
+ IPA.dns.record_prepare_details_for_type(type, fields, standard_record_section);
+ } else {
+ IPA.dns.record_prepare_details_for_type(type, fields, other_record_section);
+ }
+ }
+
+ IPA.dns.extend_spec(spec, fields, widgets);
+};
+
+IPA.dns.record_prepare_details_for_type = function(type, fields, container) {
+
+ var index = type.name.search('record$');
+ var dnstype = type.name.substring(0, index).toUpperCase();
+
+ var type_widget = {
+ name: type.name,
+ type: 'dnsrecord_type_table',
+ record_type: type.name,
+ value_attribute: 'dnsdata',
+ dnstype: dnstype,
+ columns: type.columns
+ };
+
+ container.widgets.push(type_widget);
+
+ var field = {
+ name: type.name,
+ type: 'dnsrecord_type_table',
+ dnstype: dnstype,
+ label: dnstype,
+ widget: container.name+'.'+type.name
+ };
+
+ fields.push(field);
+};
+
+/*
+ * Widgets and policies
+ */
+
+
IPA.dnsrecord_host_link_field = function(spec) {
var that = IPA.link_field(spec);
that.other_pkeys = function() {
@@ -829,22 +1200,75 @@ IPA.field_factories['dnsrecord_host_link'] = IPA.dnsrecord_host_link_field;
IPA.widget_factories['dnsrecord_host_link'] = IPA.link_widget;
IPA.dns_record_types = function() {
- var attrs = IPA.metadata.objects.dnsrecord.default_attributes;
+
+ //only supported
+ var attrs = ['A', 'AAAA', 'A6', 'AFSDB', 'CERT', 'CNAME', 'DNAME',
+ 'DS','KEY', 'KX', 'LOC', 'MX', 'NAPTR', 'NS', 'NSEC',
+ 'PTR', 'RRSIG', 'SRV', 'SIG', 'SSHFP', 'TXT'];
var record_types = [];
for (var i=0; i<attrs.length; i++) {
var attr = attrs[i];
- var index = attr.search('record$');
- if (index > -1) {
- var rec_type = {
- label: attr.substring(0, index).toUpperCase(),
- value: attr
- };
- record_types.push(rec_type);
- }
+
+ var rec_type = {
+ label: attr,
+ value: attr.toLowerCase()+'record'
+ };
+ record_types.push(rec_type);
}
return record_types;
};
+IPA.dns.record_get_attr_label = function(part_name) {
+
+ var metadata = IPA.get_entity_param('dnsrecord', part_name);
+
+ if (!metadata) return null;
+
+ var label = metadata.label;
+
+ if (part_name.indexOf('_part_') > -1) {
+
+ label = label.substring(label.indexOf(' '));
+ }
+
+ return label;
+};
+
+
+IPA.dnsrecord_type_field = function(spec) {
+
+ spec = spec || {};
+ var that = IPA.field(spec);
+
+ that.type_changed = IPA.observer();
+
+ that.get_type = function() {
+
+ return that.widget.save()[0];
+ };
+
+ that.on_type_change = function() {
+
+ that.type_changed.notify([], that);
+ };
+
+ that.widgets_created = function() {
+
+ that.field_widgets_created();
+ that.widget.value_changed.attach(that.on_type_change);
+ };
+
+ that.reset = function() {
+ that.field_reset();
+ that.on_type_change();
+ };
+
+ return that;
+};
+
+IPA.field_factories['dnsrecord_type'] = IPA.dnsrecord_type_field;
+
+
IPA.dnsrecord_type_widget = function(spec) {
spec.options = IPA.dns_record_types();
@@ -854,62 +1278,539 @@ IPA.dnsrecord_type_widget = function(spec) {
IPA.widget_factories['dnsrecord_type'] = IPA.dnsrecord_type_widget;
-IPA.dnsrecord_field = function(spec) {
+
+IPA.dnsrecord_adder_dialog_type_policy = function(spec) {
spec = spec || {};
- var that = IPA.field(spec);
- that.type_widget_name = spec.type_widget || '';
+ var that = IPA.facet_policy(spec);
- that.normal_validators = [];
- that.a_record_validators = [
- IPA.ip_v4_address_validator()
- ];
- that.aaaa_record_validators = [
- IPA.ip_v6_address_validator()
- ];
+ that.type_field_name = spec.type_field;
+
+ that.post_create = function() {
+ that.type_field = that.container.fields.get_field(that.type_field_name);
+ that.type_field.type_changed.attach(that.on_type_change);
+ that.on_type_change();
+ };
that.on_type_change = function() {
- var type = that.type_widget.save()[0];
+ var type = that.type_field.get_type();
+
+ that.allow_fields_for_type(type);
+ that.show_widgets_for_type(type);
+ };
+
+ that.allow_fields_for_type = function(type) {
+
+ type = type.substring(0, type.indexOf('record'));
+
+ var fields = that.container.fields.get_fields();
+
+ for (var i=0; i<fields.length; i++) {
+ var field = fields[i];
+
+ var fieldtype;
+ var index = field.name.indexOf('_part_');
+ if (index > -1) {
+ fieldtype = field.name.substring(0, index);
+ } else {
+ fieldtype = field.name.substring(0, field.name.indexOf('record'));
+ }
+
+
+ field.enabled = (field.name === 'idnsname' ||
+ field.name === that.type_field_name ||
+ fieldtype === type);
+ }
+ };
+
+ that.show_widgets_for_type = function(type) {
+
+ var widgets = that.container.widgets.get_widgets();
+
+ for (var i=0; i<widgets.length; i++) {
+ var widget = widgets[i];
+ var visible = widget.name.indexOf(type) === 0 ||
+ widget.name === 'general';
+ widget.set_visible(visible);
+ }
+ };
+
+ return that;
+};
+
+
+IPA.dns.record_type_table_field = function(spec) {
+
+ spec = spec || {};
+
+ var that = IPA.field(spec);
+
+ that.dnstype = spec.dnstype;
+
+ that.load = function(record) {
+
+ var data = {};
+
+ data.idnsname = record.idnsname;
+ data.dnsrecords = [];
+
+ for (var i=0, j=0; i<record.dnsrecords.length; i++) {
+
+ var dnsrecord = record.dnsrecords[i];
+ if(dnsrecord.dnstype === that.dnstype) {
+
+ dnsrecord.position = j;
+ j++;
+ data.dnsrecords.push(dnsrecord);
+ }
+ }
+
+ that.values = data;
+
+ that.load_writable(record);
+ that.reset();
+ };
+
+ return that;
+};
+
+IPA.field_factories['dnsrecord_type_table'] = IPA.dns.record_type_table_field;
- if (type === 'arecord') {
- that.validators = that.a_record_validators;
- } else if (type === 'aaaarecord') {
- that.validators = that.aaaa_record_validators;
+
+IPA.dns.record_type_table_widget = function(spec) {
+
+ spec = spec || {};
+ spec.columns = spec.columns || [];
+
+ spec.columns.push({
+ name: 'position',
+ label: '',
+ factory: IPA.dns.record_modify_column,
+ width: '106px'
+ });
+
+ var that = IPA.table_widget(spec);
+
+ that.dnstype = spec.dnstype;
+
+ that.create_column = function(spec) {
+
+ if (typeof spec === 'string') {
+ spec = {
+ name: spec
+ };
+ }
+
+ spec.entity = that.entity;
+ spec.label = spec.label || IPA.dns.record_get_attr_label(spec.name);
+
+ var factory = spec.factory || IPA.column;
+
+ var column = factory(spec);
+ that.add_column(column);
+ return column;
+ };
+
+ that.create_columns = function() {
+ that.clear_columns();
+ if (spec.columns) {
+ for (var i=0; i<spec.columns.length; i++) {
+ that.create_column(spec.columns[i]);
+ }
+ }
+
+ var modify_column = that.columns.get('position');
+ modify_column.link_handler = that.on_modify;
+ };
+
+ that.create = function(container) {
+
+ that.create_columns();
+ that.table_create(container);
+
+ container.addClass('dnstype-table');
+
+ that.remove_button = IPA.action_button({
+ name: 'remove',
+ label: IPA.messages.buttons.remove,
+ icon: 'remove-icon',
+ 'class': 'action-button-disabled',
+ click: function() {
+ if (!that.remove_button.hasClass('action-button-disabled')) {
+ that.remove_handler();
+ }
+ return false;
+ }
+ }).appendTo(that.buttons);
+
+ that.add_button = IPA.action_button({
+ name: 'add',
+ label: IPA.messages.buttons.add,
+ icon: 'add-icon',
+ click: function() {
+ if (!that.add_button.hasClass('action-button-disabled')) {
+ that.add_handler();
+ }
+ return false;
+ }
+ }).appendTo(that.buttons);
+ };
+
+ that.set_enabled = function(enabled) {
+ that.table_set_enabled(enabled);
+ if (enabled) {
+ if(that.add_button) {
+ that.add_button.removeClass('action-button-disabled');
+ }
} else {
- that.validators = that.normal_validators;
+ $('.action-button', that.table).addClass('action-button-disabled');
+ that.unselect_all();
}
+ that.enabled = enabled;
+ };
- that.validate();
+ that.select_changed = function() {
+
+ var values = that.get_selected_values();
+
+ if (that.remove_button) {
+ if (values.length === 0) {
+ that.remove_button.addClass('action-button-disabled');
+ } else {
+ that.remove_button.removeClass('action-button-disabled');
+ }
+ }
};
- that.widgets_created = function() {
+ that.add_handler = function() {
+ var facet = that.entity.get_facet();
- that.field_widgets_created();
- that.type_widget = that.container.widgets.get_widget(that.type_widget_name);
- that.type_widget.value_changed.attach(that.on_type_change);
+ if (facet.is_dirty()) {
+ var dialog = IPA.dirty_dialog({
+ entity:that.entity,
+ facet: facet
+ });
+
+ dialog.callback = function() {
+ that.show_add_dialog();
+ };
+
+ dialog.open(that.container);
+
+ } else {
+ that.show_add_dialog();
+ }
};
- that.reset = function() {
- that.field_reset();
- that.on_type_change();
+ that.remove_handler = function() {
+ var facet = that.entity.get_facet();
+
+ if (facet.is_dirty()) {
+ var dialog = IPA.dirty_dialog({
+ entity:that.entity,
+ facet: facet
+ });
+
+ dialog.callback = function() {
+ that.show_remove_dialog();
+ };
+
+ dialog.open(that.container);
+
+ } else {
+ that.show_remove_dialog();
+ }
};
+ that.show_remove_dialog = function() {
+
+ var selected_values = that.get_selected_values();
+
+ if (!selected_values.length) {
+ var message = IPA.messages.dialogs.remove_empty;
+ alert(message);
+ return;
+ }
+
+ var dialog = IPA.deleter_dialog({
+ entity: that.entity,
+ values: selected_values
+ });
+
+ dialog.execute = function() {
+ that.remove(
+ selected_values,
+ that.idnsname[0],
+ function(data) {
+ that.reload_facet(data);
+ dialog.close();
+ },
+ function() {
+ that.refresh_facet();
+ dialog.close();
+ }
+ );
+ };
+
+
+ dialog.open(that.container);
+ };
+
+ that.remove = function(values, pkey, on_success, on_error) {
+
+ var dnszone = IPA.nav.get_state('dnszone-pkey');
+
+ var command = IPA.command({
+ entity: that.entity.name,
+ method: 'del',
+ args: [dnszone, pkey],
+ on_success: on_success,
+ on_error: on_error
+ });
+
+ var record_name = that.dnstype.toLowerCase()+'record';
+ command.set_option(record_name, values.join(','));
+ command.set_option('structured', true);
+
+ command.execute();
+ };
+
+ that.create_add_dialog = function() {
+
+ var title = IPA.messages.dialogs.add_title;
+ var label = that.entity.metadata.label_singular;
+
+ var dialog_spec = {
+ entity: that.entity,
+ fields: [],
+ widgets: [],
+ title: title.replace('${entity}', label)
+ };
+
+ var dnstype = that.dnstype.toLowerCase();
+ var type = IPA.dns.get_record_type(dnstype+'record');
+
+ IPA.dns.record_prepare_editor_for_type(type, dialog_spec.fields,
+ dialog_spec.widgets);
+
+ var dialog = IPA.entity_adder_dialog(dialog_spec);
+
+ var cancel_button = dialog.buttons.get('cancel');
+ dialog.buttons.empty();
+
+ dialog.create_button({
+ name: 'add',
+ label: IPA.messages.buttons.add,
+ click: function() {
+ dialog.hide_message();
+ dialog.add(
+ function(data, text_status, xhr) {
+ that.reload_facet(data);
+ dialog.close();
+ },
+ dialog.on_error);
+ }
+ });
+
+ dialog.create_button({
+ name: 'add_and_add_another',
+ label: IPA.messages.buttons.add_and_add_another,
+ click: function() {
+ dialog.hide_message();
+ dialog.add(
+ function(data, text_status, xhr) {
+ var label = that.entity.metadata.label_singular;
+ var message = IPA.messages.dialogs.add_confirmation;
+ message = message.replace('${entity}', label);
+ dialog.show_message(message);
+
+ that.reload_facet(data);
+ dialog.reset();
+ },
+ dialog.on_error);
+ }
+ });
+
+ dialog.buttons.put('cancel', cancel_button);
+
+ dialog.create_add_command = function(record) {
+
+ var dnszone = IPA.nav.get_state('dnszone-pkey');
+
+ var command = dialog.entity_adder_dialog_create_add_command(record);
+ command.args = [dnszone, that.idnsname[0]];
+ command.set_option('structured', true);
+
+ return command;
+ };
+
+ return dialog;
+ };
+
+ that.show_add_dialog = function() {
+
+ var dialog = that.create_add_dialog();
+ dialog.open(that.container);
+ };
+
+ that.create_mod_dialog = function() {
+
+ var title = IPA.messages.dialogs.edit_title;
+ var label = that.entity.metadata.label_singular;
+
+ var dialog_spec = {
+ entity: that.entity,
+ fields: [],
+ widgets: [],
+ title: title.replace('${entity}', label)
+ };
+
+ var dnstype = that.dnstype.toLowerCase();
+
+ var type = IPA.dns.get_record_type(dnstype+'record');
+
+ IPA.dns.record_prepare_editor_for_type(type, dialog_spec.fields,
+ dialog_spec.widgets);
+
+ var dialog = IPA.entity_adder_dialog(dialog_spec);
+
+ dialog.buttons.empty();
+
+ dialog.create_button({
+ name: 'modify',
+ label: IPA.messages.buttons.update,
+ click: function() {
+ dialog.modify();
+ }
+ });
+
+ dialog.create_button({
+ name: 'cancel',
+ label: IPA.messages.buttons.cancel,
+ click: function() {
+ dialog.reset();
+ dialog.close();
+ }
+ });
+
+ dialog.load = function(record, full_value) {
+
+ dialog.full_value = full_value;
+
+ var fields = dialog.fields.get_fields();
+
+ for (var i=0; i<fields.length; i++) {
+ var field = fields[i];
+ field.load(record);
+ }
+ };
+
+ dialog.modify = function() {
+
+ if (!dialog.validate()) return;
+
+ var record = {};
+ dialog.save(record);
+
+ var command = dialog.create_add_command(record);
+
+ command.on_success = function(data) {
+ that.reload_facet(data);
+ dialog.close();
+ };
+ command.on_error = function() {
+ that.refresh_facet();
+ dialog.close();
+ };
+ command.execute();
+ };
+
+ dialog.create_add_command = function(record) {
+
+ var dnszone = IPA.nav.get_state('dnszone-pkey');
+
+ var command = dialog.entity_adder_dialog_create_add_command(record);
+
+ command.method = 'mod';
+ command.args = [dnszone, that.idnsname[0]];
+
+ var record_name = that.dnstype.toLowerCase()+'record';
+ command.set_option(record_name, dialog.full_value);
+ command.set_option('structured', true);
+
+ return command;
+ };
+
+ return dialog;
+ };
+
+ that.reload_facet = function(data) {
+
+ //FIXME: seems as bad approach
+ var facet = IPA.current_entity.get_facet();
+ facet.load(data);
+ };
+
+ that.refresh_facet = function() {
+
+ //FIXME: seems as bad approach
+ var facet = IPA.current_entity.get_facet();
+ facet.refresh();
+ };
+
+ that.update = function(values) {
+
+ that.idnsname = values.idnsname;
+ that.dnsrecords = values.dnsrecords;
+ that.table_update(that.dnsrecords);
+ that.unselect_all();
+ };
+
+ that.on_modify = function(position) {
+
+ var values = that.values[position];
+
+ var dialog = that.create_mod_dialog();
+ dialog.open();
+ dialog.load(that.records[position], values);
+
+ return false;
+ };
+
+
return that;
};
-IPA.field_factories['dnsrecord'] = IPA.dnsrecord_field;
+IPA.widget_factories['dnsrecord_type_table'] = IPA.dns.record_type_table_widget;
-IPA.force_dnszone_add_checkbox_widget = function(spec) {
- var metadata = IPA.get_command_option('dnszone_add', spec.name);
- spec.label = metadata.label;
- spec.tooltip = metadata.doc;
- return IPA.checkbox_widget(spec);
-};
+IPA.dns.record_modify_column = function(spec) {
-IPA.widget_factories['force_dnszone_add_checkbox'] = IPA.force_dnszone_add_checkbox_widget;
-IPA.field_factories['force_dnszone_add_checkbox'] = IPA.checkbox_field;
+ spec = spec || {};
+
+ var that = IPA.column(spec);
+
+ that.text = spec.text || IPA.messages.buttons.edit;
+
+ that.setup = function(container, record, suppress_link) {
+
+ container.empty();
+
+ var value = record[that.name];
+
+ $('<a/>', {
+ href: '#'+that.text,
+ text: that.text,
+ style: 'float: right;',
+ click: function() {
+ return that.link_handler(value);
+ }
+ }).appendTo(container);
+ };
+
+ return that;
+};
IPA.ip_address_validator = function(spec) {
@@ -963,5 +1864,6 @@ IPA.ip_v6_address_validator = function(spec) {
return IPA.ip_address_validator(spec);
};
+
IPA.register('dnszone', IPA.dns.zone_entity);
IPA.register('dnsrecord', IPA.dns.record_entity);
diff --git a/install/ui/field.js b/install/ui/field.js
index 1caab161..c448c41c 100644
--- a/install/ui/field.js
+++ b/install/ui/field.js
@@ -101,7 +101,7 @@ IPA.field = function(spec) {
that.validate_required = function() {
var values = that.save();
- if (that.is_empty(values) && that.is_required()) {
+ if (that.is_empty(values) && that.is_required() && that.enabled) {
that.valid = false;
that.show_error(IPA.messages.widget.validation.required);
return false;
@@ -118,6 +118,8 @@ IPA.field = function(spec) {
that.hide_error();
that.valid = true;
+ if (!that.enabled) return that.valid;
+
var values = that.save();
if (that.is_empty(values)) {
diff --git a/install/ui/ipa.css b/install/ui/ipa.css
index 10fed5de..3ebfc341 100644
--- a/install/ui/ipa.css
+++ b/install/ui/ipa.css
@@ -1455,4 +1455,16 @@ div.entity[name=hbactest] div.facet[name=run_test] .hbac-test-content {
.hbac-test-navigation-buttons {
float: right;
+}
+
+
+/* ---- DNS ---- */
+
+.dnstype-table div[name=position] {
+
+ padding-right: 9px;
+}
+
+.dnstype-table td {
+ font-weight: normal;
} \ No newline at end of file
diff --git a/install/ui/ipa.js b/install/ui/ipa.js
index 04366a8c..f905b417 100644
--- a/install/ui/ipa.js
+++ b/install/ui/ipa.js
@@ -1130,6 +1130,22 @@ IPA.limit_text = function(value, max_length) {
return limited_text;
};
+IPA.create_options = function(labels, values) {
+
+ if(!values) values = labels;
+
+ var options = [];
+
+ for (var i=0; i<labels.length; i++) {
+ options.push({
+ label: labels[i],
+ value: values[i]
+ });
+ }
+
+ return options;
+};
+
IPA.config = {
default_priority: 500
};
diff --git a/install/ui/test/data/dnsrecord_add.json b/install/ui/test/data/dnsrecord_add.json
index d34cb3fd..d60f03ba 100644
--- a/install/ui/test/data/dnsrecord_add.json
+++ b/install/ui/test/data/dnsrecord_add.json
@@ -1,14 +1,65 @@
{
"error": null,
- "id": 12,
+ "id": null,
"result": {
"result": {
- "arecord": [
- "1.2.3.4"
+ "dn": "idnsname=my,idnsname=example.com,cn=dns,dc=dev,dc=example,dc=com",
+ "dnsrecords": [
+ {
+ "a_part_ip_address": "10.10.10.11",
+ "dnsdata": "10.10.10.11",
+ "dnstype": "A"
+ },
+ {
+ "a_part_ip_address": "10.10.10.12",
+ "dnsdata": "10.10.10.12",
+ "dnstype": "A"
+ },
+ {
+ "a_part_ip_address": "10.10.10.13",
+ "dnsdata": "10.10.10.13",
+ "dnstype": "A"
+ },
+ {
+ "a_part_ip_address": "10.10.10.14",
+ "dnsdata": "10.10.10.14",
+ "dnstype": "A"
+ },
+ {
+ "a_part_ip_address": "10.10.10.16",
+ "dnsdata": "10.10.10.16",
+ "dnstype": "A"
+ },
+ {
+ "a_part_ip_address": "10.10.10.15",
+ "dnsdata": "10.10.10.15",
+ "dnstype": "A"
+ },
+ {
+ "dnsdata": "10 abc",
+ "dnstype": "KX",
+ "kx_part_exchanger": "abc",
+ "kx_part_preference": "10"
+ },
+ {
+ "dnsdata": "11 foo",
+ "dnstype": "KX",
+ "kx_part_exchanger": "foo",
+ "kx_part_preference": "11"
+ },
+ {
+ "dnsdata": "data",
+ "dnstype": "TXT",
+ "txt_part_data": "data"
+ },
+ {
+ "aaaa_part_ip_address": "::1:2:3:4",
+ "dnsdata": "::1:2:3:4",
+ "dnstype": "AAAA"
+ }
],
- "dn": "idnsname=a4,idnsname=example.com,cn=dns,dc=example,dc=com",
"idnsname": [
- "a4"
+ "my"
],
"objectclass": [
"top",
@@ -16,6 +67,6 @@
]
},
"summary": null,
- "value": "a4"
+ "value": "my"
}
} \ No newline at end of file
diff --git a/install/ui/test/data/dnsrecord_del.json b/install/ui/test/data/dnsrecord_del.json
index 93a53627..a1e1c88d 100644
--- a/install/ui/test/data/dnsrecord_del.json
+++ b/install/ui/test/data/dnsrecord_del.json
@@ -1,10 +1,62 @@
{
"error": null,
+ "id": null,
"result": {
- "idnsname": [
- "@"
- ]
- },
- "summary": null,
- "value": "@"
- }
+ "result": {
+ "dnsrecords": [
+ {
+ "a_part_ip_address": "10.10.10.11",
+ "dnsdata": "10.10.10.11",
+ "dnstype": "A"
+ },
+ {
+ "a_part_ip_address": "10.10.10.12",
+ "dnsdata": "10.10.10.12",
+ "dnstype": "A"
+ },
+ {
+ "a_part_ip_address": "10.10.10.13",
+ "dnsdata": "10.10.10.13",
+ "dnstype": "A"
+ },
+ {
+ "a_part_ip_address": "10.10.10.14",
+ "dnsdata": "10.10.10.14",
+ "dnstype": "A"
+ },
+ {
+ "a_part_ip_address": "10.10.10.16",
+ "dnsdata": "10.10.10.16",
+ "dnstype": "A"
+ },
+ {
+ "dnsdata": "10 abc",
+ "dnstype": "KX",
+ "kx_part_exchanger": "abc",
+ "kx_part_preference": "10"
+ },
+ {
+ "dnsdata": "11 foo",
+ "dnstype": "KX",
+ "kx_part_exchanger": "foo",
+ "kx_part_preference": "11"
+ },
+ {
+ "dnsdata": "data",
+ "dnstype": "TXT",
+ "txt_part_data": "data"
+ },
+ {
+ "aaaa_part_ip_address": "::1:2:3:4",
+ "dnsdata": "::1:2:3:4",
+ "dnstype": "AAAA"
+ }
+ ],
+ "idnsname": [
+ "my"
+ ]
+ },
+ "summary": null,
+ "value": "my"
+ }
+} \ No newline at end of file
diff --git a/install/ui/test/data/dnsrecord_show.json b/install/ui/test/data/dnsrecord_show.json
index 3e3d5f8b..0cbb77f1 100644
--- a/install/ui/test/data/dnsrecord_show.json
+++ b/install/ui/test/data/dnsrecord_show.json
@@ -3,16 +3,6 @@
"id": null,
"result": {
"result": {
- "aaaarecord": [
- "feed:babe:beef:cafe::0001",
- "feed:babe:beef:cafe::0002",
- "feed:babe:beef:cafe::0004"
- ],
- "arecord": [
- "3.4.5.6",
- "1.3.5.7",
- "10.10.2.1"
- ],
"attributelevelrights": {
"a6record": "rscwo",
"aaaarecord": "rscwo",
@@ -48,26 +38,70 @@
"sshfprecord": "rscwo",
"txtrecord": "rscwo"
},
- "dn": "idnsname=testrec,idnsname=example.com,cn=dns,dc=example,dc=com",
- "idnsname": [
- "testrec"
+ "dn": "idnsname=my,idnsname=example.com,cn=dns,dc=dev,dc=example,dc=com",
+ "dnsrecords": [
+ {
+ "a_part_ip_address": "10.10.10.11",
+ "dnsdata": "10.10.10.11",
+ "dnstype": "A"
+ },
+ {
+ "a_part_ip_address": "10.10.10.12",
+ "dnsdata": "10.10.10.12",
+ "dnstype": "A"
+ },
+ {
+ "a_part_ip_address": "10.10.10.13",
+ "dnsdata": "10.10.10.13",
+ "dnstype": "A"
+ },
+ {
+ "a_part_ip_address": "10.10.10.14",
+ "dnsdata": "10.10.10.14",
+ "dnstype": "A"
+ },
+ {
+ "a_part_ip_address": "10.10.10.16",
+ "dnsdata": "10.10.10.16",
+ "dnstype": "A"
+ },
+ {
+ "a_part_ip_address": "10.10.10.10",
+ "dnsdata": "10.10.10.10",
+ "dnstype": "A"
+ },
+ {
+ "dnsdata": "10 abc",
+ "dnstype": "KX",
+ "kx_part_exchanger": "abc",
+ "kx_part_preference": "10"
+ },
+ {
+ "dnsdata": "11 foo",
+ "dnstype": "KX",
+ "kx_part_exchanger": "foo",
+ "kx_part_preference": "11"
+ },
+ {
+ "dnsdata": "data",
+ "dnstype": "TXT",
+ "txt_part_data": "data"
+ },
+ {
+ "aaaa_part_ip_address": "::1:2:3:4",
+ "dnsdata": "::1:2:3:4",
+ "dnstype": "AAAA"
+ }
],
- "keyrecord": [
- "key"
+ "idnsname": [
+ "my"
],
"objectclass": [
"top",
"idnsrecord"
- ],
- "srvrecord": [
- "1 1 80 dev"
- ],
- "txtrecord": [
- "A Text Record",
- "Another Text Record"
]
},
"summary": null,
- "value": "testrec"
+ "value": "my"
}
} \ No newline at end of file
diff --git a/install/ui/test/data/ipa_init.json b/install/ui/test/data/ipa_init.json
index 399a931b..0f6667fa 100644
--- a/install/ui/test/data/ipa_init.json
+++ b/install/ui/test/data/ipa_init.json
@@ -48,6 +48,7 @@
"add_many": "Add Many",
"cancel": "Cancel",
"close": "Close",
+ "edit": "Edit",
"find": "Find",
"get": "Get",
"issue": "Issue",
@@ -78,6 +79,7 @@
"confirmation": "Confirmation",
"dirty_message": "This page has unsaved changes. Please save or revert.",
"dirty_title": "Unsaved Changes",
+ "edit_title": "Edit ${entity}",
"hide_details": "Hide details",
"prospective": "Prospective",
"redirection": "Redirection",
diff --git a/install/ui/test/data/ipa_init_objects.json b/install/ui/test/data/ipa_init_objects.json
index 3fab4023..a3fa55e6 100644
--- a/install/ui/test/data/ipa_init_objects.json
+++ b/install/ui/test/data/ipa_init_objects.json
@@ -102,6 +102,7 @@
"multivalue": false,
"name": "description",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -121,7 +122,7 @@
"csv_separator": ",",
"csv_skipspace": true,
"default": null,
- "doc": "Default group for entires to land",
+ "doc": "Default group for entries to land",
"exclude": null,
"flags": [
"no_update",
@@ -137,6 +138,7 @@
"multivalue": false,
"name": "automemberdefaultgroup",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -234,6 +236,7 @@
"multivalue": false,
"name": "automountkey",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -265,6 +268,7 @@
"multivalue": false,
"name": "automountinformation",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -303,6 +307,7 @@
"multivalue": false,
"name": "description",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": true,
@@ -395,6 +400,7 @@
"multivalue": false,
"name": "cn",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": true,
@@ -489,6 +495,7 @@
"multivalue": false,
"name": "automountmapname",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": true,
@@ -520,6 +527,7 @@
"multivalue": false,
"name": "description",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -613,6 +621,7 @@
"minvalue": 1,
"multivalue": false,
"name": "ipamaxusernamelength",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -642,6 +651,7 @@
"multivalue": false,
"name": "ipahomesrootdir",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -673,6 +683,7 @@
"multivalue": false,
"name": "ipadefaultloginshell",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -704,6 +715,7 @@
"multivalue": false,
"name": "ipadefaultprimarygroup",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -735,6 +747,7 @@
"multivalue": false,
"name": "ipadefaultemaildomain",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -764,6 +777,7 @@
"minvalue": -1,
"multivalue": false,
"name": "ipasearchtimelimit",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -791,6 +805,7 @@
"minvalue": -1,
"multivalue": false,
"name": "ipasearchrecordslimit",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -820,6 +835,7 @@
"multivalue": false,
"name": "ipausersearchfields",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -851,6 +867,7 @@
"multivalue": false,
"name": "ipagroupsearchfields",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -884,6 +901,7 @@
"label": "Enable migration mode",
"multivalue": false,
"name": "ipamigrationenabled",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -921,6 +939,7 @@
"multivalue": false,
"name": "ipacertificatesubjectbase",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -952,6 +971,7 @@
"multivalue": true,
"name": "ipagroupobjectclasses",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -983,6 +1003,7 @@
"multivalue": true,
"name": "ipauserobjectclasses",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -1012,6 +1033,7 @@
"minvalue": 0,
"multivalue": false,
"name": "ipapwdexpadvnotify",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -1043,6 +1065,7 @@
"multivalue": false,
"name": "ipaconfigstring",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -1074,6 +1097,7 @@
"multivalue": false,
"name": "ipaselinuxusermaporder",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -1105,6 +1129,7 @@
"multivalue": false,
"name": "ipaselinuxusermapdefault",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -2089,6 +2114,7 @@
"multivalue": false,
"name": "cn",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": true,
@@ -2120,6 +2146,7 @@
"multivalue": false,
"name": "krbpwdpolicyreference",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -2149,6 +2176,7 @@
"minvalue": 0,
"multivalue": false,
"name": "cospriority",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": true,
@@ -2197,6 +2225,7 @@
"multivalue": false,
"name": "aciname",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": true,
@@ -2228,6 +2257,7 @@
"multivalue": true,
"name": "permissions",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -2259,6 +2289,7 @@
"multivalue": true,
"name": "attrs",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -2290,6 +2321,7 @@
"multivalue": false,
"name": "memberof",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -2321,6 +2353,7 @@
"multivalue": false,
"name": "group",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -2369,6 +2402,7 @@
"bindable": false,
"container_dn": "cn=dns",
"default_attributes": [
+ "idnsname",
"arecord",
"aaaarecord",
"a6record",
@@ -2402,8 +2436,7 @@
"tarecord",
"tkeyrecord",
"tsigrecord",
- "txtrecord",
- "idnsname"
+ "txtrecord"
],
"hidden_attributes": [
"objectclass",
@@ -2413,7 +2446,6 @@
"label_singular": "DNS Resource Record",
"methods": [
"add",
- "add_record",
"del",
"delentry",
"find",
@@ -2477,6 +2509,7 @@
"multivalue": false,
"name": "idnsname",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": true,
@@ -2506,6 +2539,7 @@
"minvalue": -2147483648,
"multivalue": false,
"name": "dnsttl",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -2531,6 +2565,7 @@
"label": "Class",
"multivalue": false,
"name": "dnsclass",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -2542,6 +2577,3687 @@
"CH",
"HS"
]
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Any",
+ "cli_name": "dnsrecords",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Records",
+ "exclude": null,
+ "flags": [
+ "no_update",
+ "no_create",
+ "no_search"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "Records",
+ "multivalue": false,
+ "name": "dnsrecords",
+ "option_group": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "object"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Str",
+ "cli_name": "dnstype",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Record type",
+ "exclude": null,
+ "flags": [
+ "no_update",
+ "no_create",
+ "no_search"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "Record type",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": false,
+ "name": "dnstype",
+ "noextrawhitespace": true,
+ "option_group": null,
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Str",
+ "cli_name": "dnsdata",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Record data",
+ "exclude": null,
+ "flags": [
+ "no_update",
+ "no_create",
+ "no_search"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "Record data",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": false,
+ "name": "dnsdata",
+ "noextrawhitespace": true,
+ "option_group": null,
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "ARecord",
+ "cli_name": "a_rec",
+ "cli_short_name": null,
+ "csv": true,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Comma-separated list of raw A records",
+ "exclude": null,
+ "flags": [],
+ "hint": null,
+ "include": null,
+ "label": "A record",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": true,
+ "name": "arecord",
+ "noextrawhitespace": true,
+ "normalizedns": true,
+ "option_group": "A Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode",
+ "validatedns": true
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Str",
+ "cli_name": "a_ip_address",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "IP Address",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "A IP Address",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": false,
+ "name": "a_part_ip_address",
+ "noextrawhitespace": true,
+ "option_group": "A Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "AAAARecord",
+ "cli_name": "aaaa_rec",
+ "cli_short_name": null,
+ "csv": true,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Comma-separated list of raw AAAA records",
+ "exclude": null,
+ "flags": [],
+ "hint": null,
+ "include": null,
+ "label": "AAAA record",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": true,
+ "name": "aaaarecord",
+ "noextrawhitespace": true,
+ "normalizedns": true,
+ "option_group": "AAAA Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode",
+ "validatedns": true
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Str",
+ "cli_name": "aaaa_ip_address",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "IP Address",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "AAAA IP Address",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": false,
+ "name": "aaaa_part_ip_address",
+ "noextrawhitespace": true,
+ "option_group": "AAAA Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "A6Record",
+ "cli_name": "a6_rec",
+ "cli_short_name": null,
+ "csv": true,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Comma-separated list of raw A6 records",
+ "exclude": null,
+ "flags": [],
+ "hint": null,
+ "include": null,
+ "label": "A6 record",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": true,
+ "name": "a6record",
+ "noextrawhitespace": true,
+ "normalizedns": true,
+ "option_group": "A6 Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode",
+ "validatedns": true
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "AFSDBRecord",
+ "cli_name": "afsdb_rec",
+ "cli_short_name": null,
+ "csv": true,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Comma-separated list of raw AFSDB records",
+ "exclude": null,
+ "flags": [],
+ "hint": null,
+ "include": null,
+ "label": "AFSDB record",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": true,
+ "name": "afsdbrecord",
+ "noextrawhitespace": true,
+ "normalizedns": true,
+ "option_group": "AFSDB Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode",
+ "validatedns": true
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Int",
+ "cli_name": "afsdb_subtype",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Subtype",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_optional",
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "AFSDB Subtype",
+ "maxvalue": 65535,
+ "minvalue": 0,
+ "multivalue": false,
+ "name": "afsdb_part_subtype",
+ "option_group": "AFSDB Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "int"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Str",
+ "cli_name": "afsdb_hostname",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Hostname",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "AFSDB Hostname",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": false,
+ "name": "afsdb_part_hostname",
+ "noextrawhitespace": true,
+ "option_group": "AFSDB Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "APLRecord",
+ "cli_name": "apl_rec",
+ "cli_short_name": null,
+ "csv": true,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Comma-separated list of raw APL records",
+ "exclude": null,
+ "flags": [
+ "no_option"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "APL record",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": true,
+ "name": "aplrecord",
+ "noextrawhitespace": true,
+ "normalizedns": true,
+ "option_group": "APL Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode",
+ "validatedns": true
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "CERTRecord",
+ "cli_name": "cert_rec",
+ "cli_short_name": null,
+ "csv": true,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Comma-separated list of raw CERT records",
+ "exclude": null,
+ "flags": [],
+ "hint": null,
+ "include": null,
+ "label": "CERT record",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": true,
+ "name": "certrecord",
+ "noextrawhitespace": true,
+ "normalizedns": true,
+ "option_group": "CERT Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode",
+ "validatedns": true
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Int",
+ "cli_name": "cert_type",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Certificate Type",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "CERT Certificate Type",
+ "maxvalue": 65535,
+ "minvalue": 0,
+ "multivalue": false,
+ "name": "cert_part_type",
+ "option_group": "CERT Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "int"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Int",
+ "cli_name": "cert_key_tag",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Key Tag",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "CERT Key Tag",
+ "maxvalue": 65535,
+ "minvalue": 0,
+ "multivalue": false,
+ "name": "cert_part_key_tag",
+ "option_group": "CERT Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "int"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Int",
+ "cli_name": "cert_algorithm",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Algorithm",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "CERT Algorithm",
+ "maxvalue": 255,
+ "minvalue": 0,
+ "multivalue": false,
+ "name": "cert_part_algorithm",
+ "option_group": "CERT Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "int"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Str",
+ "cli_name": "cert_certificate_or_crl",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Certificate/CRL",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "CERT Certificate/CRL",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": false,
+ "name": "cert_part_certificate_or_crl",
+ "noextrawhitespace": true,
+ "option_group": "CERT Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "CNAMERecord",
+ "cli_name": "cname_rec",
+ "cli_short_name": null,
+ "csv": true,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Comma-separated list of raw CNAME records",
+ "exclude": null,
+ "flags": [],
+ "hint": null,
+ "include": null,
+ "label": "CNAME record",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": true,
+ "name": "cnamerecord",
+ "noextrawhitespace": true,
+ "normalizedns": true,
+ "option_group": "CNAME Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode",
+ "validatedns": true
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Str",
+ "cli_name": "cname_hostname",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "A hostname which this alias hostname points to",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "CNAME Hostname",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": false,
+ "name": "cname_part_hostname",
+ "noextrawhitespace": true,
+ "option_group": "CNAME Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "DHCIDRecord",
+ "cli_name": "dhcid_rec",
+ "cli_short_name": null,
+ "csv": true,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Comma-separated list of raw DHCID records",
+ "exclude": null,
+ "flags": [
+ "no_option"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "DHCID record",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": true,
+ "name": "dhcidrecord",
+ "noextrawhitespace": true,
+ "normalizedns": true,
+ "option_group": "DHCID Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode",
+ "validatedns": true
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "DLVRecord",
+ "cli_name": "dlv_rec",
+ "cli_short_name": null,
+ "csv": true,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Comma-separated list of raw DLV records",
+ "exclude": null,
+ "flags": [
+ "no_option"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "DLV record",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": true,
+ "name": "dlvrecord",
+ "noextrawhitespace": true,
+ "normalizedns": true,
+ "option_group": "DLV Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode",
+ "validatedns": true
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "DNAMERecord",
+ "cli_name": "dname_rec",
+ "cli_short_name": null,
+ "csv": true,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Comma-separated list of raw DNAME records",
+ "exclude": null,
+ "flags": [],
+ "hint": null,
+ "include": null,
+ "label": "DNAME record",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": true,
+ "name": "dnamerecord",
+ "noextrawhitespace": true,
+ "normalizedns": true,
+ "option_group": "DNAME Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode",
+ "validatedns": true
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Str",
+ "cli_name": "dname_target",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Target",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "DNAME Target",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": false,
+ "name": "dname_part_target",
+ "noextrawhitespace": true,
+ "option_group": "DNAME Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "DNSKEYRecord",
+ "cli_name": "dnskey_rec",
+ "cli_short_name": null,
+ "csv": true,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Comma-separated list of raw DNSKEY records",
+ "exclude": null,
+ "flags": [
+ "no_option"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "DNSKEY record",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": true,
+ "name": "dnskeyrecord",
+ "noextrawhitespace": true,
+ "normalizedns": true,
+ "option_group": "DNSKEY Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode",
+ "validatedns": true
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "DSRecord",
+ "cli_name": "ds_rec",
+ "cli_short_name": null,
+ "csv": true,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Comma-separated list of raw DS records",
+ "exclude": null,
+ "flags": [],
+ "hint": null,
+ "include": null,
+ "label": "DS record",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": true,
+ "name": "dsrecord",
+ "noextrawhitespace": true,
+ "normalizedns": true,
+ "option_group": "DS Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode",
+ "validatedns": true
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Int",
+ "cli_name": "ds_key_tag",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Key Tag",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "DS Key Tag",
+ "maxvalue": 65535,
+ "minvalue": 0,
+ "multivalue": false,
+ "name": "ds_part_key_tag",
+ "option_group": "DS Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "int"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Int",
+ "cli_name": "ds_algorithm",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Algorithm",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "DS Algorithm",
+ "maxvalue": 255,
+ "minvalue": 0,
+ "multivalue": false,
+ "name": "ds_part_algorithm",
+ "option_group": "DS Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "int"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Int",
+ "cli_name": "ds_digest_type",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Digest Type",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "DS Digest Type",
+ "maxvalue": 255,
+ "minvalue": 0,
+ "multivalue": false,
+ "name": "ds_part_digest_type",
+ "option_group": "DS Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "int"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Str",
+ "cli_name": "ds_digest",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Digest",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "DS Digest",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": false,
+ "name": "ds_part_digest",
+ "noextrawhitespace": true,
+ "option_group": "DS Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "HIPRecord",
+ "cli_name": "hip_rec",
+ "cli_short_name": null,
+ "csv": true,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Comma-separated list of raw HIP records",
+ "exclude": null,
+ "flags": [
+ "no_option"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "HIP record",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": true,
+ "name": "hiprecord",
+ "noextrawhitespace": true,
+ "normalizedns": true,
+ "option_group": "HIP Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode",
+ "validatedns": true
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "IPSECKEYRecord",
+ "cli_name": "ipseckey_rec",
+ "cli_short_name": null,
+ "csv": true,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Comma-separated list of raw IPSECKEY records",
+ "exclude": null,
+ "flags": [
+ "no_option"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "IPSECKEY record",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": true,
+ "name": "ipseckeyrecord",
+ "noextrawhitespace": true,
+ "normalizedns": true,
+ "option_group": "IPSECKEY Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode",
+ "validatedns": true
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "KEYRecord",
+ "cli_name": "key_rec",
+ "cli_short_name": null,
+ "csv": true,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Comma-separated list of raw KEY records",
+ "exclude": null,
+ "flags": [],
+ "hint": null,
+ "include": null,
+ "label": "KEY record",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": true,
+ "name": "keyrecord",
+ "noextrawhitespace": true,
+ "normalizedns": true,
+ "option_group": "KEY Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode",
+ "validatedns": true
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Int",
+ "cli_name": "key_flags",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Flags",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "KEY Flags",
+ "maxvalue": 65535,
+ "minvalue": 0,
+ "multivalue": false,
+ "name": "key_part_flags",
+ "option_group": "KEY Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "int"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Int",
+ "cli_name": "key_protocol",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Protocol",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "KEY Protocol",
+ "maxvalue": 255,
+ "minvalue": 0,
+ "multivalue": false,
+ "name": "key_part_protocol",
+ "option_group": "KEY Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "int"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Int",
+ "cli_name": "key_algorithm",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Algorithm",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "KEY Algorithm",
+ "maxvalue": 255,
+ "minvalue": 0,
+ "multivalue": false,
+ "name": "key_part_algorithm",
+ "option_group": "KEY Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "int"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Str",
+ "cli_name": "key_public_key",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Public Key",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "KEY Public Key",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": false,
+ "name": "key_part_public_key",
+ "noextrawhitespace": true,
+ "option_group": "KEY Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "KXRecord",
+ "cli_name": "kx_rec",
+ "cli_short_name": null,
+ "csv": true,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Comma-separated list of raw KX records",
+ "exclude": null,
+ "flags": [],
+ "hint": null,
+ "include": null,
+ "label": "KX record",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": true,
+ "name": "kxrecord",
+ "noextrawhitespace": true,
+ "normalizedns": true,
+ "option_group": "KX Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode",
+ "validatedns": true
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Int",
+ "cli_name": "kx_preference",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Preference given to this exchanger. Lower values are more preferred",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "KX Preference",
+ "maxvalue": 65535,
+ "minvalue": 0,
+ "multivalue": false,
+ "name": "kx_part_preference",
+ "option_group": "KX Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "int"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Str",
+ "cli_name": "kx_exchanger",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "A host willing to act as a key exchanger",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "KX Exchanger",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": false,
+ "name": "kx_part_exchanger",
+ "noextrawhitespace": true,
+ "option_group": "KX Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "LOCRecord",
+ "cli_name": "loc_rec",
+ "cli_short_name": null,
+ "csv": true,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Comma-separated list of raw LOC records",
+ "exclude": null,
+ "flags": [],
+ "hint": null,
+ "include": null,
+ "label": "LOC record",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": true,
+ "name": "locrecord",
+ "noextrawhitespace": true,
+ "normalizedns": true,
+ "option_group": "LOC Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode",
+ "validatedns": true
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Int",
+ "cli_name": "loc_lat_deg",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Degrees Latitude",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "LOC Degrees Latitude",
+ "maxvalue": 90,
+ "minvalue": 0,
+ "multivalue": false,
+ "name": "loc_part_lat_deg",
+ "option_group": "LOC Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "int"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Int",
+ "cli_name": "loc_lat_min",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Minutes Latitude",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_optional",
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "LOC Minutes Latitude",
+ "maxvalue": 59,
+ "minvalue": 0,
+ "multivalue": false,
+ "name": "loc_part_lat_min",
+ "option_group": "LOC Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "int"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Float",
+ "cli_name": "loc_lat_sec",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Seconds Latitude",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_optional",
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "LOC Seconds Latitude",
+ "maxvalue": 59.999,
+ "minvalue": 0.0,
+ "multivalue": false,
+ "name": "loc_part_lat_sec",
+ "option_group": "LOC Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "float"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "StrEnum",
+ "cli_name": "loc_lat_dir",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Direction Latitude",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "LOC Direction Latitude",
+ "multivalue": false,
+ "name": "loc_part_lat_dir",
+ "option_group": "LOC Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode",
+ "values": [
+ "N",
+ "S"
+ ]
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Int",
+ "cli_name": "loc_lon_deg",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Degrees Longtitude",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "LOC Degrees Longtitude",
+ "maxvalue": 180,
+ "minvalue": 0,
+ "multivalue": false,
+ "name": "loc_part_lon_deg",
+ "option_group": "LOC Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "int"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Int",
+ "cli_name": "loc_lon_min",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Minutes Longtitude",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_optional",
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "LOC Minutes Longtitude",
+ "maxvalue": 59,
+ "minvalue": 0,
+ "multivalue": false,
+ "name": "loc_part_lon_min",
+ "option_group": "LOC Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "int"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Float",
+ "cli_name": "loc_lon_sec",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Seconds Longtitude",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_optional",
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "LOC Seconds Longtitude",
+ "maxvalue": 59.999,
+ "minvalue": 0.0,
+ "multivalue": false,
+ "name": "loc_part_lon_sec",
+ "option_group": "LOC Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "float"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "StrEnum",
+ "cli_name": "loc_lon_dir",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Direction Longtitude",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "LOC Direction Longtitude",
+ "multivalue": false,
+ "name": "loc_part_lon_dir",
+ "option_group": "LOC Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode",
+ "values": [
+ "E",
+ "W"
+ ]
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Float",
+ "cli_name": "loc_altitude",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Altitude",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "LOC Altitude",
+ "maxvalue": 42849672.95,
+ "minvalue": -100000.0,
+ "multivalue": false,
+ "name": "loc_part_altitude",
+ "option_group": "LOC Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "float"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Float",
+ "cli_name": "loc_size",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Size",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_optional",
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "LOC Size",
+ "maxvalue": 90000000.0,
+ "minvalue": 0.0,
+ "multivalue": false,
+ "name": "loc_part_size",
+ "option_group": "LOC Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "float"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Float",
+ "cli_name": "loc_h_precision",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Horizontal Precision",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_optional",
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "LOC Horizontal Precision",
+ "maxvalue": 90000000.0,
+ "minvalue": 0.0,
+ "multivalue": false,
+ "name": "loc_part_h_precision",
+ "option_group": "LOC Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "float"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Float",
+ "cli_name": "loc_v_precision",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Vertical Precision",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_optional",
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "LOC Vertical Precision",
+ "maxvalue": 90000000.0,
+ "minvalue": 0.0,
+ "multivalue": false,
+ "name": "loc_part_v_precision",
+ "option_group": "LOC Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "float"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "MXRecord",
+ "cli_name": "mx_rec",
+ "cli_short_name": null,
+ "csv": true,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Comma-separated list of raw MX records",
+ "exclude": null,
+ "flags": [],
+ "hint": null,
+ "include": null,
+ "label": "MX record",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": true,
+ "name": "mxrecord",
+ "noextrawhitespace": true,
+ "normalizedns": true,
+ "option_group": "MX Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode",
+ "validatedns": true
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Int",
+ "cli_name": "mx_preference",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Preference given to this exchanger. Lower values are more preferred",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "MX Preference",
+ "maxvalue": 65535,
+ "minvalue": 0,
+ "multivalue": false,
+ "name": "mx_part_preference",
+ "option_group": "MX Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "int"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Str",
+ "cli_name": "mx_exchanger",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "A host willing to act as a mail exchanger",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "MX Exchanger",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": false,
+ "name": "mx_part_exchanger",
+ "noextrawhitespace": true,
+ "option_group": "MX Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "NAPTRRecord",
+ "cli_name": "naptr_rec",
+ "cli_short_name": null,
+ "csv": true,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Comma-separated list of raw NAPTR records",
+ "exclude": null,
+ "flags": [],
+ "hint": null,
+ "include": null,
+ "label": "NAPTR record",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": true,
+ "name": "naptrrecord",
+ "noextrawhitespace": true,
+ "normalizedns": true,
+ "option_group": "NAPTR Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode",
+ "validatedns": true
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Int",
+ "cli_name": "naptr_order",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Order",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "NAPTR Order",
+ "maxvalue": 65535,
+ "minvalue": 0,
+ "multivalue": false,
+ "name": "naptr_part_order",
+ "option_group": "NAPTR Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "int"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Int",
+ "cli_name": "naptr_preference",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Preference",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "NAPTR Preference",
+ "maxvalue": 65535,
+ "minvalue": 0,
+ "multivalue": false,
+ "name": "naptr_part_preference",
+ "option_group": "NAPTR Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "int"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Str",
+ "cli_name": "naptr_flags",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Flags",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "NAPTR Flags",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": false,
+ "name": "naptr_part_flags",
+ "noextrawhitespace": true,
+ "option_group": "NAPTR Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Str",
+ "cli_name": "naptr_service",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Service",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "NAPTR Service",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": false,
+ "name": "naptr_part_service",
+ "noextrawhitespace": true,
+ "option_group": "NAPTR Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Str",
+ "cli_name": "naptr_regexp",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Regular Expression",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "NAPTR Regular Expression",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": false,
+ "name": "naptr_part_regexp",
+ "noextrawhitespace": true,
+ "option_group": "NAPTR Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Str",
+ "cli_name": "naptr_replacement",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Replacement",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "NAPTR Replacement",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": false,
+ "name": "naptr_part_replacement",
+ "noextrawhitespace": true,
+ "option_group": "NAPTR Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "NSRecord",
+ "cli_name": "ns_rec",
+ "cli_short_name": null,
+ "csv": true,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Comma-separated list of raw NS records",
+ "exclude": null,
+ "flags": [],
+ "hint": null,
+ "include": null,
+ "label": "NS record",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": true,
+ "name": "nsrecord",
+ "noextrawhitespace": true,
+ "normalizedns": true,
+ "option_group": "NS Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode",
+ "validatedns": true
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Str",
+ "cli_name": "ns_hostname",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Hostname",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "NS Hostname",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": false,
+ "name": "ns_part_hostname",
+ "noextrawhitespace": true,
+ "option_group": "NS Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "NSECRecord",
+ "cli_name": "nsec_rec",
+ "cli_short_name": null,
+ "csv": true,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Comma-separated list of raw NSEC records",
+ "exclude": null,
+ "flags": [],
+ "hint": null,
+ "include": null,
+ "label": "NSEC record",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": true,
+ "name": "nsecrecord",
+ "noextrawhitespace": true,
+ "normalizedns": true,
+ "option_group": "NSEC Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode",
+ "validatedns": true
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Str",
+ "cli_name": "nsec_next",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Next Domain Name",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "NSEC Next Domain Name",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": false,
+ "name": "nsec_part_next",
+ "noextrawhitespace": true,
+ "option_group": "NSEC Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "StrEnum",
+ "cli_name": "nsec_types",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Type Map",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "NSEC Type Map",
+ "multivalue": true,
+ "name": "nsec_part_types",
+ "option_group": "NSEC Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode",
+ "values": [
+ "SOA",
+ "A",
+ "AAAA",
+ "A6",
+ "AFSDB",
+ "APL",
+ "CERT",
+ "CNAME",
+ "DHCID",
+ "DLV",
+ "DNAME",
+ "DNSKEY",
+ "DS",
+ "HIP",
+ "IPSECKEY",
+ "KEY",
+ "KX",
+ "LOC",
+ "MX",
+ "NAPTR",
+ "NS",
+ "NSEC",
+ "NSEC3",
+ "NSEC3PARAM",
+ "PTR",
+ "RRSIG",
+ "RP",
+ "SIG",
+ "SPF",
+ "SRV",
+ "SSHFP",
+ "TA",
+ "TKEY",
+ "TSIG",
+ "TXT"
+ ]
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "NSEC3Record",
+ "cli_name": "nsec3_rec",
+ "cli_short_name": null,
+ "csv": true,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Comma-separated list of raw NSEC3 records",
+ "exclude": null,
+ "flags": [
+ "no_option"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "NSEC3 record",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": true,
+ "name": "nsec3record",
+ "noextrawhitespace": true,
+ "normalizedns": true,
+ "option_group": "NSEC3 Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode",
+ "validatedns": true
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "NSEC3PARAMRecord",
+ "cli_name": "nsec3param_rec",
+ "cli_short_name": null,
+ "csv": true,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Comma-separated list of raw NSEC3PARAM records",
+ "exclude": null,
+ "flags": [
+ "no_option"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "NSEC3PARAM record",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": true,
+ "name": "nsec3paramrecord",
+ "noextrawhitespace": true,
+ "normalizedns": true,
+ "option_group": "NSEC3PARAM Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode",
+ "validatedns": true
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "PTRRecord",
+ "cli_name": "ptr_rec",
+ "cli_short_name": null,
+ "csv": true,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Comma-separated list of raw PTR records",
+ "exclude": null,
+ "flags": [],
+ "hint": null,
+ "include": null,
+ "label": "PTR record",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": true,
+ "name": "ptrrecord",
+ "noextrawhitespace": true,
+ "normalizedns": true,
+ "option_group": "PTR Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode",
+ "validatedns": true
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Str",
+ "cli_name": "ptr_hostname",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "The hostname this reverse record points to",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "PTR Hostname",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": false,
+ "name": "ptr_part_hostname",
+ "noextrawhitespace": true,
+ "option_group": "PTR Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "RRSIGRecord",
+ "cli_name": "rrsig_rec",
+ "cli_short_name": null,
+ "csv": true,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Comma-separated list of raw RRSIG records",
+ "exclude": null,
+ "flags": [],
+ "hint": null,
+ "include": null,
+ "label": "RRSIG record",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": true,
+ "name": "rrsigrecord",
+ "noextrawhitespace": true,
+ "normalizedns": true,
+ "option_group": "RRSIG Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode",
+ "validatedns": true
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "StrEnum",
+ "cli_name": "rrsig_type_covered",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Type Covered",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "RRSIG Type Covered",
+ "multivalue": false,
+ "name": "rrsig_part_type_covered",
+ "option_group": "RRSIG Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode",
+ "values": [
+ "SOA",
+ "A",
+ "AAAA",
+ "A6",
+ "AFSDB",
+ "APL",
+ "CERT",
+ "CNAME",
+ "DHCID",
+ "DLV",
+ "DNAME",
+ "DNSKEY",
+ "DS",
+ "HIP",
+ "IPSECKEY",
+ "KEY",
+ "KX",
+ "LOC",
+ "MX",
+ "NAPTR",
+ "NS",
+ "NSEC",
+ "NSEC3",
+ "NSEC3PARAM",
+ "PTR",
+ "RRSIG",
+ "RP",
+ "SPF",
+ "SRV",
+ "SSHFP",
+ "TA",
+ "TKEY",
+ "TSIG",
+ "TXT"
+ ]
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Int",
+ "cli_name": "rrsig_algorithm",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Algorithm",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "RRSIG Algorithm",
+ "maxvalue": 255,
+ "minvalue": 0,
+ "multivalue": false,
+ "name": "rrsig_part_algorithm",
+ "option_group": "RRSIG Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "int"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Int",
+ "cli_name": "rrsig_labels",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Labels",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "RRSIG Labels",
+ "maxvalue": 255,
+ "minvalue": 0,
+ "multivalue": false,
+ "name": "rrsig_part_labels",
+ "option_group": "RRSIG Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "int"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Int",
+ "cli_name": "rrsig_original_ttl",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Original TTL",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "RRSIG Original TTL",
+ "maxvalue": 2147483647,
+ "minvalue": 0,
+ "multivalue": false,
+ "name": "rrsig_part_original_ttl",
+ "option_group": "RRSIG Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "int"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Str",
+ "cli_name": "rrsig_signature_expiration",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Signature Expiration",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "RRSIG Signature Expiration",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": false,
+ "name": "rrsig_part_signature_expiration",
+ "noextrawhitespace": true,
+ "option_group": "RRSIG Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Str",
+ "cli_name": "rrsig_signature_inception",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Signature Inception",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "RRSIG Signature Inception",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": false,
+ "name": "rrsig_part_signature_inception",
+ "noextrawhitespace": true,
+ "option_group": "RRSIG Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Int",
+ "cli_name": "rrsig_key_tag",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Key Tag",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "RRSIG Key Tag",
+ "maxvalue": 65535,
+ "minvalue": 0,
+ "multivalue": false,
+ "name": "rrsig_part_key_tag",
+ "option_group": "RRSIG Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "int"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Str",
+ "cli_name": "rrsig_signers_name",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Signer's Name",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "RRSIG Signer's Name",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": false,
+ "name": "rrsig_part_signers_name",
+ "noextrawhitespace": true,
+ "option_group": "RRSIG Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Str",
+ "cli_name": "rrsig_signature",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Signature",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "RRSIG Signature",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": false,
+ "name": "rrsig_part_signature",
+ "noextrawhitespace": true,
+ "option_group": "RRSIG Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "RPRecord",
+ "cli_name": "rp_rec",
+ "cli_short_name": null,
+ "csv": true,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Comma-separated list of raw RP records",
+ "exclude": null,
+ "flags": [
+ "no_option"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "RP record",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": true,
+ "name": "rprecord",
+ "noextrawhitespace": true,
+ "normalizedns": true,
+ "option_group": "RP Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode",
+ "validatedns": true
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "SIGRecord",
+ "cli_name": "sig_rec",
+ "cli_short_name": null,
+ "csv": true,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Comma-separated list of raw SIG records",
+ "exclude": null,
+ "flags": [],
+ "hint": null,
+ "include": null,
+ "label": "SIG record",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": true,
+ "name": "sigrecord",
+ "noextrawhitespace": true,
+ "normalizedns": true,
+ "option_group": "SIG Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode",
+ "validatedns": true
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "StrEnum",
+ "cli_name": "sig_type_covered",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Type Covered",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "SIG Type Covered",
+ "multivalue": false,
+ "name": "sig_part_type_covered",
+ "option_group": "SIG Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode",
+ "values": [
+ "SOA",
+ "A",
+ "AAAA",
+ "A6",
+ "AFSDB",
+ "APL",
+ "CERT",
+ "CNAME",
+ "DHCID",
+ "DLV",
+ "DNAME",
+ "DNSKEY",
+ "DS",
+ "HIP",
+ "IPSECKEY",
+ "KEY",
+ "KX",
+ "LOC",
+ "MX",
+ "NAPTR",
+ "NS",
+ "NSEC",
+ "NSEC3",
+ "NSEC3PARAM",
+ "PTR",
+ "RRSIG",
+ "RP",
+ "SPF",
+ "SRV",
+ "SSHFP",
+ "TA",
+ "TKEY",
+ "TSIG",
+ "TXT"
+ ]
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Int",
+ "cli_name": "sig_algorithm",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Algorithm",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "SIG Algorithm",
+ "maxvalue": 255,
+ "minvalue": 0,
+ "multivalue": false,
+ "name": "sig_part_algorithm",
+ "option_group": "SIG Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "int"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Int",
+ "cli_name": "sig_labels",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Labels",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "SIG Labels",
+ "maxvalue": 255,
+ "minvalue": 0,
+ "multivalue": false,
+ "name": "sig_part_labels",
+ "option_group": "SIG Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "int"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Int",
+ "cli_name": "sig_original_ttl",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Original TTL",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "SIG Original TTL",
+ "maxvalue": 2147483647,
+ "minvalue": 0,
+ "multivalue": false,
+ "name": "sig_part_original_ttl",
+ "option_group": "SIG Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "int"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Str",
+ "cli_name": "sig_signature_expiration",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Signature Expiration",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "SIG Signature Expiration",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": false,
+ "name": "sig_part_signature_expiration",
+ "noextrawhitespace": true,
+ "option_group": "SIG Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Str",
+ "cli_name": "sig_signature_inception",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Signature Inception",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "SIG Signature Inception",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": false,
+ "name": "sig_part_signature_inception",
+ "noextrawhitespace": true,
+ "option_group": "SIG Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Int",
+ "cli_name": "sig_key_tag",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Key Tag",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "SIG Key Tag",
+ "maxvalue": 65535,
+ "minvalue": 0,
+ "multivalue": false,
+ "name": "sig_part_key_tag",
+ "option_group": "SIG Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "int"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Str",
+ "cli_name": "sig_signers_name",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Signer's Name",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "SIG Signer's Name",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": false,
+ "name": "sig_part_signers_name",
+ "noextrawhitespace": true,
+ "option_group": "SIG Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Str",
+ "cli_name": "sig_signature",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Signature",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "SIG Signature",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": false,
+ "name": "sig_part_signature",
+ "noextrawhitespace": true,
+ "option_group": "SIG Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "SPFRecord",
+ "cli_name": "spf_rec",
+ "cli_short_name": null,
+ "csv": true,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Comma-separated list of raw SPF records",
+ "exclude": null,
+ "flags": [
+ "no_option"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "SPF record",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": true,
+ "name": "spfrecord",
+ "noextrawhitespace": true,
+ "normalizedns": true,
+ "option_group": "SPF Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode",
+ "validatedns": true
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "SRVRecord",
+ "cli_name": "srv_rec",
+ "cli_short_name": null,
+ "csv": true,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Comma-separated list of raw SRV records",
+ "exclude": null,
+ "flags": [],
+ "hint": null,
+ "include": null,
+ "label": "SRV record",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": true,
+ "name": "srvrecord",
+ "noextrawhitespace": true,
+ "normalizedns": true,
+ "option_group": "SRV Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode",
+ "validatedns": true
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Int",
+ "cli_name": "srv_priority",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Priority",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "SRV Priority",
+ "maxvalue": 65535,
+ "minvalue": 0,
+ "multivalue": false,
+ "name": "srv_part_priority",
+ "option_group": "SRV Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "int"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Int",
+ "cli_name": "srv_weight",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Weight",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "SRV Weight",
+ "maxvalue": 65535,
+ "minvalue": 0,
+ "multivalue": false,
+ "name": "srv_part_weight",
+ "option_group": "SRV Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "int"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Int",
+ "cli_name": "srv_port",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Port",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "SRV Port",
+ "maxvalue": 65535,
+ "minvalue": 0,
+ "multivalue": false,
+ "name": "srv_part_port",
+ "option_group": "SRV Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "int"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Str",
+ "cli_name": "srv_target",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "The domain name of the target host or '.' if the service is decidedly not available at this domain",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "SRV Target",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": false,
+ "name": "srv_part_target",
+ "noextrawhitespace": true,
+ "option_group": "SRV Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "SSHFPRecord",
+ "cli_name": "sshfp_rec",
+ "cli_short_name": null,
+ "csv": true,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Comma-separated list of raw SSHFP records",
+ "exclude": null,
+ "flags": [],
+ "hint": null,
+ "include": null,
+ "label": "SSHFP record",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": true,
+ "name": "sshfprecord",
+ "noextrawhitespace": true,
+ "normalizedns": true,
+ "option_group": "SSHFP Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode",
+ "validatedns": true
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Int",
+ "cli_name": "sshfp_algorithm",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Algorithm",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "SSHFP Algorithm",
+ "maxvalue": 255,
+ "minvalue": 0,
+ "multivalue": false,
+ "name": "sshfp_part_algorithm",
+ "option_group": "SSHFP Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "int"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Int",
+ "cli_name": "sshfp_fp_type",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Fingerprint Type",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "SSHFP Fingerprint Type",
+ "maxvalue": 255,
+ "minvalue": 0,
+ "multivalue": false,
+ "name": "sshfp_part_fp_type",
+ "option_group": "SSHFP Record",
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "int"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Str",
+ "cli_name": "sshfp_fingerprint",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Fingerprint",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "SSHFP Fingerprint",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": false,
+ "name": "sshfp_part_fingerprint",
+ "noextrawhitespace": true,
+ "option_group": "SSHFP Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode"
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "TARecord",
+ "cli_name": "ta_rec",
+ "cli_short_name": null,
+ "csv": true,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Comma-separated list of raw TA records",
+ "exclude": null,
+ "flags": [
+ "no_option"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "TA record",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": true,
+ "name": "tarecord",
+ "noextrawhitespace": true,
+ "normalizedns": true,
+ "option_group": "TA Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode",
+ "validatedns": true
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "TKEYRecord",
+ "cli_name": "tkey_rec",
+ "cli_short_name": null,
+ "csv": true,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Comma-separated list of raw TKEY records",
+ "exclude": null,
+ "flags": [
+ "no_option"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "TKEY record",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": true,
+ "name": "tkeyrecord",
+ "noextrawhitespace": true,
+ "normalizedns": true,
+ "option_group": "TKEY Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode",
+ "validatedns": true
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "TSIGRecord",
+ "cli_name": "tsig_rec",
+ "cli_short_name": null,
+ "csv": true,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Comma-separated list of raw TSIG records",
+ "exclude": null,
+ "flags": [
+ "no_option"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "TSIG record",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": true,
+ "name": "tsigrecord",
+ "noextrawhitespace": true,
+ "normalizedns": true,
+ "option_group": "TSIG Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode",
+ "validatedns": true
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "TXTRecord",
+ "cli_name": "txt_rec",
+ "cli_short_name": null,
+ "csv": true,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Comma-separated list of raw TXT records",
+ "exclude": null,
+ "flags": [],
+ "hint": null,
+ "include": null,
+ "label": "TXT record",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": true,
+ "name": "txtrecord",
+ "noextrawhitespace": true,
+ "normalizedns": true,
+ "option_group": "TXT Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode",
+ "validatedns": true
+ },
+ {
+ "alwaysask": false,
+ "attribute": false,
+ "autofill": false,
+ "class": "Str",
+ "cli_name": "txt_data",
+ "cli_short_name": null,
+ "csv": false,
+ "csv_separator": ",",
+ "csv_skipspace": true,
+ "default": null,
+ "doc": "Text Data",
+ "exclude": null,
+ "flags": [
+ "dnsrecord_part",
+ "virtual_attribute"
+ ],
+ "hint": null,
+ "include": null,
+ "label": "TXT Text Data",
+ "length": null,
+ "maxlength": null,
+ "minlength": null,
+ "multivalue": false,
+ "name": "txt_part_data",
+ "noextrawhitespace": true,
+ "option_group": "TXT Record",
+ "pattern": null,
+ "pattern_errmsg": null,
+ "primary_key": false,
+ "query": false,
+ "required": false,
+ "sortorder": 2,
+ "type": "unicode"
}
],
"uuid_attribute": ""
@@ -2710,6 +6426,7 @@
"multivalue": false,
"name": "idnsname",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": true,
@@ -2743,6 +6460,7 @@
"multivalue": false,
"name": "name_from_ip",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -2774,6 +6492,7 @@
"multivalue": false,
"name": "idnssoamname",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -2805,6 +6524,7 @@
"multivalue": false,
"name": "idnssoarname",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -2834,6 +6554,7 @@
"minvalue": 1,
"multivalue": false,
"name": "idnssoaserial",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": true,
@@ -2861,6 +6582,7 @@
"minvalue": 0,
"multivalue": false,
"name": "idnssoarefresh",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": true,
@@ -2888,6 +6610,7 @@
"minvalue": 0,
"multivalue": false,
"name": "idnssoaretry",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": true,
@@ -2915,6 +6638,7 @@
"minvalue": 0,
"multivalue": false,
"name": "idnssoaexpire",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": true,
@@ -2942,6 +6666,7 @@
"minvalue": 0,
"multivalue": false,
"name": "idnssoaminimum",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": true,
@@ -2969,6 +6694,7 @@
"minvalue": -2147483648,
"multivalue": false,
"name": "dnsttl",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -2994,6 +6720,7 @@
"label": "SOA class",
"multivalue": false,
"name": "dnsclass",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -3029,6 +6756,7 @@
"multivalue": false,
"name": "idnsupdatepolicy",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -3065,6 +6793,7 @@
"label": "Active zone",
"multivalue": false,
"name": "idnszoneactive",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -3102,6 +6831,7 @@
"label": "Dynamic update",
"multivalue": false,
"name": "idnsallowdynupdate",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -3303,6 +7033,7 @@
"multivalue": false,
"name": "cn",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": "^[a-zA-Z0-9_.][a-zA-Z0-9_.-]{0,252}[a-zA-Z0-9_.$-]?$",
"pattern_errmsg": "may only include letters, numbers, _, -, . and $",
"primary_key": true,
@@ -3334,6 +7065,7 @@
"multivalue": false,
"name": "description",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -3363,6 +7095,7 @@
"minvalue": -2147483648,
"multivalue": false,
"name": "gidnumber",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -3506,6 +7239,7 @@
"multivalue": false,
"name": "cn",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": true,
@@ -3538,6 +7272,7 @@
"label": "Rule type",
"multivalue": false,
"name": "accessruletype",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": true,
@@ -3567,6 +7302,7 @@
"label": "User category",
"multivalue": false,
"name": "usercategory",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -3595,6 +7331,7 @@
"label": "Host category",
"multivalue": false,
"name": "hostcategory",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -3623,6 +7360,7 @@
"label": "Source host category",
"multivalue": false,
"name": "sourcehostcategory",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -3651,6 +7389,7 @@
"label": "Service category",
"multivalue": false,
"name": "servicecategory",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -3683,6 +7422,7 @@
"multivalue": false,
"name": "description",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -3720,6 +7460,7 @@
"label": "Enabled",
"multivalue": false,
"name": "ipaenabledflag",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -3759,6 +7500,7 @@
"multivalue": false,
"name": "memberuser_user",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -3794,6 +7536,7 @@
"multivalue": false,
"name": "memberuser_group",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -3829,6 +7572,7 @@
"multivalue": false,
"name": "memberhost_host",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -3864,6 +7608,7 @@
"multivalue": false,
"name": "memberhost_hostgroup",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -3899,6 +7644,7 @@
"multivalue": false,
"name": "sourcehost_host",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -3934,6 +7680,7 @@
"multivalue": false,
"name": "sourcehost_hostgroup",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -3969,6 +7716,7 @@
"multivalue": false,
"name": "memberservice_hbacsvc",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -4004,6 +7752,7 @@
"multivalue": false,
"name": "memberservice_hbacsvcgroup",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -4105,6 +7854,7 @@
"multivalue": false,
"name": "cn",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": true,
@@ -4136,6 +7886,7 @@
"multivalue": false,
"name": "description",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -4244,6 +7995,7 @@
"multivalue": false,
"name": "cn",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": true,
@@ -4275,6 +8027,7 @@
"multivalue": false,
"name": "description",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -4422,6 +8175,7 @@
"multivalue": false,
"name": "fqdn",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": "^[a-zA-Z0-9][a-zA-Z0-9-\\.]{0,254}$",
"pattern_errmsg": "may only include letters, numbers, and -",
"primary_key": true,
@@ -4453,6 +8207,7 @@
"multivalue": false,
"name": "description",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -4484,6 +8239,7 @@
"multivalue": false,
"name": "l",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -4515,6 +8271,7 @@
"multivalue": false,
"name": "nshostlocation",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -4546,6 +8303,7 @@
"multivalue": false,
"name": "nshardwareplatform",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -4577,6 +8335,7 @@
"multivalue": false,
"name": "nsosversion",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -4608,6 +8367,7 @@
"multivalue": false,
"name": "userpassword",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -4644,6 +8404,7 @@
"label": "<random>",
"multivalue": false,
"name": "random",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -4684,6 +8445,7 @@
"multivalue": false,
"name": "randompassword",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -4714,6 +8476,7 @@
"minlength": null,
"multivalue": false,
"name": "usercertificate",
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -4749,6 +8512,7 @@
"multivalue": false,
"name": "krbprincipalname",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -4877,6 +8641,7 @@
"multivalue": false,
"name": "cn",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": true,
@@ -4908,6 +8673,7 @@
"multivalue": false,
"name": "description",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -4923,7 +8689,7 @@
"aciattrs": [],
"attribute_members": {},
"bindable": false,
- "container_dn": "cn=EXAMPLE.COM,cn=kerberos",
+ "container_dn": "cn=DEV.EXAMPLE.COM,cn=kerberos",
"default_attributes": [
"krbmaxticketlife",
"krbmaxrenewableage"
@@ -4993,6 +8759,7 @@
"multivalue": false,
"name": "uid",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": true,
@@ -5022,6 +8789,7 @@
"minvalue": 1,
"multivalue": false,
"name": "krbmaxticketlife",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -5049,6 +8817,7 @@
"minvalue": 1,
"multivalue": false,
"name": "krbmaxrenewableage",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -5185,6 +8954,7 @@
"multivalue": false,
"name": "cn",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": true,
@@ -5216,6 +8986,7 @@
"multivalue": false,
"name": "description",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -5247,6 +9018,7 @@
"multivalue": false,
"name": "nisdomainname",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -5281,6 +9053,7 @@
"multivalue": false,
"name": "ipauniqueid",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -5308,6 +9081,7 @@
"label": "User category",
"multivalue": false,
"name": "usercategory",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -5336,6 +9110,7 @@
"label": "Host category",
"multivalue": false,
"name": "hostcategory",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -5447,6 +9222,7 @@
"multivalue": false,
"name": "cn",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": true,
@@ -5478,6 +9254,7 @@
"multivalue": true,
"name": "permissions",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -5512,6 +9289,7 @@
"multivalue": true,
"name": "attrs",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -5542,6 +9320,7 @@
"label": "Type",
"multivalue": false,
"name": "type",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -5583,6 +9362,7 @@
"multivalue": false,
"name": "memberof",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -5617,6 +9397,7 @@
"multivalue": false,
"name": "filter",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -5651,6 +9432,7 @@
"multivalue": false,
"name": "subtree",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -5685,6 +9467,7 @@
"multivalue": false,
"name": "targetgroup",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -5807,6 +9590,7 @@
"multivalue": false,
"name": "cn",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": true,
@@ -5838,6 +9622,7 @@
"multivalue": false,
"name": "description",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -5864,7 +9649,7 @@
],
"attribute_members": {},
"bindable": false,
- "container_dn": "cn=EXAMPLE.COM,cn=kerberos",
+ "container_dn": "cn=DEV.EXAMPLE.COM,cn=kerberos",
"default_attributes": [
"cn",
"cospriority",
@@ -5948,6 +9733,7 @@
"multivalue": false,
"name": "cn",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": true,
@@ -5977,6 +9763,7 @@
"minvalue": 0,
"multivalue": false,
"name": "krbmaxpwdlife",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -6004,6 +9791,7 @@
"minvalue": 0,
"multivalue": false,
"name": "krbminpwdlife",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -6031,6 +9819,7 @@
"minvalue": 0,
"multivalue": false,
"name": "krbpwdhistorylength",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -6058,6 +9847,7 @@
"minvalue": 0,
"multivalue": false,
"name": "krbpwdmindiffchars",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -6085,6 +9875,7 @@
"minvalue": 0,
"multivalue": false,
"name": "krbpwdminlength",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -6114,6 +9905,7 @@
"minvalue": 0,
"multivalue": false,
"name": "cospriority",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": true,
@@ -6141,6 +9933,7 @@
"minvalue": 0,
"multivalue": false,
"name": "krbpwdmaxfailure",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -6168,6 +9961,7 @@
"minvalue": 0,
"multivalue": false,
"name": "krbpwdfailurecountinterval",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -6195,6 +9989,7 @@
"minvalue": 0,
"multivalue": false,
"name": "krbpwdlockoutduration",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -6312,6 +10107,7 @@
"multivalue": false,
"name": "cn",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": true,
@@ -6343,6 +10139,7 @@
"multivalue": false,
"name": "description",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -6393,6 +10190,7 @@
"multivalue": false,
"name": "aciname",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": true,
@@ -6424,6 +10222,7 @@
"multivalue": true,
"name": "permissions",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -6455,6 +10254,7 @@
"multivalue": true,
"name": "attrs",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -6580,6 +10380,7 @@
"multivalue": false,
"name": "cn",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": true,
@@ -6611,6 +10412,7 @@
"multivalue": false,
"name": "ipaselinuxuser",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -6642,6 +10444,7 @@
"multivalue": false,
"name": "seealso",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -6669,6 +10472,7 @@
"label": "User category",
"multivalue": false,
"name": "usercategory",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -6697,6 +10501,7 @@
"label": "Host category",
"multivalue": false,
"name": "hostcategory",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -6729,6 +10534,7 @@
"multivalue": false,
"name": "description",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -6766,6 +10572,7 @@
"label": "Enabled",
"multivalue": false,
"name": "ipaenabledflag",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -6805,6 +10612,7 @@
"multivalue": false,
"name": "memberuser_user",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -6840,6 +10648,7 @@
"multivalue": false,
"name": "memberuser_group",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -6875,6 +10684,7 @@
"multivalue": false,
"name": "memberhost_host",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -6910,6 +10720,7 @@
"multivalue": false,
"name": "memberhost_hostgroup",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -7024,6 +10835,7 @@
"multivalue": false,
"name": "krbprincipalname",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": true,
@@ -7056,6 +10868,7 @@
"minlength": null,
"multivalue": false,
"name": "usercertificate",
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -7157,6 +10970,7 @@
"multivalue": false,
"name": "sudocmd",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": true,
@@ -7188,6 +11002,7 @@
"multivalue": false,
"name": "description",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -7296,6 +11111,7 @@
"multivalue": false,
"name": "cn",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": true,
@@ -7327,6 +11143,7 @@
"multivalue": false,
"name": "description",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -7362,6 +11179,7 @@
"multivalue": false,
"name": "membercmd_sudocmd",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -7397,6 +11215,7 @@
"multivalue": false,
"name": "membercmd_sudocmdgroup",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -7470,7 +11289,11 @@
"memberhost",
"memberallowcmd",
"memberdenycmd",
- "ipasudoopt"
+ "ipasudoopt",
+ "ipasudorunas",
+ "ipasudorunasgroup",
+ "ipasudorunasusercategory",
+ "ipasudorunasgroupcategory"
],
"hidden_attributes": [
"objectclass",
@@ -7558,6 +11381,7 @@
"multivalue": false,
"name": "cn",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": true,
@@ -7589,6 +11413,7 @@
"multivalue": false,
"name": "description",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -7626,6 +11451,7 @@
"label": "Enabled",
"multivalue": false,
"name": "ipaenabledflag",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -7657,6 +11483,7 @@
"label": "User category",
"multivalue": false,
"name": "usercategory",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -7685,6 +11512,7 @@
"label": "Host category",
"multivalue": false,
"name": "hostcategory",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -7713,6 +11541,7 @@
"label": "Command category",
"multivalue": false,
"name": "cmdcategory",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -7741,6 +11570,7 @@
"label": "RunAs User category",
"multivalue": false,
"name": "ipasudorunasusercategory",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -7769,6 +11599,7 @@
"label": "RunAs Group category",
"multivalue": false,
"name": "ipasudorunasgroupcategory",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -7805,6 +11636,7 @@
"multivalue": false,
"name": "memberuser_user",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -7840,6 +11672,7 @@
"multivalue": false,
"name": "memberuser_group",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -7875,6 +11708,7 @@
"multivalue": false,
"name": "memberhost_host",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -7910,6 +11744,7 @@
"multivalue": false,
"name": "memberhost_hostgroup",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -7945,6 +11780,7 @@
"multivalue": false,
"name": "memberallowcmd_sudocmd",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -7980,6 +11816,7 @@
"multivalue": false,
"name": "memberdenycmd_sudocmd",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -8015,6 +11852,7 @@
"multivalue": false,
"name": "memberallowcmd_sudocmdgroup",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -8050,6 +11888,7 @@
"multivalue": false,
"name": "memberdenycmd_sudocmdgroup",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -8085,6 +11924,7 @@
"multivalue": false,
"name": "ipasudorunas_user",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -8120,6 +11960,7 @@
"multivalue": false,
"name": "ipasudorunas_group",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -8151,6 +11992,7 @@
"multivalue": false,
"name": "externaluser",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -8182,6 +12024,7 @@
"multivalue": false,
"name": "ipasudorunasextuser",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -8213,6 +12056,7 @@
"multivalue": false,
"name": "ipasudorunasextgroup",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -8248,6 +12092,7 @@
"multivalue": false,
"name": "ipasudoopt",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -8283,6 +12128,7 @@
"multivalue": false,
"name": "ipasudorunasgroup_group",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -8484,6 +12330,7 @@
"multivalue": false,
"name": "uid",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": "^[a-zA-Z0-9_.][a-zA-Z0-9_.-]{0,252}[a-zA-Z0-9_.$-]?$",
"pattern_errmsg": "may only include letters, numbers, _, -, . and $",
"primary_key": true,
@@ -8515,6 +12362,7 @@
"multivalue": false,
"name": "givenname",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -8546,6 +12394,7 @@
"multivalue": false,
"name": "sn",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -8577,6 +12426,7 @@
"multivalue": false,
"name": "cn",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -8608,6 +12458,7 @@
"multivalue": false,
"name": "displayname",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -8639,6 +12490,7 @@
"multivalue": false,
"name": "initials",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -8670,6 +12522,7 @@
"multivalue": false,
"name": "homedirectory",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -8701,6 +12554,7 @@
"multivalue": false,
"name": "gecos",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -8732,6 +12586,7 @@
"multivalue": false,
"name": "loginshell",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -8765,6 +12620,7 @@
"multivalue": false,
"name": "krbprincipalname",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -8796,6 +12652,7 @@
"multivalue": true,
"name": "mail",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -8830,6 +12687,7 @@
"multivalue": false,
"name": "userpassword",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -8866,6 +12724,7 @@
"label": "<random>",
"multivalue": false,
"name": "random",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
@@ -8906,6 +12765,7 @@
"multivalue": false,
"name": "randompassword",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -8935,6 +12795,7 @@
"minvalue": 1,
"multivalue": false,
"name": "uidnumber",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": true,
@@ -8962,6 +12823,7 @@
"minvalue": -2147483648,
"multivalue": false,
"name": "gidnumber",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": true,
@@ -8991,6 +12853,7 @@
"multivalue": false,
"name": "street",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -9022,6 +12885,7 @@
"multivalue": false,
"name": "l",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -9053,6 +12917,7 @@
"multivalue": false,
"name": "st",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -9084,6 +12949,7 @@
"multivalue": false,
"name": "postalcode",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -9115,6 +12981,7 @@
"multivalue": true,
"name": "telephonenumber",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -9146,6 +13013,7 @@
"multivalue": true,
"name": "mobile",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -9177,6 +13045,7 @@
"multivalue": true,
"name": "pager",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -9208,6 +13077,7 @@
"multivalue": true,
"name": "facsimiletelephonenumber",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -9239,6 +13109,7 @@
"multivalue": false,
"name": "ou",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -9270,6 +13141,7 @@
"multivalue": false,
"name": "title",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -9301,6 +13173,7 @@
"multivalue": false,
"name": "manager",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -9332,6 +13205,7 @@
"multivalue": false,
"name": "carlicense",
"noextrawhitespace": true,
+ "option_group": null,
"pattern": null,
"pattern_errmsg": null,
"primary_key": false,
@@ -9369,6 +13243,7 @@
"label": "Account disabled",
"multivalue": false,
"name": "nsaccountlock",
+ "option_group": null,
"primary_key": false,
"query": false,
"required": false,
diff --git a/install/ui/widget.js b/install/ui/widget.js
index a7dd81e6..21259ff8 100644
--- a/install/ui/widget.js
+++ b/install/ui/widget.js
@@ -744,6 +744,7 @@ IPA.radio_widget = function(spec) {
var that = IPA.input_widget(spec);
+ that.default_value = spec.default_value;
that.options = spec.options;
that.create = function(container) {
@@ -802,6 +803,9 @@ IPA.radio_widget = function(spec) {
var input = $(that.selector+'[value="'+value+'"]', that.container);
if (input.length) {
input.attr('checked', true);
+ } else if (that.default_value) {
+ input = $(that.selector+'[value="'+that.default_value+'"]', that.container);
+ input.attr('checked', true);
}
that.value_changed.notify([that.save()], that);
@@ -809,6 +813,11 @@ IPA.radio_widget = function(spec) {
that.clear = function() {
$(that.selector, that.container).attr('checked', false);
+
+ if (that.default_value) {
+ var input = $(that.selector+'[value="'+that.default_value+'"]', that.container);
+ input.attr('checked', true);
+ }
};
// methods that should be invoked by subclasses
@@ -1118,6 +1127,7 @@ IPA.table_widget = function (spec) {
that.multivalued = spec.multivalued === undefined ? true : spec.multivalued;
that.columns = $.ordered_map();
+ that.value_attr_name = spec.value_attribute || that.name;
that.get_columns = function() {
return that.columns.values;
@@ -1430,13 +1440,27 @@ IPA.table_widget = function (spec) {
that.empty();
- that.values = result[that.name] || [];
+ that.values = result[that.value_attr_name] || [];
for (var i=0; i<that.values.length; i++) {
var record = that.get_record(result, i);
that.add_record(record);
}
};
+ that.update = function(records) {
+
+ that.empty();
+
+ that.values = [];
+ that.records = records;
+
+ for (var i=0; i<records.length; i++) {
+ var record = records[i];
+ that.values.push(record[that.value_attr_name]);
+ that.add_record(record);
+ }
+ };
+
that.save = function() {
if (that.save_values) {
var values = [];
@@ -1495,16 +1519,19 @@ IPA.table_widget = function (spec) {
that.select_changed();
});
-
+ var select_set = false;
+ var value;
var columns = that.columns.values;
+
for (var i=0; i<columns.length; i++){
var column = columns[i];
- var value = record[column.name];
+ value = record[column.name];
value = value ? value.toString() : '';
if (column.primary_key) {
$('input[name="'+that.name+'"]', tr).val(value);
+ select_set = true;
}
var div = $('div[name="'+column.name+'"]', tr);
@@ -1512,6 +1539,11 @@ IPA.table_widget = function (spec) {
that.setup_column(column, div, record);
}
+ if (!select_set) {
+ value = record[that.value_attr_name];
+ $('input[name="'+that.name+'"]', tr).val(value);
+ }
+
return tr;
};
@@ -1581,6 +1613,7 @@ IPA.table_widget = function (spec) {
that.table_set_page = that.set_page;
that.table_show_error = that.show_error;
that.table_set_values = that.set_values;
+ that.table_update = that.update;
return that;
};
@@ -2370,17 +2403,21 @@ IPA.widget_builder = function(spec) {
return that;
};
-IPA.widget_factories['text'] = IPA.text_widget;
-IPA.widget_factories['password'] = IPA.password_widget;
+
+
IPA.widget_factories['checkbox'] = IPA.checkbox_widget;
IPA.widget_factories['checkboxes'] = IPA.checkboxes_widget;
-IPA.widget_factories['radio'] = IPA.radio_widget;
-IPA.widget_factories['multivalued'] = IPA.multivalued_text_widget;
-IPA.widget_factories['select'] = IPA.select_widget;
-IPA.widget_factories['textarea'] = IPA.textarea_widget;
-IPA.widget_factories['entity_select'] = IPA.entity_select_widget;
IPA.widget_factories['combobox'] = IPA.combobox_widget;
-IPA.widget_factories['link'] = IPA.link_widget;
+IPA.widget_factories['composite_widget'] = IPA.composite_widget;
IPA.widget_factories['details_table_section'] = IPA.details_table_section;
IPA.widget_factories['details_table_section_nc'] = IPA.details_table_section_nc;
IPA.widget_factories['enable'] = IPA.enable_widget;
+IPA.widget_factories['entity_select'] = IPA.entity_select_widget;
+IPA.widget_factories['header'] = IPA.header_widget;
+IPA.widget_factories['link'] = IPA.link_widget;
+IPA.widget_factories['multivalued'] = IPA.multivalued_text_widget;
+IPA.widget_factories['password'] = IPA.password_widget;
+IPA.widget_factories['radio'] = IPA.radio_widget;
+IPA.widget_factories['select'] = IPA.select_widget;
+IPA.widget_factories['textarea'] = IPA.textarea_widget;
+IPA.widget_factories['text'] = IPA.text_widget;
diff --git a/ipalib/plugins/internal.py b/ipalib/plugins/internal.py
index 3e60f41b..a2d8e98c 100644
--- a/ipalib/plugins/internal.py
+++ b/ipalib/plugins/internal.py
@@ -183,6 +183,7 @@ class i18n_messages(Command):
"add_many": _("Add Many"),
"cancel": _("Cancel"),
"close": _("Close"),
+ "edit": _("Edit"),
"find": _("Find"),
"get": _("Get"),
"issue": _("Issue"),
@@ -213,6 +214,7 @@ class i18n_messages(Command):
"confirmation": _("Confirmation"),
"dirty_message": _("This page has unsaved changes. Please save or revert."),
"dirty_title": _("Unsaved Changes"),
+ "edit_title": _("Edit ${entity}"),
"hide_details": _("Hide details"),
"prospective": _("Prospective"),
"redirection": _("Redirection"),