summaryrefslogtreecommitdiffstats
path: root/lib/puppet/interface
diff options
context:
space:
mode:
authorPieter van de Bruggen <pieter@puppetlabs.com>2011-03-23 13:59:44 -0700
committerPieter van de Bruggen <pieter@puppetlabs.com>2011-03-23 13:59:44 -0700
commit1187a0eb2550f04d9b6c3dcfdcacdfbb32de0e56 (patch)
treebfa547837e6112bfd274f16941461b942aa19f43 /lib/puppet/interface
parentf7db67513cace1efaf054406dae040dab2c44efd (diff)
(#6770) Add basic versioning for interfaces.
Reviewed-By: Nick Lewis
Diffstat (limited to 'lib/puppet/interface')
-rw-r--r--lib/puppet/interface/certificate.rb4
-rw-r--r--lib/puppet/interface/certificate_request.rb4
-rw-r--r--lib/puppet/interface/configurer.rb12
-rw-r--r--lib/puppet/interface/interface_collection.rb16
-rw-r--r--lib/puppet/interface/key.rb4
-rw-r--r--lib/puppet/interface/resource.rb4
-rw-r--r--lib/puppet/interface/resource_type.rb4
-rw-r--r--lib/puppet/interface/status.rb4
-rw-r--r--lib/puppet/interface/v1/catalog.rb (renamed from lib/puppet/interface/catalog.rb)4
-rw-r--r--lib/puppet/interface/v1/catalog/select.rb (renamed from lib/puppet/interface/catalog/select.rb)2
-rw-r--r--lib/puppet/interface/v1/certificate.rb4
-rw-r--r--lib/puppet/interface/v1/certificate_request.rb4
-rw-r--r--lib/puppet/interface/v1/certificate_revocation_list.rb (renamed from lib/puppet/interface/certificate_revocation_list.rb)2
-rw-r--r--lib/puppet/interface/v1/config.rb (renamed from lib/puppet/interface/config.rb)2
-rw-r--r--lib/puppet/interface/v1/configurer.rb12
-rw-r--r--lib/puppet/interface/v1/facts.rb (renamed from lib/puppet/interface/facts.rb)2
-rw-r--r--lib/puppet/interface/v1/file.rb (renamed from lib/puppet/interface/file.rb)2
-rw-r--r--lib/puppet/interface/v1/key.rb4
-rw-r--r--lib/puppet/interface/v1/node.rb (renamed from lib/puppet/interface/node.rb)2
-rw-r--r--lib/puppet/interface/v1/report.rb (renamed from lib/puppet/interface/report.rb)2
-rw-r--r--lib/puppet/interface/v1/resource.rb4
-rw-r--r--lib/puppet/interface/v1/resource_type.rb4
-rw-r--r--lib/puppet/interface/v1/status.rb4
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