Module: ForemanMaintain::Concerns::Downstream

Defined in:
lib/foreman_maintain/concerns/downstream.rb

Instance Method Summary collapse

Instance Method Details

#absent_repos(version) ⇒ Object



38
39
40
41
42
# File 'lib/foreman_maintain/concerns/downstream.rb', line 38

def absent_repos(version)
  repos_required = rh_repos(version)
  repos_found = repos_required & repository_manager.rhsm_list_repos.keys
  repos_required - repos_found
end

#at_least_version?(version) ⇒ Boolean

Returns:

  • (Boolean)


12
13
14
# File 'lib/foreman_maintain/concerns/downstream.rb', line 12

def at_least_version?(version)
  Gem::Version.new(current_version) >= Gem::Version.new(version)
end

#current_minor_versionObject



16
17
18
# File 'lib/foreman_maintain/concerns/downstream.rb', line 16

def current_minor_version
  current_version.to_s[/^\d+\.\d+/]
end

#current_versionObject

Raises:

  • (NotImplementedError)


4
5
6
# File 'lib/foreman_maintain/concerns/downstream.rb', line 4

def current_version
  raise NotImplementedError
end

#fm_pkg_and_cmd_nameObject



57
58
59
# File 'lib/foreman_maintain/concerns/downstream.rb', line 57

def fm_pkg_and_cmd_name
  %w[satellite-maintain satellite-maintain]
end

#less_than_version?(version) ⇒ Boolean

Returns:

  • (Boolean)


8
9
10
# File 'lib/foreman_maintain/concerns/downstream.rb', line 8

def less_than_version?(version)
  Gem::Version.new(current_version) < Gem::Version.new(version)
end

#package_nameObject

Raises:

  • (NotImplementedError)


53
54
55
# File 'lib/foreman_maintain/concerns/downstream.rb', line 53

def package_name
  raise NotImplementedError
end

#repository_managerObject



20
21
22
# File 'lib/foreman_maintain/concerns/downstream.rb', line 20

def repository_manager
  ForemanMaintain.repository_manager
end

#rhsm_refreshObject



44
45
46
# File 'lib/foreman_maintain/concerns/downstream.rb', line 44

def rhsm_refresh
  execute!(%(subscription-manager refresh))
end

#setup_repositories(version) ⇒ Object

TODO: Modify activation_key changes as per server



25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/foreman_maintain/concerns/downstream.rb', line 25

def setup_repositories(version)
  activation_key = ENV['EXTERNAL_SAT_ACTIVATION_KEY']
  org = ENV['EXTERNAL_SAT_ORG']
  if activation_key
    org_options = org ? %(--org #{shellescape(org)}) : ''
    execute!(%(subscription-manager register #{org_options}\
                --activationkey #{shellescape(activation_key)} --force))
  else
    repository_manager.rhsm_disable_repos(['*'])
    repository_manager.rhsm_enable_repos(rh_repos(version))
  end
end

#subscribed_using_activation_key?Boolean

TODO: Verify this is valid for capsule?

Returns:

  • (Boolean)


49
50
51
# File 'lib/foreman_maintain/concerns/downstream.rb', line 49

def subscribed_using_activation_key?
  ENV['EXTERNAL_SAT_ACTIVATION_KEY'] && ENV['EXTERNAL_SAT_ORG']
end