diff options
| author | Pieter van de Bruggen <pieter@puppetlabs.com> | 2011-03-23 13:59:44 -0700 |
|---|---|---|
| committer | Pieter van de Bruggen <pieter@puppetlabs.com> | 2011-03-23 13:59:44 -0700 |
| commit | 1187a0eb2550f04d9b6c3dcfdcacdfbb32de0e56 (patch) | |
| tree | bfa547837e6112bfd274f16941461b942aa19f43 /lib/puppet/interface | |
| parent | f7db67513cace1efaf054406dae040dab2c44efd (diff) | |
(#6770) Add basic versioning for interfaces.
Reviewed-By: Nick Lewis
Diffstat (limited to 'lib/puppet/interface')
23 files changed, 54 insertions, 52 deletions
diff --git a/lib/puppet/interface/certificate.rb b/lib/puppet/interface/certificate.rb deleted file mode 100644 index 09da0a6c3..000000000 --- a/lib/puppet/interface/certificate.rb +++ /dev/null @@ -1,4 +0,0 @@ -require 'puppet/interface/indirector' - -Puppet::Interface::Indirector.interface(:certificate) do -end diff --git a/lib/puppet/interface/certificate_request.rb b/lib/puppet/interface/certificate_request.rb deleted file mode 100644 index b85c15fef..000000000 --- a/lib/puppet/interface/certificate_request.rb +++ /dev/null @@ -1,4 +0,0 @@ -require 'puppet/interface/indirector' - -Puppet::Interface::Indirector.interface(:certificate_request) do -end diff --git a/lib/puppet/interface/configurer.rb b/lib/puppet/interface/configurer.rb deleted file mode 100644 index 0d21c4d72..000000000 --- a/lib/puppet/interface/configurer.rb +++ /dev/null @@ -1,12 +0,0 @@ -require 'puppet/interface' - -Puppet::Interface.interface(:configurer) do - action(:synchronize) do - invoke do |certname| - facts = Puppet::Interface.interface(:facts).find(certname) - catalog = Puppet::Interface.interface(:catalog).download(certname, facts) - report = Puppet::Interface.interface(:catalog).apply(catalog) - report - end - end -end diff --git a/lib/puppet/interface/interface_collection.rb b/lib/puppet/interface/interface_collection.rb index 47ed702aa..d626c4f72 100644 --- a/lib/puppet/interface/interface_collection.rb +++ b/lib/puppet/interface/interface_collection.rb @@ -1,7 +1,7 @@ require 'puppet/interface' module Puppet::Interface::InterfaceCollection - @interfaces = {} + @interfaces = Hash.new { |hash, key| hash[key] = {} } def self.interfaces unless @loaded @@ -24,20 +24,22 @@ module Puppet::Interface::InterfaceCollection return @interfaces.keys end - def self.[](name) - @interfaces[underscorize(name)] if interface?(name) + def self.[](name, version) + @interfaces[underscorize(name)][version] if interface?(name, version) end - def self.interface?(name) + def self.interface?(name, version) name = underscorize(name) - require "puppet/interface/#{name}" unless @interfaces.has_key? name - return @interfaces.has_key? name + unless @interfaces.has_key?(name) && @interfaces[name].has_key?(version) + require "puppet/interface/v#{version}/#{name}" + end + return @interfaces.has_key?(name) && @interfaces[name].has_key?(version) rescue LoadError return false end def self.register(interface) - @interfaces[underscorize(interface.name)] = interface + @interfaces[underscorize(interface.name)][interface.version] = interface end def self.underscorize(name) diff --git a/lib/puppet/interface/key.rb b/lib/puppet/interface/key.rb deleted file mode 100644 index 57519883d..000000000 --- a/lib/puppet/interface/key.rb +++ /dev/null @@ -1,4 +0,0 @@ -require 'puppet/interface/indirector' - -Puppet::Interface::Indirector.interface(:key) do -end diff --git a/lib/puppet/interface/resource.rb b/lib/puppet/interface/resource.rb deleted file mode 100644 index 130f40fce..000000000 --- a/lib/puppet/interface/resource.rb +++ /dev/null @@ -1,4 +0,0 @@ -require 'puppet/interface/indirector' - -Puppet::Interface::Indirector.interface(:resource) do -end diff --git a/lib/puppet/interface/resource_type.rb b/lib/puppet/interface/resource_type.rb deleted file mode 100644 index 70bf3b95a..000000000 --- a/lib/puppet/interface/resource_type.rb +++ /dev/null @@ -1,4 +0,0 @@ -require 'puppet/interface/indirector' - -Puppet::Interface::Indirector.interface(:resource_type) do -end diff --git a/lib/puppet/interface/status.rb b/lib/puppet/interface/status.rb deleted file mode 100644 index 432d1ce54..000000000 --- a/lib/puppet/interface/status.rb +++ /dev/null @@ -1,4 +0,0 @@ -require 'puppet/interface/indirector' - -Puppet::Interface::Indirector.interface(:status) do -end diff --git a/lib/puppet/interface/catalog.rb b/lib/puppet/interface/v1/catalog.rb index defe32127..2ba642039 100644 --- a/lib/puppet/interface/catalog.rb +++ b/lib/puppet/interface/v1/catalog.rb @@ -1,6 +1,6 @@ require 'puppet/interface/indirector' -Puppet::Interface::Indirector.interface(:catalog) do +Puppet::Interface::Indirector.interface(:catalog, 1) do action(:apply) do invoke do |catalog| report = Puppet::Transaction::Report.new("apply") @@ -28,7 +28,7 @@ Puppet::Interface::Indirector.interface(:catalog) do facts_to_upload = {:facts_format => :b64_zlib_yaml, :facts => CGI.escape(facts.render(:b64_zlib_yaml))} catalog = nil retrieval_duration = thinmark do - catalog = Puppet::Interface.interface(:catalog).find(certname, facts_to_upload) + catalog = Puppet::Interface.interface(:catalog, 1).find(certname, facts_to_upload) end catalog = catalog.to_ral catalog.finalize diff --git a/lib/puppet/interface/catalog/select.rb b/lib/puppet/interface/v1/catalog/select.rb index 32d9b7c45..e37c841b5 100644 --- a/lib/puppet/interface/catalog/select.rb +++ b/lib/puppet/interface/v1/catalog/select.rb @@ -1,5 +1,5 @@ # Select and show a list of resources of a given type. -Puppet::Interface.interface(:catalog) do +Puppet::Interface.interface(:catalog, 1) do action :select do invoke do |host,type| catalog = Puppet::Resource::Catalog.indirection.find(host) diff --git a/lib/puppet/interface/v1/certificate.rb b/lib/puppet/interface/v1/certificate.rb new file mode 100644 index 000000000..9a88c628a --- /dev/null +++ b/lib/puppet/interface/v1/certificate.rb @@ -0,0 +1,4 @@ +require 'puppet/interface/indirector' + +Puppet::Interface::Indirector.interface(:certificate, 1) do +end diff --git a/lib/puppet/interface/v1/certificate_request.rb b/lib/puppet/interface/v1/certificate_request.rb new file mode 100644 index 000000000..868933e1f --- /dev/null +++ b/lib/puppet/interface/v1/certificate_request.rb @@ -0,0 +1,4 @@ +require 'puppet/interface/indirector' + +Puppet::Interface::Indirector.interface(:certificate_request, 1) do +end diff --git a/lib/puppet/interface/certificate_revocation_list.rb b/lib/puppet/interface/v1/certificate_revocation_list.rb index 956fb6494..09efd8c7a 100644 --- a/lib/puppet/interface/certificate_revocation_list.rb +++ b/lib/puppet/interface/v1/certificate_revocation_list.rb @@ -1,4 +1,4 @@ require 'puppet/interface/indirector' -Puppet::Interface::Indirector.interface(:certificate_revocation_list) do +Puppet::Interface::Indirector.interface(:certificate_revocation_list, 1) do end diff --git a/lib/puppet/interface/config.rb b/lib/puppet/interface/v1/config.rb index 79d2ee7c1..a072e703c 100644 --- a/lib/puppet/interface/config.rb +++ b/lib/puppet/interface/v1/config.rb @@ -1,6 +1,6 @@ require 'puppet/interface' -Puppet::Interface.interface(:config) do +Puppet::Interface.interface(:config, 1) do action(:print) do invoke do |*args| Puppet.settings[:configprint] = args.join(",") diff --git a/lib/puppet/interface/v1/configurer.rb b/lib/puppet/interface/v1/configurer.rb new file mode 100644 index 000000000..1deffce4e --- /dev/null +++ b/lib/puppet/interface/v1/configurer.rb @@ -0,0 +1,12 @@ +require 'puppet/interface' + +Puppet::Interface.interface(:configurer, 1) do + action(:synchronize) do + invoke do |certname| + facts = Puppet::Interface.interface(:facts, 1).find(certname) + catalog = Puppet::Interface.interface(:catalog, 1).download(certname, facts) + report = Puppet::Interface.interface(:catalog, 1).apply(catalog) + report + end + end +end diff --git a/lib/puppet/interface/facts.rb b/lib/puppet/interface/v1/facts.rb index 97e22714b..0be23b781 100644 --- a/lib/puppet/interface/facts.rb +++ b/lib/puppet/interface/v1/facts.rb @@ -1,7 +1,7 @@ require 'puppet/interface/indirector' require 'puppet/node/facts' -Puppet::Interface::Indirector.interface(:facts) do +Puppet::Interface::Indirector.interface(:facts, 1) do set_default_format :yaml # Upload our facts to the server diff --git a/lib/puppet/interface/file.rb b/lib/puppet/interface/v1/file.rb index f38af2b92..430413a56 100644 --- a/lib/puppet/interface/file.rb +++ b/lib/puppet/interface/v1/file.rb @@ -1,5 +1,5 @@ require 'puppet/interface/indirector' -Puppet::Interface::Indirector.interface(:file) do +Puppet::Interface::Indirector.interface(:file, 1) do set_indirection_name :file_bucket_file end diff --git a/lib/puppet/interface/v1/key.rb b/lib/puppet/interface/v1/key.rb new file mode 100644 index 000000000..fc82f4d68 --- /dev/null +++ b/lib/puppet/interface/v1/key.rb @@ -0,0 +1,4 @@ +require 'puppet/interface/indirector' + +Puppet::Interface::Indirector.interface(:key, 1) do +end diff --git a/lib/puppet/interface/node.rb b/lib/puppet/interface/v1/node.rb index 8940fd7dd..c3e527856 100644 --- a/lib/puppet/interface/node.rb +++ b/lib/puppet/interface/v1/node.rb @@ -1,5 +1,5 @@ require 'puppet/interface/indirector' -Puppet::Interface::Indirector.interface(:node) do +Puppet::Interface::Indirector.interface(:node, 1) do set_default_format :yaml end diff --git a/lib/puppet/interface/report.rb b/lib/puppet/interface/v1/report.rb index 56a58f6aa..fdc2e2c0f 100644 --- a/lib/puppet/interface/report.rb +++ b/lib/puppet/interface/v1/report.rb @@ -1,6 +1,6 @@ require 'puppet/interface/indirector' -Puppet::Interface::Indirector.interface(:report) do +Puppet::Interface::Indirector.interface(:report, 1) do action(:submit) do invoke do |report| begin diff --git a/lib/puppet/interface/v1/resource.rb b/lib/puppet/interface/v1/resource.rb new file mode 100644 index 000000000..20dc2837c --- /dev/null +++ b/lib/puppet/interface/v1/resource.rb @@ -0,0 +1,4 @@ +require 'puppet/interface/indirector' + +Puppet::Interface::Indirector.interface(:resource, 1) do +end diff --git a/lib/puppet/interface/v1/resource_type.rb b/lib/puppet/interface/v1/resource_type.rb new file mode 100644 index 000000000..f180dc576 --- /dev/null +++ b/lib/puppet/interface/v1/resource_type.rb @@ -0,0 +1,4 @@ +require 'puppet/interface/indirector' + +Puppet::Interface::Indirector.interface(:resource_type, 1) do +end diff --git a/lib/puppet/interface/v1/status.rb b/lib/puppet/interface/v1/status.rb new file mode 100644 index 000000000..a2493b581 --- /dev/null +++ b/lib/puppet/interface/v1/status.rb @@ -0,0 +1,4 @@ +require 'puppet/interface/indirector' + +Puppet::Interface::Indirector.interface(:status, 1) do +end |
