Class: Puppetfactory::Plugins::ConsoleUser

Inherits:
Puppetfactory::Plugins show all
Defined in:
lib/puppetfactory/plugins/console_user.rb

Instance Attribute Summary

Attributes inherited from Puppetfactory::Plugins

#weight

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ ConsoleUser

Returns a new instance of ConsoleUser.



6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/puppetfactory/plugins/console_user.rb', line 6

def initialize(options)
  super(options)

  @puppet   = options[:puppet]
  @suffix   = options[:usersuffix]
  auth_info = options[:auth_info] || {}

  @ca_certificate_path = auth_info[:ca_certificate_path] || "#{options[:confdir]}/ssl/ca/ca_crt.pem",
  @certificate_path    = auth_info[:certificate_path]    || "#{options[:confdir]}/ssl/certs/#{options[:master]}.pem",
  @private_key_path    = auth_info[:private_key_path]    || "#{options[:confdir]}/ssl/private_keys/#{options[:master]}.pem"
  @classifier_url      = options[:classifier]            || "http://#{options[:master]}:4433/classifier-api"
end

Instance Method Details

#create(username, password) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/puppetfactory/plugins/console_user.rb', line 19

def create(username, password)
  output, status = Open3.capture2e(@puppet, 'resource', 'rbac_user', username,
                            'ensure=present',
                            "display_name=#{username}",
                            'roles=Operators',
                            "email=#{username}@#{@suffix}",
                            "password=#{password}")

  unless status.success?
    $logger.error "Could not create PE Console user #{username}: #{output}"
    return false
  end

  $logger.info "Console user #{username} created successfully"
  true
end

#delete(username) ⇒ Object



36
37
38
39
40
41
42
43
44
45
# File 'lib/puppetfactory/plugins/console_user.rb', line 36

def delete(username)
  output, status = Open3.capture2e(@puppet, 'resource', 'rbac_user', username, 'ensure=absent')
  unless status.success?
    $logger.warn "Could not remove PE Console user #{username}: #{output}"
    return false
  end

  $logger.info "Console user #{username} removed successfully"
  true
end

#userinfo(username, extended = false) ⇒ Object



47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/puppetfactory/plugins/console_user.rb', line 47

def userinfo(username, extended = false)
  return unless extended

  output, status = Open3.capture2e(@puppet, 'resource', 'rbac_user', username)
  unless status.success?
    $logger.error "Could not query Puppet user #{username}: #{output}"
    return false
  end

  {
    :username     => username,
    :console_user => output =~ /present/,
  }
end