Class: Proxy::ContainerGateway::ForemanApi

Inherits:
Object
  • Object
show all
Defined in:
lib/smart_proxy_container_gateway/foreman_api.rb

Instance Method Summary collapse

Instance Method Details

#fetch_token(auth_header, params) ⇒ Object



25
26
27
# File 'lib/smart_proxy_container_gateway/foreman_api.rb', line 25

def fetch_token(auth_header, params)
  registry_request(auth_header, params, 'token')
end

#fetch_user_repositories(auth_header, params) ⇒ Object



29
30
31
# File 'lib/smart_proxy_container_gateway/foreman_api.rb', line 29

def fetch_user_repositories(auth_header, params)
  registry_request(auth_header, params, '_catalog')
end

#process_params(params_in) ⇒ Object



20
21
22
23
# File 'lib/smart_proxy_container_gateway/foreman_api.rb', line 20

def process_params(params_in)
  params = params_in.slice('scope', 'account').compact
  URI.encode_www_form(params)
end

#registry_request(auth_header, params, suffix) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/smart_proxy_container_gateway/foreman_api.rb', line 6

def registry_request(auth_header, params, suffix)
  uri = URI.join(Proxy::SETTINGS.foreman_url, Proxy::ContainerGateway::Plugin.settings.katello_registry_path, suffix)
  uri.query = process_params(params)

  req = Net::HTTP::Get.new(uri)
  req.add_field('Authorization', auth_header)
  req.add_field('Accept', 'application/json')
  req.content_type = 'application/json'
  http = Net::HTTP.new(uri.hostname, uri.port)
  http.use_ssl = true

  http.request(req)
end