summaryrefslogtreecommitdiffstats
path: root/lib/puppet/interface
diff options
context:
space:
mode:
authorPieter van de Bruggen <pieter@puppetlabs.com>2011-03-23 16:39:42 -0700
committerPieter van de Bruggen <pieter@puppetlabs.com>2011-03-23 16:39:42 -0700
commit0bdbe18b3f3981c1e1f661e211e20ccab1278f81 (patch)
treec602ca1f0777073be8cf789f643296b86515eeff /lib/puppet/interface
parent635751d809af309c7c36c0c9d7a94a731ef8bd1c (diff)
parentc25fb94725c9abfb36e67938356f97823f8b605e (diff)
downloadpuppet-0bdbe18b3f3981c1e1f661e211e20ccab1278f81.tar.gz
puppet-0bdbe18b3f3981c1e1f661e211e20ccab1278f81.tar.xz
puppet-0bdbe18b3f3981c1e1f661e211e20ccab1278f81.zip
Merge branch 'tickets/master/6770'
Conflicts: lib/puppet/interface/certificate.rb spec/unit/application/interface_base_spec.rb spec/unit/interface/interface_collection_spec.rb
Diffstat (limited to 'lib/puppet/interface')
-rw-r--r--lib/puppet/interface/certificate_request.rb4
-rw-r--r--lib/puppet/interface/certificate_revocation_list.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/v0.0.1/catalog.rb (renamed from lib/puppet/interface/catalog.rb)4
-rw-r--r--lib/puppet/interface/v0.0.1/catalog/select.rb (renamed from lib/puppet/interface/catalog/select.rb)2
-rw-r--r--lib/puppet/interface/v0.0.1/certificate.rb (renamed from lib/puppet/interface/certificate.rb)4
-rw-r--r--lib/puppet/interface/v0.0.1/certificate_request.rb4
-rw-r--r--lib/puppet/interface/v0.0.1/certificate_revocation_list.rb4
-rw-r--r--lib/puppet/interface/v0.0.1/config.rb (renamed from lib/puppet/interface/config.rb)2
-rw-r--r--lib/puppet/interface/v0.0.1/configurer.rb12
-rw-r--r--lib/puppet/interface/v0.0.1/facts.rb (renamed from lib/puppet/interface/facts.rb)2
-rw-r--r--lib/puppet/interface/v0.0.1/file.rb (renamed from lib/puppet/interface/file.rb)2
-rw-r--r--lib/puppet/interface/v0.0.1/key.rb4
-rw-r--r--lib/puppet/interface/v0.0.1/node.rb (renamed from lib/puppet/interface/node.rb)2
-rw-r--r--lib/puppet/interface/v0.0.1/report.rb (renamed from lib/puppet/interface/report.rb)2
-rw-r--r--lib/puppet/interface/v0.0.1/resource.rb4
-rw-r--r--lib/puppet/interface/v0.0.1/resource_type.rb4
-rw-r--r--lib/puppet/interface/v0.0.1/status.rb4
23 files changed, 55 insertions, 53 deletions
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/certificate_revocation_list.rb b/lib/puppet/interface/certificate_revocation_list.rb
deleted file mode 100644
index 956fb6494..000000000
--- a/lib/puppet/interface/certificate_revocation_list.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-require 'puppet/interface/indirector'
-
-Puppet::Interface::Indirector.interface(:certificate_revocation_list) 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/v0.0.1/catalog.rb
index defe32127..7d61528bc 100644
--- a/lib/puppet/interface/catalog.rb
+++ b/lib/puppet/interface/v0.0.1/catalog.rb
@@ -1,6 +1,6 @@
require 'puppet/interface/indirector'
-Puppet::Interface::Indirector.interface(:catalog) do
+Puppet::Interface::Indirector.define(:catalog, '0.0.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[:catalog, '0.0.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/v0.0.1/catalog/select.rb
index 32d9b7c45..35f1a1e0b 100644
--- a/lib/puppet/interface/catalog/select.rb
+++ b/lib/puppet/interface/v0.0.1/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.define(:catalog, '0.0.1') do
action :select do
invoke do |host,type|
catalog = Puppet::Resource::Catalog.indirection.find(host)
diff --git a/lib/puppet/interface/certificate.rb b/lib/puppet/interface/v0.0.1/certificate.rb
index 86ac6d6ea..2615e3d86 100644
--- a/lib/puppet/interface/certificate.rb
+++ b/lib/puppet/interface/v0.0.1/certificate.rb
@@ -1,7 +1,7 @@
require 'puppet/interface/indirector'
require 'puppet/ssl/host'
-Puppet::Interface::Indirector.interface(:certificate) do
+Puppet::Interface::Indirector.define(:certificate, '0.0.1') do
action :generate do
invoke do |name|
@@ -19,7 +19,7 @@ Puppet::Interface::Indirector.interface(:certificate) do
end
end
- action :sign do |name|
+ action :sign do
invoke do |name|
Puppet::SSL::Host.indirection.save(Puppet::SSL::Host.new(name))
end
diff --git a/lib/puppet/interface/v0.0.1/certificate_request.rb b/lib/puppet/interface/v0.0.1/certificate_request.rb
new file mode 100644
index 000000000..e5ed1b51e
--- /dev/null
+++ b/lib/puppet/interface/v0.0.1/certificate_request.rb
@@ -0,0 +1,4 @@
+require 'puppet/interface/indirector'
+
+Puppet::Interface::Indirector.define(:certificate_request, '0.0.1') do
+end
diff --git a/lib/puppet/interface/v0.0.1/certificate_revocation_list.rb b/lib/puppet/interface/v0.0.1/certificate_revocation_list.rb
new file mode 100644
index 000000000..f6d8a3d6d
--- /dev/null
+++ b/lib/puppet/interface/v0.0.1/certificate_revocation_list.rb
@@ -0,0 +1,4 @@
+require 'puppet/interface/indirector'
+
+Puppet::Interface::Indirector.define(:certificate_revocation_list, '0.0.1') do
+end
diff --git a/lib/puppet/interface/config.rb b/lib/puppet/interface/v0.0.1/config.rb
index 79d2ee7c1..b33e19bb4 100644
--- a/lib/puppet/interface/config.rb
+++ b/lib/puppet/interface/v0.0.1/config.rb
@@ -1,6 +1,6 @@
require 'puppet/interface'
-Puppet::Interface.interface(:config) do
+Puppet::Interface.define(:config, '0.0.1') do
action(:print) do
invoke do |*args|
Puppet.settings[:configprint] = args.join(",")
diff --git a/lib/puppet/interface/v0.0.1/configurer.rb b/lib/puppet/interface/v0.0.1/configurer.rb
new file mode 100644
index 000000000..38536b684
--- /dev/null
+++ b/lib/puppet/interface/v0.0.1/configurer.rb
@@ -0,0 +1,12 @@
+require 'puppet/interface'
+
+Puppet::Interface.define(:configurer, '0.0.1') do
+ action(:synchronize) do
+ invoke do |certname|
+ facts = Puppet::Interface[:facts, '0.0.1'].find(certname)
+ catalog = Puppet::Interface[:catalog, '0.0.1'].download(certname, facts)
+ report = Puppet::Interface[:catalog, '0.0.1'].apply(catalog)
+ report
+ end
+ end
+end
diff --git a/lib/puppet/interface/facts.rb b/lib/puppet/interface/v0.0.1/facts.rb
index 97e22714b..c4bbad845 100644
--- a/lib/puppet/interface/facts.rb
+++ b/lib/puppet/interface/v0.0.1/facts.rb
@@ -1,7 +1,7 @@
require 'puppet/interface/indirector'
require 'puppet/node/facts'
-Puppet::Interface::Indirector.interface(:facts) do
+Puppet::Interface::Indirector.define(:facts, '0.0.1') do
set_default_format :yaml
# Upload our facts to the server
diff --git a/lib/puppet/interface/file.rb b/lib/puppet/interface/v0.0.1/file.rb
index f38af2b92..91904e8e0 100644
--- a/lib/puppet/interface/file.rb
+++ b/lib/puppet/interface/v0.0.1/file.rb
@@ -1,5 +1,5 @@
require 'puppet/interface/indirector'
-Puppet::Interface::Indirector.interface(:file) do
+Puppet::Interface::Indirector.define(:file, '0.0.1') do
set_indirection_name :file_bucket_file
end
diff --git a/lib/puppet/interface/v0.0.1/key.rb b/lib/puppet/interface/v0.0.1/key.rb
new file mode 100644
index 000000000..fbc9b67b1
--- /dev/null
+++ b/lib/puppet/interface/v0.0.1/key.rb
@@ -0,0 +1,4 @@
+require 'puppet/interface/indirector'
+
+Puppet::Interface::Indirector.define(:key, '0.0.1') do
+end
diff --git a/lib/puppet/interface/node.rb b/lib/puppet/interface/v0.0.1/node.rb
index 8940fd7dd..4ecec1478 100644
--- a/lib/puppet/interface/node.rb
+++ b/lib/puppet/interface/v0.0.1/node.rb
@@ -1,5 +1,5 @@
require 'puppet/interface/indirector'
-Puppet::Interface::Indirector.interface(:node) do
+Puppet::Interface::Indirector.define(:node, '0.0.1') do
set_default_format :yaml
end
diff --git a/lib/puppet/interface/report.rb b/lib/puppet/interface/v0.0.1/report.rb
index 56a58f6aa..bacb46e70 100644
--- a/lib/puppet/interface/report.rb
+++ b/lib/puppet/interface/v0.0.1/report.rb
@@ -1,6 +1,6 @@
require 'puppet/interface/indirector'
-Puppet::Interface::Indirector.interface(:report) do
+Puppet::Interface::Indirector.define(:report, '0.0.1') do
action(:submit) do
invoke do |report|
begin
diff --git a/lib/puppet/interface/v0.0.1/resource.rb b/lib/puppet/interface/v0.0.1/resource.rb
new file mode 100644
index 000000000..1a6f3b69d
--- /dev/null
+++ b/lib/puppet/interface/v0.0.1/resource.rb
@@ -0,0 +1,4 @@
+require 'puppet/interface/indirector'
+
+Puppet::Interface::Indirector.define(:resource, '0.0.1') do
+end
diff --git a/lib/puppet/interface/v0.0.1/resource_type.rb b/lib/puppet/interface/v0.0.1/resource_type.rb
new file mode 100644
index 000000000..6f5547c4d
--- /dev/null
+++ b/lib/puppet/interface/v0.0.1/resource_type.rb
@@ -0,0 +1,4 @@
+require 'puppet/interface/indirector'
+
+Puppet::Interface::Indirector.define(:resource_type, '0.0.1') do
+end
diff --git a/lib/puppet/interface/v0.0.1/status.rb b/lib/puppet/interface/v0.0.1/status.rb
new file mode 100644
index 000000000..7f4b56a2b
--- /dev/null
+++ b/lib/puppet/interface/v0.0.1/status.rb
@@ -0,0 +1,4 @@
+require 'puppet/interface/indirector'
+
+Puppet::Interface::Indirector.define(:status, '0.0.1') do
+end