Class: PuppetHttps
- Inherits:
-
Object
- Object
- PuppetHttps
- Defined in:
- lib/puppet_https.rb
Instance Method Summary collapse
- #delete(url) ⇒ Object
- #get(url) ⇒ Object
-
#initialize(settings) ⇒ PuppetHttps
constructor
A new instance of PuppetHttps.
- #make_ssl_request(url, req) ⇒ Object
- #post(url, request_body = nil) ⇒ Object
- #put(url, request_body = nil) ⇒ Object
Constructor Details
#initialize(settings) ⇒ PuppetHttps
Returns a new instance of PuppetHttps.
5 6 7 8 9 10 11 12 13 |
# File 'lib/puppet_https.rb', line 5 def initialize(settings) # Settings hash: # - ca_certificate_path # - certificate_path # - private_key_path # - read_timeout @settings = settings end |
Instance Method Details
#delete(url) ⇒ Object
76 77 78 79 80 81 82 83 84 |
# File 'lib/puppet_https.rb', line 76 def delete(url) url = URI.parse(url) request = Net::HTTP::Delete.new(url.request_uri) request.content_type = 'application/json' res = make_ssl_request(url, request) res end |
#get(url) ⇒ Object
54 55 56 57 58 59 60 |
# File 'lib/puppet_https.rb', line 54 def get(url) url = URI.parse(url) accept = 'application/json' req = Net::HTTP::Get.new("#{url.path}?#{url.query}", "Accept" => accept) res = make_ssl_request(url, req) res end |
#make_ssl_request(url, req) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/puppet_https.rb', line 15 def make_ssl_request(url, req) connection = Net::HTTP.new(url.host, url.port) # connection.set_debug_output $stderr connection.use_ssl = true connection.ssl_version = :TLSv1 connection.read_timeout = @settings['read_timeout'] || 90 #A default timeout value in seconds connection.verify_mode = OpenSSL::SSL::VERIFY_PEER ca_file = @settings['ca_certificate_path'] certpath = @settings['certificate_path'] pkey_path = @settings['private_key_path'] if File.exists?(ca_file) connection.ca_file = ca_file end if File.exists?(certpath) connection.cert = OpenSSL::X509::Certificate.new(File.read(certpath)) end if File.exists?(pkey_path) connection.key = OpenSSL::PKey::RSA.new(File.read(pkey_path)) end connection.start { |http| http.request(req) } end |
#post(url, request_body = nil) ⇒ Object
62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/puppet_https.rb', line 62 def post(url, request_body=nil) url = URI.parse(url) request = Net::HTTP::Post.new(url.request_uri) request.content_type = 'application/json' unless request_body.nil? request.body = request_body end res = make_ssl_request(url, request) res end |
#put(url, request_body = nil) ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/puppet_https.rb', line 42 def put(url, request_body=nil) url = URI.parse(url) req = Net::HTTP::Put.new(url.path) req.content_type = 'application/json' unless request_body.nil? req.body = request_body end res = make_ssl_request(url, req) end |