lib/minke/tasks/task.rb in minke-1.13.5 vs lib/minke/tasks/task.rb in minke-1.13.6

- old
+ new

@@ -7,11 +7,10 @@ def initialize args @config = args[:config] @task_name = args[:task_name] @docker_runner = args[:docker_runner] @task_runner = args[:task_runner] - @error_helper = args[:error_helper] @shell_helper = args[:shell_helper] @logger = args[:logger_helper] @generator_config = args[:generator_config] @docker_compose_factory = args[:docker_compose_factory] @consul = args[:consul] @@ -23,22 +22,35 @@ ## # run_with_config executes the task steps for the given # - block containing custom actions def run_with_block + success = true + begin @docker_network.create @consul.start_and_load_data @task_settings.consul_loader unless @task_settings.consul_loader == nil @task_runner.run_steps(@task_settings.pre) unless @task_settings == nil || @task_settings.pre == nil yield if block_given? @task_runner.run_steps(@task_settings.post) unless @task_settings == nil || @task_settings.post == nil + rescue Exception => e + @logger.error e.message + success = false ensure @consul.stop unless @task_settings.consul_loader == nil - @docker_network.remove + begin + @docker_network.remove + rescue Exception => e + # Trap removing a network as minke may have been called with an existing network and containers + # may still be attached. + @logger.error e.message + end end + + abort unless success end ## # runs the given command in a docker container def run_command_in_container command @@ -56,11 +68,11 @@ :working_directory => settings.working_directory } container, success = @docker_runner.create_and_run_container args # throw exception if failed - @error_helper.fatal_error "Unable to run command #{command}" unless success + raise "Unable to run command #{command}" unless success ensure @docker_runner.delete_container container end end @@ -73,11 +85,14 @@ build_file = @config.build_docker_file_for(@task_name) if build_file != nil build_image = "#{@config.application_name}-buildimage" + + @logger.debug "Building image: #{build_image} from file #{build_file}" @docker_runner.build_image build_file, build_image else + @logger.debug "Pulling image: #{build_image}" @docker_runner.pull_image build_image unless @docker_runner.find_image build_image end build_image end