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
313 314 315 316 317 318 319 |
# File 'lib/openc3/script/script.rb', line 313 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
300 301 302 303 304 305 306 307 308 309 310 |
# File 'lib/openc3/script/script.rb', line 300 def generate_auth if ENV['OPENC3_API_TOKEN'].nil? and ENV['OPENC3_API_USER'].nil? if ENV['OPENC3_API_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
294 295 296 297 |
# File 'lib/openc3/script/script.rb', line 294 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
285 286 287 288 289 290 291 |
# File 'lib/openc3/script/script.rb', line 285 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
325 326 327 328 329 330 331 332 333 334 335 336 |
# File 'lib/openc3/script/script.rb', line 325 def request(*method_params, **kw_params) kw_params[:scope] = $openc3_scope unless kw_params[:scope] # If :disconnect is there delete it and return the value # If it is not there, delete returns nil disconnect = kw_params.delete(:disconnect) if $disconnect and disconnect # If they overrode the return value using the disconnect keyword then return that return disconnect else @json_api.request(*method_params, **kw_params) end end |
#shutdown ⇒ Object
321 322 323 |
# File 'lib/openc3/script/script.rb', line 321 def shutdown @json_api.shutdown end |