Class: OpenC3::ScriptServerProxy
Overview
Provides a proxy to the Script Runner Api which communicates with the API server
Instance Method Summary collapse
-
#generate_auth ⇒ Object
generate the auth object.
-
#generate_timeout ⇒ Object
pull openc3-cosmos-script-runner-api timeout from environment variables.
-
#generate_url ⇒ Object
pull openc3-cosmos-script-runner-api url from environment variables.
-
#initialize ⇒ ScriptServerProxy
constructor
Create a JsonDRbObject connection to the API server.
- #request(*method_params, **kw_params) ⇒ Object
- #shutdown ⇒ Object
Constructor Details
#initialize ⇒ ScriptServerProxy
Create a JsonDRbObject connection to the API server
284 285 286 287 288 289 290 |
# File 'lib/openc3/script/script.rb', line 284 def initialize @json_api = JsonApiObject.new( url: generate_url(), timeout: generate_timeout(), authentication: generate_auth() ) end |
Instance Method Details
#generate_auth ⇒ Object
generate the auth object
271 272 273 274 275 276 277 278 279 280 281 |
# File 'lib/openc3/script/script.rb', line 271 def generate_auth if ENV['OPENC3_API_TOKEN'].nil? and ENV['OPENC3_API_USER'].nil? if ENV['OPENC3_API_PASSWORD'] || ENV['OPENC3_SERVICE_PASSWORD'] return OpenC3Authentication.new() else return nil end else return OpenC3KeycloakAuthentication.new(ENV['OPENC3_KEYCLOAK_URL']) end end |
#generate_timeout ⇒ Object
pull openc3-cosmos-script-runner-api timeout from environment variables
265 266 267 268 |
# File 'lib/openc3/script/script.rb', line 265 def generate_timeout timeout = ENV['OPENC3_SCRIPT_API_TIMEOUT'] || '5.0' return timeout.to_f end |
#generate_url ⇒ Object
pull openc3-cosmos-script-runner-api url from environment variables
256 257 258 259 260 261 262 |
# File 'lib/openc3/script/script.rb', line 256 def generate_url schema = ENV['OPENC3_SCRIPT_API_SCHEMA'] || 'http' hostname = ENV['OPENC3_SCRIPT_API_HOSTNAME'] || (ENV['OPENC3_DEVEL'] ? '127.0.0.1' : 'openc3-cosmos-script-runner-api') port = ENV['OPENC3_SCRIPT_API_PORT'] || '2902' port = port.to_i return "#{schema}://#{hostname}:#{port}" end |
#request(*method_params, **kw_params) ⇒ Object
296 297 298 299 300 301 302 303 304 305 306 307 308 309 |
# File 'lib/openc3/script/script.rb', line 296 def request(*method_params, **kw_params) kw_params[:scope] = $openc3_scope unless kw_params[:scope] if $disconnect result = nil # If :disconnect is there delete it and return the value # If it is not there, delete returns nil disconnect = kw_params.delete(:disconnect) # If they overrode the return value using the disconnect keyword then return that return disconnect ? disconnect : result else @json_api.request(*method_params, **kw_params) end end |
#shutdown ⇒ Object
292 293 294 |
# File 'lib/openc3/script/script.rb', line 292 def shutdown @json_api.shutdown end |