クラス: Mongo::Srv::Resolver Private
- 継承:
-
オブジェクト
- オブジェクト
- Mongo::Srv::Resolver
- 次のことが含まれます。
- ログ記録可能
- 定義:
- build/ruby-Driver-v 2.19 /lib/mongo/srv/resolver.rb
Overview
このクラスは、プライベート API の一部です。 このクラスは将来削除または変更される可能性があるため、可能な限り使用しないでください。
ドライバーが必要とする SRV レコードのクエリに必要な動作をカプセル化します。
定数の概要の削減
- レコード_プレフィックス =
この定数は、プライベート API の一部です。 この定数は将来削除または変更される可能性があるため、可能な限り使用しないでください。
Record_Prefix を返します SRV レコードのクエリ前に各ホスト名の前に付けられたプレフィックス。
_mongodb._tcp '.freeze
Loggableに含まれる定数
インスタンス属性の概要を折りたたむ
-
#options ⇒ Hash
readOnly
private
リゾルバ オプション。
インスタンス メソッドの概要を折りたたむ
-
#get_records (ホスト名、srv_service_name = nil、srv_max_hosts = nil)=Mongo::Srv::Result
private
指定されたホスト名のすべての SRV レコードを取得します。
-
# get_tx_options_string (ホスト名) = nil | string
private
ホストの TXT レコードを取得します。
-
#初期化(**opts)=リゾルバ
コンストラクター
private
新しいリゾルバを作成します。
-
#Record_prefix (srv_service_name= nil) = nil) = string
private
カスタム SRV サービス名が指定されている場合は、レコード プレフィックスを生成します。
- #タイムアウト= オブジェクト private
Loggableに含まれるメソッド
#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger
コンストラクターの詳細
#初期化(**opts) =リゾルバ
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
新しいリゾルバを作成します。
51 52 53 54 55 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/srv/resolver.rb', 行51 デフォルト 初期化(**ops) @options = ops.freeze @resolver = 解決::DNS.新着情報(@options[:resolve_options]) @resolver.timeouts = タイムアウト end |
インスタンス属性の詳細
オプション=ハッシュ(読み取り専用)
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
リゾルバ オプションを返します。
58 59 60 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/srv/resolver.rb', 行58 デフォルト @options end |
インスタンス メソッドの詳細
#get_records (ホスト名、srv_service_name = nil、srv_max_hosts = nil)= Mongo::Srv::Result
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
指定されたホスト名のすべての SRV レコードを取得します。 srv_max_hosts が指定されており、それが0より大きい場合、 は最大 srv_max_hosts レコードを返します。
ドメインが一致しないレコードが見つかった場合、またはレコードが見つからない場合、 : resume_on_invalid オプションが true であれば例外が発生し、そうでない場合は警告がログに記録されます。
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/srv/resolver.rb', 行84 デフォルト get_records(Hostname, srv_service_name=nil, srv_max_hosts=nil) query_name = Record_prefix(srv_service_name) + Hostname リソース = @resolver.getresources(query_name, 解決::DNS::Resource::で::SRV) # すべてのレコードを結果オブジェクトに収集することでエラーが発生 # または では、ドメインが一致しないレコードが見つかった場合に警告を記録します。 # 警告が発生した場合、レコードは _not_ であることに注意してください。 結果オブジェクトに が追加されました。 結果 = Srv::結果.新着情報(Hostname) リソース.各 行う |レコード| begin 結果.add_record(レコード) ヘルプ エラー::MimatchedDomain => e 場合 raise_on_invalid? 発生 else log_警告(e.) end end end # レコードが見つからない場合は、エラーが発生するか、警告がログに記録されます リゾルバ の : resume_on_invalid オプションに基づきます。 場合 結果.空の場合 場合 raise_on_invalid? 発生 エラー::NoSRVRecords.新着情報(URI::SRVProtocol::no_SRV_RecordS % Hostname) else log_警告(URI::SRVProtocol::no_SRV_RecordS % Hostname) end end srv_max_hosts が [ 1 、# アドレス)にある場合は、 場合 (1...結果.address_strs.Length).include? srv_max_hosts sampled_records = リソース.シャットダウン.最初に(srv_max_hosts) 結果 = Srv::結果.新着情報(Hostname) sampled_records.各 { |レコード| 結果.add_record(レコード) } end 結果 end |
# get_tx_options_string (ホスト名) = nil | string
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
ホストの TXT レコードを取得します。
132 133 134 135 136 137 138 139 140 141 142 143 144 145 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/srv/resolver.rb', 行132 デフォルト (Hostname) レコード = @resolver.getresources(Hostname, 解決::DNS::Resource::で::TXT) 場合 レコード.空の場合 return nil end 場合 レコード.Length > 1 msg = " TXT レコードは 1 つだけ許可されます。ホスト名 #{ hostname } をクエリする と 、 #{ Records .Length } レコード が返さ れ ます 発生 エラー::InvalidTXTRecord, msg end レコード[0].string.join end |
#Record_prefix (srv_service_name= nil) = nil) = string
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
カスタム SRV サービス名が指定されている場合は、レコード プレフィックスを生成します。
38 39 40 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/srv/resolver.rb', 行38 デフォルト Record_prefix(srv_service_name=nil) return srv_service_name ? " _ #{ srv_service_name } ._tcp 。 " : レコード_プレフィックス end |
#タイムアウト=オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
60 61 62 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/srv/resolver.rb', 行60 デフォルト タイムアウト [:timeout] || モニター::DEFAULT_TIMEOUT end |