--- /dev/null
+From cfcc613a1eddb90fb5b5426a23e90c78a58be784 Mon Sep 17 00:00:00 2001
+From: Michael Polenchuk <mpolenchuk@mirantis.com>
+Date: Wed, 26 Oct 2016 15:26:11 +0300
+Subject: [PATCH] Shift public ping checker into deployment stage
+
+Avoid public vip failover at the end of post-deployment
+by moving ping_checker resource into deployment stage.
+Also pingd constraint has been changed to be based on score.
+If all the nodes failed to ping the default gw, the resource
+ain't stopped and remains on the last node where it was.
+
+Change-Id: I666fbbbe98d000c66f97cf4751f304a2da9aad67
+---
+ .../puppet/cluster/manifests/virtual_ip_ping.pp | 10 +++++-----
+ .../puppet/osnailyfacter/modular/astute/tasks.yaml | 15 ---------------
+ .../osnailyfacter/modular/virtual_ips/tasks.yaml | 14 ++++++++++++++
+ 3 files changed, 19 insertions(+), 20 deletions(-)
+
+diff --git a/deployment/puppet/cluster/manifests/virtual_ip_ping.pp b/deployment/puppet/cluster/manifests/virtual_ip_ping.pp
+index 3e49c09..7642422 100644
+--- a/deployment/puppet/cluster/manifests/virtual_ip_ping.pp
++++ b/deployment/puppet/cluster/manifests/virtual_ip_ping.pp
+@@ -11,7 +11,7 @@ define cluster::virtual_ip_ping (
+ $parameters = {
+ 'host_list' => $host_list,
+ 'multiplier' => '1000',
+- 'dampen' => '30s',
++ 'dampen' => '45s',
+ 'timeout' => '3s',
+ }
+ $operations = {
+@@ -41,16 +41,16 @@ define cluster::virtual_ip_ping (
+ primitive => $vip_name,
+ rules => [
+ {
+- 'score' => '-inf',
++ 'score' => '50',
+ 'expressions' => [
+ {
+ 'attribute' => "pingd",
+- 'operation' => 'not_defined',
++ 'operation' => 'defined',
+ },
+ {
+ 'attribute' => "pingd",
+- 'operation'=>'lte',
+- 'value' => '0',
++ 'operation'=>'gte',
++ 'value' => '1',
+ },
+ ],
+ },
+diff --git a/deployment/puppet/osnailyfacter/modular/astute/tasks.yaml b/deployment/puppet/osnailyfacter/modular/astute/tasks.yaml
+index 5e3e6ee..83242c4 100644
+--- a/deployment/puppet/osnailyfacter/modular/astute/tasks.yaml
++++ b/deployment/puppet/osnailyfacter/modular/astute/tasks.yaml
+@@ -10,7 +10,6 @@
+ cross-depends:
+ - name: dns-client
+ - name: ntp-server
+- - name: public_vip_ping
+ parameters:
+ cmd: ruby /etc/puppet/modules/osnailyfacter/modular/astute/enable_quorum.rb
+ timeout: 180
+@@ -110,20 +109,6 @@
+ timeout: 180
+ cwd: /
+
+-- id: public_vip_ping
+- type: puppet
+- version: 2.1.0
+- role: [primary-controller, controller]
+- requires: [post_deployment_start]
+- required_for: [post_deployment_end]
+- condition:
+- yaql_exp: "changed($.network_scheme) or changed($.get('run_ping_checker'))"
+- parameters:
+- puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/virtual_ips/public_vip_ping.pp
+- puppet_modules: /etc/puppet/modules
+- timeout: 3600
+- cwd: /
+-
+ - id: configure_default_route
+ type: puppet
+ version: 2.1.0
+diff --git a/deployment/puppet/osnailyfacter/modular/virtual_ips/tasks.yaml b/deployment/puppet/osnailyfacter/modular/virtual_ips/tasks.yaml
+index 00d4306..b028c6e 100644
+--- a/deployment/puppet/osnailyfacter/modular/virtual_ips/tasks.yaml
++++ b/deployment/puppet/osnailyfacter/modular/virtual_ips/tasks.yaml
+@@ -34,3 +34,17 @@
+ cmd: ruby /etc/puppet/modules/osnailyfacter/modular/virtual_ips/conntrackd_pre.rb
+ test_post:
+ cmd: ruby /etc/puppet/modules/osnailyfacter/modular/virtual_ips/conntrackd_post.rb
++
++- id: public_vip_ping
++ type: puppet
++ version: 2.1.0
++ groups: [primary-controller, controller]
++ requires: [virtual_ips]
++ required_for: [primary-cluster-haproxy, cluster-haproxy]
++ condition:
++ yaql_exp: "changed($.network_scheme) or changed($.get('run_ping_checker'))"
++ parameters:
++ puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/virtual_ips/public_vip_ping.pp
++ puppet_modules: /etc/puppet/modules
++ timeout: 3600
++ cwd: /
+--
+1.7.9.5
+