Class: K3cloud::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/k3cloud/configuration.rb

Constant Summary collapse

DEFAULT_LCID =
2052
DEFAULT_CONNECT_TIMEOUT =
30
DEFAULT_REQUEST_TIMEOUT =
60
DEFAULT_LOG_FORMAT =
:text
DEFAULT_RETRY_MAX =
3
DEFAULT_RETRY_INTERVAL =
1
DEFAULT_RETRY_BACKOFF =
2
REQUIRED_FIELDS =
%i[acct_id user_name app_id app_secret].freeze

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) {|_self| ... } ⇒ Configuration

Returns a new instance of Configuration.

Yields:

  • (_self)

Yield Parameters:



55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/k3cloud/configuration.rb', line 55

def initialize(options = {})
  @acct_id          = options[:acct_id]
  @user_name        = options[:user_name]
  @password         = options[:password]
  @app_id           = options[:app_id]
  @app_secret       = options[:app_secret]
  @server_url       = options[:server_url]
  @org_num          = options[:org_num]
  @lcid             = options.fetch(:lcid, DEFAULT_LCID)
  @connect_timeout  = options.fetch(:connect_timeout, DEFAULT_CONNECT_TIMEOUT)
  @request_timeout  = options.fetch(:request_timeout, DEFAULT_REQUEST_TIMEOUT)
  @verify_ssl       = options.fetch(:verify_ssl, true)
  @log_format       = options.fetch(:log_format, DEFAULT_LOG_FORMAT)
  @retry_max        = options.fetch(:retry_max, DEFAULT_RETRY_MAX)
  @retry_interval   = options.fetch(:retry_interval, DEFAULT_RETRY_INTERVAL)
  @retry_backoff    = options.fetch(:retry_backoff, DEFAULT_RETRY_BACKOFF)

  yield(self) if block_given?
end

Instance Attribute Details

#acct_idObject

账套ID(即数据中心id)



11
12
13
# File 'lib/k3cloud/configuration.rb', line 11

def acct_id
  @acct_id
end

#app_idObject

第三方系统登录授权的应用ID



26
27
28
# File 'lib/k3cloud/configuration.rb', line 26

def app_id
  @app_id
end

#app_secretObject

第三方系统登录授权的应用密钥



29
30
31
# File 'lib/k3cloud/configuration.rb', line 29

def app_secret
  @app_secret
end

#connect_timeoutObject

连接/请求超时(秒)。 verify_ssl 仅对 https 生效(http URL 自动跳过 SSL 校验); 私有云 https 自签证书时可设为 false 关闭校验,默认 true。



37
38
39
# File 'lib/k3cloud/configuration.rb', line 37

def connect_timeout
  @connect_timeout
end

#lcidObject

账套语系,默认2052 2052: 简体中文 1033: 英文 3076: 繁体中文



17
18
19
# File 'lib/k3cloud/configuration.rb', line 17

def lcid
  @lcid
end

#log_formatObject

日志输出格式::text(默认,常规 Logger 格式)或 :json(每行一个 JSON)



40
41
42
# File 'lib/k3cloud/configuration.rb', line 40

def log_format
  @log_format
end

#org_numObject

组织编码,启用多组织时配置对应的组织编码才有效



32
33
34
# File 'lib/k3cloud/configuration.rb', line 32

def org_num
  @org_num
end

#passwordObject

集成用户登录密码



23
24
25
# File 'lib/k3cloud/configuration.rb', line 23

def password
  @password
end

#request_timeoutObject

连接/请求超时(秒)。 verify_ssl 仅对 https 生效(http URL 自动跳过 SSL 校验); 私有云 https 自签证书时可设为 false 关闭校验,默认 true。



37
38
39
# File 'lib/k3cloud/configuration.rb', line 37

def request_timeout
  @request_timeout
end

#retry_backoffObject

请求重试:对超时与 5xx 进行重试。retry_max=0 表示不重试



43
44
45
# File 'lib/k3cloud/configuration.rb', line 43

def retry_backoff
  @retry_backoff
end

#retry_intervalObject

请求重试:对超时与 5xx 进行重试。retry_max=0 表示不重试



43
44
45
# File 'lib/k3cloud/configuration.rb', line 43

def retry_interval
  @retry_interval
end

#retry_maxObject

请求重试:对超时与 5xx 进行重试。retry_max=0 表示不重试



43
44
45
# File 'lib/k3cloud/configuration.rb', line 43

def retry_max
  @retry_max
end

#server_urlObject

服务Url地址(私有云必须配置金蝶云星空产品地址,K3Cloud/结尾。若为公有云则必须置空)



8
9
10
# File 'lib/k3cloud/configuration.rb', line 8

def server_url
  @server_url
end

#user_nameObject

第三方系统登录授权的集成用户名称



20
21
22
# File 'lib/k3cloud/configuration.rb', line 20

def user_name
  @user_name
end

#verify_sslObject

连接/请求超时(秒)。 verify_ssl 仅对 https 生效(http URL 自动跳过 SSL 校验); 私有云 https 自签证书时可设为 false 关闭校验,默认 true。



37
38
39
# File 'lib/k3cloud/configuration.rb', line 37

def verify_ssl
  @verify_ssl
end

Class Method Details

.defaultObject



85
86
87
# File 'lib/k3cloud/configuration.rb', line 85

def default
  @default ||= Configuration.new
end

.reset_default!Object

测试或重新配置时重置默认配置



90
91
92
# File 'lib/k3cloud/configuration.rb', line 90

def reset_default!
  @default = nil
end

Instance Method Details

#validate!Object

校验必填字段。nil 视为未配置,空串视为兼容历史不阻断。



76
77
78
79
80
81
82
# File 'lib/k3cloud/configuration.rb', line 76

def validate!
  missing = REQUIRED_FIELDS.select { |f| public_send(f).nil? }
  return if missing.empty?

  raise K3cloud::ConfigurationError,
        "K3cloud configuration missing: #{missing.join(", ")}. Please set them in K3cloud.configure."
end