Module: ForemanAcd

Defined in:
lib/foreman_acd.rb,
lib/foreman_acd/engine.rb,
lib/foreman_acd/version.rb,
app/models/foreman_acd/acd_provider.rb,
app/models/foreman_acd/app_instance.rb,
app/models/foreman_acd/foreman_host.rb,
app/models/foreman_acd/app_definition.rb,
app/services/foreman_acd/app_deployer.rb,
app/models/foreman_acd/ansible_playbook.rb,
app/services/foreman_acd/app_configurator.rb,
app/models/foreman_acd/taxonomy_extensions.rb,
app/services/foreman_acd/inventory_creator.rb,
app/services/foreman_acd/acd_proxy_proxy_selector.rb,
app/controllers/foreman_acd/api/v2/base_controller.rb,
app/controllers/foreman_acd/application_controller.rb,
app/controllers/foreman_acd/app_instances_controller.rb,
app/controllers/foreman_acd/app_definitions_controller.rb,
app/controllers/foreman_acd/remote_execution_controller.rb,
app/models/concerns/foreman_acd/host_managed_extensions.rb,
app/controllers/foreman_acd/ansible_playbooks_controller.rb,
app/controllers/foreman_acd/concerns/app_instance_mixins.rb,
app/controllers/foreman_acd/api/v2/app_instances_controller.rb,
app/controllers/foreman_acd/concerns/app_instance_parameters.rb,
app/controllers/foreman_acd/api/v2/app_definitions_controller.rb,
app/controllers/foreman_acd/concerns/app_definition_parameters.rb,
app/controllers/foreman_acd/api/v2/ansible_playbooks_controller.rb,
app/controllers/foreman_acd/concerns/ansible_playbook_parameters.rb

Overview

The ForemanAcd module

Defined Under Namespace

Modules: Api, Concerns, HostManagedExtensions, TaxonomyExtensions Classes: AcdProvider, AcdProxyProxySelector, AnsiblePlaybook, AnsiblePlaybooksController, AppConfigurator, AppDefinition, AppDefinitionsController, AppDeployer, AppInstance, AppInstancesController, ApplicationController, Engine, ForemanHost, InventoryCreator, RemoteExecutionController

Constant Summary collapse

RUN_CONFIGURATOR_DELAY =
240
VERSION =
'0.13.0'

Class Method Summary collapse

Class Method Details

.acd_base_pathObject



10
11
12
# File 'lib/foreman_acd.rb', line 10

def acd_base_path
  '/var/lib/foreman/foreman_acd/'
end

.ansible_playbook_pathObject



14
15
16
# File 'lib/foreman_acd.rb', line 14

def ansible_playbook_path
  File.join(acd_base_path, 'ansible-playbooks')
end

.initiate_acd_app_configurator(app_instance) ⇒ Object



23
24
25
26
27
28
# File 'lib/foreman_acd.rb', line 23

def initiate_acd_app_configurator(app_instance)
  return unless app_instance.hosts_deployment_finished?

  ::Foreman::Logging.logger('foreman_acd').info("All hosts of app (#{app_instance.name}) were built. Schedule app configurator...")
  start_acd_app_configurator(app_instance)
end

.proxy_settingObject



18
19
20
21
# File 'lib/foreman_acd.rb', line 18

def proxy_setting
  HttpProxy.default_global_content_proxy&.full_url ||
    Setting[:http_proxy]
end

.register_rex_featureObject



66
67
68
69
70
71
72
73
74
75
76
# File 'lib/foreman_acd/engine.rb', line 66

def self.register_rex_feature
  return unless ForemanAcd.with_remote_execution?
  RemoteExecutionFeature.register(
    :run_acd_ansible_playbook,
    N_('Run playbook for ACD'),
    {
      :description => N_('Run an Ansible playbook to configure ACD application'),
      :provided_inputs => %w[application_name playbook_name playbook_path inventory_path],
    }
  )
end

.start_acd_app_configurator(app_instance) ⇒ Object



30
31
32
33
34
35
# File 'lib/foreman_acd.rb', line 30

def start_acd_app_configurator(app_instance)
  task = ForemanTasks.delay(::Actions::ForemanAcd::RunConfigurator,
    { :start_at => Time.zone.now + RUN_CONFIGURATOR_DELAY },
    app_instance)
  app_instance.update(:initial_configure_task_id => task.id)
end

.with_katello?Boolean

Returns:

  • (Boolean)


56
57
58
# File 'lib/foreman_acd/engine.rb', line 56

def self.with_katello?
  defined?(::Katello)
end

.with_remote_execution?Boolean

Returns:

  • (Boolean)


60
61
62
63
64
# File 'lib/foreman_acd/engine.rb', line 60

def self.with_remote_execution?
  RemoteExecutionFeature
rescue StandardError
  false
end