Class: ArangoReplication
- Inherits:
-
ArangoServer
- Object
- ArangoServer
- ArangoReplication
- Defined in:
- lib/ArangoRB_Replication.rb
Overview
REPLICATION ===
Instance Attribute Summary collapse
-
#adaptivePolling ⇒ Object
Returns the value of attribute adaptivePolling.
-
#autoResync ⇒ Object
Returns the value of attribute autoResync.
-
#autoResyncRetries ⇒ Object
Returns the value of attribute autoResyncRetries.
-
#chunkSize ⇒ Object
Returns the value of attribute chunkSize.
-
#connectionRetryWaitTime ⇒ Object
Returns the value of attribute connectionRetryWaitTime.
-
#connectTimeout ⇒ Object
Returns the value of attribute connectTimeout.
-
#database ⇒ Object
readonly
Returns the value of attribute database.
-
#endpoint ⇒ Object
Returns the value of attribute endpoint.
-
#idleMaxWaitTime ⇒ Object
Returns the value of attribute idleMaxWaitTime.
-
#idleMinWaitTime ⇒ Object
Returns the value of attribute idleMinWaitTime.
-
#includeSystem ⇒ Object
Returns the value of attribute includeSystem.
-
#incremental ⇒ Object
Returns the value of attribute incremental.
-
#initialSyncMaxWaitTime ⇒ Object
Returns the value of attribute initialSyncMaxWaitTime.
-
#maxConnectRetries ⇒ Object
Returns the value of attribute maxConnectRetries.
-
#password ⇒ Object
Returns the value of attribute password.
-
#requestTimeout ⇒ Object
Returns the value of attribute requestTimeout.
-
#requireFromPresent ⇒ Object
Returns the value of attribute requireFromPresent.
-
#restrictCollections ⇒ Object
Returns the value of attribute restrictCollections.
-
#restrictType ⇒ Object
Returns the value of attribute restrictType.
-
#username ⇒ Object
Returns the value of attribute username.
-
#verbose ⇒ Object
Returns the value of attribute verbose.
Instance Method Summary collapse
- #configurationReplication ⇒ Object
-
#enslave ⇒ Object
ENSLAVE.
-
#firstTick ⇒ Object
TESTED.
-
#initialize(endpoint:, username:, password:, database: nil, includeSystem: true, initialSyncMaxWaitTime: nil, incremental: nil, restrictCollections: nil, verbose: false, connectTimeout: nil, autoResync: nil, idleMinWaitTime: nil, requestTimeout: nil, requireFromPresent: nil, idleMaxWaitTime: nil, restrictType: nil, maxConnectRetries: nil, adaptivePolling: nil, connectionRetryWaitTime: nil, autoResyncRetries: nil, chunkSize: nil) ⇒ ArangoReplication
constructor
A new instance of ArangoReplication.
-
#logger ⇒ Object
TESTED.
-
#loggerFollow(from: nil, to: nil, chunkSize: nil, includeSystem: false) ⇒ Object
TESTED.
- #master(endpoint:, username:, password:, database: nil) ⇒ Object
- #modifyConfigurationReplication ⇒ Object (also: #modifyReplication)
-
#rangeTick ⇒ Object
TESTED.
-
#serverId ⇒ Object
INFO.
-
#startReplication(from: nil) ⇒ Object
TESTED.
-
#stateReplication ⇒ Object
MANAGE CONFIGURATION.
-
#stopReplication ⇒ Object
TESTED.
-
#sync ⇒ Object
SYNCRONISATION.
- #to_hash ⇒ Object (also: #to_h)
Methods inherited from ArangoServer
address, async, async=, batch, cancelAsync, changePropertyWAL, checkPort, cluster, cluster=, clusterRoundtrip, clusterStatistics, collection, collection=, createDumpBatch, database, database=, databaseVersion, databases, default_server, destroyAllAsync, destroyAsync, destroyCluster, destroyDumpBatch, destroyExpiredAsync, echo, endpoints, execute, executeCluster, executeClusterHead, executeClusterPut, fetchAsync, flushWAL, graph, graph=, log, pendingAsync, prolongDumpBatch, propertyWAL, reload, request, restart, retrieveAsync, retrieveDoneAsync, retrievePendingAsync, return_result, return_result_async, role, server, serverId, shutdown, sleep, statistics, tasks, test, time, transactions, updateCluster, user, user=, username, users, verbose, verbose=, version
Constructor Details
#initialize(endpoint:, username:, password:, database: nil, includeSystem: true, initialSyncMaxWaitTime: nil, incremental: nil, restrictCollections: nil, verbose: false, connectTimeout: nil, autoResync: nil, idleMinWaitTime: nil, requestTimeout: nil, requireFromPresent: nil, idleMaxWaitTime: nil, restrictType: nil, maxConnectRetries: nil, adaptivePolling: nil, connectionRetryWaitTime: nil, autoResyncRetries: nil, chunkSize: nil) ⇒ ArangoReplication
Returns a new instance of ArangoReplication.
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/ArangoRB_Replication.rb', line 4 def initialize(endpoint:, username:, password:, database: nil, includeSystem: true, initialSyncMaxWaitTime: nil, incremental: nil, restrictCollections: nil, verbose: false, connectTimeout: nil, autoResync: nil, idleMinWaitTime: nil, requestTimeout: nil, requireFromPresent: nil, idleMaxWaitTime: nil, restrictType: nil, maxConnectRetries: nil, adaptivePolling: nil, connectionRetryWaitTime: nil, autoResyncRetries: nil, chunkSize: nil) if database.is_a?(String) || database.nil? @database = database elsif database.is_a?(ArangoDatabase) @database = database.database else raise "database should be nil, a String or an ArangoDatabase instance, not a #{database.class}" end if restrictType == "include" || restrictType == "exclude" || restrictType.nil? @restrictType = restrictType else raise "restrictType can be only \"include\" or \"exclude\"." end if restrictCollections.nil? @restrictCollections = nil else @restrictCollections = [] restrictCollections.each do |v| if v.is_a? (String) @restrictCollections << v elsif v.is_a? (ArangoCollection) @restrictCollections << v.name end end end @endpoint = endpoint @username = username @password = password @includeSytem = includeSystem @initialSyncMaxWaitTime = initialSyncMaxWaitTime, @incremental = incremental @verbose = verbose, @connectTimeout = connectTimeout @autoResync = autoResync @idleMinWaitTime = idleMinWaitTime @requestTimeout = requestTimeout @requireFromPresent = requireFromPresent @idleMaxWaitTime = idleMaxWaitTime @maxConnectRetries = maxConnectRetries @adaptivePolling = adaptivePolling @connectionRetryWaitTime = connectionRetryWaitTime @autoResyncRetries = autoResyncRetries @chunkSize = chunkSize end |
Instance Attribute Details
#adaptivePolling ⇒ Object
Returns the value of attribute adaptivePolling.
66 67 68 |
# File 'lib/ArangoRB_Replication.rb', line 66 def adaptivePolling @adaptivePolling end |
#autoResync ⇒ Object
Returns the value of attribute autoResync.
66 67 68 |
# File 'lib/ArangoRB_Replication.rb', line 66 def autoResync @autoResync end |
#autoResyncRetries ⇒ Object
Returns the value of attribute autoResyncRetries.
66 67 68 |
# File 'lib/ArangoRB_Replication.rb', line 66 def autoResyncRetries @autoResyncRetries end |
#chunkSize ⇒ Object
Returns the value of attribute chunkSize.
66 67 68 |
# File 'lib/ArangoRB_Replication.rb', line 66 def chunkSize @chunkSize end |
#connectionRetryWaitTime ⇒ Object
Returns the value of attribute connectionRetryWaitTime.
66 67 68 |
# File 'lib/ArangoRB_Replication.rb', line 66 def connectionRetryWaitTime @connectionRetryWaitTime end |
#connectTimeout ⇒ Object
Returns the value of attribute connectTimeout.
66 67 68 |
# File 'lib/ArangoRB_Replication.rb', line 66 def connectTimeout @connectTimeout end |
#database ⇒ Object (readonly)
Returns the value of attribute database.
67 68 69 |
# File 'lib/ArangoRB_Replication.rb', line 67 def database @database end |
#endpoint ⇒ Object
Returns the value of attribute endpoint.
66 67 68 |
# File 'lib/ArangoRB_Replication.rb', line 66 def endpoint @endpoint end |
#idleMaxWaitTime ⇒ Object
Returns the value of attribute idleMaxWaitTime.
66 67 68 |
# File 'lib/ArangoRB_Replication.rb', line 66 def idleMaxWaitTime @idleMaxWaitTime end |
#idleMinWaitTime ⇒ Object
Returns the value of attribute idleMinWaitTime.
66 67 68 |
# File 'lib/ArangoRB_Replication.rb', line 66 def idleMinWaitTime @idleMinWaitTime end |
#includeSystem ⇒ Object
Returns the value of attribute includeSystem.
66 67 68 |
# File 'lib/ArangoRB_Replication.rb', line 66 def includeSystem @includeSystem end |
#incremental ⇒ Object
Returns the value of attribute incremental.
66 67 68 |
# File 'lib/ArangoRB_Replication.rb', line 66 def incremental @incremental end |
#initialSyncMaxWaitTime ⇒ Object
Returns the value of attribute initialSyncMaxWaitTime.
66 67 68 |
# File 'lib/ArangoRB_Replication.rb', line 66 def initialSyncMaxWaitTime @initialSyncMaxWaitTime end |
#maxConnectRetries ⇒ Object
Returns the value of attribute maxConnectRetries.
66 67 68 |
# File 'lib/ArangoRB_Replication.rb', line 66 def maxConnectRetries @maxConnectRetries end |
#password ⇒ Object
Returns the value of attribute password.
66 67 68 |
# File 'lib/ArangoRB_Replication.rb', line 66 def password @password end |
#requestTimeout ⇒ Object
Returns the value of attribute requestTimeout.
66 67 68 |
# File 'lib/ArangoRB_Replication.rb', line 66 def requestTimeout @requestTimeout end |
#requireFromPresent ⇒ Object
Returns the value of attribute requireFromPresent.
66 67 68 |
# File 'lib/ArangoRB_Replication.rb', line 66 def requireFromPresent @requireFromPresent end |
#restrictCollections ⇒ Object
Returns the value of attribute restrictCollections.
67 68 69 |
# File 'lib/ArangoRB_Replication.rb', line 67 def restrictCollections @restrictCollections end |
#restrictType ⇒ Object
Returns the value of attribute restrictType.
67 68 69 |
# File 'lib/ArangoRB_Replication.rb', line 67 def restrictType @restrictType end |
#username ⇒ Object
Returns the value of attribute username.
66 67 68 |
# File 'lib/ArangoRB_Replication.rb', line 66 def username @username end |
#verbose ⇒ Object
Returns the value of attribute verbose.
66 67 68 |
# File 'lib/ArangoRB_Replication.rb', line 66 def verbose @verbose end |
Instance Method Details
#configurationReplication ⇒ Object
181 182 183 184 |
# File 'lib/ArangoRB_Replication.rb', line 181 def configurationReplication result = self.class.get("/_api/replication/applier-config", @@request) self.class.return_result result: result end |
#enslave ⇒ Object
ENSLAVE
146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 |
# File 'lib/ArangoRB_Replication.rb', line 146 def enslave body = { "username" => @username, "password" => @password, "endpoint" => @endpoint, "database" => @database, "includeSystem" => @includeSystem, "initialSyncMaxWaitTime" => @initialSyncMaxWaitTime, "verbose" => @verbose, "connectTimeout" => @connectTimeout, "autoResync" => @autoResync, "idleMinWaitTime" => @idleMinWaitTime, "requestTimeout" => @requestTimeout, "requireFromPresent" => @requireFromPresent, "idleMaxWaitTime" => @idleMaxWaitTime, "restrictType" => @restrictType, "maxConnectRetries" => @maxConnectRetries, "adaptivePolling" => @adaptivePolling, "connectionRetryWaitTime" => @connectionRetryWaitTime, "restrictCollections" => @restrictCollections, "autoResyncRetries" => @autoResyncRetries, "chunkSize" => @chunkSize }.delete_if{|k,v| v.nil?} request = @@request.merge({ :body => body.to_json }) result = self.class.put("/_api/replication/make-slave", request) self.class.return_result result: result end |
#firstTick ⇒ Object
TESTED
252 253 254 255 |
# File 'lib/ArangoRB_Replication.rb', line 252 def firstTick # TESTED result = self.class.get("/_db/#{@database}/_api/replication/logger-first-tick") self.class.return_result result: result, key: "firstTick" end |
#logger ⇒ Object
TESTED
235 236 237 238 |
# File 'lib/ArangoRB_Replication.rb', line 235 def logger # TESTED result = self.class.get("/_db/#{@database}/_api/replication/logger-state") self.class.return_result result: result end |
#loggerFollow(from: nil, to: nil, chunkSize: nil, includeSystem: false) ⇒ Object
TESTED
240 241 242 243 244 245 246 247 248 249 250 |
# File 'lib/ArangoRB_Replication.rb', line 240 def loggerFollow(from: nil, to: nil, chunkSize: nil, includeSystem: false) # TESTED query = { "from": from, "to": to, "chunkSize": chunkSize, "includeSystem": includeSystem }.delete_if{|k,v| v.nil?} request = @@request.merge({ :query => query }) result = self.class.get("/_db/#{@database}/_api/replication/logger-follow", request) self.class.return_result result: result end |
#master(endpoint:, username:, password:, database: nil) ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/ArangoRB_Replication.rb', line 52 def master(endpoint:, username:, password:, database: nil) if database.is_a?(String) || database.nil? @database = database elsif database.is_a?(ArangoDatabase) @database = database.database else raise "database should be nil, a String or an ArangoDatabase instance, not a #{database.class}" end @endpoint = endpoint @username = username @password = password end |
#modifyConfigurationReplication ⇒ Object Also known as: modifyReplication
186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 |
# File 'lib/ArangoRB_Replication.rb', line 186 def modifyConfigurationReplication body = { "username" => @username, "password" => @password, "includeSystem" => @includeSystem, "endpoint" => @endpoint, "initialSyncMaxWaitTime" => @initialSyncMaxWaitTime, "database" => @database, "verbose" => @verbose, "connectTimeout" => @connectTimeout, "autoResync" => @autoResync, "idleMinWaitTime" => @idleMinWaitTime, "requestTimeout" => @requestTimeout, "requireFromPresent" => @requireFromPresent, "idleMaxWaitTime" => @idleMaxWaitTime, "restrictType" => @restrictType, "maxConnectRetries" => @maxConnectRetries, "autoStart" => @autoStart, "adaptivePolling" => @adaptivePolling, "connectionRetryWaitTime" => @connectionRetryWaitTime, "restrictCollections" => @restrictCollections, "autoResyncRetries" => @autoResyncRetries, "chunkSize" => @chunkSize }.delete_if{|k,v| v.nil?} request = @@request.merge({ :body => body.to_json }) result = self.class.put("/_api/replication/applier-config", request) self.class.return_result result: result end |
#rangeTick ⇒ Object
TESTED
257 258 259 260 |
# File 'lib/ArangoRB_Replication.rb', line 257 def rangeTick # TESTED result = self.class.get("/_db/#{@database}/_api/replication/logger-tick-ranges") self.class.return_result result: result end |
#serverId ⇒ Object
INFO
230 231 232 233 |
# File 'lib/ArangoRB_Replication.rb', line 230 def serverId # TESTED result = self.class.get("/_db/#{@database}/_api/replication/server-id", @@request) self.class.return_result result: result, key: "serverId" end |
#startReplication(from: nil) ⇒ Object
TESTED
216 217 218 219 220 221 |
# File 'lib/ArangoRB_Replication.rb', line 216 def startReplication(from: nil) # TESTED query = {from: from}.delete_if{|k,v| v.nil?} request = @@request.merge({ :query => query }) result = self.class.put("/_api/replication/applier-start", request) self.class.return_result result: result end |
#stateReplication ⇒ Object
MANAGE CONFIGURATION
176 177 178 179 |
# File 'lib/ArangoRB_Replication.rb', line 176 def stateReplication # TESTED result = self.class.get("/_db/#{@database}/_api/replication/applier-state", @@request) self.class.return_result result: result end |
#stopReplication ⇒ Object
TESTED
223 224 225 226 |
# File 'lib/ArangoRB_Replication.rb', line 223 def stopReplication # TESTED result = self.class.put("/_api/replication/applier-stop", @@request) self.class.return_result result: result end |
#sync ⇒ Object
SYNCRONISATION
127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 |
# File 'lib/ArangoRB_Replication.rb', line 127 def sync body = { "username" => @username, "password" => @password, "endpoint" => @endpoint, "database" => @database, "includeSystem" => @includeSystem, "initialSyncMaxWaitTime" => @initialSyncMaxWaitTime, "restrictType" => @restrictType, "incremental" => @incremental, "restrictCollections" => @restrictCollections }.delete_if{|k,v| v.nil?} request = @@request.merge({ :body => body.to_json }) result = self.class.put("/_api/replication/sync", request) self.class.return_result result: result end |
#to_hash ⇒ Object Also known as: to_h
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 |
# File 'lib/ArangoRB_Replication.rb', line 93 def to_hash master { "master" => { "endpoint" => @endpoint, "username" => @username, "password" => @password, "database" => @database }.delete_if{|k,v| v.nil?}, "options" => { "includeSytem" => @includeSystem, "initialSyncMaxWaitTime" => @initialSyncMaxWaitTime, "restrictType" => @restrictType, "incremental" => @incremental, "restrictCollections" => @restrictCollections, "verbose" => @verbose, "connectTimeout" => @connectTimeout, "autoResync" => @autoResync, "idleMinWaitTime" => @idleMinWaitTime, "requestTimeout" => @requestTimeout, "requireFromPresent" => @requireFromPresent, "idleMaxWaitTime" => @idleMaxWaitTime, "maxConnectRetries" => @maxConnectRetries, "adaptivePolling" => @adaptivePolling, "connectionRetryWaitTime" => @connectionRetryWaitTime, "autoResyncRetries" => @autoResyncRetries, "chunkSize" => @chunkSize }.delete_if{|k,v| v.nil?} } end |