class Registry
Public Instance Methods
deleteDirectory(root)
click to toggle source
# File lib/canzea/core/registry.rb, line 73 def deleteDirectory (root) uri = URI.parse(ENV["CONSUL_URL"] + "/v1/kv/#{root}?recurse=true") http = prepareHttp(uri) request = Net::HTTP::Delete.new(uri.request_uri) resp = http.request(request) if Integer(resp.code) != 200 puts "-- KEY NOT DELETED! " + root abort("Response code #{resp.code}") end end
exists(key)
click to toggle source
# File lib/canzea/core/registry.rb, line 59 def exists (key) uri = URI.parse(ENV["CONSUL_URL"] + "/v1/kv/#{key}") http = prepareHttp(uri) request = Net::HTTP::Get.new(uri.request_uri) resp = http.request(request) if Integer(resp.code) == 200 return true else return false end end
getKeyValue(key)
click to toggle source
# File lib/canzea/core/registry.rb, line 27 def getKeyValue (key) uri = URI.parse(ENV["CONSUL_URL"] + "/v1/kv/#{key}") http = prepareHttp(uri) request = Net::HTTP::Get.new(uri.request_uri) resp = http.request(request) if Integer(resp.code) != 200 puts "-- KEY VALUE NOT FOUND! " + key abort("Problem reading registry, response code #{resp.code}") end result = JSON.parse(resp.body) return Base64.decode64(result[0]["Value"]) end
getKeyValues(root)
click to toggle source
# File lib/canzea/core/registry.rb, line 7 def getKeyValues (root) uri = URI.parse(ENV["CONSUL_URL"] + "/v1/kv/#{root}?recurse=true") http = prepareHttp(uri) request = Net::HTTP::Get.new(uri.request_uri) resp = http.request(request) if ( Integer(resp.code) != 200 ) puts "-- KEY VALUE NOT FOUND! " + root abort("Problem reading registry, response code #{resp.code}") else response = [] result = JSON.parse(resp.body) result.each() do |item| response.push({item["Key"] => Base64.decode64(item["Value"])}) end return JSON.generate(response) end end
getSecret(key)
click to toggle source
# File lib/canzea/core/registry.rb, line 103 def getSecret (key) uri = URI.parse(ENV["VAULT_URL"] + "/v1/secret/#{key}") http = prepareHttpForVault(uri) request = Net::HTTP::Get.new(uri.request_uri) request['X-Vault-Token'] = ENV["VAULT_TOKEN"] resp = http.request(request) if Integer(resp.code) != 200 puts "-- UNABLE TO GET SECRET! #{key}" abort("Problem getting secret from vault, response code #{resp.code}") end return JSON.parse(resp.body)['data'] end
prepareHttp(uri)
click to toggle source
# File lib/canzea/core/registry.rb, line 153 def prepareHttp (uri) http = Net::HTTP.new(uri.host, uri.port) if (Canzea::config[:consul_tls]) pemCert = File.read(Canzea::config[:consul_tls_cert_file]) pemKey = File.read(Canzea::config[:consul_tls_key_file]) http.use_ssl = true http.ca_file = Canzea::config[:consul_tls_ca_file] http.cert = OpenSSL::X509::Certificate.new(pemCert) http.key = OpenSSL::PKey::RSA.new(pemKey) http.verify_mode = OpenSSL::SSL::VERIFY_PEER # http.set_debug_output($stdout) http.ssl_version = :SSLv23 end return http end
prepareHttpForVault(uri)
click to toggle source
# File lib/canzea/core/registry.rb, line 172 def prepareHttpForVault (uri) http = Net::HTTP.new(uri.host, uri.port) if (Canzea::config[:consul_tls]) pemCert = File.read(Canzea::config[:vault_tls_cert_file]) pemKey = File.read(Canzea::config[:vault_tls_key_file]) http.use_ssl = true http.ca_file = Canzea::config[:consul_tls_ca_file] http.cert = OpenSSL::X509::Certificate.new(pemCert) http.key = OpenSSL::PKey::RSA.new(pemKey) http.verify_mode = OpenSSL::SSL::VERIFY_PEER # http.set_debug_output($stdout) http.ssl_version = :SSLv23 end return http end
register(root, key, value)
click to toggle source
# File lib/canzea/core/registry.rb, line 99 def register (root, key, value) setKeyValue root, key, value end
registerDirectory(root)
click to toggle source
# File lib/canzea/core/registry.rb, line 86 def registerDirectory (root) uri = URI.parse(ENV["CONSUL_URL"] + "/v1/kv/#{root}?dir=true") http = prepareHttp(uri) request = Net::HTTP::Put.new(uri.request_uri) resp = http.request(request) if Integer(resp.code) > 202 puts "-- KEY DIRECTORY NOT SAVED! #{root}" abort("Problem adding to registry, response code #{resp.code}") end end
setKeyValue(root, key, value)
click to toggle source
# File lib/canzea/core/registry.rb, line 44 def setKeyValue (root, key, value) uri = URI.parse(ENV["CONSUL_URL"] + "/v1/kv/#{root}/#{key}") http = prepareHttp(uri) request = Net::HTTP::Put.new(uri.request_uri) request.body = "#{value}"; resp = http.request(request) if Integer(resp.code) != 200 puts "-- KEY VALUE NOT SAVED! #{root} #{key}" abort("Problem adding to registry, response code #{resp.code}") end end
setSecret(key, value)
click to toggle source
# File lib/canzea/core/registry.rb, line 136 def setSecret (key, value) uri = URI.parse(ENV["VAULT_URL"] + "/v1/secret/#{key}") http = prepareHttpForVault(uri) request = Net::HTTP::Put.new(uri.request_uri) request['Content-Type'] = 'application/json' request['X-Vault-Token'] = ENV["VAULT_TOKEN"] request.body = "#{value}"; resp = http.request(request) if Integer(resp.code) != 204 puts "-- SECRET NOT SAVED! #{key}" abort("Problem adding to vault, response code #{resp.code}") end end
setVaultRecord(key, value)
click to toggle source
# File lib/canzea/core/registry.rb, line 119 def setVaultRecord (key, value) uri = URI.parse(ENV["VAULT_URL"] + "/v1/#{key}") http = prepareHttpForVault(uri) request = Net::HTTP::Put.new(uri.request_uri) request['Content-Type'] = 'application/json' request['X-Vault-Token'] = ENV["VAULT_TOKEN"] request.body = "#{value}"; resp = http.request(request) if Integer(resp.code) != 204 puts "-- VAULT RECORD NOT SAVED! #{key}" abort("Problem adding to vault, response code #{resp.code}") end end