Class: Puppetfactory::Plugins::Classification
- Inherits:
-
Puppetfactory::Plugins
- Object
- Puppetfactory::Plugins
- Puppetfactory::Plugins::Classification
- Defined in:
- lib/puppetfactory/plugins/classification.rb
Instance Attribute Summary
Attributes inherited from Puppetfactory::Plugins
Instance Method Summary collapse
- #create(username, password) ⇒ Object
- #delete(username) ⇒ Object
-
#initialize(options) ⇒ Classification
constructor
A new instance of Classification.
- #userinfo(username, extended = false) ⇒ Object
Constructor Details
#initialize(options) ⇒ Classification
Returns a new instance of Classification.
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/puppetfactory/plugins/classification.rb', line 7 def initialize() super() @weight = 25 @puppet = [:puppet] @suffix = [:usersuffix] @master = [:master] classifier = [:classifier] || "http://#{@master}:4433/classifier-api" auth_info = [:auth_info] || {} auth_info['ca_certificate_path'] ||= "#{[:confdir]}/ssl/ca/ca_crt.pem" auth_info['certificate_path'] ||= "#{[:confdir]}/ssl/certs/#{[:master]}.pem" auth_info['private_key_path'] ||= "#{[:confdir]}/ssl/private_keys/#{[:master]}.pem" @puppetclassify = PuppetClassify.new(classifier, auth_info) end |
Instance Method Details
#create(username, password) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/puppetfactory/plugins/classification.rb', line 24 def create(username, password) environment = Puppetfactory::Helpers.environment_name(username) certname = "#{username}.#{@suffix}" group_hash = { 'name' => "#{username}'s environment group", 'environment' => environment, 'environment_trumps' => true, 'parent' => '00000000-0000-4000-8000-000000000000', 'classes' => {}, 'rule' => ['or', ['=', 'name', certname]] } begin @puppetclassify.groups.create_group(group_hash) rescue => e $logger.error "Could not create node group for #{username}: #{e.}" return false end $logger.info "Created node group for #{certname} assigned to environment #{environment}" true end |
#delete(username) ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/puppetfactory/plugins/classification.rb', line 48 def delete(username) begin group_id = @puppetclassify.groups.get_group_id("#{username}'s environment group") @puppetclassify.groups.delete_group(group_id) rescue => e $logger.warn "Error removing node group for #{username}: #{e.}" return false end $logger.info "Node group #{username} removed" true end |
#userinfo(username, extended = false) ⇒ Object
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/puppetfactory/plugins/classification.rb', line 62 def userinfo(username, extended = false) return unless extended certname = "#{username}.#{@suffix}" begin ngid = @puppetclassify.groups.get_group_id("#{username}'s environment group") rescue => e $logger.warn "Error retrieving node group for #{certname}: #{e.}" return nil end { :username => username, :node_group_id => ngid, :node_group_url => "#/node_groups/groups/#{ngid}", } end |