cloudfoundry/cloud_controller_ng

View on GitHub
app/actions/process_terminate.rb

Summary

Maintainability
A
0 mins
Test Coverage
module VCAP::CloudController
  class ProcessTerminate
    class InstanceNotFound < StandardError; end

    def initialize(user_audit_info, process, index)
      @user_audit_info = user_audit_info
      @process = process
      @index = index
    end

    def terminate
      raise InstanceNotFound unless @index < @process.instances && @index >= 0

      index_stopper.stop_index(@process, @index)
      record_audit_events
    end

    private

    def record_audit_events
      Repositories::ProcessEventRepository.record_terminate(
        @process,
        @user_audit_info,
        @index
      )
    end

    def index_stopper
      CloudController::DependencyLocator.instance.index_stopper
    end
  end
end