puppet-rest 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. checksums.yaml +15 -0
  2. data/.gitignore +7 -0
  3. data/.pryrc +58 -0
  4. data/Gemfile +10 -0
  5. data/Gemfile.lock +73 -0
  6. data/LICENSE.txt +20 -0
  7. data/README.md +81 -0
  8. data/Rakefile +3 -0
  9. data/lib/puppet-rest.rb +43 -0
  10. data/lib/puppet-rest/db/client.rb +42 -0
  11. data/lib/puppet-rest/db/config.rb +83 -0
  12. data/lib/puppet-rest/db/connection.rb +26 -0
  13. data/lib/puppet-rest/db/connection/fact-names.rb +9 -0
  14. data/lib/puppet-rest/db/connection/facts.rb +11 -0
  15. data/lib/puppet-rest/db/connection/nodes.rb +32 -0
  16. data/lib/puppet-rest/db/connection/resources.rb +11 -0
  17. data/lib/puppet-rest/db/entities/base.rb +100 -0
  18. data/lib/puppet-rest/db/entities/fact.rb +9 -0
  19. data/lib/puppet-rest/db/entities/node.rb +22 -0
  20. data/lib/puppet-rest/db/entities/resource.rb +12 -0
  21. data/lib/puppet-rest/db/request.rb +74 -0
  22. data/lib/puppet-rest/error.rb +42 -0
  23. data/lib/puppet-rest/identity_map.rb +4 -0
  24. data/lib/puppet-rest/monkey_patches/array.rb +7 -0
  25. data/lib/puppet-rest/monkey_patches/enumerable.rb +11 -0
  26. data/lib/puppet-rest/monkey_patches/hash.rb +49 -0
  27. data/lib/puppet-rest/monkey_patches/mash.rb +219 -0
  28. data/lib/puppet-rest/pe/client.rb +42 -0
  29. data/lib/puppet-rest/pe/config.rb +93 -0
  30. data/lib/puppet-rest/pe/connection.rb +25 -0
  31. data/lib/puppet-rest/pe/connection/ca_cert.rb +10 -0
  32. data/lib/puppet-rest/pe/connection/catalog.rb +10 -0
  33. data/lib/puppet-rest/pe/connection/node.rb +10 -0
  34. data/lib/puppet-rest/pe/entities/base.rb +100 -0
  35. data/lib/puppet-rest/pe/entities/catalog.rb +16 -0
  36. data/lib/puppet-rest/pe/entities/node.rb +9 -0
  37. data/lib/puppet-rest/pe/request.rb +77 -0
  38. data/lib/puppet-rest/response/client_error.rb +33 -0
  39. data/lib/puppet-rest/response/parse_json.rb +26 -0
  40. data/lib/puppet-rest/version.rb +3 -0
  41. data/puppet-rest.gemspec +28 -0
  42. data/spec/certificates/ca.pem +35 -0
  43. data/spec/certificates/cert.pem +35 -0
  44. data/spec/certificates/pk.pem +51 -0
  45. data/spec/spec_helper.rb +9 -0
  46. metadata +143 -0
