This is the processing done when the EnumInputParameters is of type DnsServerEnumerationParameters. The ObjectType MUST be EnumerationObjectType.DnsServer. This is used to enumerate the DNS server instances based on certain conditions specified as a part of the DnsServerEnumerationParameters. The following are the processing steps involved in identifying the rows that have to be returned for the enumeration:

  1. If the DnsServerEnumerationParameters.Filter contains the key ServerInfoGetServerFilter.Role, replace the filter condition with ServerRoleType.Dns. If the filter condition is not specified, add the filter condition for ServerRoleType.Dns.

  2. If the DnsServerEnumerationParameters.Filter contains the key ServerInfoGetServersFilter.RecordId, the RecordId specified will be the RecordId of the DNS Server Role and it has to be converted to the ServerInfo RecordId. For this, enumerate the row in ADM_ServerRolesTable whose RecordId is the value of RecordId filter specified. Get the ServerRecordID out of the row. If the row is not found having the RecordId to be the RecordId of the filter, an appropriate SOAP fault MUST be returned. Replace the ServerInfoGetServersFilter.RecordId with the ServerRecordId fetch.

  3. Call the procedure GetFilteredServerInfoFromTable procedure in ADM_ServersTable passing the DnsServerEnumerationParameters.Filter as Param_filters.

  4. For each row ServerInfoRow in the Result_filteredServerInfoRows, perform the following processing steps.

    1. Lookup the ADM_ServerRolesTable for the row with ServerRecordId being ServerInfoRow.RecordId and ServerRoleDetails.ServerRoleFlag is ServerRoleType.Dns.

    2. Call the procedure GetDnsServerFromTable by passing the RecordId of the row in ADM_ServerRolesTable as Param_Id.

    3. Add the Result_DnsServer to EnumOutputData.