Removes XML api from trove

The XML api is no longer a requirement, as dictated by the TC.

implements blueprint destroy-xml-api

Change-Id: Ib4669155c19562ae1dda75cd30ad1a8f92b6be6a
Fixes insecure update of /etc/fstab file

Reasons:
- While updating /etc/fstab in write_to_fstab in
  trove/guestagent/volume.py, the temporary file-name was easy to
  guess and had a permanent name making it prone to unwanted access.
- The temporary file-permission was set to 666, making it insecure.

Changes:
- Uses NamedTemporaryFile for temporary file creation.
- Used file reading instead of copying the file.
- These changes eliminate the chances of guessing the file-name,
  as well as updating the same.

Change-Id: I07c3980e40fe218d35605a851a17535cd3972c11
Closes-Bug: #1267991
Make hostnames in designate driver all lower case

Currently hostnames are uppercase, this enforces lower case which
is the norm when specifying hostnames.

Closes-bug: 1291189
Change-Id: Ief92bc1aeffddd5dee99cd19d703c8a75bc50845
Hide Datastores In List With No Active Versions

in a datastore-list operation, for non-admin, filters out
datastores that either have no versions or have no active
versions for non-admin users. admins continue to see all
datastores, active or inactive, in a datastore-list
operation.

Change-Id: Iccaf9ae59469fd0f4cb346ee258d3132eed83660
Co-Authored-By: Andrey Shestakov <ashestakov@mirantis.com>
Closes-Bug: #1290617
Improve Datastore Not Implemented exceptions

Added exception for not implemented exceptions
that indicates the operation name.
Added missing un-implemented methods to redis.
Change handling of remote errors from guest agent
api to only pass along the root exception message
rather than the full traceback

Change-Id: I0d4fdc5340bfb40370595636cc57cc5c87889507
Closes-Bug: #1276860
Fix Timestamp diff in Instance and Notification

    Code is updating timestamp to clear out task status after it
    has already completed the task and updated the instance db
    info.  Made this an single transaction so that the timestamp
    in the db matches the actual action and the notification

Closes-Bug: 1236620

Change-Id: Iaa59f6e6d0b958e79b0491bfa2a838f5896d9705
Merge "Make hostnames in designate driver all lower case"
Merge "Improve Datastore Not Implemented exceptions"
Merge "Removes XML api from trove"
Merge "Fix Timestamp diff in Instance and Notification"
Merge "Hide Datastores In List With No Active Versions"
Remove IDENTIFIED BY clause for MySQL REVOKE

IDENTIFIED BY is not documented for REVOKE in MySQL 5.5 and 5.6 and
furthermore produces a syntax error on MySQL 5.6.

Change-Id: Ib7bf1ba0ce049c1ed8a90292064a1e05724170e0
Closes-Bug: #1292690
Update sqlalchemy migrate scripts for postgres

pgsql <= 8.3 was lax about char->other casting but this was tightened
up in 8.4+. We must now specify the USING clause for such a cast to
succeed. The SQL queries generated by sqlalchemy for pgsql don't
support this, so an override is needed to support pgsql for the trove
migrate scripts.

Closes-bug: 1293465
Change-Id: I217fc861036911e61bafe706e338bb3b8f49e708
Added Backup/Restore validations

Added checks for backup-create API call to ensure
datastore supports backup strategy
Also for trove-create API call (when restoring from backup)
added checks to ensure that datastore version of backup
being restored matches with datastore version of
instance being created

Change-Id: I9f9cf76ce3d2533612515e6382a184e955e09a32
Closes-Bug: #1285876
Merge "Added Backup/Restore validations"
Merge "Fixes insecure update of /etc/fstab file"
Setup trove for translation

The upstream-translation-job exists already but fails since trove
is not setup properly for translation.

Add the usual babel.cfg file, update setup.cfg for translation and
create initial trove.pot file.

Change-Id: I65ca2c974fc54e005ba8887dceb66ac08432c6d1
Merge "Remove IDENTIFIED BY clause for MySQL REVOKE"
Merge "Update sqlalchemy migrate scripts for postgres"
Merge "Setup trove for translation"