Skip to content

Commit 5ea790a

Browse files
committed
Fixes #30857 - Merge puppet_proxy_puppet_api into mod
In 7e7015a the legacy provider was dropped. Since then, there is only one provider. The provider code was kept since it didn't need any changes to configuration files. However, having a module with just a single provider is complex. Both from a code perspective and as an admin. The implications are that the puppet.yaml and puppet_proxy_puppet_api.yaml files are merged (after being split in df0fc72). This means installer and manual updates are needed to reflect this.
1 parent 4ef9588 commit 5ea790a

25 files changed

+133
-349
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,14 @@
11
---
22
# Can be true, false, or http/https to enable just one of the protocols
33
:enabled: false
4+
5+
# URL of the puppet master itself for API requests.
6+
#:puppet_url: https://puppet.example.com:8140
7+
8+
# SSL certificates used to access the puppet API
9+
#:puppet_ssl_ca: /etc/puppetlabs/puppet/ssl/certs/ca.pem
10+
#:puppet_ssl_cert: /etc/puppetlabs/puppet/ssl/certs/puppet.example.com.pem
11+
#:puppet_ssl_key: /etc/puppetlabs/puppet/ssl/private_keys/puppet.example.com.pem
12+
13+
# Smart Proxy api timeout when Puppet's environment classes api is used and classes cache is disabled
14+
#:api_timeout: 30

config/settings.d/puppet_proxy_puppet_api.yml.example

Lines changed: 0 additions & 11 deletions
This file was deleted.

extra/migrations/20160413000000_migrate_puppet_settings.rb

Lines changed: 0 additions & 88 deletions
This file was deleted.

lib/smart_proxy_main.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,6 @@ module Proxy
6767
require 'puppetca_hostname_whitelisting/puppetca_hostname_whitelisting'
6868
require 'puppetca_token_whitelisting/puppetca_token_whitelisting'
6969
require 'puppet_proxy/puppet'
70-
require 'puppet_proxy_puppet_api/puppet_proxy_puppet_api'
7170
require 'bmc/bmc'
7271
require 'realm/realm'
7372
require 'realm_freeipa/realm_freeipa'

modules/puppet_proxy_puppet_api/v3_api_request.rb renamed to modules/puppet_proxy/apiv3.rb

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
require 'puppet_proxy_common/api_request'
22

3-
module Proxy::PuppetApi
4-
class EnvironmentsApiv3 < ::Proxy::Puppet::ApiRequest
3+
module Proxy::Puppet
4+
class Apiv3 < ::Proxy::Puppet::ApiRequest
5+
NOT_MODIFIED = Object.new
6+
57
def find_environments
68
handle_response(send_request('puppet/v3/environments'), "Failed to query Puppet find environments v3 API")
79
end
8-
end
9-
10-
class EnvironmentClassesApiv3 < ::Proxy::Puppet::ApiRequest
11-
NOT_MODIFIED = Object.new
1210

1311
def list_classes(environment, etag, timeout)
1412
response = send_request("puppet/v3/environment_classes?environment=#{environment}", timeout, "If-None-Match" => etag)
Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,37 @@
11
module ::Proxy::Puppet
22
class ConfigurationLoader
3-
def load_programmable_settings(settings)
4-
settings[:use_provider] = [:puppet_proxy_puppet_api]
5-
settings
6-
end
7-
83
def load_classes
9-
require 'puppet_proxy_common/errors'
4+
require 'puppet_proxy/errors'
105
require 'puppet_proxy/dependency_injection'
116
require 'puppet_proxy/puppet_api'
7+
require 'puppet_proxy/environment'
8+
require 'puppet_proxy/puppet_class'
9+
require 'puppet_proxy_common/api_request'
10+
require 'puppet_proxy/apiv3'
11+
require 'puppet_proxy/v3_environments_retriever'
12+
require 'puppet_proxy/v3_environment_classes_api_classes_retriever'
13+
end
14+
15+
def load_dependency_injection_wirings(container_instance, settings)
16+
container_instance.dependency :environment_retriever_impl,
17+
(lambda do
18+
api = Proxy::Puppet::Apiv3.new(
19+
settings[:puppet_url],
20+
settings[:puppet_ssl_ca],
21+
settings[:puppet_ssl_cert],
22+
settings[:puppet_ssl_key])
23+
::Proxy::Puppet::V3EnvironmentsRetriever.new(api)
24+
end)
25+
26+
container_instance.singleton_dependency :class_retriever_impl,
27+
(lambda do
28+
::Proxy::Puppet::V3EnvironmentClassesApiClassesRetriever.new(
29+
settings[:puppet_url],
30+
settings[:puppet_ssl_ca],
31+
settings[:puppet_ssl_cert],
32+
settings[:puppet_ssl_key],
33+
settings[:api_timeout])
34+
end)
1235
end
1336
end
1437
end
File renamed without changes.
File renamed without changes.

modules/puppet_proxy/puppet_plugin.rb

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,12 @@ class Plugin < Proxy::Plugin
44

55
plugin :puppet, ::Proxy::VERSION
66

7-
uses_provider
8-
load_programmable_settings ::Proxy::Puppet::ConfigurationLoader
97
load_classes ::Proxy::Puppet::ConfigurationLoader
8+
load_dependency_injection_wirings ::Proxy::Puppet::ConfigurationLoader
9+
10+
default_settings :puppet_ssl_ca => '/etc/puppetlabs/puppet/ssl/certs/ca.pem', :api_timeout => 30
11+
validate :puppet_url, :url => true
12+
expose_setting :puppet_url
13+
validate_readable :puppet_ssl_ca, :puppet_ssl_cert, :puppet_ssl_key
1014
end
1115
end

0 commit comments

Comments
 (0)