Class: ForemanKatelloEngine::Environment

Inherits:
Object
  • Object
show all
Defined in:
app/models/foreman_katello_engine/environment.rb

Defined Under Namespace

Classes: Conflict

Class Method Summary collapse

Class Method Details

.create!(org_label, env_label, content_view_label, content_view_id) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'app/models/foreman_katello_engine/environment.rb', line 11

def self.create!(org_label, env_label, content_view_label, content_view_id)
  katello_id = generate_katello_id(org_label, env_label, content_view_label)
  ::Environment.transaction do
    if existing_env = ::Environment.where(:katello_id => katello_id).first
      raise Conflict, "environment already exists: #{existing_env.id} - #{existing_env.name}"
    end
    ::Environment.create! do |env|
      env.name = generate_name(org_label, env_label, content_view_label, content_view_id)
      env.katello_id = katello_id
      yield env if block_given?
    end
  end
end

.find(org_label, env_label, content_view_label) ⇒ Object



6
7
8
9
# File 'app/models/foreman_katello_engine/environment.rb', line 6

def self.find(org_label, env_label, content_view_label)
  katello_id = generate_katello_id(org_label, env_label, content_view_label)
  ::Environment.where(:katello_id => katello_id).first
end

.generate_katello_id(org_label, env_label, content_view_label) ⇒ Object

Raises:

  • (ArgumentError)


25
26
27
28
29
# File 'app/models/foreman_katello_engine/environment.rb', line 25

def self.generate_katello_id(org_label, env_label, content_view_label)
  raise ArgumentError, "org_label has to be specified" if org_label.blank?
  raise ArgumentError, "env_label has to be specified" if env_label.blank?
  [org_label, env_label, content_view_label].reject(&:blank?).join('/')
end

.generate_name(org_label, env_label, content_view_label, content_view_id) ⇒ Object

content_view_id provides the uniqueness of the name



32
33
34
35
# File 'app/models/foreman_katello_engine/environment.rb', line 32

def self.generate_name(org_label, env_label, content_view_label, content_view_id)
  name = ["KT", org_label, env_label, content_view_label, content_view_id].reject(&:blank?).join('_')
  return name.gsub('-','_')
end