Load trove API extensions using stevedore

The current trove impl loads trove API extensions by searching on a
single file path which is exposed as a conf property. This results in a
less than optimal approach from a consumer extension POV. This change
replaces the single extension path approach with dyanmic loading  using
stevedore. Consumers can now bind into the API extensions using the
'trove.api.extensions' entry point; a standard means to define extension
points. Moreover this change refactors to the
trove.openstack.common.extensions logic into trove.common.extensions.

In addition this change includes base unit tests to ensure the
existing trove proper extension points are loaded and that some basic
checks are in place W/R/T validating trove extension points.

Change-Id: Id3e712b536aef3bc9c9d1603367cdc0d4816b970
Implements: blueprint dynamic-extension-loading
Unit Tests for Mysql replication functionality

Implemented unit tests for the API methods in mysql manager.

Partially implements: blueprint replication-v1

Change-Id: Ifa64630457ddd771d98985823d92b4bab3412890
Adjusted audit logging for trove.instance module

The trove.instance module is logging some verbose debug data at the
info level, and some info messages at the debug level. Some log
entries are also lacking context because of missing identifiers such
as InstanceID and TenantID.

Changed logging level of various messages to conform to standard,
added references to various ID's as needed.

Change-Id: I3bb569529befa2b2497d2d5a094e3306e569422c
Partial-Bug: #1324206
show stdout/err from failed command execution

When executing a command the mysql service status command it is useful
to see the actual output of the failing command in debug mode, not just
the exit status.

Add a log_output_on_error parameter to execute_with_timeout() so this
can be reused.

Change-Id: Iff931d0489754303e099e8567bca3237fd476f8f
Closes-Bug: #1340124
Move usage_timeout out of guest options

In an effort to further separate the guest and task manager,
the usage_timeout has been moved into the common cfg. The
datastores have no need for this. the default is now set as
the largest timeout, cassandra.

DocImpact: This change modifies a configuration parameter.
partially implements: blueprint refactoring-datastore-options-in-cfg
Co-Author: Michael Basnight <mbasnight@gmail.com>

Change-Id: I3b4b2a9bffb40df4531a78c29d1e155e59436948
Added the bind_host configuration option when launching the API

Closes-bug: 1356411
Change-Id: Iad69754d60fc88d503ac7f87621ae7b5d561f9c2
handle repeating mysqld options containing equals

Let load_mysqld_options handle repeating options such as:
"--plugin-load=blackhole=ha_blackhole.so
--plugin-load=federated=ha_federated.so" without crashing by storing all
the mysql_options we get in a dictionary with lists as values.

Change-Id: I634532e13bab80d476e4a1e8558b23da33656f60
Closes-Bug: #1348652
Snapshot component for replication

Implements the snapshot capability for replication by
taking a backup of the master site, then using it
to populate the slave, then turning on replication.

Co-Authored-By: Greg Lucas <glucas@tesora.com>
Co-Authored-By: Nikhil Manchanda <SlickNik@gmail.com>

Partially implements: blueprint replication-v1
Change-Id: Ibd3214b2ffafb250f0cc794c6ee0ff6b0d2ed7da
Look up trove instance by ID instead of name

update_statuses_on_time_out looks up the instance by name instead of ID.
This potentially means that we update the wrong instance to ERROR, since
instance name is not unique. This patchset fixes this issue by looking
up the trove instance by ID instead of name.

Change-Id: If9c7a518f50098390567d8e4df0f948b7d3be2c6
Closes-bug: 1356647
Add replication slave info to instance show

Update the 'show' response for an instance:

 - If the instance is a replication slave, include the slave_of id.
 - If the instance is a replication master, include the list of slave
   instance ids.

Update the 'list' response to include the slave_of id.
Add CheckInstance tests for slave/slave_of info.

(Unrelated: remove a #TODO comment that has already been addressed.)

Partially Implements: blueprint replication-v1
Closes-Bug: #1340359
Change-Id: If8a154083d0095606fb3ee115cc9b66ab788cbb4
Removing the XML info from the docs

We don't support XML anymore, so these need to go.

Closes-Bug: 1361381
Change-Id: I84a84288f0d76408584d2dc4b18a5d7ca370871e
Merge "Move usage_timeout out of guest options"
Merge "Removing the XML info from the docs"
Merge "Snapshot component for replication"
Merge "Unit Tests for Mysql replication functionality"
Merge "Add replication slave info to instance show"
Imported Translations from Transifex

Change-Id: I172bcb2c3e9ef58e874e01a5e16868cdb73bb761
Merge "Load trove API extensions using stevedore"
Merge "handle repeating mysqld options containing equals"
Cleaned up sample trove-guestagent.conf

Cleaned out the trove-guestagent.conf to only contain values that make
sense for the guest agent. There were also values that were different
between the sample conf, and the defaults in cfg.py, which were fixed
to be consistent, so as to have a single set of sane defaults.

Closes bug: 1336618

Change-Id: Ib3823856c288971665fa29489c4ffc5b899ccbaf