343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
|
# File 'lib/openc3/microservices/reaction_microservice.rb', line 343
def run_script(reaction:, action:)
begin
username = reaction.username
token = get_token(username)
raise "No token available for username: #{username}" unless token
request = Net::HTTP::Post.new(
"/script-api/scripts/#{action['value']}/run?scope=#{@scope}",
'Content-Type' => 'application/json',
'Authorization' => token
)
request.body = JSON.generate({
'scope' => @scope,
'environment' => action['environment'],
'reaction' => reaction.name,
'id' => Time.now.to_i
})
hostname = ENV['OPENC3_SCRIPT_HOSTNAME'] || 'openc3-cosmos-script-runner-api'
response = Net::HTTP.new(hostname, 2902).request(request)
raise "failed to call #{hostname}, for script: #{action['value']}, response code: #{response.code}" if response.code != '200'
@logger.info "ReactionWorker-#{@ident} #{reaction.name} script action complete, #{action['value']} => #{response.body}"
rescue StandardError => e
@logger.error "ReactionWorker-#{@ident} #{reaction.name} script action failed, #{action}\n#{e.message}"
end
end
|