module AssMaintainer::InfoBase::ServerIb::EnterpriseServers::WpConnection
@api private Object for comunication with 1C Working process. @example
wp_connection = WpConnection.new(wp_info).connect(infobase_wrapper)
Constants
- DROP_MODES
Drop infobase modes defines what should do with infobase's database.
-
0 - databse willn't be deleted
-
1 - databse will be deleted
-
2 - database willn't be deleted but will be cleared
-
- DeniedFrom
- DeniedMessage
- DeniedTo
- Name
- PermissionCode
- ScheduledJobsDenied
- SessionsDenied
Attributes
infobase_wrapper[R]
wp_info[R]
Public Class Methods
new(wp_info)
click to toggle source
Make new object of anonymous class which included this module. @param wp_info
(see initialize)
# File lib/ass_maintainer/info_base/server_ib/enterprise_servers/wp_connection.rb, line 23 def self.new(wp_info) Class.new do include WpConnection end.new wp_info end
new(wp_info)
click to toggle source
@param wp_info
[Wrappers::WorkingProcessInfo]
# File lib/ass_maintainer/info_base/server_ib/enterprise_servers/wp_connection.rb, line 34 def initialize(wp_info) @wp_info = wp_info end
Public Instance Methods
_reconnect_required?()
click to toggle source
# File lib/ass_maintainer/info_base/server_ib/enterprise_servers/wp_connection.rb, line 180 def _reconnect_required? getInfoBases.empty? end
authenticate()
click to toggle source
# File lib/ass_maintainer/info_base/server_ib/enterprise_servers/wp_connection.rb, line 76 def authenticate AuthenticateAdmin(cluster.user.to_s, cluster.password.to_s) authenticate_infobase_admin end
authenticate?()
click to toggle source
# File lib/ass_maintainer/info_base/server_ib/enterprise_servers/wp_connection.rb, line 93 def authenticate? false end
authenticate_infobase_admin()
click to toggle source
# File lib/ass_maintainer/info_base/server_ib/enterprise_servers/wp_connection.rb, line 81 def authenticate_infobase_admin AddAuthentication(user, pass) ole_connector.GetInfoBaseConnections(ib_info_create) true end
cluster()
click to toggle source
# File lib/ass_maintainer/info_base/server_ib/enterprise_servers/wp_connection.rb, line 46 def cluster wp_info.cluster end
connect(infobase_wrapper)
click to toggle source
@param infobase_wrapper
[InfoBaseWrapper]
# File lib/ass_maintainer/info_base/server_ib/enterprise_servers/wp_connection.rb, line 67 def connect(infobase_wrapper) @infobase_wrapper = infobase_wrapper _connect host_port, sagent.platform_require end
connections()
click to toggle source
# File lib/ass_maintainer/info_base/server_ib/enterprise_servers/wp_connection.rb, line 118 def connections GetInfoBaseConnections(infobase_info) end
drop_connections()
click to toggle source
# File lib/ass_maintainer/info_base/server_ib/enterprise_servers/wp_connection.rb, line 140 def drop_connections connections.each do |conn| Disconnect(conn) end end
drop_infobase!(mode)
click to toggle source
# File lib/ass_maintainer/info_base/server_ib/enterprise_servers/wp_connection.rb, line 101 def drop_infobase!(mode) fail ArgumentError, "Invalid mode #{mode}" unless DROP_MODES[mode] lock_infobase!(nil, nil, "BEFORE DROP INFOBASE", '') DropInfoBase(infobase_info, DROP_MODES[mode]) end
drop_sessions()
click to toggle source
# File lib/ass_maintainer/info_base/server_ib/enterprise_servers/wp_connection.rb, line 134 def drop_sessions infobase_wrapper.sessions.each do |sess| sess.terminate end end
host_port()
click to toggle source
# File lib/ass_maintainer/info_base/server_ib/enterprise_servers/wp_connection.rb, line 50 def host_port "#{wp_info.HostName}:#{wp_info.MainPort}" end
ib_info_create()
click to toggle source
# File lib/ass_maintainer/info_base/server_ib/enterprise_servers/wp_connection.rb, line 87 def ib_info_create ii = createInfoBaseInfo ii.Name = ib_ref ii end
ib_ref()
click to toggle source
# File lib/ass_maintainer/info_base/server_ib/enterprise_servers/wp_connection.rb, line 72 def ib_ref infobase_wrapper.ib_ref end
infobase_exists?()
click to toggle source
# File lib/ass_maintainer/info_base/server_ib/enterprise_servers/wp_connection.rb, line 97 def infobase_exists? infobase_include? ib_ref end
infobase_info()
click to toggle source
# File lib/ass_maintainer/info_base/server_ib/enterprise_servers/wp_connection.rb, line 107 def infobase_info fail 'Infobase not exists' unless infobase_exists? authenticate_infobase_admin infobase_find ib_ref end
infobases()
click to toggle source
# File lib/ass_maintainer/info_base/server_ib/enterprise_servers/wp_connection.rb, line 175 def infobases reconnect getInfoBases end
lock_infobase!(from, to, code, mess)
click to toggle source
# File lib/ass_maintainer/info_base/server_ib/enterprise_servers/wp_connection.rb, line 146 def lock_infobase!(from, to, code, mess) lock_sessions!(from, to, code, mess) lock_schjobs! drop_sessions drop_connections end
lock_schjobs!()
click to toggle source
# File lib/ass_maintainer/info_base/server_ib/enterprise_servers/wp_connection.rb, line 163 def lock_schjobs! ii = infobase_info ii.ScheduledJobsDenied = true UpdateInfoBase(ii) end
lock_sessions!(from, to, code, mess)
click to toggle source
# File lib/ass_maintainer/info_base/server_ib/enterprise_servers/wp_connection.rb, line 122 def lock_sessions!(from, to, code, mess) fail ArgumentError, 'Permission code won\'t be empty' if\ code.to_s.empty? ii = infobase_info ii.DeniedFrom = (from.nil? ? Date.parse('1973.09.07') : from).to_time ii.DeniedTo = (to.nil? ? Date.parse('2073.09.07') : to).to_time ii.DeniedMessage = mess.to_s ii.SessionsDenied = true ii.PermissionCode = code UpdateInfoBase(ii) end
locked?()
click to toggle source
# File lib/ass_maintainer/info_base/server_ib/enterprise_servers/wp_connection.rb, line 113 def locked? ii = infobase_info ii.SessionsDenied end
pass()
click to toggle source
# File lib/ass_maintainer/info_base/server_ib/enterprise_servers/wp_connection.rb, line 58 def pass infobase_wrapper.ib.pwd.to_s end
ping?()
click to toggle source
# File lib/ass_maintainer/info_base/server_ib/enterprise_servers/wp_connection.rb, line 62 def ping? wp_info.ping? end
raise_unless_unlock_possable(err, unlock_code)
click to toggle source
# File lib/ass_maintainer/info_base/server_ib/enterprise_servers/wp_connection.rb, line 185 def raise_unless_unlock_possable(err, unlock_code) ii = infobase_info return if !ii.SessionsDenied return if ii.PermissionCode.to_s.empty? return if unlock_code.to_s.downcase == ii.PermissionCode .to_s.downcase fail err, "Infobase is locked and PermissionCode:"\ " `#{ii.PermissionCode}' not match unlock_code: `#{unlock_code}'" end
runtime_type()
click to toggle source
# File lib/ass_maintainer/info_base/server_ib/enterprise_servers/wp_connection.rb, line 38 def runtime_type :wp end
sagent()
click to toggle source
# File lib/ass_maintainer/info_base/server_ib/enterprise_servers/wp_connection.rb, line 42 def sagent wp_info.sagent end
unlock_schjobs!()
click to toggle source
# File lib/ass_maintainer/info_base/server_ib/enterprise_servers/wp_connection.rb, line 169 def unlock_schjobs! ii = infobase_info ii.ScheduledJobsDenied = false UpdateInfoBase(ii) end
unlock_sessions!()
click to toggle source
# File lib/ass_maintainer/info_base/server_ib/enterprise_servers/wp_connection.rb, line 153 def unlock_sessions! ii = infobase_info ii.DeniedFrom = Date.parse('1973.09.07').to_time ii.DeniedTo = Date.parse('1973.09.07').to_time ii.DeniedMessage = '' ii.SessionsDenied = false ii.PermissionCode = '' UpdateInfoBase(ii) end
user()
click to toggle source
# File lib/ass_maintainer/info_base/server_ib/enterprise_servers/wp_connection.rb, line 54 def user infobase_wrapper.ib.usr.to_s end