클래스: Mongo::Srv::Resolver Private
- 상속:
-
객체
- 객체
- Mongo::Srv::Resolver
- 다음을 포함합니다.
- 로깅 가능
- 다음에 정의됨:
- build/ruby-driver-v2.19/lib/mongo/srv/resolver.rb
개요
이 클래스는 비공개 API의 일부입니다. 이 클래스는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
드라이버의 요구에 따라 SRV 레코드를 쿼리하는 데 필요한 동작을 캡슐화합니다.
상수 요약 접기
- RECORD_PREFIX =
이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
반환 REORD_PREFIX SRV 레코드를 쿼리하기 전에 각 호스트 이름 앞에 붙은 접두사.
'_mongodb._tcp.'.동결
Loggable에서 포함된 상수
인스턴스 속성 요약 접기
-
옵션 #개 ⇒ 해시
읽기 전용
비공개
리졸버 옵션.
인스턴스 메서드 요약 접기
-
#get_records(hostname, srv_service_name = nil, srv_max_hosts = nil) ⇒ Mongo::Srv::Result
비공개
지정된 호스트 이름에 대한 모든 SRV 레코드를 가져옵니다.
-
#get_txt_options_string(호스트 이름) ⇒ nil | string
비공개
호스팅하다 의 TXT 레코드를 가져옵니다.
-
#initialize(**opts) ⇒ 리졸버
생성자
비공개
새 해석기를 만듭니다.
-
#record_prefix(srv_service_name = nil) ⇒ string
비공개
사용자 지정 SRV 서비스 이름이 제공된 경우 해당 이름을 사용하여 레코드 접두사를 생성합니다.
- #timeout ⇒ 객체 비공개
Loggable에 포함된 메서드
#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger
생성자 세부 정보
#initialize(**opts) ⇒ 리졸버
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
새 해석기를 만듭니다.
51 52 53 54 55 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/srv/resolver.rb', 줄 51 def 초기화(**opts) @options = opts.동결 @resolver = Resolve::DNS.신규(@options[:resolv_options]) @resolver.시간 초과 = 타임아웃 end |
인스턴스 속성 세부 정보
#options ⇒ 해시 (읽기 전용)
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
리졸버 옵션을 반환합니다.
58 59 60 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/srv/resolver.rb', 줄 58 def @options end |
인스턴스 메서드 세부 정보
#get_records(hostname, srv_service_name = nil, srv_max_hosts = nil) ⇒ Mongo::Srv::Result
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
지정된 호스트 이름에 대한 모든 SRV 레코드를 가져옵니다. srv_max_hosts가 지정되었고 이 값이 0 보다 큰 경우 최대 srv_max_hosts 레코드를 반환합니다.
일치하지 않는 도메인이 있는 기록 를 찾거나 레코드를 찾을 수 없는 이벤트 :raise_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-v2.19/lib/mongo/srv/resolver.rb', 줄 84 def get_records(호스트 이름, srv_service_name=nil, srv_max_hosts=nil) query_name = record_prefix(srv_service_name) + 호스트 이름 리소스 = @resolver.getresources(query_name, Resolve::DNS::Resource::인::SRV) # 모든 레코드를 Result 객체 에 수집하여 오류를 발생시킵니다. # 또는 일치하지 않는 도메인이 있는 레코드가 발견되면 경고를 기록합니다. # 경고가 발생해도 기록은 _not_ # Result 객체 에 추가됩니다. 결과 = Srv::결과.신규(호스트 이름) 리소스.각 do |기록| 시작 결과.add_record(기록) 구출 오류::MismatchedDomain => e 만약 raise_on_invalid? 올리다 other log_warn(e.) end end end # 레코드를 찾을 수 없으면 오류를 제기하거나 경고를 기록합니다. # 리졸버의 :raise_on_invalid 옵션을 기반으로 합니다. 만약 결과.비어 있나요? 만약 raise_on_invalid? 올리다 오류::NoSRVRecords.신규(URI::SRVProtocol::NO_SRV_RECORDS % 호스트 이름) other log_warn(URI::SRVProtocol::NO_SRV_RECORDS % 호스트 이름) end end # srv_max_hosts가 [1, #addresses)에 있는 경우 만약 (1...결과.address_strs.분량).포함? srv_max_hosts sampled_records = 리소스.셔플.first(srv_max_hosts) 결과 = Srv::결과.신규(호스트 이름) sampled_records.각 { |기록| 결과.add_record(기록) } end 결과 end |
#get_txt_options_string(호스트 이름) ⇒ nil | string
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
호스팅하다 의 TXT 레코드를 가져옵니다.
132 133 134 135 136 137 138 139 140 141 142 143 144 145 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/srv/resolver.rb', 줄 132 def (호스트 이름) 기록 = @resolver.getresources(호스트 이름, Resolve::DNS::Resource::인::TXT) 만약 기록.비어 있나요? 반환 nil end 만약 기록.분량 > 1 msg = "TXT 레코드는 하나만 허용됩니다: 쿼리 호스트 이름 #{호스트 이름} 반환된 #{레코드.길이} 레코드" 올리다 오류::InvalidTXTRecord, msg end 기록[0].strings.가입 end |
#record_prefix(srv_service_name = nil) ⇒ string
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
사용자 지정 SRV 서비스 이름이 제공된 경우 해당 이름을 사용하여 레코드 접두사를 생성합니다.
38 39 40 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/srv/resolver.rb', 줄 38 def record_prefix(srv_service_name=nil) 반환 srv_service_name ? "_#{srv_service_name}._tcp." : RECORD_PREFIX end |
#timeout ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
60 61 62 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/srv/resolver.rb', 줄 60 def 타임아웃 [:timeout] || 모니터::DEFAULT_TIMEOUT end |