|
6 | 6 | # Standard
|
7 | 7 | Peadm::SingleTargetSpec $targets,
|
8 | 8 | Optional[Hash] $peadm_config = undef,
|
9 |
| - Optional[Peadm::SingleTargetSpec] $replica_host = undef, |
| 9 | + Optional[Peadm::SingleTargetSpec] $server_a_host = undef, |
| 10 | + Optional[Peadm::SingleTargetSpec] $server_b_host = undef, |
10 | 11 |
|
11 | 12 | # Extra Large
|
12 |
| - Optional[Peadm::SingleTargetSpec] $primary_postgresql_host = undef, |
13 |
| - Optional[Peadm::SingleTargetSpec] $replica_postgresql_host = undef, |
| 13 | + Optional[Peadm::SingleTargetSpec] $postgresql_a_host = undef, |
| 14 | + Optional[Peadm::SingleTargetSpec] $postgresql_b_host = undef, |
14 | 15 |
|
15 | 16 | # Common Configuration
|
16 | 17 | Optional[String] $compiler_pool_address = undef,
|
17 | 18 | Optional[String] $internal_compiler_a_pool_address = undef,
|
18 | 19 | Optional[String] $internal_compiler_b_pool_address = undef,
|
19 | 20 | ) {
|
20 | 21 |
|
21 |
| - # Convert inputs into targets. |
22 |
| - $primary_target = peadm::get_targets($targets, 1) |
23 |
| - $replica_target = peadm::get_targets($replica_host, 1) |
24 |
| - $primary_postgresql_target = peadm::get_targets($primary_postgresql_host, 1) |
25 |
| - $replica_postgresql_target = peadm::get_targets($replica_postgresql_host, 1) |
| 22 | + $primary_target = peadm::get_targets($targets, 1) |
26 | 23 |
|
27 | 24 | # Makes this more easily usable outside a plan
|
28 | 25 | if $peadm_config {
|
29 |
| - $current = $peadm_config['params'] |
| 26 | + $current = $peadm_config |
30 | 27 | } else {
|
31 |
| - $current = run_task('peadm::get_peadm_config', $primary_target).first.value['params'] |
| 28 | + $current = run_task('peadm::get_peadm_config', $primary_target).first.value |
32 | 29 | }
|
33 | 30 |
|
| 31 | + out::verbose('Current config is...') |
| 32 | + out::verbose($current) |
| 33 | + |
34 | 34 | # When a replica in configured, the B side of the deployment requires that
|
35 | 35 | # replica_postgresql_host to be set, if it is not then PuppetDB will be left
|
36 | 36 | # non-functional. Doing this will allow both sides of the deployment to start
|
37 | 37 | # up and be functional until the second PostgreSQL node can be provisioned and configured.
|
38 |
| - if (! $replica_postgresql_target.peadm::certname()) and $current['replica_host'] { |
39 |
| - out::message('Overriding replica_postgresql_host while in transitive state') |
40 |
| - $overridden_replica_postgresql_target = $primary_postgresql_target |
41 |
| - } else { |
42 |
| - $overridden_replica_postgresql_target = $replica_postgresql_target |
43 |
| - } |
| 38 | +# if (! $replica_postgresql_target.peadm::certname()) and $current['replica_host'] { |
| 39 | +# out::message('Overriding replica_postgresql_host while in transitive state') |
| 40 | +# $overridden_replica_postgresql_target = $primary_postgresql_target |
| 41 | +# } else { |
| 42 | +# $overridden_replica_postgresql_target = $replica_postgresql_target |
| 43 | +# } |
44 | 44 |
|
45 |
| - $filtered = { |
46 |
| - 'primary_host' => $primary_target.peadm::certname(), |
47 |
| - 'replica_host' => $replica_target.peadm::certname(), |
48 |
| - 'primary_postgresql_host' => $primary_postgresql_target.peadm::certname(), |
49 |
| - 'replica_postgresql_host' => $overridden_replica_postgresql_target.peadm::certname(), |
50 |
| - 'compiler_pool_address' => $compiler_pool_address, |
| 45 | + $filtered_params = { |
| 46 | + 'compiler_pool_address' => $compiler_pool_address, |
51 | 47 | 'internal_compiler_a_pool_address' => $internal_compiler_a_pool_address,
|
52 | 48 | 'internal_compiler_b_pool_address' => $internal_compiler_b_pool_address
|
53 | 49 | }.filter |$parameter| { $parameter[1] }
|
54 | 50 |
|
55 |
| - $new = merge($current, $filtered) |
| 51 | + $filtered_server = { |
| 52 | + 'A' => $server_a_host, |
| 53 | + 'B' => $server_b_host |
| 54 | + }.filter |$parameter| { $parameter[1] } |
| 55 | + |
| 56 | + $filtered_psql = { |
| 57 | + 'A' => $postgresql_a_host, |
| 58 | + 'B' => $postgresql_b_host |
| 59 | + }.filter |$parameter| { $parameter[1] } |
| 60 | + |
| 61 | + $filtered = { |
| 62 | + 'params' => $filtered_params, |
| 63 | + 'role-letter' => { |
| 64 | + 'server' => $filtered_server, |
| 65 | + 'postgresql' => $filtered_psql |
| 66 | + } |
| 67 | + } |
| 68 | + |
| 69 | + out::verbose('New values are...') |
| 70 | + out::verbose($filtered) |
| 71 | + |
| 72 | + $new = deep_merge($current, $filtered) |
56 | 73 |
|
57 |
| - out::message('Classification to be updated using the following hash...') |
58 |
| - out::message($new) |
| 74 | + out::verbose('Updating classification to...') |
| 75 | + out::verbose($new) |
59 | 76 |
|
60 | 77 | apply($primary_target) {
|
61 | 78 | class { 'peadm::setup::node_manager_yaml':
|
62 | 79 | primary_host => $primary_target.peadm::certname(),
|
63 | 80 | }
|
64 | 81 |
|
65 | 82 | class { 'peadm::setup::node_manager':
|
66 |
| - primary_host => $new['primary_host'], |
67 |
| - server_a_host => $new['primary_host'], |
68 |
| - server_b_host => $new['replica_host'], |
69 |
| - postgresql_a_host => $new['primary_postgresql_host'], |
70 |
| - postgresql_b_host => $new['replica_postgresql_host'], |
71 |
| - compiler_pool_address => $new['compiler_pool_address'], |
72 |
| - internal_compiler_a_pool_address => $new['internal_compiler_a_pool_address'], |
73 |
| - internal_compiler_b_pool_address => $new['internal_compiler_b_pool_address'], |
| 83 | + primary_host => $primary_target.peadm::certname(), |
| 84 | + server_a_host => $new['role-letter']['server']['A'], |
| 85 | + server_b_host => $new['role-letter']['server']['B'], |
| 86 | + postgresql_a_host => $new['role-letter']['postgresql']['A'], |
| 87 | + postgresql_b_host => $new['role-letter']['postgresql']['B'], |
| 88 | + compiler_pool_address => $new['params']['compiler_pool_address'], |
| 89 | + internal_compiler_a_pool_address => $new['params']['internal_compiler_a_pool_address'], |
| 90 | + internal_compiler_b_pool_address => $new['params']['internal_compiler_b_pool_address'], |
74 | 91 | require => Class['peadm::setup::node_manager_yaml'],
|
75 | 92 | }
|
76 | 93 | }
|
|
0 commit comments