diff --git a/REFERENCE.md b/REFERENCE.md
index 48d95cde..45b2d760 100644
--- a/REFERENCE.md
+++ b/REFERENCE.md
@@ -32,7 +32,9 @@
* [`peadm::generate_pe_conf`](#peadm--generate_pe_conf): Generate a pe.conf file in JSON format
* [`peadm::get_pe_conf`](#peadm--get_pe_conf)
* [`peadm::get_targets`](#peadm--get_targets): Accept undef or a SingleTargetSpec, and return an Array[Target, 1, 0]. This differs from get_target() in that: - It returns an Array[Target
+* [`peadm::log_plan_parameters`](#peadm--log_plan_parameters)
* [`peadm::migration_opts_default`](#peadm--migration_opts_default)
+* [`peadm::module_version`](#peadm--module_version)
* [`peadm::node_manager_yaml_location`](#peadm--node_manager_yaml_location)
* [`peadm::oid`](#peadm--oid)
* [`peadm::pe_db_names`](#peadm--pe_db_names)
@@ -786,6 +788,24 @@ Data type: `Optional[Integer[1,1]]`
+### `peadm::log_plan_parameters`
+
+Type: Puppet Language
+
+The peadm::log_plan_parameters function.
+
+#### `peadm::log_plan_parameters(Hash $params)`
+
+The peadm::log_plan_parameters function.
+
+Returns: `Any`
+
+##### `params`
+
+Data type: `Hash`
+
+
+
### `peadm::migration_opts_default`
Type: Puppet Language
@@ -798,6 +818,18 @@ The peadm::migration_opts_default function.
Returns: `Any`
+### `peadm::module_version`
+
+Type: Ruby 4.x API
+
+The peadm::module_version function.
+
+#### `peadm::module_version()`
+
+The peadm::module_version function.
+
+Returns: `Any`
+
### `peadm::node_manager_yaml_location`
Type: Ruby 4.x API
diff --git a/functions/log_plan_parameters.pp b/functions/log_plan_parameters.pp
new file mode 100644
index 00000000..c2a5ea7c
--- /dev/null
+++ b/functions/log_plan_parameters.pp
@@ -0,0 +1,6 @@
+function peadm::log_plan_parameters(Hash $params) {
+ out::message("PEADM Module version: ${peadm::module_version()}")
+ $params.each |$key, $value| {
+ out::message("Parameter '${key}': [${value}]")
+ }
+}
diff --git a/lib/puppet/functions/peadm/module_version.rb b/lib/puppet/functions/peadm/module_version.rb
new file mode 100644
index 00000000..bc38ce81
--- /dev/null
+++ b/lib/puppet/functions/peadm/module_version.rb
@@ -0,0 +1,9 @@
+Puppet::Functions.create_function(:'peadm::module_version', Puppet::Functions::InternalFunction) do
+ dispatch :module_version do
+ scope_param
+ end
+
+ def module_version(scope)
+ scope.compiler.environment.module('peadm').version
+ end
+end
diff --git a/plans/install.pp b/plans/install.pp
index eccc63e5..e9524f23 100644
--- a/plans/install.pp
+++ b/plans/install.pp
@@ -75,6 +75,17 @@
Boolean $permit_unsafe_versions = false,
String $token_lifetime = '1y',
) {
+ # Log parameters for debugging
+ peadm::log_plan_parameters({
+ 'primary_host' => $primary_host,
+ 'replica_host' => $replica_host,
+ 'compiler_hosts' => $compiler_hosts,
+ 'legacy_compilers' => $legacy_compilers,
+ 'primary_postgresql_host' => $primary_postgresql_host,
+ 'replica_postgresql_host' => $replica_postgresql_host,
+ 'version' => $version,
+ })
+
peadm::assert_supported_bolt_version()
peadm::assert_supported_pe_version($version, $permit_unsafe_versions)
diff --git a/plans/migrate.pp b/plans/migrate.pp
index 7aa74cfc..b6d185ab 100644
--- a/plans/migrate.pp
+++ b/plans/migrate.pp
@@ -22,6 +22,16 @@
Optional[Peadm::SingleTargetSpec] $primary_postgresql_host = undef,
Optional[Peadm::SingleTargetSpec] $replica_postgresql_host = undef,
) {
+ # Log parameters for debugging
+ peadm::log_plan_parameters({
+ 'old_primary_host' => $old_primary_host,
+ 'new_primary_host' => $new_primary_host,
+ 'replica_host' => $replica_host,
+ 'primary_postgresql_host' => $primary_postgresql_host,
+ 'replica_postgresql_host' => $replica_postgresql_host,
+ 'upgrade_version' => $upgrade_version,
+ })
+
# pre-migration checks
out::message('This plan is a work in progress and it is not recommended to be used until it is fully implemented and supported')
peadm::assert_supported_bolt_version()
diff --git a/plans/replace_failed_postgresql.pp b/plans/replace_failed_postgresql.pp
index d69f2345..413aa138 100644
--- a/plans/replace_failed_postgresql.pp
+++ b/plans/replace_failed_postgresql.pp
@@ -12,6 +12,15 @@
Peadm::SingleTargetSpec $failed_postgresql_host,
Peadm::SingleTargetSpec $replacement_postgresql_host,
) {
+ # Log parameters for debugging
+ peadm::log_plan_parameters({
+ 'primary_host' => $primary_host,
+ 'replica_host' => $replica_host,
+ 'working_postgresql_host' => $working_postgresql_host,
+ 'failed_postgresql_host' => $failed_postgresql_host,
+ 'replacement_postgresql_host' => $replacement_postgresql_host,
+ })
+
$all_hosts = peadm::flatten_compact([
$primary_host,
$replica_host,
diff --git a/plans/upgrade.pp b/plans/upgrade.pp
index 5fe36cc4..00236eb4 100644
--- a/plans/upgrade.pp
+++ b/plans/upgrade.pp
@@ -62,6 +62,16 @@
Optional[Peadm::UpgradeSteps] $begin_at_step = undef,
) {
+ # Log parameters for debugging
+ peadm::log_plan_parameters({
+ 'primary_host' => $primary_host,
+ 'replica_host' => $replica_host,
+ 'compiler_hosts' => $compiler_hosts,
+ 'primary_postgresql_host' => $primary_postgresql_host,
+ 'replica_postgresql_host' => $replica_postgresql_host,
+ 'version' => $version,
+ })
+
out::message('# Validating inputs')
# Ensure input valid for a supported architecture
diff --git a/spec/plans/install_spec.rb b/spec/plans/install_spec.rb
index 900472c7..b53ef8dd 100644
--- a/spec/plans/install_spec.rb
+++ b/spec/plans/install_spec.rb
@@ -5,6 +5,7 @@
describe 'basic functionality' do
it 'runs successfully with the minimum required parameters' do
+ allow_out_message
expect_plan('peadm::subplans::install')
expect_plan('peadm::subplans::configure')
expect(run_plan('peadm::install', 'primary_host' => 'primary', 'console_password' => 'puppetLabs123!', 'version' => '2021.7.9')).to be_ok