class Bosh::Director::Jobs::CloudCheck::ApplyResolutions

Public Class Methods

job_type() click to toggle source
# File lib/bosh/director/jobs/cloud_check/apply_resolutions.rb, line 11
def self.job_type
  :cck_apply
end
new(deployment_name, resolutions) click to toggle source

@param [String] deployment_name Deployment name @param [Hash] resolutions Problem resolutions

# File lib/bosh/director/jobs/cloud_check/apply_resolutions.rb, line 17
def initialize(deployment_name, resolutions)
  @deployment_manager = Api::DeploymentManager.new
  @deployment = @deployment_manager.find_by_name(deployment_name)

  unless resolutions.kind_of?(Hash)
    raise CloudcheckInvalidResolutionFormat,
          "Invalid format for resolutions, Hash expected, #{resolutions.class} is given"
  end

  # Normalizing problem ids
  @resolutions =
    resolutions.inject({}) { |hash, (problem_id, solution_name)|
      hash[problem_id.to_s] = solution_name
      hash
    }

  @problem_resolver = ProblemResolver.new(@deployment)
end

Public Instance Methods

perform() click to toggle source
# File lib/bosh/director/jobs/cloud_check/apply_resolutions.rb, line 36
def perform
  with_deployment_lock(@deployment) do
    count, error_message = @problem_resolver.apply_resolutions(@resolutions)

    if error_message
      raise Bosh::Director::ProblemHandlerError, error_message
    end

    Bosh::Director::PostDeploymentScriptRunner.run_post_deploys_after_resurrection(@deployment)

    "#{count} resolved"
  end
end