From c93489cfbe29d88564add64f81832aca6f4fdaf3 Mon Sep 17 00:00:00 2001
From: Michele Baldessari <michele@acksyn.org>
Date: Tue, 17 Jul 2018 20:42:05 +0200
Subject: [PATCH] Enable logging to stdout/stderr in memcached

Even though https://bugs.launchpad.net/tripleo/+bug/1776889 got fixed,
memcached is still configured to log to a file due to the way
puppet-memcached works:
- It would omit logging to a file when the logfile parameter (which has
  a default value) is set to undef
- In puppet/hiera undeffing a parameter that has a default value does
  not work: https://tickets.puppetlabs.com/browse/PUP-5295

In fact even after the fixes from https://bugs.launchpad.net/tripleo/+bug/1776889 get included we still see the following:
[root@rhosp-ctr01 ~]# ps -ef | grep memcached
42457 44366 44342 0 10:06 ? 00:00:00 /bin/bash -c source /etc/sysconfig/memcached; /usr/bin/memcached -p ${PORT} -u ${USER} -m ${CACHESIZE} -c ${MAXCONN} $OPTIONS
42457 44385 44366 0 10:06 ? 00:00:08 /usr/bin/memcached -p 11211 -u memcached -m 16005 -c 8192 -v -l 192.168.18.11 -U 0 -t 8 >> /var/log/memcached.log 2>&1

This change depends on the following memcached PR:
https://github.com/saz/puppet-memcached/pull/99/files to work correctly.

With this patch memcached logs to stdout/err correctly:
[root@overcloud-controller-0 etc]# ps auxwfw |grep memcache
42457      37207  0.0  0.0  11680  1396 ?        Ss   19:23   0:00      |   \_ /bin/bash -c source /etc/sysconfig/memcached; /usr/bin/memcached -p ${PORT} -u ${USER} -m ${CACHESIZE} -c ${MAXCONN} $OPTIONS
42457      37224  0.0  0.0 293160  3724 ?        Sl   19:23   0:00      |       \_ /usr/bin/memcached -p 11211 -u memcached -m 5877 -c 8192 -v -l 172.16.2.14 -U 0 -X -t 2

Change-Id: I8cec029bd1f64ec1daa76a89e949e7d245580918
Closes-Bug: #1782223
---
 docker/services/memcached.yaml | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/docker/services/memcached.yaml b/docker/services/memcached.yaml
index 4638a2f645..29bb3c1ec9 100644
--- a/docker/services/memcached.yaml
+++ b/docker/services/memcached.yaml
@@ -57,7 +57,10 @@ outputs:
     description: Role data for the Memcached API role.
     value:
       service_name: {get_attr: [MemcachedBase, role_data, service_name]}
-      config_settings: {get_attr: [MemcachedBase, role_data, config_settings]}
+      config_settings:
+        map_merge:
+          - {get_attr: [MemcachedBase, role_data, config_settings]}
+          - memcached::logstdout: true
       logging_source: {get_attr: [MemcachedBase, role_data, logging_source]}
       logging_groups: {get_attr: [MemcachedBase, role_data, logging_groups]}
       service_config_settings: {get_attr: [MemcachedBase, role_data, service_config_settings]}