newer pg module
[mirror/dsa-puppet.git] / 3rdparty / modules / postgresql / lib / puppet / type / postgresql_conn_validator.rb
diff --git a/3rdparty/modules/postgresql/lib/puppet/type/postgresql_conn_validator.rb b/3rdparty/modules/postgresql/lib/puppet/type/postgresql_conn_validator.rb
new file mode 100644 (file)
index 0000000..b9dc64e
--- /dev/null
@@ -0,0 +1,88 @@
+Puppet::Type.newtype(:postgresql_conn_validator) do
+
+  @doc = "Verify that a connection can be successfully established between a node
+          and the PostgreSQL server.  Its primary use is as a precondition to
+          prevent configuration changes from being applied if the PostgreSQL
+          server cannot be reached, but it could potentially be used for other
+          purposes such as monitoring."
+
+  ensurable do
+    defaultvalues
+    defaultto :present
+  end
+
+  newparam(:name, :namevar => true) do
+    desc 'An arbitrary name used as the identity of the resource.'
+  end
+
+  newparam(:db_name) do
+    desc "The name of the database you are trying to validate a connection with."
+  end
+
+  newparam(:db_username) do
+    desc "A user that has access to the target PostgreSQL database."
+  end
+
+  newparam(:db_password) do
+    desc "The password required to access the target PostgreSQL database."
+  end
+
+  newparam(:host) do
+    desc 'The DNS name or IP address of the server where PostgreSQL should be running.'
+  end
+
+  newparam(:port) do
+    desc 'The port that the PostgreSQL server should be listening on.'
+
+    validate do |value|
+      Integer(value)
+    end
+    munge do |value|
+      Integer(value)
+    end
+  end
+
+  newparam(:connect_settings) do
+    desc 'Hash of environment variables for connection to a db.'
+  end
+
+  newparam(:sleep) do
+    desc "The length of sleep time between connection tries."
+
+    validate do |value|
+      Integer(value)
+    end
+    munge do |value|
+      Integer(value)
+    end
+
+    defaultto 2
+  end
+
+  newparam(:tries) do
+    desc "The number of tries to validate the connection to the target PostgreSQL database."
+
+    validate do |value|
+      Integer(value)
+    end
+    munge do |value|
+      Integer(value)
+    end
+
+    defaultto 10
+  end
+
+  newparam(:psql_path) do
+    desc "Path to the psql command."
+  end
+
+  newparam(:run_as) do
+    desc "System user that will run the psql command."
+  end
+
+  newparam(:command) do
+    desc "Command to run against target database."
+
+    defaultto "SELECT 1"
+  end
+end