Class: ConsulACLTokenClient

Inherits:
PuppetX::Consul::ACLBase::BaseClient
  • Object
show all
Defined in:
lib/puppet/provider/consul_token/default.rb

Instance Method Summary collapse

Instance Method Details

#create_token(accessor_id, description, policies_by_name, policies_by_id, tries, secret_id = nil) ⇒ Object



138
139
140
141
142
143
# File 'lib/puppet/provider/consul_token/default.rb', line 138

def create_token(accessor_id, description, policies_by_name, policies_by_id, tries, secret_id = nil)
  body = encode_body(accessor_id, description, policies_by_name, policies_by_id, secret_id)
  response = put('/token', body, tries)

  ConsulToken.new(response['AccessorID'], response['SecretID'], description, parse_policies(response['Policies']))
end

#delete_token(accessor_id) ⇒ Object



152
153
154
155
156
# File 'lib/puppet/provider/consul_token/default.rb', line 152

def delete_token(accessor_id)
  response = delete('/token/' + accessor_id)

  raise 'Consul API returned false as response' if response == 'false'
end

#encode_body(accessor_id, description, policies_by_name, policies_by_id, secret_id = nil) ⇒ Object



169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
# File 'lib/puppet/provider/consul_token/default.rb', line 169

def encode_body(accessor_id, description, policies_by_name, policies_by_id, secret_id = nil)
  policies = []
  policies_by_name.each do |name|
    policies.push({ 'Name' => name })
  end

  policies_by_id.each do |id|
    policies.push({ 'ID' => id })
  end

  body = {}
  body.store('AccessorID', accessor_id)
  body.store('Description', description)
  body.store('Local', false)
  body.store('Policies', policies)

  body.store('SecretID', secret_id) if !secret_id.nil? && !secret_id.to_s.strip.empty?

  body
end

#get_token_list(tries) ⇒ Object



127
128
129
130
131
132
133
134
135
136
# File 'lib/puppet/provider/consul_token/default.rb', line 127

def get_token_list(tries)
  response = get('/tokens', tries)

  collection = []
  response.each do |item|
    collection.push(ConsulToken.new(item['AccessorID'], item['SecretID'], item['Description'], parse_policies(item['Policies'])))
  end

  collection
end

#parse_policies(response) ⇒ Object



158
159
160
161
162
163
164
165
166
167
# File 'lib/puppet/provider/consul_token/default.rb', line 158

def parse_policies(response)
  return [] unless response

  policy_links = []
  response.each do |policy|
    policy_links.push(ConsulTokenPolicyLink.new(policy['ID'], policy['Name']))
  end

  policy_links
end

#update_token(accessor_id, description, policies_by_name, policies_by_id) ⇒ Object



145
146
147
148
149
150
# File 'lib/puppet/provider/consul_token/default.rb', line 145

def update_token(accessor_id, description, policies_by_name, policies_by_id)
  body = encode_body(accessor_id, description, policies_by_name, policies_by_id, nil)
  response = put('/token/' + accessor_id, body)

  parse_policies(response['Policies'])
end