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