Sha256: 1f7145446dadada8986fdf6cce3ff50b96cb6cdcd22c553703a2f7e4132b3590
Contents?: true
Size: 1.55 KB
Versions: 3
Compression:
Stored size: 1.55 KB
Contents
# frozen_string_literal: true require 'choria/colt/cache' require 'choria/colt/version' require 'choria/orchestrator' require 'choria/orchestrator/task' require 'logger' module Choria class Colt class Error < StandardError; end attr_reader :logger, :orchestrator def initialize(logger: nil) @logger = logger @orchestrator = Choria::Orchestrator.new logger: @logger end def run_bolt_task(task_name, input: {}, targets: nil) logger.debug "Instantiate task '#{task_name}' and validate input" task = Choria::Orchestrator::Task.new(task_name, input: input, orchestrator: orchestrator) orchestrator.run(task, targets: targets) task.wait task.results rescue Choria::Orchestrator::Error => e logger.error e.message raise end def tasks(environment:, cache: nil) tasks_names = orchestrator.tasks_support.tasks(environment).map do |task| task['name'] end def tasks_metadata(tasks, environment) tasks.map do |task| logger.debug "Fetching metadata for task '#{task}' (environment: '#{environment}')" metadata = orchestrator.tasks_support.task_metadata(task, environment) [task, metadata] end.to_h end return tasks_metadata(tasks_names, environment) if cache.nil? cached_tasks = cache.load return cached_tasks if cache.clean? && cached_tasks.keys.sort == tasks_names.sort updated_tasks = tasks_metadata(tasks_names, environment) cache.save updated_tasks updated_tasks end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
choria-colt-0.2.0 | lib/choria/colt.rb |
choria-colt-0.1.1 | lib/choria/colt.rb |
choria-colt-0.1.0 | lib/choria/colt.rb |