Reports enabled-root for restored instance

Reasons:
- This condition got missed in one of the earlier patchsets.
- When a root-enabled instance's backup is restored, it does not
  reports to service database that root was enabled for
  restored instance.

Changes:
- report_root method added in conductor.
- Reports, if root is enabled for restored instance, through conductor.

Change-Id: I186398e6651421cecb7169e4eec1d6a8a166ee97
Closes-Bug: #1277745
Ensure routing key is specified in the address for a direct producer

This change is already merged in oslo-incubator.  Note that this is
not a clean merge of the fix, as Trove's copy of rpc from
oslo-incubator is *VERY* far out of date.  However, the bug still
existed in the code.  The fix just looks slightly different.

Original commit message body includes:

    Porting this fix from oslo.messaging.  This fixes the impl_qpid.py
    driver to allow it to work with the latest stable upstream QPID broker
    (version 0.28).  See the Apache Qpid Jira bug
    https://issues.apache.org/jira/browse/QPID-5557

Change-Id: If71f78e50f8a9b3acfd1e9d02c8271f17c4ebee7
Related-Bug: #1300318
Logging audit for trove/configuration module

Adjust log messages to conform to logging standards.

Change-Id: I16e48928d7a710e2ba31524be02d358b4e1dd713
Partial-Bug: #1324206
Fix tracking of SG's provisioned by Heat

Reasons:
 - Trove doesn't track security group that was created as
   a part of stack.
 - Trove should create two records for security group tracking:
   - security group;
   - security group association with an actual instance;

Changes:
 - Adding security groups registration right after stack creation.

Change-Id: I1f55c27ecbd5ad76c869eae7197b8c24720fc1e6
Closes-Bug: #1276228
Add datatore/version name into configurations response

Reasons:
 - Both ConfigurationView and DetailedConfigurationView
   for configuration-groups return only the Datastore
   Version ID and not human the readable Datastore Name / Version

Changes:
 - adding datastore version name to:
   - configuration-create;
   - configuration-list;
   - configuration show responses.
 - tests;

Change-Id: I8fbefd57d40838dafcead0077bfbc6b49c27a8eb
Closes-Bug: #1326584
Enhance trove-manage help

The automated tools for CLI reference document creation have been
enhanced to support *-manage utilities. Since these tools run the CLI
and extract the help from it, they are only as good as the help of the
utility in question.

The help for trove-manage has been enhanced so that the CLI reference
documentation will have useful information in it.

Change-Id: I2560e668cf52bb81b9561abc7747db2155921721
Closes-Bug: #1339840
Restrict backup-list on instance to tenant

Fixed backup-list on an instance, so that we show all available backups for
the instance iff the user making the request is an admin. For a non-admin
user, we return only the backups in his particular tenant.

Change-Id: I2aff6dca053d8261bb70083bf52dac46806faabe
Closes-bug: 1295325
Merge "Fix tracking of SG's provisioned by Heat"
Manual install page needed swift info

The "manual install" developer doc located here:

http://docs.openstack.org/developer/trove/dev/manual_install.html

did not indicate that you need swift for backups.

I added the swift info.

Change-Id: I23e8565aee7e7036e4e6065e2c22f568e65ca7a7
Closes-Bug: #1342273
Merge "Ensure routing key is specified in the address for a direct producer"
Add Backup/Restore support for Couchbase

Backup strategy:
- Save bucket metadata config (as json file) to /tmp/backups
- This is needed on restore to create the destination buckets
- Handles root enabled case by also saving /etc/couchbase/secret_key to /tmp/backups
- Use cbbackup to do the backup
- /tmp/backups will be zipped up, encrypted, and sent to Swift

Restore strategy:
- If /tmp/backups/secret_key exists, set root password
- Iterate through bucket metadata config (json file) and use Couchbase
  REST API to create each bucket
- Wait until bucket finishes creating
- Use cbrestore (which requires destination buckets to be manually
  created first) to do the restore
- cbrestore can only restore one bucket at a time

DocImpact
backup_namespace and restore_namespace were in the default conf group, now they are per datastore

Change-Id: Iaf4370dcc978df68e7d01c6f63795eaf50aac89d
Implements: blueprint backups-single-instance-couchbase
Moved core int-test groups from trove-int to trove

Cleaned up int-test dependencies so that the core int-test groups
are now registered entirely from trove python module. This enables
adding new int-tests for features in trove without creating a cross
repository dependency on trove-integration.

Change-Id: I8ed85d5cb488c402c86b72c4f3cc23389098aa83
Partial-bug: 1343584
Handle exception from pexpect child.close

When pexpect child.close(force=True) is called to close a sudo process, an
exception may be raised on certain operating systems. Terminating a sudo
process as a non-root user succeeds on Ubuntu 12.04 but fails on 14.04.

Handle this exception and try to kill the child process using 'sudo kill'.

See related change https://review.openstack.org/#/c/100353 that addresses
another instance of the same issue.

Change-Id: I4bd9e4b98479e33604545713337440ce81ca64ee
Partial-Bug: 1343344
Merge "Add datatore/version name into configurations response"
Merge "Enhance trove-manage help"
Merge "Add Backup/Restore support for Couchbase"
Refactored datastores to use common chown function

Refactored the mongdb and couchbase managers to use the common change_owner
function defined in trove/guestagent/common/operating_system.py instead
of rolling their own cmds to do the same thing.

Change-Id: Ia7cf3bacf32b50ebf857d5b43ed756e4b09596e9
Closes-bug: 1314803
Make default extension path relative to pybasedir

Change the default extension path in the sample config files as these
take precedence over the files values in common/cfg.py

Change-Id: I3c473fb9cd7e81341a1963a35834ef4c2fd69717
Closes-Bug: 1316195
guestagent contract for packages should be a list

the guestagent contract on the prepare call sends the packages to
install as a long space delimited string and this should be a list. The
other parameters are lists like users and databases. The packages should
be a list as well.

Closes-Bug: #1341966
Change-Id: I05233bfce6d4b81351b797a30d3a55313edf277e
Use auth_token from keystonemiddleware

auth_token middleware in python-keystoneclient is deprecated and has
been moved to the keystonemiddleware repo.

Change-Id: Ib43223c2cfb31198b9438bb02f0d68f2bab7eb7e
Closes-Bug: #1342274