When Memcached uses IPv6 network, python-memcached requires that each
server name is formatted as is described in the following example.
inet6:[<host>]:<port>
This change ensures the format is properly applied according to
the IP protocol version and cache backend used.
Note that the parameter in keystone was not properly formatted even
when IPs are used to set the parameter. This change fixes that and
ensure the parameter is properly configured.
Also, this change fixes the timing to apply any2array. The function
should be applied before we check the first memcache server by [0],
otherwise the logic to detect IPv6 address does not work as intended.
Backport note to victoria:
Resolved conflict caused by [1]. Also the keystone manifest is modified
to make the implementation consistent with the other two manifests.
[1] 34d78c5827be5b2410003dd76e7273159024650e
Conflicts:
manifests/profile/base/heat.pp
manifests/profile/base/nova.pp
Backport note to ussuri:
Resolved conflict caused by the keystone::cache class which was added
to puppet-keystone during Victoria cycle.
Conflicts:
manifests/profile/base/keystone.pp
Backport note to train:
Resolved conflict caused by the following two facters.
- Usage of absolute class names which was required in stable/train
- The keystone_resources_managed parameter which was removed during
Ussuri cycle
Conflicts:
manifests/profile/base/heat.pp
manifests/profile/base/keystone.pp
manifests/profile/base/nova.pp
Closes-Bug: #1964824
Change-Id: I22f8fc7f59b4eeac10c3a274c36daeaa1861fd69
(cherry picked from commit c127941d8f5244847016f7dfc342c5e285f3901b)
(cherry picked from commit 5e8b5d570ddadf00921d9b12eb908940611731c5)
(cherry picked from commit 682f67673e2e02d6c570209ee122b6358eb44b70)
(cherry picked from commit fe51d0a3e20c67c94d0473de99236a1cecf84dab)