クラス: Mongo::Srv::Resolver Private

継承:
オブジェクト
  • オブジェクト
すべて表示
次のことが含まれます。
ログ記録可能
定義:
build/ruby-Driver-v 2.19 /lib/mongo/srv/resolver.rb

Overview

このクラスは、プライベート API の一部です。 このクラスは将来削除または変更される可能性があるため、可能な限り使用しないでください。

ドライバーが必要とする SRV レコードのクエリに必要な動作をカプセル化します。

定数の概要の削減

レコード_プレフィックス =

この定数は、プライベート API の一部です。 この定数は将来削除または変更される可能性があるため、可能な限り使用しないでください。

Record_Prefix を返します SRV レコードのクエリ前に各ホスト名の前に付けられたプレフィックス。

次の値を返します。

  • ( string )

    Record_PRFIX レコードをクエリする前に各ホスト名の前に追加されるプレフィックス。

_mongodb._tcp '.freeze

Loggableに含まれる定数

ログ可能::PRFIX

インスタンス属性の概要を折りたたむ

インスタンス メソッドの概要を折りたたむ

Loggableに含まれるメソッド

#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger

コンストラクターの詳細

#初期化(**opts) =リゾルバ

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

新しいリゾルバを作成します。

パラメーター:

  • ops ハッシュ

    カスタマイズ可能なオプションのセット

オプション ハッシュ( * Ops ):

  • :timeout 浮動小数

    各 DNS レコード解決に使用するタイムアウト(秒単位)。

  • :raise_on_invalid ブール値

    ドメインが一致しないレコードが見つかった場合、またはレコードが見つからない場合に例外を発生させるかどうか。 デフォルトは true です。

  • :resolve_options ハッシュ

    内部ドライバーのみを使用します。 SRV lookup 用の Resolve::DNS コンストラクターに渡すオプション。



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
  @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 であれば例外が発生し、そうでない場合は警告がログに記録されます。

パラメーター:

  • Hostname ( string )

    レコードを取得するホスト名。

  • srv_service_name string | nil (デフォルトはnil

    DNS クエリの SRV サービス名。 nil の場合、「 MongoDB 」が使用されます。

  • srv_max_hosts (Integer | nil) (デフォルトはnil

    返されるレコードの最大数。 この値が nil の場合は、すべてのレコードを返します。

次の値を返します。

次の値が発生します。

  • Mongo::Error::MismatchedDomain

    : resume_in_in_invalid リゾルバ オプションが true で、かつホスト名と一致しないドメイン名を持つレコードが見つかります。

  • Mongo::Error::NoSRVRecords

    : resume_in_in_invalid Resolver オプションが 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 レコードを取得します。

パラメーター:

  • Hostname ( string )

    TXT レコードを取得するホスト。

次の値を返します。

  • ( nil | string )

    ホスト名に関連付けられた TXT レコードからの URI オプションstring 、またはレコードがない場合は nil 。

次の値が発生します。



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

デフォルト get_txt_options_string(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 サービス名が指定されている場合は、レコード プレフィックスを生成します。

パラメーター:

  • srv_service_name ハッシュ (デフォルトはnil

    カスタマイズ可能なオプションのセット

オプション ハッシュ( srv_service_name ):

  • この string | nil

    レコード プレフィックスで使用する SRV サービス名。

次の値を返します。

  • ( string )

    生成されたレコードのプレフィックス。



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

デフォルト タイムアウト
  options[:timeout] || モニター::DEFAULT_TIMEOUT
end