Module: Puppetdb

Defined in:
app/services/puppetdb.rb

Constant Summary collapse

API_VERSIONS =
{
  '4' => 'v4: PuppetDB 4 - 7',
}.freeze

Class Method Summary collapse

Class Method Details

.api_versionObject



24
25
26
# File 'app/services/puppetdb.rb', line 24

def self.api_version
  Setting[:puppetdb_api_version].to_i
end

.clientObject

rubocop:disable Metrics/MethodLength



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'app/services/puppetdb.rb', line 8

def self.client # rubocop:disable Metrics/MethodLength
  options = {
    uri: uri,
    ssl_ca_file: Setting[:puppetdb_ssl_ca_file],
    ssl_certificate_file: Setting[:puppetdb_ssl_certificate],
    ssl_private_key_file: Setting[:puppetdb_ssl_private_key],
  }

  case api_version
  when 4
    PuppetdbClient::V4.new(options)
  else
    raise Foreman::Exception, N_('Unsupported PuppetDB version.')
  end
end

.configured?Boolean

Returns:

  • (Boolean)


36
37
38
# File 'app/services/puppetdb.rb', line 36

def self.configured?
  Setting[:puppetdb_address].present?
end

.enabled?Boolean

Returns:

  • (Boolean)


32
33
34
# File 'app/services/puppetdb.rb', line 32

def self.enabled?
  [true, 'true'].include? Setting[:puppetdb_enabled]
end

.ready?Boolean

Returns:

  • (Boolean)


40
41
42
# File 'app/services/puppetdb.rb', line 40

def self.ready?
  enabled? && configured?
end

.uriObject



28
29
30
# File 'app/services/puppetdb.rb', line 28

def self.uri
  URI.parse(Setting[:puppetdb_address])
end