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
302 303 304 305 306 307 308 |
# File 'lib/openc3/script/script.rb', line 302 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
289 290 291 292 293 294 295 296 297 298 299 |
# File 'lib/openc3/script/script.rb', line 289 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
283 284 285 286 |
# File 'lib/openc3/script/script.rb', line 283 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
274 275 276 277 278 279 280 |
# File 'lib/openc3/script/script.rb', line 274 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
314 315 316 317 318 319 320 321 322 323 324 325 326 327 |
# File 'lib/openc3/script/script.rb', line 314 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
310 311 312 |
# File 'lib/openc3/script/script.rb', line 310 def shutdown @json_api.shutdown end |