Log tripleo services to syslog

Logging to an upstart logfile results in log entries that are not
associated with a timestamp(e.g. os-collect-config). This isn't
consistent with the log files produced in other openstack CI tests
and means we can't index them in logstash (at least consistently
with how the other projects are indexed).

As a result of this we will need to remove the double time stamps that
get produced (by taking them out in each of the services configuration)
and extract the log at the end of CI into per-service files so that we
can selectively index the files we want.

In particular the service that doesn't contain timestamps in all of the
log entries is os-collect-config which is arguably one of the most
important service logs we want indexed. We could simply just divert this
service alone to syslog but doing them all is more consistent with other
distros and how this will presumably work when ubuntu moves to systemd.

Change-Id: Ib8c1fc39d56b2b9c6d8e9b64a868def619aa2f1f
Force heat_local collector on seed first boot

Although is configured on the config.json file to only use heat_local
collector in os-collect-config, this will not be applied until a
first os-apply-config execution, so on the first boot of the seed node
it will try to get the metadata from heat and ec2 and wait to them
to timeout.

Change-Id: I40e6680ef7f69e8f2319caa7e91cef5529cb3741
Add /usr/local/bin to cinders rootwrap.conf

TripleO source installs require /usr/local/bin to be a valid
rootwrap patch. This is to support cinder-rtstool access when
using cinder-lio.

Without this patch all cinder-rtstool commands fail...

Change-Id: Ida0b73c68ea766b0456874bc01ee8b33f79408e0
Depend on use-ephemeral

mariadb-common and mysql both use `register-state-path` which is part of
the use-ephemeral element, but they don't explicitly depend on that
element.

Change-Id: I036ff341ccaf70d4c5c2a6629d0163e614023a62
Fix issues with provider networks and public ips

The current public IP address implementation layers a VLAN access port
underneath the exterior bridge - br-ex/br-ctlplane. This prevents the
use of Neutron provider network tagging because the access port
overrides everything.

Instead, put public IP addresses in an access port on top of br-ex,
allowing provider networks to be tagged by Neutron openflow rules.

As part of this we allow a new non-default route, so that IPMI
connectivity is not lost when the default route is put onto a VLAN.
This is only needed for the seed - the undercloud can receive this via
DHCP.

The change is backwards compatible - though the old method really is
broken so I've marked it as deprecated in the docs and the code.

We will need to change our heat templates and then incubator glue code
to use the new option before the bug can be closed.

Partial-Bug #1325114

Change-Id: I3f77f72ac623792e844dbb4d501b6ab269141f8e
fix: test_os_svc_daemon.py

Since I6487d0726db08912eed3062dfee2552940eadcfb, a ExecStartPre call
is added in the systemd .service file.
This patch adjust test_os_svc_daemon.py.

For the record, the remaining PEP8 error is fixed in
If5068ef77d6643c19de36bfcf4b4bf790f86b538.

Change-Id: I9b1859f9fc5846c7c42606644231105618e1a1a0
Improve percona cluster initialization

* Switch from /etc/init.d/mysql bootstrap-pxc to
  /etc/init.d/mysql restart-bootstrap when bootstrapping
  a new cluster. This ensures that, even when Percona starts
  at boot, that new config is loaded and the cluster is
  bootstrapped.

* If percona fails to bootstrap or restart, ensure we do not
  touch the initialized file, allowing os-refresh-config to
  try again on the next iteration.

Co-Authored-By: Gregory Haynes <greg@greghaynes.net>
Change-Id: Ia720e40329a1d39db2e25fc917fbf5b5ea85dedc
Run dbsync commands with service user

In some cases these commands create log files, running them as the service
user prevents them being owned by root.

Change-Id: I5d5dc4b58f7fca494ac2617f15da9f90b5fa11c9
Use neutron-rootwrap from /usr/bin

This matches whats used in neutron.conf and is compatable with
package installs.

Change-Id: I865204f29c4a6e713962e279b2575258c3442d67
Link to ml2_conf.ini

If installed from package the neutron openvswitch-agent is started with
--config-file /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini

Change-Id: I096cf0b42f9db3ef844f632d187648fe12341990
Merge "Add /usr/local/bin to cinders rootwrap.conf"
Fix diff return code in hosts element

diff exits non-zero when a diff actually exists. This causes 51-hosts to
exit and fails the os-refresh-config run. This issue is manifested when
doing a stack-update and a new host is added to the stack.

Closes-Bug: #1355646

Change-Id: Ia0e3670960b4b136fda9b09c188baf1f23d45d6b
Add security group rules to tripleo-ci/default

So that ssh and icmp work ;)

Change-Id: I76ff74ead0040372a79a0e1632a1ea24e53f410e
Merge "Add security group rules to tripleo-ci/default"
Fix prepare-ci-overcloud floating IP handling.

Change-Id: I0dabae5b2487f0dbe26a03d587e68743f04caf75
PEP8 on the doc and elements files

ensure the Python scripts in the doc and elements directories are PEP8
compliant.

test_os_svc_daemon.py test is fixed in another patch:
  I9b1859f9fc5846c7c42606644231105618e1a1a0.

Change-Id: If5068ef77d6643c19de36bfcf4b4bf790f86b538
Merge "Run dbsync commands with service user"
Merge "Use neutron-rootwrap from /usr/bin"
Merge "fix: test_os_svc_daemon.py"
Remove hardcoded version.

We use semantic versioning, not pbr's pre-version facility. This
line causes local package builds to have the wrong version, and
pbr will in future detect this and error.

Change-Id: I0d24872e1df219b89adddd9d53a6247b91e88ff0