Class: ForemanPipeline::Job

Inherits:
Katello::Model
  • Object
show all
Includes:
ActiveModel::Validations, Authorization::Job, Katello::Glue
Defined in:
app/models/foreman_pipeline/job.rb

Instance Method Summary collapse

Instance Method Details

#available_compute_resourcesObject



87
88
89
# File 'app/models/foreman_pipeline/job.rb', line 87

def available_compute_resources
  hostgroup.compute_profile.compute_attributes.map(&:compute_resource) rescue []
end

#can_be_promoted?Boolean

Returns:

  • (Boolean)


83
84
85
# File 'app/models/foreman_pipeline/job.rb', line 83

def can_be_promoted?
  !envs_for_promotion.empty?
end

#envs_for_promotionObject

we have some to_envs set (== we want to promote), but cv version may already be in those envs



79
80
81
# File 'app/models/foreman_pipeline/job.rb', line 79

def envs_for_promotion
  to_environments.reject { |env| target_cv_version.environments.include?(env) }
end

#init_runObject



54
55
56
57
58
# File 'app/models/foreman_pipeline/job.rb', line 54

def init_run
  fail "Cannnot contact Jenkins server: no Jenkins Instance set for the job: #{name}" if jenkins_instance.nil?
  fail "Cannot log in to Jenkins server: no Jenkins User set for the Jenkins Instance: #{jenkins_instance.name}" if jenkins_instance.jenkins_user.nil?
  jenkins_instance.create_client(jenkins_instance.jenkins_user.name, jenkins_instance.jenkins_user.token)
end

#is_valid?Boolean

Returns:

  • (Boolean)


39
40
41
# File 'app/models/foreman_pipeline/job.rb', line 39

def is_valid?
  !self.attributes.values.include?(nil) && !self.jenkins_instance.jenkins_user.nil?
end

#not_yet_promoted?Boolean

this shlould make sure not to trigger cyclic runs in hook actions

Returns:

  • (Boolean)


66
67
68
69
70
71
# File 'app/models/foreman_pipeline/job.rb', line 66

def not_yet_promoted?
  # no to_envs means we do not want to promote, no need to check further here
  return true if to_environments.empty?
  #we want to promote, but are any of to_envs safe to promote to?
  can_be_promoted?
end

#promotion_safe?Boolean

If we want to promote, is it safe (or could we get a cycle)?

Returns:

  • (Boolean)


74
75
76
# File 'app/models/foreman_pipeline/job.rb', line 74

def promotion_safe?
  should_be_promoted? ? can_be_promoted? : false
end

#should_be_promoted?Boolean

Is any to_env set? (Do we want to promote to any env?)

Returns:

  • (Boolean)


61
62
63
# File 'app/models/foreman_pipeline/job.rb', line 61

def should_be_promoted?
  !to_environments.empty?
end

#target_cv_versionObject



47
48
49
50
51
52
# File 'app/models/foreman_pipeline/job.rb', line 47

def target_cv_version
  fail "Cannot fetch target version, no environment set" if environment.nil?
  fail "Cannot fetch target version, no content view set" if content_view.nil?
  fail "Content view has no versions!" if content_view.content_view_versions.empty?
  self.environment.content_view_versions.where(:content_view_id => self.content_view.id).first
end

#target_cv_version_avail?Boolean

Returns:

  • (Boolean)


43
44
45
# File 'app/models/foreman_pipeline/job.rb', line 43

def target_cv_version_avail?
  !target_cv_version.nil?
end