@@ -0,0 +1,16 @@
1
+ module PuppetRestClient::PE
2
+ class Catalog < PuppetRestClient::PE::Base
3
+ attr_accessor :document_type, :metadata, :tags, :name, :version, :environment, :resources, :edges, :classes
4
+
5
+ def initialize(attrs=Mash.new)
6
+ super
7
+ @tags = attrs['data']['tags']
8
+ @name = attrs['data']['name']
9
+ @version = attrs['data']['version']
10
+ @environment = attrs['data']['environment']
11
+ @resources = attrs['data']['resources']
12
+ @edges = attrs['data']['edges']
13
+ @classes = attrs['data']['classes']
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,9 @@
1
+ module PuppetRestClient::PE
2
+ class Node < PuppetRestClient::PE::Base
3
+ attr_reader :name
4
+
5
+ def initialize(attrs=Mash.new)
6
+ super
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,77 @@
1
+ module PuppetRestClient::PE
2
+ module Request
3
+
4
+ def get(path, params=nil, options=Mash.new)
5
+ request(:get, path, params, options)
6
+ end
7
+
8
+ def api_path(entity, key)
9
+ if api_version.nil?
10
+ '/%s/%s/%s' % [environment, entity, key]
11
+ else
12
+ '/%s/%s/%s?environment=%s' % [api_version, entity, key, environment]
13
+ end
14
+ end
15
+
16
+ private
17
+
18
+ def connection
19
+ # return @connection if defined? @connection
20
+
21
+ default_options = {
22
+ :headers => {
23
+ :accept => accept,
24
+ :user_agent => user_agent
25
+ }
26
+ }
27
+
28
+ options = default_options.deep_merge(connection_options)
29
+
30
+ # @connection = Faraday.new(PuppetRestClient.server_url, options, &PuppetRestClient.middleware)
31
+ Faraday.new(server_url, options, &middleware)
32
+ end
33
+
34
+ def request(method, path, params, options)
35
+ json_params = params ? MultiJson.dump(params) : ''
36
+ uri = server_url
37
+ uri = URI(uri) unless uri.respond_to?(:host)
38
+ full_path = uri.path + URI(path).path
39
+ full_path_and_params = uri.path + path
40
+
41
+ #puts "server_url = #{server_url}"
42
+ #puts "full_path_and_params = #{full_path_and_params}"
43
+ #puts "method = #{method}"
44
+
45
+ headers = {} #signature_headers(method.to_s.upcase.to_sym, full_path, json_params)
46
+ # puts headers.inspect
47
+ # puts client_key.inspect
48
+ response = connection.run_request(method.to_sym, full_path_and_params, nil, headers) do |request|
49
+ request.options[:raw] = true if options[:raw]
50
+
51
+ #puts request.inspect
52
+
53
+ unless params.nil?
54
+ if request.method == :post || :put
55
+ request.body = json_params
56
+ else
57
+ request.params.update params
58
+ end
59
+ end
60
+ yield request if block_given?
61
+ end
62
+
63
+ if options[:raw]
64
+ return response
65
+ end
66
+
67
+ if options[:json]
68
+ return MultiJson.dump(response.body)
69
+ end
70
+
71
+ return response.body
72
+ #rescue Faraday::Error::ClientError
73
+ # raise PuppetRestClient::Error::ClientError
74
+ end
75
+
76
+ end
77
+ end
@@ -0,0 +1,33 @@
1
+ module PuppetRestClient
2
+ module Response
3
+ class ClientError < Faraday::Response::Middleware
4
+
5
+ def on_complete(env)
6
+ case env[:status].to_i
7
+ when 400
8
+ raise PuppetRestClient::Error::BadRequest.new(error(env[:body]), env[:request_headers])
9
+ when 401
10
+ raise PuppetRestClient::Error::Unauthorized.new(error(env[:body]), env[:request_headers])
11
+ when 403
12
+ raise PuppetRestClient::Error::Forbidden.new(error(env[:body]), env[:request_headers])
13
+ when 404
14
+ raise PuppetRestClient::Error::NotFound.new(error(env[:body]), env[:request_headers])
15
+ when 406
16
+ raise PuppetRestClient::Error::NotAcceptable.new(error(env[:body]), env[:request_headers])
17
+ when 409
18
+ raise PuppetRestClient::Error::Conflict.new(error(env[:body]), env[:request_headers])
19
+ end
20
+ end
21
+
22
+ def error(body)
23
+ if body.kind_of?(String)
24
+ body
25
+ elsif body['error'].kind_of?(Array)
26
+ body['error'].join(',')
27
+ else
28
+ body['error']
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,26 @@
1
+ module PuppetRestClient
2
+ module Response
3
+ class ParseJSON < Faraday::Response::Middleware
4
+
5
+ def parse(body)
6
+ case body
7
+ when ''
8
+ nil
9
+ when 'true'
10
+ true
11
+ when 'false'
12
+ false
13
+ else
14
+ MultiJson.load(body)
15
+ end
16
+ end # def parse
17
+
18
+ def on_complete(env)
19
+ if respond_to? :parse
20
+ env[:body] = parse(env[:body]) unless env[:request][:raw] or [204,304].index env[:status]
21
+ end
22
+ end # def on_complete
23
+
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,3 @@
1
+ module PuppetRestClient
2
+ VERSION = '0.0.3'
3
+ end
@@ -0,0 +1,28 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path('../lib', __FILE__)
3
+ require File.dirname(__FILE__) + '/lib/puppet-rest/version'
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = 'puppet-rest'
7
+ s.version = PuppetRestClient::VERSION
8
+ s.date = '2013-10-08'
9
+ s.summary = 'Puppet REST API Client'
10
+ s.description = 'Interact with the Puppet REST Api'
11
+ s.authors = ['Steve Frank']
12
+ s.email = %w(steve@cloudhealthtech.com)
13
+ s.homepage = 'https://github.com/CloudHealth/puppet-rest'
14
+
15
+ s.files = `git ls-files`.split("\n")
16
+
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+
20
+ s.require_paths = %w(lib)
21
+
22
+ s.add_development_dependency 'rake'
23
+ s.add_development_dependency 'rspec'
24
+
25
+ s.add_dependency 'faraday', '~> 0.8.8'
26
+ s.add_dependency 'multi_json'
27
+
28
+ end
@@ -0,0 +1,35 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIGCzCCA/OgAwIBAgIBATANBgkqhkiG9w0BAQsFADBVMVMwUQYDVQQDDEpQdXBw
3
+ ZXQgQ0EgZ2VuZXJhdGVkIG9uIGxlYXJuaW5nLnB1cHBldGxhYnMudm0gYXQgMjAx
4
+ NS0wOC0xNCAxOTowNzoyMSArMDAwMDAeFw0xNTA4MTMxOTA3MjhaFw0yMDA4MTIx
5
+ OTA3MjhaMFUxUzBRBgNVBAMMSlB1cHBldCBDQSBnZW5lcmF0ZWQgb24gbGVhcm5p
6
+ bmcucHVwcGV0bGFicy52bSBhdCAyMDE1LTA4LTE0IDE5OjA3OjIxICswMDAwMIIC
7
+ IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqm3ugacvpRJh63eV3IWKCqpr
8
+ CmSYqtlmurO8pG6SSDAJxfsL/jz/3Rqx+Ol8JuP4cmBvGEn+OJlBra7Zrs86/i1B
9
+ WC+zesAMHJkPL56Vmde4tkxyq3VWnYBo7cYY2jJsbRQg8Zg7PPje6cd071VVkbCy
10
+ Rf+FFBkpKejQ1NdLOlduSozPfGVbP1cAl5I6WLs+SBdOX+6UB+zCjKunw8ZPAGDb
11
+ zv0dxhARVVwnpBFsnn2jppjYXlk++FG7ByqW/lxLBJAf5S9PLOfl/io6AE3EOsuf
12
+ mmY88JBavKW5lxA2Xs1dfJFF65evGaUfOClVTg/ldvEyVpKqRsPbz4dXFuORB4pI
13
+ AUenYAj/2+4ZIMUbuOEqDmYJqPXfplmYLdYILYVW6FafL/jfdSGnxV5i7QlrC8QP
14
+ l0zdawj/3asF2HtIaez+iChuoqTXdKL0uFU7Zjw+Ii08ppDmjeEkeQLsRk8bHKsg
15
+ Y7RFBw179PYeYAz5RMPmCXbs3dYQcEJ2GXz8hN/EXtSIMuAaF/nKitumCTgl+vEc
16
+ ZghCk/aoY7KCll6N3hixkJKbwuDRtJ8VJ4WwbCD0H2c9dnp7rc453g0m4Cad+5HL
17
+ GXdtICKMomdTSFpUi2+VvEBpdN7nRgbSKrXbv74BADsEY+VuUIkXU8aeyfI9r2+l
18
+ CoQADfiDIzYTgXil/Q0CAwEAAaOB5TCB4jA3BglghkgBhvhCAQ0EKgwoUHVwcGV0
19
+ IFJ1YnkvT3BlblNTTCBJbnRlcm5hbCBDZXJ0aWZpY2F0ZTAOBgNVHQ8BAf8EBAMC
20
+ AQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU2LwxfFNdzw/YJ7VCArnEXTX1
21
+ s3swZwYDVR0jBGAwXqFZpFcwVTFTMFEGA1UEAwxKUHVwcGV0IENBIGdlbmVyYXRl
22
+ ZCBvbiBsZWFybmluZy5wdXBwZXRsYWJzLnZtIGF0IDIwMTUtMDgtMTQgMTk6MDc6
23
+ MjEgKzAwMDCCAQEwDQYJKoZIhvcNAQELBQADggIBADzfuHpo5AVx8gic8UWqOgUE
24
+ P+MjiYVTkSWrKMzhygMo0DAnaguGXC8eDFKX5LTzt//IIlVSK24xBNv9uus90YCB
25
+ Hpc1nih8SlpL8FI2Kgc041UKDScQZU/P9idj5lEhVJPl0kKYSzk8aLd6m/IohJFj
26
+ AJYtL5OIzN9KuFQPKyF5nQVaYmA8FyGG+mUPx+jHAFf4BPkiB34GInHVNVx/maem
27
+ AubgivboWe6IdyUakIbDegjWRwmsORvfPsPZPR7ZKvmEQ0KuFef7q71cvp2uZKWw
28
+ ttyysKl9+vgoM6RzBrJScq4rysXwDhmzEybw01Tp2S+8E/dEiInQ4qi1C/NiHZfn
29
+ NN+0zjND/2skttLEImTRoIVBPIAx/Oc5VELGec70gSuzZzGzUoppZ021C/Sc5GA3
30
+ jpQ0WNWZIeEV3yWdYffNf7i3MZsDCuy9Lfvpv79lFy5JI7KBmTuAfDi1I5tLTKbm
31
+ k4so8QUnX9Bzbs71GkZ7rbgDJT6x3n2CVaDbC4hEBeqWFvFKJRUYvxGVddvgUa7t
32
+ tNiO3we42ORSZUFujfFFfv7SSZnYLteqmSgWulAMJH0D7+SKVPI5dsV6vbYKbJFz
33
+ 3ZJ2q0YsYG0Ja+e6xULCHH5j+sKSjHj4H8GIY45kWDv0qKIvFUjoOS8YKvSBXIA7
34
+ WXJQULO2VZy3yqsR78VF
35
+ -----END CERTIFICATE-----
@@ -0,0 +1,35 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIGGzCCBAOgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBVMVMwUQYDVQQDDEpQdXBw
3
+ ZXQgQ0EgZ2VuZXJhdGVkIG9uIGxlYXJuaW5nLnB1cHBldGxhYnMudm0gYXQgMjAx
4
+ NS0wOC0xNCAxOTowNzoyMSArMDAwMDAeFw0xNTA4MTMxOTA3MzFaFw0yMDA4MTIx
5
+ OTA3MzFaMCExHzAdBgNVBAMMFmxlYXJuaW5nLnB1cHBldGxhYnMudm0wggIiMA0G
6
+ CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC6hBuG1AJXZZu2ragXj3jEqqJt9f8Z
7
+ rR+1w8/PSGDMpwfFWZxVpNbqvU6ebJh00YYWCszMFFCLj5oat+kRQgtlZJlxVfRo
8
+ cBavSt5dyK+flNBUFD6zRkWTOWCAFHNxJWNIYftVmj2s/ocTF/3HTo49PnfiFoZl
9
+ baaPZT946wC/I5UZK4Vq707UIlcSmFW4NPJLjCQu9BG0eOltM7Z1vLEBsDypMOj1
10
+ OFkDJR34Udenljbts0uCoJ9/MEL7dAUQuMbBD3vm+sFGNOc4J1rlfJ+nUmAM+plw
11
+ 63FcC5og11UYrM/0Z2AHgJ2lAh6dlpr53/sOrVrLM+oKmJj6WJ62DJ488RZGZbvK
12
+ UtAG1Y2nBuyMhzRApMfeNSbvEoZXP4uWUAMDoomhCVa/8nyvvtAO+WixQbQANp4L
13
+ YtuhbB/fr+khhm1vKuc6s0b6UIWhCMnFplCUTzqfmzAGMHDtthSGnqEg2BttVGUY
14
+ 9Sm7vLMlxcX8/yAnS+Jwfj/fUatal5c2TNuOCmHelUwz566Rr1PF9rZJ+b9orCy3
15
+ yNPWM+ssK6bHYMnlTR0QhxA+USTFCHVKIQE1tJB64xVaIKvX+VdRsptwcMOMD08P
16
+ bmWNcqp98Dks6DdBbDYzIzYBSo7+pXO+ox6IcAVmwBGCM70tf1+caVUlSy2REbkb
17
+ 8ZEMmXMpfo3V1QIDAQABo4IBKDCCASQwNwYJYIZIAYb4QgENBCoMKFB1cHBldCBS
18
+ dWJ5L09wZW5TU0wgSW50ZXJuYWwgQ2VydGlmaWNhdGUwaQYDVR0RBGIwYIIIbGVh
19
+ cm5pbmeCFmxlYXJuaW5nLnB1cHBldGxhYnMudm2CCWxvY2FsaG9zdIIVbG9jYWxo
20
+ b3N0LmxvY2FsZG9tYWluggZwdXBwZXSCEnB1cHBldC5sb2NhbGRvbWFpbjAOBgNV
21
+ HQ8BAf8EBAMCBaAwIAYDVR0lAQH/BBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwG
22
+ A1UdEwEB/wQCMAAwHQYDVR0OBBYEFBI5bB2ezLwXlkwGjPLM9dgtd2wdMB8GA1Ud
23
+ IwQYMBaAFNi8MXxTXc8P2Ce1QgK5xF019bN7MA0GCSqGSIb3DQEBCwUAA4ICAQAd
24
+ NMNtm+MPWwy2y6dl+sXFiUj51Dg+BSUwkbklik0lex7Uab8Ru/0mt5k6yhAMRxQc
25
+ dpE2Vtrj1DpilYsnVxKSXwACaUTbD5Lz9ytqcS+srBK14/7YDNqGbKe3quXxz1PD
26
+ +Psi92f82Eq2axtygd294FblU5NTBhBXiT5QEy5p4iDI8kG/S6BNRbzl9OL7Kg4g
27
+ +tFgXuUpGPGrmXzYr8nddX+MSAVNEXfHfsCPzr5elYJ/f0SqStuZ6VCYmHLge7ou
28
+ R1WNpxOBiOXi9Owh6ZWCpPtNr/ZJw9tejSBvkU0dg/0Muqx+3Rwqo4ETMUj+hH8B
29
+ WIC/EgtUM8xCke+bmjqgb0pOQOS9sqT3I/c2uL/RyteJwFaTh62aKj1dkzd9t/jv
30
+ hHeA2sToc9dK6RcydI/XgtoUPmeOL3rPcou8DTcOkf7ZeXiikmxAf/LiGAbBMatp
31
+ 5e5DkEpxNzJhRflTf+hu75b/Z5aoapupS19QLuqfC9Lq9l1FpdHLe5LgTI3TW+XJ
32
+ xvMen/hDeMSCtP4SkYX6AdLs0p536qSMIytvFX8fP68ebWuwrPVrBHtRwix9BEES
33
+ UT/ACkkZ3WwETKXWT16986QH5vhheTA4olxRkOOFtXSmIcX98obzbYseAcrYeL/y
34
+ 43G34p7aSejz0G4xXxtpQ54DzJPtMg4Hpe9Gbo4cAQ==
35
+ -----END CERTIFICATE-----
@@ -0,0 +1,51 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ 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
51
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,9 @@
1
+ require 'rspec'
2
+ require 'rspec/core'
3
+ require 'rspec/expectations'
4
+ require 'shoulda'
5
+ require 'shoulda/matchers/integrations/rspec'
6
+
7
+ RSpec.configure do |config|
8
+
9
+ end
metadata ADDED
@@ -0,0 +1,143 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: puppet-rest
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
5
+ platform: ruby
6
+ authors:
7
+ - Steve Frank
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-10-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rake
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ! '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ! '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: faraday
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: 0.8.8
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 0.8.8
55
+ - !ruby/object:Gem::Dependency
56
+ name: multi_json
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ! '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ description: Interact with the Puppet REST Api
70
+ email:
71
+ - steve@cloudhealthtech.com
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - .gitignore
77
+ - .pryrc
78
+ - Gemfile
79
+ - Gemfile.lock
80
+ - LICENSE.txt
81
+ - README.md
82
+ - Rakefile
83
+ - lib/puppet-rest.rb
84
+ - lib/puppet-rest/db/client.rb
85
+ - lib/puppet-rest/db/config.rb
86
+ - lib/puppet-rest/db/connection.rb
87
+ - lib/puppet-rest/db/connection/fact-names.rb
88
+ - lib/puppet-rest/db/connection/facts.rb
89
+ - lib/puppet-rest/db/connection/nodes.rb
90
+ - lib/puppet-rest/db/connection/resources.rb
91
+ - lib/puppet-rest/db/entities/base.rb
92
+ - lib/puppet-rest/db/entities/fact.rb
93
+ - lib/puppet-rest/db/entities/node.rb
94
+ - lib/puppet-rest/db/entities/resource.rb
95
+ - lib/puppet-rest/db/request.rb
96
+ - lib/puppet-rest/error.rb
97
+ - lib/puppet-rest/identity_map.rb
98
+ - lib/puppet-rest/monkey_patches/array.rb
99
+ - lib/puppet-rest/monkey_patches/enumerable.rb
100
+ - lib/puppet-rest/monkey_patches/hash.rb
101
+ - lib/puppet-rest/monkey_patches/mash.rb
102
+ - lib/puppet-rest/pe/client.rb
103
+ - lib/puppet-rest/pe/config.rb
104
+ - lib/puppet-rest/pe/connection.rb
105
+ - lib/puppet-rest/pe/connection/ca_cert.rb
106
+ - lib/puppet-rest/pe/connection/catalog.rb
107
+ - lib/puppet-rest/pe/connection/node.rb
108
+ - lib/puppet-rest/pe/entities/base.rb
109
+ - lib/puppet-rest/pe/entities/catalog.rb
110
+ - lib/puppet-rest/pe/entities/node.rb
111
+ - lib/puppet-rest/pe/request.rb
112
+ - lib/puppet-rest/response/client_error.rb
113
+ - lib/puppet-rest/response/parse_json.rb
114
+ - lib/puppet-rest/version.rb
115
+ - puppet-rest.gemspec
116
+ - spec/certificates/ca.pem
117
+ - spec/certificates/cert.pem
118
+ - spec/certificates/pk.pem
119
+ - spec/spec_helper.rb
120
+ homepage: https://github.com/CloudHealth/puppet-rest
121
+ licenses: []
122
+ metadata: {}
123
+ post_install_message:
124
+ rdoc_options: []
125
+ require_paths:
126
+ - lib
127
+ required_ruby_version: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ! '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ required_rubygems_version: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - ! '>='
135
+ - !ruby/object:Gem::Version
136
+ version: '0'
137
+ requirements: []
138
+ rubyforge_project:
139
+ rubygems_version: 2.4.8
140
+ signing_key:
141
+ specification_version: 4
142
+ summary: Puppet REST API Client
143
+ test_files: []