]> gitweb.fluxo.info Git - puppet-monkeysphere.git/commitdiff
add identity_certifier type
authorMike (stew) O'Connor <stew@vireo.org>
Sun, 20 Feb 2011 19:03:56 +0000 (14:03 -0500)
committerMike (stew) O'Connor <stew@vireo.org>
Sun, 20 Feb 2011 19:03:56 +0000 (14:03 -0500)
Signed-off-by: Mike (stew) O'Connor <stew@vireo.org>
lib/puppet/provider/identify_certifier/monkeysphere.rb [new file with mode: 0644]
lib/puppet/type/identity_certifier.rb [new file with mode: 0644]

diff --git a/lib/puppet/provider/identify_certifier/monkeysphere.rb b/lib/puppet/provider/identify_certifier/monkeysphere.rb
new file mode 100644 (file)
index 0000000..49ea6e6
--- /dev/null
@@ -0,0 +1,57 @@
+##
+
+
+require 'puppet/provider/package'
+require "open3"
+
+Puppet::Type.type(:identity_certifier).provide(:monkeysphere,
+                                               :parent => Puppet::Provider::Package) do
+
+  commands :monkeysphereauth => "/usr/sbin/monkeysphere-authentication"
+
+  desc "asdf"
+  
+  # retrieve the current set of mysql users
+  def self.instances
+    ids = []
+
+    cmd = "#{command(:monkeysphereauth)} list-id-certifiers"
+    execpipe(cmd) do |process|
+      process.each do |line|
+        m = line.match( "^[0-9A-Z]{32}([0-9A-Z]{8}):" )
+        if m
+          ids << new( { :ensure => :present, :pgpid => m.group(1) } )
+        end
+      end
+    end
+    return ids
+  end
+
+  def create
+    Open3.popen3("monkeysphere-authentication add-id-certifier #{resource[:pgpid]}") do |i, o, e|
+      i.puts( "Y" )
+      o.readlines()
+    end
+  end
+  
+  def destroy
+    Open3.popen3("monkeysphere-authentication remove-id-certifier #{resource[:pgpid]}") do |i, o, e|
+      i.puts( "Y" )
+      o.readlines()
+    end
+  end
+  
+  def exists?
+
+    cil = %x{/usr/sbin/monkeysphere-authentication list-id-certifiers}
+    if $? == 0
+      cil.lines.each do |line|
+        m = line.match( '^[0-9A-Z]*' + resource[:pgpid] + ':' )
+        if m
+          return true
+        end
+      end
+    end
+    return false
+  end
+end
diff --git a/lib/puppet/type/identity_certifier.rb b/lib/puppet/type/identity_certifier.rb
new file mode 100644 (file)
index 0000000..cc8295f
--- /dev/null
@@ -0,0 +1,10 @@
+Puppet::Type.newtype(:identity_certifier) do
+  @doc = "Manage monkeysphere identity-certifiers"
+  
+  ensurable
+  newparam(:pgpid) do
+    desc "The pgp id of the certifier"
+    isnamevar
+  end
+
+end