类:Mongo::Server::AppMetadata Private

继承:
对象
  • 对象
显示全部
扩展方式:
可转发
定义于:
构建/ruby-driver-v2.19/lib/ mongo / 服务器/app_metadata.rb
构建/ruby-driver-v2.19/lib/ mongo / 服务器/app_metadata/platform.rb,
构建/ruby-driver-v2.19/lib/ mongo / 服务器/app_metadata/truncator.rb,
构建/ruby-driver-v2.19/lib/ mongo / 服务器/app_metadata/environment.rb

Overview

此类是私有 API 的一部分。 应尽可能避免使用此类,因为它将来可能会被删除或更改。

在握手期间发送到服务器的应用程序元数据,

when a new connection is established.

由于:

  • 2.0.0

直接已知子类

Monitor::AppMetadata

在命名空间下定义

类: 环境,平台,截断器

常量摘要折叠

MAX_APP_NAME_SIZE =

此常量是私有 API 的一部分。 应尽可能避免使用此常量,因为它将来可能会被删除或更改。

应用程序名称的最大字节大小。

由于:

  • 2.0.0

128
DRIVER_NAME =

此常量是私有 API 的一部分。 应尽可能避免使用此常量,因为它将来可能会被删除或更改。

驱动程序名称。

由于:

  • 2.0.0

'mongo-Ruby-driver'
AUTH_OPTION_KEYS =

此常量是私有 API 的一部分。 应尽可能避免使用此常量,因为它将来可能会被删除或更改。

影响身份验证机制协商的选项键。

由于:

  • 2.0.0

%i[ user auth_source auth_mech].冻结
用途 =

此常量是私有 API 的一部分。 应尽可能避免使用此常量,因为它将来可能会被删除或更改。

可能的连接目的。

由于:

  • 2.0.0

%i[ 应用程序 监控 push_monitor ].冻结

实例属性摘要折叠

实例方法摘要折叠

构造函数详情

#initialize (options = {}) ⇒ AppMetadata

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

实例化新的 AppMetadata对象。

例子:

实例化应用元数据。

Mongo::Server::AppMetadata.new(options)

参数:

  • 选项 哈希 (默认为: {}

    Metadata options.

选项哈希 ( options ):

  • :app_name string符号

    在服务器版本 >= 3.4 中建立连接时打印到 mongod 日志的应用程序名称。

  • :auth_mech 符号

    要使用的身份验证机制。 :mongodb_cr、:mongodb_x 509 、:plain、:scram、:scram 256之一

  • :auth_source string

    要从中进行身份验证的来源。

  • :compressors ( Array<String> )

    要使用的潜在压缩器列表(按优先顺序排列)。 驱动程序会选择服务器也支持的第一个压缩程序。 目前该驱动程序仅支持“zstd”、“snappy”和“zlib”。

  • :platform string

    在服务器版本 >= 3.4 中建立连接时打印到 mongod 日志的元数据中包含的平台信息。

  • :目的 符号

    此连接的目的。

  • :server_api 哈希

    请求的服务器 API 版本。 此哈希可以包含以下项目:

    • :version – string

    • :strict – 布尔值

    • :deprecation_errors – 布尔值

  • : user string

    用户名。

  • :wrapping_libraries ( Array<Hash> )

    有关包装驱动程序的库(例如 ODM)的信息。 首先指定较低级别的库。 允许的哈希键::name、:version、:platform。

由于:

  • 2.4.0



74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 服务器/app_metadata.rb', 第74行

def 初始化(选项 = {})
  @app_name = 选项[:app_name].to_s if 选项[:app_name]
  @platform = 选项[:platform]

  @ Purpose = check_ Purpose!(选项[:目的])

  @compressors = 选项[:compressors] || []
  @wrapping_libraries = 选项[:wrapping_libraries]
  @server_api = 选项[:server_api]

  return 除非 选项[: user] && !选项[:auth_mech]

  auth_db = 选项[:auth_source] || ' admin '
  @request_auth_mech = " #{ auth_db } . #{ options [ :user ] } "
end

实例属性详细信息

#平台string (只读)

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

返回 实例化对象时给出的平台信息。

返回:

  • ( string )

    实例化对象时给出的平台信息。

由于:

  • 2.0.0



96
97
98
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 服务器/app_metadata.rb', 第96行

def 平台
  @platform
end

# Purpose符号(只读)

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

返回 创建此应用元数据的连接用途。

返回:

  • (符号)

    创建此应用元数据的连接目的。

由于:

  • 2.0.0



92
93
94
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 服务器/app_metadata.rb', 第92行

def 用途
  @ Purpose
end

# server_api哈希 | nil (只读)

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

返回 请求的服务器API版本。

哈希可以包含以下项目:

  • :version – string

  • :strict – 布尔值

  • :deprecation_errors – 布尔值。

返回:

  • ( Hash | nil )

    请求的服务器API版本。

    哈希可以包含以下项目:

    • :version – string

    • :strict – 布尔值

    • :deprecation_errors – 布尔值

由于:

  • 2.0.0



104
105
106
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 服务器/app_metadata.rb', 第104行

def server_api
  @server_api
end

#wrapping_librariesArray<Hash> | nil (只读)

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

返回有关包装驾驶员的库的信息。

返回:

  • ( Array<Hash> | nil )

    有关包装驱动程序的库的信息。

由于:

  • 2.0.0



108
109
110
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 服务器/app_metadata.rb', 第108行

def wrapping_libraries
  @wrapping_libraries
end

实例方法详细信息

#client_documentBSON::Document

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

获取BSON ::Document,用作握手文档中“客户端”密钥的值。

返回:

  • ( BSON::Document )

    描述握手客户端的文档。

由于:

  • 2.0.0



128
129
130
131
132
133
134
135
136
137
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 服务器/app_metadata.rb', 第128行

def client_document
  @client_document ||=
    BSON::文档.new.点击 do |doc|
      doc[:应用程序] = { 名称: @app_name } if @app_name
      doc[:driver] = driver_doc
      doc[:os] = os_doc
      doc[:platform] = platform_string
      env_doc.点击 { |env| doc[:env] = env if env }
    end
end

#validated_documentBSON::Document

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

获取BSON ::Document 形式的元数据,作为握手的一部分发送到该元数据。 该文档应附加适当的握手命令。

此方法可确保元数据有效。

返回:

  • ( BSON::Document )

    连接握手的有效文档。

引发:

由于:

  • 2.0.0



119
120
121
122
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 服务器/app_metadata.rb', 第119行

def valid_document
  validate!
  文档
end