diff -Nru openstack-trove-6.0.0~b2/apidocs/pom.xml openstack-trove-6.0.0~b3~dev119/apidocs/pom.xml --- openstack-trove-6.0.0~b2/apidocs/pom.xml 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/pom.xml 1970-01-01 00:00:00.000000000 +0000 @@ -1,169 +0,0 @@ - - - 4.0.0 - com.rackspace.cloud.dbaas - dbaas-docs - 1.0.0-SNAPSHOT - Database Public API Spec - jar - - - net.sourceforge.saxon - saxon - 9.1.0.8 - - - com.rackspace.cloud.api - wadl-tools - 1.0.9 - - - - - - com.rackspace.cloud.api - clouddocs-maven-plugin - - - 2.0.2 - - - cdb-devguide - - generate-webhelp - - generate-sources - - src - false - 2 - - - 0 - UA-23102455-4 - cdb-devguide.xml - http://docs.openstack.org/api/openstack-database/content - mike.asthalter@rackspace.com - - - - - 1 - mike.asthalter@rackspace.com - openstack - - - - - - org.apache.maven.plugins - maven-dependency-plugin - - - unpack-shared-resources - - unpack-dependencies - - generate-sources - - ${project.build.directory}/generated-resources - com.rackspace.cloud.api - wadl-tools - true - **/xsl/*.xsl - - - - - - - org.apache.maven.plugins - maven-antrun-plugin - 1.5 - - - ant - generate-sources - - - - - - - - - - - - - - - - - - - - - - - - - - - run - - - - - - org.apache.maven.plugins - maven-assembly-plugin - 2.3 - - - includewars.xml - - - - - assembly - - single - - package - - - - - - - - Rackspace Research Repositories - - true - - - - rackspace-research - Rackspace Research Repository - https://maven.research.rackspacecloud.com/content/groups/public/ - - - - - rackspace-research - Rackspace Research Repository - https://maven.research.rackspacecloud.com/content/groups/public/ - - - - - diff -Nru openstack-trove-6.0.0~b2/apidocs/replacements.config openstack-trove-6.0.0~b3~dev119/apidocs/replacements.config --- openstack-trove-6.0.0~b2/apidocs/replacements.config 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/replacements.config 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -XPATH=//text() -accountId->tenantId -accountID->tenantID -account ID->tenant ID -ord.databases.api.rackspacecloud.com->openstack.example.com -.*Repose.*\n-> \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/apidocs/src/cdb-devguide.xml openstack-trove-6.0.0~b3~dev119/apidocs/src/cdb-devguide.xml --- openstack-trove-6.0.0~b2/apidocs/src/cdb-devguide.xml 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/cdb-devguide.xml 1970-01-01 00:00:00.000000000 +0000 @@ -1,924 +0,0 @@ - - - - - - - - GET'> - PUT'> - POST'> - DELETE'> - - - - - - - - - - - - '> - - - - - - '> -]> - - - - OpenStack Cloud Databases Developer Guide - OpenStack Cloud Databases Developer - Guide - - - - - - - - OpenStack LLC - - - - 2010 - 2011 - 2012 - 2013 - OpenStack LLC - - API v1.0 - OpenStack Cloud Databases - - - - Copyright details are filled in by the - template. - - - - This document is intended for software developers - interested in developing applications using the - OpenStack Cloud Databases Application Programming - Interface (API). - - - - - 2013-05-02 - - - - This document is for the initial - OpenStack review. - - - - - - - - this is a placeholder for the front cover - - - this is a placeholder for the back cover - - - API Developer Guide - cdb - 20 - - - - Overview - OpenStack Cloud Databases is an OpenStack-based MySQL - relational database service that allows customers to - easily provision database instances of varying virtual - resource sizes without the need to maintain and/or update - MySQL. Interactions with Cloud Databases occur - programmatically via the Cloud Databases API as described - in this developer guide. - - OpenStack recommends that Cloud Databases users back - up their data using mysqldump until backups are supported - in Cloud Databases. - - The following figure shows an overview of Cloud - Databases Infrastructure: - - - - - - - - Reviewer: need to edit graphic - above so it says "The Cloud" rather than "The Rackspace - Cloud". - -
- Intended Audience - This Guide is intended to assist software developers - who want to develop applications using the Cloud - Databases API. It assumes the reader has a general - understanding of databases and is familiar - with: - - - ReSTful web services - - - HTTP/1.1 conventions - - - JSON data serialization - format - - -
- -
- Document Change History - This version of the Developer Guide replaces and - obsoletes all previous versions. The most recent - changes are described in the table below: - -
-
- Additional Resources - You can download the most current versions of this - and other API-related documents from http://docs.openstack.org/. - We welcome feedback, comments, and bug reports at - https://bugs.launchpad.net/reddwarf. - This API uses standard HTTP 1.1 response codes as - documented at: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html. -
- -
- - - Concepts - - To use the Cloud Databases API effectively, you should - understand several key concepts: -
- Database Instance - A database instance is an isolated MySQL instance in - a single tenant environment on a shared physical host - machine. - Writer: once we support - MSSQL, we need to describe here what is used for MSSQL - in place of database instance. -
-
- Database - A MySQL database within a database instance. - Writer: once we support - MSSQL, we need to modify the wording here, such as: - The actual database, whether it is in MySQL or - MSSQL. -
-
- Flavor - A flavor is an available hardware configuration for - a database instance. Each flavor has a unique - combination of memory capacity and priority for CPU - time. -
-
- Volume - A volume is user-specified storage that contains the - MySQL data directory. Volumes are automatically - provisioned on shared Internet Small Computer System - Interface (iSCSI) storage area networks (SAN) that - provide for increased performance, scalability, - availability and manageability. Applications with high - I/O demands are performance optimized and data is - protected through both local and network RAID-10. - Additionally, network RAID provides synchronous - replication of volumes with automatic failover and - load balancing across available storage - clusters. -
-
- - General API Information - The Cloud Databases API is implemented using a ReSTful - web service interface. Like other cloud products, the - Database Service shares a common token-based - authentication system that allows seamless access between - products and services. - - All requests to authenticate against and operate the - service are performed using SSL over HTTP (HTTPS) on - TCP port 443. - -
- Authentication - Each HTTP request against the Cloud Database service - requires the inclusion of specific authentication - credentials. A single deployment may support multiple - authentication schemes (OAuth, Basic Auth, Token). The - authentication scheme used is determined by the - provider of the Cloud Database service. Please contact - your provider to determine the best way to - authenticate against this API. - - Some authentication schemes may require that the - API operate using SSL over HTTP (HTTPS). - -
-
- Cloud Databases Service Versions - The Cloud Databases version defines the contract and - build information for the API. -
- Contract Version - The contract version denotes the data model and - behavior that the API supports. The requested - contract version is included in all request URLs. - Different contract versions of the API may be - available at any given time and are not guaranteed - to be compatible with one another. - - Example Request URL (contract version in - <emphasis role="strong" - >bold</emphasis>) - https://ord.databases.api.rackspacecloud.com/v1.0/1234 - - - This document pertains to contract version - 1.0. - - -
-
- API Version - The API List Versions call is available to show - the current API version as well as information - about all versions of the API. Refer to for details. -
-
- -
- Date/Time Format - The Database Service uses an ISO-8601 compliant date - format for the display and consumption of date/time - values. - The system timezone is in UTC. MySQL converts - TIMESTAMP values from the current time zone to UTC for - storage, and back from UTC to the current time zone - for retrieval. This does not occur for other types, - such as DATETIME. - - DB Service Date/Time Format - yyyy-MM-dd'T'HH:mm:ss.SSSZ - See the table below for a description of the - date/time format codes. - May 19th, 2011 at 8:07:08 AM, GMT-5 would have - the following format: - 2011-05-19T08:07:08-05:00 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Explanation of Date/Time Format - Codes
CodeDescription
yyyyFour digit year
MMTwo digit month
ddTwo digit day of month
TSeparator for date/time
HHTwo digit hour of day (00-23)
mmTwo digit minutes of hour
ssTwo digit seconds of the minute
SSSThree digit milliseconds of the - second
ZRFC-822 timezone
- -
-
- Pagination - To reduce load on the service, list operations - return a maximum of 20 items at a time. This is - referred to as pagination. Cloud - Databases has separate paging limits for instances, - databases, and users, which are currently all set to - 20. If a request supplies no limit or one that exceeds - the configured default limit, the default is used - instead. - Pagination provides the ability to limit the size of - the returned data as well as retrieve a specified - subset of a large data set. Pagination has two key - concepts: limit and marker. Limit - is the restriction on the maximum number of items for - that type that can be returned. - Marker is the ID of the last - item in the previous list returned. The ID is the UUID - in the case of instances, and the name in the case of - databases and users. For example, a query could - request the next 10 instances after the instance - "1234" as follows: - ?limit=10&marker=1234. Items are - displayed sorted by ID. - Pagination applies only to the calls listed in the - following table: - - - - Verb - URI - Description - - - - - &GET; - /instances/ - Lists the status and - information for all database - instances. - - - &GET; - - /instances/{instanceId}/databases - Lists databases for the - specified instance. - - - &GET; - - /instances/{instanceId}/users - Lists the users in the - specified database instance. - - - - If the content returned by a call is paginated, the - response includes a structured link much like an - instance item's links, with the basic structure - {"href": "<url>", "rel": "next"}. - Any response that is truncated by pagination will have - a next link, which points to the - next item in the collection. If there are no more - items, no next link is - returned. - See the examples of paged List Instances calls that - follow. - Reviewer: Need new examples - that show OpenStack host. - - List Instances Paged Request: JSON - - - - Notice that the paged request examples above set the - limit to 2 (?limit=2), so the responses - that follow each show 2 instances and return a - marker set to the UUID of the - last item in the returned list - (?marker=4137d6a4-03b7-4b66-b0ef-8c7c35c470d3). - Also a link is provided to retrieve the next 2 results - (limit=2) in the link element - identified by "rel":"next": - - List Instances Paged Response: JSON - - HTTP/1.1 200 OK -Content-Type: application/json -Via: 1.1 Repose (Repose/2.6.7) -Content-Length: 1172 -Date: Mon, 18 Mar 2013 19:09:17 GMT -Server: Jetty(8.0.y.z-SNAPSHOT) - - -
-
- Faults - When an error occurs, the Database Service returns a - fault object containing an HTTP error response code - that denotes the type of error. In the body of the - response, the system will return additional - information about the fault. - The following table lists possible fault types with - their associated error codes and descriptions. - - - - Fault Type - Associated Error Code - Description - - - - - badRequest - 400 - There was one or more errors - in the user request. - - - unauthorized - 401 - The supplied token is not - authorized to access the resources, either - it's expired or invalid. - - - forbidden - 403 - Access to the requested - resource was denied. - - - itemNotFound - 404 - The back-end services did not - find anything matching the - Request-URI. - - - badMethod - 405 - The request method is not - allowed for this resource. - - - overLimit - 413 - Either the number of entities - in the request is larger than allowed - limits, or the user has exceeded allowable - request rate limits. See the - details element for more - specifics. Contact support if you think - you need higher request rate limits. - - - badMediaType - 415 - The requested content type is - not supported by this service. - - - unprocessableEntity - 422 - The requested resource could - not be processed on at the moment. - - - instanceFault - 500 - This is a generic server error - and the message contains the reason for - the error. This error could wrap several - error messages and is a catch all. - - - notImplemented - 501 - The requested method or - resource is not implemented. - - - serviceUnavailable - 503 - The Database Service is not - available. - - - - The following two instanceFault - examples show errors when the server has erred or - cannot perform the requested operation: - - - Example Fault Response: JSON - - HTTP/1.1 500 Internal Server Error -Content-Length: 120 -Content-Type: application/json; charset=UTF-8 -Date: Tue, 29 Nov 2011 00:33:48 GMT - - - The error code (code) is returned in - the body of the response for convenience. The - message element returns a - human-readable message that is appropriate for display - to the end user. The details element is - optional and may contain information that is useful - for tracking down an error, such as a stack trace. The - details element may or may not be - appropriate for display to an end user, depending on - the role and experience of the end user. - The fault's root element (for example, - instanceFault) may change depending - on the type of error. - The following two - badRequest examples show errors when - the volume size is invalid: - - Example badRequest Fault on Volume Size Errors: - JSON - - HTTP/1.1 400 None -Content-Length: 120 -Content-Type: application/json; charset=UTF-8 -Date: Tue, 29 Nov 2011 00:33:48 GMT - - - The next two examples show itemNotFound - errors: - - Example itemNotFound Fault: JSON - - HTTP/1.1 404 Not Found -Content-Length: 78 -Content-Type: application/json; charset=UTF-8 -Date: Tue, 29 Nov 2011 00:35:24 GMT - - -
- Synchronous Versus Asynchronous - Faults<?sbr?> - Synchronous faults occur at - request time. When a synchronous fault occurs, the - fault contains an HTTP error response code, a - human readable message, and optional details about - the error. The following Database API calls are - synchronous and may produce synchronous - faults: - - List Users - - - List Instances - - - List Instance Details by ID - - - List Databases - - - Enable Root User - - - List Root-Enabled Status - - - List Flavors - - - List Versions - - - List Version Details - - - Asynchronous faults occur - in the background while an instance, database, or - user is being built or an instance is executing an - action. When an asynchronous fault occurs, the - system places the instance, database, or user in - an ERROR state and embeds the fault in the - offending instance, database, or user. When an - asynchronous fault occurs, the fault contains an - HTTP error response code, a human readable - message, and optional details about the error. The - following Database API calls are asynchronous and - may produce asynchronous faults: - - Create Instance - - - Delete Instance - - - Create Database - - - Delete Database - - - Create User - - - Delete User - - - Resize Volume - - - Resize Instance - - - Restart Instance - - - - Note that an asynchronous operation, if - it fails, may not give the user an error, - and the operation can error out without a - failure notification. - -
-
-
- Database Instance Status - When making an API call to - create, list, or delete database instance(s), the - following database instance status values are - possible: - - - BUILD – The database instance is being - provisioned. - - - REBOOT – The database instance is - rebooting. - - - ACTIVE – The database instance is - online and available to take requests. - - - BLOCKED – The database instance is - unresponsive at the moment. - - - RESIZE – The database instance is - being resized at the moment. - - - SHUTDOWN – The database instance is - terminating services. Also, SHUTDOWN is - returned if for any reason the MySQL instance - is shut down but not the actual server. - - If MySQL has crashed (causing the - SHUTDOWN status), please call support for - assistance. - - - - ERROR – The last operation for the - database instance failed due to an - error. - - -
-
- - - API Operations - - Do not use trailing slashes (/) at the end of calls - to API operations, since this may cause the call to - fail. For example, do not use &GET; /instances/detail/ - (with the trailing slash at the end). Rather, use - &GET; /instances/detail instead. - - -
- API Versions - This section describes the versions that are - supported for the Cloud Databases API. - - - - - - - - - -
- -
- Database Instances - This section describes the operations that are - supported for database instances. - - - - - - - - - - - - - - - -
- -
- Database Instance Actions - This section describes the actions that are - supported for database instances. - - - - - - - -
- -
- Databases - This section describes the operations that are - supported for databases. - - - - - - - - - -
- -
- Users - This section describes the operations that are - supported for managing database users. - In this section, "user has access to a database" - means that the user has full create, read, update, and - delete access to the given database. In other words, - on a cloud database instance, a user named USER and a - database named DATABASE exist, and within MySQL, a - GRANT ALL ON DATABASE.* TO USER has been issued on the - instance. - - There is a bug in a python library that - development is using that may cause incorrect user - deletions to occur if a period (.) is used in the - user name. In this case, the user name is - truncated to remove the portion of the name from - the period to the end, leaving only the portion - from the beginning up to the period. For example, - for a user named "my.userA", the bug would - truncate the user name to "my", and if the user - "my" exists, that user will be incorrectly - deleted. To avoid the problem, do not use periods - in user names. - - - - - - - - - - - - - - - - - - - -
- -
- Flavors - This section describes the operations that are - supported for flavors. - - - - - - - - - -
-
- - Glossary - - database - - A MySQL database within a database - instance. - - - - database instance - - A database instance is an isolated MySQL - instance in a single tenant environment on a - shared physical host machine. Also referred to as - instance. - - - - flavor - - A flavor is an available hardware configuration - for a database instance. Each flavor has a unique - combination of memory capacity and priority for - CPU time. - - - - volume - - A volume is user-specified storage that contains - the MySQL data directory. Volumes are - automatically provisioned on shared Internet Small - Computer System Interface (iSCSI) storage area - networks (SAN) that provide for increased - performance, scalability, availability and - manageability. Applications with high I/O demands - are performance optimized and data is protected - through both local and network RAID-10. - Additionally, network RAID provides synchronous - replication of volumes with automatic failover and - load balancing across available storage - clusters. - - - -
Binary files /tmp/tmpCrGm24/WOn8uQ9IKQ/openstack-trove-6.0.0~b2/apidocs/src/images/Choose_CS_Image_CCP.png and /tmp/tmpCrGm24/FbHhsfyieS/openstack-trove-6.0.0~b3~dev119/apidocs/src/images/Choose_CS_Image_CCP.png differ Binary files /tmp/tmpCrGm24/WOn8uQ9IKQ/openstack-trove-6.0.0~b2/apidocs/src/images/Choose_CS_Image.png and /tmp/tmpCrGm24/FbHhsfyieS/openstack-trove-6.0.0~b3~dev119/apidocs/src/images/Choose_CS_Image.png differ Binary files /tmp/tmpCrGm24/WOn8uQ9IKQ/openstack-trove-6.0.0~b2/apidocs/src/images/Choose_Image_CCP.png and /tmp/tmpCrGm24/FbHhsfyieS/openstack-trove-6.0.0~b3~dev119/apidocs/src/images/Choose_Image_CCP.png differ Binary files /tmp/tmpCrGm24/WOn8uQ9IKQ/openstack-trove-6.0.0~b2/apidocs/src/images/Choose_Image_CCP.tiff and /tmp/tmpCrGm24/FbHhsfyieS/openstack-trove-6.0.0~b3~dev119/apidocs/src/images/Choose_Image_CCP.tiff differ Binary files /tmp/tmpCrGm24/WOn8uQ9IKQ/openstack-trove-6.0.0~b2/apidocs/src/images/Cloud_DB_Infographic-1.png and /tmp/tmpCrGm24/FbHhsfyieS/openstack-trove-6.0.0~b3~dev119/apidocs/src/images/Cloud_DB_Infographic-1.png differ diff -Nru openstack-trove-6.0.0~b2/apidocs/src/images/Cloud_DB_Infographic-1.svg openstack-trove-6.0.0~b3~dev119/apidocs/src/images/Cloud_DB_Infographic-1.svg --- openstack-trove-6.0.0~b2/apidocs/src/images/Cloud_DB_Infographic-1.svg 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/images/Cloud_DB_Infographic-1.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,4533 +0,0 @@ - - - - -]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Binary files /tmp/tmpCrGm24/WOn8uQ9IKQ/openstack-trove-6.0.0~b2/apidocs/src/images/Create_CS.png and /tmp/tmpCrGm24/FbHhsfyieS/openstack-trove-6.0.0~b3~dev119/apidocs/src/images/Create_CS.png differ Binary files /tmp/tmpCrGm24/WOn8uQ9IKQ/openstack-trove-6.0.0~b2/apidocs/src/images/phpMyAdmin.png and /tmp/tmpCrGm24/FbHhsfyieS/openstack-trove-6.0.0~b3~dev119/apidocs/src/images/phpMyAdmin.png differ diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-create-incremental-request.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-create-incremental-request.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-create-incremental-request.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-create-incremental-request.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,9 +0,0 @@ -{ - "backup": { - "description": "My Incremental Backup", - "instance": "44b277eb-39be-4921-be31-3d61b43651d7", - "name": "Incremental Snapshot", - "parent_id": "a9832168-7541-4536-b8d9-a8a9b79cf1b4" - } -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-create-incremental-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-create-incremental-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-create-incremental-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-create-incremental-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -POST /v1.0/1234/backups HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-create-incremental-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-create-incremental-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-create-incremental-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-create-incremental-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ -{ - "backup": { - "created": "2014-10-30T12:30:00", - "datastore": { - "type": "mysql", - "version": "5.5", - "version_id": "b00000b0-00b0-0b00-00b0-000b000000bb" - }, - "description": "My Incremental Backup", - "id": "2e351a71-dd28-4bcb-a7d6-d36a5b487173", - "instance_id": "44b277eb-39be-4921-be31-3d61b43651d7", - "locationRef": null, - "name": "Incremental Snapshot", - "parent_id": "a9832168-7541-4536-b8d9-a8a9b79cf1b4", - "size": null, - "status": "NEW", - "updated": "2014-10-30T12:30:00" - } -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-create-incremental-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-create-incremental-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-create-incremental-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-create-incremental-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 202 Accepted -Content-Type: application/json -Content-Length: 462 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-create-request.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-create-request.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-create-request.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-create-request.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,8 +0,0 @@ -{ - "backup": { - "description": "My Backup", - "instance": "44b277eb-39be-4921-be31-3d61b43651d7", - "name": "snapshot" - } -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-create-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-create-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-create-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-create-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -POST /v1.0/1234/backups HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-create-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-create-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-create-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-create-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ -{ - "backup": { - "created": "2014-10-30T12:30:00", - "datastore": { - "type": "mysql", - "version": "5.5", - "version_id": "b00000b0-00b0-0b00-00b0-000b000000bb" - }, - "description": "My Backup", - "id": "a9832168-7541-4536-b8d9-a8a9b79cf1b4", - "instance_id": "44b277eb-39be-4921-be31-3d61b43651d7", - "locationRef": null, - "name": "snapshot", - "parent_id": null, - "size": null, - "status": "NEW", - "updated": "2014-10-30T12:30:00" - } -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-create-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-create-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-create-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-create-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 202 Accepted -Content-Type: application/json -Content-Length: 404 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-delete-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-delete-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-delete-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-delete-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -DELETE /v1.0/1234/backups/a9832168-7541-4536-b8d9-a8a9b79cf1b4 HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-delete-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-delete-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-delete-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-delete-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 202 Accepted -Content-Type: application/json -Content-Length: 0 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-get-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-get-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-get-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-get-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -GET /v1.0/1234/backups/a9832168-7541-4536-b8d9-a8a9b79cf1b4 HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-get-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-get-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-get-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-get-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ -{ - "backup": { - "created": "2014-10-30T12:30:00", - "datastore": { - "type": "mysql", - "version": "5.5", - "version_id": "b00000b0-00b0-0b00-00b0-000b000000bb" - }, - "description": "My Backup", - "id": "a9832168-7541-4536-b8d9-a8a9b79cf1b4", - "instance_id": "44b277eb-39be-4921-be31-3d61b43651d7", - "locationRef": "http://localhost/path/to/backup", - "name": "snapshot", - "parent_id": null, - "size": 0.14, - "status": "COMPLETED", - "updated": "2014-10-30T12:30:00" - } -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-get-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-get-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-get-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-get-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 439 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-list-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-list-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-list-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-list-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -GET /v1.0/1234/backups HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-list-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-list-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-list-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-list-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,38 +0,0 @@ -{ - "backups": [ - { - "created": "2014-10-30T12:30:00", - "datastore": { - "type": "mysql", - "version": "5.5", - "version_id": "b00000b0-00b0-0b00-00b0-000b000000bb" - }, - "description": "My Backup", - "id": "a9832168-7541-4536-b8d9-a8a9b79cf1b4", - "instance_id": "44b277eb-39be-4921-be31-3d61b43651d7", - "locationRef": "http://localhost/path/to/backup", - "name": "snapshot", - "parent_id": null, - "size": 0.14, - "status": "COMPLETED", - "updated": "2014-10-30T12:30:00" - }, - { - "created": "2014-10-30T12:30:00", - "datastore": { - "type": "mysql", - "version": "5.5", - "version_id": "b00000b0-00b0-0b00-00b0-000b000000bb" - }, - "description": "My Incremental Backup", - "id": "2e351a71-dd28-4bcb-a7d6-d36a5b487173", - "instance_id": "44b277eb-39be-4921-be31-3d61b43651d7", - "locationRef": "http://localhost/path/to/backup", - "name": "Incremental Snapshot", - "parent_id": "a9832168-7541-4536-b8d9-a8a9b79cf1b4", - "size": 0.14, - "status": "COMPLETED", - "updated": "2014-10-30T12:30:00" - } - ] -} diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-list-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-list-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-list-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-list-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 929 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-restore-request.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-restore-request.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-restore-request.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-restore-request.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,13 +0,0 @@ -{ - "instance": { - "flavorRef": 1, - "name": "backup_instance", - "restorePoint": { - "backupRef": "a9832168-7541-4536-b8d9-a8a9b79cf1b4" - }, - "volume": { - "size": 2 - } - } -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-restore-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-restore-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-restore-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-restore-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -POST /v1.0/1234/instances HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-restore-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-restore-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-restore-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-restore-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,41 +0,0 @@ -{ - "instance": { - "created": "2014-10-30T12:30:00", - "datastore": { - "type": "mysql", - "version": "5.5" - }, - "flavor": { - "id": "1", - "links": [ - { - "href": "https://troveapi.org/v1.0/1234/flavors/1", - "rel": "self" - }, - { - "href": "https://troveapi.org/flavors/1", - "rel": "bookmark" - } - ] - }, - "hostname": "e09ad9a3f73309469cf1f43d11e79549caf9acf2.troveexampledb.com", - "id": "d5a9db64-7ef7-41c5-8e1e-4013166874bc", - "links": [ - { - "href": "https://troveapi.org/v1.0/1234/instances/d5a9db64-7ef7-41c5-8e1e-4013166874bc", - "rel": "self" - }, - { - "href": "https://troveapi.org/instances/d5a9db64-7ef7-41c5-8e1e-4013166874bc", - "rel": "bookmark" - } - ], - "name": "backup_instance", - "status": "BUILD", - "updated": "2014-10-30T12:30:00", - "volume": { - "size": 2 - } - } -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-restore-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-restore-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-backup-restore-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backup-restore-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 694 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-backups-by-instance-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backups-by-instance-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-backups-by-instance-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backups-by-instance-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -GET /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7/backups HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-backups-by-instance-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backups-by-instance-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-backups-by-instance-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backups-by-instance-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,38 +0,0 @@ -{ - "backups": [ - { - "created": "2014-10-30T12:30:00", - "datastore": { - "type": "mysql", - "version": "5.5", - "version_id": "b00000b0-00b0-0b00-00b0-000b000000bb" - }, - "description": "My Backup", - "id": "a9832168-7541-4536-b8d9-a8a9b79cf1b4", - "instance_id": "44b277eb-39be-4921-be31-3d61b43651d7", - "locationRef": "http://localhost/path/to/backup", - "name": "snapshot", - "parent_id": null, - "size": 0.14, - "status": "COMPLETED", - "updated": "2014-10-30T12:30:00" - }, - { - "created": "2014-10-30T12:30:00", - "datastore": { - "type": "mysql", - "version": "5.5", - "version_id": "b00000b0-00b0-0b00-00b0-000b000000bb" - }, - "description": "My Incremental Backup", - "id": "2e351a71-dd28-4bcb-a7d6-d36a5b487173", - "instance_id": "44b277eb-39be-4921-be31-3d61b43651d7", - "locationRef": "http://localhost/path/to/backup", - "name": "Incremental Snapshot", - "parent_id": "a9832168-7541-4536-b8d9-a8a9b79cf1b4", - "size": 0.14, - "status": "COMPLETED", - "updated": "2014-10-30T12:30:00" - } - ] -} diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-backups-by-instance-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backups-by-instance-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-backups-by-instance-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-backups-by-instance-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 929 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-change-user-attributes-request.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-change-user-attributes-request.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-change-user-attributes-request.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-change-user-attributes-request.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -{ - "user": { - "name": "new_username", - "password": "new_password" - } -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-change-user-attributes-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-change-user-attributes-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-change-user-attributes-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-change-user-attributes-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -PUT /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7/users/dbuser1 HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-change-user-attributes-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-change-user-attributes-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-change-user-attributes-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-change-user-attributes-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 202 Accepted -Content-Type: application/json -Content-Length: 0 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-change-users-password-request.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-change-users-password-request.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-change-users-password-request.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-change-users-password-request.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,12 +0,0 @@ -{ - "users": [ - { - "name": "dbuser1", - "password": "newpassword" - }, - { - "name": "dbuser2", - "password": "anotherpassword" - } - ] -} \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-change-users-password-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-change-users-password-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-change-users-password-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-change-users-password-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -PUT /v1.0/1234/instances/692d8418-7a8f-47f1-8060-59846c6e024f/users HTTP/1.1 -User-Agent: python-example-client -Host: ord.databases.api.rackspacecloud.com -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-change-users-password-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-change-users-password-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-change-users-password-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-change-users-password-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -HTTP/1.1 202 Accepted -Content-Type: application/json -Content-Length: 152 -Date: Wed, 21 Mar 2012 17:46:46 GMT \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-check-root-user-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-check-root-user-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-check-root-user-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-check-root-user-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -GET /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7/root HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-check-root-user-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-check-root-user-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-check-root-user-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-check-root-user-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -{ - "rootEnabled": true -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-check-root-user-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-check-root-user-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-check-root-user-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-check-root-user-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 21 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-attach-to-instance-request.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-attach-to-instance-request.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-attach-to-instance-request.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-attach-to-instance-request.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -{ - "instance": { - "configuration": "43a6ea86-e959-4735-9e46-a6a5d4a2d80f" - } -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-attach-to-instance-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-attach-to-instance-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-attach-to-instance-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-attach-to-instance-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -PUT /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7 HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-attach-to-instance-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-attach-to-instance-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-attach-to-instance-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-attach-to-instance-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 202 Accepted -Content-Type: application/json -Content-Length: 0 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-create-request.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-create-request.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-create-request.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-create-request.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -{ - "configuration": { - "datastore": { - "type": "a00000a0-00a0-0a00-00a0-000a000000aa", - "version": "b00000b0-00b0-0b00-00b0-000b000000bb" - }, - "description": "example description", - "name": "example-configuration-name", - "values": { - "collation_server": "latin1_swedish_ci", - "connect_timeout": 120 - } - } -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-create-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-create-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-create-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-create-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -POST /v1.0/1234/configurations HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-create-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-create-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-create-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-create-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -{ - "configuration": { - "created": "2014-10-30T12:30:00", - "datastore_name": "mysql", - "datastore_version_id": "b00000b0-00b0-0b00-00b0-000b000000bb", - "datastore_version_name": "5.5", - "description": "example description", - "id": "43a6ea86-e959-4735-9e46-a6a5d4a2d80f", - "instance_count": 0, - "name": "example-configuration-name", - "updated": "2014-10-30T12:30:00", - "values": { - "collation_server": "latin1_swedish_ci", - "connect_timeout": 120 - } - } -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-create-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-create-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-create-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-create-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 431 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-delete-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-delete-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-delete-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-delete-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -DELETE /v1.0/1234/configurations/43a6ea86-e959-4735-9e46-a6a5d4a2d80f HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-delete-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-delete-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-delete-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-delete-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 202 Accepted -Content-Type: application/json -Content-Length: 0 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-detach-from-instance-request.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-detach-from-instance-request.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-detach-from-instance-request.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-detach-from-instance-request.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -{ - "instance": { - "configuration": "" - } -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-detach-from-instance-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-detach-from-instance-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-detach-from-instance-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-detach-from-instance-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -PUT /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7 HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-detach-from-instance-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-detach-from-instance-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-detach-from-instance-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-detach-from-instance-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 202 Accepted -Content-Type: application/json -Content-Length: 0 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-details-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-details-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-details-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-details-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -GET /v1.0/1234/configurations/43a6ea86-e959-4735-9e46-a6a5d4a2d80f HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-details-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-details-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-details-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-details-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -{ - "configuration": { - "created": "2014-10-30T12:30:00", - "datastore_name": "mysql", - "datastore_version_id": "b00000b0-00b0-0b00-00b0-000b000000bb", - "datastore_version_name": "5.5", - "description": "example description", - "id": "43a6ea86-e959-4735-9e46-a6a5d4a2d80f", - "instance_count": 0, - "name": "example-configuration-name", - "updated": "2014-10-30T12:30:00", - "values": { - "collation_server": "latin1_swedish_ci", - "connect_timeout": 120 - } - } -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-details-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-details-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-details-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-details-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 431 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-edit-parameters-request.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-edit-parameters-request.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-edit-parameters-request.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-edit-parameters-request.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,8 +0,0 @@ -{ - "configuration": { - "values": { - "connect_timeout": 300 - } - } -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-edit-parameters-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-edit-parameters-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-edit-parameters-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-edit-parameters-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -PATCH /v1.0/1234/configurations/43a6ea86-e959-4735-9e46-a6a5d4a2d80f HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-edit-parameters-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-edit-parameters-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-edit-parameters-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-edit-parameters-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 0 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-list-instances-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-list-instances-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-list-instances-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-list-instances-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -GET /v1.0/1234/configurations/43a6ea86-e959-4735-9e46-a6a5d4a2d80f/instances HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-list-instances-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-list-instances-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-list-instances-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-list-instances-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,9 +0,0 @@ -{ - "instances": [ - { - "id": "44b277eb-39be-4921-be31-3d61b43651d7", - "name": "json_rack_instance" - } - ] -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-list-instances-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-list-instances-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-list-instances-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-list-instances-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 93 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-list-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-list-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-list-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-list-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -GET /v1.0/1234/configurations HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-list-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-list-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-list-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-list-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -{ - "configurations": [ - { - "created": "2014-10-30T12:30:00", - "datastore_name": "mysql", - "datastore_version_id": "b00000b0-00b0-0b00-00b0-000b000000bb", - "datastore_version_name": "5.5", - "description": "example description", - "id": "43a6ea86-e959-4735-9e46-a6a5d4a2d80f", - "name": "example-configuration-name", - "updated": "2014-10-30T12:30:00" - } - ] -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-list-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-list-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-list-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-list-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 336 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-parameter-for-datastore-version-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-parameter-for-datastore-version-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-parameter-for-datastore-version-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-parameter-for-datastore-version-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -GET /v1.0/1234/datastores/a00000a0-00a0-0a00-00a0-000a000000aa/versions/b00000b0-00b0-0b00-00b0-000b000000bb/parameters/collation_server HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-parameter-for-datastore-version-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-parameter-for-datastore-version-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-parameter-for-datastore-version-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-parameter-for-datastore-version-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -{ - "datastore_version_id": "b00000b0-00b0-0b00-00b0-000b000000bb", - "min": 0, - "name": "collation_server", - "restart_required": false, - "type": "string" -} diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-parameter-for-datastore-version-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-parameter-for-datastore-version-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-parameter-for-datastore-version-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-parameter-for-datastore-version-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 147 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-parameters-for-datastore-version-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-parameters-for-datastore-version-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-parameters-for-datastore-version-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-parameters-for-datastore-version-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -GET /v1.0/1234/datastores/a00000a0-00a0-0a00-00a0-000a000000aa/versions/b00000b0-00b0-0b00-00b0-000b000000bb/parameters HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-parameters-for-datastore-version-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-parameters-for-datastore-version-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-parameters-for-datastore-version-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-parameters-for-datastore-version-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,51 +0,0 @@ -{ - "configuration-parameters": [ - { - "datastore_version_id": "b00000b0-00b0-0b00-00b0-000b000000bb", - "min": 0, - "name": "collation_server", - "restart_required": false, - "type": "string" - }, - { - "datastore_version_id": "b00000b0-00b0-0b00-00b0-000b000000bb", - "max": 65535, - "min": 0, - "name": "connect_timeout", - "restart_required": false, - "type": "integer" - }, - { - "datastore_version_id": "b00000b0-00b0-0b00-00b0-000b000000bb", - "max": 57671680, - "min": 0, - "name": "innodb_buffer_pool_size", - "restart_required": true, - "type": "integer" - }, - { - "datastore_version_id": "b00000b0-00b0-0b00-00b0-000b000000bb", - "max": 4294967296, - "min": 0, - "name": "join_buffer_size", - "restart_required": false, - "type": "integer" - }, - { - "datastore_version_id": "b00000b0-00b0-0b00-00b0-000b000000bb", - "max": 4294967296, - "min": 0, - "name": "key_buffer_size", - "restart_required": false, - "type": "integer" - }, - { - "datastore_version_id": "b00000b0-00b0-0b00-00b0-000b000000bb", - "max": 1, - "min": 0, - "name": "local_infile", - "restart_required": false, - "type": "integer" - } - ] -} diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-parameters-for-datastore-version-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-parameters-for-datastore-version-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-parameters-for-datastore-version-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-parameters-for-datastore-version-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 1008 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-parameters-without-datastore-version-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-parameters-without-datastore-version-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-parameters-without-datastore-version-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-parameters-without-datastore-version-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -GET /v1.0/1234/datastores/versions/b00000b0-00b0-0b00-00b0-000b000000bb/parameters HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-parameters-without-datastore-version-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-parameters-without-datastore-version-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-parameters-without-datastore-version-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-parameters-without-datastore-version-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,51 +0,0 @@ -{ - "configuration-parameters": [ - { - "datastore_version_id": "b00000b0-00b0-0b00-00b0-000b000000bb", - "min": 0, - "name": "collation_server", - "restart_required": false, - "type": "string" - }, - { - "datastore_version_id": "b00000b0-00b0-0b00-00b0-000b000000bb", - "max": 65535, - "min": 0, - "name": "connect_timeout", - "restart_required": false, - "type": "integer" - }, - { - "datastore_version_id": "b00000b0-00b0-0b00-00b0-000b000000bb", - "max": 57671680, - "min": 0, - "name": "innodb_buffer_pool_size", - "restart_required": true, - "type": "integer" - }, - { - "datastore_version_id": "b00000b0-00b0-0b00-00b0-000b000000bb", - "max": 4294967296, - "min": 0, - "name": "join_buffer_size", - "restart_required": false, - "type": "integer" - }, - { - "datastore_version_id": "b00000b0-00b0-0b00-00b0-000b000000bb", - "max": 4294967296, - "min": 0, - "name": "key_buffer_size", - "restart_required": false, - "type": "integer" - }, - { - "datastore_version_id": "b00000b0-00b0-0b00-00b0-000b000000bb", - "max": 1, - "min": 0, - "name": "local_infile", - "restart_required": false, - "type": "integer" - } - ] -} diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-parameters-without-datastore-version-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-parameters-without-datastore-version-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-parameters-without-datastore-version-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-parameters-without-datastore-version-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 1008 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-parameter-without-datastore-version-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-parameter-without-datastore-version-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-parameter-without-datastore-version-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-parameter-without-datastore-version-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -GET /v1.0/1234/datastores/versions/b00000b0-00b0-0b00-00b0-000b000000bb/parameters/collation_server HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-parameter-without-datastore-version-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-parameter-without-datastore-version-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-parameter-without-datastore-version-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-parameter-without-datastore-version-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -{ - "datastore_version_id": "b00000b0-00b0-0b00-00b0-000b000000bb", - "min": 0, - "name": "collation_server", - "restart_required": false, - "type": "string" -} diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-parameter-without-datastore-version-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-parameter-without-datastore-version-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-parameter-without-datastore-version-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-parameter-without-datastore-version-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 147 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-update-parameters-request.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-update-parameters-request.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-update-parameters-request.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-update-parameters-request.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ -{ - "configuration": { - "description": "example updated description", - "name": "example-updated-name", - "values": { - "collation_server": "utf8_unicode_ci", - "connect_timeout": 150 - } - } -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-update-parameters-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-update-parameters-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-update-parameters-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-update-parameters-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -PUT /v1.0/1234/configurations/43a6ea86-e959-4735-9e46-a6a5d4a2d80f HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-update-parameters-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-update-parameters-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-configuration-update-parameters-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-configuration-update-parameters-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 202 Accepted -Content-Type: application/json -Content-Length: 0 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-create-databases-request.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-create-databases-request.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-create-databases-request.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-create-databases-request.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -{ - "databases": [ - { - "character_set": "utf8", - "collate": "utf8_general_ci", - "name": "testingdb" - }, - { - "name": "anotherdb" - }, - { - "name": "oneMoreDB" - } - ] -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-create-databases-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-create-databases-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-create-databases-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-create-databases-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -POST /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7/databases HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-create-databases-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-create-databases-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-create-databases-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-create-databases-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 202 Accepted -Content-Type: application/json -Content-Length: 0 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-create-instance-request.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-create-instance-request.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-create-instance-request.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-create-instance-request.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -{ - "instance": { - "databases": [ - { - "character_set": "utf8", - "collate": "utf8_general_ci", - "name": "sampledb" - }, - { - "name": "nextround" - } - ], - "flavorRef": 1, - "name": "json_rack_instance", - "users": [ - { - "databases": [ - { - "name": "sampledb" - } - ], - "name": "demouser", - "password": "demopassword" - } - ], - "volume": { - "size": 2 - } - } -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-create-instance-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-create-instance-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-create-instance-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-create-instance-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -POST /v1.0/1234/instances HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-create-instance-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-create-instance-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-create-instance-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-create-instance-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,41 +0,0 @@ -{ - "instance": { - "created": "2014-10-30T12:30:00", - "datastore": { - "type": "mysql", - "version": "5.5" - }, - "flavor": { - "id": "1", - "links": [ - { - "href": "https://troveapi.org/v1.0/1234/flavors/1", - "rel": "self" - }, - { - "href": "https://troveapi.org/flavors/1", - "rel": "bookmark" - } - ] - }, - "hostname": "e09ad9a3f73309469cf1f43d11e79549caf9acf2.troveexampledb.com", - "id": "44b277eb-39be-4921-be31-3d61b43651d7", - "links": [ - { - "href": "https://troveapi.org/v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7", - "rel": "self" - }, - { - "href": "https://troveapi.org/instances/44b277eb-39be-4921-be31-3d61b43651d7", - "rel": "bookmark" - } - ], - "name": "json_rack_instance", - "status": "BUILD", - "updated": "2014-10-30T12:30:00", - "volume": { - "size": 2 - } - } -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-create-instance-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-create-instance-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-create-instance-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-create-instance-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 697 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-create-users-request.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-create-users-request.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-create-users-request.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-create-users-request.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,35 +0,0 @@ -{ - "users": [ - { - "databases": [ - { - "name": "databaseA" - } - ], - "name": "dbuser1", - "password": "password" - }, - { - "databases": [ - { - "name": "databaseB" - }, - { - "name": "databaseC" - } - ], - "name": "dbuser2", - "password": "password" - }, - { - "databases": [ - { - "name": "databaseD" - } - ], - "name": "dbuser3", - "password": "password" - } - ] -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-create-users-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-create-users-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-create-users-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-create-users-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -POST /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7/users HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-create-users-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-create-users-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-create-users-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-create-users-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 202 Accepted -Content-Type: application/json -Content-Length: 0 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-datastore-by-id-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-datastore-by-id-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-datastore-by-id-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-datastore-by-id-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -GET /v1.0/1234/datastores/a00000a0-00a0-0a00-00a0-000a000000aa HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-datastore-by-id-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-datastore-by-id-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-datastore-by-id-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-datastore-by-id-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,34 +0,0 @@ -{ - "datastore": { - "default_version": "b00000b0-00b0-0b00-00b0-000b000000bb", - "id": "a00000a0-00a0-0a00-00a0-000a000000aa", - "links": [ - { - "href": "https://troveapi.org/v1.0/1234/datastores/a00000a0-00a0-0a00-00a0-000a000000aa", - "rel": "self" - }, - { - "href": "https://troveapi.org/datastores/a00000a0-00a0-0a00-00a0-000a000000aa", - "rel": "bookmark" - } - ], - "name": "mysql", - "versions": [ - { - "id": "b00000b0-00b0-0b00-00b0-000b000000bb", - "links": [ - { - "href": "https://troveapi.org/v1.0/1234/datastores/versions/b00000b0-00b0-0b00-00b0-000b000000bb", - "rel": "self" - }, - { - "href": "https://troveapi.org/datastores/versions/b00000b0-00b0-0b00-00b0-000b000000bb", - "rel": "bookmark" - } - ], - "name": "5.5" - } - ] - } -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-datastore-by-id-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-datastore-by-id-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-datastore-by-id-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-datastore-by-id-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 678 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-datastores-list-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-datastores-list-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-datastores-list-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-datastores-list-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -GET /v1.0/1234/datastores HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-datastores-list-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-datastores-list-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-datastores-list-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-datastores-list-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,36 +0,0 @@ -{ - "datastores": [ - { - "default_version": "b00000b0-00b0-0b00-00b0-000b000000bb", - "id": "a00000a0-00a0-0a00-00a0-000a000000aa", - "links": [ - { - "href": "https://troveapi.org/v1.0/1234/datastores/a00000a0-00a0-0a00-00a0-000a000000aa", - "rel": "self" - }, - { - "href": "https://troveapi.org/datastores/a00000a0-00a0-0a00-00a0-000a000000aa", - "rel": "bookmark" - } - ], - "name": "mysql", - "versions": [ - { - "id": "b00000b0-00b0-0b00-00b0-000b000000bb", - "links": [ - { - "href": "https://troveapi.org/v1.0/1234/datastores/versions/b00000b0-00b0-0b00-00b0-000b000000bb", - "rel": "self" - }, - { - "href": "https://troveapi.org/datastores/versions/b00000b0-00b0-0b00-00b0-000b000000bb", - "rel": "bookmark" - } - ], - "name": "5.5" - } - ] - } - ] -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-datastores-list-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-datastores-list-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-datastores-list-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-datastores-list-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 681 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-datastore-version-by-id-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-datastore-version-by-id-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-datastore-version-by-id-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-datastore-version-by-id-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -GET /v1.0/1234/datastores/a00000a0-00a0-0a00-00a0-000a000000aa/versions/b00000b0-00b0-0b00-00b0-000b000000bb HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-datastore-version-by-id-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-datastore-version-by-id-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-datastore-version-by-id-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-datastore-version-by-id-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -{ - "version": { - "datastore": "a00000a0-00a0-0a00-00a0-000a000000aa", - "id": "b00000b0-00b0-0b00-00b0-000b000000bb", - "links": [ - { - "href": "https://troveapi.org/v1.0/1234/datastores/versions/b00000b0-00b0-0b00-00b0-000b000000bb", - "rel": "self" - }, - { - "href": "https://troveapi.org/datastores/versions/b00000b0-00b0-0b00-00b0-000b000000bb", - "rel": "bookmark" - } - ], - "name": "5.5" - } -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-datastore-version-by-id-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-datastore-version-by-id-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-datastore-version-by-id-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-datastore-version-by-id-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 368 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-datastore-versions-list-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-datastore-versions-list-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-datastore-versions-list-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-datastore-versions-list-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -GET /v1.0/1234/datastores/a00000a0-00a0-0a00-00a0-000a000000aa/versions HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-datastore-versions-list-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-datastore-versions-list-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-datastore-versions-list-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-datastore-versions-list-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ -{ - "versions": [ - { - "datastore": "a00000a0-00a0-0a00-00a0-000a000000aa", - "id": "b00000b0-00b0-0b00-00b0-000b000000bb", - "links": [ - { - "href": "https://troveapi.org/v1.0/1234/datastores/versions/b00000b0-00b0-0b00-00b0-000b000000bb", - "rel": "self" - }, - { - "href": "https://troveapi.org/datastores/versions/b00000b0-00b0-0b00-00b0-000b000000bb", - "rel": "bookmark" - } - ], - "name": "5.5" - } - ] -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-datastore-versions-list-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-datastore-versions-list-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-datastore-versions-list-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-datastore-versions-list-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 371 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-delete-databases-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-delete-databases-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-delete-databases-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-delete-databases-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -DELETE /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7/databases/testingdb HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-delete-databases-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-delete-databases-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-delete-databases-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-delete-databases-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 202 Accepted -Content-Type: application/json -Content-Length: 0 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-delete-instance-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-delete-instance-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-delete-instance-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-delete-instance-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -DELETE /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7 HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-delete-instance-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-delete-instance-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-delete-instance-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-delete-instance-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 202 Accepted -Content-Type: application/json -Content-Length: 0 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-delete-users-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-delete-users-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-delete-users-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-delete-users-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -DELETE /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7/users/demouser HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-delete-users-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-delete-users-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-delete-users-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-delete-users-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 202 Accepted -Content-Type: application/json -Content-Length: 0 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-disable-root-user-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-disable-root-user-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-disable-root-user-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-disable-root-user-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -DELETE /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7/root HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-disable-root-user-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-disable-root-user-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-disable-root-user-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-disable-root-user-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 0 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-enable-root-user-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-enable-root-user-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-enable-root-user-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-enable-root-user-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -POST /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7/root HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-enable-root-user-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-enable-root-user-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-enable-root-user-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-enable-root-user-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -{ - "user": { - "name": "root", - "password": "12345" - } -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-enable-root-user-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-enable-root-user-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-enable-root-user-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-enable-root-user-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 47 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-faults-badRequest.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-faults-badRequest.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-faults-badRequest.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-faults-badRequest.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -{ - "badRequest": { - "code": 400, - "message": "Volume 'size' needs to be a positive integer value, -1.0 cannot be accepted." - } -} \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-faults-instanceFault.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-faults-instanceFault.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-faults-instanceFault.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-faults-instanceFault.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -{ - "instanceFault": { - "code": 500, - "message": "The server has either erred or is incapable of performing the requested operation." - } -} \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-faults-itemNotFound.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-faults-itemNotFound.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-faults-itemNotFound.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-faults-itemNotFound.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -{ - "itemNotFound": { - "code": 404, - "message": "The resource could not be found." - } -} \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-flavors-by-id-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-flavors-by-id-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-flavors-by-id-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-flavors-by-id-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -GET /v1.0/1234/flavors/1 HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-flavors-by-id-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-flavors-by-id-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-flavors-by-id-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-flavors-by-id-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -{ - "flavor": { - "id": 1, - "links": [ - { - "href": "https://troveapi.org/v1.0/1234/flavors/1", - "rel": "self" - }, - { - "href": "https://troveapi.org/flavors/1", - "rel": "bookmark" - } - ], - "name": "m1.tiny", - "ram": 512, - "str_id": "1" - } -} diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-flavors-by-id-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-flavors-by-id-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-flavors-by-id-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-flavors-by-id-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 214 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-flavors-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-flavors-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-flavors-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-flavors-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -GET /v1.0/1234/flavors HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-flavors-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-flavors-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-flavors-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-flavors-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,212 +0,0 @@ -{ - "flavors": [ - { - "id": 1, - "links": [ - { - "href": "https://troveapi.org/v1.0/1234/flavors/1", - "rel": "self" - }, - { - "href": "https://troveapi.org/flavors/1", - "rel": "bookmark" - } - ], - "name": "m1.tiny", - "ram": 512, - "str_id": "1" - }, - { - "id": 2, - "links": [ - { - "href": "https://troveapi.org/v1.0/1234/flavors/2", - "rel": "self" - }, - { - "href": "https://troveapi.org/flavors/2", - "rel": "bookmark" - } - ], - "name": "m1.small", - "ram": 2048, - "str_id": "2" - }, - { - "id": 3, - "links": [ - { - "href": "https://troveapi.org/v1.0/1234/flavors/3", - "rel": "self" - }, - { - "href": "https://troveapi.org/flavors/3", - "rel": "bookmark" - } - ], - "name": "m1.medium", - "ram": 4096, - "str_id": "3" - }, - { - "id": 4, - "links": [ - { - "href": "https://troveapi.org/v1.0/1234/flavors/4", - "rel": "self" - }, - { - "href": "https://troveapi.org/flavors/4", - "rel": "bookmark" - } - ], - "name": "m1.large", - "ram": 8192, - "str_id": "4" - }, - { - "id": 5, - "links": [ - { - "href": "https://troveapi.org/v1.0/1234/flavors/5", - "rel": "self" - }, - { - "href": "https://troveapi.org/flavors/5", - "rel": "bookmark" - } - ], - "name": "m1.xlarge", - "ram": 16384, - "str_id": "5" - }, - { - "id": 6, - "links": [ - { - "href": "https://troveapi.org/v1.0/1234/flavors/6", - "rel": "self" - }, - { - "href": "https://troveapi.org/flavors/6", - "rel": "bookmark" - } - ], - "name": "m1.nano", - "ram": 64, - "str_id": "6" - }, - { - "id": 7, - "links": [ - { - "href": "https://troveapi.org/v1.0/1234/flavors/7", - "rel": "self" - }, - { - "href": "https://troveapi.org/flavors/7", - "rel": "bookmark" - } - ], - "name": "m1.micro", - "ram": 128, - "str_id": "7" - }, - { - "id": 8, - "links": [ - { - "href": "https://troveapi.org/v1.0/1234/flavors/8", - "rel": "self" - }, - { - "href": "https://troveapi.org/flavors/8", - "rel": "bookmark" - } - ], - "name": "m1.rd-smaller", - "ram": 768, - "str_id": "8" - }, - { - "id": 9, - "links": [ - { - "href": "https://troveapi.org/v1.0/1234/flavors/9", - "rel": "self" - }, - { - "href": "https://troveapi.org/flavors/9", - "rel": "bookmark" - } - ], - "name": "tinier", - "ram": 506, - "str_id": "9" - }, - { - "id": 10, - "links": [ - { - "href": "https://troveapi.org/v1.0/1234/flavors/10", - "rel": "self" - }, - { - "href": "https://troveapi.org/flavors/10", - "rel": "bookmark" - } - ], - "name": "m1.rd-tiny", - "ram": 512, - "str_id": "10" - }, - { - "id": 11, - "links": [ - { - "href": "https://troveapi.org/v1.0/1234/flavors/11", - "rel": "self" - }, - { - "href": "https://troveapi.org/flavors/11", - "rel": "bookmark" - } - ], - "name": "eph.rd-tiny", - "ram": 512, - "str_id": "11" - }, - { - "id": 12, - "links": [ - { - "href": "https://troveapi.org/v1.0/1234/flavors/12", - "rel": "self" - }, - { - "href": "https://troveapi.org/flavors/12", - "rel": "bookmark" - } - ], - "name": "eph.rd-smaller", - "ram": 768, - "str_id": "12" - }, - { - "id": null, - "links": [ - { - "href": "https://troveapi.org/v1.0/1234/flavors/custom", - "rel": "self" - }, - { - "href": "https://troveapi.org/flavors/custom", - "rel": "bookmark" - } - ], - "name": "custom.small", - "ram": 512, - "str_id": "custom" - } - ] -} diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-flavors-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-flavors-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-flavors-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-flavors-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 2730 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-get-default-instance-configuration-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-get-default-instance-configuration-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-get-default-instance-configuration-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-get-default-instance-configuration-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -GET /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7/configuration HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-get-default-instance-configuration-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-get-default-instance-configuration-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-get-default-instance-configuration-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-get-default-instance-configuration-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ -{ - "instance": { - "configuration": { - "basedir": "/usr", - "connect_timeout": "15", - "datadir": "/var/lib/mysql/data", - "default_storage_engine": "innodb", - "innodb_buffer_pool_size": "150M", - "innodb_data_file_path": "ibdata1:10M:autoextend", - "innodb_file_per_table": "1", - "innodb_log_buffer_size": "25M", - "innodb_log_file_size": "50M", - "innodb_log_files_in_group": "2", - "join_buffer_size": "1M", - "key_buffer_size": "50M", - "local-infile": "0", - "max_allowed_packet": "1024K", - "max_connections": "100", - "max_heap_table_size": "16M", - "max_user_connections": "100", - "myisam-recover-options": "BACKUP,FORCE", - "open_files_limit": "512", - "pid_file": "/var/run/mysqld/mysqld.pid", - "port": "3306", - "query_cache_limit": "1M", - "query_cache_size": "8M", - "query_cache_type": "1", - "read_buffer_size": "512K", - "read_rnd_buffer_size": "512K", - "server_id": "271898715", - "skip-external-locking": "1", - "sort_buffer_size": "1M", - "table_definition_cache": "256", - "table_open_cache": "256", - "thread_cache_size": "4", - "thread_stack": "192K", - "tmp_table_size": "16M", - "tmpdir": "/var/tmp", - "user": "mysql", - "wait_timeout": "120", - "performance_schema": "ON" - } - } -} diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-get-default-instance-configuration-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-get-default-instance-configuration-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-get-default-instance-configuration-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-get-default-instance-configuration-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 1124 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-grant-user-access-request.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-grant-user-access-request.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-grant-user-access-request.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-grant-user-access-request.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ -{ - "databases": [ - { - "name": "databaseC" - }, - { - "name": "databaseD" - } - ] -} \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-grant-user-access-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-grant-user-access-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-grant-user-access-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-grant-user-access-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -PUT /v1.0/1234/instances/692d8418-7a8f-47f1-8060-59846c6e024f/users/exampleuser/databases HTTP/1.1 -User-Agent: python-example-client -Host: ord.databases.api.rackspacecloud.com -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-grant-user-access-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-grant-user-access-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-grant-user-access-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-grant-user-access-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -HTTP/1.1 202 Accepted -Content-Type: application/json -Content-Length: 0 -Date: Wed, 27 Jun 2012 23:11:19 GMT \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-instance-reboot-request.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instance-reboot-request.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-instance-reboot-request.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instance-reboot-request.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -{ - "reboot": {} -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-instance-reboot-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instance-reboot-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-instance-reboot-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instance-reboot-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -POST /v1.0/1234/mgmt/instances/44b277eb-39be-4921-be31-3d61b43651d7/action HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-instance-reboot-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instance-reboot-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-instance-reboot-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instance-reboot-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 202 Accepted -Content-Type: application/json -Content-Length: 0 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-instance-resize-flavor-request.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instance-resize-flavor-request.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-instance-resize-flavor-request.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instance-resize-flavor-request.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -{ - "resize": { - "flavorRef": 3 - } -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-instance-resize-flavor-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instance-resize-flavor-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-instance-resize-flavor-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instance-resize-flavor-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -POST /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7/action HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-instance-resize-flavor-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instance-resize-flavor-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-instance-resize-flavor-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instance-resize-flavor-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 202 Accepted -Content-Type: application/json -Content-Length: 0 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-instance-resize-instance-request.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instance-resize-instance-request.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-instance-resize-instance-request.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instance-resize-instance-request.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -{ - "resize": { - "flavorRef": "https://ord.databases.api.rackspacecloud.com/v1.0/1234/flavors/2" - } -} \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-instance-resize-instance-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instance-resize-instance-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-instance-resize-instance-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instance-resize-instance-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -POST /v1.0/1234/instances/23a3d4fb-3731-497b-afd4-bf25bde2b5fc/action HTTP/1.1 -User-Agent: python-example-client -Host: ord.databases.api.rackspacecloud.com -X-Auth-Token: 2eeb3252-0164-40f5-8fb7-85df5faa2698 -Accept: application/json -Content-Type: application/json \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-instance-resize-instance-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instance-resize-instance-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-instance-resize-instance-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instance-resize-instance-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -HTTP/1.1 202 Accepted -Content-Type: text/plain; charset=UTF-8 -Content-Length: 58 -Date: Mon, 06 Feb 2012 21:28:10 GMT \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-instance-resize-volume-request.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instance-resize-volume-request.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-instance-resize-volume-request.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instance-resize-volume-request.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,8 +0,0 @@ -{ - "resize": { - "volume": { - "size": 4 - } - } -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-instance-resize-volume-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instance-resize-volume-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-instance-resize-volume-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instance-resize-volume-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -POST /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7/action HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-instance-resize-volume-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instance-resize-volume-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-instance-resize-volume-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instance-resize-volume-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 202 Accepted -Content-Type: application/json -Content-Length: 0 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-instance-restart-request.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instance-restart-request.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-instance-restart-request.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instance-restart-request.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -{ - "restart": {} -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-instance-restart-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instance-restart-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-instance-restart-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instance-restart-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -POST /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7/action HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-instance-restart-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instance-restart-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-instance-restart-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instance-restart-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 202 Accepted -Content-Type: application/json -Content-Length: 0 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-instances-index-pagination-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instances-index-pagination-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-instances-index-pagination-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instances-index-pagination-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -GET /v1.0/1234/instances?limit=2 HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-instances-index-pagination-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instances-index-pagination-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-instances-index-pagination-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instances-index-pagination-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ -{ - "instances": [ - { - "datastore": { - "type": "mysql", - "version": "5.5" - }, - "flavor": { - "id": "1", - "links": [ - { - "href": "https://troveapi.org/v1.0/1234/flavors/1", - "rel": "self" - }, - { - "href": "https://troveapi.org/flavors/1", - "rel": "bookmark" - } - ] - }, - "hostname": "e09ad9a3f73309469cf1f43d11e79549caf9acf2.troveexampledb.com", - "id": "43a6ea86-e959-4735-9e46-a6a5d4a2d80f", - "links": [ - { - "href": "https://troveapi.org/v1.0/1234/instances/43a6ea86-e959-4735-9e46-a6a5d4a2d80f", - "rel": "self" - }, - { - "href": "https://troveapi.org/instances/43a6ea86-e959-4735-9e46-a6a5d4a2d80f", - "rel": "bookmark" - } - ], - "name": "The Third Instance", - "status": "ACTIVE", - "volume": { - "size": 2 - } - }, - { - "datastore": { - "type": "mysql", - "version": "5.5" - }, - "flavor": { - "id": "1", - "links": [ - { - "href": "https://troveapi.org/v1.0/1234/flavors/1", - "rel": "self" - }, - { - "href": "https://troveapi.org/flavors/1", - "rel": "bookmark" - } - ] - }, - "hostname": "e09ad9a3f73309469cf1f43d11e79549caf9acf2.troveexampledb.com", - "id": "44b277eb-39be-4921-be31-3d61b43651d7", - "links": [ - { - "href": "https://troveapi.org/v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7", - "rel": "self" - }, - { - "href": "https://troveapi.org/instances/44b277eb-39be-4921-be31-3d61b43651d7", - "rel": "bookmark" - } - ], - "name": "json_rack_instance", - "status": "ACTIVE", - "volume": { - "size": 2 - } - } - ] -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-instances-index-pagination-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instances-index-pagination-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-instances-index-pagination-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instances-index-pagination-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 1251 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-instances-index-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instances-index-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-instances-index-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instances-index-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -GET /v1.0/1234/instances HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-instances-index-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instances-index-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-instances-index-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instances-index-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,41 +0,0 @@ -{ - "instances": [ - { - "datastore": { - "type": "mysql", - "version": "5.5" - }, - "flavor": { - "id": "1", - "links": [ - { - "href": "https://troveapi.org/v1.0/1234/flavors/1", - "rel": "self" - }, - { - "href": "https://troveapi.org/flavors/1", - "rel": "bookmark" - } - ] - }, - "hostname": "e09ad9a3f73309469cf1f43d11e79549caf9acf2.troveexampledb.com", - "id": "44b277eb-39be-4921-be31-3d61b43651d7", - "links": [ - { - "href": "https://troveapi.org/v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7", - "rel": "self" - }, - { - "href": "https://troveapi.org/instances/44b277eb-39be-4921-be31-3d61b43651d7", - "rel": "bookmark" - } - ], - "name": "json_rack_instance", - "status": "ACTIVE", - "volume": { - "size": 2 - } - } - ] -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-instances-index-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instances-index-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-instances-index-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instances-index-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 633 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-instance-status-detail-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instance-status-detail-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-instance-status-detail-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instance-status-detail-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -GET /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7 HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-instance-status-detail-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instance-status-detail-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-instance-status-detail-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instance-status-detail-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ -{ - "instance": { - "created": "2014-10-30T12:30:00", - "datastore": { - "type": "mysql", - "version": "5.5" - }, - "flavor": { - "id": "1", - "links": [ - { - "href": "https://troveapi.org/v1.0/1234/flavors/1", - "rel": "self" - }, - { - "href": "https://troveapi.org/flavors/1", - "rel": "bookmark" - } - ] - }, - "hostname": "e09ad9a3f73309469cf1f43d11e79549caf9acf2.troveexampledb.com", - "id": "44b277eb-39be-4921-be31-3d61b43651d7", - "links": [ - { - "href": "https://troveapi.org/v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7", - "rel": "self" - }, - { - "href": "https://troveapi.org/instances/44b277eb-39be-4921-be31-3d61b43651d7", - "rel": "bookmark" - } - ], - "name": "json_rack_instance", - "status": "ACTIVE", - "updated": "2014-10-30T12:30:00", - "volume": { - "size": 2, - "used": 0.16 - } - } -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-instance-status-detail-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instance-status-detail-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-instance-status-detail-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-instance-status-detail-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 712 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-list-databases-pagination-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-list-databases-pagination-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-list-databases-pagination-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-list-databases-pagination-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -GET /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7/databases?limit=1 HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-list-databases-pagination-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-list-databases-pagination-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-list-databases-pagination-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-list-databases-pagination-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,14 +0,0 @@ -{ - "databases": [ - { - "name": "anotherdb" - } - ], - "links": [ - { - "href": "https://troveapi.org/v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7/databases?limit=1&marker=anotherdb", - "rel": "next" - } - ] -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-list-databases-pagination-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-list-databases-pagination-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-list-databases-pagination-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-list-databases-pagination-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 192 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-list-databases-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-list-databases-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-list-databases-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-list-databases-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -GET /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7/databases HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-list-databases-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-list-databases-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-list-databases-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-list-databases-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ -{ - "databases": [ - { - "name": "anotherdb" - }, - { - "name": "nextround" - }, - { - "name": "oneMoreDB" - }, - { - "name": "sampledb" - }, - { - "name": "testingdb" - } - ] -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-list-databases-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-list-databases-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-list-databases-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-list-databases-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 129 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-list-user-access-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-list-user-access-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-list-user-access-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-list-user-access-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -GET /v1.0/1234/instances/692d8418-7a8f-47f1-8060-59846c6e024f/users/exampleuser/databases HTTP/1.1 -User-Agent: python-example-client -Host: ord.databases.api.rackspacecloud.com -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-list-user-access-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-list-user-access-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-list-user-access-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-list-user-access-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ -{ - "databases": [ - { - "name": "databaseA" - }, - { - "name": "databaseB" - } - ] -} \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-list-user-access-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-list-user-access-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-list-user-access-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-list-user-access-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 0 -Date: Wed, 27 Jun 2012 23:11:19 GMT \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-list-user-dbs-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-list-user-dbs-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-list-user-dbs-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-list-user-dbs-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -GET /v1.0/1234/instances/692d8418-7a8f-47f1-8060-59846c6e024f/users/exampleuser HTTP/1.1 -User-Agent: python-example-client -Host: ord.databases.api.rackspacecloud.com -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-list-user-dbs-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-list-user-dbs-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-list-user-dbs-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-list-user-dbs-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,13 +0,0 @@ -{ - "user": { - "name": "exampleuser", - "databases": [ - { - "name": "databaseA" - }, - { - "name": "databaseB" - } - ] - } -} \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-list-user-dbs-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-list-user-dbs-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-list-user-dbs-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-list-user-dbs-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 0 -Date: Wed, 27 Jun 2012 23:11:19 GMT \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-list-users-pagination-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-list-users-pagination-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-list-users-pagination-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-list-users-pagination-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -GET /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7/users?limit=2 HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-list-users-pagination-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-list-users-pagination-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-list-users-pagination-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-list-users-pagination-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ -{ - "links": [ - { - "href": "https://troveapi.org/v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7/users?limit=2&marker=dbuser2%2540%2525", - "rel": "next" - } - ], - "users": [ - { - "databases": [ - { - "name": "databaseA" - } - ], - "host": "%", - "name": "dbuser1" - }, - { - "databases": [ - { - "name": "databaseB" - }, - { - "name": "databaseC" - } - ], - "host": "%", - "name": "dbuser2" - } - ] -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-list-users-pagination-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-list-users-pagination-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-list-users-pagination-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-list-users-pagination-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 336 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-list-users-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-list-users-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-list-users-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-list-users-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -GET /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7/users HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-list-users-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-list-users-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-list-users-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-list-users-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ -{ - "users": [ - { - "databases": [ - { - "name": "databaseA" - } - ], - "host": "%", - "name": "dbuser1" - }, - { - "databases": [ - { - "name": "databaseB" - }, - { - "name": "databaseC" - } - ], - "host": "%", - "name": "dbuser2" - }, - { - "databases": [ - { - "name": "databaseD" - } - ], - "host": "%", - "name": "dbuser3" - }, - { - "databases": [ - { - "name": "sampledb" - } - ], - "host": "%", - "name": "demouser" - } - ] -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-list-users-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-list-users-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-list-users-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-list-users-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 322 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-get-account-details-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-get-account-details-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-get-account-details-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-get-account-details-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -GET /v1.0/1234/mgmt/accounts/3000 HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-get-account-details-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-get-account-details-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-get-account-details-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-get-account-details-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,9 +0,0 @@ -{ - "account": { - "id": "3000", - "instance_ids": [ - "44b277eb-39be-4921-be31-3d61b43651d7" - ] - } -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-get-account-details-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-get-account-details-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-get-account-details-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-get-account-details-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 85 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-get-host-detail-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-get-host-detail-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-get-host-detail-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-get-host-detail-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -GET /v1.0/1234/mgmt/hosts/hostname_1 HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-get-host-detail-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-get-host-detail-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-get-host-detail-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-get-host-detail-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -{ - "host": { - "instances": [ - { - "id": "44b277eb-39be-4921-be31-3d61b43651d7", - "name": "44b277eb-39be-4921-be31-3d61b43651d7-lay", - "server_id": "44b277eb-39be-4921-be31-3d61b43651d7", - "status": "ACTIVE", - "tenant_id": "3000" - } - ], - "name": "hostname_1", - "percentUsed": 12, - "totalRAM": 32000, - "usedRAM": 4096 - } -} diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-get-host-detail-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-get-host-detail-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-get-host-detail-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-get-host-detail-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 302 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-get-instance-details-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-get-instance-details-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-get-instance-details-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-get-instance-details-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -GET /v1.0/1234/mgmt/instances/44b277eb-39be-4921-be31-3d61b43651d7 HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-get-instance-details-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-get-instance-details-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-get-instance-details-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-get-instance-details-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,80 +0,0 @@ -{ - "instance": { - "created": "2014-10-30T12:30:00", - "datastore": { - "type": "mysql", - "version": "5.5" - }, - "deleted": false, - "deleted_at": null, - "flavor": { - "id": "3", - "links": [ - { - "href": "https://troveapi.org/v1.0/1234/flavors/3", - "rel": "self" - }, - { - "href": "https://troveapi.org/flavors/3", - "rel": "bookmark" - } - ] - }, - "guest_status": { - "state_description": "running" - }, - "hostname": "e09ad9a3f73309469cf1f43d11e79549caf9acf2.troveexampledb.com", - "id": "44b277eb-39be-4921-be31-3d61b43651d7", - "links": [ - { - "href": "https://troveapi.org/v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7", - "rel": "self" - }, - { - "href": "https://troveapi.org/instances/44b277eb-39be-4921-be31-3d61b43651d7", - "rel": "bookmark" - } - ], - "name": "json_rack_instance", - "root_enabled": "2014-10-30T12:30:00", - "root_enabled_by": "3000", - "server": { - "addresses": { - "private": [ - { - "addr": "123.123.123.123" - } - ] - }, - "deleted": false, - "deleted_at": null, - "host": "hostname_1", - "id": "44b277eb-39be-4921-be31-3d61b43651d7", - "local_id": 0, - "name": "44b277eb-39be-4921-be31-3d61b43651d7-lay", - "status": "ACTIVE", - "tenant_id": "3000" - }, - "service_status": "ACTIVE", - "status": "ACTIVE", - "task_description": "No tasks for the instance.", - "tenant_id": "3000", - "updated": "2014-10-30T12:30:00", - "volume": { - "attachments": [ - { - "device": "vdb", - "server_id": "44b277eb-39be-4921-be31-3d61b43651d7" - } - ], - "availability_zone": "fake-availability-zone", - "created_at": "2001-01-01-12:30:30", - "id": "VOL_44b277eb-39be-4921-be31-3d61b43651d7", - "size": 4, - "status": "in-use", - "total": 4.0, - "used": 0.16 - } - } -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-get-instance-details-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-get-instance-details-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-get-instance-details-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-get-instance-details-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 1533 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-get-root-details-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-get-root-details-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-get-root-details-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-get-root-details-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -GET /v1.0/1234/mgmt/instances/44b277eb-39be-4921-be31-3d61b43651d7/root HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-get-root-details-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-get-root-details-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-get-root-details-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-get-root-details-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,8 +0,0 @@ -{ - "root_history": { - "enabled": "2014-10-30T12:30:00", - "id": "44b277eb-39be-4921-be31-3d61b43651d7", - "user": "3000" - } -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-get-root-details-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-get-root-details-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-get-root-details-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-get-root-details-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 114 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-get-storage-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-get-storage-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-get-storage-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-get-storage-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -GET /v1.0/1234/mgmt/storage HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-get-storage-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-get-storage-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-get-storage-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-get-storage-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,19 +0,0 @@ -{ - "devices": [ - { - "capacity": { - "available": 90, - "total": 100 - }, - "name": "fake_storage", - "provision": { - "available": 40, - "percent": 10, - "total": 50 - }, - "type": "test_type", - "used": 10 - } - ] -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-get-storage-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-get-storage-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-get-storage-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-get-storage-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 177 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-instance-diagnostics-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-instance-diagnostics-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-instance-diagnostics-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-instance-diagnostics-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -GET /v1.0/1234/mgmt/instances/44b277eb-39be-4921-be31-3d61b43651d7/diagnostics HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-instance-diagnostics-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-instance-diagnostics-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-instance-diagnostics-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-instance-diagnostics-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,12 +0,0 @@ -{ - "diagnostics": { - "fdSize": 64, - "threads": 2, - "version": "1", - "vmHwm": 2872, - "vmPeak": 29160, - "vmRss": 2872, - "vmSize": 29096 - } -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-instance-diagnostics-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-instance-diagnostics-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-instance-diagnostics-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-instance-diagnostics-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 125 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-instance-index-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-instance-index-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-instance-index-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-instance-index-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -GET /v1.0/1234/mgmt/instances?deleted=false HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-instance-index-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-instance-index-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-instance-index-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-instance-index-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,58 +0,0 @@ -{ - "instances": [ - { - "created": "2014-10-30T12:30:00", - "datastore": { - "type": "mysql", - "version": "5.5" - }, - "deleted": false, - "deleted_at": null, - "flavor": { - "id": "3", - "links": [ - { - "href": "https://troveapi.org/v1.0/1234/flavors/3", - "rel": "self" - }, - { - "href": "https://troveapi.org/flavors/3", - "rel": "bookmark" - } - ] - }, - "hostname": "e09ad9a3f73309469cf1f43d11e79549caf9acf2.troveexampledb.com", - "id": "44b277eb-39be-4921-be31-3d61b43651d7", - "links": [ - { - "href": "https://troveapi.org/v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7", - "rel": "self" - }, - { - "href": "https://troveapi.org/instances/44b277eb-39be-4921-be31-3d61b43651d7", - "rel": "bookmark" - } - ], - "name": "json_rack_instance", - "server": { - "deleted": false, - "deleted_at": null, - "host": "hostname_1", - "id": "44b277eb-39be-4921-be31-3d61b43651d7", - "local_id": 0, - "name": "44b277eb-39be-4921-be31-3d61b43651d7-lay", - "status": "ACTIVE", - "tenant_id": "3000" - }, - "service_status": "ACTIVE", - "status": "ACTIVE", - "task_description": "No tasks for the instance.", - "tenant_id": "3000", - "updated": "2014-10-30T12:30:00", - "volume": { - "size": 4 - } - } - ] -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-instance-index-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-instance-index-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-instance-index-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-instance-index-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 1082 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-list-accounts-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-list-accounts-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-list-accounts-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-list-accounts-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -GET /v1.0/1234/mgmt/accounts HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-list-accounts-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-list-accounts-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-list-accounts-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-list-accounts-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,9 +0,0 @@ -{ - "accounts": [ - { - "id": "3000", - "num_instances": 1 - } - ] -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-list-accounts-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-list-accounts-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-list-accounts-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-list-accounts-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 50 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-list-hosts-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-list-hosts-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-list-hosts-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-list-hosts-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -GET /v1.0/1234/mgmt/hosts HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-list-hosts-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-list-hosts-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-list-hosts-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-list-hosts-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,13 +0,0 @@ -{ - "hosts": [ - { - "instanceCount": 1, - "name": "hostname_1" - }, - { - "instanceCount": 0, - "name": "hostname_2" - } - ] -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-list-hosts-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-list-hosts-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-mgmt-list-hosts-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-mgmt-list-hosts-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 101 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-restore-delete-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-restore-delete-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-restore-delete-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-restore-delete-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -DELETE /v1.0/1234/instances/d5a9db64-7ef7-41c5-8e1e-4013166874bc HTTP/1.1 -User-Agent: python-troveclient -Host: troveapi.org -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-restore-delete-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-restore-delete-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-restore-delete-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-restore-delete-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -HTTP/1.1 202 Accepted -Content-Type: application/json -Content-Length: 0 -Date: Mon, 18 Mar 2013 19:09:17 GMT - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-revoke-user-access-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-revoke-user-access-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-revoke-user-access-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-revoke-user-access-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -DELETE /v1.0/1234/instances/692d8418-7a8f-47f1-8060-59846c6e024f/users/exampleuser/databases/databaseC HTTP/1.1 -User-Agent: python-example-client -Host: ord.databases.api.rackspacecloud.com -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-revoke-user-access-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-revoke-user-access-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-revoke-user-access-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-revoke-user-access-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -HTTP/1.1 202 Accepted -Content-Type: application/json -Content-Length: 0 -Date: Wed, 27 Jun 2012 23:11:19 GMT \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-version-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-version-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-version-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-version-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -GET /v1.0/ HTTP/1.1 -User-Agent: python-example-client -Host: ord.databases.api.rackspacecloud.com -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-version-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-version-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-version-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-version-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,13 +0,0 @@ -{ - "version": { - "id": "v1.0", - "links": [ - { - "href": "https://ord.databases.api.rackspacecloud.com/v1.0/", - "rel": "self" - } - ], - "status": "CURRENT", - "updated": "2012-01-01T00:00:00Z" - } -} \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-version-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-version-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-version-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-version-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 150 -Date: Wed, 25 Jan 2012 21:53:04 GMT \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-versions-request-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-versions-request-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-versions-request-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-versions-request-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -GET / HTTP/1.1 -User-Agent: python-example-client -Host: ord.databases.api.rackspacecloud.com -X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 -Accept: application/json -Content-Type: application/json \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-versions-response.json openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-versions-response.json --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-versions-response.json 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-versions-response.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -{ - "versions": [ - { - "id": "v1.0", - "links": [ - { - "href": "https://ord.databases.api.rackspacecloud.com/v1.0/", - "rel": "self" - } - ], - "status": "CURRENT", - "updated": "2012-01-01T00:00:00Z" - } - ] -} \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/apidocs/src/samples/db-versions-response-json.txt openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-versions-response-json.txt --- openstack-trove-6.0.0~b2/apidocs/src/samples/db-versions-response-json.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/samples/db-versions-response-json.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 153 -Date: Wed, 25 Jan 2012 21:53:04 GMT \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/apidocs/src/xsd/common.ent openstack-trove-6.0.0~b3~dev119/apidocs/src/xsd/common.ent --- openstack-trove-6.0.0~b2/apidocs/src/xsd/common.ent 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/xsd/common.ent 1970-01-01 00:00:00.000000000 +0000 @@ -1,72 +0,0 @@ - - - - -GET'> -PUT'> -POST'> -DELETE'> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '> - - - - - - '> - - - - - - '> diff -Nru openstack-trove-6.0.0~b2/apidocs/src/xsd/dbaas.wadl openstack-trove-6.0.0~b3~dev119/apidocs/src/xsd/dbaas.wadl --- openstack-trove-6.0.0~b2/apidocs/src/xsd/dbaas.wadl 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/xsd/dbaas.wadl 1970-01-01 00:00:00.000000000 +0000 @@ -1,1592 +0,0 @@ - - - %common; - - -]> - - - - - - - - - - - - - - - The account ID of the owner of the specified - instance. - - - - - - - - The instance ID for the specified - database instance. - - - - - - - - - - - - - - The name for the specified - database. - - - - - - - - - - - The name for the specified - user. - - - - - - - - - The name for the specified - database. - - - - - - - - - - - - - - - - - - The flavor ID for the specified - flavor. - - - - - - - - - - - - - Returns detailed information about - the specified version of the API. - This operation returns detailed information about - the specified version of the API. - - - - - The - following example shows the List Version - Details requests: - - - - - - - - - The - following example shows the List Version - Details responses: - - - - - &commonFaults; &getFaults; - - - - Lists information about all - versions of the API. - This operation lists information about all versions - of the API. - - - - - The - following example shows the List Versions - requests: - - - - - - - - The - following example shows the List Versions - responses: - - - - - &commonFaults; &getFaults; - - - - - Creates a new database - instance. - This operation asynchronously provisions a new - database instance. This call requires the user to - specify a flavor and a - volume size. The service - then provisions the instance with the requested flavor - and sets up a volume of the specified size, which is - the storage for the database instance. - Notes - - You can create only one database - instance per POST - request. - - - You can create a database instance with - one or more databases, and users - associated to those databases. - - - The default binding for the MySQL - instance is port 3306. - - - The following table lists the required and optional - attributes for Create Instance: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Required and Optional Attributes for Create - Instance
Applies ToNameDescriptionRequired
InstanceflavorRefReference (href) to a - flavor as specified in the response - from the List Flavors API call. This - is the actual URI as specified by the - href field in the link. Refer to the - List Flavors response examples that - follow for an example of the - flavorRef. - Rather than the flavor URI, - you can also pass the flavor id - (integer) as the value for - flavorRef. - Refer to for details.Yes
(volume) sizeSpecifies the volume size in - gigabytes (GB). The value specified must - be between 1 and 50.Yes
nameName of the instance to - create. The length of the name is limited - to 255 characters and any characters are - permitted.No
DatabasenameSpecifies - database names - for creating databases on instance - creation. Refer to for the required json format.No
character_setSet of symbols and encodings. - The default character set is - utf8.No
collateSet of rules for comparing - characters in a character set. The default - value for collate is - utf8_general_ci.No
UsernameSpecifies user name for the - database on instance creation. Refer to - for the required json format.No
passwordSpecifies password for those - users on instance creation. Refer to for the required json format.No
(database) nameSpecifies names of databases - that those users can access on instance - creation. Refer to for the required json format.No
- Refer to - for a list of possible database instance statuses that - may be returned. -
- - - - The - following example shows the Create Database - Instance requests and responses: - - - - - - - - - - - For - convenience, notice in the response examples - above that resources contain links to - themselves. This allows a client to easily - obtain resource URIs rather than to construct - them. There are two kinds of link relations - associated with resources. A self - link contains a versioned - link to the resource. These links should be - used in cases where the link will be followed - immediately. A bookmark link - provides a permanent link to a resource that - is appropriate for long term storage. - - - &commonFaults; &getFaults;
- - - - Deletes the specified database - instance. - This operation deletes the specified database - instance, including any associated data. - Refer to - for a list of possible database instance statuses that - may be returned. - This operation is not allowed when the - instance status is - BUILD. - - - - - The - following example shows the Delete Database - Instance requests: - - - - - &commonFaults; - - - The - following example shows the Delete Database - Instance responses: - - - - &getFaults; - - - - Lists the status and information - for all database instances. - This operation lists the status and information for - all database instances. - Refer to - for a list of possible database instance statuses that - may be returned. - - - - - The - following example shows the List All Database - Instances Detail requests: - - - - - - - - The - following example shows the List All Database - Instances responses: - - - - - &commonFaults; &getFaults; - - - - - Lists status and details for a - specified database instance. - This operation lists the status and details of the - specified database instance. - This operation lists the volume size in gigabytes - (GB) and the approximate GB used. - After instance creation, the used - size of your volume will be greater than 0. This - is expected and due to the automatic creation of - non-empty transaction logs for mysql optimization. - The used attribute is - not returned in the - response when the status for the instance is - BUILD, REBOOT, RESIZE, or ERROR. - - Refer to - for a list of possible database instance statuses that - may be returned. - The list operations return a DNS-resolvable hostname - associated with the database instance instead of an IP - address. Since the hostname always resolves to the - correct IP address of the database instance, this - relieves the user from the task of maintaining the - mapping. Note that although the IP address may likely - change on resizing, migrating, and so forth, the - hostname always resolves to the correct database - instance. - - - - - The - following example shows the List Database - Instance Status and Details requests: - - - - - - - - The - following example shows the List Database - Instance Status and Details responses: - - - - - &commonFaults; &getFaults; - - - - - Restart the database service on the - instance. - The restart operation restarts only the MySQL - instance. Restarting MySQL erases any dynamic - configuration settings that you have made within - MySQL. - The MySQL service is unavailable until the - instance restarts. - This operation returns a 202 Accepted - response. - - - - - The - following example shows the Restart Instance - requests: - - - - - - - - - The - following example shows the Restart Instance - responses: - - - - &commonFaults; &getFaults; &postPutFaults; - - - - Resize the memory of the - instance. - This operation changes the memory size of the - instance, assuming a valid flavorRef is provided. - Restarts MySQL in the process. - - - - - The - following example shows the Resize Instance - requests: - - - - - - - - - The - following example shows the Resize Instance - responses: - - - - &commonFaults; &getFaults; &postPutFaults; - - - - Resize the - volume attached to the - Instance. - This operation supports resizing the attached volume - for an instance. It supports only increasing the - volume size and does not support decreasing the size. - The volume size is in gigabytes (GB) and must be an - integer. - You cannot increase the volume to a size - larger than the API volume size limit - specifies. - This operation returns a 202 Accepted - response. - - - - - The - following example shows the Resize Instance - Volume requests: - - - - - - - - - The - following example shows the Resize Instance - Volume responses: - - - - &commonFaults; &getFaults; &postPutFaults; - - - - - Creates a new - database within the - specified instance. - This operation creates a new database within the - specified instance. - The name of the database is a required - attribute. - The following additional attributes can be specified - for each database: collate and - character_set. - - - - - - - - - - - - - - - - - - - - - - - - - - -
Required and Optional Attributes for Create - Database
NameDescriptionRequired
nameSpecifies the database name - for creating the database. Refer to the - request examples for the required json - format.Yes
character_setSet of symbols and encodings. - The default character set is - utf8.No
collateSet of rules for comparing - characters in a character set. The default - value for collate is - utf8_general_ci.No
- See the MySQL documentation for information about - supported character sets and collations at http://dev.mysql.com/doc/refman/5.1/en/charset-mysql.html. - The following database names are reserved and - cannot be used for creating databases: lost+found, - information_schema, and mysql. - Refer to the following tables for information about - characters that are valid/invalid for creating - database names. - - - - - - - - - - - - - - - - - - - - - - -
Valid Characters That Can Be Used in a - Database Name
Character
Letters (upper and lower cases - allowed)
Numbers
'@', '?', '#', and spaces are allowed, but - not at the - beginning and end of the database - name
'_' is allowed anywhere in the database - name
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Characters That Cannot - Be Used in a Database Name
Character
Single quotes
Double quotes
Back quotes
Semicolons
Commas
Backslashes
Forward slashes
- - - - - - - - - - - - - - -
Length Restrictions for Database - Name
RestrictionValue
Database-name maximum length64
-
- - - - The - following example shows the Create Database - requests: - - - - - - - - - The - following example shows the Create Database - responses: - - - - &commonFaults; &getFaults;
- - - - - Lists databases for the specified - instance. - This operation lists the databases for the specified - instance. - This operation returns only the user-defined - databases, not the system databases. The system - databases (mysql, information_schema, lost+found) - can only be viewed by a database - administrator. - - - - - The - following example shows the List Databases for - Instance requests: - - - - - - - The - following example shows the - paginated List - Databases for Instance requests: - - - - - - - - The - following example shows the List Databases for - Instance responses: - - - - - - - - The - following example shows the - paginated List - Databases for Instance responses: - - - - - &commonFaults; &getFaults; - - - - Deletes the specified - database. - This operation deletes the requested database within - the specified database instance. Note that all data - associated with the database is also deleted. - - - - - The - following example shows the Delete Database - requests: - - - - - - - - The - following example shows the Delete Database - responses: - - - - &commonFaults; &getFaults; - - - - - Creates a user for the specified - database instance. - This operation asynchronously provisions a new user - for the specified database instance based on the - configuration defined in the request object. Once the - request is validated and progress has started on the - provisioning process, a 202 Accepted response object - is returned. - Writer: please add the following note back into - the doc once the List User Details call is added back - into the API: Using the identifier, the caller can - check on the progress of the operation by performing a - GET on users/name (for more details on this operation - see the "List User Details" section of this - document). - If the corresponding request cannot be fulfilled due - to insufficient or invalid data, an HTTP 400 "Bad - Request" error response is returned with information - regarding the nature of the failure. Failures in the - validation process are non-recoverable and require the - caller to correct the cause of the failure and POST - the request again. - The following table lists the required attributes - for Create User. Refer to the request examples for the - required json format: - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Required Attributes for Create User
Applies ToNameDescriptionRequired
UsernameName of the user for the - database.Yes
passwordUser password for database - access.Yes
(database) nameName of the database - that the user can access. One or more - database names must be - specified.No
- Notes - - A user is granted all privileges on the - specified databases. - - - The following user name is reserved and - cannot be used for creating users: - root. - - - Refer to the following tables for information about - characters that are valid/invalid for creating - database names, user names, and passwords. - - - - - - - - - - - - - - - - - - - - - - -
Valid Characters That Can Be Used in a - Database Name, User Name, and Password
Character
Letters (upper and lower cases - allowed)
Numbers
'@', '?', '#', and spaces are allowed, but - not at the - beginning and end of the database name, - user name, and password
"_" is allowed anywhere in the database - name, user name, and password
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Characters That Cannot - Be Used in a Database Name, User Name, and - Password
Character
Single quotes
Double quotes
Back quotes
Semicolons
Commas
Backslashes
Forward slashes
Spaces at the front or end of the user - name or password
- - - - - - - - - - - - - - - - - - - - - - -
Length Restrictions for Database Name, User - Name, and Password
RestrictionValue
Database name maximum length64
User name maximum length16
Password maximum lengthunlimited (no restrictions)
-
- - - - The - following example shows the Create User - requests: - - - - - - - - - The - following example shows the Create User - responses: - - - - &commonFaults; &getFaults;
- - - - - Lists the users in the specified - database instance. - This operation lists the users in the specified - database instance, along with the associated databases - for that user. - This operation does not return the system - users (database administrators that administer the - health of the database). Also, this operation - returns the "root" user only if "root" user has - been enabled. - The following notes apply to MySQL users: - - - User names can be up to 16 characters - long. - - - When you create accounts with INSERT, you - must use FLUSH PRIVILEGES to tell the server - to reload the grant tables. - - - For additional information, refer to: http://dev.mysql.com/doc/refman/5.1/en/user-account-management.html - - - - - - - The - following example shows the List Users in - Database Instance requests: - - - - - - - The - following example shows the - paginated List Users - in Database Instance requests: - - - - - - - - The - following examples show the List Users in - Database Instance responses: - - - - - - - - The - following example shows the - paginated List Users - in Database Instance responses: - - - - - - &commonFaults; &getFaults; - - - - Changes the MySQL password of one - or more users. - This operation changes the MySQL password of one or - more users. - For information about choosing a valid - password, please refer to for details. - - - - - The - following example shows the Change User(s) - Password requests: - - - - - - - - - - The - following examples show the Change User(s) - Password responses: - - - - &commonFaults; &getFaults; - - - - - Deletes the user identified by - {name} for the specified database instance. - This operation deletes the specified user for the - specified database instance. - There is a bug in a python library that - development is using that may cause incorrect user - deletions to occur if a period (.) is used in the - user name. In this case, the user name is - truncated to remove the portion of the name from - the period to the end, leaving only the portion - from the beginning up to the period. For example, - for a user named "my.userA", the bug would - truncate the user name to "my", and if the user - "my" exists, that user will be incorrectly - deleted. To avoid the problem, do not use periods - in user names. - - - - - The - following example shows the Delete User - requests: - - - - - - - - The - following example shows the Delete User - responses: - - - - &commonFaults; &getFaults; - - - - Lists the specified user's name and - a list of databases that the user can access. - This operation lists the specified user's name and a - list of databases that the user can access. - - - - - The - following example shows the List User - requests: - - - - - - - - The - following examples show the List User - responses: - - - - - &commonFaults; &getFaults; - - - - Shows a list of all databases a - user has access to. - This operation shows a list of all databases a user - has access to. - - - - - The - following example shows the List User Access - requests: - - - - - - - - The - following example shows the List User Access - responses: - - - - - &commonFaults; &getFaults; - - - - Grant access for the specified user - to one or more databases for the specified - instance. - This operation grants access for the specified user - to one or more databases for the specified instance. - The user is granted ALL privileges on the database. - Refer to the information at the beginning of for more details on - access. - - - - - The - following example shows the Grant User Access - requests: - - - - - - - - - The - following example shows the Grant User Access - responses: - - - - &commonFaults; &getFaults; - - - - Remove access to the specified - database for the specified user. - This operation removes access to the specified - database for the specified user. - - - - - The - following example shows the Revoke User Access - requests: - - - - - - - - The - following example shows the Revoke User Access - responses: - - - - &commonFaults; &getFaults; - - - - - Enables the root user for the - specified database instance and returns the root - password. - This operation enables login from any host for the - root user and provides the user with a generated root - password. - Changes you make as a root user may cause - detrimental effects to the database instance and - unpredictable behavior for API operations. When - you enable the root user, you accept the - possibility that we will not be able to support - your database instance. While enabling root does - not prevent us from a “best effort” approach to - helping you if something goes wrong with your - instance, we cannot ensure that we will be able to - assist you if you change core MySQL settings. - These changes can be (but are not limited to) - turning off binlogs, removing users that we use to - access your instance, and so forth. - - - - - The - following example shows the Enable Root User - requests: - - - - - - - - - The - following example shows the Enable Root User - responses: - - - - - &commonFaults; &getFaults; - - - - Returns true if root user is - enabled for the specified database instance or false - otherwise. - This operation checks an active specified database - instance to see if root access is enabled. It returns - True if root user is enabled for the specified - database instance or False otherwise. - - - - - The - following example shows the Check Root User - Access requests: - - - - - - - - The - following example shows the Check Root User - Access responses: - - - - - &commonFaults; &getFaults; - - - - - Lists information for all available - flavors. - This operation lists information for all available - flavors. - This resource is identical to the flavors found in - the OpenStack Nova API, but without the disk - property. - - - - - The - following example shows the List Flavors - requests: - - - - - - - - The - following example shows the List Flavors - responses: - - - - - &commonFaults; &getFaults; - - - - Lists all flavor information about - the specified flavor ID. - This operation lists all information for the - specified flavor ID with details of the RAM. - This resource is identical to the flavors found in - the OpenStack Nova API, but without the disk - property. - The flavorId parameter should be an integer. - If a floating point value is used for the flavorId - parameter, the decimal portion is truncated and - the integer portion is used as the value of the - flavorId. - Reviewer / Writer: need to - confirm that this behavior is not changed in - subsequent releases, and if it is prevented, remove - the Note above. - - - - - The - following example shows the List Flavor By ID - requests: - - - - - - - - The - following example shows the List Flavor By ID - responses: - - - - - &commonFaults; &getFaults; -
diff -Nru openstack-trove-6.0.0~b2/apidocs/src/xsd/dbaas.xsd openstack-trove-6.0.0~b3~dev119/apidocs/src/xsd/dbaas.xsd --- openstack-trove-6.0.0~b2/apidocs/src/xsd/dbaas.xsd 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/xsd/dbaas.xsd 1970-01-01 00:00:00.000000000 +0000 @@ -1,615 +0,0 @@ - - - - - - - - DBaaS - - -

- This is the main index XML Schema document - for DBaaS API Schema Types Version 1.0. -

-
-
- - - - -

A MySQL User.

-
-
-
- - - -

A MySQL User.

-
-
-
- - - -

A Database Instance.

-
-
-
- - - -

Database Instances.

-
-
-
- - - -

Settings such as memory used to create a database instance.

-
-
-
- - - -

A list of flavors.

-
-
-
- - - -

A Database.

-
-
-
- - - -

List of Databases.

-
-
-
- - - -

Restart the Database

-
-
-
- - - -

Resize an Instance

-
-
-
- - - - - - - -

A list of database user names.

-
-
-
-
-
- - - - - - -

A list of databases.

-
-
-
-
- - - -

The name for the user.

-
-
-
- - - -

The password for the user.

-
-
-
- - - -

The status of the user.

-
-
-
-
- - - - - - -

A list of database instances.

-
-
-
-
-
- - - - - - -

A list of optional databases.

-
-
-
- - - -

A list of optional users.

-
-
-
- - - -

The links for the type of instance.

-
-
-
- - - -

The volume attached to the instance.

-
-
-
-
- - - -

A unique database instance id.

-
-
-
- - - -

Date/Time the instance was created.

-
-
-
- - - -

Date/Time the instance was last updated.

-
-
-
- - - -

The name for the instance.

-
-
-
- - - -

The flavor reference of the instance.

-
-
-
- - - -

The status of the instance.

-
-
-
- - - -

The hostname attached to the instance.

-
-
-
- - - -

Whether or not root is enabled for the instance.

-
-
-
-
- - - - - -

The type of link.

-
-
-
- - - -

The URL.

-
-
-
- - - -

The type of link.

-
-
-
-
- - - - - - -

A list of flavors.

-
-
-
-
-
- - - - - - -

A list of links.

-
-
-
-
- - - -

A unique flavor id.

-
-
-
- - - -

The name for the instance.

-
-
-
- - - -

The RAM in megabytes.

-
-
-
-
- - - - - - -

A list of links.

-
-
-
-
-
- - - - - - -

A list of databases.

-
-
-
-
-
- - - - - -

The Database character set.

-
-
-
- - - -

The name for the instance.

-
-
-
- - - -

The Collation type of the database.

-
-
-
-
- - - - - -

Whether or not root is enabled for the given instance.

-
-
-
-
- - - - - -

Size of the volume in GBs.

-
-
-
- - - -

Used space on the attached volume in GBs.

-
-
-
-
- - - - - -

A unique flavor id.

-
-
-
-
- - - - - - -

The volume attached to the instance.

-
-
-
- - - -

New flavorRef to size the instance.

-
-
-
-
-
- - - - - -

The instance status.

-
-
- - - - -

Healthy status.

-
-
-
- - - -

Down status.

-
-
-
- - - -

unavailable status.

-
-
-
-
-
- - - - -

The mysql user status.

-
-
- - - - -

Enabled status.

-
-
-
-
-
- - - - - - - - - - - - - - - - - - - - -

- A human readable message that is appropriate for display - to the end user. -

-
-
-
- - - -

- The optional <details> element may contain useful - information for tracking down errors (e.g a stack - trace). This information may or may not be appropriate - for display to an end user. -

-
-
-
- -
- - - -

- The HTTP status code associated with the current fault. -

-
-
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

- An optional dateTime denoting when an operation should - be retried. -

-
-
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
diff -Nru openstack-trove-6.0.0~b2/apidocs/src/xslts/js/shjs/sh_java.js openstack-trove-6.0.0~b3~dev119/apidocs/src/xslts/js/shjs/sh_java.js --- openstack-trove-6.0.0~b2/apidocs/src/xslts/js/shjs/sh_java.js 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/xslts/js/shjs/sh_java.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,337 +0,0 @@ -if (! this.sh_languages) { - this.sh_languages = {}; -} -sh_languages['java'] = [ - [ - [ - /\b(?:import|package)\b/g, - 'sh_preproc', - -1 - ], - [ - /\/\/\//g, - 'sh_comment', - 1 - ], - [ - /\/\//g, - 'sh_comment', - 7 - ], - [ - /\/\*\*/g, - 'sh_comment', - 8 - ], - [ - /\/\*/g, - 'sh_comment', - 9 - ], - [ - /\b[+-]?(?:(?:0x[A-Fa-f0-9]+)|(?:(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?))u?(?:(?:int(?:8|16|32|64))|L)?\b/g, - 'sh_number', - -1 - ], - [ - /"/g, - 'sh_string', - 10 - ], - [ - /'/g, - 'sh_string', - 11 - ], - [ - /(\b(?:class|interface))([ \t]+)([$A-Za-z0-9_]+)/g, - ['sh_keyword', 'sh_normal', 'sh_classname'], - -1 - ], - [ - /\b(?:abstract|assert|break|case|catch|class|const|continue|default|do|else|extends|false|final|finally|for|goto|if|implements|instanceof|interface|native|new|null|private|protected|public|return|static|strictfp|super|switch|synchronized|throw|throws|true|this|transient|try|volatile|while)\b/g, - 'sh_keyword', - -1 - ], - [ - /\b(?:int|byte|boolean|char|long|float|double|short|void)\b/g, - 'sh_type', - -1 - ], - [ - /~|!|%|\^|\*|\(|\)|-|\+|=|\[|\]|\\|:|;|,|\.|\/|\?|&|<|>|\|/g, - 'sh_symbol', - -1 - ], - [ - /\{|\}/g, - 'sh_cbracket', - -1 - ], - [ - /(?:[A-Za-z]|_)[A-Za-z0-9_]*(?=[ \t]*\()/g, - 'sh_function', - -1 - ], - [ - /([A-Za-z](?:[^`~!@#$%&*()_=+{}|;:",<.>\/?'\\[\]\^\-\s]|[_])*)((?:<.*>)?)(\s+(?=[*&]*[A-Za-z][^`~!@#$%&*()_=+{}|;:",<.>\/?'\\[\]\^\-\s]*\s*[`~!@#$%&*()_=+{}|;:",<.>\/?'\\[\]\^\-\[\]]+))/g, - ['sh_usertype', 'sh_usertype', 'sh_normal'], - -1 - ] - ], - [ - [ - /$/g, - null, - -2 - ], - [ - /(?:?)|(?:?)/g, - 'sh_url', - -1 - ], - [ - /<\?xml/g, - 'sh_preproc', - 2, - 1 - ], - [ - //g, - 'sh_keyword', - -1 - ], - [ - /<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g, - 'sh_keyword', - 6, - 1 - ], - [ - /&(?:[A-Za-z0-9]+);/g, - 'sh_preproc', - -1 - ], - [ - /<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g, - 'sh_keyword', - -1 - ], - [ - /<(?:\/)?[A-Za-z][A-Za-z0-9]*/g, - 'sh_keyword', - 6, - 1 - ], - [ - /@[A-Za-z]+/g, - 'sh_type', - -1 - ], - [ - /(?:TODO|FIXME|BUG)(?:[:]?)/g, - 'sh_todo', - -1 - ] - ], - [ - [ - /\?>/g, - 'sh_preproc', - -2 - ], - [ - /([^=" \t>]+)([ \t]*)(=?)/g, - ['sh_type', 'sh_normal', 'sh_symbol'], - -1 - ], - [ - /"/g, - 'sh_string', - 3 - ] - ], - [ - [ - /\\(?:\\|")/g, - null, - -1 - ], - [ - /"/g, - 'sh_string', - -2 - ] - ], - [ - [ - />/g, - 'sh_preproc', - -2 - ], - [ - /([^=" \t>]+)([ \t]*)(=?)/g, - ['sh_type', 'sh_normal', 'sh_symbol'], - -1 - ], - [ - /"/g, - 'sh_string', - 3 - ] - ], - [ - [ - /-->/g, - 'sh_comment', - -2 - ], - [ - //g, - 'sh_comment', - -2 - ], - [ - //g, - 'sh_comment', - -2 - ], - [ - / array of links - // - // possible types include: import, include, element, - // attribute, complextype, simpleType - // - // each link contains the following properties: - // name : the name of the link - // href : the link itself - // title : a description of the link - links : new Object(), - - // - // A single link that points to the schema index document. - // - index : null, - - // - // Our initialization function - // - _init : function() { - // - // Load the menu... - // - var controllerDiv = document.getElementById("Controller"); - var mainMenu = this._menuMarkup("mainmenu"); - - for (var linkType in this.links) - { - var subItem = this._menuItemMarkup(mainMenu, linkType, "#", null); - var subMenu = this._menuMarkup (linkType+"_subMenu"); - - var items = this.links[linkType]; - for (var i=0;i Array of sample ids. - // - samples : new Object(), - - // - // An array of code data.. - // - // Code data is defined as an object with the following - // properties: - // - // type: The mimetype of the code...href: The location of the code - // or null if it's inline - // - // id: The id of the pre that contains the code. - // - // The initial object is the source code for the current document. - // - codes : new Array({ - id : "SrcContentCode", - type : "application/xml", - href : (function() { - var ret = location.href; - if (location.hash && (location.hash.length != 0)) - { - ret = ret.replace (location.hash, ""); - } - return ret; - })() - }), - - // - // Sets up the manager, begins the loading process... - // - _init : function() { - // - // Setup an array to hold data items to load, this is used by - // the loadSample method. - // - this._toLoad = new Array(); - - for (var i=0;i -1) && - (ieVersion < 8)) - { - code = trc.util.text.unix2dos (code); - } - - var pre = document.getElementById(codeData.id); - var preNodes = pre.childNodes; - // - // Remove placeholder data... - // - while (preNodes.length != 0) - { - pre.removeChild (preNodes[0]); - } - - // - // Set the correct class type... - // - switch (codeData.type) - { - /* - Javascript mimetypes - */ - case 'application/json': - case 'application/javascript': - case 'application/x-javascript': - case 'application/ecmascript': - case 'text/ecmascript': - case 'text/javascript': - trc.util.dom.setClassName (pre, "sh_javascript"); - break; - /* - Not real mimetypes but this is what we'll use for Java. - */ - case 'application/java': - case 'text/java': - trc.util.dom.setClassName (pre, "sh_java"); - break; - default: - trc.util.dom.setClassName (pre, "sh_xml"); - break; - } - - // - // Add new code... - // - pre.appendChild (document.createTextNode (code)); - }, - - // - // Retrieves source code text - // - _getCodeText : function (codeData /* Info for the code to get*/) - { - var pre = document.getElementById(codeData.id); - pre.normalize(); - // - // Should be a single text node after pre... - // - return pre.firstChild.nodeValue; - }, - - - // - // Normalizes text by ensuring that top, bottom, right indent - // levels are equal for all samples. - // - _normalizeCodeText : function (top, /* integer, top indent in lines */ - bottom, /* integer, bottom indent in lines */ - right /* integer, right indent in spaces */ - ) - { - for (var i=0;i -1) && - (ieVersion < 7)) - { - element.className = name; - } - else - { - element.setAttribute ("class",name); - } - } -}; - -trc.util.text = { - // - // Useful RegExps - // - blank : new RegExp ("^\\s*$"), /* A blank string */ - indent : new RegExp ("^\\s+"), /* Line indent */ - lines : new RegExp ("$","m"), /* All lines */ - linechars : new RegExp ("(\n|\r)"), /* EOL line characters */ - tabs : new RegExp ("\t","g"), /* All tabs */ - - // - // We need this because microsoft browsers before IE 7, cannot - // display pre-formatted text correctly win unix style line - // endings. - // - unix2dos : function(txt /* String */) { - //if already DOS... - if (txt.search(/\r\n/) != -1) - { - return txt; - } - return txt.replace (/\n/g, "\r\n"); - }, - - // - // Useful to normalize text. - // - dos2unix : function(txt /* String */) { - //if already unix... - if (txt.search(/\r\n/) == -1) - { - return txt; - } - - return txt.replace(/\r/g, ""); - }, - - // - // Create a string with a character repeated x times. - // - repString : function (length, /* integer, size of the string to create */ - ch /* string, The character to set the string to */ - ) - { - var ret = new String(); - for (var i=0;idep. - // - _deps : new Object(), - - // - // An array of callback functions, these should be called when all - // dependencies are loaded. - // - _callbacks : new Array(), - - // - // The init function simply calls the YUI loader... - // - _init : function() { - var yuiUtil = this; - - // - // It takes safari a while to load the YUI Loader if it hasn't - // loaded yet keep trying at 1/4 second intervals - // - if (!window.YAHOO) - { - window.setTimeout (function() { - yuiUtil._init(); - }, 250); - return; - } - - // - // Collect requirements... - // - var required = new Array(); - for (var req in this._deps) - { - required.push (req); - } - - // - // Load YUI dependencies... - // - var loader = new YAHOO.util.YUILoader({ - require: required, - loadOptional: true, - filter: "RAW", - onSuccess: function() { - yuiUtil._depsLoaded(); - }, - timeout: 10000, - combine: true - }); - loader.insert(); - }, - - // - // Called after all dependencies have been loaded - // - _depsLoaded : function() { - // - // Dependencies are loaded let everyone know. - // - for (var i=0;i, + */ -pre.sh_sourceCode .sh_function { color: black; font-weight: bold; } /* function calls and declarations */ -pre.sh_sourceCode .sh_cbracket { color: red; } /* block brackets (e.g., {, }) */ -pre.sh_sourceCode .sh_todo { font-weight: bold; background-color: cyan; } /* TODO and FIXME */ - -/* Predefined variables and functions (for instance glsl) */ -pre.sh_sourceCode .sh_predef_var { color: darkblue; } -pre.sh_sourceCode .sh_predef_func { color: darkblue; font-weight: bold; } - -/* for OOP */ -pre.sh_sourceCode .sh_classname { color: teal; } - -/* line numbers (not yet implemented) */ -pre.sh_sourceCode .sh_linenum { color: black; font-family: monospace; } - -/* Internet related */ -pre.sh_sourceCode .sh_url { color: blue; text-decoration: underline; font-family: monospace; } - -/* for ChangeLog and Log files */ -pre.sh_sourceCode .sh_date { color: blue; font-weight: bold; } -pre.sh_sourceCode .sh_time, pre.sh_sourceCode .sh_file { color: darkblue; font-weight: bold; } -pre.sh_sourceCode .sh_ip, pre.sh_sourceCode .sh_name { color: darkgreen; } - -/* for Prolog, Perl... */ -pre.sh_sourceCode .sh_variable { color: darkgreen; } - -/* for LaTeX */ -pre.sh_sourceCode .sh_italics { color: darkgreen; font-style: italic; } -pre.sh_sourceCode .sh_bold { color: darkgreen; font-weight: bold; } -pre.sh_sourceCode .sh_underline { color: darkgreen; text-decoration: underline; } -pre.sh_sourceCode .sh_fixed { color: green; font-family: monospace; } -pre.sh_sourceCode .sh_argument { color: darkgreen; } -pre.sh_sourceCode .sh_optionalargument { color: purple; } -pre.sh_sourceCode .sh_math { color: orange; } -pre.sh_sourceCode .sh_bibtex { color: blue; } - -/* for diffs */ -pre.sh_sourceCode .sh_oldfile { color: orange; } -pre.sh_sourceCode .sh_newfile { color: darkgreen; } -pre.sh_sourceCode .sh_difflines { color: blue; } - -/* for css */ -pre.sh_sourceCode .sh_selector { color: purple; } -pre.sh_sourceCode .sh_property { color: blue; } -pre.sh_sourceCode .sh_value { color: darkgreen; font-style: italic; } - -/* other */ -pre.sh_sourceCode .sh_section { color: black; font-weight: bold; } -pre.sh_sourceCode .sh_paren { color: red; } -pre.sh_sourceCode .sh_attribute { color: darkgreen; } diff -Nru openstack-trove-6.0.0~b2/apidocs/src/xslts/style/shjs/sh_whitengrey.css openstack-trove-6.0.0~b3~dev119/apidocs/src/xslts/style/shjs/sh_whitengrey.css --- openstack-trove-6.0.0~b2/apidocs/src/xslts/style/shjs/sh_whitengrey.css 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/xslts/style/shjs/sh_whitengrey.css 1970-01-01 00:00:00.000000000 +0000 @@ -1,139 +0,0 @@ -pre.sh_sourceCode { - background-color: #ffffff; - color: #696969; - font-weight: normal; - font-style: normal; -} - -pre.sh_sourceCode .sh_keyword { - color: #696969; - font-weight: bold; - font-style: normal; -} - -pre.sh_sourceCode .sh_type { - color: #696969; - font-weight: normal; - font-style: normal; -} - -pre.sh_sourceCode .sh_string { - color: #008800; - font-weight: normal; - font-style: normal; -} - -pre.sh_sourceCode .sh_regexp { - color: #008800; - font-weight: normal; - font-style: normal; -} - -pre.sh_sourceCode .sh_specialchar { - color: #008800; - font-weight: normal; - font-style: normal; -} - -pre.sh_sourceCode .sh_comment { - color: #1326a2; - font-weight: normal; - font-style: italic; -} - -pre.sh_sourceCode .sh_number { - color: #bb00ff; - font-weight: normal; - font-style: normal; -} - -pre.sh_sourceCode .sh_preproc { - color: #470000; - font-weight: normal; - font-style: normal; -} - -pre.sh_sourceCode .sh_function { - color: #000000; - font-weight: normal; - font-style: normal; -} - -pre.sh_sourceCode .sh_url { - color: #008800; - font-weight: normal; - font-style: normal; -} - -pre.sh_sourceCode .sh_date { - color: #696969; - font-weight: bold; - font-style: normal; -} - -pre.sh_sourceCode .sh_time { - color: #696969; - font-weight: bold; - font-style: normal; -} - -pre.sh_sourceCode .sh_file { - color: #696969; - font-weight: bold; - font-style: normal; -} - -pre.sh_sourceCode .sh_ip { - color: #008800; - font-weight: normal; - font-style: normal; -} - -pre.sh_sourceCode .sh_name { - color: #008800; - font-weight: normal; - font-style: normal; -} - -pre.sh_sourceCode .sh_variable { - color: #696969; - font-weight: bold; - font-style: normal; -} - -pre.sh_sourceCode .sh_oldfile { - color: #008800; - font-weight: normal; - font-style: normal; -} - -pre.sh_sourceCode .sh_newfile { - color: #008800; - font-weight: normal; - font-style: normal; -} - -pre.sh_sourceCode .sh_difflines { - color: #696969; - font-weight: bold; - font-style: normal; -} - -pre.sh_sourceCode .sh_selector { - color: #696969; - font-weight: bold; - font-style: normal; -} - -pre.sh_sourceCode .sh_property { - color: #696969; - font-weight: bold; - font-style: normal; -} - -pre.sh_sourceCode .sh_value { - color: #008800; - font-weight: normal; - font-style: normal; -} - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/xslts/xslt/.htaccess openstack-trove-6.0.0~b3~dev119/apidocs/src/xslts/xslt/.htaccess --- openstack-trove-6.0.0~b2/apidocs/src/xslts/xslt/.htaccess 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/xslts/xslt/.htaccess 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -AddType application/xml wadl -AddType application/xml xsd -AddType application/xml xslt - - diff -Nru openstack-trove-6.0.0~b2/apidocs/src/xslts/xslt/schema.xslt openstack-trove-6.0.0~b3~dev119/apidocs/src/xslts/xslt/schema.xslt --- openstack-trove-6.0.0~b2/apidocs/src/xslts/xslt/schema.xslt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/apidocs/src/xslts/xslt/schema.xslt 1970-01-01 00:00:00.000000000 +0000 @@ -1,1330 +0,0 @@ - - - - - - - - - - - XML Schema Documentation - application/xhtml+xml - http://www.w3.org/2001/XMLSchema - http://web4.w3.org/TR/2001/REC-xmlschema-2-20010502/# - - " - ' - - - - - - - - - - - - - - - - - - - - element_ - attrib_ - attgrp_ - grp_ - type_ - - - - http://yui.yahooapis.com/2.7.0/build/ - - - - - - - - - - - - - - - - - stylesheet - text/css - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <xslt:value-of select="xsd:annotation/xsd:appinfo/xsdxt:title"/> - - - <xslt:value-of select="$defaultTitle"/> - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
-
-
Loading...
-
-
-
- - - -

-
- -

-
-
- - - - - - - - - - - -
- - - - - - - - - -

Namespaces

- - - -
-

- Your browser does not seem to have support for - namespace nodes in XPath. If you're a Firefox - user, please consider voting to get this issue - resolved: - - https://bugzilla.mozilla.org/show_bug.cgi?id=94270 - -

-
-
- - - - - - - - - - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - -
-
-
- - -
- - - - - trc.schema.controller.links[' - - ']=[ - - - - - - - - - - - - - - - - - - - - - - - - - - , - - - ]; - - - - - - trc.schema.controller.index = - - - - - - index - - - Index Schema Document - - - ; - - - - - - - trc.schema.controller.links[' - - ']=[ - - - - # - - - - - - - - See definition of - - - - - , - - - ]; - - - - - - - - { href : - - - - - - , name : - - - - - - , title : - - - - - - } - - - - - - - - -

Imports

- - - - - - - - - -
- - -
-
- - - Visit - - -
-
- -
-
-
-
- - -

Includes

- - - - - - - - -
-
-
- - - Visit - - -
-
- -
-
-
-
- - -

Elements

- - - - - - - - -
- - - - - - -
-
- - - trc.schema.sampleManager.showSample( - - - - ); - - - - - - - - - - - - - - - - - - - - -
-
- - - - Sample -
- -
- -
-
-
- - - -
- - - - - - - Loading... - - - - - - -
-
- - - - - - -

Complex Types

- - - - - - -
- - -

Simple Types

- - - - - - -
- - - - - - # - - - - - - - - - - - - - - - - - - -

- -

- - - - - -
- extends: - - - - , - - -
-
- -
- restricts: - - - - , - - -
-
-
-
- - - -
- - - - - - - - - - SubAttributes - - - Attributes - - - - - - - - - - - - - - - -
-
-
-
- - - - - - - - - - SubDocumentation - - - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Sequence - - -
-
- - - -
-
-
- -
- - - -
- - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - <?> (Any Element) - - - - - - - - @? (Any Attribute) - - - - - -
- restriction -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
enum values
- - - - - - - - -
- - - - - -
-
- - - (id = - - ) - -
- -
- -
-
-
- -
- - - - - - - - (id = - - ) - - - (fixed) - - - - - - - - - - - - -
- -
- -
- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - < - - > - - - - - - @ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
diff -Nru openstack-trove-6.0.0~b2/api-ref/source/api-versions.inc openstack-trove-6.0.0~b3~dev119/api-ref/source/api-versions.inc --- openstack-trove-6.0.0~b2/api-ref/source/api-versions.inc 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/api-versions.inc 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,76 @@ +.. -*- rst -*- + +============ +API versions +============ + +Lists information for all Database Service API versions and shows +Database Service v1.0 details. + + +List versions +============= + +.. rest_method:: GET / + +Lists information about all Database Service API versions. + + +Normal response codes: 200 +Error response codes:413,405,404,403,401,400,422,503,500,501, + + + +Response Example +---------------- + +.. literalinclude:: samples/db-versions-response.json + :language: javascript + + + + + + + + + + + + + + +Show version details +==================== + +.. rest_method:: GET /v1.0 + +Shows details for the Database Service API v1.0. + + +Normal response codes: 200 +Error response codes:413,405,404,403,401,400,422,503,500,501, + + + + + + +Response Example +---------------- + +.. literalinclude:: samples/db-version-response.json + :language: javascript + + + + + + + + + + + + + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/configurations.inc openstack-trove-6.0.0~b3~dev119/api-ref/source/configurations.inc --- openstack-trove-6.0.0~b2/api-ref/source/configurations.inc 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/configurations.inc 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,313 @@ +.. -*- rst -*- + +===================================== +Configuration groups (configurations) +===================================== + +Creates and lists all configuration groups. + + +Create configuration group +========================== + +.. rest_method:: POST /v1.0/{accountId}/configurations + +Creates a configuration group. + + +Normal response codes: 200 +Error response codes:413,405,404,403,401,400,422,503,500,501, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - datastore: datastore + - values: values + - name: name + - accountId: accountId + +Request Example +--------------- + +.. literalinclude:: samples/db-create-config-group-request.json + :language: javascript + + + + + +Response Example +---------------- + +.. literalinclude:: samples/db-create-config-group-response.json + :language: javascript + + + + + + + + + + + + + + +List configuration groups +========================= + +.. rest_method:: GET /v1.0/{accountId}/configurations + +Lists all configuration groups. + +The list includes the associated data store and data store version +for each configuration group. + + +Normal response codes: 200 +Error response codes:413,405,404,403,401,400,422,503,500,501, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - accountId: accountId + + + + +Response Example +---------------- + +.. literalinclude:: samples/db-list-cfg-groups-response.json + :language: javascript + + + + + + + + + + + + + + +List configuration group instances +================================== + +.. rest_method:: GET /v1.0/{accountId}/configurations/{configId}/instances + +Lists the instances associated with the specified configuration group. + + +Normal response codes: 200 +Error response codes:413,405,404,403,401,400,422,503,500,501, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - configId: configId + - accountId: accountId + + + + +Response Example +---------------- + +.. literalinclude:: samples/db-config-group-instances-response.json + :language: javascript + + + + + + + + + + + + + + +Delete configuration group +========================== + +.. rest_method:: DELETE /v1.0/{accountId}/configurations/{configId} + +Deletes a configuration group. + +Error response codes:202,413,405,404,403,401,400,422,503,500,501, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - configId: configId + - accountId: accountId + + + + + + + + + + + + + + + + +Patch configuration group +========================= + +.. rest_method:: PATCH /v1.0/{accountId}/configurations/{configId} + +Sets new values for a configuration group. + + +Normal response codes: 200 +Error response codes:413,405,404,403,401,400,422,503,500,501, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - values: values + - configId: configId + - accountId: accountId + +Request Example +--------------- + +.. literalinclude:: samples/db-patch-config-group-request.json + :language: javascript + + + + + +Response Example +---------------- + +.. literalinclude:: samples/db-patch-config-group-response-json-http.txt + :language: javascript + + + + + + + + + + + + + + +Show configuration group details +================================ + +.. rest_method:: GET /v1.0/{accountId}/configurations/{configId} + +Lists details about a configuration group, including its values. + + +Normal response codes: 200 +Error response codes:413,405,404,403,401,400,422,503,500,501, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - configId: configId + - accountId: accountId + + + + +Response Example +---------------- + +.. literalinclude:: samples/db-config-group-details-response.json + :language: javascript + + + + + + + + + + + + + + +Update configuration group +========================== + +.. rest_method:: PUT /v1.0/{accountId}/configurations/{configId} + +Sets new values for a configuration group. Also lets you change the name and description of the configuration group. + +Error response codes:202,413,405,404,403,401,400,422,503,500,501, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - values: values + - description: description + - name: name + - configId: configId + - accountId: accountId + +Request Example +--------------- + +.. literalinclude:: samples/db-update-config-group-request.json + :language: javascript + + + + + + + + + + + + + + + + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/conf.py openstack-trove-6.0.0~b3~dev119/api-ref/source/conf.py --- openstack-trove-6.0.0~b2/api-ref/source/conf.py 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/conf.py 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,247 @@ +# -*- coding: utf-8 -*- +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# trove documentation build configuration file, created by +# sphinx-quickstart on Sat May 1 15:17:47 2010. +# +# This file is execfile()d with the current directory set to +# its containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +import os +import subprocess +import sys +import warnings + +# TODO(Graham Hayes): Remove the following block of code when os-api-ref is +# using openstackdocstheme + +import os_api_ref + +if getattr(os_api_ref, 'THEME', 'olsosphinx') == 'openstackdocstheme': + # We are on the new version with openstackdocstheme support + + extensions = [ + 'os_api_ref', + ] + + import openstackdocstheme # noqa + + html_theme = 'openstackdocs' + html_theme_path = [openstackdocstheme.get_html_theme_path()] + html_theme_options = { + "sidebar_mode": "toc", + } + +else: + # We are on the old version without openstackdocstheme support + + extensions = [ + 'os_api_ref', + 'oslosphinx', + ] + +# End temporary block + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +sys.path.insert(0, os.path.abspath('../../')) +sys.path.insert(0, os.path.abspath('../')) +sys.path.insert(0, os.path.abspath('./')) + +# -- General configuration ---------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones. + +# The suffix of source filenames. +source_suffix = '.rst' + +# The encoding of source files. +# +# source_encoding = 'utf-8' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = u'Database API Reference' +copyright = u'2010-present, OpenStack Foundation' + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +from trove.version import version_info +# The full version, including alpha/beta/rc tags. +release = version_info.release_string() +# The short X.Y version. +version = version_info.version_string() + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +# +# language = None + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +# today = '' +# Else, today_fmt is used as the format for a strftime call. +# today_fmt = '%B %d, %Y' + +# The reST default role (used for this markup: `text`) to use +# for all documents. +# default_role = None + +# If true, '()' will be appended to :func: etc. cross-reference text. +# add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +add_module_names = False + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +show_authors = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# -- Options for man page output ---------------------------------------------- + +# Grouping the document tree for man pages. +# List of tuples 'sourcefile', 'target', u'title', u'Authors name', 'manual' + + +# -- Options for HTML output -------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. Major themes that come with +# Sphinx are currently 'default' and 'sphinxdoc'. +# html_theme_path = ["."] +# html_theme = '_theme' + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +# html_theme_options = {} + +# Add any paths that contain custom themes here, relative to this directory. +# html_theme_path = [] + +# The name for this set of Sphinx documents. If None, it defaults to +# " v documentation". +# html_title = None + +# A shorter title for the navigation bar. Default is the same as html_title. +# html_short_title = None + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +# html_logo = None + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +# html_favicon = None + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +# html_static_path = ['_static'] + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +# html_last_updated_fmt = '%b %d, %Y' +git_cmd = ["git", "log", "--pretty=format:'%ad, commit %h'", "--date=local", + "-n1"] +try: + html_last_updated_fmt = subprocess.Popen( + git_cmd, stdout=subprocess.PIPE).communicate()[0] +except Exception: + warnings.warn('Cannot get last updated time from git repository. ' + 'Not setting "html_last_updated_fmt".') + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +# html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +# html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +# html_additional_pages = {} + +# If false, no module index is generated. +# html_use_modindex = True + +# If false, no index is generated. +# html_use_index = True + +# If true, the index is split into individual pages for each letter. +# html_split_index = False + +# If true, links to the reST sources are added to the pages. +# html_show_sourcelink = True + +# If true, an OpenSearch description file will be output, and all pages will +# contain a tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +# html_use_opensearch = '' + +# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). +# html_file_suffix = '' + +# Output file base name for HTML help builder. +htmlhelp_basename = 'trovedoc' + + +# -- Options for LaTeX output ------------------------------------------------- + +# The paper size ('letter' or 'a4'). +# latex_paper_size = 'letter' + +# The font size ('10pt', '11pt' or '12pt'). +# latex_font_size = '10pt' + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, author, documentclass +# [howto/manual]). +latex_documents = [ + ('index', 'Trove.tex', u'OpenStack Database API Documentation', + u'OpenStack Foundation', 'manual'), +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +# latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +# latex_use_parts = False + +# Additional stuff for the LaTeX preamble. +# latex_preamble = '' + +# Documents to append as an appendix to all manuals. +# latex_appendices = [] + +# If false, no module index is generated. +# latex_use_modindex = True diff -Nru openstack-trove-6.0.0~b2/api-ref/source/database-instance-actions.inc openstack-trove-6.0.0~b3~dev119/api-ref/source/database-instance-actions.inc --- openstack-trove-6.0.0~b2/api-ref/source/database-instance-actions.inc 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/database-instance-actions.inc 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,269 @@ +.. -*- rst -*- + +================================== +Database instance actions (action) +================================== + +Resizes instances and volumes and restarts instances. + + +Restart instance +================ + +.. rest_method:: POST /v1.0/{accountId}/instances/{instanceId}/action + +Restarts the database service for an instance. + +The restart operation restarts only the MySQL instance. Restarting +MySQL erases any dynamic configuration settings that you make in +MySQL. + +The MySQL service is unavailable until the instance restarts. + +If the operation succeeds, it returns the ``Accepted (202)`` +response code. + +Error response codes:202,413,415,405,404,403,401,400,422,503,500,501, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - instanceId: instanceId + - accountId: accountId + +Request Example +--------------- + +.. literalinclude:: samples/db-instance-restart-request.json + :language: javascript + + + + + + + + + + + + + + + + + + +Resize instance +=============== + +.. rest_method:: POST /v1.0/{accountId}/instances/{instanceId}/action + +Resizes the memory for an instance. + +If you provide a valid ``flavorRef``, this operation changes the +memory size of the instance, and restarts MySQL. + +Error response codes:202,413,415,405,404,403,401,400,422,503,500,501, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - instanceId: instanceId + - accountId: accountId + +Request Example +--------------- + +.. literalinclude:: samples/db-instance-resize-instance-request.json + :language: javascript + + + + + + + + + + + + + + + + + + +Resize instance volume +====================== + +.. rest_method:: POST /v1.0/{accountId}/instances/{instanceId}/action + +Resizes the volume that is attached to an instance. + +You can use this operation to increase but not decrease the volume +size. A valid volume size is an integer value in gigabytes (GB). + +You cannot increase the volume to a size that is larger than the +API volume size limit. + +If this operation succeeds, it returns a 202 Accepted response. + +Error response codes:202,413,415,405,404,403,401,400,422,503,500,501, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - instanceId: instanceId + - accountId: accountId + +Request Example +--------------- + +.. literalinclude:: samples/db-instance-resize-volume-request.json + :language: javascript + + + + + + + + + + + + + + + + + + +Promote instance to replica source +================================== + +.. rest_method:: POST /v1.0/{accountId}/instances/{instanceId}/action + +Promotes a replica. + +If you have set up replication, and the base instance is still +reachable, you can use this operation to promote a replica to be +the new base instance. + +This can be useful if you want to make a configuration change to +the base instance that your replicas are replicating from. For +example, you might want to increase the disk or CPU capacity. If +you made the change on the base instance directly, you would need +to take the base instance down for the duration of the operation. +Instead, you can create a replica, make the configuration change on +the replica, and then promote the replica to become the new base +instance. + +For ``instanceId``, pass in the instance ID of the replica you want +to promote. + +Error response codes:202,413,415,405,404,403,401,400,422,503,500,501, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - instanceId: instanceId + - accountId: accountId + +Request Example +--------------- + +.. literalinclude:: samples/db-instance-promote-replica-request.json + :language: javascript + + + + + + + + + + + + + + + + + + +Delete replication base instance +================================ + +.. rest_method:: POST /v1.0/{accountId}/instances/{instanceId}/action + +Deletes the base instance in a replication set. + +If the base instance becomes unreachable, you can use this +operation to delete the base instance. + +This operation: + +- Finds the replica that has processed the greatest number of + transactions and picks that replica to use as the new base + instance. + +- Transfers the public IP of the old base instance to the new base + instance (which is the newly-promoted replica). + +- Deletes the old base instance. + +- Takes all the instances in the replication set and makes them + start replicating from the new base instance. + +For ``instanceId``, pass in the instance ID of the unreachable base +instance. + +Error response codes:202,413,415,405,404,403,401,400,422,503,500,501, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - instanceId: instanceId + - accountId: accountId + +Request Example +--------------- + +.. literalinclude:: samples/db-instance-eject-replica-request.json + :language: javascript + + + + + + + + + + + + + + + + + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/database-instances.inc openstack-trove-6.0.0~b3~dev119/api-ref/source/database-instances.inc --- openstack-trove-6.0.0~b2/api-ref/source/database-instances.inc 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/database-instances.inc 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,425 @@ +.. -*- rst -*- + +============================== +Database instances (instances) +============================== + +Creates, lists, shows details for, attaches a configuration group +to, detaches a configuration group from, deletes, lists +configuration defaults, creates root, and determines whether root +is enables for instances. + + +Delete database instance +======================== + +.. rest_method:: DELETE /v1.0/{accountId}/instances/{instanceId} + +Deletes a database instance, including any associated data. + +This operation does not delete any read slaves. + +You cannot complete this operation when the instance state is +either ``REBUILDING`` or ``BUILDING``. + +Error response codes:202,413,405,404,403,401,400,422,503,500,501, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - instanceId: instanceId + - accountId: accountId + + + + + + + + + + + + + + + + +Show database instance details +============================== + +.. rest_method:: GET /v1.0/{accountId}/instances/{instanceId} + +Shows database instance details. + +Lists the status and details of the database instance. + +Lists the volume size in gigabytes (GB) and the approximate GB +used. + +After instance creation, the ``used`` value is greater than 0, +which is expected and due to the automatic creation of non-empty +transaction logs for MySQL optimization. The response does not +include the ``used`` attribute when the instance status is +``BUILD``, ``REBOOT``, ``RESIZE``, or ``ERROR``. + +The list operations return a DNS-resolvable host name for the +database instance rather than an IP address. Because the host name +always resolves to the correct IP address for the database +instance, you do not need to maintain the mapping. Although the IP +address might change when you resize, migrate, or perform other +operations, the host name always resolves to the correct database +instance. + + +Normal response codes: 200 +Error response codes:413,405,404,403,401,400,422,503,500,501, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - instanceId: instanceId + - accountId: accountId + + + + +Response Example +---------------- + +.. literalinclude:: samples/db-instance-status-detail-response.json + :language: javascript + + + + + + + + + + + + + + +Attach configuration group +========================== + +.. rest_method:: PUT /v1.0/{accountId}/instances/{instanceId} + +Attaches a configuration group to an instance. + +Error response codes:202,413,415,405,404,403,401,400,422,503,500,501, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - configuration: configuration + - instanceId: instanceId + - accountId: accountId + +Request Example +--------------- + +.. literalinclude:: samples/db-attach-config-group-request.json + :language: javascript + + + + + + + + + + + + + + + + + + +Detach configuration group +========================== + +.. rest_method:: PUT /v1.0/{accountId}/instances/{instanceId} + +Detaches a configuration group from an instance. + +When you pass in only an instance ID and omit the configuration ID, +this operation detaches any configuration group that was attached +to the instance. + +Error response codes:202,413,415,405,404,403,401,400,422,503,500,501, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - configuration: configuration + - instanceId: instanceId + - accountId: accountId + +Request Example +--------------- + +.. literalinclude:: samples/db-detach-config-group-request.json + :language: javascript + + + + + + + + + + + + + + + + + + +Detach replica +============== + +.. rest_method:: PATCH /v1.0/{accountId}/instances/{instanceId} + +Detaches a replica from its replication source. + +If you created an instance that is a replica of a source instance, +you can detach the replica from the source. This can be useful if +the source becomes unavailable. In this case, you can detach the +replica from the source, making the replica a standalone database +instance. You can then take the new standalone instance and create +a new replica of that instance. + +Error response codes:202,413,415,405,404,403,401,400,422,503,500,501, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - replica_of: replica_of + - slave_of: slave_of + - instanceId: instanceId + - accountId: accountId + +Request Example +--------------- + +.. literalinclude:: samples/db-detach-replica-request.json + :language: javascript + + + + + + + + + + + + + + + + + + +Create database instance +======================== + +.. rest_method:: POST /v1.0/{accountId}/instances + +Creates a database instance. + +Asynchronously provisions a database instance. You must specify a +flavor and a volume size. The service provisions the instance with +a volume of the requested size, which serves as storage for the +database instance. + + **Notes** + +- You can create only one database instance per POST request. + +- You can create a database instance with one or more databases. You + associate users with each database. + +- The default binding for the MySQL instance is port 3306. + + +Normal response codes: 200 +Error response codes:413,405,404,403,401,400,422,503,500,501, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - users: users + - password: password + - datastore_version: datastore_version + - name: name + - flavorRef: flavorRef + - characterSet: characterSet + - replica_count: replica_count + - instance: instance + - collate: collate + - databases: databases + - datastore: datastore + - configuration: configuration + - type: type + - replica_of: replica_of + - size: size + - accountId: accountId + +Request Example +--------------- + +.. literalinclude:: samples/db-create-instance-request.json + :language: javascript + + + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - updated: updated + - name: name + - created: created + - characterSet: characterSet + - instance: instance + - collate: collate + - databases: databases + - flavor: flavor + - users: users + + + +Response Example +---------------- + +.. literalinclude:: samples/db-create-instance-response.json + :language: javascript + + + + + + + + + + + + + + +List database instances +======================= + +.. rest_method:: GET /v1.0/{accountId}/instances + +Lists information, including status, for all database instances. + +Lists status and information for all database instances. + + +Normal response codes: 200 +Error response codes:413,405,404,403,401,400,422,503,500,501, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - accountId: accountId + + + + +Response Example +---------------- + +.. literalinclude:: samples/db-instances-index-response.json + :language: javascript + + + + + + + + + + + + + + +List configuration defaults +=========================== + +.. rest_method:: GET /v1.0/{accountId}/instances/{instanceId}/configuration + +Lists the configuration defaults for an instance. + + +Normal response codes: 200 +Error response codes:413,405,404,403,401,400,422,503,500,501, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - instanceId: instanceId + - accountId: accountId + + + + +Response Example +---------------- + +.. literalinclude:: samples/db-list-cfg-defaults-response.json + :language: javascript + + + + + + + + + + + + + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/databases.inc openstack-trove-6.0.0~b3~dev119/api-ref/source/databases.inc --- openstack-trove-6.0.0~b2/api-ref/source/databases.inc 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/databases.inc 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,137 @@ +.. -*- rst -*- + +===================== +Databases (databases) +===================== + +Creates, lists all, and deletes databases. + + +Delete database +=============== + +.. rest_method:: DELETE /v1.0/{accountId}/instances/{instanceId}/databases/{databaseName} + +Deletes a database. + +This operation also deletes all data that is associated with the +database. + +Error response codes:202,413,405,404,403,401,400,422,503,500,501, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - instanceId: instanceId + - databaseName: databaseName + - accountId: accountId + + + + + + + + + + + + + + + + +Create database +=============== + +.. rest_method:: POST /v1.0/{accountId}/instances/{instanceId}/databases + +Creates a database within an instance. + +The ``name`` of the database is a required attribute. + +Error response codes:202,413,405,404,403,401,400,422,503,500,501, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - characterSet: characterSet + - collate: collate + - name: name + - instanceId: instanceId + - accountId: accountId + +Request Example +--------------- + +.. literalinclude:: samples/db-create-databases-request.json + :language: javascript + + + + + + + + + + + + + + + + + +List instance databases +======================= + +.. rest_method:: GET /v1.0/{accountId}/instances/{instanceId}/databases + +Lists databases for an instance. + +This operation returns only the user-defined databases and not the +system databases. Only the database administrator can view the +``mysql``, ``information_schema``, and ``lost+found`` system +databases. + + +Normal response codes: 200 +Error response codes:413,405,404,403,401,400,422,503,500,501, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - instanceId: instanceId + - accountId: accountId + + + + +Response Example +---------------- + +.. literalinclude:: samples/db-list-databases-response.json + :language: javascript + + + + + + + + + + + + + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/datastores.inc openstack-trove-6.0.0~b3~dev119/api-ref/source/datastores.inc --- openstack-trove-6.0.0~b2/api-ref/source/datastores.inc 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/datastores.inc 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,143 @@ +.. -*- rst -*- + +======================== +Data stores (datastores) +======================== + +Lists data store versions, lists parameters for data stores, and +shows parameter details for a data store version. + + +Show configuration parameter details +==================================== + +.. rest_method:: GET /v1.0/{accountId}/datastores/versions/{datastore_version_id}/parameters/{parameter_name} + +Displays details for a configuration parameter associated with a data store version. + +Details include the type, minimum and maximum values, and whether +you must restart the instance after you change the parameter value. + + +Normal response codes: 200 +Error response codes:413,405,404,403,401,400,422,503,500,501, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - parameter_name: parameter_name + - datastore_version_id: datastore_version_id + - accountId: accountId + + + + +Response Example +---------------- + +.. literalinclude:: samples/db-show-parameter-details.json + :language: javascript + + + + + + + + + + + + + + +List datastore versions +======================= + +.. rest_method:: GET /v1.0/{accountId}/datastores/{datastore_name}/versions + +Lists the available versions of a data store. + + +Normal response codes: 200 +Error response codes:413,405,404,403,401,400,422,503,500,501, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - datastore_name: datastore_name + - accountId: accountId + + + + +Response Example +---------------- + +.. literalinclude:: samples/db-list-datastore-versions.json + :language: javascript + + + + + + + + + + + + + + +List configuration parameters +============================= + +.. rest_method:: GET /v1.0/{accountId}/datastores/versions/{datastore_version_id}/parameters + +Lists the available configuration parameters for a data store version. + +Parameter information includes the type, minimum and maximum +values, and whether you must restart the instance after you change +a parameter value. + + +Normal response codes: 200 +Error response codes:413,405,404,403,401,400,422,503,500,501, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - datastore_version_id: datastore_version_id + - accountId: accountId + + + + +Response Example +---------------- + +.. literalinclude:: samples/db-list-parameters-response.json + :language: javascript + + + + + + + + + + + + + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/flavors.inc openstack-trove-6.0.0~b3~dev119/api-ref/source/flavors.inc --- openstack-trove-6.0.0~b2/api-ref/source/flavors.inc 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/flavors.inc 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,104 @@ +.. -*- rst -*- + +================= +Flavors (flavors) +================= + +Lists all flavors and shows details for a flavor, by ID. + + +Show flavor details +=================== + +.. rest_method:: GET /v1.0/{accountId}/flavors/{flavorId} + +Shows flavor details with details of the RAM. + +This resource is identical to the flavors found in the OpenStack +Compute API, but without the disk property. + +The ``flavorId`` parameter must be an integer value. If you use a +floating point value for this parameter, this call truncates the +decimal portion and uses the integer portion as the ``flavorId`` +value. + + +Normal response codes: 200 +Error response codes:413,405,404,403,401,400,422,503,500,501, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - flavorId: flavorId + - accountId: accountId + + + + +Response Example +---------------- + +.. literalinclude:: samples/db-flavors-by-id-response.json + :language: javascript + + + + + + + + + + + + + + +List flavors +============ + +.. rest_method:: GET /v1.0/{accountId}/flavors + +Lists information for all available flavors. + +This operation lists information for all available flavors. + +This resource is identical to the flavors found in the OpenStack +Nova API, but without the disk property. + + +Normal response codes: 200 +Error response codes:413,405,404,403,401,400,422,503,500,501, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - accountId: accountId + + + + +Response Example +---------------- + +.. literalinclude:: samples/db-flavors-response.json + :language: javascript + + + + + + + + + + + + + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/index.rst openstack-trove-6.0.0~b3~dev119/api-ref/source/index.rst --- openstack-trove-6.0.0~b2/api-ref/source/index.rst 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/index.rst 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,16 @@ +:tocdepth: 2 + +=================== + Database API +=================== + +.. rest_expand_all:: + +.. include:: api-versions.inc +.. include:: database-instances.inc +.. include:: database-instance-actions.inc +.. include:: databases.inc +.. include:: user-management.inc +.. include:: flavors.inc +.. include:: datastores.inc +.. include:: configurations.inc diff -Nru openstack-trove-6.0.0~b2/api-ref/source/parameters.yaml openstack-trove-6.0.0~b3~dev119/api-ref/source/parameters.yaml --- openstack-trove-6.0.0~b2/api-ref/source/parameters.yaml 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/parameters.yaml 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,286 @@ +# variables in path +accountId: + description: | + The account ID of the owner of the instance. + in: path + required: false + type: string +configId: + description: | + The ID of the configuration group. + in: path + required: false + type: string +databaseName: + description: | + The name for the database. + in: path + required: false + type: string +datastore_name: + description: | + The name of the data store. + in: path + required: false + type: string +datastore_version_id: + description: | + The UUID of the data store version. + in: path + required: false + type: string +flavorId: + description: | + The ID for the flavor. + in: path + required: false + type: string +instanceId: + description: | + The ID for the database instance. + in: path + required: false + type: string +parameter_name: + description: | + The name of the parameter for which to show + details. + in: path + required: false + type: string +# variables in body +characterSet: + description: | + A set of symbols and encodings. Default is + ``utf8``. For information about supported character sets and + collations, see `Character Sets and Collations in MySQL + `_. + in: body + required: false + type: string +collate: + description: | + A set of rules for comparing characters in a + character set. Default is ``utf8_general_ci``. For information + about supported character sets and collations, see `Character Sets + and Collations in MySQL `_. + in: body + required: false + type: string +configuration: + description: | + ID of the configuration group that you want to + attach to the instance. + in: body + required: true + type: string +configuration_1: + description: | + ID of the configuration group to attach to the + instance. + in: body + required: false + type: string +configuration_2: + description: | + To detach a configuration group, set the + configuration parameter to null. + in: body + required: true + type: string +created: + description: | + The date and time when the resource was created. + + The date and time stamp format is `ISO 8601 + `_: + + :: + + CCYY-MM-DDThh:mm:ss±hh:mm + + For example, ``2015-08-27T09:49:58-05:00``. + + The ``±hh:mm`` value, if included, is the time zone as an offset + from UTC. In the previous example, the offset value is ``-05:00``. + in: body + required: true + type: string +databases: + description: | + A ``databases`` object. + in: body + required: false + type: array +datastore: + description: | + Data store assigned to the configuration group. + Required if you did not configure the default data store. + in: body + required: true + type: string +datastore_1: + description: | + Name of the datastore to use when creating the + instance. + in: body + required: false + type: string +datastore_version: + description: | + Name of the datastore version to use when + creating the instance. + in: body + required: false + type: string +description: + description: | + New description of the configuration group. + in: body + required: true + type: string +flavor: + description: | + A ``flavor`` object, which includes the flavor ID + (integer) and flavor relative links. + in: body + required: true + type: object +flavorRef: + description: | + Reference (href), which is the actual URI to a + flavor as it appears in the list flavors response. Rather than + the flavor URI, you can also pass the flavor ID (integer) as the + ``flavorRef`` value. For example, ``1``. + in: body + required: true + type: string +instance: + description: | + An ``instance`` object. + in: body + required: true + type: object +name: + description: | + Name of the configuration group you are creating. + in: body + required: true + type: string +name_1: + description: | + A database name. You cannot use the + ``lost+found``, ``information_schema``, or ``mysql`` database name + to create a database because these names are reserved for system + databases. Valid characters in a database name are - Upper and + lower case letters. - Numbers. - ``@``, ``?``, ``#``, and spaces + except at the beginning or end of the database name. - ``_`` is + allowed anywhere in the database name. You cannot use these + characters in a database name. The maximum length of a database + name is 64 characters. + in: body + required: false + type: string +name_2: + description: | + The user name for the database on instance + creation. + in: body + required: false + type: string +name_3: + description: | + New name of the configuration group. + in: body + required: true + type: string +password: + description: | + The password for those users on instance + creation. + in: body + required: false + type: string +replica_count: + description: | + Number of replicas to create (defaults to 1). + in: body + required: false + type: integer +replica_of: + description: | + ID or name of an existing instance to replicate + from. + in: body + required: false + type: string +replica_of_1: + description: | + To detach a replica, set ``replica_of`` to null. + in: body + required: true + type: string +size: + description: | + The volume size, in gigabytes (GB). A valid value + is from 1 to 50. + in: body + required: true + type: integer +slave_of: + description: | + To detach a replica, set ``slave_of`` to null. + in: body + required: true + type: string +type: + description: | + The volume type to use. You can list the + available volume types on your system by using the ``cinder type- + list`` command. If you want to specify a volume type, you must + also specify a volume size. + in: body + required: false + type: string +updated: + description: | + The date and time when the resource was updated. + + The date and time stamp format is `ISO 8601 + `_: + + :: + + CCYY-MM-DDThh:mm:ss±hh:mm + + The ``±hh:mm`` value, if included, is the time zone as an offset + from UTC. + + For example, ``2015-08-27T09:49:58-05:00``. + + The UTC time zone is assumed. + in: body + required: true + type: string +users: + description: | + A ``users`` object. + in: body + required: true + type: array +values: + description: | + Dictionary that lists configuration parameter + names and associated values. + in: body + required: true + type: string +values_1: + description: | + Dictionary that lists configuration parameter + names and associated values. + in: body + required: true + type: object + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-attach-config-group-request.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-attach-config-group-request.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-attach-config-group-request.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-attach-config-group-request.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +{ + "instance": { + "configuration": "2aa51628-5c42-4086-8682-137caffd2ba6" + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-attach-config-group-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-attach-config-group-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-attach-config-group-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-attach-config-group-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +PUT /v1.0/1234/instances/4c93c73b-d6d0-47d7-b8c6-b699d19d7de9 HTTP/1.1 +User-Agent: python-example-client +Host: openstack.example.com +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-attach-config-group-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-attach-config-group-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-attach-config-group-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-attach-config-group-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 202 OK +Content-Type: application/json +Content-Length: 0 +Date: Mon, 13 Jul 2015 19:53:04 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-create-incremental-request.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-create-incremental-request.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-create-incremental-request.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-create-incremental-request.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,8 @@ +{ + "backup": { + "description": "My Incremental Backup", + "instance": "44b277eb-39be-4921-be31-3d61b43651d7", + "name": "Incremental Snapshot", + "parent_id": "a9832168-7541-4536-b8d9-a8a9b79cf1b4" + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-create-incremental-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-create-incremental-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-create-incremental-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-create-incremental-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +POST /v1.0/1234/backups HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-create-incremental-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-create-incremental-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-create-incremental-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-create-incremental-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,19 @@ +{ + "backup": { + "created": "2014-10-30T12:30:00", + "datastore": { + "type": "mysql", + "version": "5.5", + "version_id": "b00000b0-00b0-0b00-00b0-000b000000bb" + }, + "description": "My Incremental Backup", + "id": "2e351a71-dd28-4bcb-a7d6-d36a5b487173", + "instance_id": "44b277eb-39be-4921-be31-3d61b43651d7", + "locationRef": null, + "name": "Incremental Snapshot", + "parent_id": "a9832168-7541-4536-b8d9-a8a9b79cf1b4", + "size": null, + "status": "NEW", + "updated": "2014-10-30T12:30:00" + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-create-incremental-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-create-incremental-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-create-incremental-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-create-incremental-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 202 Accepted +Content-Type: application/json +Content-Length: 462 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-create-request.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-create-request.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-create-request.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-create-request.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +{ + "backup": { + "description": "My Backup", + "instance": "44b277eb-39be-4921-be31-3d61b43651d7", + "name": "snapshot" + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-create-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-create-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-create-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-create-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +POST /v1.0/1234/backups HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-create-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-create-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-create-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-create-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,19 @@ +{ + "backup": { + "created": "2014-10-30T12:30:00", + "datastore": { + "type": "mysql", + "version": "5.5", + "version_id": "b00000b0-00b0-0b00-00b0-000b000000bb" + }, + "description": "My Backup", + "id": "a9832168-7541-4536-b8d9-a8a9b79cf1b4", + "instance_id": "44b277eb-39be-4921-be31-3d61b43651d7", + "locationRef": null, + "name": "snapshot", + "parent_id": null, + "size": null, + "status": "NEW", + "updated": "2014-10-30T12:30:00" + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-create-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-create-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-create-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-create-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 202 Accepted +Content-Type: application/json +Content-Length: 404 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-delete-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-delete-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-delete-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-delete-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +DELETE /v1.0/1234/backups/a9832168-7541-4536-b8d9-a8a9b79cf1b4 HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-delete-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-delete-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-delete-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-delete-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 202 Accepted +Content-Type: application/json +Content-Length: 0 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-get-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-get-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-get-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-get-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +GET /v1.0/1234/backups/a9832168-7541-4536-b8d9-a8a9b79cf1b4 HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-get-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-get-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-get-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-get-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,19 @@ +{ + "backup": { + "created": "2014-10-30T12:30:00", + "datastore": { + "type": "mysql", + "version": "5.5", + "version_id": "b00000b0-00b0-0b00-00b0-000b000000bb" + }, + "description": "My Backup", + "id": "a9832168-7541-4536-b8d9-a8a9b79cf1b4", + "instance_id": "44b277eb-39be-4921-be31-3d61b43651d7", + "locationRef": "http://localhost/path/to/backup", + "name": "snapshot", + "parent_id": null, + "size": 0.14, + "status": "COMPLETED", + "updated": "2014-10-30T12:30:00" + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-get-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-get-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-get-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-get-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 439 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-list-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-list-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-list-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-list-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +GET /v1.0/1234/backups HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-list-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-list-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-list-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-list-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,38 @@ +{ + "backups": [ + { + "created": "2014-10-30T12:30:00", + "datastore": { + "type": "mysql", + "version": "5.5", + "version_id": "b00000b0-00b0-0b00-00b0-000b000000bb" + }, + "description": "My Backup", + "id": "a9832168-7541-4536-b8d9-a8a9b79cf1b4", + "instance_id": "44b277eb-39be-4921-be31-3d61b43651d7", + "locationRef": "http://localhost/path/to/backup", + "name": "snapshot", + "parent_id": null, + "size": 0.14, + "status": "COMPLETED", + "updated": "2014-10-30T12:30:00" + }, + { + "created": "2014-10-30T12:30:00", + "datastore": { + "type": "mysql", + "version": "5.5", + "version_id": "b00000b0-00b0-0b00-00b0-000b000000bb" + }, + "description": "My Incremental Backup", + "id": "2e351a71-dd28-4bcb-a7d6-d36a5b487173", + "instance_id": "44b277eb-39be-4921-be31-3d61b43651d7", + "locationRef": "http://localhost/path/to/backup", + "name": "Incremental Snapshot", + "parent_id": "a9832168-7541-4536-b8d9-a8a9b79cf1b4", + "size": 0.14, + "status": "COMPLETED", + "updated": "2014-10-30T12:30:00" + } + ] +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-list-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-list-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-list-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-list-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 929 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-restore-request.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-restore-request.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-restore-request.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-restore-request.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,12 @@ +{ + "instance": { + "flavorRef": 1, + "name": "backup_instance", + "restorePoint": { + "backupRef": "a9832168-7541-4536-b8d9-a8a9b79cf1b4" + }, + "volume": { + "size": 2 + } + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-restore-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-restore-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-restore-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-restore-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +POST /v1.0/1234/instances HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-restore-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-restore-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-restore-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-restore-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,40 @@ +{ + "instance": { + "created": "2014-10-30T12:30:00", + "datastore": { + "type": "mysql", + "version": "5.5" + }, + "flavor": { + "id": "1", + "links": [ + { + "href": "https://troveapi.org/v1.0/1234/flavors/1", + "rel": "self" + }, + { + "href": "https://troveapi.org/flavors/1", + "rel": "bookmark" + } + ] + }, + "hostname": "e09ad9a3f73309469cf1f43d11e79549caf9acf2.troveexampledb.com", + "id": "d5a9db64-7ef7-41c5-8e1e-4013166874bc", + "links": [ + { + "href": "https://troveapi.org/v1.0/1234/instances/d5a9db64-7ef7-41c5-8e1e-4013166874bc", + "rel": "self" + }, + { + "href": "https://troveapi.org/instances/d5a9db64-7ef7-41c5-8e1e-4013166874bc", + "rel": "bookmark" + } + ], + "name": "backup_instance", + "status": "BUILD", + "updated": "2014-10-30T12:30:00", + "volume": { + "size": 2 + } + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-restore-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-restore-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-backup-restore-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backup-restore-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 694 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-backups-by-instance-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backups-by-instance-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-backups-by-instance-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backups-by-instance-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +GET /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7/backups HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-backups-by-instance-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backups-by-instance-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-backups-by-instance-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backups-by-instance-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,38 @@ +{ + "backups": [ + { + "created": "2014-10-30T12:30:00", + "datastore": { + "type": "mysql", + "version": "5.5", + "version_id": "b00000b0-00b0-0b00-00b0-000b000000bb" + }, + "description": "My Backup", + "id": "a9832168-7541-4536-b8d9-a8a9b79cf1b4", + "instance_id": "44b277eb-39be-4921-be31-3d61b43651d7", + "locationRef": "http://localhost/path/to/backup", + "name": "snapshot", + "parent_id": null, + "size": 0.14, + "status": "COMPLETED", + "updated": "2014-10-30T12:30:00" + }, + { + "created": "2014-10-30T12:30:00", + "datastore": { + "type": "mysql", + "version": "5.5", + "version_id": "b00000b0-00b0-0b00-00b0-000b000000bb" + }, + "description": "My Incremental Backup", + "id": "2e351a71-dd28-4bcb-a7d6-d36a5b487173", + "instance_id": "44b277eb-39be-4921-be31-3d61b43651d7", + "locationRef": "http://localhost/path/to/backup", + "name": "Incremental Snapshot", + "parent_id": "a9832168-7541-4536-b8d9-a8a9b79cf1b4", + "size": 0.14, + "status": "COMPLETED", + "updated": "2014-10-30T12:30:00" + } + ] +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-backups-by-instance-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backups-by-instance-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-backups-by-instance-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-backups-by-instance-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 929 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-change-user-attributes-request.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-change-user-attributes-request.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-change-user-attributes-request.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-change-user-attributes-request.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,6 @@ +{ + "user": { + "name": "new_username", + "password": "new_password" + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-change-user-attributes-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-change-user-attributes-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-change-user-attributes-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-change-user-attributes-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +PUT /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7/users/dbuser1 HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-change-user-attributes-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-change-user-attributes-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-change-user-attributes-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-change-user-attributes-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 202 Accepted +Content-Type: application/json +Content-Length: 0 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-change-users-password-request.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-change-users-password-request.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-change-users-password-request.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-change-users-password-request.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,12 @@ +{ + "users": [ + { + "name": "dbuser1", + "password": "newpassword" + }, + { + "name": "dbuser2", + "password": "anotherpassword" + } + ] +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-change-users-password-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-change-users-password-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-change-users-password-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-change-users-password-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,6 @@ +PUT /v1.0/1234/instances/692d8418-7a8f-47f1-8060-59846c6e024f/users HTTP/1.1 +User-Agent: python-example-client +Host: ord.databases.api.rackspacecloud.com +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-change-users-password-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-change-users-password-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-change-users-password-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-change-users-password-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,4 @@ +HTTP/1.1 202 Accepted +Content-Type: application/json +Content-Length: 152 +Date: Wed, 21 Mar 2012 17:46:46 GMT \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-check-root-user-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-check-root-user-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-check-root-user-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-check-root-user-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +GET /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7/root HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-check-root-user-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-check-root-user-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-check-root-user-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-check-root-user-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,3 @@ +{ + "rootEnabled": true +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-check-root-user-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-check-root-user-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-check-root-user-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-check-root-user-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 21 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-config-group-details-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-config-group-details-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-config-group-details-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-config-group-details-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,6 @@ +GET /v1.0/1234/configurations/5678 HTTP/1.1 +User-Agent: python-example-client +Host: openstack.example.com +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-config-group-details-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-config-group-details-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-config-group-details-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-config-group-details-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,16 @@ +{ + "configuration": { + "datastore_name": "mysql", + "updated": "2015-11-22T19:07:20", + "values": { + "connect_timeout": 17 + }, + "name": "group1", + "created": "2015-11-20T20:51:24", + "datastore_version_name": "5.6", + "instance_count": 1, + "id": "1c8a4fdd-690c-4e6e-b2e1-148b8d738770", + "datastore_version_id": "b9f97132-467b-4f8e-b12d-947cfc223ac3", + "description": null + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-config-group-details-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-config-group-details-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-config-group-details-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-config-group-details-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,4 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 138 +Date: Fri, 20 Nov 2015 19:53:04 GMT diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-config-group-instances-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-config-group-instances-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-config-group-instances-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-config-group-instances-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,6 @@ +GET /v1.0/1234/configurations/5678/instances HTTP/1.1 +User-Agent: python-example-client +Host: openstack.example.com +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-config-group-instances-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-config-group-instances-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-config-group-instances-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-config-group-instances-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,8 @@ +{ + "instances": [ + { + "id": "7fd2d1d6-a2ef-4a76-8c03-e233db4d86da", + "name": "master_1" + } + ] +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-config-group-instances-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-config-group-instances-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-config-group-instances-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-config-group-instances-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,4 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 138 +Date: Fri, 20 Nov 2015 19:53:04 GMT diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-attach-to-instance-request.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-attach-to-instance-request.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-attach-to-instance-request.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-attach-to-instance-request.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +{ + "instance": { + "configuration": "43a6ea86-e959-4735-9e46-a6a5d4a2d80f" + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-attach-to-instance-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-attach-to-instance-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-attach-to-instance-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-attach-to-instance-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +PUT /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7 HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-attach-to-instance-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-attach-to-instance-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-attach-to-instance-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-attach-to-instance-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 202 Accepted +Content-Type: application/json +Content-Length: 0 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-create-request.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-create-request.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-create-request.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-create-request.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,14 @@ +{ + "configuration": { + "datastore": { + "type": "a00000a0-00a0-0a00-00a0-000a000000aa", + "version": "b00000b0-00b0-0b00-00b0-000b000000bb" + }, + "description": "example description", + "name": "example-configuration-name", + "values": { + "collation_server": "latin1_swedish_ci", + "connect_timeout": 120 + } + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-create-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-create-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-create-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-create-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +POST /v1.0/1234/configurations HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-create-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-create-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-create-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-create-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,17 @@ +{ + "configuration": { + "created": "2014-10-30T12:30:00", + "datastore_name": "mysql", + "datastore_version_id": "b00000b0-00b0-0b00-00b0-000b000000bb", + "datastore_version_name": "5.5", + "description": "example description", + "id": "43a6ea86-e959-4735-9e46-a6a5d4a2d80f", + "instance_count": 0, + "name": "example-configuration-name", + "updated": "2014-10-30T12:30:00", + "values": { + "collation_server": "latin1_swedish_ci", + "connect_timeout": 120 + } + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-create-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-create-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-create-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-create-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 431 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-delete-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-delete-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-delete-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-delete-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +DELETE /v1.0/1234/configurations/43a6ea86-e959-4735-9e46-a6a5d4a2d80f HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-delete-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-delete-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-delete-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-delete-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 202 Accepted +Content-Type: application/json +Content-Length: 0 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-detach-from-instance-request.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-detach-from-instance-request.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-detach-from-instance-request.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-detach-from-instance-request.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +{ + "instance": { + "configuration": "" + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-detach-from-instance-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-detach-from-instance-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-detach-from-instance-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-detach-from-instance-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +PUT /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7 HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-detach-from-instance-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-detach-from-instance-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-detach-from-instance-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-detach-from-instance-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 202 Accepted +Content-Type: application/json +Content-Length: 0 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-details-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-details-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-details-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-details-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +GET /v1.0/1234/configurations/43a6ea86-e959-4735-9e46-a6a5d4a2d80f HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-details-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-details-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-details-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-details-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,17 @@ +{ + "configuration": { + "created": "2014-10-30T12:30:00", + "datastore_name": "mysql", + "datastore_version_id": "b00000b0-00b0-0b00-00b0-000b000000bb", + "datastore_version_name": "5.5", + "description": "example description", + "id": "43a6ea86-e959-4735-9e46-a6a5d4a2d80f", + "instance_count": 0, + "name": "example-configuration-name", + "updated": "2014-10-30T12:30:00", + "values": { + "collation_server": "latin1_swedish_ci", + "connect_timeout": 120 + } + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-details-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-details-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-details-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-details-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 431 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-edit-parameters-request.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-edit-parameters-request.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-edit-parameters-request.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-edit-parameters-request.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +{ + "configuration": { + "values": { + "connect_timeout": 300 + } + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-edit-parameters-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-edit-parameters-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-edit-parameters-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-edit-parameters-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +PATCH /v1.0/1234/configurations/43a6ea86-e959-4735-9e46-a6a5d4a2d80f HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-edit-parameters-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-edit-parameters-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-edit-parameters-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-edit-parameters-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 0 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-list-instances-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-list-instances-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-list-instances-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-list-instances-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +GET /v1.0/1234/configurations/43a6ea86-e959-4735-9e46-a6a5d4a2d80f/instances HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-list-instances-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-list-instances-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-list-instances-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-list-instances-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,8 @@ +{ + "instances": [ + { + "id": "44b277eb-39be-4921-be31-3d61b43651d7", + "name": "json_rack_instance" + } + ] +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-list-instances-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-list-instances-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-list-instances-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-list-instances-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 93 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-list-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-list-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-list-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-list-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +GET /v1.0/1234/configurations HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-list-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-list-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-list-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-list-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,14 @@ +{ + "configurations": [ + { + "created": "2014-10-30T12:30:00", + "datastore_name": "mysql", + "datastore_version_id": "b00000b0-00b0-0b00-00b0-000b000000bb", + "datastore_version_name": "5.5", + "description": "example description", + "id": "43a6ea86-e959-4735-9e46-a6a5d4a2d80f", + "name": "example-configuration-name", + "updated": "2014-10-30T12:30:00" + } + ] +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-list-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-list-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-list-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-list-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 336 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-parameter-for-datastore-version-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-parameter-for-datastore-version-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-parameter-for-datastore-version-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-parameter-for-datastore-version-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +GET /v1.0/1234/datastores/a00000a0-00a0-0a00-00a0-000a000000aa/versions/b00000b0-00b0-0b00-00b0-000b000000bb/parameters/collation_server HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-parameter-for-datastore-version-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-parameter-for-datastore-version-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-parameter-for-datastore-version-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-parameter-for-datastore-version-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +{ + "datastore_version_id": "b00000b0-00b0-0b00-00b0-000b000000bb", + "min": 0, + "name": "collation_server", + "restart_required": false, + "type": "string" +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-parameter-for-datastore-version-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-parameter-for-datastore-version-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-parameter-for-datastore-version-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-parameter-for-datastore-version-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 147 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-parameters-for-datastore-version-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-parameters-for-datastore-version-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-parameters-for-datastore-version-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-parameters-for-datastore-version-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +GET /v1.0/1234/datastores/a00000a0-00a0-0a00-00a0-000a000000aa/versions/b00000b0-00b0-0b00-00b0-000b000000bb/parameters HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-parameters-for-datastore-version-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-parameters-for-datastore-version-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-parameters-for-datastore-version-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-parameters-for-datastore-version-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,51 @@ +{ + "configuration-parameters": [ + { + "datastore_version_id": "b00000b0-00b0-0b00-00b0-000b000000bb", + "min": 0, + "name": "collation_server", + "restart_required": false, + "type": "string" + }, + { + "datastore_version_id": "b00000b0-00b0-0b00-00b0-000b000000bb", + "max": 65535, + "min": 0, + "name": "connect_timeout", + "restart_required": false, + "type": "integer" + }, + { + "datastore_version_id": "b00000b0-00b0-0b00-00b0-000b000000bb", + "max": 57671680, + "min": 0, + "name": "innodb_buffer_pool_size", + "restart_required": true, + "type": "integer" + }, + { + "datastore_version_id": "b00000b0-00b0-0b00-00b0-000b000000bb", + "max": 4294967296, + "min": 0, + "name": "join_buffer_size", + "restart_required": false, + "type": "integer" + }, + { + "datastore_version_id": "b00000b0-00b0-0b00-00b0-000b000000bb", + "max": 4294967296, + "min": 0, + "name": "key_buffer_size", + "restart_required": false, + "type": "integer" + }, + { + "datastore_version_id": "b00000b0-00b0-0b00-00b0-000b000000bb", + "max": 1, + "min": 0, + "name": "local_infile", + "restart_required": false, + "type": "integer" + } + ] +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-parameters-for-datastore-version-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-parameters-for-datastore-version-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-parameters-for-datastore-version-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-parameters-for-datastore-version-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 1008 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-parameters-without-datastore-version-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-parameters-without-datastore-version-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-parameters-without-datastore-version-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-parameters-without-datastore-version-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +GET /v1.0/1234/datastores/versions/b00000b0-00b0-0b00-00b0-000b000000bb/parameters HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-parameters-without-datastore-version-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-parameters-without-datastore-version-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-parameters-without-datastore-version-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-parameters-without-datastore-version-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,51 @@ +{ + "configuration-parameters": [ + { + "datastore_version_id": "b00000b0-00b0-0b00-00b0-000b000000bb", + "min": 0, + "name": "collation_server", + "restart_required": false, + "type": "string" + }, + { + "datastore_version_id": "b00000b0-00b0-0b00-00b0-000b000000bb", + "max": 65535, + "min": 0, + "name": "connect_timeout", + "restart_required": false, + "type": "integer" + }, + { + "datastore_version_id": "b00000b0-00b0-0b00-00b0-000b000000bb", + "max": 57671680, + "min": 0, + "name": "innodb_buffer_pool_size", + "restart_required": true, + "type": "integer" + }, + { + "datastore_version_id": "b00000b0-00b0-0b00-00b0-000b000000bb", + "max": 4294967296, + "min": 0, + "name": "join_buffer_size", + "restart_required": false, + "type": "integer" + }, + { + "datastore_version_id": "b00000b0-00b0-0b00-00b0-000b000000bb", + "max": 4294967296, + "min": 0, + "name": "key_buffer_size", + "restart_required": false, + "type": "integer" + }, + { + "datastore_version_id": "b00000b0-00b0-0b00-00b0-000b000000bb", + "max": 1, + "min": 0, + "name": "local_infile", + "restart_required": false, + "type": "integer" + } + ] +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-parameters-without-datastore-version-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-parameters-without-datastore-version-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-parameters-without-datastore-version-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-parameters-without-datastore-version-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 1008 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-parameter-without-datastore-version-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-parameter-without-datastore-version-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-parameter-without-datastore-version-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-parameter-without-datastore-version-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +GET /v1.0/1234/datastores/versions/b00000b0-00b0-0b00-00b0-000b000000bb/parameters/collation_server HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-parameter-without-datastore-version-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-parameter-without-datastore-version-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-parameter-without-datastore-version-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-parameter-without-datastore-version-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +{ + "datastore_version_id": "b00000b0-00b0-0b00-00b0-000b000000bb", + "min": 0, + "name": "collation_server", + "restart_required": false, + "type": "string" +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-parameter-without-datastore-version-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-parameter-without-datastore-version-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-parameter-without-datastore-version-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-parameter-without-datastore-version-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 147 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-update-parameters-request.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-update-parameters-request.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-update-parameters-request.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-update-parameters-request.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,10 @@ +{ + "configuration": { + "description": "example updated description", + "name": "example-updated-name", + "values": { + "collation_server": "utf8_unicode_ci", + "connect_timeout": 150 + } + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-update-parameters-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-update-parameters-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-update-parameters-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-update-parameters-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +PUT /v1.0/1234/configurations/43a6ea86-e959-4735-9e46-a6a5d4a2d80f HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-update-parameters-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-update-parameters-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-configuration-update-parameters-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-configuration-update-parameters-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 202 Accepted +Content-Type: application/json +Content-Length: 0 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-create-config-group-request.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-create-config-group-request.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-create-config-group-request.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-create-config-group-request.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,15 @@ +{ + "configuration": { + "datastore": [ + { + "type": "mysql" + } + ], + "values": [ + { + "sync_binlog": 1 + } + ], + "name": "group1" + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-create-config-group-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-create-config-group-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-create-config-group-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-create-config-group-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +POST /v1.0/1234/configurations HTTP/1.1 +User-Agent: python-example-client +Host: openstack.example.com +X-Auth-Token: d6cafa5b-e0c7-4ab8-948e-7c95f2acd031 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-create-config-group-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-create-config-group-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-create-config-group-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-create-config-group-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,14 @@ +{ + "updated": "2015-07-01T16:38:27", + "name": "group1", + "created": "2015-07-01T16:38:27", + "instance_count": 0, + "values": { + "sync_binlog": 1 + }, + "datastore_version_id": "2dc7faa0-efff-4c2b-8cff-bcd949c518a5", + "id": "2aa51628-5c42-4086-8682-137caffd2ba6", + "datastore_name": "mysql", + "datastore_version_name": "5.6", + "description": null +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-create-config-group-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-create-config-group-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-create-config-group-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-create-config-group-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 360 +Date: Mon, 6 Jul 2015 21:53:10 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-create-databases-request.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-create-databases-request.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-create-databases-request.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-create-databases-request.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,15 @@ +{ + "databases": [ + { + "character_set": "utf8", + "collate": "utf8_general_ci", + "name": "testingdb" + }, + { + "name": "anotherdb" + }, + { + "name": "oneMoreDB" + } + ] +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-create-databases-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-create-databases-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-create-databases-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-create-databases-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +POST /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7/databases HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-create-databases-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-create-databases-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-create-databases-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-create-databases-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 202 Accepted +Content-Type: application/json +Content-Length: 0 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-create-instance-request.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-create-instance-request.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-create-instance-request.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-create-instance-request.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,30 @@ +{ + "instance": { + "databases": [ + { + "character_set": "utf8", + "collate": "utf8_general_ci", + "name": "sampledb" + }, + { + "name": "nextround" + } + ], + "flavorRef": 1, + "name": "json_rack_instance", + "users": [ + { + "databases": [ + { + "name": "sampledb" + } + ], + "name": "demouser", + "password": "demopassword" + } + ], + "volume": { + "size": 2 + } + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-create-instance-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-create-instance-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-create-instance-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-create-instance-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +POST /v1.0/1234/instances HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-create-instance-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-create-instance-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-create-instance-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-create-instance-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,40 @@ +{ + "instance": { + "created": "2014-10-30T12:30:00", + "datastore": { + "type": "mysql", + "version": "5.5" + }, + "flavor": { + "id": "1", + "links": [ + { + "href": "https://troveapi.org/v1.0/1234/flavors/1", + "rel": "self" + }, + { + "href": "https://troveapi.org/flavors/1", + "rel": "bookmark" + } + ] + }, + "hostname": "e09ad9a3f73309469cf1f43d11e79549caf9acf2.troveexampledb.com", + "id": "44b277eb-39be-4921-be31-3d61b43651d7", + "links": [ + { + "href": "https://troveapi.org/v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7", + "rel": "self" + }, + { + "href": "https://troveapi.org/instances/44b277eb-39be-4921-be31-3d61b43651d7", + "rel": "bookmark" + } + ], + "name": "json_rack_instance", + "status": "BUILD", + "updated": "2014-10-30T12:30:00", + "volume": { + "size": 2 + } + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-create-instance-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-create-instance-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-create-instance-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-create-instance-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 697 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-create-users-request.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-create-users-request.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-create-users-request.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-create-users-request.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,34 @@ +{ + "users": [ + { + "databases": [ + { + "name": "databaseA" + } + ], + "name": "dbuser1", + "password": "password" + }, + { + "databases": [ + { + "name": "databaseB" + }, + { + "name": "databaseC" + } + ], + "name": "dbuser2", + "password": "password" + }, + { + "databases": [ + { + "name": "databaseD" + } + ], + "name": "dbuser3", + "password": "password" + } + ] +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-create-users-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-create-users-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-create-users-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-create-users-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +POST /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7/users HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-create-users-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-create-users-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-create-users-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-create-users-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 202 Accepted +Content-Type: application/json +Content-Length: 0 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-datastore-by-id-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-datastore-by-id-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-datastore-by-id-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-datastore-by-id-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +GET /v1.0/1234/datastores/a00000a0-00a0-0a00-00a0-000a000000aa HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-datastore-by-id-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-datastore-by-id-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-datastore-by-id-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-datastore-by-id-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,33 @@ +{ + "datastore": { + "default_version": "b00000b0-00b0-0b00-00b0-000b000000bb", + "id": "a00000a0-00a0-0a00-00a0-000a000000aa", + "links": [ + { + "href": "https://troveapi.org/v1.0/1234/datastores/a00000a0-00a0-0a00-00a0-000a000000aa", + "rel": "self" + }, + { + "href": "https://troveapi.org/datastores/a00000a0-00a0-0a00-00a0-000a000000aa", + "rel": "bookmark" + } + ], + "name": "mysql", + "versions": [ + { + "id": "b00000b0-00b0-0b00-00b0-000b000000bb", + "links": [ + { + "href": "https://troveapi.org/v1.0/1234/datastores/versions/b00000b0-00b0-0b00-00b0-000b000000bb", + "rel": "self" + }, + { + "href": "https://troveapi.org/datastores/versions/b00000b0-00b0-0b00-00b0-000b000000bb", + "rel": "bookmark" + } + ], + "name": "5.5" + } + ] + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-datastore-by-id-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-datastore-by-id-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-datastore-by-id-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-datastore-by-id-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 678 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-datastore-parameters-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-datastore-parameters-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-datastore-parameters-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-datastore-parameters-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,258 @@ +{ + "configuration-parameters": [ + { + "name": "myisam_sort_buffer_size", + "min": 4096, + "max": 18446744073709552000, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + }, + { + "name": "sync_binlog", + "min": 0, + "max": 4294967295, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + }, + { + "name": "max_allowed_packet", + "min": 1024, + "max": 1073741824, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + }, + { + "type": "string", + "name": "character_set_connection", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758", + "restart_required": false + }, + { + "name": "autocommit", + "min": 0, + "max": 1, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + }, + { + "type": "string", + "name": "character_set_client", + "datastore_version_id": "f597f709-70ef474d-ac18-2c6abd35a758", + "restart_required": false + }, + { + "name": "join_buffer_size", + "min": 128, + "max": 18446744073709548000, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + }, + { + "name": "local_infile", + "min": 0, + "max": 1, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + }, + { + "name": "auto_increment_offset", + "min": 1, + "max": 65535, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + }, + { + "name": "max_connections", + "min": 1, + "max": 100000, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + }, + { + "name": "bulk_insert_buffer_size", + "min": 0, + "max": 18446744073709552000, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef474dac18-2c6abd35a758" + }, + { + "name": "sort_buffer_size", + "min": 32768, + "max": 18446744073709552000, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + }, + { + "name": "innodb_log_buffer_size", + "min": 262144, + "max": 4294967295, + "restart_required": true, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + }, + { + "name": "innodb_file_per_table", + "min": 0, + "max": 1, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + }, + { + "type": "string", + "name": "character_set_server", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758", + "restart_required": false + }, + { + "name": "innodb_buffer_pool_size", + "min": 5242880, + "max": 18446744073709552000, + "restart_required": true, + "type": "integer", + "datastore_version_id": "f597f709-70ef474dac18-2c6abd35a758" + }, + { + "type": "string", + "name": "collation_server", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758", + "restart_required": false + }, + { + "type": "string", + "name": "character_set_filesystem", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758", + "restart_required": false + }, + { + "type": "string", + "name": "collation_database", + "datastore_version_id": "f597f709-70ef474d-ac18-2c6abd35a758", + "restart_required": false + }, + { + "name": "innodb_flush_log_at_trx_commit", + "min": 0, + "max": 2, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + }, + { + "name": "interactive_timeout", + "min": 1, + "max": 65535, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + }, + { + "name": "max_user_connections", + "min": 0, + "max": 4294967295, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + }, + { + "name": "innodb_thread_concurrency", + "min": 0, + "max": 1000, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + }, + { + "name": "innodb_open_files", + "min": 10, + "max": 4294967295, + "restart_required": true, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + }, + { + "name": "key_buffer_size", + "min": 8, + "max": 4294967295, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef474d-ac18-2c6abd35a758" + }, + { + "name": "connect_timeout", + "min": 2, + "max": 31536000, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef474d-ac18-2c6abd35a758" + }, + { + "type": "string", + "name": "collation_connection", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758", + "restart_required": false + }, + { + "type": "string", + "name": "character_set_database", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758", + "restart_required": false + }, + { + "name": "auto_increment_increment", + "min": 1, + "max": 65535, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + }, + { + "name": "max_connect_errors", + "min": 1, + "max": 18446744073709552000, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + }, + { + "type": "string", + "name": "character_set_results", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758", + "restart_required": false + }, + { + "name": "expire_logs_days", + "min": 0, + "max": 99, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + }, + { + "name": "wait_timeout", + "min": 1, + "max": 31536000, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef474d-ac18-2c6abd35a758" + }, + { + "name": "server_id", + "min": 0, + "max": 4294967295, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + } + ] +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-datastores-list-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-datastores-list-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-datastores-list-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-datastores-list-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +GET /v1.0/1234/datastores HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-datastores-list-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-datastores-list-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-datastores-list-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-datastores-list-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,35 @@ +{ + "datastores": [ + { + "default_version": "b00000b0-00b0-0b00-00b0-000b000000bb", + "id": "a00000a0-00a0-0a00-00a0-000a000000aa", + "links": [ + { + "href": "https://troveapi.org/v1.0/1234/datastores/a00000a0-00a0-0a00-00a0-000a000000aa", + "rel": "self" + }, + { + "href": "https://troveapi.org/datastores/a00000a0-00a0-0a00-00a0-000a000000aa", + "rel": "bookmark" + } + ], + "name": "mysql", + "versions": [ + { + "id": "b00000b0-00b0-0b00-00b0-000b000000bb", + "links": [ + { + "href": "https://troveapi.org/v1.0/1234/datastores/versions/b00000b0-00b0-0b00-00b0-000b000000bb", + "rel": "self" + }, + { + "href": "https://troveapi.org/datastores/versions/b00000b0-00b0-0b00-00b0-000b000000bb", + "rel": "bookmark" + } + ], + "name": "5.5" + } + ] + } + ] +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-datastores-list-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-datastores-list-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-datastores-list-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-datastores-list-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 681 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-datastore-version-by-id-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-datastore-version-by-id-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-datastore-version-by-id-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-datastore-version-by-id-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +GET /v1.0/1234/datastores/a00000a0-00a0-0a00-00a0-000a000000aa/versions/b00000b0-00b0-0b00-00b0-000b000000bb HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-datastore-version-by-id-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-datastore-version-by-id-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-datastore-version-by-id-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-datastore-version-by-id-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,17 @@ +{ + "version": { + "datastore": "a00000a0-00a0-0a00-00a0-000a000000aa", + "id": "b00000b0-00b0-0b00-00b0-000b000000bb", + "links": [ + { + "href": "https://troveapi.org/v1.0/1234/datastores/versions/b00000b0-00b0-0b00-00b0-000b000000bb", + "rel": "self" + }, + { + "href": "https://troveapi.org/datastores/versions/b00000b0-00b0-0b00-00b0-000b000000bb", + "rel": "bookmark" + } + ], + "name": "5.5" + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-datastore-version-by-id-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-datastore-version-by-id-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-datastore-version-by-id-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-datastore-version-by-id-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 368 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-datastore-versions-list-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-datastore-versions-list-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-datastore-versions-list-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-datastore-versions-list-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +GET /v1.0/1234/datastores/a00000a0-00a0-0a00-00a0-000a000000aa/versions HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-datastore-versions-list-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-datastore-versions-list-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-datastore-versions-list-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-datastore-versions-list-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,19 @@ +{ + "versions": [ + { + "datastore": "a00000a0-00a0-0a00-00a0-000a000000aa", + "id": "b00000b0-00b0-0b00-00b0-000b000000bb", + "links": [ + { + "href": "https://troveapi.org/v1.0/1234/datastores/versions/b00000b0-00b0-0b00-00b0-000b000000bb", + "rel": "self" + }, + { + "href": "https://troveapi.org/datastores/versions/b00000b0-00b0-0b00-00b0-000b000000bb", + "rel": "bookmark" + } + ], + "name": "5.5" + } + ] +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-datastore-versions-list-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-datastore-versions-list-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-datastore-versions-list-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-datastore-versions-list-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 371 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-delete-config-group-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-delete-config-group-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-delete-config-group-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-delete-config-group-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,6 @@ +DELETE /v1.0/1234/configurations/692d8418-7a8f-47f1-8060-59846c6e024f HTTP/1.1 +User-Agent: python-example-client +Host: openstack.example.com +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-delete-databases-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-delete-databases-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-delete-databases-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-delete-databases-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +DELETE /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7/databases/testingdb HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-delete-databases-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-delete-databases-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-delete-databases-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-delete-databases-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 202 Accepted +Content-Type: application/json +Content-Length: 0 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-delete-instance-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-delete-instance-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-delete-instance-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-delete-instance-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +DELETE /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7 HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-delete-instance-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-delete-instance-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-delete-instance-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-delete-instance-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 202 Accepted +Content-Type: application/json +Content-Length: 0 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-delete-root-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-delete-root-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-delete-root-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-delete-root-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +DELETE /v1.0/1234/instances/692d8418-7a8f-47f1-8060-59846c6e024f/root HTTP/1.1 +User-Agent: python-example-client +Host: openstack.example.com +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-delete-users-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-delete-users-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-delete-users-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-delete-users-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +DELETE /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7/users/demouser HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-delete-users-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-delete-users-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-delete-users-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-delete-users-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 202 Accepted +Content-Type: application/json +Content-Length: 0 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-detach-config-group-request.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-detach-config-group-request.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-detach-config-group-request.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-detach-config-group-request.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,3 @@ +{ + "instance": {} +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-detach-config-group-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-detach-config-group-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-detach-config-group-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-detach-config-group-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +PUT /v1.0/1234/instances/4c93c73b-d6d0-47d7-b8c6-b699d19d7de9 HTTP/1.1 +User-Agent: python-example-client +Host: openstack.example.com +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-detach-config-group-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-detach-config-group-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-detach-config-group-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-detach-config-group-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 202 OK +Content-Type: application/json +Content-Length: 0 +Date: Mon, 13 Jul 2015 19:53:04 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-detach-replica-request.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-detach-replica-request.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-detach-replica-request.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-detach-replica-request.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,6 @@ +{ + "instance": { + "replica_of": null, + "slave_of": null + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-detach-replica-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-detach-replica-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-detach-replica-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-detach-replica-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +PATCH /v1.0/1234/instances/4c93c73b-d6d0-47d7-b8c6-b699d19d7de9 HTTP/1.1 +User-Agent: python-example-client +Host: openstack.example.com +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-detach-replica-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-detach-replica-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-detach-replica-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-detach-replica-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 202 OK +Content-Type: application/json +Content-Length: 0 +Date: Mon, 13 Jul 2015 19:53:04 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-disable-root-user-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-disable-root-user-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-disable-root-user-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-disable-root-user-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +DELETE /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7/root HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-disable-root-user-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-disable-root-user-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-disable-root-user-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-disable-root-user-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 0 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-enable-root-user-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-enable-root-user-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-enable-root-user-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-enable-root-user-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +POST /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7/root HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-enable-root-user-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-enable-root-user-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-enable-root-user-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-enable-root-user-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,6 @@ +{ + "user": { + "name": "root", + "password": "12345" + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-enable-root-user-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-enable-root-user-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-enable-root-user-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-enable-root-user-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 47 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-faults-badRequest.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-faults-badRequest.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-faults-badRequest.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-faults-badRequest.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,6 @@ +{ + "badRequest": { + "code": 400, + "message": "Volume 'size' needs to be a positive integer value, -1.0 cannot be accepted." + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-faults-instanceFault.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-faults-instanceFault.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-faults-instanceFault.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-faults-instanceFault.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,6 @@ +{ + "instanceFault": { + "code": 500, + "message": "The server has either erred or is incapable of performing the requested operation." + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-faults-itemNotFound.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-faults-itemNotFound.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-faults-itemNotFound.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-faults-itemNotFound.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,6 @@ +{ + "itemNotFound": { + "code": 404, + "message": "The resource could not be found." + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-flavors-by-id-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-flavors-by-id-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-flavors-by-id-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-flavors-by-id-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +GET /v1.0/1234/flavors/1 HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-flavors-by-id-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-flavors-by-id-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-flavors-by-id-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-flavors-by-id-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,19 @@ +{ + "flavor": { + "id": 1, + "links": [ + { + "href": "https://troveapi.org/v1.0/1234/flavors/1", + "rel": "self" + }, + { + "href": "https://troveapi.org/flavors/1", + "rel": "bookmark" + } + ], + "name": "m1.tiny", + "ram": 512, + "str_id": "1", + "vcpus": 10 + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-flavors-by-id-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-flavors-by-id-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-flavors-by-id-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-flavors-by-id-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 227 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-flavors-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-flavors-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-flavors-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-flavors-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +GET /v1.0/1234/flavors HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-flavors-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-flavors-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-flavors-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-flavors-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,225 @@ +{ + "flavors": [ + { + "id": 1, + "links": [ + { + "href": "https://troveapi.org/v1.0/1234/flavors/1", + "rel": "self" + }, + { + "href": "https://troveapi.org/flavors/1", + "rel": "bookmark" + } + ], + "name": "m1.tiny", + "ram": 512, + "str_id": "1", + "vcpus": 10 + }, + { + "id": 2, + "links": [ + { + "href": "https://troveapi.org/v1.0/1234/flavors/2", + "rel": "self" + }, + { + "href": "https://troveapi.org/flavors/2", + "rel": "bookmark" + } + ], + "name": "m1.small", + "ram": 2048, + "str_id": "2", + "vcpus": 10 + }, + { + "id": 3, + "links": [ + { + "href": "https://troveapi.org/v1.0/1234/flavors/3", + "rel": "self" + }, + { + "href": "https://troveapi.org/flavors/3", + "rel": "bookmark" + } + ], + "name": "m1.medium", + "ram": 4096, + "str_id": "3", + "vcpus": 10 + }, + { + "id": 4, + "links": [ + { + "href": "https://troveapi.org/v1.0/1234/flavors/4", + "rel": "self" + }, + { + "href": "https://troveapi.org/flavors/4", + "rel": "bookmark" + } + ], + "name": "m1.large", + "ram": 8192, + "str_id": "4", + "vcpus": 10 + }, + { + "id": 5, + "links": [ + { + "href": "https://troveapi.org/v1.0/1234/flavors/5", + "rel": "self" + }, + { + "href": "https://troveapi.org/flavors/5", + "rel": "bookmark" + } + ], + "name": "m1.xlarge", + "ram": 16384, + "str_id": "5", + "vcpus": 10 + }, + { + "id": 6, + "links": [ + { + "href": "https://troveapi.org/v1.0/1234/flavors/6", + "rel": "self" + }, + { + "href": "https://troveapi.org/flavors/6", + "rel": "bookmark" + } + ], + "name": "m1.nano", + "ram": 64, + "str_id": "6", + "vcpus": 10 + }, + { + "id": 7, + "links": [ + { + "href": "https://troveapi.org/v1.0/1234/flavors/7", + "rel": "self" + }, + { + "href": "https://troveapi.org/flavors/7", + "rel": "bookmark" + } + ], + "name": "m1.micro", + "ram": 128, + "str_id": "7", + "vcpus": 10 + }, + { + "id": 8, + "links": [ + { + "href": "https://troveapi.org/v1.0/1234/flavors/8", + "rel": "self" + }, + { + "href": "https://troveapi.org/flavors/8", + "rel": "bookmark" + } + ], + "name": "m1.rd-smaller", + "ram": 768, + "str_id": "8", + "vcpus": 10 + }, + { + "id": 9, + "links": [ + { + "href": "https://troveapi.org/v1.0/1234/flavors/9", + "rel": "self" + }, + { + "href": "https://troveapi.org/flavors/9", + "rel": "bookmark" + } + ], + "name": "tinier", + "ram": 506, + "str_id": "9", + "vcpus": 10 + }, + { + "id": 10, + "links": [ + { + "href": "https://troveapi.org/v1.0/1234/flavors/10", + "rel": "self" + }, + { + "href": "https://troveapi.org/flavors/10", + "rel": "bookmark" + } + ], + "name": "m1.rd-tiny", + "ram": 512, + "str_id": "10", + "vcpus": 10 + }, + { + "id": 11, + "links": [ + { + "href": "https://troveapi.org/v1.0/1234/flavors/11", + "rel": "self" + }, + { + "href": "https://troveapi.org/flavors/11", + "rel": "bookmark" + } + ], + "name": "eph.rd-tiny", + "ram": 512, + "str_id": "11", + "vcpus": 10 + }, + { + "id": 12, + "links": [ + { + "href": "https://troveapi.org/v1.0/1234/flavors/12", + "rel": "self" + }, + { + "href": "https://troveapi.org/flavors/12", + "rel": "bookmark" + } + ], + "name": "eph.rd-smaller", + "ram": 768, + "str_id": "12", + "vcpus": 10 + }, + { + "id": null, + "links": [ + { + "href": "https://troveapi.org/v1.0/1234/flavors/custom", + "rel": "self" + }, + { + "href": "https://troveapi.org/flavors/custom", + "rel": "bookmark" + } + ], + "name": "custom.small", + "ram": 512, + "str_id": "custom", + "vcpus": 10 + } + ] +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-flavors-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-flavors-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-flavors-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-flavors-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 2899 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-get-default-instance-configuration-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-get-default-instance-configuration-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-get-default-instance-configuration-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-get-default-instance-configuration-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +GET /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7/configuration HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-get-default-instance-configuration-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-get-default-instance-configuration-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-get-default-instance-configuration-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-get-default-instance-configuration-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,45 @@ +{ + "instance": { + "configuration": { + "basedir": "/usr", + "connect_timeout": 15, + "datadir": "/var/lib/mysql/data", + "default_storage_engine": "innodb", + "innodb_buffer_pool_size": "150M", + "innodb_data_file_path": "ibdata1:10M:autoextend", + "innodb_file_per_table": 1, + "innodb_log_buffer_size": "25M", + "innodb_log_file_size": "50M", + "innodb_log_files_in_group": 2, + "join_buffer_size": "1M", + "key_buffer_size": "50M", + "local-infile": 0, + "max_allowed_packet": "1024K", + "max_connections": 100, + "max_heap_table_size": "16M", + "max_user_connections": 100, + "myisam-recover-options": "BACKUP,FORCE", + "open_files_limit": 512, + "pid-file": "/var/run/mysqld/mysqld.pid", + "socket": "/var/run/mysqld/mysqld.sock", + "port": 3306, + "query_cache_limit": "1M", + "query_cache_size": "8M", + "query_cache_type": 1, + "read_buffer_size": "512K", + "read_rnd_buffer_size": "512K", + "server_id": 271898715, + "skip-external-locking": 1, + "sort_buffer_size": "1M", + "table_definition_cache": 256, + "table_open_cache": 256, + "thread_cache_size": 4, + "thread_stack": "192K", + "tmp_table_size": "16M", + "tmpdir": "/var/tmp", + "user": "mysql", + "wait_timeout": 120, + "performance_schema": "ON" + } + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-get-default-instance-configuration-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-get-default-instance-configuration-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-get-default-instance-configuration-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-get-default-instance-configuration-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 1135 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-grant-user-access-request.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-grant-user-access-request.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-grant-user-access-request.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-grant-user-access-request.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,10 @@ +{ + "databases": [ + { + "name": "databaseC" + }, + { + "name": "databaseD" + } + ] +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-grant-user-access-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-grant-user-access-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-grant-user-access-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-grant-user-access-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,6 @@ +PUT /v1.0/1234/instances/692d8418-7a8f-47f1-8060-59846c6e024f/users/exampleuser/databases HTTP/1.1 +User-Agent: python-example-client +Host: ord.databases.api.rackspacecloud.com +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-grant-user-access-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-grant-user-access-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-grant-user-access-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-grant-user-access-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,4 @@ +HTTP/1.1 202 Accepted +Content-Type: application/json +Content-Length: 0 +Date: Wed, 27 Jun 2012 23:11:19 GMT \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-eject-replica-request.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-eject-replica-request.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-eject-replica-request.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-eject-replica-request.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,3 @@ +{ + "eject_replica_source": {} +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-eject-replica-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-eject-replica-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-eject-replica-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-eject-replica-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,6 @@ +POST /v1.0/1234/instances/13d940c4-70bb-4ff4-8866-6ee9ab5e5cae/action HTTP/1.1 +User-Agent: python-example-client +Host: openstack.example.com +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-promote-replica-request.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-promote-replica-request.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-promote-replica-request.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-promote-replica-request.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,3 @@ +{ + "promote_to_replica_source": {} +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-promote-replica-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-promote-replica-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-promote-replica-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-promote-replica-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,6 @@ +POST /v1.0/1234/instances/13d940c4-70bb-4ff4-8866-6ee9ab5e5cae/action HTTP/1.1 +User-Agent: python-example-client +Host: openstack.example.com +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-reboot-request.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-reboot-request.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-reboot-request.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-reboot-request.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,3 @@ +{ + "reboot": {} +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-reboot-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-reboot-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-reboot-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-reboot-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +POST /v1.0/1234/mgmt/instances/44b277eb-39be-4921-be31-3d61b43651d7/action HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-reboot-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-reboot-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-reboot-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-reboot-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 202 Accepted +Content-Type: application/json +Content-Length: 0 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-resize-flavor-request.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-resize-flavor-request.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-resize-flavor-request.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-resize-flavor-request.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +{ + "resize": { + "flavorRef": 3 + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-resize-flavor-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-resize-flavor-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-resize-flavor-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-resize-flavor-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +POST /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7/action HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-resize-flavor-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-resize-flavor-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-resize-flavor-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-resize-flavor-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 202 Accepted +Content-Type: application/json +Content-Length: 0 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-resize-instance-request.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-resize-instance-request.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-resize-instance-request.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-resize-instance-request.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +{ + "resize": { + "flavorRef": "https://ord.databases.api.rackspacecloud.com/v1.0/1234/flavors/2" + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-resize-instance-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-resize-instance-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-resize-instance-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-resize-instance-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,6 @@ +POST /v1.0/1234/instances/23a3d4fb-3731-497b-afd4-bf25bde2b5fc/action HTTP/1.1 +User-Agent: python-example-client +Host: ord.databases.api.rackspacecloud.com +X-Auth-Token: 2eeb3252-0164-40f5-8fb7-85df5faa2698 +Accept: application/json +Content-Type: application/json \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-resize-instance-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-resize-instance-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-resize-instance-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-resize-instance-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,4 @@ +HTTP/1.1 202 Accepted +Content-Type: text/plain; charset=UTF-8 +Content-Length: 58 +Date: Mon, 06 Feb 2012 21:28:10 GMT \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-resize-volume-request.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-resize-volume-request.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-resize-volume-request.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-resize-volume-request.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +{ + "resize": { + "volume": { + "size": 4 + } + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-resize-volume-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-resize-volume-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-resize-volume-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-resize-volume-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +POST /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7/action HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-resize-volume-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-resize-volume-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-resize-volume-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-resize-volume-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 202 Accepted +Content-Type: application/json +Content-Length: 0 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-restart-request.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-restart-request.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-restart-request.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-restart-request.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,3 @@ +{ + "restart": {} +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-restart-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-restart-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-restart-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-restart-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +POST /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7/action HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-restart-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-restart-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-restart-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-restart-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 202 Accepted +Content-Type: application/json +Content-Length: 0 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-instances-index-pagination-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instances-index-pagination-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-instances-index-pagination-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instances-index-pagination-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +GET /v1.0/1234/instances?limit=2 HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-instances-index-pagination-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instances-index-pagination-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-instances-index-pagination-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instances-index-pagination-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,76 @@ +{ + "instances": [ + { + "datastore": { + "type": "mysql", + "version": "5.5" + }, + "flavor": { + "id": "1", + "links": [ + { + "href": "https://troveapi.org/v1.0/1234/flavors/1", + "rel": "self" + }, + { + "href": "https://troveapi.org/flavors/1", + "rel": "bookmark" + } + ] + }, + "hostname": "e09ad9a3f73309469cf1f43d11e79549caf9acf2.troveexampledb.com", + "id": "43a6ea86-e959-4735-9e46-a6a5d4a2d80f", + "links": [ + { + "href": "https://troveapi.org/v1.0/1234/instances/43a6ea86-e959-4735-9e46-a6a5d4a2d80f", + "rel": "self" + }, + { + "href": "https://troveapi.org/instances/43a6ea86-e959-4735-9e46-a6a5d4a2d80f", + "rel": "bookmark" + } + ], + "name": "The Third Instance", + "status": "ACTIVE", + "volume": { + "size": 2 + } + }, + { + "datastore": { + "type": "mysql", + "version": "5.5" + }, + "flavor": { + "id": "1", + "links": [ + { + "href": "https://troveapi.org/v1.0/1234/flavors/1", + "rel": "self" + }, + { + "href": "https://troveapi.org/flavors/1", + "rel": "bookmark" + } + ] + }, + "hostname": "e09ad9a3f73309469cf1f43d11e79549caf9acf2.troveexampledb.com", + "id": "44b277eb-39be-4921-be31-3d61b43651d7", + "links": [ + { + "href": "https://troveapi.org/v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7", + "rel": "self" + }, + { + "href": "https://troveapi.org/instances/44b277eb-39be-4921-be31-3d61b43651d7", + "rel": "bookmark" + } + ], + "name": "json_rack_instance", + "status": "ACTIVE", + "volume": { + "size": 2 + } + } + ] +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-instances-index-pagination-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instances-index-pagination-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-instances-index-pagination-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instances-index-pagination-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 1251 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-instances-index-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instances-index-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-instances-index-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instances-index-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +GET /v1.0/1234/instances HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-instances-index-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instances-index-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-instances-index-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instances-index-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,40 @@ +{ + "instances": [ + { + "datastore": { + "type": "mysql", + "version": "5.5" + }, + "flavor": { + "id": "1", + "links": [ + { + "href": "https://troveapi.org/v1.0/1234/flavors/1", + "rel": "self" + }, + { + "href": "https://troveapi.org/flavors/1", + "rel": "bookmark" + } + ] + }, + "hostname": "e09ad9a3f73309469cf1f43d11e79549caf9acf2.troveexampledb.com", + "id": "44b277eb-39be-4921-be31-3d61b43651d7", + "links": [ + { + "href": "https://troveapi.org/v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7", + "rel": "self" + }, + { + "href": "https://troveapi.org/instances/44b277eb-39be-4921-be31-3d61b43651d7", + "rel": "bookmark" + } + ], + "name": "json_rack_instance", + "status": "ACTIVE", + "volume": { + "size": 2 + } + } + ] +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-instances-index-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instances-index-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-instances-index-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instances-index-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 633 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-status-detail-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-status-detail-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-status-detail-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-status-detail-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +GET /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7 HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-status-detail-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-status-detail-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-status-detail-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-status-detail-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,41 @@ +{ + "instance": { + "created": "2014-10-30T12:30:00", + "datastore": { + "type": "mysql", + "version": "5.5" + }, + "flavor": { + "id": "1", + "links": [ + { + "href": "https://troveapi.org/v1.0/1234/flavors/1", + "rel": "self" + }, + { + "href": "https://troveapi.org/flavors/1", + "rel": "bookmark" + } + ] + }, + "hostname": "e09ad9a3f73309469cf1f43d11e79549caf9acf2.troveexampledb.com", + "id": "44b277eb-39be-4921-be31-3d61b43651d7", + "links": [ + { + "href": "https://troveapi.org/v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7", + "rel": "self" + }, + { + "href": "https://troveapi.org/instances/44b277eb-39be-4921-be31-3d61b43651d7", + "rel": "bookmark" + } + ], + "name": "json_rack_instance", + "status": "ACTIVE", + "updated": "2014-10-30T12:30:00", + "volume": { + "size": 2, + "used": 0.16 + } + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-status-detail-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-status-detail-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-instance-status-detail-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-instance-status-detail-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 712 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-cfg-defaults-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-cfg-defaults-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-cfg-defaults-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-cfg-defaults-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +GET /v1.0/1234/instances/instance_1 HTTP/1.1 +User-Agent: python-example-client +Host: openstack.example.com +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-cfg-defaults-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-cfg-defaults-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-cfg-defaults-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-cfg-defaults-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,44 @@ +{ + "instance": { + "configuration": { + "basedir": "/usr", + "connect_timeout": 15, + "datadir": "/var/lib/mysql/data", + "default_storage_engine": "innodb", + "innodb_buffer_pool_size": "150M", + "innodb_data_file_path": "ibdata1:10M:autoextend", + "innodb_file_per_table": 1, + "innodb_log_buffer_size": "25M", + "innodb_log_file_size": "50M", + "innodb_log_files_in_group": 2, + "join_buffer_size": "1M", + "key_buffer_size": "50M", + "local-infile": 0, + "max_allowed_packet": "1024K", + "max_connections": 100, + "max_heap_table_size": "16M", + "max_user_connections": 100, + "myisam-recover-options": "BACKUP,FORCE", + "open_files_limit": 512, + "performance_schema": "ON", + "pid_file": "/var/run/mysqld/mysqld.pid", + "port": 3306, + "query_cache_limit": "1M", + "query_cache_size": "8M", + "query_cache_type": 1, + "read_buffer_size": "512K", + "read_rnd_buffer_size": "512K", + "server_id": 271898715, + "skip-external-locking": 1, + "sort_buffer_size": "1M", + "table_definition_cache": 256, + "table_open_cache": 256, + "thread_cache_size": "4", + "thread_stack": "192K", + "tmp_table_size": "16M", + "tmpdir": "/var/tmp", + "user": "mysql", + "wait_timeout": "120" + } + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-cfg-defaults-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-cfg-defaults-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-cfg-defaults-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-cfg-defaults-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 1559 +Date: Wed, 08 Jul 2015 19:53:04 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-cfg-groups-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-cfg-groups-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-cfg-groups-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-cfg-groups-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +GET /v1.0/1234/configurations HTTP/1.1 +User-Agent: python-example-client +Host: openstack.example.com +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-cfg-groups-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-cfg-groups-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-cfg-groups-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-cfg-groups-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,14 @@ +{ + "configurations": [ + { + "datastore_name": "mysql", + "updated": "2015-07-01T16:38:27", + "name": "group1", + "created": "2015-07-01T16:38:27", + "datastore_version_name": "5.6", + "id": "2aa51628-5c42-4086-8682-137caffd2ba6", + "datastore_version_id": "2dc7faa0-efff-4c2b-8cff-bcd949c518a5", + "description": null + } + ] +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-cfg-groups-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-cfg-groups-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-cfg-groups-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-cfg-groups-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 426 +Date: Tue, 07 Jul 2012 19:53:04 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-databases-pagination-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-databases-pagination-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-databases-pagination-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-databases-pagination-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +GET /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7/databases?limit=1 HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-databases-pagination-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-databases-pagination-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-databases-pagination-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-databases-pagination-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,13 @@ +{ + "databases": [ + { + "name": "anotherdb" + } + ], + "links": [ + { + "href": "https://troveapi.org/v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7/databases?limit=1&marker=anotherdb", + "rel": "next" + } + ] +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-databases-pagination-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-databases-pagination-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-databases-pagination-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-databases-pagination-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 192 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-databases-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-databases-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-databases-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-databases-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +GET /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7/databases HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-databases-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-databases-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-databases-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-databases-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,19 @@ +{ + "databases": [ + { + "name": "anotherdb" + }, + { + "name": "nextround" + }, + { + "name": "oneMoreDB" + }, + { + "name": "sampledb" + }, + { + "name": "testingdb" + } + ] +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-databases-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-databases-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-databases-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-databases-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 129 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-datastore-versions.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-datastore-versions.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-datastore-versions.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-datastore-versions.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,18 @@ +{ + "name": "5.6", + "links": [ + { + "href": "https://10.240.28.38:8779/v1.0/27bee406abb5486e81ef3ff4382aabaf/datastores/versions/2dc7faa0-efff-4c2b-8cff-bcd949c518a5", + "rel": "self" + }, + { + "href": "https://10.240.28.38:8779/datastores/versions/2dc7faa0-efff-4c2b-8cff-bcd949c518a5", + "rel": "bookmark" + } + ], + "image": "b69fbd9e-b31d-46ff-8afb-cbf452f6f835", + "active": 1, + "datastore": "3a8968d8-e5f5-4452-83ca-f6c90b5de06a", + "packages": "mysql-server-5.6", + "id": "2dc7faa0-efff-4c2b-8cff-bcd949c518a5" +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-datastore-versions-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-datastore-versions-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-datastore-versions-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-datastore-versions-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,6 @@ +GET /v1.0/1234/datastores/mysql/versions HTTP/1.1 +User-Agent: python-example-client +Host: openstack.example.com +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-datastore-versions-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-datastore-versions-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-datastore-versions-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-datastore-versions-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,4 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 580 +Date: Tue, 23 Jun 2015 21:58:13 GMT diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-parameters-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-parameters-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-parameters-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-parameters-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,6 @@ +GET /v1.0/1234/datastores/versions/692d8418-7a8f-47f1-8060-59846c6e024f/parameters HTTP/1.1 +User-Agent: python-example-client +Host: openstack.example.com +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-parameters-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-parameters-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-parameters-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-parameters-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,258 @@ +{ + "configuration-parameters": [ + { + "name": "myisam_sort_buffer_size", + "min": 4096, + "max": 18446744073709552000, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + }, + { + "name": "sync_binlog", + "min": 0, + "max": 4294967295, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + }, + { + "name": "max_allowed_packet", + "min": 1024, + "max": 1073741824, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + }, + { + "type": "string", + "name": "character_set_connection", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758", + "restart_required": false + }, + { + "name": "autocommit", + "min": 0, + "max": 1, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + }, + { + "type": "string", + "name": "character_set_client", + "datastore_version_id": "f597f709-70ef474d-ac18-2c6abd35a758", + "restart_required": false + }, + { + "name": "join_buffer_size", + "min": 128, + "max": 18446744073709548000, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + }, + { + "name": "local_infile", + "min": 0, + "max": 1, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + }, + { + "name": "auto_increment_offset", + "min": 1, + "max": 65535, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + }, + { + "name": "max_connections", + "min": 1, + "max": 100000, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + }, + { + "name": "bulk_insert_buffer_size", + "min": 0, + "max": 18446744073709552000, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef474dac18-2c6abd35a758" + }, + { + "name": "sort_buffer_size", + "min": 32768, + "max": 18446744073709552000, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + }, + { + "name": "innodb_log_buffer_size", + "min": 262144, + "max": 4294967295, + "restart_required": true, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + }, + { + "name": "innodb_file_per_table", + "min": 0, + "max": 1, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + }, + { + "type": "string", + "name": "character_set_server", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758", + "restart_required": false + }, + { + "name": "innodb_buffer_pool_size", + "min": 5242880, + "max": 18446744073709552000, + "restart_required": true, + "type": "integer", + "datastore_version_id": "f597f709-70ef474dac18-2c6abd35a758" + }, + { + "type": "string", + "name": "collation_server", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758", + "restart_required": false + }, + { + "type": "string", + "name": "character_set_filesystem", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758", + "restart_required": false + }, + { + "type": "string", + "name": "collation_database", + "datastore_version_id": "f597f709-70ef474d-ac18-2c6abd35a758", + "restart_required": false + }, + { + "name": "innodb_flush_log_at_trx_commit", + "min": 0, + "max": 2, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + }, + { + "name": "interactive_timeout", + "min": 1, + "max": 65535, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + }, + { + "name": "max_user_connections", + "min": 0, + "max": 4294967295, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + }, + { + "name": "innodb_thread_concurrency", + "min": 0, + "max": 1000, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + }, + { + "name": "innodb_open_files", + "min": 10, + "max": 4294967295, + "restart_required": true, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + }, + { + "name": "key_buffer_size", + "min": 8, + "max": 4294967295, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef474d-ac18-2c6abd35a758" + }, + { + "name": "connect_timeout", + "min": 2, + "max": 31536000, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef474d-ac18-2c6abd35a758" + }, + { + "type": "string", + "name": "collation_connection", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758", + "restart_required": false + }, + { + "type": "string", + "name": "character_set_database", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758", + "restart_required": false + }, + { + "name": "auto_increment_increment", + "min": 1, + "max": 65535, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + }, + { + "name": "max_connect_errors", + "min": 1, + "max": 18446744073709552000, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + }, + { + "type": "string", + "name": "character_set_results", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758", + "restart_required": false + }, + { + "name": "expire_logs_days", + "min": 0, + "max": 99, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + }, + { + "name": "wait_timeout", + "min": 1, + "max": 31536000, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef474d-ac18-2c6abd35a758" + }, + { + "name": "server_id", + "min": 0, + "max": 4294967295, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f597f709-70ef-474d-ac18-2c6abd35a758" + } + ] +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-parameters-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-parameters-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-parameters-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-parameters-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,4 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 8454 +Date: Fri, 12 Jun 2015 21:58:13 GMT diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-user-access-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-user-access-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-user-access-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-user-access-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,6 @@ +GET /v1.0/1234/instances/692d8418-7a8f-47f1-8060-59846c6e024f/users/exampleuser/databases HTTP/1.1 +User-Agent: python-example-client +Host: ord.databases.api.rackspacecloud.com +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-user-access-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-user-access-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-user-access-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-user-access-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,10 @@ +{ + "databases": [ + { + "name": "databaseA" + }, + { + "name": "databaseB" + } + ] +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-user-access-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-user-access-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-user-access-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-user-access-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,4 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 0 +Date: Wed, 27 Jun 2012 23:11:19 GMT \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-user-dbs-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-user-dbs-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-user-dbs-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-user-dbs-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,6 @@ +GET /v1.0/1234/instances/692d8418-7a8f-47f1-8060-59846c6e024f/users/exampleuser HTTP/1.1 +User-Agent: python-example-client +Host: ord.databases.api.rackspacecloud.com +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-user-dbs-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-user-dbs-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-user-dbs-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-user-dbs-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,13 @@ +{ + "user": { + "name": "exampleuser", + "databases": [ + { + "name": "databaseA" + }, + { + "name": "databaseB" + } + ] + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-user-dbs-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-user-dbs-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-user-dbs-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-user-dbs-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,4 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 0 +Date: Wed, 27 Jun 2012 23:11:19 GMT \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-users-pagination-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-users-pagination-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-users-pagination-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-users-pagination-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +GET /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7/users?limit=2 HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-users-pagination-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-users-pagination-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-users-pagination-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-users-pagination-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,31 @@ +{ + "links": [ + { + "href": "https://troveapi.org/v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7/users?limit=2&marker=dbuser2%2540%2525", + "rel": "next" + } + ], + "users": [ + { + "databases": [ + { + "name": "databaseA" + } + ], + "host": "%", + "name": "dbuser1" + }, + { + "databases": [ + { + "name": "databaseB" + }, + { + "name": "databaseC" + } + ], + "host": "%", + "name": "dbuser2" + } + ] +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-users-pagination-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-users-pagination-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-users-pagination-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-users-pagination-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 336 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-users-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-users-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-users-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-users-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +GET /v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7/users HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-users-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-users-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-users-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-users-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,43 @@ +{ + "users": [ + { + "databases": [ + { + "name": "databaseA" + } + ], + "host": "%", + "name": "dbuser1" + }, + { + "databases": [ + { + "name": "databaseB" + }, + { + "name": "databaseC" + } + ], + "host": "%", + "name": "dbuser2" + }, + { + "databases": [ + { + "name": "databaseD" + } + ], + "host": "%", + "name": "dbuser3" + }, + { + "databases": [ + { + "name": "sampledb" + } + ], + "host": "%", + "name": "demouser" + } + ] +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-users-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-users-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-list-users-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-list-users-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 322 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-get-account-details-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-get-account-details-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-get-account-details-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-get-account-details-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +GET /v1.0/1234/mgmt/accounts/3000 HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-get-account-details-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-get-account-details-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-get-account-details-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-get-account-details-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,8 @@ +{ + "account": { + "id": "3000", + "instance_ids": [ + "44b277eb-39be-4921-be31-3d61b43651d7" + ] + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-get-account-details-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-get-account-details-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-get-account-details-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-get-account-details-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 85 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-get-host-detail-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-get-host-detail-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-get-host-detail-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-get-host-detail-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +GET /v1.0/1234/mgmt/hosts/hostname_1 HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-get-host-detail-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-get-host-detail-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-get-host-detail-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-get-host-detail-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,17 @@ +{ + "host": { + "instances": [ + { + "id": "44b277eb-39be-4921-be31-3d61b43651d7", + "name": "44b277eb-39be-4921-be31-3d61b43651d7-lay", + "server_id": "44b277eb-39be-4921-be31-3d61b43651d7", + "status": "ACTIVE", + "tenant_id": "3000" + } + ], + "name": "hostname_1", + "percentUsed": 12, + "totalRAM": 32000, + "usedRAM": 4096 + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-get-host-detail-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-get-host-detail-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-get-host-detail-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-get-host-detail-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 302 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-get-instance-details-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-get-instance-details-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-get-instance-details-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-get-instance-details-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +GET /v1.0/1234/mgmt/instances/44b277eb-39be-4921-be31-3d61b43651d7 HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-get-instance-details-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-get-instance-details-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-get-instance-details-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-get-instance-details-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,79 @@ +{ + "instance": { + "created": "2014-10-30T12:30:00", + "datastore": { + "type": "mysql", + "version": "5.5" + }, + "deleted": false, + "deleted_at": null, + "flavor": { + "id": "3", + "links": [ + { + "href": "https://troveapi.org/v1.0/1234/flavors/3", + "rel": "self" + }, + { + "href": "https://troveapi.org/flavors/3", + "rel": "bookmark" + } + ] + }, + "guest_status": { + "state_description": "running" + }, + "hostname": "e09ad9a3f73309469cf1f43d11e79549caf9acf2.troveexampledb.com", + "id": "44b277eb-39be-4921-be31-3d61b43651d7", + "links": [ + { + "href": "https://troveapi.org/v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7", + "rel": "self" + }, + { + "href": "https://troveapi.org/instances/44b277eb-39be-4921-be31-3d61b43651d7", + "rel": "bookmark" + } + ], + "name": "json_rack_instance", + "root_enabled": "2014-10-30T12:30:00", + "root_enabled_by": "3000", + "server": { + "addresses": { + "private": [ + { + "addr": "123.123.123.123" + } + ] + }, + "deleted": false, + "deleted_at": null, + "host": "hostname_1", + "id": "44b277eb-39be-4921-be31-3d61b43651d7", + "local_id": 0, + "name": "44b277eb-39be-4921-be31-3d61b43651d7-lay", + "status": "ACTIVE", + "tenant_id": "3000" + }, + "service_status": "ACTIVE", + "status": "ACTIVE", + "task_description": "No tasks for the instance.", + "tenant_id": "3000", + "updated": "2014-10-30T12:30:00", + "volume": { + "attachments": [ + { + "device": "vdb", + "server_id": "44b277eb-39be-4921-be31-3d61b43651d7" + } + ], + "availability_zone": "fake-availability-zone", + "created_at": "2001-01-01-12:30:30", + "id": "VOL_44b277eb-39be-4921-be31-3d61b43651d7", + "size": 4, + "status": "in-use", + "total": 4.0, + "used": 0.16 + } + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-get-instance-details-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-get-instance-details-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-get-instance-details-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-get-instance-details-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 1533 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-get-root-details-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-get-root-details-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-get-root-details-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-get-root-details-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +GET /v1.0/1234/mgmt/instances/44b277eb-39be-4921-be31-3d61b43651d7/root HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-get-root-details-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-get-root-details-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-get-root-details-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-get-root-details-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +{ + "root_history": { + "enabled": "2014-10-30T12:30:00", + "id": "44b277eb-39be-4921-be31-3d61b43651d7", + "user": "3000" + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-get-root-details-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-get-root-details-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-get-root-details-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-get-root-details-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 114 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-get-storage-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-get-storage-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-get-storage-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-get-storage-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +GET /v1.0/1234/mgmt/storage HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-get-storage-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-get-storage-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-get-storage-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-get-storage-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,18 @@ +{ + "devices": [ + { + "capacity": { + "available": 90, + "total": 100 + }, + "name": "fake_storage", + "provision": { + "available": 40, + "percent": 10, + "total": 50 + }, + "type": "test_type", + "used": 10 + } + ] +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-get-storage-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-get-storage-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-get-storage-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-get-storage-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 177 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-instance-diagnostics-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-instance-diagnostics-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-instance-diagnostics-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-instance-diagnostics-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +GET /v1.0/1234/mgmt/instances/44b277eb-39be-4921-be31-3d61b43651d7/diagnostics HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-instance-diagnostics-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-instance-diagnostics-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-instance-diagnostics-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-instance-diagnostics-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,11 @@ +{ + "diagnostics": { + "fdSize": 64, + "threads": 2, + "version": "1", + "vmHwm": 2872, + "vmPeak": 29160, + "vmRss": 2872, + "vmSize": 29096 + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-instance-diagnostics-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-instance-diagnostics-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-instance-diagnostics-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-instance-diagnostics-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 125 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-instance-index-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-instance-index-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-instance-index-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-instance-index-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +GET /v1.0/1234/mgmt/instances?deleted=false HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-instance-index-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-instance-index-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-instance-index-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-instance-index-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,57 @@ +{ + "instances": [ + { + "created": "2014-10-30T12:30:00", + "datastore": { + "type": "mysql", + "version": "5.5" + }, + "deleted": false, + "deleted_at": null, + "flavor": { + "id": "3", + "links": [ + { + "href": "https://troveapi.org/v1.0/1234/flavors/3", + "rel": "self" + }, + { + "href": "https://troveapi.org/flavors/3", + "rel": "bookmark" + } + ] + }, + "hostname": "e09ad9a3f73309469cf1f43d11e79549caf9acf2.troveexampledb.com", + "id": "44b277eb-39be-4921-be31-3d61b43651d7", + "links": [ + { + "href": "https://troveapi.org/v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7", + "rel": "self" + }, + { + "href": "https://troveapi.org/instances/44b277eb-39be-4921-be31-3d61b43651d7", + "rel": "bookmark" + } + ], + "name": "json_rack_instance", + "server": { + "deleted": false, + "deleted_at": null, + "host": "hostname_1", + "id": "44b277eb-39be-4921-be31-3d61b43651d7", + "local_id": 0, + "name": "44b277eb-39be-4921-be31-3d61b43651d7-lay", + "status": "ACTIVE", + "tenant_id": "3000" + }, + "service_status": "ACTIVE", + "status": "ACTIVE", + "task_description": "No tasks for the instance.", + "tenant_id": "3000", + "updated": "2014-10-30T12:30:00", + "volume": { + "size": 4 + } + } + ] +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-instance-index-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-instance-index-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-instance-index-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-instance-index-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 1082 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-list-accounts-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-list-accounts-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-list-accounts-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-list-accounts-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +GET /v1.0/1234/mgmt/accounts HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-list-accounts-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-list-accounts-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-list-accounts-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-list-accounts-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,8 @@ +{ + "accounts": [ + { + "id": "3000", + "num_instances": 1 + } + ] +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-list-accounts-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-list-accounts-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-list-accounts-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-list-accounts-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 50 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-list-hosts-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-list-hosts-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-list-hosts-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-list-hosts-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +GET /v1.0/1234/mgmt/hosts HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-list-hosts-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-list-hosts-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-list-hosts-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-list-hosts-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,12 @@ +{ + "hosts": [ + { + "instanceCount": 1, + "name": "hostname_1" + }, + { + "instanceCount": 0, + "name": "hostname_2" + } + ] +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-list-hosts-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-list-hosts-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-mgmt-list-hosts-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-mgmt-list-hosts-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 101 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-patch-config-group-request.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-patch-config-group-request.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-patch-config-group-request.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-patch-config-group-request.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +{ + "configuration": { + "values": { + "connect_timeout": 17 + } + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-patch-config-group-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-patch-config-group-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-patch-config-group-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-patch-config-group-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +PATCH /v1.0/1234/configurations/5678 HTTP/1.1 +User-Agent: python-example-client +Host: openstack.example.com +X-Auth-Token: d6cafa5b-e0c7-4ab8-948e-7c95f2acd031 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-patch-config-group-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-patch-config-group-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-patch-config-group-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-patch-config-group-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 0 +Date: Mon, 6 Jul 2015 21:53:10 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-restore-delete-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-restore-delete-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-restore-delete-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-restore-delete-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +DELETE /v1.0/1234/instances/d5a9db64-7ef7-41c5-8e1e-4013166874bc HTTP/1.1 +User-Agent: python-troveclient +Host: troveapi.org +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-restore-delete-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-restore-delete-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-restore-delete-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-restore-delete-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 202 Accepted +Content-Type: application/json +Content-Length: 0 +Date: Mon, 18 Mar 2013 19:09:17 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-revoke-user-access-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-revoke-user-access-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-revoke-user-access-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-revoke-user-access-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,6 @@ +DELETE /v1.0/1234/instances/692d8418-7a8f-47f1-8060-59846c6e024f/users/exampleuser/databases/databaseC HTTP/1.1 +User-Agent: python-example-client +Host: ord.databases.api.rackspacecloud.com +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-revoke-user-access-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-revoke-user-access-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-revoke-user-access-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-revoke-user-access-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,4 @@ +HTTP/1.1 202 Accepted +Content-Type: application/json +Content-Length: 0 +Date: Wed, 27 Jun 2012 23:11:19 GMT \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-show-parameter-details.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-show-parameter-details.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-show-parameter-details.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-show-parameter-details.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,8 @@ +{ + "name": "connect_timeout", + "min": 2, + "max": 31536000, + "restart_required": false, + "type": "integer", + "datastore_version_id": "f8e67741-e767-4137-b394-3fb8a3fafd2f" +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-show-parameter-details-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-show-parameter-details-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-show-parameter-details-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-show-parameter-details-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,6 @@ +GET /v1.0/1234/datastores/versions/f8e67741-e767-4137-b394-3fb8a3fafd2f/parameters/connect_timeout HTTP/1.1 +User-Agent: python-example-client +Host: openstack.example.com +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-show-parameter-details-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-show-parameter-details-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-show-parameter-details-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-show-parameter-details-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,4 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 180 +Date: Tue, 16 Jun 2015 21:58:13 GMT diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-update-config-group-request.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-update-config-group-request.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-update-config-group-request.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-update-config-group-request.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,9 @@ +{ + "configuration": { + "values": { + "connect_timeout": 18 + }, + "name": "new_name", + "description": "New description" + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-update-config-group-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-update-config-group-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-update-config-group-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-update-config-group-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,7 @@ +PUT /v1.0/1234/configurations/5678 HTTP/1.1 +User-Agent: python-example-client +Host: openstack.example.com +X-Auth-Token: d6cafa5b-e0c7-4ab8-948e-7c95f2acd031 +Accept: application/json +Content-Type: application/json + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-update-config-group-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-update-config-group-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-update-config-group-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-update-config-group-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +HTTP/1.1 202 OK +Content-Type: application/json +Content-Length: 0 +Date: Mon, 6 Jul 2015 21:53:10 GMT + diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-version-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-version-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-version-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-version-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,6 @@ +GET /v1.0/ HTTP/1.1 +User-Agent: python-example-client +Host: ord.databases.api.rackspacecloud.com +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-version-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-version-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-version-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-version-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,13 @@ +{ + "version": { + "id": "v1.0", + "links": [ + { + "href": "https://ord.databases.api.rackspacecloud.com/v1.0/", + "rel": "self" + } + ], + "status": "CURRENT", + "updated": "2012-01-01T00:00:00Z" + } +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-version-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-version-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-version-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-version-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,4 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 150 +Date: Wed, 25 Jan 2012 21:53:04 GMT \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-versions-request-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-versions-request-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-versions-request-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-versions-request-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,6 @@ +GET / HTTP/1.1 +User-Agent: python-example-client +Host: ord.databases.api.rackspacecloud.com +X-Auth-Token: 87c6033c-9ff6-405f-943e-2deb73f278b7 +Accept: application/json +Content-Type: application/json \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-versions-response.json openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-versions-response.json --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-versions-response.json 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-versions-response.json 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,15 @@ +{ + "versions": [ + { + "id": "v1.0", + "links": [ + { + "href": "https://ord.databases.api.rackspacecloud.com/v1.0/", + "rel": "self" + } + ], + "status": "CURRENT", + "updated": "2012-01-01T00:00:00Z" + } + ] +} diff -Nru openstack-trove-6.0.0~b2/api-ref/source/samples/db-versions-response-json-http.txt openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-versions-response-json-http.txt --- openstack-trove-6.0.0~b2/api-ref/source/samples/db-versions-response-json-http.txt 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/samples/db-versions-response-json-http.txt 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,4 @@ +HTTP/1.1 200 OK +Content-Type: application/json +Content-Length: 153 +Date: Wed, 25 Jan 2012 21:53:04 GMT \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/api-ref/source/user-management.inc openstack-trove-6.0.0~b3~dev119/api-ref/source/user-management.inc --- openstack-trove-6.0.0~b2/api-ref/source/user-management.inc 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/api-ref/source/user-management.inc 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,363 @@ +.. -*- rst -*- + +============= +Users (users) +============= + +Creates, lists all, and deletes users. + + +Enable root user +================ + +.. rest_method:: POST /v1.0/{accountId}/instances/{instanceId}/root + +Enables the root user for a database instance and returns the root password. + +This operation generates a root password for the root user and +enables the root user to log in from any host. + +Changes that you make as a root user can impact the database +instance and API operations in unpredictable and detrimental ways. +When you enable the root user, you accept the possibility that we +cannot support your database instance. We might not be able to +assist you if you change core MySQL settings. These changes can be, +but are not limited to, turning off bin logs, removing users that +we use to access your instance, and so on. + + +Normal response codes: 200 +Error response codes:413,405,404,403,401,400,422,503,500,501, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - instanceId: instanceId + - accountId: accountId + + + + +Response Example +---------------- + +.. literalinclude:: samples/db-enable-root-user-response.json + :language: javascript + + + + + + + + + + + + + + +Show root-enabled status for database instance +============================================== + +.. rest_method:: GET /v1.0/{accountId}/instances/{instanceId}/root + +Shows root-enabled status for a database instance. + +Returns ``true`` if root user is enabled for a database instance. +Otherwise, returns ``false``. + + +Normal response codes: 200 +Error response codes:413,405,404,403,401,400,422,503,500,501, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - instanceId: instanceId + - accountId: accountId + + + + +Response Example +---------------- + +.. literalinclude:: samples/db-check-root-user-response.json + :language: javascript + + + + + + + + + + + + + + +Disable root user +================= + +.. rest_method:: DELETE /v1.0/{accountId}/instances/{instanceId}/root + +Disables the root user. + +Error response codes:202,413,405,404,403,401,400,422,503,500,501, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - instanceId: instanceId + - accountId: accountId + + + + + + + + + + + + + + + + +Delete user +=========== + +.. rest_method:: DELETE /v1.0/{accountId}/instances/{instanceId}/users/{name} + +Deletes a user for a database instance. + +Do not use periods in user names. A bug in a Python library that +Rackspace uses that can cause incorrect user deletions to occur if +you use a period (.) in the user name. In this case, the bug in the +library truncates the user name to the portion from the beginning +up to the period. For example, for the ``my.userA`` user, the bug +truncates the user name to ``my``, and if the ``user`` exists, that +user is incorrectly deleted. + +Error response codes:202,413,405,404,403,401,400,422,503,500,501, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - instanceId: instanceId + - accountId: accountId + + + + + + + + + + + + + + + + +Create user +=========== + +.. rest_method:: POST /v1.0/{accountId}/instances/{instanceId}/users + +Creates a user for a database instance. + +Asynchronously provisions a new user for the database instance by +using the configuration that you define in the request object. +After the API validates the request and starts progress on the +provisioning process, the call returns the ``Accepted (202)`` +response code. + +If the API cannot fulfill the corresponding request due to +insufficient data or data that is not valid, the API returns the +``Bad Request (400)`` response code with information about the +nature of the failure. You cannot recover from validation errors. +You must correct the cause of the failure and the request again. + +This table lists the required attributes for creating users: + +**Required attributes for user** + ++-----------------+---------------------------------------------------------------------+------------------------------------+----------+ +| Applies to | Name | Description | Required | ++-----------------+---------------------------------------------------------------------+------------------------------------+----------+ +| User | name | Name of the user for the database. | Yes | ++-----------------+---------------------------------------------------------------------+------------------------------------+----------+ +| password | User password for database access. | Yes | | ++-----------------+---------------------------------------------------------------------+------------------------------------+----------+ +| (database) name | Name of the database that the user can access. You must specify one | No | | +| | or more database names. | | | ++-----------------+---------------------------------------------------------------------+------------------------------------+----------+ + + **Notes** + +- The operation grants the user all privileges on the databases. + +- Do not use the ``root`` user name, which is reserved. + +These tables list the valid characters for database names, user +names, and passwords. + +**Valid characters in database name, user name, and password** + ++---------------------------------------------------------------------------------------------------------------------------------+ +| Character | ++---------------------------------------------------------------------------------------------------------------------------------+ +| Letters (upper and lower cases allowed) | ++---------------------------------------------------------------------------------------------------------------------------------+ +| Numbers | ++---------------------------------------------------------------------------------------------------------------------------------+ +| ``@``, ``?``, ``#``, and spaces are allowed, but **not** at the beginning and end of the database name, user name, and password | ++---------------------------------------------------------------------------------------------------------------------------------+ +| ``_`` is allowed anywhere in the database name, user name, and password | ++---------------------------------------------------------------------------------------------------------------------------------+ + +**Characters that are not allowed in database name, user name, and password** + ++---------------------------------------------------------+ +| Character | ++---------------------------------------------------------+ +| Single quotes | ++---------------------------------------------------------+ +| Double quotes | ++---------------------------------------------------------+ +| Back quotes | ++---------------------------------------------------------+ +| Semicolons | ++---------------------------------------------------------+ +| Commas | ++---------------------------------------------------------+ +| Back slashes | ++---------------------------------------------------------+ +| Forward slashes | ++---------------------------------------------------------+ +| Spaces at the front or end of the user name or password | ++---------------------------------------------------------+ + +**Length restrictions for database name, user name, and password** + ++------------------------------+-----------------------------+ +| Restriction | Value | ++------------------------------+-----------------------------+ +| Database name maximum length | 64 | ++------------------------------+-----------------------------+ +| User name maximum length | 16 | ++------------------------------+-----------------------------+ +| Password maximum length | unlimited (no restrictions) | ++------------------------------+-----------------------------+ + +Error response codes:202,413,405,404,403,401,400,422,503,500,501, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - instanceId: instanceId + - accountId: accountId + +Request Example +--------------- + +.. literalinclude:: samples/db-create-users-request.json + :language: javascript + + + + + + + + + + + + + + + + + +List database instance users +============================ + +.. rest_method:: GET /v1.0/{accountId}/instances/{instanceId}/users + +Lists the users in a database instance and the associated databases for that user. + +This operation does not return system users. A system user is a +database administrator who administers the health of the database. +Also, this operation returns the ``root`` user only if it is +enabled. + +The following notes apply to MySQL users: + +- User names can be up to 16 characters long. + +- When you create accounts with INSERT, you must use FLUSH + PRIVILEGES to tell the server to reload the grant tables. + +- For additional information, See: + `http://dev.mysql.com/doc/refman/5.1/en/user-account- + management.html `_ + + +Normal response codes: 200 +Error response codes:413,405,404,403,401,400,422,503,500,501, + + +Request +------- + +.. rest_parameters:: parameters.yaml + + - instanceId: instanceId + - accountId: accountId + + + + +Response Example +---------------- + +.. literalinclude:: samples/db-list-users-response.json + :language: javascript + + + + + + + + + + + + + diff -Nru openstack-trove-6.0.0~b2/AUTHORS openstack-trove-6.0.0~b3~dev119/AUTHORS --- openstack-trove-6.0.0~b2/AUTHORS 2016-07-11 16:12:38.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/AUTHORS 2016-08-29 20:08:41.000000000 +0000 @@ -17,6 +17,7 @@ Auston McReynolds Bertrand Lallau Bertrand Lallau +Bin Zhou Bo Wang Boden R Brandon Irizarry @@ -25,6 +26,7 @@ ChangBo Guo(gcb) Chaozhe.Chen Christian Berendt +Clark Boylan Conrad Weidenkeller Corey Bryant Craig @@ -51,13 +53,16 @@ Ed Cranford Edmond Kotowski Edu Alcaniz +Emilien Macchi Erik Redding Felipe Reyes Felipe Reyes Gauvain Pocentek George Peristerakis +Graham Hayes Greg Hill Greg Lucas +Greg Retkowski Gábor Antal Haomai Wang He Yongli @@ -139,6 +144,7 @@ Riddhi Shah Riley Bastrop Robert Myers +Ronald Bradford Russell Bryant Sam Morrison Satoshi Mitani @@ -148,6 +154,7 @@ Sergey Gotliv Sergey Lukjanov Sergey Vilgelm +Shaik Apsar Shuichiro MAKIGAKI Shuquan Huang Simon Chang @@ -195,6 +202,7 @@ daniel-a-nguyen daniel-a-nguyen debasish +dineshbhor ekotowski ewilson-tesora gecong1973 @@ -202,6 +210,7 @@ guang-yee hardy.jung jcannava +jiansong justin-hopper liuqing lvdongbing @@ -235,3 +244,4 @@ wangjunqing xhzhf yangyapeng +zhangyanxian diff -Nru openstack-trove-6.0.0~b2/blacklist-py3.txt openstack-trove-6.0.0~b3~dev119/blacklist-py3.txt --- openstack-trove-6.0.0~b2/blacklist-py3.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/blacklist-py3.txt 2016-08-29 20:08:34.000000000 +0000 @@ -1,9 +1,6 @@ # Use a blacklist of tests known to fail on Python 3, until # all unit tests will pass on Python 3. -backup.test_backup_models guestagent.test_cassandra_manager -guestagent.test_dbaas guestagent.test_mongodb_manager guestagent.test_operating_system guestagent.test_volume -mgmt.test_datastores diff -Nru openstack-trove-6.0.0~b2/ChangeLog openstack-trove-6.0.0~b3~dev119/ChangeLog --- openstack-trove-6.0.0~b2/ChangeLog 2016-07-11 16:12:38.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/ChangeLog 2016-08-29 20:08:41.000000000 +0000 @@ -1,14 +1,81 @@ CHANGES ======= +* Updated from global requirements +* Updated from global requirements +* Updated from global requirements +* Remove openstack-doc-tools +* Extend guest agent call timeouts +* Updated from global requirements +* Get ready for os-api-ref sphinx theme change +* Adds the api-ref migrated RST + YAML files +* Couchbase run backup as root +* Turn off test_create_too_many_instances +* tempest/test_flavors: vcpus is in db +* Add missing ICMP option for pxc & mariadb +* Add log retrieval to Cassandra +* About update setup.cfg homepage +* Updated from global requirements +* Constraints are ready to be used for tox.ini +* Pass 'guest_log_expiry' as a string +* Replace some of assertEqual +* Add trove-guestagnet.conf sample for log rotation +* Updated from global requirements +* guest_id missing err, switch config_drive default +* Introduce "icmp" option for security group rule +* Updated from global requirements +* Fix for tcp_ports configuration in devstack +* Fix some typo in the files +* Replace assertEqual(None,...) +* Update CONTRIBUTING.rst +* Fix xtrabackup-binlog file GTID parsing +* Fix MySql replication start from incr backup +* Break out error instance create +* Updated from global requirements +* Replace OpenStack LLC with OpenStack Foundation +* Add port 22 to tcp_ports in devstack +* MySQL do not retrieve Password in get user +* Define safe pid-file and socket paths in config +* py3: Enable test_backup_models and test_datastores +* Port guestagent test_dbaas to Python 3 +* Remove times.dbm file for each tox run +* Backup tests verify restored databases +* Fix config registration for Trove tempest plugin +* Updated from global requirements +* Imported Translations from Zanata +* Cluster tests get the instance flavor +* Serialize py34 tests +* Use proper queries to update user properties +* Add missing LOG variable to fix scenario tests +* Preserve data type when parsing MySQL configs +* Use constraints for coverage job +* Improve Config Validation +* Move cluster tests to the end of the scenario run +* Clarify unittest documentation +* Fix concurrency issue with Python 3.4 test +* Replace assertEqual(None, *) with assertIsNone in tests +* Support flavor ids with leading '0' +* Support newer mysql in tests +* Cleanup i18n marker functions to match Oslo usage +* Removed unreachable statement +* Updated from global requirements +* Add vCPUs to flavor-list +* Correct reraising of exception +* Fix secure method to work with PXC + 6.0.0.0b2 --------- * Fixing misstypos * Updated from global requirements +* Persist error messages and display on 'show' * Updated from global requirements +* Fix user/database scenarios to run without helper +* Repl tests retrieve configs via test_helper +* Ophaned Volume Not Removed on Instance Delete * Fix tempest base: add missing imports * Switch from MySQL-python to PyMySQL +* Improve coverage in guestagent and backup models * Port galera and redis cluster tests to Python 3 * Port test_pagination on Python 3 * Add trove tempest plugin @@ -43,11 +110,14 @@ * pkg: replace commands module with subprocess * Mock detector run only once for each testcase * Postgresql Incremental Backup and Restore +* Fix user & database pagination in guests * Rename called_once_with methods correctly * Updated from global requirements * Imported Translations from Zanata +* Add New Relic License module driver * Switch test config file to use os_region_name * Cleanup guestagent models +* Change service candidates list for MariaDB * Updated from global requirements * Updated from global requirements * Port more unit tests to Python 3 @@ -1372,7 +1442,7 @@ * Re-introduced support for rpc delete_queue * Refresh Oslo code - add support for ssl * Migrate to flake8 -* Add flavor API support for ephemeral +* Add flavor API support for ephemeral * Stop granting users GRANT OPTION by default * Adding the start of notifications * Controller and API changes for backups @@ -1766,7 +1836,7 @@ * Adding idea project folder * Getting the delete call and refactoring the req/proxy_token a bit * Got the basics of the viewbuilder working for list instances -* Got a nice API shell working * uses devstacks install for nova/keystone/et al * talks to nova via novaclient. * adds a few extensions to show how its done * has a single call to list instances * found a few minor bugs to discuss w/ nova crew ** Note in order to run this you have to mod the code downloaded by devstack or have local symlinks to nova & novaclient in your src tree running trunk This will get dealt with soon (it is a weekend!) +* Got a nice API shell working * uses devstacks install for nova/keystone/et al * talks to nova via novaclient. * adds a few extensions to show how its done * has a single call to list instances * found a few minor bugs to discuss w/ nova crew ** Note in order to run this you have to mod the code downloaded by devstack or have local symlinks to nova & novaclient in your src tree running trunk This will get dealt with soon (it is a weekend!) * Adding a gitignore * Adding a script for getting the environment up and running * Folder structure layout stuff diff -Nru openstack-trove-6.0.0~b2/CONTRIBUTING.rst openstack-trove-6.0.0~b3~dev119/CONTRIBUTING.rst --- openstack-trove-6.0.0~b2/CONTRIBUTING.rst 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/CONTRIBUTING.rst 2016-08-29 20:08:34.000000000 +0000 @@ -31,8 +31,11 @@ ``#openstack-trove`` on ``irc.freenode.net``. +House Rules +=========== + Code Reviews -============ +------------ We value your contribution in reviewing code changes submitted by others, as this helps increase the quality of the product as well. @@ -88,7 +91,7 @@ - https://review.openstack.org/#/c/116176/ Approving changes -================= +----------------- The Trove project follows the conventions below in approving changes. @@ -116,62 +119,41 @@ We will however still require that at least one other person review (and +1 or +2) the change before it can be +A'ed. -Trove Documentation -=================== - -This repository also contains the following OpenStack manual: - -* Database Services API Reference - -Prerequisites for Building the Documentation --------------------------------------------- -`Apache Maven `_ must be installed to build the -documentation. - -To install Maven 3 for Ubuntu 12.04 and later, and Debian wheezy and later:: - - apt-get install maven - -On Fedora 15 and later:: +Abandoning changes +------------------ - yum install maven3 +At the Trove mid-cycle held in July 2016 we discussed our process for +abandoning changes and concluded that we would adopt the following +process. + +1. We will take a more proactive policy towards abandoning changes + that have not been merged for a long time. + +2. A list of changes proposed for abandonment will be presented at a + weekly meeting and if there is no objection, those changes will be + abandoned. If the patch sets are associated with bugs, the bugs + will be unassigned. + +3. In general, changes will be proposed for abandonment if the change + being proposed has either been addressed in some other patch set, + or if the patch is not being actively maintained by the author and + there is no available volunteer who will step up to take over the + patch set. -Building --------- -The manuals are in the ``apidocs`` directory. - -To build a specific guide, look for a ``pom.xml`` file within a subdirectory, -then run the ``mvn`` command in that directory. For example:: - - cd apidocs - mvn clean generate-sources - -The generated PDF documentation file is:: - - apidocs/target/docbkx/webhelp/cdb-devguide/cdb-devguide-reviewer.pdf - -The root of the generated HTML documentation is:: - - apidocs/target/docbkx/webhelp/cdb-devguide/content/index.html +Trove Documentation +=================== -Testing of changes and building of the manual ----------------------------------------------- +This repository also contains the Database Services API Reference. +To build the API reference, run:: -Install the python tox package and run ``tox`` from the top-level -directory to use the same tests that are done as part of our Jenkins -gating jobs. + $ tox -e api-ref -If you like to run individual tests, run: +The generated documentation is found:: - * ``tox -e checkniceness`` - to run the niceness tests - * ``tox -e checksyntax`` - to run syntax checks - * ``tox -e checkdeletions`` - to check that no deleted files are referenced - * ``tox -e checkbuild`` - to actually build the manual + api-ref/html/index.html -tox will use the `openstack-doc-tools package -`_ for execution of -these tests. openstack-doc-tools has a requirement on maven for the -build check. +Testing +======= Usage for integration testing ----------------------------- diff -Nru openstack-trove-6.0.0~b2/debian/changelog openstack-trove-6.0.0~b3~dev119/debian/changelog --- openstack-trove-6.0.0~b2/debian/changelog 2016-07-11 20:43:13.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/debian/changelog 2016-08-29 20:15:00.000000000 +0000 @@ -1,3 +1,16 @@ +openstack-trove (1:6.0.0~b3~dev119-0ubuntu1~ubuntu16.10.1~ppa201608291614) yakkety; urgency=medium + + [ James Page ] + * New upstream release. + * Add python-xmltodict to (Build-)Depends. + * Add python-crypto to Build-Depends. + + [ Corey Bryant ] + * New upstream version. + * No-change backport to yakkety + + -- Corey Bryant Mon, 29 Aug 2016 16:15:00 -0400 + openstack-trove (1:6.0.0~b2-0ubuntu1) yakkety; urgency=medium [ Corey Bryant ] diff -Nru openstack-trove-6.0.0~b2/debian/control openstack-trove-6.0.0~b3~dev119/debian/control --- openstack-trove-6.0.0~b2/debian/control 2016-07-11 20:43:13.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/debian/control 2016-08-29 20:09:20.000000000 +0000 @@ -19,6 +19,7 @@ python-cinderclient (>= 1:1.6.0), python-couchdb (>= 0.8), python-coverage (>= 3.6), + python-crypto (>= 2.6.0), python-designateclient (>= 1.5.0), python-eventlet (>= 0.17.4), python-hacking (>= 0.10.0), @@ -61,8 +62,8 @@ python-pastedeploy (>= 1.5.0), python-pbr (>= 1.8), python-pexpect (>= 3.1), - python-psycopg2 (>= 2.5), python-proboscis (>= 1.2.5.3), + python-psycopg2 (>= 2.5), python-pymongo (>= 3.0.2), python-pymysql, python-redis (>= 2.10.0), @@ -76,6 +77,7 @@ python-webob (>= 1.2.3), python-webtest (>= 2.0), python-wsgi-intercept (>= 0.6.1), + python-xmltodict, subunit (>= 0.0.18), testrepository (>= 0.0.18), Standards-Version: 3.9.6 @@ -128,6 +130,7 @@ python-stevedore (>= 1.10.0), python-swiftclient (>= 1:2.2.0), python-webob (>= 1.2.3), + python-xmltodict, ${misc:Depends}, ${python:Depends}, Suggests: python-suds (>= 0.4.0), diff -Nru openstack-trove-6.0.0~b2/devstack/plugin.sh openstack-trove-6.0.0~b3~dev119/devstack/plugin.sh --- openstack-trove-6.0.0~b2/devstack/plugin.sh 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/devstack/plugin.sh 2016-08-29 20:08:34.000000000 +0000 @@ -294,7 +294,18 @@ iniset $TROVE_CONF DEFAULT network_driver trove.network.neutron.NeutronDriver iniset $TROVE_TASKMANAGER_CONF DEFAULT network_driver trove.network.neutron.NeutronDriver + iniset $TROVE_TASKMANAGER_CONF cassandra tcp_ports 22,7000,7001,7199,9042,9160 + iniset $TROVE_TASKMANAGER_CONF couchbase tcp_ports 22,8091,8092,4369,11209-11211,21100-21199 + iniset $TROVE_TASKMANAGER_CONF couchdb tcp_ports 22,5984 + iniset $TROVE_TASKMANAGER_CONF db2 tcp_ports 22,50000 + iniset $TROVE_TASKMANAGER_CONF mariadb tcp_ports 22,3306,4444,4567,4568 + iniset $TROVE_TASKMANAGER_CONF mongodb tcp_ports 22,2500,27017,27019 iniset $TROVE_TASKMANAGER_CONF mysql tcp_ports 22,3306 + iniset $TROVE_TASKMANAGER_CONF percona tcp_ports 22,3306 + iniset $TROVE_TASKMANAGER_CONF postgresql tcp_ports 22,5432 + iniset $TROVE_TASKMANAGER_CONF pxc tcp_ports 22,3306,4444,4567,4568 + iniset $TROVE_TASKMANAGER_CONF redis tcp_ports 22,6379,16379 + iniset $TROVE_TASKMANAGER_CONF vertica tcp_ports 22,5433,5434,5444,5450,4803 } # start_trove() - Start running processes, including screen diff -Nru openstack-trove-6.0.0~b2/doc/source/dev/building_guest_images.rst openstack-trove-6.0.0~b3~dev119/doc/source/dev/building_guest_images.rst --- openstack-trove-6.0.0~b2/doc/source/dev/building_guest_images.rst 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/doc/source/dev/building_guest_images.rst 2016-08-29 20:08:34.000000000 +0000 @@ -79,6 +79,20 @@ The Trove Guest Agent runs on the Trove Guest Instance. +------------------------------------------ +Injected Configuration for the Guest Agent +------------------------------------------ + +When TaskManager launches the guest VM it injects the specific settings +for the guest into the VM, into the file /etc/trove/conf.d/guest_info.conf. +The file is injected one of three ways. If use_heat=True, it is injected +during the heat launch process. If use_nova_server_config_drive=True +it is injected via ConfigDrive. Otherwise it is passed to the nova +create call as the 'files' parameter and will be injected based on +the configuration of Nova; the Nova default is to discard the files. +If the settings in guest_info.conf are not present on the guest +Guest Agent will fail to start up. + ------------------------------ Persistent Storage, Networking ------------------------------ diff -Nru openstack-trove-6.0.0~b2/doc/source/dev/testing.rst openstack-trove-6.0.0~b3~dev119/doc/source/dev/testing.rst --- openstack-trove-6.0.0~b2/doc/source/dev/testing.rst 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/doc/source/dev/testing.rst 2016-08-29 20:08:30.000000000 +0000 @@ -39,45 +39,53 @@ There are several possible strategies available for dealing with dangling mock objects (see the section on recommended patterns). -Further information is available in [1]_. +Further information is available in [1]_, [2]_, [3]_. Dangling Mock Detector ---------------------- All Trove unit tests should extend 'trove_testtools.TestCase'. It is a subclass of 'testtools.TestCase' which automatically checks for -dangling mock objects after each test. -It does that by recording mock instances in loaded modules before and after -a test case. It marks the test as failed and reports the leaked reference if it +dangling mock objects at each test class teardown. +It marks the tests as failed and reports the leaked reference if it finds any. Recommended Mocking Patterns ---------------------------- -- Mocking a class or object shared across multiple test cases. - Use the patcher pattern in conjunction with the setUp() and tearDown() - methods [ see section 26.4.3.5. of [1]_ ]. +Mocking a class or object shared across multiple test cases. +Use the patcher pattern in conjunction with the setUp() +method [ see section 26.4.3.5. of [1]_ ]. .. code-block:: python def setUp(self): super(CouchbaseBackupTests, self).setUp() self.exe_timeout_patch = patch.object(utils, 'execute_with_timeout') + self.addCleanup(self.exe_timeout_patch.stop) def test_case(self): - # This line can be moved to the setUp() method if the mock object - # is not needed. - mock_object = self.exe_timeout_patch.start() - - def tearDown(self): - super(CouchbaseBackupTests, self).tearDown() - self.exe_timeout_patch.stop() + mock_exe_timeout = self.exe_timeout_patch.start() -Note also: patch.stopall() -This method stops all active patches that were started with start. +If the mock object is required in the majority of test cases the following +pattern may be more efficient. -- Mocking a class or object for a single entire test case. - Use the decorator pattern. +.. code-block:: python + + def setUp(self): + super(CouchbaseBackupTests, self).setUp() + self.exe_timeout_patch = patch.object(utils, 'execute_with_timeout') + self.addCleanup(self.exe_timeout_patch.stop) + self.mock_exe_timeout = self.exe_timeout_patch.start() + + def test_case(self): + # All test cases can now reference 'self.mock_exe_timeout'. + +- Note also: patch.stopall() + This method stops all active patches that were started with start. + +Mocking a class or object for a single entire test case. +Use the decorator pattern. .. code-block:: python @@ -91,8 +99,8 @@ def test_case(self, generate_random_password, execute_with_timeout): pass -- Mocking a class or object for a smaller scope within one test case. - Use the context manager pattern. +Mocking a class or object for a smaller scope within one test case. +Use the context manager pattern. .. code-block:: python @@ -109,7 +117,35 @@ password_mock = mocks['generate_random_password'] execute_mock = mocks['execute_with_timeout_mock'] +Mocking global configuration properties. +Use 'patch_conf_property' method from 'trove_testtools.TestCase'. + +.. code-block:: python + + def test_case(self): + self.patch_conf_property('max_accepted_volume_size', 10) + +Datastore-specific configuration properties can be mocked by passing +an optional 'section' argument to the above call. + +.. code-block:: python + + def test_case(self): + self.patch_conf_property('cluster_support', False, section='redis') + +- Note also: 'patch_datastore_manager()' + 'datastore_manager' name has to be set properly when testing + datastore-specific code to ensure correct configuration options get loaded. + This is a convenience method for mocking 'datastore_manager' name. + +.. code-block:: python + + def test_case(self): + self.patch_datastore_manager('cassandra') + References ---------- -.. [1] Mock Guide: https://docs.python.org/3/library/unittest.mock.html \ No newline at end of file +.. [1] Mock Guide: https://docs.python.org/3/library/unittest.mock.html +.. [2] Python Mock Gotchas: http://alexmarandon.com/articles/python_mock_gotchas/ +.. [3] Mocking Mistakes: http://engineroom.trackmaven.com/blog/mocking-mistakes/ diff -Nru openstack-trove-6.0.0~b2/doc-test.conf openstack-trove-6.0.0~b3~dev119/doc-test.conf --- openstack-trove-6.0.0~b2/doc-test.conf 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/doc-test.conf 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ -[DEFAULT] -repo_name = trove -api_site = True - -# From apidocs -file_exception = includewars.xml - -# These two options need to come as triplets: -book = apidocs -target_dir = target/docbkx/webhelp/cdb-devguide-external -publish_dir = api/openstack-databases diff -Nru openstack-trove-6.0.0~b2/etc/tests/localhost.test.conf openstack-trove-6.0.0~b3~dev119/etc/tests/localhost.test.conf --- openstack-trove-6.0.0~b2/etc/tests/localhost.test.conf 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/etc/tests/localhost.test.conf 2016-08-29 20:08:34.000000000 +0000 @@ -125,7 +125,7 @@ ], "examples": { - "directory":"apidocs/src/samples", + "directory":"api-ref/source/samples", "normal_user_name":"hub_cap", "normal_user_tenant":"3000", "admin_user_name":"admin", diff -Nru openstack-trove-6.0.0~b2/etc/trove/trove-guestagent.conf.sample openstack-trove-6.0.0~b3~dev119/etc/trove/trove-guestagent.conf.sample --- openstack-trove-6.0.0~b2/etc/trove/trove-guestagent.conf.sample 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/etc/trove/trove-guestagent.conf.sample 2016-08-29 20:08:34.000000000 +0000 @@ -74,6 +74,7 @@ # Directory and path for log files log_dir = /var/log/trove/ log_file = logfile.txt +log_config_append = /etc/trove/trove-logging-guestagent.conf [profiler] # If False fully disable profiling feature. diff -Nru openstack-trove-6.0.0~b2/etc/trove/trove-logging-guestagent.conf openstack-trove-6.0.0~b3~dev119/etc/trove/trove-logging-guestagent.conf --- openstack-trove-6.0.0~b2/etc/trove/trove-logging-guestagent.conf 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/etc/trove/trove-logging-guestagent.conf 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,39 @@ +[loggers] +keys=root + +[handlers] +keys=file + +[formatters] +keys=minimal,normal,debug + +########### +# Loggers # +########### + +[logger_root] +level=WARNING +handlers=file + +################ +# Log Handlers # +################ + +[handler_file] +class=logging.handlers.RotatingFileHandler +level=WARNING +formatter=normal +args=('/var/log/trove-guestagent.log', 'a', 100 * 1024 * 1024) # log file limit is 100MB + +################## +# Log Formatters # +################## + +[formatter_minimal] +format=%(message)s + +[formatter_normal] +format=(%(name)s): %(asctime)s %(levelname)s %(message)s + +[formatter_debug] +format=(%(name)s): %(asctime)s %(levelname)s %(module)s %(funcName)s %(message)s diff -Nru openstack-trove-6.0.0~b2/etc/trove/trove-taskmanager.conf.sample openstack-trove-6.0.0~b3~dev119/etc/trove/trove-taskmanager.conf.sample --- openstack-trove-6.0.0~b2/etc/trove/trove-taskmanager.conf.sample 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/etc/trove/trove-taskmanager.conf.sample 2016-08-29 20:08:34.000000000 +0000 @@ -61,7 +61,7 @@ # Nova server boot options # sets the --config-drive argument when doing a nova boot # (controls how file injection is handled by nova) -use_nova_server_config_drive = False +use_nova_server_config_drive = True # Configuration options for talking to nova via the novaclient. # These options are for an admin user in your keystone config. @@ -216,6 +216,8 @@ #rabbit_virtual_host=/ [mysql] +# Whether to permit ICMP. default is False. +icmp = True # Format (single port or port range): A, B-C # where C greater than B tcp_ports = 3306 diff -Nru openstack-trove-6.0.0~b2/PKG-INFO openstack-trove-6.0.0~b3~dev119/PKG-INFO --- openstack-trove-6.0.0~b2/PKG-INFO 2016-07-11 16:12:40.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/PKG-INFO 2016-08-29 20:08:46.000000000 +0000 @@ -1,8 +1,8 @@ Metadata-Version: 1.1 Name: trove -Version: 6.0.0.0b2 +Version: 6.0.0.0b3.dev119 Summary: OpenStack DBaaS -Home-page: http://www.openstack.org/ +Home-page: https://wiki.openstack.org/wiki/Trove Author: OpenStack Author-email: openstack-dev@lists.openstack.org License: UNKNOWN diff -Nru openstack-trove-6.0.0~b2/releasenotes/notes/add-cassandra-log-retrieval-a295f3d0d4c56804.yaml openstack-trove-6.0.0~b3~dev119/releasenotes/notes/add-cassandra-log-retrieval-a295f3d0d4c56804.yaml --- openstack-trove-6.0.0~b2/releasenotes/notes/add-cassandra-log-retrieval-a295f3d0d4c56804.yaml 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/releasenotes/notes/add-cassandra-log-retrieval-a295f3d0d4c56804.yaml 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,3 @@ +--- +features: + - Enable database log retrieval on Cassandra instances. diff -Nru openstack-trove-6.0.0~b2/releasenotes/notes/add-icmp-flag-58937cce344e77d9.yaml openstack-trove-6.0.0~b3~dev119/releasenotes/notes/add-icmp-flag-58937cce344e77d9.yaml --- openstack-trove-6.0.0~b2/releasenotes/notes/add-icmp-flag-58937cce344e77d9.yaml 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/releasenotes/notes/add-icmp-flag-58937cce344e77d9.yaml 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +--- +features: + - Add icmp option for DB security group. + if icmp=True, users will be allowed to + ping to DB instances. diff -Nru openstack-trove-6.0.0~b2/releasenotes/notes/add-new-relic-license-driver-0f314edabb7561c4.yaml openstack-trove-6.0.0~b3~dev119/releasenotes/notes/add-new-relic-license-driver-0f314edabb7561c4.yaml --- openstack-trove-6.0.0~b2/releasenotes/notes/add-new-relic-license-driver-0f314edabb7561c4.yaml 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/releasenotes/notes/add-new-relic-license-driver-0f314edabb7561c4.yaml 2016-08-29 20:08:30.000000000 +0000 @@ -0,0 +1,6 @@ +--- +features: + - Added a module driver for New Relics licenses. + This allows activation of any New Relic software + that is installed on the image. Bug 1571711 + diff -Nru openstack-trove-6.0.0~b2/releasenotes/notes/alter-user-portable-021f4b792e2c129b.yaml openstack-trove-6.0.0~b3~dev119/releasenotes/notes/alter-user-portable-021f4b792e2c129b.yaml --- openstack-trove-6.0.0~b2/releasenotes/notes/alter-user-portable-021f4b792e2c129b.yaml 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/releasenotes/notes/alter-user-portable-021f4b792e2c129b.yaml 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,4 @@ +--- +fixes: + - Use SET PASSWORD and RENAME USER queries + to update user properties. diff -Nru openstack-trove-6.0.0~b2/releasenotes/notes/fix-gtid-parsing-9f60ad6e9e8f173f.yaml openstack-trove-6.0.0~b3~dev119/releasenotes/notes/fix-gtid-parsing-9f60ad6e9e8f173f.yaml --- openstack-trove-6.0.0~b2/releasenotes/notes/fix-gtid-parsing-9f60ad6e9e8f173f.yaml 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/releasenotes/notes/fix-gtid-parsing-9f60ad6e9e8f173f.yaml 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,5 @@ +--- +fixes: + - Fixed parsing of GTID references containing a list + of GTIDs from xtrabackup_binlog_info file on + MySql replicas. diff -Nru openstack-trove-6.0.0~b2/releasenotes/notes/flavor-list-vcpu-817b0f5715820377.yaml openstack-trove-6.0.0~b3~dev119/releasenotes/notes/flavor-list-vcpu-817b0f5715820377.yaml --- openstack-trove-6.0.0~b2/releasenotes/notes/flavor-list-vcpu-817b0f5715820377.yaml 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/releasenotes/notes/flavor-list-vcpu-817b0f5715820377.yaml 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,3 @@ +--- +other: + - Add vCPUs column in flavor-list Bug 1261876. diff -Nru openstack-trove-6.0.0~b2/releasenotes/notes/guest-call-timeout-2781a57ca8feb89a.yaml openstack-trove-6.0.0~b3~dev119/releasenotes/notes/guest-call-timeout-2781a57ca8feb89a.yaml --- openstack-trove-6.0.0~b2/releasenotes/notes/guest-call-timeout-2781a57ca8feb89a.yaml 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/releasenotes/notes/guest-call-timeout-2781a57ca8feb89a.yaml 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,4 @@ +fixes: + - Increased agent_call_high_timeout config setting to 10 minutes. This + configures the length of time that the taskmanager will wait for an + asynchronous guest agent call to complete. diff -Nru openstack-trove-6.0.0~b2/releasenotes/notes/mysql-config-preserve-types-77b970162bf6df08.yaml openstack-trove-6.0.0~b3~dev119/releasenotes/notes/mysql-config-preserve-types-77b970162bf6df08.yaml --- openstack-trove-6.0.0~b2/releasenotes/notes/mysql-config-preserve-types-77b970162bf6df08.yaml 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/releasenotes/notes/mysql-config-preserve-types-77b970162bf6df08.yaml 2016-08-29 20:08:30.000000000 +0000 @@ -0,0 +1,7 @@ +--- +fixes: + - Fix IniCodec to deserialize Python objects. + This also brings it in line with other codecs. + guestagent_utils.to_bytes return the byte values + as ints. + See bug 1599656 diff -Nru openstack-trove-6.0.0~b2/releasenotes/notes/persist-error-message-fb69ddf885bcde84.yaml openstack-trove-6.0.0~b3~dev119/releasenotes/notes/persist-error-message-fb69ddf885bcde84.yaml --- openstack-trove-6.0.0~b2/releasenotes/notes/persist-error-message-fb69ddf885bcde84.yaml 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/releasenotes/notes/persist-error-message-fb69ddf885bcde84.yaml 2016-08-29 20:08:30.000000000 +0000 @@ -0,0 +1,5 @@ +--- +features: + - Errors that occur in Trove are now persisted in + the database and are returned in the standard + 'show' command. diff -Nru openstack-trove-6.0.0~b2/requirements.txt openstack-trove-6.0.0~b3~dev119/requirements.txt --- openstack-trove-6.0.0~b2/requirements.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/requirements.txt 2016-08-29 20:08:34.000000000 +0000 @@ -16,31 +16,32 @@ httplib2>=0.7.5 # MIT lxml>=2.3 # BSD passlib>=1.6 # BSD -python-heatclient>=1.1.0 # Apache-2.0 +python-heatclient>=1.4.0 # Apache-2.0 python-novaclient!=2.33.0,>=2.29.0 # Apache-2.0 python-cinderclient!=1.7.0,!=1.7.1,>=1.6.0 # Apache-2.0 -python-keystoneclient!=1.8.0,!=2.1.0,>=1.7.0 # Apache-2.0 +python-keystoneclient!=2.1.0,>=2.0.0 # Apache-2.0 python-swiftclient>=2.2.0 # Apache-2.0 python-designateclient>=1.5.0 # Apache-2.0 -python-neutronclient>=4.2.0 # Apache-2.0 +python-neutronclient>=5.1.0 # Apache-2.0 iso8601>=0.1.11 # MIT jsonschema!=2.5.0,<3.0.0,>=2.0.0 # MIT Jinja2>=2.8 # BSD License (3 clause) pexpect!=3.3,>=3.1 # ISC License -oslo.config>=3.10.0 # Apache-2.0 -oslo.context>=2.4.0 # Apache-2.0 +oslo.config>=3.14.0 # Apache-2.0 +oslo.context>=2.9.0 # Apache-2.0 oslo.i18n>=2.1.0 # Apache-2.0 oslo.middleware>=3.0.0 # Apache-2.0 oslo.serialization>=1.10.0 # Apache-2.0 oslo.service>=1.10.0 # Apache-2.0 -oslo.utils>=3.14.0 # Apache-2.0 +oslo.utils>=3.16.0 # Apache-2.0 oslo.concurrency>=3.8.0 # Apache-2.0 PyMySQL>=0.6.2 # MIT License Babel>=2.3.4 # BSD six>=1.9.0 # MIT -stevedore>=1.10.0 # Apache-2.0 +stevedore>=1.16.0 # Apache-2.0 oslo.messaging>=5.2.0 # Apache-2.0 -osprofiler>=1.3.0 # Apache-2.0 +osprofiler>=1.4.0 # Apache-2.0 oslo.log>=1.14.0 # Apache-2.0 -oslo.db>=4.1.0 # Apache-2.0 +oslo.db>=4.10.0 # Apache-2.0 enum34;python_version=='2.7' or python_version=='2.6' or python_version=='3.3' # BSD +xmltodict>=0.10.1 # MIT diff -Nru openstack-trove-6.0.0~b2/setup.cfg openstack-trove-6.0.0~b3~dev119/setup.cfg --- openstack-trove-6.0.0~b2/setup.cfg 2016-07-11 16:12:40.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/setup.cfg 2016-08-29 20:08:46.000000000 +0000 @@ -5,7 +5,7 @@ README.rst author = OpenStack author-email = openstack-dev@lists.openstack.org -home-page = http://www.openstack.org/ +home-page = https://wiki.openstack.org/wiki/Trove classifier = Environment :: OpenStack Intended Audience :: Information Technology @@ -36,6 +36,7 @@ security_group = trove.extensions.routes.security_group:Security_group trove.guestagent.module.drivers = ping = trove.guestagent.module.drivers.ping_driver:PingDriver + new_relic_license = trove.guestagent.module.drivers.new_relic_license_driver:NewRelicLicenseDriver oslo.messaging.notify.drivers = trove.openstack.common.notifier.log_notifier = oslo_messaging.notify._impl_log:LogDriver trove.openstack.common.notifier.no_op_notifier = oslo_messaging.notify._impl_noop:NoOpDriver diff -Nru openstack-trove-6.0.0~b2/test-requirements.txt openstack-trove-6.0.0~b3~dev119/test-requirements.txt --- openstack-trove-6.0.0~b2/test-requirements.txt 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/test-requirements.txt 2016-08-29 20:08:34.000000000 +0000 @@ -3,15 +3,15 @@ # process, which may cause wedges in the gate later. # Hacking already pins down pep8, pyflakes and flake8 hacking<0.11,>=0.10.0 -bandit>=1.0.1 # Apache-2.0 +bandit>=1.1.0 # Apache-2.0 sphinx!=1.3b1,<1.3,>=1.2.1 # BSD +os-api-ref>=1.0.0 # Apache-2.0 oslosphinx!=3.4.0,>=2.5.0 # Apache-2.0 reno>=1.8.0 # Apache2 coverage>=3.6 # Apache-2.0 nose # LGPL nosexcover # BSD -openstack-doc-tools>=0.23 # Apache-2.0 -openstackdocstheme>=1.0.3 # Apache-2.0 +openstackdocstheme>=1.5.0 # Apache-2.0 openstack.nose-plugin>=0.7 # Apache-2.0 WebTest>=2.0 # MIT wsgi-intercept>=0.6.1 # MIT License @@ -24,7 +24,7 @@ pymongo!=3.1,>=3.0.2 # Apache-2.0 redis>=2.10.0 # MIT psycopg2>=2.5 # LGPL/ZPL -cassandra-driver>=2.1.4 # Apache-2.0 +cassandra-driver!=3.6.0,>=2.1.4 # Apache-2.0 pycrypto>=2.6 # Public Domain couchdb>=0.8 # Apache-2.0 os-testr>=0.7.0 # Apache-2.0 diff -Nru openstack-trove-6.0.0~b2/tools/install_venv.py openstack-trove-6.0.0~b3~dev119/tools/install_venv.py --- openstack-trove-6.0.0~b2/tools/install_venv.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/tools/install_venv.py 2016-08-29 20:08:34.000000000 +0000 @@ -4,7 +4,7 @@ # Administrator of the National Aeronautics and Space Administration. # All Rights Reserved. # -# Copyright 2010 OpenStack, LLC +# Copyright 2010 OpenStack Foundation # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain diff -Nru openstack-trove-6.0.0~b2/tox.ini openstack-trove-6.0.0~b3~dev119/tox.ini --- openstack-trove-6.0.0~b2/tox.ini 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/tox.ini 2016-08-29 20:08:34.000000000 +0000 @@ -27,20 +27,15 @@ xargs -0 -n 1 msgfmt --check-format -o /dev/null" [testenv:py34] -commands = - ostestr --blacklist_file=blacklist-py3.txt +commands = rm -f .testrepository/times.dbm + ostestr --blacklist_file=blacklist-py3.txt --serial +whitelist_externals = rm [testenv:debug] commands = oslo_debug_helper {posargs} [testenv:cover] -# NOTE(amrith) The setting of the install_command in this location -# is only required because currently infra does not actually -# support constraints files for the cover job, and while -# the environment variable UPPER_CONSTRAINTS_FILE is set, there's -# no file there. It can be removed when infra changes this. -install_command = pip install -U {opts} {packages} basepython = python2.7 commands = coverage erase @@ -52,12 +47,6 @@ [testenv:venv] -# NOTE(amrith) The setting of the install_command in this location -# is only required because currently infra does not actually -# support constraints files for the venv job, and while -# the environment variable UPPER_CONSTRAINTS_FILE is set, there's -# no file there. It can be removed when infra changes this. -install_command = pip install -U {opts} {packages} commands = {posargs} [flake8] @@ -69,44 +58,19 @@ exclude=.venv,.tox,.git,dist,doc,openstack,*egg,tools,etc,build,*.po,*.pot filename=*.py,trove-* -[testenv:checklinks] -commands = openstack-doc-test --check-links {posargs} - -[testenv:checkbuild] -# NOTE(pmalik) The setting of the install_command in this location -# is only required because currently infra does not actually -# support constraints files for the publishdocs job, and while -# the environment variable UPPER_CONSTRAINTS_FILE is set, there's -# no file there. It can be removed when infra changes this. -install_command = pip install -U {opts} {packages} +[testenv:api-ref] +# This environment is called from CI scripts to test and publish +# the API Ref to developer.openstack.org. commands = - openstack-doc-test --check-niceness --check-syntax --check-deletions {posargs} - openstack-doc-test --check-build {posargs} - -[testenv:publishdocs] -# NOTE(amrith) The setting of the install_command in this location -# is only required because currently infra does not actually -# support constraints files for the publishdocs job, and while -# the environment variable UPPER_CONSTRAINTS_FILE is set, there's -# no file there. It can be removed when infra changes this. -install_command = pip install -U {opts} {packages} -commands = openstack-doc-test --check-build --publish --force + rm -rf api-ref/build + sphinx-build -W -b html -d api-ref/build/doctrees api-ref/source api-ref/build/html +whitelist_externals = rm [testenv:releasenotes] -# NOTE(amrith) The setting of the install_command in this location -# is only required because currently infra does not actually -# support constraints files for the release notes job, and while -# the environment variable UPPER_CONSTRAINTS_FILE is set, there's -# no file there. It can be removed when infra changes this. -install_command = pip install -U {opts} {packages} commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html [testenv:bandit] commands = bandit -r trove -n5 -x tests [testenv:install-guide] -# NOTE(jaegerandi): this target does not use constraints because -# upstream infra does not yet support it. Once that's fixed, we can -# drop the install_command. -install_command = pip install -U --force-reinstall {opts} {packages} commands = sphinx-build -a -E -W -d install-guide/build/doctrees -b html install-guide/source install-guide/build/html diff -Nru openstack-trove-6.0.0~b2/trove/cmd/api.py openstack-trove-6.0.0~b3~dev119/trove/cmd/api.py --- openstack-trove-6.0.0~b2/trove/cmd/api.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/cmd/api.py 2016-08-29 20:08:30.000000000 +0000 @@ -20,8 +20,12 @@ @with_initialize def main(CONF): from trove.common import cfg + from trove.common import notification from trove.common import wsgi + from trove.instance import models as inst_models + notification.DBaaSAPINotification.register_notify_callback( + inst_models.persist_instance_fault) cfg.set_api_config_defaults() profile.setup_profiler('api', CONF.host) conf_file = CONF.find_file(CONF.api_paste_config) diff -Nru openstack-trove-6.0.0~b2/trove/cmd/conductor.py openstack-trove-6.0.0~b3~dev119/trove/cmd/conductor.py --- openstack-trove-6.0.0~b2/trove/cmd/conductor.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/cmd/conductor.py 2016-08-29 20:08:30.000000000 +0000 @@ -20,9 +20,13 @@ @with_initialize def main(conf): + from trove.common import notification from trove.common.rpc import service as rpc_service from trove.common.rpc import version as rpc_version + from trove.instance import models as inst_models + notification.DBaaSAPINotification.register_notify_callback( + inst_models.persist_instance_fault) topic = conf.conductor_queue server = rpc_service.RpcService( manager=conf.conductor_manager, topic=topic, diff -Nru openstack-trove-6.0.0~b2/trove/cmd/guest.py openstack-trove-6.0.0~b3~dev119/trove/cmd/guest.py --- openstack-trove-6.0.0~b2/trove/cmd/guest.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/cmd/guest.py 2016-08-29 20:08:34.000000000 +0000 @@ -40,10 +40,15 @@ from trove.guestagent import dbaas manager = dbaas.datastore_registry().get(CONF.datastore_manager) if not manager: - msg = ("Manager class not registered for datastore manager %s" % + msg = (_LE("Manager class not registered for datastore manager %s") % CONF.datastore_manager) raise RuntimeError(msg) + if not CONF.guest_id: + msg = (_LE("The guest_id parameter is not set. guest_info.conf " + "was not injected into the guest or not read by guestagent")) + raise RuntimeError(msg) + # rpc module must be loaded after decision about thread monkeypatching # because if thread module is not monkeypatched we can't use eventlet # executor from oslo_messaging library. diff -Nru openstack-trove-6.0.0~b2/trove/cmd/taskmanager.py openstack-trove-6.0.0~b3~dev119/trove/cmd/taskmanager.py --- openstack-trove-6.0.0~b2/trove/cmd/taskmanager.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/cmd/taskmanager.py 2016-08-29 20:08:30.000000000 +0000 @@ -22,9 +22,13 @@ def startup(conf, topic): + from trove.common import notification from trove.common.rpc import service as rpc_service from trove.common.rpc import version as rpc_version + from trove.instance import models as inst_models + notification.DBaaSAPINotification.register_notify_callback( + inst_models.persist_instance_fault) server = rpc_service.RpcService( manager=conf.taskmanager_manager, topic=topic, rpc_api_version=rpc_version.RPC_API_VERSION) diff -Nru openstack-trove-6.0.0~b2/trove/common/base_exception.py openstack-trove-6.0.0~b3~dev119/trove/common/base_exception.py --- openstack-trove-6.0.0~b2/trove/common/base_exception.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/common/base_exception.py 2016-08-29 20:08:30.000000000 +0000 @@ -121,9 +121,9 @@ try: self._error_string = self.message % kwargs - except Exception as e: + except Exception: if _FATAL_EXCEPTION_FORMAT_ERRORS: - raise e + raise else: # at least get the core message out if something happened self._error_string = self.message diff -Nru openstack-trove-6.0.0~b2/trove/common/cfg.py openstack-trove-6.0.0~b3~dev119/trove/common/cfg.py --- openstack-trove-6.0.0~b2/trove/common/cfg.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/common/cfg.py 2016-08-29 20:08:34.000000000 +0000 @@ -53,34 +53,34 @@ 'configured usage_timeout.'), cfg.StrOpt('os_region_name', default='RegionOne', help='Region name of this node. Used when searching catalog.'), - cfg.StrOpt('nova_compute_url', help='URL without the tenant segment.'), + cfg.URIOpt('nova_compute_url', help='URL without the tenant segment.'), cfg.StrOpt('nova_compute_service_type', default='compute', help='Service type to use when searching catalog.'), cfg.StrOpt('nova_compute_endpoint_type', default='publicURL', help='Service endpoint type to use when searching catalog.'), cfg.StrOpt('nova_client_version', default='2.12', help="The version of the compute service client."), - cfg.StrOpt('neutron_url', help='URL without the tenant segment.'), + cfg.URIOpt('neutron_url', help='URL without the tenant segment.'), cfg.StrOpt('neutron_service_type', default='network', help='Service type to use when searching catalog.'), cfg.StrOpt('neutron_endpoint_type', default='publicURL', help='Service endpoint type to use when searching catalog.'), - cfg.StrOpt('cinder_url', help='URL without the tenant segment.'), + cfg.URIOpt('cinder_url', help='URL without the tenant segment.'), cfg.StrOpt('cinder_service_type', default='volumev2', help='Service type to use when searching catalog.'), cfg.StrOpt('cinder_endpoint_type', default='publicURL', help='Service endpoint type to use when searching catalog.'), - cfg.StrOpt('heat_url', help='URL without the tenant segment.'), + cfg.URIOpt('heat_url', help='URL without the tenant segment.'), cfg.StrOpt('heat_service_type', default='orchestration', help='Service type to use when searching catalog.'), cfg.StrOpt('heat_endpoint_type', default='publicURL', help='Service endpoint type to use when searching catalog.'), - cfg.StrOpt('swift_url', help='URL ending in AUTH_.'), + cfg.URIOpt('swift_url', help='URL ending in AUTH_.'), cfg.StrOpt('swift_service_type', default='object-store', help='Service type to use when searching catalog.'), cfg.StrOpt('swift_endpoint_type', default='publicURL', help='Service endpoint type to use when searching catalog.'), - cfg.StrOpt('trove_auth_url', default='http://0.0.0.0:5000/v2.0', + cfg.URIOpt('trove_auth_url', default='http://0.0.0.0:5000/v2.0', help='Trove authentication URL.'), cfg.IPOpt('host', default='0.0.0.0', help='Host to listen for RPC messages.'), @@ -96,17 +96,17 @@ cfg.StrOpt('dns_instance_entry_factory', default='trove.dns.driver.DnsInstanceEntryFactory', help='Factory for adding DNS entries.'), - cfg.StrOpt('dns_hostname', default="", - help='Hostname used for adding DNS entries.'), + cfg.HostnameOpt('dns_hostname', default="localhost", + help='Hostname used for adding DNS entries.'), cfg.StrOpt('dns_account_id', default="", help='Tenant ID for DNSaaS.'), - cfg.StrOpt('dns_endpoint_url', default="0.0.0.0", + cfg.URIOpt('dns_endpoint_url', default="http://0.0.0.0", help='Endpoint URL for DNSaaS.'), cfg.StrOpt('dns_service_type', default="", help='Service Type for DNSaaS.'), cfg.StrOpt('dns_region', default="", help='Region name for DNSaaS.'), - cfg.StrOpt('dns_auth_url', default="", + cfg.URIOpt('dns_auth_url', default="http://0.0.0.0", help='Authentication URL for DNSaaS.'), cfg.StrOpt('dns_domain_name', default="", help='Domain name used for adding DNS entries.'), @@ -114,7 +114,7 @@ help='Username for DNSaaS.'), cfg.StrOpt('dns_passkey', default="", secret=True, help='Passkey for DNSaaS.'), - cfg.StrOpt('dns_management_base_url', default="", + cfg.URIOpt('dns_management_base_url', default="http://0.0.0.0", help='Management URL for DNSaaS.'), cfg.IntOpt('dns_ttl', default=300, help='Time (in seconds) before a refresh of DNS information ' @@ -139,7 +139,7 @@ help="Maximum time (in seconds) to wait for Guest Agent 'quick'" "requests (such as retrieving a list of users or " "databases)."), - cfg.IntOpt('agent_call_high_timeout', default=60 * 5, + cfg.IntOpt('agent_call_high_timeout', default=60 * 10, help="Maximum time (in seconds) to wait for Guest Agent 'slow' " "requests (such as restarting the database)."), cfg.IntOpt('agent_replication_snapshot_timeout', default=36000, @@ -191,7 +191,7 @@ cfg.IntOpt('trove_conductor_workers', help='Number of workers for the Conductor service. The default ' 'will be the number of CPUs available.'), - cfg.BoolOpt('use_nova_server_config_drive', default=False, + cfg.BoolOpt('use_nova_server_config_drive', default=True, help='Use config drive for file injection when booting ' 'instance.'), cfg.BoolOpt('use_nova_server_volume', default=False, @@ -403,7 +403,7 @@ 'become alive.'), cfg.StrOpt('module_aes_cbc_key', default='module_aes_cbc_key', help='OpenSSL aes_cbc key for module encryption.'), - cfg.ListOpt('module_types', default=['ping'], + cfg.ListOpt('module_types', default=['ping', 'new_relic_license'], help='A list of module types supported. A module type ' 'corresponds to the name of a ModuleDriver.'), cfg.StrOpt('guest_log_container_name', @@ -480,6 +480,8 @@ 'mysql', title='MySQL options', help="Oslo option group designed for MySQL datastore") mysql_opts = [ + cfg.BoolOpt('icmp', default=False, + help='Whether to permit ICMP.'), cfg.ListOpt('tcp_ports', default=["3306"], help='List of TCP ports and/or port ranges to open ' 'in the security group (only applicable ' @@ -558,6 +560,8 @@ 'percona', title='Percona options', help="Oslo option group designed for Percona datastore") percona_opts = [ + cfg.BoolOpt('icmp', default=False, + help='Whether to permit ICMP.'), cfg.ListOpt('tcp_ports', default=["3306"], help='List of TCP ports and/or port ranges to open ' 'in the security group (only applicable ' @@ -641,6 +645,8 @@ 'pxc', title='Percona XtraDB Cluster options', help="Oslo option group designed for Percona XtraDB Cluster datastore") pxc_opts = [ + cfg.BoolOpt('icmp', default=False, + help='Whether to permit ICMP.'), cfg.ListOpt('tcp_ports', default=["3306", "4444", "4567", "4568"], help='List of TCP ports and/or port ranges to open ' 'in the security group (only applicable ' @@ -729,6 +735,8 @@ 'redis', title='Redis options', help="Oslo option group designed for Redis datastore") redis_opts = [ + cfg.BoolOpt('icmp', default=False, + help='Whether to permit ICMP.'), cfg.ListOpt('tcp_ports', default=["6379", "16379"], help='List of TCP ports and/or port ranges to open ' 'in the security group (only applicable ' @@ -804,6 +812,8 @@ 'cassandra', title='Cassandra options', help="Oslo option group designed for Cassandra datastore") cassandra_opts = [ + cfg.BoolOpt('icmp', default=False, + help='Whether to permit ICMP.'), cfg.ListOpt('tcp_ports', default=["7000", "7001", "7199", "9042", "9160"], help='List of TCP ports and/or port ranges to open ' 'in the security group (only applicable ' @@ -852,8 +862,12 @@ cfg.ListOpt('ignore_dbs', default=['system', 'system_auth', 'system_traces'], help='Databases to exclude when listing databases.'), - cfg.StrOpt('guest_log_exposed_logs', default='', + cfg.StrOpt('guest_log_exposed_logs', default='system', help='List of Guest Logs to expose for publishing.'), + cfg.StrOpt('system_log_level', + choices=['ALL', 'TRACE', 'DEBUG', 'INFO', 'WARN', 'ERROR'], + default='INFO', + help='Cassandra log verbosity.'), cfg.BoolOpt('cluster_support', default=True, help='Enable clusters to be created and managed.'), cfg.StrOpt('api_strategy', @@ -881,6 +895,8 @@ 'couchbase', title='Couchbase options', help="Oslo option group designed for Couchbase datastore") couchbase_opts = [ + cfg.BoolOpt('icmp', default=False, + help='Whether to permit ICMP.'), cfg.ListOpt('tcp_ports', default=["8091", "8092", "4369", "11209-11211", "21100-21199"], @@ -943,6 +959,8 @@ 'mongodb', title='MongoDB options', help="Oslo option group designed for MongoDB datastore") mongodb_opts = [ + cfg.BoolOpt('icmp', default=False, + help='Whether to permit ICMP.'), cfg.ListOpt('tcp_ports', default=["2500", "27017", "27019"], help='List of TCP ports and/or port ranges to open ' 'in the security group (only applicable ' @@ -1034,6 +1052,8 @@ 'postgresql', title='PostgreSQL options', help="Oslo option group for the PostgreSQL datastore.") postgresql_opts = [ + cfg.BoolOpt('icmp', default=False, + help='Whether to permit ICMP.'), cfg.ListOpt('tcp_ports', default=["5432"], help='List of TCP ports and/or port ranges to open ' 'in the security group (only applicable ' @@ -1098,6 +1118,8 @@ 'couchdb', title='CouchDB options', help="Oslo option group designed for CouchDB datastore") couchdb_opts = [ + cfg.BoolOpt('icmp', default=False, + help='Whether to permit ICMP.'), cfg.ListOpt('tcp_ports', default=["5984"], help='List of TCP ports and/or port ranges to open ' @@ -1158,6 +1180,8 @@ 'vertica', title='Vertica options', help="Oslo option group designed for Vertica datastore") vertica_opts = [ + cfg.BoolOpt('icmp', default=False, + help='Whether to permit ICMP.'), cfg.ListOpt('tcp_ports', default=["5433", "5434", "22", "5444", "5450", "4803"], help='List of TCP ports and/or port ranges to open ' @@ -1226,6 +1250,8 @@ 'db2', title='DB2 options', help="Oslo option group designed for DB2 datastore") db2_opts = [ + cfg.BoolOpt('icmp', default=False, + help='Whether to permit ICMP.'), cfg.ListOpt('tcp_ports', default=["50000"], help='List of TCP ports and/or port ranges to open ' @@ -1284,6 +1310,8 @@ 'mariadb', title='MariaDB options', help="Oslo option group designed for MariaDB datastore") mariadb_opts = [ + cfg.BoolOpt('icmp', default=False, + help='Whether to permit ICMP.'), cfg.ListOpt('tcp_ports', default=["3306", "4444", "4567", "4568"], help='List of TCP ports and/or port ranges to open ' 'in the security group (only applicable ' @@ -1292,7 +1320,7 @@ help='List of UDP ports and/or port ranges to open ' 'in the security group (only applicable ' 'if trove_security_groups_support is True).'), - cfg.StrOpt('backup_strategy', default='InnoBackupEx', + cfg.StrOpt('backup_strategy', default='MariaDBInnoBackupEx', help='Default strategy to perform backups.', deprecated_name='backup_strategy', deprecated_group='DEFAULT'), @@ -1314,12 +1342,14 @@ help='Maximum time (in seconds) to wait for a Guest to become ' 'active.'), cfg.StrOpt('backup_namespace', - default='trove.guestagent.strategies.backup.mysql_impl', + default='trove.guestagent.strategies.backup.experimental' + '.mariadb_impl', help='Namespace to load backup strategies from.', deprecated_name='backup_namespace', deprecated_group='DEFAULT'), cfg.StrOpt('restore_namespace', - default='trove.guestagent.strategies.restore.mysql_impl', + default='trove.guestagent.strategies.restore.experimental' + '.mariadb_impl', help='Namespace to load restore strategies from.', deprecated_name='restore_namespace', deprecated_group='DEFAULT'), @@ -1328,7 +1358,8 @@ cfg.StrOpt('device_path', default='/dev/vdb', help='Device path for volume if volume support is enabled.'), cfg.DictOpt('backup_incremental_strategy', - default={'InnoBackupEx': 'InnoBackupExIncremental'}, + default={'MariaDBInnoBackupEx': + 'MariaDBInnoBackupExIncremental'}, help='Incremental Backup Runner based on the default ' 'strategy. For strategies that do not implement an ' 'incremental backup, the runner will use the default full ' diff -Nru openstack-trove-6.0.0~b2/trove/common/exception.py openstack-trove-6.0.0~b3~dev119/trove/common/exception.py --- openstack-trove-6.0.0~b2/trove/common/exception.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/common/exception.py 2016-08-29 20:08:30.000000000 +0000 @@ -528,6 +528,11 @@ "options. %(options)s") +class ModuleInvalid(Forbidden): + + message = _("The module you are applying is invalid: %(reason)s") + + class ClusterNotFound(NotFound): message = _("Cluster '%(cluster)s' cannot be found.") diff -Nru openstack-trove-6.0.0~b2/trove/common/notification.py openstack-trove-6.0.0~b3~dev119/trove/common/notification.py --- openstack-trove-6.0.0~b2/trove/common/notification.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/common/notification.py 2016-08-29 20:08:30.000000000 +0000 @@ -295,6 +295,15 @@ ''' event_type_format = 'dbaas.%s.%s' + notify_callback = None + + @classmethod + def register_notify_callback(cls, callback): + """A callback registered here will be fired whenever + a notification is sent out. The callback should + take a notification object, and event_qualifier. + """ + cls.notify_callback = callback @abc.abstractmethod def event_type(self): @@ -324,7 +333,7 @@ def optional_error_traits(self): 'Returns list of optional traits for error notification' - return [] + return ['instance_id'] def required_base_traits(self): return ['tenant_id', 'client_ip', 'server_ip', 'server_type', @@ -395,6 +404,8 @@ del context.notification notifier = rpc.get_notifier(service=self.payload['server_type']) notifier.info(context, qualified_event_type, self.payload) + if self.notify_callback: + self.notify_callback(event_qualifier) def notify_start(self, **kwargs): self._notify('start', self.required_start_traits(), diff -Nru openstack-trove-6.0.0~b2/trove/common/profile.py openstack-trove-6.0.0~b3~dev119/trove/common/profile.py --- openstack-trove-6.0.0~b2/trove/common/profile.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/common/profile.py 2016-08-29 20:08:34.000000000 +0000 @@ -20,11 +20,10 @@ from osprofiler import web from trove.common import cfg -from trove.common import i18n +from trove.common.i18n import _LW from trove import rpc -_LW = i18n._LW LOG = logging.getLogger(__name__) CONF = cfg.CONF diff -Nru openstack-trove-6.0.0~b2/trove/common/stream_codecs.py openstack-trove-6.0.0~b3~dev119/trove/common/stream_codecs.py --- openstack-trove-6.0.0~b2/trove/common/stream_codecs.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/common/stream_codecs.py 2016-08-29 20:08:34.000000000 +0000 @@ -21,6 +21,7 @@ import re import six from six.moves.configparser import SafeConfigParser +import xmltodict import yaml @@ -179,8 +180,8 @@ ... The above file content would be represented as: - {'section_1': {'key': 'value', 'key': 'value', ...}, - 'section_2': {'key': 'value', 'key': 'value', ...} + {'section_1': {'key': value, 'key': value, ...}, + 'section_2': {'key': value, 'key': value, ...} ... } """ @@ -190,9 +191,8 @@ :param default_value: Default value for keys with no value. If set, all keys are written as 'key = value'. The key is written without trailing '=' if None. - :type default_value: string + :type default_value: object """ - self._value_converter = StringConverter({default_value: None}) self._default_value = default_value self._comment_markers = comment_markers @@ -207,7 +207,8 @@ parser = self._init_config_parser() parser.readfp(self._pre_parse(stream)) - return {s: {k: self._value_converter.to_strings(v) + return {s: {k: + StringConverter({None: self._default_value}).to_objects(v) for k, v in parser.items(s, raw=True)} for s in parser.sections()} @@ -231,8 +232,11 @@ for section in sections: parser.add_section(section) for key, value in sections[section].items(): + str_val = StringConverter( + {self._default_value: None}).to_strings(value) parser.set(section, key, - self._value_converter.to_strings(value)) + str(str_val) if str_val is not None + else str_val) return parser @@ -383,6 +387,7 @@ ... } """ + def __init__(self, delimiter='=', comment_markers=('#'), unpack_singletons=True, string_mappings=None): super(KeyValueCodec, self).__init__( @@ -423,3 +428,16 @@ # py27 & py34 seem to understand bytearray the same return bytearray([item for item in base64.b64decode(stream)]) + + +class XmlCodec(StreamCodec): + + def __init__(self, encoding='utf-8'): + self._encoding = encoding + + def serialize(self, dict_data): + return xmltodict.unparse( + dict_data, output=None, encoding=self._encoding, pretty=True) + + def deserialize(self, stream): + return xmltodict.parse(stream, encoding=self._encoding) diff -Nru openstack-trove-6.0.0~b2/trove/common/utils.py openstack-trove-6.0.0~b3~dev119/trove/common/utils.py --- openstack-trove-6.0.0~b2/trove/common/utils.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/common/utils.py 2016-08-29 20:08:30.000000000 +0000 @@ -331,3 +331,42 @@ """ return (isinstance(item, collections.Iterable) and not isinstance(item, (bytes, six.text_type))) + + +def format_output(message, format_len=79, truncate_len=None, replace_index=0): + """Recursive function to try and keep line lengths below a certain amount, + so they can be displayed nicely on the command-line or UI. + Tries replacement patterns one at a time (in round-robin fashion) + that insert \n at strategic spots. + """ + replacements = [['. ', '.\n'], [' (', '\n('], [': ', ':\n ']] + replace_index %= len(replacements) + if not isinstance(message, list): + message = message.splitlines(1) + msg_list = [] + for line in message: + if len(line) > format_len: + ok_to_split_again = False + for count in range(0, len(replacements)): + lines = line.replace( + replacements[replace_index][0], + replacements[replace_index][1], + 1 + ).splitlines(1) + replace_index = (replace_index + 1) % len(replacements) + if len(lines) > 1: + ok_to_split_again = True + break + for item in lines: + # If we spilt, but a line is still too long, do it again + if ok_to_split_again and len(item) > format_len: + item = format_output(item, format_len=format_len, + replace_index=replace_index) + msg_list.append(item) + else: + msg_list.append(line) + + msg_str = "".join(msg_list) + if truncate_len and len(msg_str) > truncate_len: + msg_str = msg_str[:truncate_len - 3] + '...' + return msg_str diff -Nru openstack-trove-6.0.0~b2/trove/conductor/api.py openstack-trove-6.0.0~b3~dev119/trove/conductor/api.py --- openstack-trove-6.0.0~b2/trove/conductor/api.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/conductor/api.py 2016-08-29 20:08:30.000000000 +0000 @@ -90,6 +90,7 @@ context = self.context serialized = SerializableNotification.serialize(context, context.notification) + serialized.update({'instance_id': CONF.guest_id}) cctxt.cast(self.context, "notify_exc_info", serialized_notification=serialized, message=message, exception=exception) diff -Nru openstack-trove-6.0.0~b2/trove/conductor/manager.py openstack-trove-6.0.0~b3~dev119/trove/conductor/manager.py --- openstack-trove-6.0.0~b2/trove/conductor/manager.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/conductor/manager.py 2016-08-29 20:08:30.000000000 +0000 @@ -18,14 +18,14 @@ from trove.backup import models as bkup_models from trove.common import cfg -from trove.common import exception +from trove.common import exception as trove_exception from trove.common.i18n import _ from trove.common.instance import ServiceStatus from trove.common.rpc import version as rpc_version from trove.common.serializable_notification import SerializableNotification from trove.conductor.models import LastSeen from trove.extensions.mysql import models as mysql_models -from trove.instance import models as t_models +from trove.instance import models as inst_models LOG = logging.getLogger(__name__) CONF = cfg.CONF @@ -57,7 +57,7 @@ try: seen = LastSeen.load(instance_id=instance_id, method_name=method_name) - except exception.NotFound: + except trove_exception.NotFound: # This is fine. pass @@ -86,7 +86,7 @@ LOG.debug("Instance ID: %(instance)s, Payload: %(payload)s" % {"instance": str(instance_id), "payload": str(payload)}) - status = t_models.InstanceServiceStatus.find_by( + status = inst_models.InstanceServiceStatus.find_by( instance_id=instance_id) if self._message_too_old(instance_id, 'heartbeat', sent): return diff -Nru openstack-trove-6.0.0~b2/trove/db/sqlalchemy/mappers.py openstack-trove-6.0.0~b3~dev119/trove/db/sqlalchemy/mappers.py --- openstack-trove-6.0.0~b2/trove/db/sqlalchemy/mappers.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/db/sqlalchemy/mappers.py 2016-08-29 20:08:30.000000000 +0000 @@ -26,6 +26,8 @@ return orm.mapper(models['instance'], Table('instances', meta, autoload=True)) + orm.mapper(models['instance_faults'], + Table('instance_faults', meta, autoload=True)) orm.mapper(models['root_enabled_history'], Table('root_enabled_history', meta, autoload=True)) orm.mapper(models['datastore'], diff -Nru openstack-trove-6.0.0~b2/trove/db/sqlalchemy/migrate_repo/versions/038_instance_faults.py openstack-trove-6.0.0~b3~dev119/trove/db/sqlalchemy/migrate_repo/versions/038_instance_faults.py --- openstack-trove-6.0.0~b2/trove/db/sqlalchemy/migrate_repo/versions/038_instance_faults.py 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/db/sqlalchemy/migrate_repo/versions/038_instance_faults.py 2016-08-29 20:08:30.000000000 +0000 @@ -0,0 +1,56 @@ +# Copyright 2016 Tesora, Inc. +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# + +from sqlalchemy import ForeignKey +from sqlalchemy.schema import Column +from sqlalchemy.schema import MetaData + +from trove.db.sqlalchemy.migrate_repo.schema import Boolean +from trove.db.sqlalchemy.migrate_repo.schema import create_tables +from trove.db.sqlalchemy.migrate_repo.schema import DateTime +from trove.db.sqlalchemy.migrate_repo.schema import drop_tables +from trove.db.sqlalchemy.migrate_repo.schema import String +from trove.db.sqlalchemy.migrate_repo.schema import Table +from trove.db.sqlalchemy.migrate_repo.schema import Text + + +meta = MetaData() + +instance_faults = Table( + 'instance_faults', + meta, + Column('id', String(length=64), primary_key=True, nullable=False), + Column('instance_id', String(length=64), + ForeignKey('instances.id', ondelete="CASCADE", + onupdate="CASCADE"), nullable=False), + Column('message', String(length=255), nullable=False), + Column('details', Text(length=65535), nullable=False), + Column('created', DateTime(), nullable=False), + Column('updated', DateTime(), nullable=False), + Column('deleted', Boolean(), default=0, nullable=False), + Column('deleted_at', DateTime()), +) + + +def upgrade(migrate_engine): + meta.bind = migrate_engine + Table('instances', meta, autoload=True) + create_tables([instance_faults]) + + +def downgrade(migrate_engine): + meta.bind = migrate_engine + drop_tables([instance_faults]) diff -Nru openstack-trove-6.0.0~b2/trove/extensions/security_group/models.py openstack-trove-6.0.0~b3~dev119/trove/extensions/security_group/models.py --- openstack-trove-6.0.0~b2/trove/extensions/security_group/models.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/extensions/security_group/models.py 2016-08-29 20:08:31.000000000 +0000 @@ -66,9 +66,9 @@ user=context.user, tenant_id=context.tenant) - except exception.SecurityGroupCreationError as e: + except exception.SecurityGroupCreationError: LOG.exception(_("Failed to create remote security group.")) - raise e + raise @classmethod def create_for_instance(cls, instance_id, context): @@ -163,9 +163,9 @@ cidr=cidr, group_id=sec_group['id']) - except exception.SecurityGroupRuleCreationError as e: + except exception.SecurityGroupRuleCreationError: LOG.exception(_("Failed to create remote security group.")) - raise e + raise def get_security_group(self, tenant_id): return SecurityGroup.find_by(id=self.group_id, diff -Nru openstack-trove-6.0.0~b2/trove/flavor/views.py openstack-trove-6.0.0~b3~dev119/trove/flavor/views.py --- openstack-trove-6.0.0~b2/trove/flavor/views.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/flavor/views.py 2016-08-29 20:08:34.000000000 +0000 @@ -28,11 +28,13 @@ def data(self): - # If the flavor id cannot be cast to an int, we simply return + # If the flavor id is not an int, we simply return # no id and rely on str_id instead. - try: + if isinstance(self.flavor.id, int) or ( + self.flavor.id.isdigit() and + not self.flavor.id.startswith('0')): f_id = int(self.flavor.id) - except ValueError: + else: f_id = None flavor = { @@ -40,6 +42,7 @@ 'links': self._build_links(), 'name': self.flavor.name, 'ram': self.flavor.ram, + 'vcpus': self.flavor.vcpus, 'str_id': str(self.flavor.id), } diff -Nru openstack-trove-6.0.0~b2/trove/guestagent/common/guestagent_utils.py openstack-trove-6.0.0~b3~dev119/trove/guestagent/common/guestagent_utils.py --- openstack-trove-6.0.0~b2/trove/guestagent/common/guestagent_utils.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/guestagent/common/guestagent_utils.py 2016-08-29 20:08:34.000000000 +0000 @@ -19,6 +19,8 @@ import six +from trove.common import pagination + def update_dict(updates, target): """Recursively update a target dictionary with given updates. @@ -117,6 +119,24 @@ 'G': 1024 ** 3, }[suffix] - return str(int(round(factor * float(value)))) + return int(round(factor * float(value))) return value + + +def paginate_list(li, limit=None, marker=None, include_marker=False): + """Paginate a list of objects based on the name attribute. + :returns: Page sublist and a marker (name of the last item). + """ + return pagination.paginate_object_list( + li, 'name', limit=limit, marker=marker, include_marker=include_marker) + + +def serialize_list(li, limit=None, marker=None, include_marker=False): + """ + Paginate (by name) and serialize a given object list. + :returns: A serialized and paginated version of a given list. + """ + page, next_name = paginate_list(li, limit=limit, marker=marker, + include_marker=include_marker) + return [item.serialize() for item in page], next_name diff -Nru openstack-trove-6.0.0~b2/trove/guestagent/common/sql_query.py openstack-trove-6.0.0~b3~dev119/trove/guestagent/common/sql_query.py --- openstack-trove-6.0.0~b2/trove/guestagent/common/sql_query.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/guestagent/common/sql_query.py 2016-08-29 20:08:34.000000000 +0000 @@ -346,68 +346,43 @@ return " ".join(query) + ";" -class UpdateUser(object): +class RenameUser(object): - def __init__(self, user, host=None, clear=None, new_user=None, + def __init__(self, user, host=None, new_user=None, new_host=None): self.user = user - self.host = host - self.clear = clear + self.host = host or '%' self.new_user = new_user self.new_host = new_host def __repr__(self): return str(self) - @property - def _set_password(self): - if self.clear: - return "Password=PASSWORD('%s')" % self.clear - - @property - def _set_user(self): - if self.new_user: - return "User='%s'" % self.new_user - - @property - def _set_host(self): - if self.new_host: - return "Host='%s'" % self.new_host - - @property - def _host(self): - if not self.host: - return "%" - return self.host - - @property - def _set_attrs(self): - sets = [self._set_user, - self._set_host, - self._set_password, - ] - sets = [s for s in sets if s] - sets = ', '.join(sets) - return 'SET %s' % sets - - @property - def _where(self): - clauses = [] - if self.user: - clauses.append("User = '%s'" % self.user) - if self.host: - clauses.append("Host = '%s'" % self._host) - if not clauses: - return "" - return "WHERE %s" % " AND ".join(clauses) + def __str__(self): + properties = {'old_name': self.user, + 'old_host': self.host, + 'new_name': self.new_user or self.user, + 'new_host': self.new_host or self.host} + return ("RENAME USER '%(old_name)s'@'%(old_host)s' TO " + "'%(new_name)s'@'%(new_host)s';" % properties) + + +class SetPassword(object): + + def __init__(self, user, host=None, new_password=None): + self.user = user + self.host = host or '%' + self.new_password = new_password or '' + + def __repr__(self): + return str(self) def __str__(self): - query = ["UPDATE mysql.user", - self._set_attrs, - self._where, - ] - query = [q for q in query if q] - return " ".join(query) + ";" + properties = {'user_name': self.user, + 'user_host': self.host, + 'new_password': self.new_password} + return ("SET PASSWORD FOR '%(user_name)s'@'%(user_host)s' = " + "PASSWORD('%(new_password)s');" % properties) class DropUser(object): diff -Nru openstack-trove-6.0.0~b2/trove/guestagent/datastore/experimental/cassandra/manager.py openstack-trove-6.0.0~b3~dev119/trove/guestagent/datastore/experimental/cassandra/manager.py --- openstack-trove-6.0.0~b2/trove/guestagent/datastore/experimental/cassandra/manager.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/guestagent/datastore/experimental/cassandra/manager.py 2016-08-29 20:08:34.000000000 +0000 @@ -25,6 +25,7 @@ from trove.guestagent import backup from trove.guestagent.datastore.experimental.cassandra import service from trove.guestagent.datastore import manager +from trove.guestagent import guest_log from trove.guestagent import volume @@ -34,6 +35,8 @@ class Manager(manager.Manager): + GUEST_LOG_DEFS_SYSTEM_LABEL = 'system' + def __init__(self, manager_name='cassandra'): super(Manager, self).__init__(manager_name) self._app = None @@ -62,6 +65,29 @@ def configuration_manager(self): return self.app.configuration_manager + @property + def datastore_log_defs(self): + system_log_file = self.validate_log_file( + self.app.cassandra_system_log_file, self.app.cassandra_owner) + return { + self.GUEST_LOG_DEFS_SYSTEM_LABEL: { + self.GUEST_LOG_TYPE_LABEL: guest_log.LogType.USER, + self.GUEST_LOG_USER_LABEL: self.app.cassandra_owner, + self.GUEST_LOG_FILE_LABEL: system_log_file + } + } + + def guest_log_enable(self, context, log_name, disable): + if disable: + LOG.debug("Disabling system log.") + self.app.set_logging_level('OFF') + else: + log_level = CONF.get(self.manager_name).get('system_log_level') + LOG.debug("Enabling system log with logging level: %s" % log_level) + self.app.set_logging_level(log_level) + + return False + def restart(self, context): self.app.restart() diff -Nru openstack-trove-6.0.0~b2/trove/guestagent/datastore/experimental/cassandra/service.py openstack-trove-6.0.0~b3~dev119/trove/guestagent/datastore/experimental/cassandra/service.py --- openstack-trove-6.0.0~b2/trove/guestagent/datastore/experimental/cassandra/service.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/guestagent/datastore/experimental/cassandra/service.py 2016-08-29 20:08:34.000000000 +0000 @@ -29,10 +29,10 @@ from trove.common import exception from trove.common.i18n import _ from trove.common import instance as rd_instance -from trove.common import pagination from trove.common.stream_codecs import IniCodec from trove.common.stream_codecs import PropertiesCodec from trove.common.stream_codecs import SafeYamlCodec +from trove.common.stream_codecs import XmlCodec from trove.common import utils from trove.guestagent.common.configuration import ConfigurationManager from trove.guestagent.common.configuration import OneFileOverrideStrategy @@ -63,6 +63,7 @@ CASSANDRA_CONF_FILE = "cassandra.yaml" CASSANDRA_TOPOLOGY_FILE = 'cassandra-rackdc.properties' + CASSANDRA_LOGBACK_FILE = "logback.xml" _TOPOLOGY_CODEC = PropertiesCodec( delimiter='=', unpack_singletons=True, string_mappings={ @@ -83,6 +84,14 @@ SafeYamlCodec(default_flow_style=False), requires_root=True, override_strategy=OneFileOverrideStrategy(revision_dir)) + lb_revision_dir = guestagent_utils.build_file_path( + os.path.dirname(self.cassandra_logback), 'logback-overrides') + self.logback_conf_manager = ConfigurationManager( + self.cassandra_logback, + self.cassandra_owner, self.cassandra_owner, + XmlCodec(), requires_root=True, + override_strategy=OneFileOverrideStrategy(lb_revision_dir)) + @property def service_candidates(self): return ['cassandra'] @@ -119,6 +128,20 @@ return "/var/lib/cassandra" @property + def cassandra_system_log_file(self): + return guestagent_utils.build_file_path( + self.cassandra_log_dir, 'system', 'log') + + @property + def cassandra_log_dir(self): + return "/var/log/cassandra" + + @property + def cassandra_logback(self): + return guestagent_utils.build_file_path(self.cassandra_conf_dir, + self.CASSANDRA_LOGBACK_FILE) + + @property def default_superuser_name(self): return "cassandra" @@ -687,6 +710,16 @@ # ( ... ) self._run_nodetool_command('flush', keyspace, *tables) + def set_logging_level(self, log_level): + """Set the log Cassandra's system log verbosity level. + """ + # Apply the change at runtime. + self._run_nodetool_command('setlogginglevel', 'root', log_level) + + # Persist the change. + self.logback_conf_manager.apply_system_override( + {'configuration': {'root': {'@level': log_level}}}) + def _run_nodetool_command(self, cmd, *args, **kwargs): """Execute a nodetool command on this node. """ @@ -840,9 +873,9 @@ List all non-superuser accounts. Omit names on the ignored list. Return an empty set if None. """ - users = [user.serialize() for user in - self._get_listed_users(self.client)] - return pagination.paginate_list(users, limit, marker, include_marker) + return guestagent_utils.serialize_list( + self._get_listed_users(self.client), + limit=limit, marker=marker, include_marker=include_marker) def _get_listed_users(self, client): """ @@ -1093,10 +1126,9 @@ def list_databases(self, context, limit=None, marker=None, include_marker=False): - databases = [keyspace.serialize() for keyspace - in self._get_available_keyspaces(self.client)] - return pagination.paginate_list(databases, limit, marker, - include_marker) + return guestagent_utils.serialize_list( + self._get_available_keyspaces(self.client), + limit=limit, marker=marker, include_marker=include_marker) def _get_available_keyspaces(self, client): """ diff -Nru openstack-trove-6.0.0~b2/trove/guestagent/datastore/experimental/couchdb/manager.py openstack-trove-6.0.0~b3~dev119/trove/guestagent/datastore/experimental/couchdb/manager.py --- openstack-trove-6.0.0~b2/trove/guestagent/datastore/experimental/couchdb/manager.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/guestagent/datastore/experimental/couchdb/manager.py 2016-08-29 20:08:34.000000000 +0000 @@ -131,7 +131,7 @@ return service.CouchDBAdmin().get_user(username, hostname) def grant_access(self, context, username, hostname, databases): - LOG.debug("Granting acccess.") + LOG.debug("Granting access.") return service.CouchDBAdmin().grant_access(username, databases) def revoke_access(self, context, username, hostname, database): diff -Nru openstack-trove-6.0.0~b2/trove/guestagent/datastore/experimental/db2/service.py openstack-trove-6.0.0~b3~dev119/trove/guestagent/datastore/experimental/db2/service.py --- openstack-trove-6.0.0~b2/trove/guestagent/datastore/experimental/db2/service.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/guestagent/datastore/experimental/db2/service.py 2016-08-29 20:08:34.000000000 +0000 @@ -14,6 +14,7 @@ # under the License. from oslo_log import log as logging +from oslo_utils import encodeutils from trove.common import cfg from trove.common import exception @@ -248,8 +249,9 @@ next_marker = None LOG.debug("databases = %s." % str(databases)) except exception.ProcessExecutionError as pe: + err_msg = encodeutils.exception_to_unicode(pe) LOG.exception(_("An error occurred listing databases: %s.") % - pe.message) + err_msg) pass return databases, next_marker diff -Nru openstack-trove-6.0.0~b2/trove/guestagent/datastore/experimental/mariadb/service.py openstack-trove-6.0.0~b3~dev119/trove/guestagent/datastore/experimental/mariadb/service.py --- openstack-trove-6.0.0~b2/trove/guestagent/datastore/experimental/mariadb/service.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/guestagent/datastore/experimental/mariadb/service.py 2016-08-29 20:08:34.000000000 +0000 @@ -16,6 +16,7 @@ from oslo_log import log as logging +from trove.guestagent.common import operating_system from trove.guestagent.datastore.galera_common import service as galera_service from trove.guestagent.datastore.mysql_common import service as mysql_service @@ -24,12 +25,23 @@ class MariaDBApp(galera_service.GaleraApp): + OS = operating_system.get_os() + def __init__(self, status): super(MariaDBApp, self).__init__( status, mysql_service.BaseLocalSqlClient, mysql_service.BaseKeepAliveConnection) @property + def service_candidates(self): + service_candidates = super(MariaDBApp, self).service_candidates + return { + operating_system.DEBIAN: service_candidates, + operating_system.REDHAT: ["mariadb"], + operating_system.SUSE: service_candidates + }[self.OS] + + @property def mysql_service(self): result = super(MariaDBApp, self).mysql_service if result['type'] == 'sysvinit': diff -Nru openstack-trove-6.0.0~b2/trove/guestagent/datastore/experimental/mongodb/service.py openstack-trove-6.0.0~b3~dev119/trove/guestagent/datastore/experimental/mongodb/service.py --- openstack-trove-6.0.0~b2/trove/guestagent/datastore/experimental/mongodb/service.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/guestagent/datastore/experimental/mongodb/service.py 2016-08-29 20:08:34.000000000 +0000 @@ -23,7 +23,6 @@ from trove.common import exception from trove.common.i18n import _ from trove.common import instance as ds_instance -from trove.common import pagination from trove.common.stream_codecs import JsonCodec, SafeYamlCodec from trove.common import utils as utils from trove.guestagent.common.configuration import ConfigurationManager @@ -591,10 +590,11 @@ user = models.MongoDBUser(name=user_info['_id']) user.roles = user_info['roles'] if self._is_modifiable_user(user.name): - users.append(user.serialize()) + users.append(user) LOG.debug('users = ' + str(users)) - return pagination.paginate_list(users, limit, marker, - include_marker) + return guestagent_utils.serialize_list( + users, + limit=limit, marker=marker, include_marker=include_marker) def change_passwords(self, users): with MongoDBClient(self._admin_user()) as admin_client: @@ -726,11 +726,12 @@ for hidden in cfg.get_ignored_dbs(): if hidden in db_names: db_names.remove(hidden) - databases = [models.MongoDBSchema(db_name).serialize() + databases = [models.MongoDBSchema(db_name) for db_name in db_names] LOG.debug('databases = ' + str(databases)) - return pagination.paginate_list(databases, limit, marker, - include_marker) + return guestagent_utils.serialize_list( + databases, + limit=limit, marker=marker, include_marker=include_marker) def add_shard(self, url): """Runs the addShard command.""" diff -Nru openstack-trove-6.0.0~b2/trove/guestagent/datastore/experimental/postgresql/service/database.py openstack-trove-6.0.0~b3~dev119/trove/guestagent/datastore/experimental/postgresql/service/database.py --- openstack-trove-6.0.0~b2/trove/guestagent/datastore/experimental/postgresql/service/database.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/guestagent/datastore/experimental/postgresql/service/database.py 2016-08-29 20:08:34.000000000 +0000 @@ -18,7 +18,7 @@ from trove.common import cfg from trove.common.i18n import _ from trove.common.notification import EndNotification -from trove.common import pagination +from trove.guestagent.common import guestagent_utils from trove.guestagent.datastore.experimental.postgresql import pgutil from trove.guestagent.db import models @@ -97,9 +97,9 @@ """List all databases on the instance. Return a paginated list of serialized Postgres databases. """ - page, next_name = pagination.paginate_object_list( - self._get_databases(), 'name', limit, marker, include_marker) - return [db.serialize() for db in page], next_name + return guestagent_utils.serialize_list( + self._get_databases(), + limit=limit, marker=marker, include_marker=include_marker) def _get_databases(self): """Return all non-system Postgres databases on the instance.""" diff -Nru openstack-trove-6.0.0~b2/trove/guestagent/datastore/experimental/postgresql/service/users.py openstack-trove-6.0.0~b3~dev119/trove/guestagent/datastore/experimental/postgresql/service/users.py --- openstack-trove-6.0.0~b2/trove/guestagent/datastore/experimental/postgresql/service/users.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/guestagent/datastore/experimental/postgresql/service/users.py 2016-08-29 20:08:34.000000000 +0000 @@ -19,8 +19,8 @@ from trove.common import exception from trove.common.i18n import _ from trove.common.notification import EndNotification -from trove.common import pagination from trove.common import utils +from trove.guestagent.common import guestagent_utils from trove.guestagent.datastore.experimental.postgresql import pgutil from trove.guestagent.datastore.experimental.postgresql.service.access import ( PgSqlAccess) @@ -131,9 +131,9 @@ """List all users on the instance along with their access permissions. Return a paginated list of serialized Postgres users. """ - page, next_name = pagination.paginate_object_list( - self._get_users(context), 'name', limit, marker, include_marker) - return [db.serialize() for db in page], next_name + return guestagent_utils.serialize_list( + self._get_users(context), + limit=limit, marker=marker, include_marker=include_marker) def _get_users(self, context): """Return all non-system Postgres users on the instance.""" diff -Nru openstack-trove-6.0.0~b2/trove/guestagent/datastore/experimental/pxc/service.py openstack-trove-6.0.0~b3~dev119/trove/guestagent/datastore/experimental/pxc/service.py --- openstack-trove-6.0.0~b2/trove/guestagent/datastore/experimental/pxc/service.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/guestagent/datastore/experimental/pxc/service.py 2016-08-29 20:08:31.000000000 +0000 @@ -15,12 +15,8 @@ # from oslo_log import log as logging -import sqlalchemy -from sqlalchemy.sql.expression import text from trove.common import cfg -from trove.common.i18n import _ -from trove.common import utils as utils from trove.guestagent.datastore.galera_common import service as galera_service from trove.guestagent.datastore.mysql_common import service as mysql_service @@ -52,43 +48,6 @@ def cluster_configuration(self): return self.configuration_manager.get_value('mysqld') - def secure(self, config_contents): - LOG.info(_("Generating admin password.")) - admin_password = utils.generate_random_password() - mysql_service.clear_expired_password() - uri = "mysql+pymysql://root:@localhost:3306" - engine = sqlalchemy.create_engine(uri, echo=True) - with self.local_sql_client(engine) as client: - self._remove_anonymous_user(client) - self._create_admin_user(client, admin_password) - - self.stop_db() - - self._reset_configuration(config_contents, admin_password) - self.start_mysql() - - # TODO(cp16net) figure out reason for PXC not updating the password - try: - with self.local_sql_client(engine) as client: - query = text("select Host, User from mysql.user;") - client.execute(query) - except Exception: - LOG.debug('failed to query mysql') - # creating the admin user after the config files are written because - # pxc was not committing the grant for the admin user after removing - # the annon users. - self._wait_for_mysql_to_be_really_alive( - CONF.timeout_wait_for_service) - with self.local_sql_client(engine) as client: - self._create_admin_user(client, admin_password) - self.stop_db() - - self._reset_configuration(config_contents, admin_password) - self.start_mysql() - self._wait_for_mysql_to_be_really_alive( - CONF.timeout_wait_for_service) - LOG.debug("MySQL secure complete.") - class PXCRootAccess(mysql_service.BaseMySqlRootAccess): diff -Nru openstack-trove-6.0.0~b2/trove/guestagent/datastore/experimental/vertica/service.py openstack-trove-6.0.0~b3~dev119/trove/guestagent/datastore/experimental/vertica/service.py --- openstack-trove-6.0.0~b2/trove/guestagent/datastore/experimental/vertica/service.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/guestagent/datastore/experimental/vertica/service.py 2016-08-29 20:08:34.000000000 +0000 @@ -372,7 +372,7 @@ temp_function=tempfile.NamedTemporaryFile): """Write the configuration contents to vertica.cnf file.""" LOG.debug('Defining config holder at %s.' % system.VERTICA_CONF) - tempfile = temp_function(delete=False) + tempfile = temp_function('w', delete=False) try: config.write(tempfile) tempfile.close() @@ -549,7 +549,7 @@ all_keys = '\n'.join(public_keys) + "\n" try: - with tempfile.NamedTemporaryFile(delete=False) as tempkeyfile: + with tempfile.NamedTemporaryFile("w", delete=False) as tempkeyfile: tempkeyfile.write(all_keys) copy_key_cmd = (("install -o %(user)s -m 600 %(source)s %(target)s" ) % {'user': user, 'source': tempkeyfile.name, diff -Nru openstack-trove-6.0.0~b2/trove/guestagent/datastore/galera_common/service.py openstack-trove-6.0.0~b3~dev119/trove/guestagent/datastore/galera_common/service.py --- openstack-trove-6.0.0~b2/trove/guestagent/datastore/galera_common/service.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/guestagent/datastore/galera_common/service.py 2016-08-29 20:08:31.000000000 +0000 @@ -17,7 +17,6 @@ import abc from oslo_log import log as logging -import sqlalchemy from sqlalchemy.sql.expression import text from trove.common.i18n import _ @@ -36,21 +35,6 @@ super(GaleraApp, self).__init__(status, local_sql_client, keep_alive_connection_cls) - def _test_mysql(self): - uri = "mysql+pymysql://root:@localhost:3306" - engine = sqlalchemy.create_engine(uri, echo=True) - try: - with self.local_sql_client(engine) as client: - out = client.execute(text("select 1;")) - for line in out: - LOG.debug("line: %s" % line) - return True - except Exception: - return False - - def _wait_for_mysql_to_be_really_alive(self, max_time): - utils.poll_until(self._test_mysql, sleep_time=3, time_out=max_time) - def _grant_cluster_replication_privilege(self, replication_user): LOG.info(_("Granting Replication Slave privilege.")) with self.local_sql_client(self.get_engine()) as client: diff -Nru openstack-trove-6.0.0~b2/trove/guestagent/datastore/mysql_common/manager.py openstack-trove-6.0.0~b3~dev119/trove/guestagent/datastore/mysql_common/manager.py --- openstack-trove-6.0.0~b2/trove/guestagent/datastore/mysql_common/manager.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/guestagent/datastore/mysql_common/manager.py 2016-08-29 20:08:31.000000000 +0000 @@ -230,7 +230,6 @@ if backup_info: self._perform_restore(backup_info, context, mount_point + "/data", app) - LOG.debug("Securing MySQL now.") app.secure(config_contents) enable_root_on_restore = (backup_info and self.mysql_admin().is_root_enabled()) diff -Nru openstack-trove-6.0.0~b2/trove/guestagent/datastore/mysql_common/service.py openstack-trove-6.0.0~b3~dev119/trove/guestagent/datastore/mysql_common/service.py --- openstack-trove-6.0.0~b2/trove/guestagent/datastore/mysql_common/service.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/guestagent/datastore/mysql_common/service.py 2016-08-29 20:08:34.000000000 +0000 @@ -24,6 +24,8 @@ import uuid from oslo_log import log as logging +from oslo_utils import encodeutils +from six.moves import urllib import sqlalchemy from sqlalchemy import exc from sqlalchemy import interfaces @@ -47,6 +49,7 @@ from trove.guestagent import pkg ADMIN_USER_NAME = "os_admin" +CONNECTION_STR_FORMAT = "mysql+pymysql://%s:%s@127.0.0.1:3306" LOG = logging.getLogger(__name__) FLUSH = text(sql_query.FLUSH) ENGINE = None @@ -255,8 +258,8 @@ user = models.MySQLUser() user.deserialize(user_dict) LOG.debug("\tDeserialized: %s." % user.__dict__) - uu = sql_query.UpdateUser(user.name, host=user.host, - clear=user.password) + uu = sql_query.SetPassword(user.name, host=user.host, + new_password=user.password) t = text(str(uu)) client.execute(t) @@ -264,33 +267,28 @@ """Change the attributes of an existing user.""" LOG.debug("Changing user attributes for user %s." % username) user = self._get_user(username, hostname) - db_access = set() - grantee = set() - with self.local_sql_client(self.mysql_app.get_engine()) as client: - q = sql_query.Query() - q.columns = ["grantee", "table_schema"] - q.tables = ["information_schema.SCHEMA_PRIVILEGES"] - q.group = ["grantee", "table_schema"] - q.where = ["privilege_type != 'USAGE'"] - t = text(str(q)) - db_result = client.execute(t) - for db in db_result: - grantee.add(db['grantee']) - if db['grantee'] == "'%s'@'%s'" % (user.name, user.host): - db_name = db['table_schema'] - db_access.add(db_name) - with self.local_sql_client(self.mysql_app.get_engine()) as client: - uu = sql_query.UpdateUser(user.name, host=user.host, - clear=user_attrs.get('password'), - new_user=user_attrs.get('name'), - new_host=user_attrs.get('host')) - t = text(str(uu)) - client.execute(t) - uname = user_attrs.get('name') or username - host = user_attrs.get('host') or hostname - find_user = "'%s'@'%s'" % (uname, host) - if find_user not in grantee: - self.grant_access(uname, host, db_access) + + new_name = user_attrs.get('name') + new_host = user_attrs.get('host') + new_password = user_attrs.get('password') + + if new_name or new_host or new_password: + + with self.local_sql_client(self.mysql_app.get_engine()) as client: + + if new_password is not None: + uu = sql_query.SetPassword(user.name, host=user.host, + new_password=new_password) + + t = text(str(uu)) + client.execute(t) + + if new_name or new_host: + uu = sql_query.RenameUser(user.name, host=user.host, + new_user=new_name, + new_host=new_host) + t = text(str(uu)) + client.execute(t) def create_database(self, databases): """Create the list of specified databases.""" @@ -362,13 +360,14 @@ user.name = username # Could possibly throw a BadRequest here. except ValueError as ve: LOG.exception(_("Error Getting user information")) + err_msg = encodeutils.exception_to_unicode(ve) raise exception.BadRequest(_("Username %(user)s is not valid" ": %(reason)s") % - {'user': username, 'reason': ve.message} + {'user': username, 'reason': err_msg} ) with self.local_sql_client(self.mysql_app.get_engine()) as client: q = sql_query.Query() - q.columns = ['User', 'Host', 'Password'] + q.columns = ['User', 'Host'] q.tables = ['mysql.user'] q.where = ["Host != 'localhost'", "User = '%s'" % username, @@ -380,7 +379,6 @@ if len(result) != 1: return None found_user = result[0] - user.password = found_user['Password'] user.host = found_user['Host'] self._associate_dbs(user) return user @@ -463,7 +461,7 @@ mysql_db.collate = database[2] databases.append(mysql_db.serialize()) LOG.debug("databases = " + str(databases)) - if database_names.rowcount <= limit: + if limit is not None and database_names.rowcount <= limit: next_marker = None return databases, next_marker @@ -527,7 +525,7 @@ self._associate_dbs(mysql_user) next_marker = row['Marker'] users.append(mysql_user.serialize()) - if result.rowcount <= limit: + if limit is not None and result.rowcount <= limit: next_marker = None LOG.debug("users = " + str(users)) @@ -588,9 +586,13 @@ return self._keep_alive_connection_cls @property + def service_candidates(self): + return ["mysql", "mysqld", "mysql-server"] + + @property def mysql_service(self): - MYSQL_SERVICE_CANDIDATES = ["mysql", "mysqld", "mysql-server"] - return operating_system.service_discovery(MYSQL_SERVICE_CANDIDATES) + service_candidates = self.service_candidates + return operating_system.service_discovery(service_candidates) configuration_manager = ConfigurationManager( MYSQL_CONFIG, MYSQL_OWNER, MYSQL_OWNER, CFG_CODEC, requires_root=True, @@ -606,14 +608,11 @@ return ENGINE pwd = self.get_auth_password() - uri = ("mysql+pymysql://%s:%s@localhost:3306" - % (ADMIN_USER_NAME, pwd.strip())) - ENGINE = sqlalchemy.create_engine(uri, - pool_recycle=7200, - echo=CONF.sql_query_logging, - listeners=[ - self.keep_alive_connection_cls()] - ) + ENGINE = sqlalchemy.create_engine( + CONNECTION_STR_FORMAT % (ADMIN_USER_NAME, + urllib.parse.quote(pwd.strip())), + pool_recycle=120, echo=CONF.sql_query_logging, + listeners=[self.keep_alive_connection_cls()]) return ENGINE @classmethod @@ -648,18 +647,21 @@ Create a os_admin user with a random password with all privileges similar to the root user. """ + LOG.debug("Creating Trove admin user '%s'." % ADMIN_USER_NAME) localhost = "localhost" g = sql_query.Grant(permissions='ALL', user=ADMIN_USER_NAME, host=localhost, grant_option=True, clear=password) t = text(str(g)) client.execute(t) + LOG.debug("Trove admin user '%s' created." % ADMIN_USER_NAME) @staticmethod def _generate_root_password(client): """Generate and set a random root password and forget about it.""" localhost = "localhost" - uu = sql_query.UpdateUser("root", host=localhost, - clear=utils.generate_random_password()) + uu = sql_query.SetPassword( + "root", host=localhost, + new_password=utils.generate_random_password()) t = text(str(uu)) client.execute(t) @@ -680,20 +682,26 @@ self.start_mysql() def secure(self, config_contents): - LOG.info(_("Generating admin password.")) - admin_password = utils.generate_random_password() + LOG.debug("Securing MySQL now.") clear_expired_password() - uri = "mysql+pymysql://root:@localhost:3306" - engine = sqlalchemy.create_engine(uri, echo=True) + LOG.debug("Generating admin password.") + admin_password = utils.generate_random_password() + engine = sqlalchemy.create_engine( + CONNECTION_STR_FORMAT % ('root', ''), echo=True) + with self.local_sql_client(engine, use_flush=False) as client: + self._create_admin_user(client, admin_password) + + LOG.debug("Switching to the '%s' user now." % ADMIN_USER_NAME) + engine = sqlalchemy.create_engine( + CONNECTION_STR_FORMAT % (ADMIN_USER_NAME, + urllib.parse.quote(admin_password)), + echo=True) with self.local_sql_client(engine) as client: self._remove_anonymous_user(client) - self._create_admin_user(client, admin_password) self.stop_db() - self._reset_configuration(config_contents, admin_password) self.start_mysql() - LOG.debug("MySQL secure complete.") def _reset_configuration(self, configuration, admin_password=None): @@ -774,12 +782,16 @@ raise RuntimeError("Could not stop MySQL!") def _remove_anonymous_user(self, client): + LOG.debug("Removing anonymous user.") t = text(sql_query.REMOVE_ANON) client.execute(t) + LOG.debug("Anonymous user removed.") def _remove_remote_root_access(self, client): + LOG.debug("Removing root access.") t = text(sql_query.REMOVE_ROOT) client.execute(t) + LOG.debug("Root access removed.") def restart(self): try: @@ -1044,8 +1056,8 @@ LOG.debug(err) with self.local_sql_client(self.mysql_app.get_engine()) as client: print(client) - uu = sql_query.UpdateUser(user.name, host=user.host, - clear=user.password) + uu = sql_query.SetPassword(user.name, host=user.host, + new_password=user.password) t = text(str(uu)) client.execute(t) diff -Nru openstack-trove-6.0.0~b2/trove/guestagent/guest_log.py openstack-trove-6.0.0~b3~dev119/trove/guestagent/guest_log.py --- openstack-trove-6.0.0~b2/trove/guestagent/guest_log.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/guestagent/guest_log.py 2016-08-29 20:08:34.000000000 +0000 @@ -294,7 +294,7 @@ self._header_digest = hashlib.md5(log.readline()).hexdigest() def _get_headers(self): - return {'X-Delete-After': CONF.guest_log_expiry} + return {'X-Delete-After': str(CONF.guest_log_expiry)} def publish_log(self): if self.exposed: @@ -347,7 +347,7 @@ yield current_chunk def _write_log_component(): - object_headers.update({'x-object-meta-lines': log_lines}) + object_headers.update({'x-object-meta-lines': str(log_lines)}) component_name = '%s%s' % (self._object_prefix(), self._object_name()) self.swift_client.put_object(container_name, diff -Nru openstack-trove-6.0.0~b2/trove/guestagent/module/drivers/module_driver.py openstack-trove-6.0.0~b3~dev119/trove/guestagent/module/drivers/module_driver.py --- openstack-trove-6.0.0~b2/trove/guestagent/module/drivers/module_driver.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/guestagent/module/drivers/module_driver.py 2016-08-29 20:08:31.000000000 +0000 @@ -15,11 +15,18 @@ # import abc +import functools +import re import six +from oslo_log import log as logging + from trove.common import cfg +from trove.common import exception +from trove.common.i18n import _ +LOG = logging.getLogger(__name__) CONF = cfg.CONF @@ -28,21 +35,64 @@ """Base class that defines the contract for module drivers. Note that you don't have to derive from this class to have a valid - driver; it is purely a convenience. + driver; it is purely a convenience. Any class that adheres to the + 'interface' as dictated by this class' abstractmethod decorators + (and other methods such as get_type, get_name and configure) + will work. """ + def __init__(self): + super(ModuleDriver, self).__init__() + + # This is used to store any message args to be substituted by + # the output decorator when logging/returning messages. + self._module_message_args = {} + self._message_args = None + self._generated_name = None + + @property + def message_args(self): + """Return a dict of message args that can be used to enhance + the output decorator messages. This shouldn't be overridden; use + self.message_args = instead to append values. + """ + if not self._message_args: + self._message_args = { + 'name': self.get_name(), + 'type': self.get_type()} + self._message_args.update(self._module_message_args) + return self._message_args + + @message_args.setter + def message_args(self, values): + """Set the message args that can be used to enhance + the output decorator messages. + """ + values = values or {} + self._module_message_args = values + self._message_args = None + + @property + def generated_name(self): + if not self._generated_name: + # Turn class name into 'module type' format. + # For example: DoCustomWorkDriver -> do_custom_work + temp = re.sub('(.)[Dd]river$', r'\1', self.__class__.__name__) + temp2 = re.sub('(.)([A-Z][a-z]+)', r'\1_\2', temp) + temp3 = re.sub('([a-z0-9])([A-Z])', r'\1_\2', temp2) + self._generated_name = temp3.lower() + return self._generated_name def get_type(self): """This is used when setting up a module in Trove, and is here for - code clarity. It just returns the name of the driver. + code clarity. It just returns the name of the driver by default. """ return self.get_name() def get_name(self): - """Attempt to generate a usable name based on the class name. If + """Use the generated name based on the class name. If overridden, must be in lower-case. """ - return self.__class__.__name__.lower().replace( - 'driver', '').replace(' ', '_') + return self.generated_name @abc.abstractmethod def get_description(self): @@ -55,15 +105,104 @@ pass @abc.abstractmethod - def apply(self, name, datastore, ds_version, data_file): - """Apply the data to the guest instance. Return status and message - as a tupple. + def apply(self, name, datastore, ds_version, data_file, admin_module): + """Apply the module to the guest instance. Return status and message + as a tuple. Passes in whether the module was created with 'admin' + privileges. This can be used as a form of access control by having + the driver refuse to apply a module if it wasn't created with options + that indicate that it was done by an 'admin' user. """ return False, "Not a concrete driver" @abc.abstractmethod def remove(self, name, datastore, ds_version, data_file): - """Remove the data from the guest instance. Return status and message - as a tupple. + """Remove the module from the guest instance. Return + status and message as a tuple. """ return False, "Not a concrete driver" + + def configure(self, name, datastore, ds_version, data_file): + """Configure the driver. This is particularly useful for adding values + to message_args, by having a line such as: self.message_args = . + These values will be appended to the default ones defined + in the message_args @property. + """ + pass + + +def output(log_message=None, success_message=None, + fail_message=None): + """This is a decorator to trap the typical exceptions that occur + when applying and removing modules. It returns the proper output + corresponding to the error messages automatically. If the function + returns output (success_flag, message) then those are returned, + otherwise success is assumed and the success_message returned. + Using this removes a lot of potential boiler-plate code, however + it is not necessary. + Keyword arguments can be used in the message string. Default + values can be found in the message_args @property, however a + driver can add whatever it see fit, by setting message_args + to a dict in the configure call (see above). Thus if you set + self.message_args = {'my_key': 'my_key_val'} then the message + string could look like "My key is '$(my_key)s'". + """ + success_message = success_message or "Success" + fail_message = fail_message or "Fail" + + def output_decorator(func): + """This is the actual decorator.""" + + @functools.wraps(func) + def wrapper(*args, **kwargs): + """Here's where we handle the error messages and return values + from the actual function. + """ + log_msg = log_message + success_msg = success_message + fail_msg = fail_message + if isinstance(args[0], ModuleDriver): + # Try and insert any message args if they exist in the driver + message_args = args[0].message_args + if message_args: + try: + log_msg = log_msg % message_args + success_msg = success_msg % message_args + fail_msg = fail_msg % message_args + except Exception: + # if there's a problem, just log it and drive on + LOG.warning(_("Could not apply message args: %s") % + message_args) + pass + + if log_msg: + LOG.info(log_msg) + success = False + try: + rv = func(*args, **kwargs) + if rv: + # Use the actual values, if there are some + success, message = rv + else: + success = True + message = success_msg + except exception.ProcessExecutionError as ex: + message = (_("%(msg)s: %(out)s\n%(err)s") % + {'msg': fail_msg, + 'out': ex.stdout, + 'err': ex.stderr}) + message = message.replace(': \n', ': ') + message = message.rstrip() + LOG.exception(message) + except exception.TroveError as ex: + message = (_("%(msg)s: %(err)s") % + {'msg': fail_msg, 'err': ex._error_string}) + LOG.exception(message) + except Exception as ex: + message = (_("%(msg)s: %(err)s") % + {'msg': fail_msg, 'err': ex.message}) + LOG.exception(message) + return success, message + + return wrapper + + return output_decorator diff -Nru openstack-trove-6.0.0~b2/trove/guestagent/module/drivers/new_relic_license_driver.py openstack-trove-6.0.0~b3~dev119/trove/guestagent/module/drivers/new_relic_license_driver.py --- openstack-trove-6.0.0~b2/trove/guestagent/module/drivers/new_relic_license_driver.py 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/guestagent/module/drivers/new_relic_license_driver.py 2016-08-29 20:08:31.000000000 +0000 @@ -0,0 +1,95 @@ +# Copyright 2016 Tesora, Inc. +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# + +from datetime import date + +from oslo_log import log as logging + +from trove.common import cfg +from trove.common.i18n import _ +from trove.common import stream_codecs +from trove.common import utils +from trove.guestagent.common import operating_system +from trove.guestagent.module.drivers import module_driver + + +LOG = logging.getLogger(__name__) +CONF = cfg.CONF + + +NR_ADD_LICENSE_CMD = ['nrsysmond-config', '--set', 'license_key=%s'] +NR_SRV_CONTROL_CMD = ['/etc/init.d/newrelic-sysmond'] + + +class NewRelicLicenseDriver(module_driver.ModuleDriver): + """Module to set up the license for the NewRelic service.""" + + def get_description(self): + return "New Relic License Module Driver" + + def get_updated(self): + return date(2016, 4, 12) + + @module_driver.output( + log_message=_('Installing New Relic license key'), + success_message=_('New Relic license key installed'), + fail_message=_('New Relic license key not installed')) + def apply(self, name, datastore, ds_version, data_file, admin_module): + license_key = None + data = operating_system.read_file( + data_file, codec=stream_codecs.KeyValueCodec()) + for key, value in data.items(): + if 'license_key' == key.lower(): + license_key = value + break + if license_key: + self._add_license_key(license_key) + self._server_control('start') + else: + return False, "'license_key' not found in contents file" + + def _add_license_key(self, license_key): + try: + exec_args = {'timeout': 10, + 'run_as_root': True, + 'root_helper': 'sudo'} + cmd = list(NR_ADD_LICENSE_CMD) + cmd[-1] = cmd[-1] % license_key + utils.execute_with_timeout(*cmd, **exec_args) + except Exception: + LOG.exception(_("Could not install license key '%s'") % + license_key) + raise + + def _server_control(self, command): + try: + exec_args = {'timeout': 10, + 'run_as_root': True, + 'root_helper': 'sudo'} + cmd = list(NR_SRV_CONTROL_CMD) + cmd.append(command) + utils.execute_with_timeout(*cmd, **exec_args) + except Exception: + LOG.exception(_("Could not %s New Relic server") % command) + raise + + @module_driver.output( + log_message=_('Removing New Relic license key'), + success_message=_('New Relic license key removed'), + fail_message=_('New Relic license key not removed')) + def remove(self, name, datastore, ds_version, data_file): + self._add_license_key("bad_key_that_is_exactly_40_characters_xx") + self._server_control('stop') diff -Nru openstack-trove-6.0.0~b2/trove/guestagent/module/drivers/ping_driver.py openstack-trove-6.0.0~b3~dev119/trove/guestagent/module/drivers/ping_driver.py --- openstack-trove-6.0.0~b2/trove/guestagent/module/drivers/ping_driver.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/guestagent/module/drivers/ping_driver.py 2016-08-29 20:08:31.000000000 +0000 @@ -37,37 +37,24 @@ be 'Hello.' """ - def get_type(self): - return 'ping' - def get_description(self): - return "Ping Guestagent Module Driver" + return "Ping Module Driver" def get_updated(self): return date(2016, 3, 4) - def apply(self, name, datastore, ds_version, data_file): - success = False - message = "Message not found in contents file" - try: - data = operating_system.read_file( - data_file, codec=stream_codecs.KeyValueCodec()) - for key, value in data.items(): - if 'message' == key.lower(): - success = True - message = value - break - except Exception: - # assume we couldn't read the file, because there was some - # issue with it (for example, it's a binary file). Just log - # it and drive on. - LOG.error(_("Could not extract contents from '%s' - possibly " - "a binary file?") % name) - - return success, message - - def _is_binary(self, data_str): - bool(data_str.translate(None, self.TEXT_CHARS)) + @module_driver.output( + log_message=_('Extracting %(type)s message'), + fail_message=_('Could not extract %(type)s message')) + def apply(self, name, datastore, ds_version, data_file, admin_module): + data = operating_system.read_file( + data_file, codec=stream_codecs.KeyValueCodec()) + for key, value in data.items(): + if 'message' == key.lower(): + return True, value + return False, 'Message not found in contents file' + @module_driver.output( + log_message=_('Removing %(type)s module')) def remove(self, name, datastore, ds_version, data_file): return True, "" diff -Nru openstack-trove-6.0.0~b2/trove/guestagent/module/module_manager.py openstack-trove-6.0.0~b3~dev119/trove/guestagent/module/module_manager.py --- openstack-trove-6.0.0~b2/trove/guestagent/module/module_manager.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/guestagent/module/module_manager.py 2016-08-29 20:08:31.000000000 +0000 @@ -61,17 +61,17 @@ module_type, name, tenant, datastore, ds_version, module_id, md5, auto_apply, visible, now) result = cls.read_module_result(module_dir, default_result) + admin_module = cls.is_admin_module(tenant, auto_apply, visible) try: + driver.configure(name, datastore, ds_version, data_file) applied, message = driver.apply( - name, datastore, ds_version, data_file) + name, datastore, ds_version, data_file, admin_module) except Exception as ex: LOG.exception(_("Could not apply module '%s'") % name) applied = False message = ex.message finally: status = 'OK' if applied else 'ERROR' - admin_only = (not visible or tenant == cls.MODULE_APPLY_TO_ALL or - auto_apply) result['removed'] = None result['status'] = status result['message'] = message @@ -81,7 +81,7 @@ result['tenant'] = tenant result['auto_apply'] = auto_apply result['visible'] = visible - result['admin_only'] = admin_only + result['admin_only'] = admin_module cls.write_module_result(module_dir, result) return result @@ -112,8 +112,7 @@ def build_default_result(cls, module_type, name, tenant, datastore, ds_version, module_id, md5, auto_apply, visible, now): - admin_only = (not visible or tenant == cls.MODULE_APPLY_TO_ALL or - auto_apply) + admin_module = cls.is_admin_module(tenant, auto_apply, visible) result = { 'type': module_type, 'name': name, @@ -129,12 +128,17 @@ 'removed': None, 'auto_apply': auto_apply, 'visible': visible, - 'admin_only': admin_only, + 'admin_only': admin_module, 'contents': None, } return result @classmethod + def is_admin_module(cls, tenant, auto_apply, visible): + return (not visible or tenant == cls.MODULE_APPLY_TO_ALL or + auto_apply) + + @classmethod def read_module_result(cls, result_file, default=None): result_file = cls.get_result_filename(result_file) result = default @@ -203,6 +207,7 @@ raise exception.NotFound( _("Module '%s' has not been applied") % name) try: + driver.configure(name, datastore, ds_version, contents_file) removed, message = driver.remove( name, datastore, ds_version, contents_file) cls.remove_module_result(module_dir) diff -Nru openstack-trove-6.0.0~b2/trove/guestagent/strategies/backup/experimental/couchbase_impl.py openstack-trove-6.0.0~b3~dev119/trove/guestagent/strategies/backup/experimental/couchbase_impl.py --- openstack-trove-6.0.0~b2/trove/guestagent/strategies/backup/experimental/couchbase_impl.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/guestagent/strategies/backup/experimental/couchbase_impl.py 2016-08-29 20:08:34.000000000 +0000 @@ -65,7 +65,8 @@ system.COUCHBASE_REST_API, system.COUCHBASE_DUMP_DIR, '-u', 'root', '-p', password, - timeout=600) + timeout=600, run_as_root=True, + root_helper='sudo') def _run_pre_backup(self): try: @@ -95,14 +96,14 @@ operating_system.copy(system.pwd_file, system.COUCHBASE_DUMP_DIR, preserve=True, as_root=True) - except exception.ProcessExecutionError as p: - LOG.error(p) - raise p + except exception.ProcessExecutionError: + LOG.exception(_("Error during pre-backup phase.")) + raise def _run_post_backup(self): try: for cmd in self.post_backup_commands: utils.execute_with_timeout(*cmd) - except exception.ProcessExecutionError as p: - LOG.error(p) - raise p + except exception.ProcessExecutionError: + LOG.exception(_("Error during post-backup phase.")) + raise diff -Nru openstack-trove-6.0.0~b2/trove/guestagent/strategies/backup/experimental/db2_impl.py openstack-trove-6.0.0~b3~dev119/trove/guestagent/strategies/backup/experimental/db2_impl.py --- openstack-trove-6.0.0~b2/trove/guestagent/strategies/backup/experimental/db2_impl.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/guestagent/strategies/backup/experimental/db2_impl.py 2016-08-29 20:08:31.000000000 +0000 @@ -62,10 +62,10 @@ 'dbname': dbName, 'dir': DB2_BACKUP_DIR}) service.run_command(system.UNQUIESCE_DB2) - except exception.ProcessExecutionError as e: + except exception.ProcessExecutionError: LOG.debug("Caught exception when preparing the directory") self.cleanup() - raise e + raise @property def cmd(self): diff -Nru openstack-trove-6.0.0~b2/trove/guestagent/strategies/backup/experimental/mariadb_impl.py openstack-trove-6.0.0~b3~dev119/trove/guestagent/strategies/backup/experimental/mariadb_impl.py --- openstack-trove-6.0.0~b2/trove/guestagent/strategies/backup/experimental/mariadb_impl.py 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/guestagent/strategies/backup/experimental/mariadb_impl.py 2016-08-29 20:08:34.000000000 +0000 @@ -0,0 +1,28 @@ +# Copyright 2016 Tesora Inc. +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from trove.guestagent.datastore.experimental.mariadb.service import MariaDBApp +from trove.guestagent.datastore.mysql.service import MySqlAppStatus +from trove.guestagent.strategies.backup import mysql_impl + + +class MariaDBInnoBackupEx(mysql_impl.InnoBackupEx): + + def _build_app(self): + return MariaDBApp(MySqlAppStatus.get()) + + +class MariaDBInnoBackupExIncremental(MariaDBInnoBackupEx): + pass diff -Nru openstack-trove-6.0.0~b2/trove/guestagent/strategies/backup/experimental/mongo_impl.py openstack-trove-6.0.0~b3~dev119/trove/guestagent/strategies/backup/experimental/mongo_impl.py --- openstack-trove-6.0.0~b2/trove/guestagent/strategies/backup/experimental/mongo_impl.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/guestagent/strategies/backup/experimental/mongo_impl.py 2016-08-29 20:08:31.000000000 +0000 @@ -70,10 +70,10 @@ run_as_root=True, root_helper='sudo', timeout=LARGE_TIMEOUT ) - except exception.ProcessExecutionError as e: + except exception.ProcessExecutionError: LOG.debug("Caught exception when creating the dump") self.cleanup() - raise e + raise @property def cmd(self): diff -Nru openstack-trove-6.0.0~b2/trove/guestagent/strategies/replication/base.py openstack-trove-6.0.0~b3~dev119/trove/guestagent/strategies/replication/base.py --- openstack-trove-6.0.0~b2/trove/guestagent/strategies/replication/base.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/guestagent/strategies/replication/base.py 2016-08-29 20:08:34.000000000 +0000 @@ -62,3 +62,18 @@ @abc.abstractmethod def demote_master(self, service): """Turn off replication on a master site.""" + + @property + def repl_backup_runner(self): + """Backup runner to be used to snapshot for replication""" + return None + + @property + def repl_incr_backup_runner(self): + """Incremental backup runner to be used to snapshot for replication""" + return None + + @property + def repl_backup_extra_opts(self): + """Extra options to be passed to the backup agent""" + return None diff -Nru openstack-trove-6.0.0~b2/trove/guestagent/strategies/replication/experimental/mariadb_gtid.py openstack-trove-6.0.0~b3~dev119/trove/guestagent/strategies/replication/experimental/mariadb_gtid.py --- openstack-trove-6.0.0~b2/trove/guestagent/strategies/replication/experimental/mariadb_gtid.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/guestagent/strategies/replication/experimental/mariadb_gtid.py 2016-08-29 20:08:35.000000000 +0000 @@ -18,17 +18,35 @@ from trove.common import cfg from trove.guestagent.backup.backupagent import BackupAgent +from trove.guestagent.strategies import backup from trove.guestagent.strategies.replication import mysql_base AGENT = BackupAgent() CONF = cfg.CONF +REPL_BACKUP_NAMESPACE = 'trove.guestagent.strategies.backup' \ + '.experimental.mariadb_impl' + LOG = logging.getLogger(__name__) class MariaDBGTIDReplication(mysql_base.MysqlReplicationBase): """MariaDB Replication coordinated by GTIDs.""" + @property + def repl_backup_runner(self): + return backup.get_backup_strategy('MariaDBInnoBackupEx', + REPL_BACKUP_NAMESPACE) + + @property + def repl_incr_backup_runner(self): + return backup.get_backup_strategy('MariaDBInnoBackupExIncremental', + REPL_BACKUP_NAMESPACE) + + @property + def repl_backup_extra_opts(self): + return CONF.backup_runner_options.get('MariaDBInnoBackupEx', '') + def connect_to_master(self, service, snapshot): logging_config = snapshot['log_position'] LOG.debug("connect_to_master %s" % logging_config['replication_user']) diff -Nru openstack-trove-6.0.0~b2/trove/guestagent/strategies/replication/mysql_base.py openstack-trove-6.0.0~b3~dev119/trove/guestagent/strategies/replication/mysql_base.py --- openstack-trove-6.0.0~b2/trove/guestagent/strategies/replication/mysql_base.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/guestagent/strategies/replication/mysql_base.py 2016-08-29 20:08:35.000000000 +0000 @@ -33,13 +33,6 @@ CONF = cfg.CONF REPL_BACKUP_NAMESPACE = 'trove.guestagent.strategies.backup.mysql_impl' -REPL_BACKUP_STRATEGY = 'InnoBackupEx' -REPL_BACKUP_INCREMENTAL_STRATEGY = 'InnoBackupExIncremental' -REPL_BACKUP_RUNNER = backup.get_backup_strategy( - REPL_BACKUP_STRATEGY, REPL_BACKUP_NAMESPACE) -REPL_BACKUP_INCREMENTAL_RUNNER = backup.get_backup_strategy( - REPL_BACKUP_INCREMENTAL_STRATEGY, REPL_BACKUP_NAMESPACE) -REPL_EXTRA_OPTS = CONF.backup_runner_options.get(REPL_BACKUP_STRATEGY, '') LOG = logging.getLogger(__name__) @@ -47,6 +40,20 @@ class MysqlReplicationBase(base.Replication): """Base class for MySql Replication strategies.""" + @property + def repl_backup_runner(self): + return backup.get_backup_strategy('InnoBackupEx', + REPL_BACKUP_NAMESPACE) + + @property + def repl_incr_backup_runner(self): + return backup.get_backup_strategy('InnoBackupExIncremental', + REPL_BACKUP_NAMESPACE) + + @property + def repl_backup_extra_opts(self): + return CONF.backup_runner_options.get('InnoBackupEx', '') + def get_master_ref(self, service, snapshot_info): master_ref = { 'host': netutils.get_my_ipv4(), @@ -81,13 +88,6 @@ return replication_user - def backup_runner_for_replication(self): - return { - 'runner': REPL_BACKUP_RUNNER, - 'extra_opts': REPL_EXTRA_OPTS, - 'incremental_runner': REPL_BACKUP_INCREMENTAL_RUNNER - } - def snapshot_for_replication(self, context, service, location, snapshot_info): snapshot_id = snapshot_info['id'] @@ -97,8 +97,9 @@ # Only create a backup if it's the first replica if replica_number == 1: AGENT.execute_backup( - context, snapshot_info, - **self.backup_runner_for_replication()) + context, snapshot_info, runner=self.repl_backup_runner, + extra_opts=self.repl_backup_extra_opts, + incremental_runner=self.repl_incr_backup_runner) else: LOG.debug("Using existing backup created for previous replica.") LOG.debug("Replication snapshot %s used for replica number %d." diff -Nru openstack-trove-6.0.0~b2/trove/guestagent/strategies/replication/mysql_gtid.py openstack-trove-6.0.0~b3~dev119/trove/guestagent/strategies/replication/mysql_gtid.py --- openstack-trove-6.0.0~b2/trove/guestagent/strategies/replication/mysql_gtid.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/guestagent/strategies/replication/mysql_gtid.py 2016-08-29 20:08:35.000000000 +0000 @@ -13,8 +13,6 @@ # License for the specific language governing permissions and limitations # under the License. # -import csv - from oslo_log import log as logging from trove.common import cfg @@ -75,8 +73,7 @@ LOG.info(_("Reading last master GTID from %s") % INFO_FILE) try: with open(INFO_FILE, 'rb') as f: - row = csv.reader(f, delimiter='\t', - skipinitialspace=True).next() + row = f.read().split('\t') return row[2] except (IOError, IndexError) as ex: LOG.exception(ex) diff -Nru openstack-trove-6.0.0~b2/trove/guestagent/strategies/restore/experimental/couchbase_impl.py openstack-trove-6.0.0~b3~dev119/trove/guestagent/strategies/restore/experimental/couchbase_impl.py --- openstack-trove-6.0.0~b2/trove/guestagent/strategies/restore/experimental/couchbase_impl.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/guestagent/strategies/restore/experimental/couchbase_impl.py 2016-08-29 20:08:31.000000000 +0000 @@ -45,9 +45,9 @@ def pre_restore(self): try: operating_system.remove(system.COUCHBASE_DUMP_DIR, force=True) - except exception.ProcessExecutionError as p: - LOG.error(p) - raise p + except exception.ProcessExecutionError: + LOG.exception(_("Error during pre-restore phase.")) + raise def post_restore(self): try: diff -Nru openstack-trove-6.0.0~b2/trove/guestagent/strategies/restore/experimental/mariadb_impl.py openstack-trove-6.0.0~b3~dev119/trove/guestagent/strategies/restore/experimental/mariadb_impl.py --- openstack-trove-6.0.0~b2/trove/guestagent/strategies/restore/experimental/mariadb_impl.py 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/guestagent/strategies/restore/experimental/mariadb_impl.py 2016-08-29 20:08:35.000000000 +0000 @@ -0,0 +1,28 @@ +# Copyright 2016 Tesora Inc. +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from trove.guestagent.datastore.experimental.mariadb.service import MariaDBApp +from trove.guestagent.datastore.mysql.service import MySqlAppStatus +from trove.guestagent.strategies.restore import mysql_impl + + +class MariaDBInnoBackupEx(mysql_impl.InnoBackupEx): + + def _build_app(self): + return MariaDBApp(MySqlAppStatus.get()) + + +class MariaDBInnoBackupExIncremental(MariaDBInnoBackupEx): + pass diff -Nru openstack-trove-6.0.0~b2/trove/guestagent/strategies/restore/mysql_impl.py openstack-trove-6.0.0~b3~dev119/trove/guestagent/strategies/restore/mysql_impl.py --- openstack-trove-6.0.0~b2/trove/guestagent/strategies/restore/mysql_impl.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/guestagent/strategies/restore/mysql_impl.py 2016-08-29 20:08:35.000000000 +0000 @@ -22,6 +22,7 @@ from oslo_log import log as logging import pexpect +from trove.common import cfg from trove.common import exception from trove.common.i18n import _ from trove.common import utils @@ -205,13 +206,22 @@ ' 2>/tmp/innoprepare.log') def __init__(self, *args, **kwargs): + self._app = None super(InnoBackupEx, self).__init__(*args, **kwargs) self.prepare_cmd = self.base_prepare_cmd % kwargs self.prep_retcode = None + @property + def app(self): + if self._app is None: + self._app = self._build_app() + return self._app + + def _build_app(self): + return dbaas.MySqlApp(dbaas.MySqlAppStatus.get()) + def pre_restore(self): - app = dbaas.MySqlApp(dbaas.MySqlAppStatus.get()) - app.stop_db() + self.app.stop_db() LOG.info(_("Cleaning out restore location: %s."), self.restore_location) operating_system.chmod(self.restore_location, FileMode.SET_FULL, @@ -229,8 +239,7 @@ force=True, as_root=True) self._delete_old_binlogs() self.reset_root_password() - app = dbaas.MySqlApp(dbaas.MySqlAppStatus.get()) - app.start_mysql() + self.app.start_mysql() def _delete_old_binlogs(self): files = glob.glob(os.path.join(self.restore_location, "ib_logfile*")) @@ -301,8 +310,9 @@ self._incremental_restore(parent_location, parent_checksum) # for *this* backup set the incremental_dir # just use the checksum for the incremental path as it is - # sufficiently unique /var/lib/mysql/data/ - incremental_dir = os.path.join(self.restore_location, checksum) + # sufficiently unique /var/lib/mysql/ + incremental_dir = os.path.join( + cfg.get_configuration_property('mount_point'), checksum) operating_system.create_directory(incremental_dir, as_root=True) command = self._incremental_restore_cmd(incremental_dir) else: diff -Nru openstack-trove-6.0.0~b2/trove/guestagent/volume.py openstack-trove-6.0.0~b3~dev119/trove/guestagent/volume.py --- openstack-trove-6.0.0~b2/trove/guestagent/volume.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/guestagent/volume.py 2016-08-29 20:08:35.000000000 +0000 @@ -73,7 +73,7 @@ def _check_format(self): """Checks that an unmounted volume is formatted.""" cmd = "sudo dumpe2fs %s" % self.device_path - LOG.debug("Checking whether %s is formated: %s." % + LOG.debug("Checking whether %s is formatted: %s." % (self.device_path, cmd)) child = pexpect.spawn(cmd) diff -Nru openstack-trove-6.0.0~b2/trove/instance/models.py openstack-trove-6.0.0~b3~dev119/trove/instance/models.py --- openstack-trove-6.0.0~b2/trove/instance/models.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/instance/models.py 2016-08-29 20:08:35.000000000 +0000 @@ -26,7 +26,7 @@ from trove.backup.models import Backup from trove.common import cfg from trove.common import exception -from trove.common import i18n as i18n +from trove.common.i18n import _, _LE, _LI, _LW import trove.common.instance as tr_instance from trove.common.notification import StartNotification from trove.common.remote import create_cinder_client @@ -49,8 +49,6 @@ from trove.quota.quota import run_with_quotas from trove.taskmanager import api as task_api -(_, _LE, _LI, _LW) = (i18n._, i18n._LE, i18n._LI, i18n._LW) - CONF = cfg.CONF LOG = logging.getLogger(__name__) @@ -165,6 +163,8 @@ self.db_info = db_info self.datastore_status = datastore_status self.root_pass = root_password + self._fault = None + self._fault_loaded = False if ds_version is None: self.ds_version = (datastore_models.DatastoreVersion. load_by_uuid(self.db_info.datastore_version_id)) @@ -376,6 +376,20 @@ return self.root_pass @property + def fault(self): + # Fault can be non-existent, so we have a loaded flag + if not self._fault_loaded: + try: + self._fault = DBInstanceFault.find_by(instance_id=self.id) + # Get rid of the stack trace if we're not admin + if not self.context.is_admin: + self._fault.details = None + except exception.ModelNotFoundError: + pass + self._fault_loaded = True + return self._fault + + @property def configuration(self): if self.db_info.configuration_id is not None: return Configuration.load(self.context, @@ -612,6 +626,7 @@ self.update_db(deleted=True, deleted_at=deleted_at, task_status=InstanceTasks.NONE) self.set_servicestatus_deleted() + self.set_instance_fault_deleted() # Delete associated security group if CONF.trove_security_groups_support: SecurityGroup.delete_for_instance(self.db_info.id, @@ -640,6 +655,15 @@ del_instance.set_status(tr_instance.ServiceStatuses.DELETED) del_instance.save() + def set_instance_fault_deleted(self): + try: + del_fault = DBInstanceFault.find_by(instance_id=self.id) + del_fault.deleted = True + del_fault.deleted_at = datetime.utcnow() + del_fault.save() + except exception.ModelNotFoundError: + pass + @property def volume_client(self): if not self._volume_client: @@ -1249,11 +1273,9 @@ if instance_ids and len(instance_ids) > 1: raise exception.DatastoreOperationNotSupported( operation='module-instances', datastore='current') - db_infos = DBInstance.query().filter_by(**query_opts) - else: - if instance_ids: - query_opts['id'] = instance_ids[0] - db_infos = DBInstance.find_all(**query_opts) + if instance_ids: + query_opts['id'] = instance_ids[0] + db_infos = DBInstance.find_all(**query_opts) limit = utils.pagination_limit(context.limit, Instances.DEFAULT_LIMIT) data_view = DBInstance.find_by_pagination('instances', db_infos, "foo", limit=limit, @@ -1355,6 +1377,54 @@ task_status = property(get_task_status, set_task_status) +def persist_instance_fault(notification, event_qualifier): + """This callback is registered to be fired whenever a + notification is sent out. + """ + if "error" == event_qualifier: + instance_id = notification.payload.get('instance_id') + message = notification.payload.get( + 'message', 'Missing notification message') + details = notification.payload.get('exception', []) + server_type = notification.server_type + if server_type: + details.insert(0, "Server type: %s\n" % server_type) + save_instance_fault(instance_id, message, details) + + +def save_instance_fault(instance_id, message, details): + if instance_id: + try: + # Make sure it's a valid id - sometimes the error is related + # to an invalid id and we can't save those + DBInstance.find_by(id=instance_id, deleted=False) + msg = utils.format_output(message, truncate_len=255) + det = utils.format_output(details) + try: + fault = DBInstanceFault.find_by(instance_id=instance_id) + fault.set_info(msg, det) + fault.save() + except exception.ModelNotFoundError: + DBInstanceFault.create( + instance_id=instance_id, + message=msg, details=det) + except exception.ModelNotFoundError: + # We don't need to save anything if the instance id isn't valid + pass + + +class DBInstanceFault(dbmodels.DatabaseModelBase): + _data_fields = ['instance_id', 'message', 'details', + 'created', 'updated', 'deleted', 'deleted_at'] + + def __init__(self, **kwargs): + super(DBInstanceFault, self).__init__(**kwargs) + + def set_info(self, message, details): + self.message = message + self.details = details + + class InstanceServiceStatus(dbmodels.DatabaseModelBase): _data_fields = ['instance_id', 'status_id', 'status_description', 'updated_at'] @@ -1400,6 +1470,7 @@ def persisted_models(): return { 'instance': DBInstance, + 'instance_faults': DBInstanceFault, 'service_statuses': InstanceServiceStatus, } diff -Nru openstack-trove-6.0.0~b2/trove/instance/views.py openstack-trove-6.0.0~b3~dev119/trove/instance/views.py --- openstack-trove-6.0.0~b2/trove/instance/views.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/instance/views.py 2016-08-29 20:08:31.000000000 +0000 @@ -92,6 +92,9 @@ result['instance']['datastore']['version'] = (self.instance. datastore_version.name) + if self.instance.fault: + result['instance']['fault'] = self._build_fault_info() + if self.instance.slaves: result['instance']['replicas'] = self._build_slaves_info() @@ -122,6 +125,13 @@ return result + def _build_fault_info(self): + return { + "message": self.instance.fault.message, + "created": self.instance.fault.updated, + "details": self.instance.fault.details, + } + def _build_slaves_info(self): data = [] for slave in self.instance.slaves: diff -Nru openstack-trove-6.0.0~b2/trove/locale/fr/LC_MESSAGES/trove-log-info.po openstack-trove-6.0.0~b3~dev119/trove/locale/fr/LC_MESSAGES/trove-log-info.po --- openstack-trove-6.0.0~b2/trove/locale/fr/LC_MESSAGES/trove-log-info.po 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/locale/fr/LC_MESSAGES/trove-log-info.po 2016-08-29 20:08:31.000000000 +0000 @@ -8,16 +8,17 @@ # Corinne Verheyde , 2015. #zanata # OpenStack Infra , 2015. #zanata # Andreas Jaeger , 2016. #zanata +# Corinne Verheyde , 2016. #zanata msgid "" msgstr "" -"Project-Id-Version: trove 5.0.1.dev164\n" +"Project-Id-Version: trove 6.0.0.0b3.dev20\n" "Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n" -"POT-Creation-Date: 2016-06-07 21:52+0000\n" +"POT-Creation-Date: 2016-07-20 00:18+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"PO-Revision-Date: 2016-06-06 06:17+0000\n" -"Last-Translator: Andreas Jaeger \n" +"PO-Revision-Date: 2016-07-13 08:03+0000\n" +"Last-Translator: Corinne Verheyde \n" "Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "Generated-By: Babel 2.0\n" @@ -47,6 +48,10 @@ msgstr "Édition de l'instance for tenant_id %s." #, python-format +msgid "Ejecting replica source %s from its replication set." +msgstr "Éviction du source replica %s de son jeu de réplication " + +#, python-format msgid "Enabling root for cluster '%s'." msgstr "Activation de root pour le cluster '%s'." @@ -62,6 +67,14 @@ msgstr "Récupération de la configuration par défaut pour l'instance %s" #, python-format +msgid "Getting root enabled for cluster '%s'." +msgstr "Activation de root pour le cluster '%s'." + +#, python-format +msgid "Getting root enabled for instance '%s'." +msgstr "Activation de root pour l'instance '%s'." + +#, python-format msgid "Listing backups for instance '%s'" msgstr "Listing en cours des sauvegardes pour l'instance '%s'" diff -Nru openstack-trove-6.0.0~b2/trove/taskmanager/models.py openstack-trove-6.0.0~b3~dev119/trove/taskmanager/models.py --- openstack-trove-6.0.0~b2/trove/taskmanager/models.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/taskmanager/models.py 2016-08-29 20:08:35.000000000 +0000 @@ -318,6 +318,24 @@ class FreshInstanceTasks(FreshInstance, NotifyMixin, ConfigurationMixin): + def _delete_resources(self, deleted_at): + LOG.debug("Begin _delete_resources for instance %s" % self.id) + + # If volume has "available" status, delete it manually. + try: + if self.volume_id: + volume_client = create_cinder_client(self.context) + volume = volume_client.volumes.get(self.volume_id) + if volume.status == "available": + LOG.info(_("Deleting volume %(v)s for instance: %(i)s.") + % {'v': self.volume_id, 'i': self.id}) + volume.delete() + except Exception: + LOG.exception(_("Error deleting volume of instance %(id)s.") % + {'id': self.db_info.id}) + + LOG.debug("End _delete_resource for instance %s" % self.id) + def _get_injected_files(self, datastore_manager): injected_config_location = CONF.get('injected_config_location') guest_info = CONF.get('guest_info') @@ -348,6 +366,8 @@ # Make sure the service becomes active before sending a usage # record to avoid over billing a customer for an instance that # fails to build properly. + error_message = '' + error_details = '' try: utils.poll_until(self._service_is_active, sleep_time=USAGE_SLEEP_TIME, @@ -355,14 +375,22 @@ LOG.info(_("Created instance %s successfully.") % self.id) TroveInstanceCreate(instance=self, instance_size=flavor['ram']).notify() - except PollTimeOut: + except PollTimeOut as ex: LOG.error(_("Failed to create instance %s. " "Timeout waiting for instance to become active. " "No usage create-event was sent.") % self.id) self.update_statuses_on_time_out() - except Exception: + error_message = "%s" % ex + error_details = traceback.format_exc() + except Exception as ex: LOG.exception(_("Failed to send usage create-event for " "instance %s.") % self.id) + error_message = "%s" % ex + error_details = traceback.format_exc() + finally: + if error_message: + inst_models.save_instance_fault( + self.id, error_message, error_details) def create_instance(self, flavor, image_id, databases, users, datastore_manager, packages, volume_size, @@ -621,10 +649,18 @@ raise TroveError(_("Service not active, status: %s") % status) c_id = self.db_info.compute_instance_id - nova_status = self.nova_client.servers.get(c_id).status - if nova_status in [InstanceStatus.ERROR, - InstanceStatus.FAILED]: - raise TroveError(_("Server not active, status: %s") % nova_status) + server = self.nova_client.servers.get(c_id) + server_status = server.status + if server_status in [InstanceStatus.ERROR, + InstanceStatus.FAILED]: + server_message = '' + if server.fault: + server_message = "\nServer error: %s" % ( + server.fault.get('message', 'Unknown')) + raise TroveError(_("Server not active, status: %(status)s" + "%(srv_msg)s") % + {'status': server_status, + 'srv_msg': server_message}) return False def _create_server_volume(self, flavor_id, image_id, security_groups, @@ -844,7 +880,9 @@ "exc": exc, "trace": traceback.format_exc()}) self.update_db(task_status=task_status) - raise TroveError(message=message) + exc_message = '\n%s' % exc if exc else '' + full_message = "%s%s" % (message, exc_message) + raise TroveError(message=full_message) def _create_volume(self, volume_size, volume_type, datastore_manager): LOG.debug("Begin _create_volume for id: %s" % self.id) @@ -994,8 +1032,11 @@ self.id, self.context) tcp_ports = CONF.get(datastore_manager).tcp_ports udp_ports = CONF.get(datastore_manager).udp_ports + icmp = CONF.get(datastore_manager).icmp self._create_rules(security_group, tcp_ports, 'tcp') self._create_rules(security_group, udp_ports, 'udp') + if icmp: + self._create_rules(security_group, None, 'icmp') return [security_group["name"]] def _create_rules(self, s_group, ports, protocol): @@ -1011,16 +1052,22 @@ 'to': to_port} raise MalformedSecurityGroupRuleError(message=msg) - for port_or_range in set(ports): - try: - from_, to_ = (None, None) - from_, to_ = utils.gen_ports(port_or_range) - cidr = CONF.trove_security_group_rule_cidr - SecurityGroupRule.create_sec_group_rule( - s_group, protocol, int(from_), int(to_), - cidr, self.context) - except (ValueError, TroveError): - set_error_and_raise([from_, to_]) + cidr = CONF.trove_security_group_rule_cidr + + if protocol == 'icmp': + SecurityGroupRule.create_sec_group_rule( + s_group, 'icmp', None, None, + cidr, self.context) + else: + for port_or_range in set(ports): + try: + from_, to_ = (None, None) + from_, to_ = utils.gen_ports(port_or_range) + SecurityGroupRule.create_sec_group_rule( + s_group, protocol, int(from_), int(to_), + cidr, self.context) + except (ValueError, TroveError): + set_error_and_raise([from_, to_]) def _build_heat_nics(self, nics): ifaces = [] @@ -1781,7 +1828,7 @@ self._assert_processes_are_ok() LOG.debug("Confirming nova action") self._confirm_nova_action() - except Exception as ex: + except Exception: LOG.exception(_("Exception during nova action.")) if need_to_revert: LOG.error(_("Reverting action for instance %s") % @@ -1797,7 +1844,7 @@ "Nova server status is not ACTIVE")) LOG.error(_("Error resizing instance %s.") % self.instance.id) - raise ex + raise LOG.debug("Recording success") self._record_action_success() diff -Nru openstack-trove-6.0.0~b2/trove/templates/mysql/config.template openstack-trove-6.0.0~b3~dev119/trove/templates/mysql/config.template --- openstack-trove-6.0.0~b2/trove/templates/mysql/config.template 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/templates/mysql/config.template 2016-08-29 20:08:35.000000000 +0000 @@ -1,7 +1,10 @@ [client] port = 3306 +socket = /var/run/mysqld/mysqld.sock [mysqld_safe] +pid-file = /var/run/mysqld/mysqld.pid +socket = /var/run/mysqld/mysqld.sock nice = 0 [mysqld] @@ -10,7 +13,8 @@ basedir = /usr datadir = /var/lib/mysql/data tmpdir = /var/tmp -pid_file = /var/run/mysqld/mysqld.pid +pid-file = /var/run/mysqld/mysqld.pid +socket = /var/run/mysqld/mysqld.sock skip-external-locking = 1 key_buffer_size = {{ (50 * flavor['ram']/512)|int }}M max_allowed_packet = {{ (1024 * flavor['ram']/512)|int }}K diff -Nru openstack-trove-6.0.0~b2/trove/templates/percona/config.template openstack-trove-6.0.0~b3~dev119/trove/templates/percona/config.template --- openstack-trove-6.0.0~b2/trove/templates/percona/config.template 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/templates/percona/config.template 2016-08-29 20:08:35.000000000 +0000 @@ -1,7 +1,10 @@ [client] port = 3306 +socket = /var/run/mysqld/mysqld.sock [mysqld_safe] +pid-file = /var/run/mysqld/mysqld.pid +socket = /var/run/mysqld/mysqld.sock nice = 0 [mysqld] @@ -10,7 +13,8 @@ basedir = /usr datadir = /var/lib/mysql/data tmpdir = /var/tmp -pid_file = /var/run/mysqld/mysqld.pid +pid-file = /var/run/mysqld/mysqld.pid +socket = /var/run/mysqld/mysqld.sock skip-external-locking = 1 key_buffer_size = {{ (50 * flavor['ram']/512)|int }}M max_allowed_packet = {{ (1024 * flavor['ram']/512)|int }}K diff -Nru openstack-trove-6.0.0~b2/trove/templates/pxc/config.template openstack-trove-6.0.0~b3~dev119/trove/templates/pxc/config.template --- openstack-trove-6.0.0~b2/trove/templates/pxc/config.template 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/templates/pxc/config.template 2016-08-29 20:08:35.000000000 +0000 @@ -1,7 +1,10 @@ [client] port = 3306 +socket = /var/run/mysqld/mysqld.sock [mysqld_safe] +pid-file = /var/run/mysqld/mysqld.pid +socket = /var/run/mysqld/mysqld.sock nice = 0 [mysqld] @@ -10,7 +13,8 @@ basedir = /usr datadir = /var/lib/mysql/data tmpdir = /var/tmp -pid_file = /var/run/mysqld/mysqld.pid +pid-file = /var/run/mysqld/mysqld.pid +socket = /var/run/mysqld/mysqld.sock skip-external-locking = 1 key_buffer_size = {{ (50 * flavor['ram']/512)|int }}M max_allowed_packet = {{ (1024 * flavor['ram']/512)|int }}K diff -Nru openstack-trove-6.0.0~b2/trove/tests/api/flavors.py openstack-trove-6.0.0~b3~dev119/trove/tests/api/flavors.py --- openstack-trove-6.0.0~b2/trove/tests/api/flavors.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/api/flavors.py 2016-08-29 20:08:35.000000000 +0000 @@ -146,8 +146,8 @@ @test def test_flavor_list_attrs(self): - allowed_attrs = ['id', 'name', 'ram', 'links', 'local_storage', - 'str_id'] + allowed_attrs = ['id', 'name', 'ram', 'vcpus', 'links', + 'local_storage', 'str_id'] flavors = self.rd_client.flavors.list() attrcheck = AttrCheck() for flavor in flavors: @@ -159,8 +159,8 @@ @test def test_flavor_get_attrs(self): - allowed_attrs = ['id', 'name', 'ram', 'links', 'local_storage', - 'str_id'] + allowed_attrs = ['id', 'name', 'ram', 'vcpus', 'links', + 'local_storage', 'str_id'] flavor = self.rd_client.flavors.get(1) attrcheck = AttrCheck() flavor_dict = flavor._info diff -Nru openstack-trove-6.0.0~b2/trove/tests/api/instances.py openstack-trove-6.0.0~b3~dev119/trove/tests/api/instances.py --- openstack-trove-6.0.0~b2/trove/tests/api/instances.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/api/instances.py 2016-08-29 20:08:35.000000000 +0000 @@ -272,6 +272,8 @@ self.test_info.user.tenant_id, quota_dict) def test_create_too_many_instances(self): + raise SkipTest( + "Skipping until https://review.openstack.org/#/c/331323 merges") instance_quota = 0 quota_dict = {'instances': instance_quota} new_quotas = dbaas_admin.quota.update(self.test_info.user.tenant_id, @@ -481,7 +483,7 @@ 'hostname', 'id', 'name', 'datastore', 'server_state_description', 'status', 'updated', 'users', 'volume', 'root_enabled_at', - 'root_enabled_by'] + 'root_enabled_by', 'fault'] with CheckInstance(result._info) as check: check.contains_allowed_attrs( result._info, allowed_attrs, @@ -693,7 +695,7 @@ # Check these attrs only are returned in create response allowed_attrs = ['created', 'flavor', 'addresses', 'id', 'links', - 'name', 'status', 'updated', 'datastore'] + 'name', 'status', 'updated', 'datastore', 'fault'] if ROOT_ON_CREATE: allowed_attrs.append('password') if VOLUME_SUPPORT: @@ -1156,7 +1158,7 @@ def test_get_instance(self): allowed_attrs = ['created', 'databases', 'flavor', 'hostname', 'id', 'links', 'name', 'status', 'updated', 'ip', - 'datastore'] + 'datastore', 'fault'] if VOLUME_SUPPORT: allowed_attrs.append('volume') else: @@ -1244,7 +1246,7 @@ 'flavor', 'guest_status', 'host', 'hostname', 'id', 'name', 'root_enabled_at', 'root_enabled_by', 'server_state_description', 'status', 'datastore', - 'updated', 'users', 'volume'] + 'updated', 'users', 'volume', 'fault'] with CheckInstance(result._info) as check: check.contains_allowed_attrs( result._info, allowed_attrs, diff -Nru openstack-trove-6.0.0~b2/trove/tests/api/mgmt/hosts.py openstack-trove-6.0.0~b3~dev119/trove/tests/api/mgmt/hosts.py --- openstack-trove-6.0.0~b2/trove/tests/api/mgmt/hosts.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/api/mgmt/hosts.py 2016-08-29 20:08:35.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright 2013 OpenStack LLC +# Copyright 2013 OpenStack Foundation # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain diff -Nru openstack-trove-6.0.0~b2/trove/tests/api/users.py openstack-trove-6.0.0~b3~dev119/trove/tests/api/users.py --- openstack-trove-6.0.0~b2/trove/tests/api/users.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/api/users.py 2016-08-29 20:08:31.000000000 +0000 @@ -69,7 +69,7 @@ self.dbaas.databases.create(instance_info.id, databases) except exceptions.BadRequest as e: if "Validation error" in e.message: - raise e + raise if not FAKE: time.sleep(5) diff -Nru openstack-trove-6.0.0~b2/trove/tests/db/migrations.py openstack-trove-6.0.0~b3~dev119/trove/tests/db/migrations.py --- openstack-trove-6.0.0~b2/trove/tests/db/migrations.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/db/migrations.py 2016-08-29 20:08:31.000000000 +0000 @@ -129,11 +129,16 @@ def _execute_cmd(self, cmd=None): """Shell out and run the given command.""" out, err = processutils.trycmd(cmd, shell=True) - assert_equal('', err, - "Failed to run: '%(cmd)s' " - "Output: '%(stdout)s' " - "Error: '%(stderr)s'" % - {'cmd': cmd, 'stdout': out, 'stderr': err}) + # Until someone wants to rewrite this to avoid the warning + # we need to handle it for newer versions of mysql + valid_err = err == '' or \ + err == 'mysql: [Warning] Using a password on the ' \ + 'command line interface can be insecure.\n' + assert_true(valid_err, + "Failed to run: '%(cmd)s' " + "Output: '%(stdout)s' " + "Error: '%(stderr)s'" % + {'cmd': cmd, 'stdout': out, 'stderr': err}) def _reset_mysql(self): """Reset the MySQL test database diff -Nru openstack-trove-6.0.0~b2/trove/tests/examples/client.py openstack-trove-6.0.0~b3~dev119/trove/tests/examples/client.py --- openstack-trove-6.0.0~b2/trove/tests/examples/client.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/examples/client.py 2016-08-29 20:08:35.000000000 +0000 @@ -58,7 +58,7 @@ headers.append("Accept: %s" % output_headers['Accept']) print("OUTPUT HEADERS: %s" % output_headers) headers.append("Content-Type: %s" % output_headers['Content-Type']) - self.write_file(user_details, name, "-%s.txt" % content_type, url, + self.write_file(user_details, name, "-%s-http.txt" % content_type, url, method, "request", output='\n'.join(headers)) pretty_body = self.format_body(body, content_type) @@ -82,7 +82,7 @@ new_lines = [x[0] for x in lines] joined_lines = '\n'.join(new_lines) - self.write_file(user_details, name, "-%s.txt" % content_type, url, + self.write_file(user_details, name, "-%s-http.txt" % content_type, url, method, "response", output=joined_lines) if body: diff -Nru openstack-trove-6.0.0~b2/trove/tests/fakes/guestagent.py openstack-trove-6.0.0~b3~dev119/trove/tests/fakes/guestagent.py --- openstack-trove-6.0.0~b2/trove/tests/fakes/guestagent.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/fakes/guestagent.py 2016-08-29 20:08:31.000000000 +0000 @@ -241,7 +241,7 @@ status.status = rd_instance.ServiceStatuses.RUNNING status.save() AgentHeartBeat.create(instance_id=self.id) - eventlet.spawn_after(3.0, update_db) + eventlet.spawn_after(3.5, update_db) def _set_task_status(self, new_status='RUNNING'): from trove.instance.models import InstanceServiceStatus diff -Nru openstack-trove-6.0.0~b2/trove/tests/int_tests.py openstack-trove-6.0.0~b3~dev119/trove/tests/int_tests.py --- openstack-trove-6.0.0~b2/trove/tests/int_tests.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/int_tests.py 2016-08-29 20:08:35.000000000 +0000 @@ -41,6 +41,7 @@ from trove.tests.scenario.groups import instance_actions_group from trove.tests.scenario.groups import instance_create_group from trove.tests.scenario.groups import instance_delete_group +from trove.tests.scenario.groups import instance_error_create_group from trove.tests.scenario.groups import module_group from trove.tests.scenario.groups import negative_cluster_actions_group from trove.tests.scenario.groups import replication_group @@ -142,6 +143,9 @@ instance_create_groups.extend([instance_create_group.GROUP, instance_delete_group.GROUP]) +instance_error_create_groups = list(base_groups) +instance_error_create_groups.extend([instance_error_create_group.GROUP]) + backup_groups = list(instance_create_groups) backup_groups.extend([groups.BACKUP, groups.BACKUP_INST]) @@ -183,7 +187,8 @@ # groups common to all datastores common_groups = list(instance_actions_groups) -common_groups.extend([guest_log_groups, module_groups]) +common_groups.extend([guest_log_groups, instance_error_create_groups, + module_groups]) # Register: Component based groups register(["backup"], backup_groups) @@ -195,6 +200,7 @@ register(["guest_log"], guest_log_groups) register(["instance", "instance_actions"], instance_actions_groups) register(["instance_create"], instance_create_groups) +register(["instance_error_create"], instance_error_create_groups) register(["module"], module_groups) register(["module_create"], module_create_groups) register(["replication"], replication_groups) @@ -228,7 +234,8 @@ backup_groups, cluster_actions_groups, configuration_groups, database_actions_groups, root_actions_groups, user_actions_groups) register(["pxc_supported"], common_groups, - cluster_actions_groups, root_actions_groups) + backup_groups, configuration_groups, database_actions_groups, + cluster_actions_groups, root_actions_groups, user_actions_groups) register(["redis_supported"], common_groups, backup_groups, replication_groups, cluster_actions_groups) register(["vertica_supported"], common_groups, diff -Nru openstack-trove-6.0.0~b2/trove/tests/scenario/groups/backup_group.py openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/groups/backup_group.py --- openstack-trove-6.0.0~b2/trove/tests/scenario/groups/backup_group.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/groups/backup_group.py 2016-08-29 20:08:35.000000000 +0000 @@ -22,10 +22,6 @@ GROUP = "scenario.backup_restore_group" -GROUP_INCREMENTAL = "scenario.incremental_backup_restore_group" -GROUP_INCREMENTAL_BACKUP = "scenario.incremental_backup_group" -GROUP_INCREMENTAL_RESTORE = "scenario.incremental_restore_group" - class BackupRunnerFactory(test_runners.RunnerFactory): @@ -268,6 +264,11 @@ """Verify data in restored instance.""" self.test_runner.run_verify_data_in_restored_instance() + @test(depends_on=[restore_from_backup_completed]) + def verify_databases_in_restored_instance(self): + """Verify databases in restored instance.""" + self.test_runner.run_verify_databases_in_restored_instance() + @test(depends_on_groups=[groups.BACKUP_INC_INST_CREATE], groups=[GROUP, groups.BACKUP_INC_INST, @@ -290,6 +291,11 @@ """Verify data in restored inc 1 instance.""" self.test_runner.run_verify_data_in_restored_inc_1_instance() + @test(depends_on=[restore_from_inc_1_backup_completed]) + def verify_databases_in_restored_inc_1_instance(self): + """Verify databases in restored inc 1 instance.""" + self.test_runner.run_verify_databases_in_restored_inc_1_instance() + @test(depends_on_groups=[groups.BACKUP_INST_CREATE_WAIT], groups=[GROUP, groups.BACKUP_INST, groups.BACKUP_INST_DELETE], diff -Nru openstack-trove-6.0.0~b2/trove/tests/scenario/groups/cluster_actions_group.py openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/groups/cluster_actions_group.py --- openstack-trove-6.0.0~b2/trove/tests/scenario/groups/cluster_actions_group.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/groups/cluster_actions_group.py 2016-08-29 20:08:31.000000000 +0000 @@ -15,6 +15,7 @@ from proboscis import test +from trove.tests.scenario import groups from trove.tests.scenario.groups.test_group import TestGroup from trove.tests.scenario.runners import test_runners @@ -28,7 +29,16 @@ _runner_cls = 'ClusterActionsRunner' -@test(groups=[GROUP]) +@test(groups=[GROUP], + runs_after_groups=[groups.MODULE_INST_DELETE, + groups.CFGGRP_INST_DELETE, + groups.INST_ACTIONS_RESIZE_WAIT, + groups.DB_ACTION_INST_DELETE, + groups.USER_ACTION_DELETE, + groups.USER_ACTION_INST_DELETE, + groups.ROOT_ACTION_INST_DELETE, + groups.REPL_INST_DELETE_WAIT, + groups.INST_DELETE_WAIT]) class ClusterActionsGroup(TestGroup): def __init__(self): diff -Nru openstack-trove-6.0.0~b2/trove/tests/scenario/groups/database_actions_group.py openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/groups/database_actions_group.py --- openstack-trove-6.0.0~b2/trove/tests/scenario/groups/database_actions_group.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/groups/database_actions_group.py 2016-08-29 20:08:35.000000000 +0000 @@ -137,7 +137,7 @@ @test def wait_for_instances(self): """Waiting for all instances to become active.""" - self.instance_create_runner.wait_for_created_instances() + self.instance_create_runner.run_wait_for_created_instances() @test(depends_on=[wait_for_instances]) def add_initialized_instance_data(self): @@ -180,4 +180,4 @@ @test def wait_for_delete_initialized_instance(self): """Wait for the initialized instance to delete.""" - self.instance_create_runner.run_wait_for_initialized_instance_delete() + self.instance_create_runner.run_wait_for_init_delete() diff -Nru openstack-trove-6.0.0~b2/trove/tests/scenario/groups/__init__.py openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/groups/__init__.py --- openstack-trove-6.0.0~b2/trove/tests/scenario/groups/__init__.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/groups/__init__.py 2016-08-29 20:08:35.000000000 +0000 @@ -76,6 +76,13 @@ INST_DELETE_WAIT = "scenario.inst_delete_wait_grp" +# Instance Error Create Group +INST_ERROR_CREATE = "scenario.inst_error_create_grp" +INST_ERROR_CREATE_WAIT = "scenario.inst_error_create_wait_grp" +INST_ERROR_DELETE = "scenario.inst_error_delete_grp" +INST_ERROR_DELETE_WAIT = "scenario.inst_error_delete_wait_grp" + + # Module Group MODULE_CREATE = "scenario.module_create_grp" MODULE_DELETE = "scenario.module_delete_grp" diff -Nru openstack-trove-6.0.0~b2/trove/tests/scenario/groups/instance_create_group.py openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/groups/instance_create_group.py --- openstack-trove-6.0.0~b2/trove/tests/scenario/groups/instance_create_group.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/groups/instance_create_group.py 2016-08-29 20:08:35.000000000 +0000 @@ -69,7 +69,7 @@ @test def wait_for_instances(self): """Waiting for all instances to become active.""" - self.test_runner.wait_for_created_instances() + self.test_runner.run_wait_for_created_instances() @test(depends_on=[wait_for_instances]) def add_initialized_instance_data(self): @@ -98,6 +98,7 @@ @test(depends_on_groups=[groups.INST_INIT_DELETE], + runs_after_groups=[groups.INST_ERROR_DELETE], groups=[GROUP, groups.INST_INIT_DELETE_WAIT]) class InstanceInitDeleteWaitGroup(TestGroup): """Test that Initialized Instance Delete Completes.""" @@ -107,11 +108,11 @@ InstanceCreateRunnerFactory.instance()) @test - def wait_for_initialized_instance_delete(self): - """Wait for the initialized instance to be deleted.""" - self.test_runner.run_wait_for_initialized_instance_delete() + def wait_for_init_delete(self): + """Wait for the initialized instance to be gone.""" + self.test_runner.run_wait_for_init_delete() - @test(runs_after=[wait_for_initialized_instance_delete]) + @test(runs_after=[wait_for_init_delete]) def delete_initial_configuration(self): """Delete the initial configuration group.""" self.test_runner.run_initial_configuration_delete() diff -Nru openstack-trove-6.0.0~b2/trove/tests/scenario/groups/instance_error_create_group.py openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/groups/instance_error_create_group.py --- openstack-trove-6.0.0~b2/trove/tests/scenario/groups/instance_error_create_group.py 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/groups/instance_error_create_group.py 2016-08-29 20:08:35.000000000 +0000 @@ -0,0 +1,108 @@ +# Copyright 2016 Tesora Inc. +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from proboscis import test + +from trove.tests import PRE_INSTANCES +from trove.tests.scenario import groups +from trove.tests.scenario.groups.test_group import TestGroup +from trove.tests.scenario.runners import test_runners + + +GROUP = "scenario.instance_error_create_group" + + +class InstanceErrorCreateRunnerFactory(test_runners.RunnerFactory): + + _runner_ns = 'instance_error_create_runners' + _runner_cls = 'InstanceErrorCreateRunner' + + +@test(depends_on_groups=["services.initialize"], + runs_after_groups=[PRE_INSTANCES, groups.INST_CREATE], + groups=[GROUP, groups.INST_ERROR_CREATE]) +class InstanceErrorCreateGroup(TestGroup): + """Test Instance Error Create functionality.""" + + def __init__(self): + super(InstanceErrorCreateGroup, self).__init__( + InstanceErrorCreateRunnerFactory.instance()) + + @test + def create_error_instance(self): + """Create an instance in error state.""" + self.test_runner.run_create_error_instance() + + @test(runs_after=[create_error_instance]) + def create_error2_instance(self): + """Create another instance in error state.""" + self.test_runner.run_create_error2_instance() + + +@test(depends_on_groups=[groups.INST_ERROR_CREATE], + groups=[GROUP, groups.INST_ERROR_CREATE_WAIT], + runs_after_groups=[groups.MODULE_CREATE, groups.CFGGRP_CREATE]) +class InstanceErrorCreateWaitGroup(TestGroup): + """Test that Instance Error Create Completes.""" + + def __init__(self): + super(InstanceErrorCreateWaitGroup, self).__init__( + InstanceErrorCreateRunnerFactory.instance()) + + @test + def wait_for_error_instances(self): + """Wait for the error instances to fail.""" + self.test_runner.run_wait_for_error_instances() + + @test(depends_on=[wait_for_error_instances]) + def validate_error_instance(self): + """Validate the error instance fault message.""" + self.test_runner.run_validate_error_instance() + + @test(depends_on=[wait_for_error_instances], + runs_after=[validate_error_instance]) + def validate_error2_instance(self): + """Validate the error2 instance fault message as admin.""" + self.test_runner.run_validate_error2_instance() + + +@test(depends_on_groups=[groups.INST_ERROR_CREATE_WAIT], + groups=[GROUP, groups.INST_ERROR_DELETE]) +class InstanceErrorDeleteGroup(TestGroup): + """Test Instance Error Delete functionality.""" + + def __init__(self): + super(InstanceErrorDeleteGroup, self).__init__( + InstanceErrorCreateRunnerFactory.instance()) + + @test + def delete_error_instances(self): + """Delete the error instances.""" + self.test_runner.run_delete_error_instances() + + +@test(depends_on_groups=[groups.INST_ERROR_DELETE], + groups=[GROUP, groups.INST_ERROR_DELETE_WAIT]) +class InstanceErrorDeleteWaitGroup(TestGroup): + """Test that Instance Error Delete Completes.""" + + def __init__(self): + super(InstanceErrorDeleteWaitGroup, self).__init__( + InstanceErrorCreateRunnerFactory.instance()) + + @test + def wait_for_error_delete(self): + """Wait for the error instances to be gone.""" + self.test_runner.run_wait_for_error_delete() diff -Nru openstack-trove-6.0.0~b2/trove/tests/scenario/groups/module_group.py openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/groups/module_group.py --- openstack-trove-6.0.0~b2/trove/tests/scenario/groups/module_group.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/groups/module_group.py 2016-08-29 20:08:35.000000000 +0000 @@ -286,6 +286,7 @@ @test(depends_on_groups=[groups.INST_CREATE_WAIT, groups.MODULE_CREATE], + runs_after_groups=[groups.INST_ERROR_DELETE], groups=[GROUP, groups.MODULE_INST, groups.MODULE_INST_CREATE]) class ModuleInstCreateGroup(TestGroup): """Test Module Instance Create functionality.""" diff -Nru openstack-trove-6.0.0~b2/trove/tests/scenario/groups/replication_group.py openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/groups/replication_group.py --- openstack-trove-6.0.0~b2/trove/tests/scenario/groups/replication_group.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/groups/replication_group.py 2016-08-29 20:08:35.000000000 +0000 @@ -16,18 +16,11 @@ from proboscis import test from trove.tests.scenario import groups -from trove.tests.scenario.groups import guest_log_group from trove.tests.scenario.groups.test_group import TestGroup from trove.tests.scenario.runners import test_runners GROUP = "scenario.replication_group" -GROUP_REPL_CREATE = "scenario.repl_create_group" -GROUP_REPL_CREATE_WAIT = "scenario.repl_create_wait_group" -GROUP_REPL_MULTI_CREATE = "scenario.repl_multi_create_group" -GROUP_REPL_MULTI_CREATE_WAIT = "scenario.repl_multi_create_wait_group" -GROUP_REPL_DELETE = "scenario.repl_delete_group" -GROUP_REPL_DELETE_WAIT = "scenario.repl_delete_wait_group" class ReplicationRunnerFactory(test_runners.RunnerFactory): @@ -36,12 +29,21 @@ _runner_cls = 'ReplicationRunner' +class BackupRunnerFactory(test_runners.RunnerFactory): + + _runner_ns = 'backup_runners' + _runner_cls = 'BackupRunner' + + @test(depends_on_groups=[groups.INST_CREATE_WAIT], groups=[GROUP, groups.REPL_INST_CREATE], - runs_after_groups=[groups.INST_ACTIONS_RESIZE_WAIT, + runs_after_groups=[groups.MODULE_INST_DELETE, + groups.CFGGRP_INST_DELETE, + groups.INST_ACTIONS_RESIZE_WAIT, + groups.DB_ACTION_INST_DELETE, + groups.USER_ACTION_DELETE, groups.USER_ACTION_INST_DELETE, - groups.ROOT_ACTION_INST_DELETE, - guest_log_group.GROUP]) + groups.ROOT_ACTION_INST_DELETE]) class ReplicationInstCreateGroup(TestGroup): """Test Replication Instance Create functionality.""" @@ -124,12 +126,25 @@ def __init__(self): super(ReplicationInstMultiCreateGroup, self).__init__( ReplicationRunnerFactory.instance()) + self.backup_runner = BackupRunnerFactory.instance() @test + def backup_master_instance(self): + """Backup the master instance.""" + self.backup_runner.run_backup_create() + self.backup_runner.run_backup_create_completed() + self.test_runner.master_backup_count += 1 + + @test(depends_on=[backup_master_instance]) def create_multiple_replicas(self): """Test creating multiple replicas.""" self.test_runner.run_create_multiple_replicas() + @test(depends_on=[create_multiple_replicas]) + def check_has_incremental_backup(self): + """Test that creating multiple replicas uses incr backup.""" + self.backup_runner.run_check_has_incremental() + @test(depends_on_groups=[groups.REPL_INST_CREATE_WAIT], groups=[GROUP, groups.REPL_INST_DELETE_NON_AFFINITY_WAIT], @@ -316,6 +331,7 @@ def __init__(self): super(ReplicationInstDeleteWaitGroup, self).__init__( ReplicationRunnerFactory.instance()) + self.backup_runner = BackupRunnerFactory.instance() @test def wait_for_delete_replicas(self): @@ -324,8 +340,11 @@ @test(runs_after=[wait_for_delete_replicas]) def test_backup_deleted(self): - """Test that the created backup is now gone.""" + """Remove the full backup and test that the created backup + is now gone. + """ self.test_runner.run_test_backup_deleted() + self.backup_runner.run_delete_backup() @test(runs_after=[test_backup_deleted]) def cleanup_master_instance(self): diff -Nru openstack-trove-6.0.0~b2/trove/tests/scenario/groups/user_actions_group.py openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/groups/user_actions_group.py --- openstack-trove-6.0.0~b2/trove/tests/scenario/groups/user_actions_group.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/groups/user_actions_group.py 2016-08-29 20:08:35.000000000 +0000 @@ -135,6 +135,11 @@ """Update an existing user.""" self.test_runner.run_user_attribute_update() + @test(depends_on=[update_user_attributes]) + def recreate_user_with_no_access(self): + """Re-create a renamed user with no access rights.""" + self.test_runner.run_user_recreate_with_no_access() + @test def show_nonexisting_user(self): """Ensure show on non-existing user fails.""" @@ -225,7 +230,7 @@ @test def wait_for_instances(self): """Waiting for all instances to become active.""" - self.instance_create_runner.wait_for_created_instances() + self.instance_create_runner.run_wait_for_created_instances() @test(depends_on=[wait_for_instances]) def validate_initialized_instance(self): @@ -264,4 +269,4 @@ @test def wait_for_delete_initialized_instance(self): """Wait for the initialized instance to delete.""" - self.instance_create_runner.run_wait_for_initialized_instance_delete() + self.instance_create_runner.run_wait_for_init_delete() diff -Nru openstack-trove-6.0.0~b2/trove/tests/scenario/helpers/cassandra_helper.py openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/helpers/cassandra_helper.py --- openstack-trove-6.0.0~b2/trove/tests/scenario/helpers/cassandra_helper.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/helpers/cassandra_helper.py 2016-08-29 20:08:35.000000000 +0000 @@ -157,3 +157,6 @@ def get_invalid_groups(self): return [{'sstable_preemptive_open_interval_in_mb': -1}, {'sstable_preemptive_open_interval_in_mb': 'string_value'}] + + def get_exposed_user_log_names(self): + return ['system'] diff -Nru openstack-trove-6.0.0~b2/trove/tests/scenario/runners/backup_runners.py openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/runners/backup_runners.py --- openstack-trove-6.0.0~b2/trove/tests/scenario/runners/backup_runners.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/runners/backup_runners.py 2016-08-29 20:08:35.000000000 +0000 @@ -23,90 +23,7 @@ from trove.tests.scenario.runners.test_runners import TestRunner -class BackupRunnerMixin(TestRunner): - def _verify_backup(self, backup_id): - def _result_is_active(): - backup = self.auth_client.backups.get(backup_id) - if backup.status == 'COMPLETED': - return True - else: - self.assert_not_equal('FAILED', backup.status, - 'Backup status should not be') - return False - - poll_until(_result_is_active, time_out=self.TIMEOUT_BACKUP_CREATE) - - def _wait_until_backup_is_gone(self, backup_id): - def _backup_is_gone(): - try: - self.auth_client.backups.get(backup_id) - return False - except exceptions.NotFound: - return True - - poll_until(_backup_is_gone, - time_out=self.TIMEOUT_BACKUP_DELETE) - - def assert_restore_from_backup(self, backup_ref): - result = self._restore_from_backup(backup_ref) - # TODO(peterstac) - This should probably return code 202 - self.assert_client_code(200) - self.assert_equal('BUILD', result.status, - 'Unexpected instance status') - self.restore_instance_id = result.id - - def _restore_from_backup(self, backup_ref): - restore_point = {'backupRef': backup_ref} - result = self.auth_client.instances.create( - self.instance_info.name + '_restore', - self.instance_info.dbaas_flavor_href, - self.instance_info.volume, - nics=self.instance_info.nics, - restorePoint=restore_point, - datastore=self.instance_info.dbaas_datastore, - datastore_version=self.instance_info.dbaas_datastore_version) - return result - - def run_restore_from_backup_completed( - self, expected_states=['BUILD', 'ACTIVE'], - # TODO(peterstac) - This should probably return code 202 - expected_http_code=200): - self.assert_restore_from_backup_completed( - self.restore_instance_id, expected_states, expected_http_code) - self.restore_host = self.get_instance_host(self.restore_instance_id) - - def assert_restore_from_backup_completed( - self, instance_id, expected_states, expected_http_code): - self.assert_instance_action(instance_id, expected_states, - expected_http_code) - - def run_verify_data_in_restored_instance(self): - self.assert_verify_backup_data(self.restore_host) - - def run_verify_data_for_backup(self): - self.assert_verify_backup_data(self.backup_host) - - def assert_verify_backup_data(self, host): - """In order for this to work, the corresponding datastore - 'helper' class should implement the 'verify_large_data' method. - """ - self.test_helper.verify_data(DataType.large, host) - - def run_delete_restored_instance( - self, expected_states=['SHUTDOWN'], - expected_http_code=202): - self.assert_delete_restored_instance( - self.restore_instance_id, expected_states, expected_http_code) - - def assert_delete_restored_instance( - self, instance_id, expected_states, expected_http_code): - self.auth_client.instances.delete(instance_id) - self.assert_instance_action(instance_id, expected_states, - expected_http_code) - self.assert_all_gone(instance_id, expected_states[-1]) - - -class BackupRunner(BackupRunnerMixin): +class BackupRunner(TestRunner): def __init__(self): self.TIMEOUT_BACKUP_CREATE = 60 * 30 @@ -122,6 +39,7 @@ self.backup_count_prior_to_create = 0 self.backup_count_for_ds_prior_to_create = 0 self.backup_count_for_instance_prior_to_create = 0 + self.databases_before_backup = None self.backup_inc_1_info = None self.backup_inc_2_info = None @@ -179,9 +97,16 @@ self.auth_client.instances.backups(self.instance_info.id)) def run_backup_create(self): + if self.test_helper.get_valid_database_definitions(): + self.databases_before_backup = self._get_databases( + self.instance_info.id) self.backup_info = self.assert_backup_create( self.BACKUP_NAME, self.BACKUP_DESC, self.instance_info.id) + def _get_databases(self, instance_id): + return [database.name for database in + self.auth_client.databases.list(instance_id)] + def assert_backup_create(self, name, desc, instance_id, parent_id=None): result = self.auth_client.backups.create( name, instance_id, desc, parent_id=parent_id) @@ -415,10 +340,27 @@ def run_verify_data_in_restored_instance(self): self.assert_verify_backup_data(self.restore_host, DataType.large) + def run_verify_databases_in_restored_instance(self): + self.assert_verify_backup_databases(self.restore_instance_id, + self.databases_before_backup) + def run_verify_data_in_restored_inc_1_instance(self): self.assert_verify_backup_data(self.restore_inc_1_host, DataType.large) self.assert_verify_backup_data(self.restore_inc_1_host, DataType.tiny) + def run_verify_databases_in_restored_inc_1_instance(self): + self.assert_verify_backup_databases(self.restore_instance_id, + self.databases_before_backup) + + def assert_verify_backup_databases(self, instance_id, expected_databases): + if expected_databases is not None: + actual = self._get_databases(instance_id) + self.assert_list_elements_equal( + expected_databases, actual, + "Unexpected databases on the restored instance.") + else: + raise SkipTest("Datastore does not support databases.") + def run_delete_restored_instance(self, expected_http_code=202): self.assert_delete_restored_instance( self.restore_instance_id, expected_http_code) @@ -507,3 +449,22 @@ for data_type in self.data_types_added: self.test_helper.remove_data(data_type, self.backup_host) self.data_types_added = [] + + def run_check_has_incremental(self): + self.assert_incremental_exists(self.backup_info.id) + + def assert_incremental_exists(self, parent_id): + def _backup_with_parent_found(): + backup_list = self.auth_client.backups.list() + for bkup in backup_list: + if bkup.parent_id == parent_id: + return True + + return False + + poll_until(_backup_with_parent_found, time_out=30) + + +class RedisBackupRunner(BackupRunner): + def run_check_has_incremental(self): + pass diff -Nru openstack-trove-6.0.0~b2/trove/tests/scenario/runners/cluster_actions_runners.py openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/runners/cluster_actions_runners.py --- openstack-trove-6.0.0~b2/trove/tests/scenario/runners/cluster_actions_runners.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/runners/cluster_actions_runners.py 2016-08-29 20:08:35.000000000 +0000 @@ -58,9 +58,11 @@ if not num_nodes: num_nodes = self.min_cluster_node_count + instance_flavor = self.get_instance_flavor() + instances_def = [ self.build_flavor( - flavor_id=self.instance_info.dbaas_flavor_href, + flavor_id=self.get_flavor_href(instance_flavor), volume_size=self.instance_info.volume['size'])] * num_nodes self.cluster_id = self.assert_cluster_create( diff -Nru openstack-trove-6.0.0~b2/trove/tests/scenario/runners/database_actions_runners.py openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/runners/database_actions_runners.py --- openstack-trove-6.0.0~b2/trove/tests/scenario/runners/database_actions_runners.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/runners/database_actions_runners.py 2016-08-29 20:08:31.000000000 +0000 @@ -33,6 +33,13 @@ return self.db_defs[0] raise SkipTest("No valid database definitions provided.") + @property + def non_existing_db_def(self): + db_def = self.test_helper.get_non_existing_database_definition() + if db_def: + return db_def + raise SkipTest("No valid database definitions provided.") + def run_databases_create(self, expected_http_code=202): databases = self.test_helper.get_valid_database_definitions() if databases: @@ -196,9 +203,9 @@ def run_nonexisting_database_delete(self, expected_http_code=202): # Deleting a non-existing database is expected to succeed as if the # database was deleted. - db_def = self.test_helper.get_non_existing_database_definition() self.assert_database_delete( - self.instance_info.id, db_def['name'], expected_http_code) + self.instance_info.id, self.non_existing_db_def['name'], + expected_http_code) def run_system_database_delete( self, expected_exception=exceptions.BadRequest, diff -Nru openstack-trove-6.0.0~b2/trove/tests/scenario/runners/guest_log_runners.py openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/runners/guest_log_runners.py --- openstack-trove-6.0.0~b2/trove/tests/scenario/runners/guest_log_runners.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/runners/guest_log_runners.py 2016-08-29 20:08:35.000000000 +0000 @@ -674,3 +674,12 @@ expected_type=guest_log.LogType.SYS.name, expected_status=guest_log.LogStatus.Ready.name, expected_published=0, expected_pending=1) + + +class CassandraGuestLogRunner(GuestLogRunner): + + def run_test_log_show(self): + self.assert_log_show(self.auth_client, + self._get_exposed_user_log_name(), + expected_published=0, + expected_pending=None) diff -Nru openstack-trove-6.0.0~b2/trove/tests/scenario/runners/instance_create_runners.py openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/runners/instance_create_runners.py --- openstack-trove-6.0.0~b2/trove/tests/scenario/runners/instance_create_runners.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/runners/instance_create_runners.py 2016-08-29 20:08:35.000000000 +0000 @@ -39,11 +39,11 @@ def run_empty_instance_create( self, expected_states=['BUILD', 'ACTIVE'], expected_http_code=200): name = self.instance_info.name - flavor = self._get_instance_flavor() - trove_volume_size = CONFIG.get('trove_volume_size', 1) + flavor = self.get_instance_flavor() + volume_size = self.instance_info.volume_size instance_info = self.assert_instance_create( - name, flavor, trove_volume_size, [], [], None, None, + name, flavor, volume_size, [], [], None, None, CONFIG.dbaas_datastore, CONFIG.dbaas_datastore_version, expected_states, expected_http_code, create_helper_user=True, locality='affinity') @@ -91,8 +91,8 @@ configuration_id = configuration_id or self.config_group_id name = self.instance_info.name + name_suffix - flavor = self._get_instance_flavor() - trove_volume_size = CONFIG.get('trove_volume_size', 1) + flavor = self.get_instance_flavor() + volume_size = self.instance_info.volume_size self.init_inst_dbs = (self.test_helper.get_valid_database_definitions() if with_dbs else []) self.init_inst_users = (self.test_helper.get_valid_user_definitions() @@ -100,7 +100,7 @@ self.init_inst_config_group_id = configuration_id if (self.init_inst_dbs or self.init_inst_users or configuration_id): info = self.assert_instance_create( - name, flavor, trove_volume_size, + name, flavor, volume_size, self.init_inst_dbs, self.init_inst_users, configuration_id, None, CONFIG.dbaas_datastore, CONFIG.dbaas_datastore_version, @@ -113,18 +113,6 @@ # the empty instance test. raise SkipTest("No testable initial properties provided.") - def _get_instance_flavor(self): - if self.EPHEMERAL_SUPPORT: - flavor_name = CONFIG.values.get('instance_eph_flavor_name', - 'eph.rd-tiny') - else: - flavor_name = CONFIG.values.get('instance_flavor_name', 'm1.tiny') - - return self.get_flavor(flavor_name) - - def _get_flavor_href(self, flavor): - return self.auth_client.find_flavor_self_href(flavor) - def assert_instance_create( self, name, flavor, trove_volume_size, database_definitions, user_definitions, @@ -163,7 +151,7 @@ instance_info.users = users instance_info.dbaas_datastore = CONFIG.dbaas_datastore instance_info.dbaas_datastore_version = CONFIG.dbaas_datastore_version - instance_info.dbaas_flavor_href = self._get_flavor_href(flavor) + instance_info.dbaas_flavor_href = self.get_flavor_href(flavor) if self.VOLUME_SUPPORT: instance_info.volume = {'size': trove_volume_size} else: @@ -238,7 +226,8 @@ return instance_info - def wait_for_created_instances(self, expected_states=['BUILD', 'ACTIVE']): + def run_wait_for_created_instances( + self, expected_states=['BUILD', 'ACTIVE']): instances = [self.instance_info.id] if self.init_inst_id: instances.append(self.init_inst_id) @@ -324,10 +313,12 @@ else: raise SkipTest("Cleanup is not required.") - def run_wait_for_initialized_instance_delete(self, - expected_states=['SHUTDOWN']): + def run_wait_for_init_delete(self, expected_states=['SHUTDOWN']): + delete_ids = [] if self.init_inst_id: - self.assert_all_gone(self.init_inst_id, expected_states[-1]) + delete_ids.append(self.init_inst_id) + if delete_ids: + self.assert_all_gone(delete_ids, expected_states[-1]) else: raise SkipTest("Cleanup is not required.") self.init_inst_id = None diff -Nru openstack-trove-6.0.0~b2/trove/tests/scenario/runners/instance_error_create_runners.py openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/runners/instance_error_create_runners.py --- openstack-trove-6.0.0~b2/trove/tests/scenario/runners/instance_error_create_runners.py 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/runners/instance_error_create_runners.py 2016-08-29 20:08:35.000000000 +0000 @@ -0,0 +1,118 @@ +# Copyright 2016 Tesora Inc. +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from proboscis import SkipTest + +from trove.tests.scenario.runners.test_runners import CheckInstance +from trove.tests.scenario.runners.test_runners import TestRunner + + +class InstanceErrorCreateRunner(TestRunner): + + def __init__(self): + super(InstanceErrorCreateRunner, self).__init__(sleep_time=1) + self.error_inst_id = None + self.error2_inst_id = None + + def run_create_error_instance(self, expected_http_code=200): + if self.is_using_existing_instance: + raise SkipTest("Using an existing instance.") + + name = self.instance_info.name + '_error' + flavor = self.get_instance_flavor(fault_num=1) + + inst = self.auth_client.instances.create( + name, + self.get_flavor_href(flavor), + self.instance_info.volume, + nics=self.instance_info.nics, + datastore=self.instance_info.dbaas_datastore, + datastore_version=self.instance_info.dbaas_datastore_version) + self.assert_client_code(expected_http_code) + self.error_inst_id = inst.id + + def run_create_error2_instance(self, expected_http_code=200): + if self.is_using_existing_instance: + raise SkipTest("Using an existing instance.") + + name = self.instance_info.name + '_error2' + flavor = self.get_instance_flavor(fault_num=2) + + inst = self.auth_client.instances.create( + name, + self.get_flavor_href(flavor), + self.instance_info.volume, + nics=self.instance_info.nics, + datastore=self.instance_info.dbaas_datastore, + datastore_version=self.instance_info.dbaas_datastore_version) + self.assert_client_code(expected_http_code) + self.error2_inst_id = inst.id + + def run_wait_for_error_instances(self, expected_states=['ERROR']): + error_ids = [] + if self.error_inst_id: + error_ids.append(self.error_inst_id) + if self.error2_inst_id: + error_ids.append(self.error2_inst_id) + + if error_ids: + self.assert_all_instance_states( + error_ids, expected_states, fast_fail_status=[]) + + def run_validate_error_instance(self): + if not self.error_inst_id: + raise SkipTest("No error instance created.") + + instance = self.get_instance(self.error_inst_id) + with CheckInstance(instance._info) as check: + check.fault() + + err_msg = "disk is too small for requested image" + self.assert_true(err_msg in instance.fault['message'], + "Message '%s' does not contain '%s'" % + (instance.fault['message'], err_msg)) + + def run_validate_error2_instance(self): + if not self.error2_inst_id: + raise SkipTest("No error2 instance created.") + + instance = self.get_instance( + self.error2_inst_id, client=self.admin_client) + with CheckInstance(instance._info) as check: + check.fault(is_admin=True) + + err_msg = "Quota exceeded for ram" + self.assert_true(err_msg in instance.fault['message'], + "Message '%s' does not contain '%s'" % + (instance.fault['message'], err_msg)) + + def run_delete_error_instances(self, expected_http_code=202): + if self.error_inst_id: + self.auth_client.instances.delete(self.error_inst_id) + self.assert_client_code(expected_http_code) + if self.error2_inst_id: + self.auth_client.instances.delete(self.error2_inst_id) + self.assert_client_code(expected_http_code) + + def run_wait_for_error_delete(self, expected_states=['SHUTDOWN']): + delete_ids = [] + if self.error_inst_id: + delete_ids.append(self.error_inst_id) + if self.error2_inst_id: + delete_ids.append(self.error2_inst_id) + if delete_ids: + self.assert_all_gone(delete_ids, expected_states[-1]) + else: + raise SkipTest("Cleanup is not required.") diff -Nru openstack-trove-6.0.0~b2/trove/tests/scenario/runners/module_runners.py openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/runners/module_runners.py --- openstack-trove-6.0.0~b2/trove/tests/scenario/runners/module_runners.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/runners/module_runners.py 2016-08-29 20:08:31.000000000 +0000 @@ -16,6 +16,7 @@ import Crypto.Random from proboscis import SkipTest +import re import tempfile from troveclient.compat import exceptions @@ -794,8 +795,10 @@ self.assert_equal(expected_contents, module_apply.contents, '%s Unexpected contents' % prefix) if expected_message is not None: - self.assert_equal(expected_message, module_apply.message, - '%s Unexpected message' % prefix) + regex = re.compile(expected_message) + self.assert_true(regex.match(module_apply.message), + "%s Unexpected message '%s', expected '%s'" % + (prefix, module_apply.message, expected_message)) if expected_status is not None: self.assert_equal(expected_status, module_apply.status, '%s Unexpected status' % prefix) @@ -824,7 +827,8 @@ % module.name) elif self.MODULE_BINARY_SUFFIX in module.name: status = 'ERROR' - message = 'Message not found in contents file' + message = ('^(Could not extract ping message|' + 'Message not found in contents file).*') contents = self.MODULE_BINARY_CONTENTS if self.MODULE_BINARY_SUFFIX2 in module.name: contents = self.MODULE_BINARY_CONTENTS2 diff -Nru openstack-trove-6.0.0~b2/trove/tests/scenario/runners/replication_runners.py openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/runners/replication_runners.py --- openstack-trove-6.0.0~b2/trove/tests/scenario/runners/replication_runners.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/runners/replication_runners.py 2016-08-29 20:08:31.000000000 +0000 @@ -408,38 +408,33 @@ """For Mysql validate that the master has its binlog_format set to MIXED. """ - client = self.test_helper.get_client( - self.get_instance_host(instance_id)) - self._validate_binlog_fmt(instance_id, client) + host = self.get_instance_host(instance_id) + self._validate_binlog_fmt(instance_id, host) def _validate_replica(self, instance_id): """For Mysql validate that any replica has its binlog_format set to MIXED and it is in read_only mode. """ - client = self.test_helper.get_client( - self.get_instance_host(instance_id)) - self._validate_binlog_fmt(instance_id, client) - self._validate_read_only(instance_id, client) - - def _validate_binlog_fmt(self, instance_id, client): - binlog_fmt = self._get_mysql_variable(client, 'binlog_format') + host = self.get_instance_host(instance_id) + self._validate_binlog_fmt(instance_id, host) + self._validate_read_only(instance_id, host) + + def _validate_binlog_fmt(self, instance_id, host): + binlog_fmt = self.test_helper.get_configuration_value('binlog_format', + host) self.assert_equal(self._get_expected_binlog_format(), binlog_fmt, 'Wrong binlog format detected for %s' % instance_id) def _get_expected_binlog_format(self): return 'MIXED' - def _validate_read_only(self, instance_id, client): - read_only = self._get_mysql_variable(client, 'read_only') + def _validate_read_only(self, instance_id, host): + read_only = self.test_helper.get_configuration_value('read_only', + host) self.assert_equal('ON', read_only, 'Wrong read only mode detected ' 'for %s' % instance_id) - def _get_mysql_variable(self, client, variable): - cmd = "SHOW GLOBAL VARIABLES LIKE '%s'" % variable - row = client.execute(cmd).fetchone() - return row['Value'] - class PerconaReplicationRunner(MysqlReplicationRunner): pass diff -Nru openstack-trove-6.0.0~b2/trove/tests/scenario/runners/test_runners.py openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/runners/test_runners.py --- openstack-trove-6.0.0~b2/trove/tests/scenario/runners/test_runners.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/runners/test_runners.py 2016-08-29 20:08:35.000000000 +0000 @@ -153,10 +153,12 @@ self.dbaas_flavor_href = None # The flavor of the instance. self.dbaas_datastore = None # The datastore id self.dbaas_datastore_version = None # The datastore version id + self.volume_size = None # The size of volume the instance will have. self.volume = None # The volume the instance will have. self.nics = None # The dict of type/id for nics used on the intance. self.user = None # The user instance who owns the instance. self.users = None # The users created on the instance. + self.databases = None # The databases created on the instance. class TestRunner(object): @@ -201,15 +203,17 @@ self.def_timeout = timeout self.instance_info.name = "TEST_" + datetime.datetime.strftime( - datetime.datetime.now(), '%Y-%m-%d_%H:%M:%S') + datetime.datetime.now(), '%Y_%m_%d__%H_%M_%S') self.instance_info.dbaas_datastore = CONFIG.dbaas_datastore self.instance_info.dbaas_datastore_version = ( CONFIG.dbaas_datastore_version) self.instance_info.user = CONFIG.users.find_user_by_name('alt_demo') if self.VOLUME_SUPPORT: + self.instance_info.volume_size = CONFIG.get('trove_volume_size', 1) self.instance_info.volume = { - 'size': CONFIG.get('trove_volume_size', 1)} + 'size': self.instance_info.volume_size} else: + self.instance_info.volume_size = None self.instance_info.volume = None self._auth_client = None @@ -418,17 +422,23 @@ self.assert_equal(expected_http_code, client.last_http_code, "Unexpected client status code") - def assert_all_instance_states(self, instance_ids, expected_states): + def assert_all_instance_states(self, instance_ids, expected_states, + fast_fail_status=None, + require_all_states=False): self.report.log("Waiting for states (%s) for instances: %s" % (expected_states, instance_ids)) def _make_fn(inst_id): return lambda: self._assert_instance_states( - inst_id, expected_states) - - tasks = [build_polling_task(_make_fn(instance_id), - sleep_time=self.def_sleep_time, time_out=self.def_timeout) - for instance_id in instance_ids] + inst_id, expected_states, + fast_fail_status=fast_fail_status, + require_all_states=require_all_states) + + tasks = [ + build_polling_task( + _make_fn(instance_id), + sleep_time=self.def_sleep_time, + time_out=self.def_timeout) for instance_id in instance_ids] poll_until(lambda: all(poll_task.ready() for poll_task in tasks), sleep_time=self.def_sleep_time, time_out=self.def_timeout) @@ -441,7 +451,7 @@ self.fail(str(task.poll_exception())) def _assert_instance_states(self, instance_id, expected_states, - fast_fail_status=['ERROR', 'FAILED'], + fast_fail_status=None, require_all_states=False): """Keep polling for the expected instance states until the instance acquires either the last or fast-fail state. @@ -454,6 +464,9 @@ self.report.log("Waiting for states (%s) for instance: %s" % (expected_states, instance_id)) + + if fast_fail_status is None: + fast_fail_status = ['ERROR', 'FAILED'] found = False for status in expected_states: if require_all_states or found or self._has_status( @@ -503,9 +516,11 @@ def _make_fn(inst_id): return lambda: self._wait_for_delete(inst_id, expected_last_status) - tasks = [build_polling_task(_make_fn(instance_id), - sleep_time=self.def_sleep_time, time_out=self.def_timeout) - for instance_id in instance_ids] + tasks = [ + build_polling_task( + _make_fn(instance_id), + sleep_time=self.def_sleep_time, + time_out=self.def_timeout) for instance_id in instance_ids] poll_until(lambda: all(poll_task.ready() for poll_task in tasks), sleep_time=self.def_sleep_time, time_out=self.def_timeout) @@ -595,8 +610,9 @@ if server_group: self.fail("Found left-over server group: %s" % server_group) - def get_instance(self, instance_id): - return self.auth_client.instances.get(instance_id) + def get_instance(self, instance_id, client=None): + client = client or self.auth_client + return client.instances.get(instance_id) def get_instance_host(self, instance_id=None): instance_id = instance_id or self.instance_info.id @@ -618,6 +634,25 @@ return flavor + def get_instance_flavor(self, fault_num=None): + name_format = 'instance%s%s_flavor_name' + default = 'm1.tiny' + fault_str = '' + eph_str = '' + if fault_num: + fault_str = '_fault_%d' % fault_num + if self.EPHEMERAL_SUPPORT: + eph_str = '_eph' + default = 'eph.rd-tiny' + + name = name_format % (fault_str, eph_str) + flavor_name = CONFIG.values.get(name, default) + + return self.get_flavor(flavor_name) + + def get_flavor_href(self, flavor): + return self.auth_client.find_flavor_self_href(flavor) + def copy_dict(self, d, ignored_keys=None): return {k: v for k, v in d.items() if not ignored_keys or k not in ignored_keys} @@ -782,3 +817,16 @@ slave, allowed_attrs, msg="Replica links not found") self.links(slave['links']) + + def fault(self, is_admin=False): + if 'fault' not in self.instance: + self.fail("'fault' not found in instance.") + else: + allowed_attrs = ['message', 'created', 'details'] + self.contains_allowed_attrs( + self.instance['fault'], allowed_attrs, + msg="Fault") + if is_admin and not self.instance['fault']['details']: + self.fail("Missing fault details") + if not is_admin and self.instance['fault']['details']: + self.fail("Fault details provided for non-admin") diff -Nru openstack-trove-6.0.0~b2/trove/tests/scenario/runners/user_actions_runners.py openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/runners/user_actions_runners.py --- openstack-trove-6.0.0~b2/trove/tests/scenario/runners/user_actions_runners.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/scenario/runners/user_actions_runners.py 2016-08-29 20:08:35.000000000 +0000 @@ -34,13 +34,25 @@ def __init__(self): super(UserActionsRunner, self).__init__() self.user_defs = [] + self.renamed_user_orig_def = None @property def first_user_def(self): if self.user_defs: + # Try to use the first user with databases if any. + for user_def in self.user_defs: + if user_def['databases']: + return user_def return self.user_defs[0] raise SkipTest("No valid user definitions provided.") + @property + def non_existing_user_def(self): + user_def = self.test_helper.get_non_existing_user_definition() + if user_def: + return user_def + raise SkipTest("No valid user definitions provided.") + def run_users_create(self, expected_http_code=202): users = self.test_helper.get_valid_user_definitions() if users: @@ -229,15 +241,15 @@ def run_user_create_with_blank_name( self, expected_exception=exceptions.BadRequest, expected_http_code=400): - usr_def = self.test_helper.get_non_existing_user_definition() # Test with missing user name attribute. - no_name_usr_def = self.copy_dict(usr_def, ignored_keys=['name']) + no_name_usr_def = self.copy_dict(self.non_existing_user_def, + ignored_keys=['name']) self.assert_users_create_failure( self.instance_info.id, no_name_usr_def, expected_exception, expected_http_code) # Test with empty user name attribute. - blank_name_usr_def = self.copy_dict(usr_def) + blank_name_usr_def = self.copy_dict(self.non_existing_user_def) blank_name_usr_def.update({'name': ''}) self.assert_users_create_failure( self.instance_info.id, blank_name_usr_def, @@ -246,15 +258,16 @@ def run_user_create_with_blank_password( self, expected_exception=exceptions.BadRequest, expected_http_code=400): - usr_def = self.test_helper.get_non_existing_user_definition() # Test with missing password attribute. - no_pass_usr_def = self.copy_dict(usr_def, ignored_keys=['password']) + no_pass_usr_def = self.copy_dict(self.non_existing_user_def, + ignored_keys=['password']) self.assert_users_create_failure( self.instance_info.id, no_pass_usr_def, expected_exception, expected_http_code) # Test with missing databases attribute. - no_db_usr_def = self.copy_dict(usr_def, ignored_keys=['databases']) + no_db_usr_def = self.copy_dict(self.non_existing_user_def, + ignored_keys=['databases']) self.assert_users_create_failure( self.instance_info.id, no_db_usr_def, expected_exception, expected_http_code) @@ -351,6 +364,7 @@ expected_def = None for user_def in self.user_defs: if user_def['name'] == user_name: + self.renamed_user_orig_def = dict(user_def) user_def.update(update_attribites) expected_def = user_def @@ -360,6 +374,30 @@ self.assert_user_show(instance_id, expected_def, 200) self.assert_users_list(instance_id, self.user_defs, 200) + def run_user_recreate_with_no_access(self, expected_http_code=202): + if (self.renamed_user_orig_def and + self.renamed_user_orig_def['databases']): + self.assert_user_recreate_with_no_access( + self.instance_info.id, self.renamed_user_orig_def, + expected_http_code) + else: + raise SkipTest("No renamed users with databases.") + + def assert_user_recreate_with_no_access(self, instance_id, original_def, + expected_http_code=202): + # Recreate a previously renamed user without assigning any access + # rights to it. + recreated_user_def = dict(original_def) + recreated_user_def.update({'databases': []}) + user_def = self.assert_users_create( + instance_id, [recreated_user_def], expected_http_code) + + # Append the new user to defs for cleanup. + self.user_defs.extend(user_def) + + # Assert empty user access. + self.assert_user_access_show(instance_id, recreated_user_def, 200) + def run_user_delete(self, expected_http_code=202): for user_def in self.user_defs: self.assert_user_delete( @@ -390,9 +428,9 @@ def run_nonexisting_user_show( self, expected_exception=exceptions.NotFound, expected_http_code=404): - usr_def = self.test_helper.get_non_existing_user_definition() self.assert_user_show_failure( - self.instance_info.id, {'name': usr_def['name']}, + self.instance_info.id, + {'name': self.non_existing_user_def['name']}, expected_exception, expected_http_code) def assert_user_show_failure(self, instance_id, user_def, @@ -418,8 +456,7 @@ def run_nonexisting_user_update(self, expected_http_code=404): # Test valid update on a non-existing user. - usr_def = self.test_helper.get_non_existing_user_definition() - update_def = {'name': usr_def['name']} + update_def = {'name': self.non_existing_user_def['name']} self.assert_user_attribute_update_failure( self.instance_info.id, update_def, update_def, exceptions.NotFound, expected_http_code) @@ -427,9 +464,9 @@ def run_nonexisting_user_delete( self, expected_exception=exceptions.NotFound, expected_http_code=404): - usr_def = self.test_helper.get_non_existing_user_definition() self.assert_user_delete_failure( - self.instance_info.id, {'name': usr_def['name']}, + self.instance_info.id, + {'name': self.non_existing_user_def['name']}, expected_exception, expected_http_code) def assert_user_delete_failure( @@ -474,3 +511,9 @@ def __init__(self): super(PerconaUserActionsRunner, self).__init__() + + +class PxcUserActionsRunner(MysqlUserActionsRunner): + + def __init__(self): + super(PxcUserActionsRunner, self).__init__() diff -Nru openstack-trove-6.0.0~b2/trove/tests/tempest/config.py openstack-trove-6.0.0~b3~dev119/trove/tests/tempest/config.py --- openstack-trove-6.0.0~b2/trove/tests/tempest/config.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/tempest/config.py 2016-08-29 20:08:35.000000000 +0000 @@ -14,9 +14,14 @@ from oslo_config import cfg -service_option = cfg.BoolOpt('trove', default=True, - help="Whether or not Trove is expected to be " - "available") +ServiceAvailableGroup = [ + cfg.BoolOpt('trove', + default=True, + help="Whether or not Trove is expected to be available") +] + +service_available_group = cfg.OptGroup(name='service_available', + title='Available OpenStack services') database_group = cfg.OptGroup(name='database', title='Database Service Options') diff -Nru openstack-trove-6.0.0~b2/trove/tests/tempest/plugin.py openstack-trove-6.0.0~b3~dev119/trove/tests/tempest/plugin.py --- openstack-trove-6.0.0~b2/trove/tests/tempest/plugin.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/tempest/plugin.py 2016-08-29 20:08:35.000000000 +0000 @@ -15,6 +15,7 @@ import os +from tempest import config from tempest.test_discover import plugins from trove.tests.tempest import config as trove_config @@ -31,11 +32,15 @@ return full_test_dir, base_path def register_opts(self, conf): - conf.register_group(trove_config.messaging_group) - conf.register_opts(trove_config.DatabaseGroup, group='database') - conf.register_opts(trove_config.service_option, - group='service_available') + config.register_opt_group( + conf, trove_config.service_available_group, + trove_config.ServiceAvailableGroup + ) + config.register_opt_group( + conf, trove_config.database_group, + trove_config.DatabaseGroup + ) def get_opt_lists(self): - return [('database', trove_config.MessagingGroup), - ('service_available', [trove_config.service_option])] + return [('database', trove_config.DatabaseGroup), + ('service_available', trove_config.ServiceAvailableGroup)] diff -Nru openstack-trove-6.0.0~b2/trove/tests/tempest/tests/api/base.py openstack-trove-6.0.0~b3~dev119/trove/tests/tempest/tests/api/base.py --- openstack-trove-6.0.0~b2/trove/tests/tempest/tests/api/base.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/tempest/tests/api/base.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,65 +0,0 @@ -# Copyright 2014 OpenStack Foundation -# All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from tempest import config -import tempest.test - -from trove.tests.tempest.services.database.json import flavors_client -from trove.tests.tempest.services.database.json import limits_client -from trove.tests.tempest.services.database.json import versions_client - - -CONF = config.CONF - - -class BaseDatabaseTest(tempest.test.BaseTestCase): - """Base test case class for all Database API tests.""" - - credentials = ['primary'] - - @classmethod - def skip_checks(cls): - super(BaseDatabaseTest, cls).skip_checks() - if not CONF.service_available.trove: - skip_msg = ("%s skipped as trove is not available" % cls.__name__) - raise cls.skipException(skip_msg) - - @classmethod - def setup_clients(cls): - super(BaseDatabaseTest, cls).setup_clients() - cls.database_flavors_client = flavors_client.DatabaseFlavorsClient( - cls.os.auth_provider, - CONF.database.catalog_type, - CONF.identity.region, - **cls.os.default_params_with_timeout_values) - cls.os_flavors_client = cls.os.flavors_client - cls.database_limits_client = limits_client.DatabaseLimitsClient( - cls.os.auth_provider, - CONF.database.catalog_type, - CONF.identity.region, - **cls.os.default_params_with_timeout_values) - cls.database_versions_client = versions_client.DatabaseVersionsClient( - cls.os.auth_provider, - CONF.database.catalog_type, - CONF.identity.region, - **cls.os.default_params_with_timeout_values) - - @classmethod - def resource_setup(cls): - super(BaseDatabaseTest, cls).resource_setup() - - cls.catalog_type = CONF.database.catalog_type - cls.db_flavor_ref = CONF.database.db_flavor_ref - cls.db_current_version = CONF.database.db_current_version diff -Nru openstack-trove-6.0.0~b2/trove/tests/tempest/tests/api/database/base.py openstack-trove-6.0.0~b3~dev119/trove/tests/tempest/tests/api/database/base.py --- openstack-trove-6.0.0~b2/trove/tests/tempest/tests/api/database/base.py 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/tempest/tests/api/database/base.py 2016-08-29 20:08:35.000000000 +0000 @@ -0,0 +1,65 @@ +# Copyright 2014 OpenStack Foundation +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from tempest import config +import tempest.test + +from trove.tests.tempest.services.database.json import flavors_client +from trove.tests.tempest.services.database.json import limits_client +from trove.tests.tempest.services.database.json import versions_client + + +CONF = config.CONF + + +class BaseDatabaseTest(tempest.test.BaseTestCase): + """Base test case class for all Database API tests.""" + + credentials = ['primary'] + + @classmethod + def skip_checks(cls): + super(BaseDatabaseTest, cls).skip_checks() + if not CONF.service_available.trove: + skip_msg = ("%s skipped as trove is not available" % cls.__name__) + raise cls.skipException(skip_msg) + + @classmethod + def setup_clients(cls): + super(BaseDatabaseTest, cls).setup_clients() + cls.database_flavors_client = flavors_client.DatabaseFlavorsClient( + cls.os.auth_provider, + CONF.database.catalog_type, + CONF.identity.region, + **cls.os.default_params_with_timeout_values) + cls.os_flavors_client = cls.os.flavors_client + cls.database_limits_client = limits_client.DatabaseLimitsClient( + cls.os.auth_provider, + CONF.database.catalog_type, + CONF.identity.region, + **cls.os.default_params_with_timeout_values) + cls.database_versions_client = versions_client.DatabaseVersionsClient( + cls.os.auth_provider, + CONF.database.catalog_type, + CONF.identity.region, + **cls.os.default_params_with_timeout_values) + + @classmethod + def resource_setup(cls): + super(BaseDatabaseTest, cls).resource_setup() + + cls.catalog_type = CONF.database.catalog_type + cls.db_flavor_ref = CONF.database.db_flavor_ref + cls.db_current_version = CONF.database.db_current_version diff -Nru openstack-trove-6.0.0~b2/trove/tests/tempest/tests/api/database/flavors/test_flavors_negative.py openstack-trove-6.0.0~b3~dev119/trove/tests/tempest/tests/api/database/flavors/test_flavors_negative.py --- openstack-trove-6.0.0~b2/trove/tests/tempest/tests/api/database/flavors/test_flavors_negative.py 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/tempest/tests/api/database/flavors/test_flavors_negative.py 2016-08-29 20:08:35.000000000 +0000 @@ -0,0 +1,36 @@ +# Copyright 2014 OpenStack Foundation +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + + +from tempest.lib import decorators +from tempest.lib import exceptions as lib_exc +from testtools import testcase as testtools + +from trove.tests.tempest.tests.api.database import base + + +class DatabaseFlavorsNegativeTest(base.BaseDatabaseTest): + + @classmethod + def setup_clients(cls): + super(DatabaseFlavorsNegativeTest, cls).setup_clients() + cls.client = cls.database_flavors_client + + @testtools.attr('negative') + @decorators.idempotent_id('f8e7b721-373f-4a64-8e9c-5327e975af3e') + def test_get_non_existent_db_flavor(self): + # flavor details are not returned for non-existent flavors + self.assertRaises(lib_exc.NotFound, + self.client.show_db_flavor, -1) diff -Nru openstack-trove-6.0.0~b2/trove/tests/tempest/tests/api/database/flavors/test_flavors.py openstack-trove-6.0.0~b3~dev119/trove/tests/tempest/tests/api/database/flavors/test_flavors.py --- openstack-trove-6.0.0~b2/trove/tests/tempest/tests/api/database/flavors/test_flavors.py 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/tempest/tests/api/database/flavors/test_flavors.py 2016-08-29 20:08:35.000000000 +0000 @@ -0,0 +1,87 @@ +# Copyright 2014 OpenStack Foundation +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from tempest.lib import decorators +from tempest import test +from testtools import testcase as testtools + +from trove.tests.tempest.tests.api.database import base + + +class DatabaseFlavorsTest(base.BaseDatabaseTest): + + @classmethod + def setup_clients(cls): + super(DatabaseFlavorsTest, cls).setup_clients() + cls.client = cls.database_flavors_client + + @testtools.attr('smoke') + @decorators.idempotent_id('c94b825e-0132-4686-8049-8a4a2bc09525') + def test_get_db_flavor(self): + # The expected flavor details should be returned + flavor = (self.client.show_db_flavor(self.db_flavor_ref) + ['flavor']) + self.assertEqual(self.db_flavor_ref, str(flavor['id'])) + self.assertIn('ram', flavor) + self.assertIn('links', flavor) + self.assertIn('name', flavor) + + @testtools.attr('smoke') + @decorators.idempotent_id('685025d6-0cec-4673-8a8d-995cb8e0d3bb') + def test_list_db_flavors(self): + flavor = (self.client.show_db_flavor(self.db_flavor_ref) + ['flavor']) + # List of all flavors should contain the expected flavor + flavors = self.client.list_db_flavors()['flavors'] + self.assertIn(flavor, flavors) + + def _check_values(self, names, db_flavor, os_flavor, in_db=True): + for name in names: + self.assertIn(name, os_flavor) + if in_db: + self.assertIn(name, db_flavor) + self.assertEqual(str(db_flavor[name]), str(os_flavor[name]), + "DB flavor differs from OS on '%s' value" + % name) + else: + self.assertNotIn(name, db_flavor) + + @testtools.attr('smoke') + @decorators.idempotent_id('afb2667f-4ec2-4925-bcb7-313fdcffb80d') + @test.services('compute') + def test_compare_db_flavors_with_os(self): + db_flavors = self.client.list_db_flavors()['flavors'] + os_flavors = (self.os_flavors_client.list_flavors(detail=True) + ['flavors']) + self.assertEqual(len(os_flavors), len(db_flavors), + "OS flavors %s do not match DB flavors %s" % + (os_flavors, db_flavors)) + for os_flavor in os_flavors: + db_flavor =\ + self.client.show_db_flavor(os_flavor['id'])['flavor'] + if db_flavor['id']: + self.assertIn('id', db_flavor) + self.assertEqual(str(db_flavor['id']), str(os_flavor['id']), + "DB flavor id differs from OS flavor id value" + ) + else: + self.assertIn('str_id', db_flavor) + self.assertEqual(db_flavor['str_id'], str(os_flavor['id']), + "DB flavor id differs from OS flavor id value" + ) + + self._check_values(['name', 'ram', 'vcpus'], db_flavor, os_flavor) + self._check_values(['disk', 'swap'], db_flavor, os_flavor, + in_db=False) diff -Nru openstack-trove-6.0.0~b2/trove/tests/tempest/tests/api/database/limits/test_limits.py openstack-trove-6.0.0~b3~dev119/trove/tests/tempest/tests/api/database/limits/test_limits.py --- openstack-trove-6.0.0~b2/trove/tests/tempest/tests/api/database/limits/test_limits.py 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/tempest/tests/api/database/limits/test_limits.py 2016-08-29 20:08:35.000000000 +0000 @@ -0,0 +1,47 @@ +# Copyright 2014 OpenStack Foundation +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from tempest.lib import decorators +from testtools import testcase as testtools + +from trove.tests.tempest.tests.api.database import base + + +class DatabaseLimitsTest(base.BaseDatabaseTest): + + @classmethod + def resource_setup(cls): + super(DatabaseLimitsTest, cls).resource_setup() + cls.client = cls.database_limits_client + + @testtools.attr('smoke') + @decorators.idempotent_id('73024538-f316-4829-b3e9-b459290e137a') + def test_absolute_limits(self): + # Test to verify if all absolute limit parameters are + # present when verb is ABSOLUTE + limits = self.client.list_db_limits()['limits'] + expected_abs_limits = ['max_backups', 'max_volumes', + 'max_instances', 'verb'] + absolute_limit = [l for l in limits + if l['verb'] == 'ABSOLUTE'] + self.assertEqual(1, len(absolute_limit), "One ABSOLUTE limit " + "verb is allowed. Fetched %s" + % len(absolute_limit)) + actual_abs_limits = absolute_limit[0].keys() + missing_abs_limit = set(expected_abs_limits) - set(actual_abs_limits) + self.assertEmpty(missing_abs_limit, + "Failed to find the following absolute limit(s)" + " in a fetched list: %s" % + ', '.join(str(a) for a in missing_abs_limit)) diff -Nru openstack-trove-6.0.0~b2/trove/tests/tempest/tests/api/database/versions/test_versions.py openstack-trove-6.0.0~b3~dev119/trove/tests/tempest/tests/api/database/versions/test_versions.py --- openstack-trove-6.0.0~b2/trove/tests/tempest/tests/api/database/versions/test_versions.py 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/tempest/tests/api/database/versions/test_versions.py 2016-08-29 20:08:35.000000000 +0000 @@ -0,0 +1,41 @@ +# Copyright 2014 OpenStack Foundation +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from tempest.lib import decorators +from testtools import testcase as testtools + +from trove.tests.tempest.tests.api.database import base + + +class DatabaseVersionsTest(base.BaseDatabaseTest): + + @classmethod + def setup_clients(cls): + super(DatabaseVersionsTest, cls).setup_clients() + cls.client = cls.database_versions_client + + @testtools.attr('smoke') + @decorators.idempotent_id('6952cd77-90cd-4dca-bb60-8e2c797940cf') + def test_list_db_versions(self): + versions = self.client.list_db_versions()['versions'] + self.assertTrue(len(versions) > 0, "No database versions found") + # List of all versions should contain the current version, and there + # should only be one 'current' version + current_versions = list() + for version in versions: + if 'CURRENT' == version['status']: + current_versions.append(version['id']) + self.assertEqual(1, len(current_versions)) + self.assertIn(self.db_current_version, current_versions) diff -Nru openstack-trove-6.0.0~b2/trove/tests/tempest/tests/api/flavors/test_flavors_negative.py openstack-trove-6.0.0~b3~dev119/trove/tests/tempest/tests/api/flavors/test_flavors_negative.py --- openstack-trove-6.0.0~b2/trove/tests/tempest/tests/api/flavors/test_flavors_negative.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/tempest/tests/api/flavors/test_flavors_negative.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,36 +0,0 @@ -# Copyright 2014 OpenStack Foundation -# All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - - -from tempest.lib import decorators -from tempest.lib import exceptions as lib_exc -from testtools import testcase as testtools - -from trove.tests.tempest.tests.api import base - - -class DatabaseFlavorsNegativeTest(base.BaseDatabaseTest): - - @classmethod - def setup_clients(cls): - super(DatabaseFlavorsNegativeTest, cls).setup_clients() - cls.client = cls.database_flavors_client - - @testtools.attr('negative') - @decorators.idempotent_id('f8e7b721-373f-4a64-8e9c-5327e975af3e') - def test_get_non_existent_db_flavor(self): - # flavor details are not returned for non-existent flavors - self.assertRaises(lib_exc.NotFound, - self.client.show_db_flavor, -1) diff -Nru openstack-trove-6.0.0~b2/trove/tests/tempest/tests/api/flavors/test_flavors.py openstack-trove-6.0.0~b3~dev119/trove/tests/tempest/tests/api/flavors/test_flavors.py --- openstack-trove-6.0.0~b2/trove/tests/tempest/tests/api/flavors/test_flavors.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/tempest/tests/api/flavors/test_flavors.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,76 +0,0 @@ -# Copyright 2014 OpenStack Foundation -# All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from tempest.lib import decorators -from tempest import test -from testtools import testcase as testtools - -from trove.tests.tempest.tests.api import base - - -class DatabaseFlavorsTest(base.BaseDatabaseTest): - - @classmethod - def setup_clients(cls): - super(DatabaseFlavorsTest, cls).setup_clients() - cls.client = cls.database_flavors_client - - @testtools.attr('smoke') - @decorators.idempotent_id('c94b825e-0132-4686-8049-8a4a2bc09525') - def test_get_db_flavor(self): - # The expected flavor details should be returned - flavor = (self.client.show_db_flavor(self.db_flavor_ref) - ['flavor']) - self.assertEqual(self.db_flavor_ref, str(flavor['id'])) - self.assertIn('ram', flavor) - self.assertIn('links', flavor) - self.assertIn('name', flavor) - - @testtools.attr('smoke') - @decorators.idempotent_id('685025d6-0cec-4673-8a8d-995cb8e0d3bb') - def test_list_db_flavors(self): - flavor = (self.client.show_db_flavor(self.db_flavor_ref) - ['flavor']) - # List of all flavors should contain the expected flavor - flavors = self.client.list_db_flavors()['flavors'] - self.assertIn(flavor, flavors) - - def _check_values(self, names, db_flavor, os_flavor, in_db=True): - for name in names: - self.assertIn(name, os_flavor) - if in_db: - self.assertIn(name, db_flavor) - self.assertEqual(str(db_flavor[name]), str(os_flavor[name]), - "DB flavor differs from OS on '%s' value" - % name) - else: - self.assertNotIn(name, db_flavor) - - @testtools.attr('smoke') - @decorators.idempotent_id('afb2667f-4ec2-4925-bcb7-313fdcffb80d') - @test.services('compute') - def test_compare_db_flavors_with_os(self): - db_flavors = self.client.list_db_flavors()['flavors'] - os_flavors = (self.os_flavors_client.list_flavors(detail=True) - ['flavors']) - self.assertEqual(len(os_flavors), len(db_flavors), - "OS flavors %s do not match DB flavors %s" % - (os_flavors, db_flavors)) - for os_flavor in os_flavors: - db_flavor =\ - self.client.show_db_flavor(os_flavor['id'])['flavor'] - self._check_values(['id', 'name', 'ram'], db_flavor, os_flavor) - self._check_values(['disk', 'vcpus', 'swap'], db_flavor, os_flavor, - in_db=False) diff -Nru openstack-trove-6.0.0~b2/trove/tests/tempest/tests/api/limits/test_limits.py openstack-trove-6.0.0~b3~dev119/trove/tests/tempest/tests/api/limits/test_limits.py --- openstack-trove-6.0.0~b2/trove/tests/tempest/tests/api/limits/test_limits.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/tempest/tests/api/limits/test_limits.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,47 +0,0 @@ -# Copyright 2014 OpenStack Foundation -# All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from tempest.lib import decorators -from testtools import testcase as testtools - -from trove.tests.tempest.tests.api import base - - -class DatabaseLimitsTest(base.BaseDatabaseTest): - - @classmethod - def resource_setup(cls): - super(DatabaseLimitsTest, cls).resource_setup() - cls.client = cls.database_limits_client - - @testtools.attr('smoke') - @decorators.idempotent_id('73024538-f316-4829-b3e9-b459290e137a') - def test_absolute_limits(self): - # Test to verify if all absolute limit parameters are - # present when verb is ABSOLUTE - limits = self.client.list_db_limits()['limits'] - expected_abs_limits = ['max_backups', 'max_volumes', - 'max_instances', 'verb'] - absolute_limit = [l for l in limits - if l['verb'] == 'ABSOLUTE'] - self.assertEqual(1, len(absolute_limit), "One ABSOLUTE limit " - "verb is allowed. Fetched %s" - % len(absolute_limit)) - actual_abs_limits = absolute_limit[0].keys() - missing_abs_limit = set(expected_abs_limits) - set(actual_abs_limits) - self.assertEmpty(missing_abs_limit, - "Failed to find the following absolute limit(s)" - " in a fetched list: %s" % - ', '.join(str(a) for a in missing_abs_limit)) diff -Nru openstack-trove-6.0.0~b2/trove/tests/tempest/tests/api/versions/test_versions.py openstack-trove-6.0.0~b3~dev119/trove/tests/tempest/tests/api/versions/test_versions.py --- openstack-trove-6.0.0~b2/trove/tests/tempest/tests/api/versions/test_versions.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/tempest/tests/api/versions/test_versions.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,41 +0,0 @@ -# Copyright 2014 OpenStack Foundation -# All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from tempest.lib import decorators -from testtools import testcase as testtools - -from trove.tests.tempest.tests.api import base - - -class DatabaseVersionsTest(base.BaseDatabaseTest): - - @classmethod - def setup_clients(cls): - super(DatabaseVersionsTest, cls).setup_clients() - cls.client = cls.database_versions_client - - @testtools.attr('smoke') - @decorators.idempotent_id('6952cd77-90cd-4dca-bb60-8e2c797940cf') - def test_list_db_versions(self): - versions = self.client.list_db_versions()['versions'] - self.assertTrue(len(versions) > 0, "No database versions found") - # List of all versions should contain the current version, and there - # should only be one 'current' version - current_versions = list() - for version in versions: - if 'CURRENT' == version['status']: - current_versions.append(version['id']) - self.assertEqual(1, len(current_versions)) - self.assertIn(self.db_current_version, current_versions) diff -Nru openstack-trove-6.0.0~b2/trove/tests/unittests/backup/test_backup_models.py openstack-trove-6.0.0~b3~dev119/trove/tests/unittests/backup/test_backup_models.py --- openstack-trove-6.0.0~b2/trove/tests/unittests/backup/test_backup_models.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/unittests/backup/test_backup_models.py 2016-08-29 20:08:35.000000000 +0000 @@ -16,12 +16,15 @@ from mock import DEFAULT from mock import MagicMock from mock import patch +from swiftclient.client import ClientException from trove.backup import models from trove.backup import state from trove.common import context from trove.common import exception +from trove.common import remote from trove.common import utils +from trove.db.models import DatabaseModelBase from trove.instance import models as instance_models from trove.taskmanager import api from trove.tests.unittests import trove_testtools @@ -190,8 +193,6 @@ instance = MagicMock() with patch.object(instance_models.BuiltInstance, 'load', return_value=instance): - instance.validate_can_perform_action = MagicMock( - return_value=None) with patch.object( models.Backup, 'validate_can_perform_action', side_effect=exception.DatastoreOperationNotSupported @@ -201,6 +202,39 @@ self.context, self.instance_id, BACKUP_NAME, BACKUP_DESC) + def test_create_backup_cluster_instance_operation_not_supported(self): + instance = MagicMock() + instance.cluster_id = 'bad_id' + with patch.object(instance_models.BuiltInstance, 'load', + return_value=instance),\ + patch.object(models.Backup, 'validate_can_perform_action', + return_value=None),\ + patch.object(models.Backup, 'verify_swift_auth_token', + return_value=None): + self.assertRaises(exception.ClusterInstanceOperationNotSupported, + models.Backup.create, + self.context, self.instance_id, + BACKUP_NAME, BACKUP_DESC) + + def test_create_backup_creation_error(self): + instance = MagicMock() + instance.cluster_id = None + with patch.object(instance_models.BuiltInstance, 'load', + return_value=instance),\ + patch.object(models.Backup, 'validate_can_perform_action', + return_value=None),\ + patch.object(models.Backup, 'verify_swift_auth_token', + return_value=None),\ + patch.object(DatabaseModelBase, 'is_valid', + return_value=False),\ + patch('trove.quota.quota.QuotaEngine.reserve', + return_value=[]): + DatabaseModelBase.errors = {} + self.assertRaises(exception.BackupCreationError, + models.Backup.create, + self.context, self.instance_id, + BACKUP_NAME, BACKUP_DESC) + class BackupDeleteTest(trove_testtools.TestCase): def setUp(self): @@ -357,6 +391,57 @@ def test_filename(self): self.assertEqual(BACKUP_FILENAME, self.backup.filename) + def test_filename_bad(self): + + def _set_bad_filename(): + self.backup.location = 'bad' + self.backup.filename + + self.assertRaises(ValueError, _set_bad_filename) + + def test_check_swift_object_exist_integrity_error(self): + mock_client = MagicMock() + mock_client.head_object.return_value = {'etag': ''} + with patch.object(remote, 'get_endpoint', return_value=None),\ + patch.object(remote, 'Connection', + return_value=mock_client): + self.assertRaises(exception.RestoreBackupIntegrityError, + self.backup.check_swift_object_exist, + self.context, True) + + def test_check_swift_object_exist_client_exception(self): + with patch.object(remote, 'get_endpoint', return_value=None),\ + patch.object(remote, 'Connection', + side_effect=ClientException(self.context.tenant)): + self.assertRaises(exception.SwiftAuthError, + self.backup.check_swift_object_exist, + self.context) + + def test_check_swift_object_exist_client_exception_404(self): + e = ClientException(self.context.tenant) + e.http_status = 404 + with patch.object(remote, 'get_endpoint', return_value=None),\ + patch.object(remote, 'Connection', + side_effect=e): + self.assertFalse( + self.backup.check_swift_object_exist(self.context)) + + def test_swift_auth_token_client_exception(self): + with patch.object(remote, 'get_endpoint', return_value=None),\ + patch.object(remote, 'Connection', + side_effect=ClientException(self.context.tenant)): + self.assertRaises(exception.SwiftAuthError, + models.Backup.verify_swift_auth_token, + self.context) + + def test_swift_auth_token_no_service_endpoint(self): + with patch.object(remote, 'get_endpoint', return_value=None),\ + patch.object(remote, 'Connection', + side_effect=exception.NoServiceEndpoint): + self.assertRaises(exception.SwiftNotFound, + models.Backup.verify_swift_auth_token, + self.context) + class PaginationTests(trove_testtools.TestCase): diff -Nru openstack-trove-6.0.0~b2/trove/tests/unittests/common/test_notification.py openstack-trove-6.0.0~b3~dev119/trove/tests/unittests/common/test_notification.py --- openstack-trove-6.0.0~b2/trove/tests/unittests/common/test_notification.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/unittests/common/test_notification.py 2016-08-29 20:08:35.000000000 +0000 @@ -117,11 +117,11 @@ def test_with_notification(self): context = trove_testtools.TroveTestContext(self) - self.assertEqual(True, context.notification.needs_end_notification) + self.assertTrue(context.notification.needs_end_notification) with notification.NotificationCastWrapper(context, "foo"): self.assertEqual('foo', context.notification.server_type) self.assertEqual('api', context.notification.server_type) - self.assertEqual(False, context.notification.needs_end_notification) + self.assertFalse(context.notification.needs_end_notification) class TestTroveBaseTraits(trove_testtools.TestCase): @@ -383,3 +383,29 @@ a, _ = notifier().info.call_args payload = a[2] self.assertTrue('instance_id' in payload) + + def _test_notify_callback(self, fn, *args, **kwargs): + with patch.object(rpc, 'get_notifier') as notifier: + mock_callback = Mock() + self.test_n.register_notify_callback(mock_callback) + mock_context = Mock() + mock_context.notification = Mock() + self.test_n.context = mock_context + fn(*args, **kwargs) + self.assertTrue(notifier().info.called) + self.assertTrue(mock_callback.called) + self.test_n.register_notify_callback(None) + + def test_notify_callback(self): + required_keys = { + 'datastore': 'ds', + 'name': 'name', + 'flavor_id': 'flav_id', + 'instance_id': 'inst_id', + } + self._test_notify_callback(self.test_n.notify_start, + **required_keys) + self._test_notify_callback(self.test_n.notify_end, + **required_keys) + self._test_notify_callback(self.test_n.notify_exc_info, + 'error', 'exc') diff -Nru openstack-trove-6.0.0~b2/trove/tests/unittests/common/test_utils.py openstack-trove-6.0.0~b3~dev119/trove/tests/unittests/common/test_utils.py --- openstack-trove-6.0.0~b2/trove/tests/unittests/common/test_utils.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/unittests/common/test_utils.py 2016-08-29 20:08:31.000000000 +0000 @@ -22,15 +22,15 @@ from trove.tests.unittests import trove_testtools -class TestTroveExecuteWithTimeout(trove_testtools.TestCase): +class TestUtils(trove_testtools.TestCase): def setUp(self): - super(TestTroveExecuteWithTimeout, self).setUp() + super(TestUtils, self).setUp() self.orig_utils_execute = utils.execute self.orig_utils_log_error = utils.LOG.error def tearDown(self): - super(TestTroveExecuteWithTimeout, self).tearDown() + super(TestUtils, self).tearDown() utils.execute = self.orig_utils_execute utils.LOG.error = self.orig_utils_log_error @@ -81,3 +81,21 @@ def test_pagination_limit(self): self.assertEqual(5, utils.pagination_limit(5, 9)) self.assertEqual(5, utils.pagination_limit(9, 5)) + + def test_format_output(self): + data = [ + ['', ''], + ['Single line', 'Single line'], + ['Long line no breaks ' * 10, 'Long line no breaks ' * 10], + ['Long line. Has breaks ' * 5, + 'Long line.\nHas breaks ' * 2 + 'Long line. Has breaks ' * 3], + ['Long line with semi: ' * 4, + 'Long line with semi:\n ' + + 'Long line with semi: ' * 3], + ['Long line with brack (' * 4, + 'Long line with brack\n(' + + 'Long line with brack (' * 3], + ] + for index, datum in enumerate(data): + self.assertEqual(datum[1], utils.format_output(datum[0]), + "Error formatting line %d of data" % index) diff -Nru openstack-trove-6.0.0~b2/trove/tests/unittests/configuration/test_configuration_controller.py openstack-trove-6.0.0~b3~dev119/trove/tests/unittests/configuration/test_configuration_controller.py --- openstack-trove-6.0.0~b2/trove/tests/unittests/configuration/test_configuration_controller.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/unittests/configuration/test_configuration_controller.py 2016-08-29 20:08:31.000000000 +0000 @@ -24,6 +24,7 @@ class TestConfigurationParser(trove_testtools.TestCase): + def setUp(self): super(TestConfigurationParser, self).setUp() @@ -42,11 +43,12 @@ d_parsed = dict(parsed) self.assertIsNotNone(d_parsed) self.assertEqual("/var/run/mysqld/mysqld.pid", d_parsed["pid-file"]) - self.assertEqual('15', d_parsed["connect_timeout"]) + self.assertEqual(15, d_parsed["connect_timeout"]) self.assertEqual('1', d_parsed["skip-external-locking"]) class TestConfigurationController(trove_testtools.TestCase): + def setUp(self): super(TestConfigurationController, self).setUp() self.controller = ConfigurationsController() @@ -179,6 +181,7 @@ class TestConfigurationsParameterController(trove_testtools.TestCase): + def setUp(self): super(TestConfigurationsParameterController, self).setUp() self.controller = service.ConfigurationsParameterController() diff -Nru openstack-trove-6.0.0~b2/trove/tests/unittests/flavor/test_flavor_views.py openstack-trove-6.0.0~b3~dev119/trove/tests/unittests/flavor/test_flavor_views.py --- openstack-trove-6.0.0~b2/trove/tests/unittests/flavor/test_flavor_views.py 1970-01-01 00:00:00.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/unittests/flavor/test_flavor_views.py 2016-08-29 20:08:35.000000000 +0000 @@ -0,0 +1,68 @@ +# Copyright 2016 Tesora, Inc. +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# + +from mock import Mock, patch +from trove.flavor.views import FlavorView +from trove.tests.unittests import trove_testtools + + +class FlavorViewsTest(trove_testtools.TestCase): + + def setUp(self): + super(FlavorViewsTest, self).setUp() + self.flavor = Mock() + self.flavor.id = 10 + self.flavor.str_id = '10' + self.flavor.name = 'test_flavor' + self.flavor.ram = 512 + self.links = 'my_links' + + def tearDown(self): + super(FlavorViewsTest, self).tearDown() + + def test_data(self): + data = [ + {'flavor_id': 10, + 'expected_id': 10, + 'expected_str_id': '10'}, + {'flavor_id': 'uuid-10', + 'expected_id': None, + 'expected_str_id': 'uuid-10'}, + {'flavor_id': '02', + 'expected_id': None, + 'expected_str_id': '02'}, + ] + + for datum in data: + flavor_id = datum['flavor_id'] + expected_id = datum['expected_id'] + expected_str_id = datum['expected_str_id'] + msg = "Testing flavor_id: %s - " % flavor_id + self.flavor.id = flavor_id + with patch.object(FlavorView, '_build_links', + Mock(return_value=(self.links))): + view = FlavorView(self.flavor) + result = view.data() + self.assertEqual(expected_id, result['flavor']['id'], + msg + 'invalid id') + self.assertEqual(expected_str_id, result['flavor']['str_id'], + msg + 'invalid str_id') + self.assertEqual(self.flavor.name, result['flavor']['name'], + msg + 'invalid name') + self.assertEqual(self.flavor.ram, result['flavor']['ram'], + msg + 'invalid ram') + self.assertEqual(self.links, result['flavor']['links'], + msg + 'invalid links') diff -Nru openstack-trove-6.0.0~b2/trove/tests/unittests/guestagent/test_agent_heartbeats_models.py openstack-trove-6.0.0~b3~dev119/trove/tests/unittests/guestagent/test_agent_heartbeats_models.py --- openstack-trove-6.0.0~b2/trove/tests/unittests/guestagent/test_agent_heartbeats_models.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/unittests/guestagent/test_agent_heartbeats_models.py 2016-08-29 20:08:35.000000000 +0000 @@ -11,6 +11,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +from mock import Mock from mock import patch import uuid @@ -63,6 +64,27 @@ self.assertIsNotNone(heartbeat.guest_agent_version) self.assertEqual("1.2.3", heartbeat.guest_agent_version) + def test_create_invalid_model_error(self): + """ + Test the creation failure of a new agent heartbeat record + """ + instance = Mock() + instance.errors = {} + instance.is_valid = Mock(return_value=False) + with patch.object(AgentHeartBeat, 'save', return_value=instance): + self.assertRaises(exception.InvalidModelError, + AgentHeartBeat.create) + + def test_save_invalid_model_error(self): + """ + Test the save failure of an agent heartbeat record + """ + instance_id = str(uuid.uuid4()) + heartbeat = AgentHeartBeat.create( + instance_id=instance_id) + with patch.object(AgentHeartBeat, 'is_valid', return_value=False): + self.assertRaises(exception.InvalidModelError, heartbeat.save) + def test_find_by_instance_id(self): """ Test to retrieve a guest agents by its id diff -Nru openstack-trove-6.0.0~b2/trove/tests/unittests/guestagent/test_cassandra_manager.py openstack-trove-6.0.0~b3~dev119/trove/tests/unittests/guestagent/test_cassandra_manager.py --- openstack-trove-6.0.0~b2/trove/tests/unittests/guestagent/test_cassandra_manager.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/unittests/guestagent/test_cassandra_manager.py 2016-08-29 20:08:35.000000000 +0000 @@ -455,7 +455,7 @@ found = self.manager.list_databases(self.context) self.assertEqual(2, len(found)) self.assertEqual(3, len(found[0])) - self.assertEqual(None, found[1]) + self.assertIsNone(found[1]) self.assertIn(db1.serialize(), found[0]) self.assertIn(db2.serialize(), found[0]) self.assertIn(db3.serialize(), found[0]) @@ -606,7 +606,7 @@ found = self.manager.list_users(self.context) self.assertEqual(2, len(found)) self.assertEqual(3, len(found[0])) - self.assertEqual(None, found[1]) + self.assertIsNone(found[1]) self.assertIn(usr1.serialize(), found[0]) self.assertIn(usr2.serialize(), found[0]) self.assertIn(usr3.serialize(), found[0]) @@ -775,3 +775,22 @@ 'list_superusers', return_value=[trove_admin, other_admin]): self.assertTrue(self.manager.is_root_enabled(self.context)) + + def test_guest_log_enable(self): + self._assert_guest_log_enable(False, 'INFO') + self._assert_guest_log_enable(True, 'OFF') + + def _assert_guest_log_enable(self, disable, expected_level): + with patch.multiple( + self.manager._app, + logback_conf_manager=DEFAULT, + _run_nodetool_command=DEFAULT + ) as app_mocks: + self.assertFalse(self.manager.guest_log_enable( + Mock(), Mock(), disable)) + + (app_mocks['logback_conf_manager'].apply_system_override. + assert_called_once_with( + {'configuration': {'root': {'@level': expected_level}}})) + app_mocks['_run_nodetool_command'].assert_called_once_with( + 'setlogginglevel', 'root', expected_level) diff -Nru openstack-trove-6.0.0~b2/trove/tests/unittests/guestagent/test_configuration.py openstack-trove-6.0.0~b3~dev119/trove/tests/unittests/guestagent/test_configuration.py --- openstack-trove-6.0.0~b2/trove/tests/unittests/guestagent/test_configuration.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/unittests/guestagent/test_configuration.py 2016-08-29 20:08:31.000000000 +0000 @@ -122,27 +122,27 @@ 'value': '1.4142'}}, 1, {'Section_1': {'name': 'sqrt(2)', - 'value': '1.4142'}} + 'value': 1.4142}} ) user_overrides_v2 = ('id2', - {'Section_1': {'is_number': 'False'}}, + {'Section_1': {'is_number': False}}, 2, - {'Section_1': {'is_number': 'False'}} + {'Section_1': {'is_number': False}} ) system_overrides_v1 = ('id1', {'Section_1': {'name': 'e', - 'value': '2.7183'}}, + 'value': 2.7183}}, 1, {'Section_1': {'name': 'e', - 'value': '2.7183'}} + 'value': 2.7183}} ) system_overrides_v2 = ('id2', - {'Section_2': {'is_number': 'True'}}, + {'Section_2': {'is_number': True}}, 2, - {'Section_2': {'is_number': 'True'}} + {'Section_2': {'is_number': True}} ) self._test_import_override_strategy( @@ -153,36 +153,36 @@ # single file. user_overrides_v1 = ('id1', {'Section_1': {'name': 'sqrt(2)', - 'value': '1.4142'}}, + 'value': 1.4142}}, 1, {'Section_1': {'name': 'sqrt(2)', - 'is_number': 'False', - 'value': '1.4142'}} + 'is_number': False, + 'value': 1.4142}} ) user_overrides_v2 = ('id1', - {'Section_1': {'is_number': 'False'}}, + {'Section_1': {'is_number': False}}, 1, {'Section_1': {'name': 'sqrt(2)', - 'is_number': 'False', - 'value': '1.4142'}} + 'is_number': False, + 'value': 1.4142}} ) system_overrides_v1 = ('id1', {'Section_1': {'name': 'e', - 'value': '2.7183'}}, + 'value': 2.7183}}, 1, {'Section_1': {'name': 'e', - 'value': '2.7183'}, - 'Section_2': {'is_number': 'True'}} + 'value': 2.7183}, + 'Section_2': {'is_number': True}} ) system_overrides_v2 = ('id1', - {'Section_2': {'is_number': 'True'}}, + {'Section_2': {'is_number': True}}, 1, {'Section_1': {'name': 'e', - 'value': '2.7183'}, - 'Section_2': {'is_number': 'True'}} + 'value': 2.7183}, + 'Section_2': {'is_number': True}} ) self._test_import_override_strategy( @@ -193,8 +193,8 @@ def _test_import_override_strategy( self, system_overrides, user_overrides, test_multi_rev): base_config_contents = {'Section_1': {'name': 'pi', - 'is_number': 'True', - 'value': '3.1415'} + 'is_number': True, + 'value': 3.1415} } codec = IniCodec() @@ -361,21 +361,21 @@ @patch.multiple(operating_system, chmod=Mock(), chown=Mock()) def _assert_get_value(self, override_strategy): base_config_contents = {'Section_1': {'name': 'pi', - 'is_number': 'True', - 'value': '3.1415'} + 'is_number': True, + 'value': 3.1415} } config_overrides_v1a = {'Section_1': {'name': 'sqrt(2)', - 'value': '1.4142'} + 'value': 1.4142} } config_overrides_v2 = {'Section_1': {'name': 'e', - 'value': '2.7183'}, + 'value': 2.7183}, 'Section_2': {'foo': 'bar'} } config_overrides_v1b = {'Section_1': {'name': 'sqrt(4)', - 'value': '2.0'} + 'value': 2.0} } codec = IniCodec() @@ -397,22 +397,22 @@ # Test value before applying overrides. self.assertEqual('pi', manager.get_value('Section_1')['name']) - self.assertEqual('3.1415', manager.get_value('Section_1')['value']) + self.assertEqual(3.1415, manager.get_value('Section_1')['value']) # Test value after applying overrides. manager.apply_user_override(config_overrides_v1a, change_id='id1') self.assertEqual('sqrt(2)', manager.get_value('Section_1')['name']) - self.assertEqual('1.4142', manager.get_value('Section_1')['value']) + self.assertEqual(1.4142, manager.get_value('Section_1')['value']) manager.apply_user_override(config_overrides_v2, change_id='id2') self.assertEqual('e', manager.get_value('Section_1')['name']) - self.assertEqual('2.7183', manager.get_value('Section_1')['value']) + self.assertEqual(2.7183, manager.get_value('Section_1')['value']) self.assertEqual('bar', manager.get_value('Section_2')['foo']) # Editing change 'id1' become visible only after removing # change 'id2', which overrides 'id1'. manager.apply_user_override(config_overrides_v1b, change_id='id1') self.assertEqual('e', manager.get_value('Section_1')['name']) - self.assertEqual('2.7183', manager.get_value('Section_1')['value']) + self.assertEqual(2.7183, manager.get_value('Section_1')['value']) # Test value after removing overrides. @@ -420,35 +420,35 @@ # removing 'id2'. manager.remove_user_override(change_id='id2') self.assertEqual('sqrt(4)', manager.get_value('Section_1')['name']) - self.assertEqual('2.0', manager.get_value('Section_1')['value']) + self.assertEqual(2.0, manager.get_value('Section_1')['value']) # Back to the base. manager.remove_user_override(change_id='id1') self.assertEqual('pi', manager.get_value('Section_1')['name']) - self.assertEqual('3.1415', manager.get_value('Section_1')['value']) + self.assertEqual(3.1415, manager.get_value('Section_1')['value']) self.assertIsNone(manager.get_value('Section_2')) # Test system overrides. manager.apply_system_override( config_overrides_v1b, change_id='id1') self.assertEqual('sqrt(4)', manager.get_value('Section_1')['name']) - self.assertEqual('2.0', manager.get_value('Section_1')['value']) + self.assertEqual(2.0, manager.get_value('Section_1')['value']) # The system values should take precedence over the user # override. manager.apply_user_override( config_overrides_v1a, change_id='id1') self.assertEqual('sqrt(4)', manager.get_value('Section_1')['name']) - self.assertEqual('2.0', manager.get_value('Section_1')['value']) + self.assertEqual(2.0, manager.get_value('Section_1')['value']) # The user values should become visible only after removing the # system change. manager.remove_system_override(change_id='id1') self.assertEqual('sqrt(2)', manager.get_value('Section_1')['name']) - self.assertEqual('1.4142', manager.get_value('Section_1')['value']) + self.assertEqual(1.4142, manager.get_value('Section_1')['value']) # Back to the base. manager.remove_user_override(change_id='id1') self.assertEqual('pi', manager.get_value('Section_1')['name']) - self.assertEqual('3.1415', manager.get_value('Section_1')['value']) + self.assertEqual(3.1415, manager.get_value('Section_1')['value']) self.assertIsNone(manager.get_value('Section_2')) diff -Nru openstack-trove-6.0.0~b2/trove/tests/unittests/guestagent/test_dbaas.py openstack-trove-6.0.0~b3~dev119/trove/tests/unittests/guestagent/test_dbaas.py --- openstack-trove-6.0.0~b2/trove/tests/unittests/guestagent/test_dbaas.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/unittests/guestagent/test_dbaas.py 2016-08-29 20:08:35.000000000 +0000 @@ -426,7 +426,7 @@ dbaas.orig_configuration_manager = dbaas.MySqlApp.configuration_manager dbaas.MySqlApp.configuration_manager = Mock() dbaas.orig_get_auth_password = dbaas.MySqlApp.get_auth_password - dbaas.MySqlApp.get_auth_password = Mock() + dbaas.MySqlApp.get_auth_password = Mock(return_value='root_pwd') self.orig_configuration_manager = \ mysql_common_service.BaseMySqlApp.configuration_manager mysql_common_service.BaseMySqlApp.configuration_manager = Mock() @@ -474,67 +474,43 @@ def test_change_passwords(self): user = [{"name": "test_user", "host": "%", "password": "password"}] - expected = ("UPDATE mysql.user SET Password=" - "PASSWORD('password') WHERE User = 'test_user' " - "AND Host = '%';") + expected = ("SET PASSWORD FOR 'test_user'@'%' = PASSWORD('password');") with patch.object(self.mock_client, 'execute') as mock_execute: self.mySqlAdmin.change_passwords(user) self._assert_execute_call(expected, mock_execute) def test_update_attributes_password(self): - db_result = [{"grantee": "'test_user'@'%'", "table_schema": "db1"}, - {"grantee": "'test_user'@'%'", "table_schema": "db2"}] - expected = ("UPDATE mysql.user SET Password=" - "PASSWORD('password') WHERE User = 'test_user' " - "AND Host = '%';") + expected = ("SET PASSWORD FOR 'test_user'@'%' = PASSWORD('password');") user = MagicMock() user.name = "test_user" user.host = "%" user_attrs = {"password": "password"} - with patch.object(self.mock_client, 'execute', - return_value=db_result) as mock_execute: + with patch.object(self.mock_client, 'execute') as mock_execute: with patch.object(self.mySqlAdmin, '_get_user', return_value=user): - with patch.object(self.mySqlAdmin, 'grant_access'): - self.mySqlAdmin.update_attributes('test_user', '%', - user_attrs) - self.assertEqual(0, - self.mySqlAdmin.grant_access.call_count) - self._assert_execute_call(expected, mock_execute, - call_idx=1) + self.mySqlAdmin.update_attributes('test_user', '%', user_attrs) + self._assert_execute_call(expected, mock_execute) def test_update_attributes_name(self): user = MagicMock() user.name = "test_user" user.host = "%" user_attrs = {"name": "new_name"} - expected = ("UPDATE mysql.user SET User='new_name' " - "WHERE User = 'test_user' AND Host = '%';") + expected = ("RENAME USER 'test_user'@'%' TO 'new_name'@'%';") with patch.object(self.mock_client, 'execute') as mock_execute: with patch.object(self.mySqlAdmin, '_get_user', return_value=user): - with patch.object(self.mySqlAdmin, 'grant_access'): - self.mySqlAdmin.update_attributes('test_user', '%', - user_attrs) - self.mySqlAdmin.grant_access.assert_called_with( - 'new_name', '%', set([])) - self._assert_execute_call(expected, mock_execute, - call_idx=1) + self.mySqlAdmin.update_attributes('test_user', '%', user_attrs) + self._assert_execute_call(expected, mock_execute) def test_update_attributes_host(self): user = MagicMock() user.name = "test_user" user.host = "%" user_attrs = {"host": "new_host"} - expected = ("UPDATE mysql.user SET Host='new_host' " - "WHERE User = 'test_user' AND Host = '%';") + expected = ("RENAME USER 'test_user'@'%' TO 'test_user'@'new_host';") with patch.object(self.mock_client, 'execute') as mock_execute: with patch.object(self.mySqlAdmin, '_get_user', return_value=user): - with patch.object(self.mySqlAdmin, 'grant_access'): - self.mySqlAdmin.update_attributes('test_user', '%', - user_attrs) - self.mySqlAdmin.grant_access.assert_called_with( - 'test_user', 'new_host', set([])) - self._assert_execute_call(expected, mock_execute, - call_idx=1) + self.mySqlAdmin.update_attributes('test_user', '%', user_attrs) + self._assert_execute_call(expected, mock_execute) def test_create_database(self): databases = [] @@ -626,6 +602,7 @@ " ORDER BY schema_name ASC LIMIT " + str(limit + 1) + ";" ) with patch.object(self.mock_client, 'execute') as mock_execute: + mock_execute.return_value.rowcount = 0 self.mySqlAdmin.list_databases(limit) self._assert_execute_call(expected, mock_execute) @@ -684,6 +661,7 @@ ) with patch.object(self.mock_client, 'execute') as mock_execute: + mock_execute.return_value.rowcount = 0 self.mySqlAdmin.list_users(limit) self._assert_execute_call(expected, mock_execute) @@ -725,7 +703,7 @@ username = "user1" hostname = "%" user = [{"User": "user1", "Host": "%", 'Password': 'some_thing'}] - expected = ("SELECT User, Host, Password FROM mysql.user " + expected = ("SELECT User, Host FROM mysql.user " "WHERE Host != 'localhost' AND User = 'user1' " "AND Host = '%' ORDER BY User, Host;") @@ -1437,9 +1415,8 @@ return_value=self.mock_client): self.mySqlApp.secure_root() update_root_password, _ = self.mock_execute.call_args_list[0] - update_expected = ("UPDATE mysql.user SET Password=" - "PASSWORD('some_password') " - "WHERE User = 'root' AND Host = 'localhost';") + update_expected = ("SET PASSWORD FOR 'root'@'localhost' = " + "PASSWORD('some_password');") remove_root, _ = self.mock_execute.call_args_list[1] remove_expected = ("DELETE FROM mysql.user WHERE " @@ -1586,8 +1563,6 @@ app = MySqlApp(mock_status) app._reset_configuration = MagicMock() app.start_mysql = MagicMock(return_value=None) - app._wait_for_mysql_to_be_really_alive = MagicMock( - return_value=True) app.stop_db = MagicMock(return_value=None) app.secure('foo') reset_config_calls = [call('foo', auth_pwd_mock.return_value)] @@ -1682,7 +1657,7 @@ mock_execute.assert_any_call(TextClauseMatcher( 'GRANT ALL PRIVILEGES ON *.*')) mock_execute.assert_any_call(TextClauseMatcher( - 'UPDATE mysql.user')) + 'SET PASSWORD')) @patch.object(MySqlRootAccess, 'enable_root') def test_root_disable(self, enable_root_mock): @@ -2943,7 +2918,7 @@ self.assertEqual(0, vertica_system.shell_execute.call_count) def test_vertica_write_config(self): - temp_file_handle = tempfile.NamedTemporaryFile(delete=False) + temp_file_handle = tempfile.NamedTemporaryFile("w", delete=False) mock_mkstemp = MagicMock(return_value=(temp_file_handle)) mock_unlink = Mock(return_value=0) self.app.write_config(config=self.test_config, @@ -2969,7 +2944,7 @@ def test_vertica_error_in_write_config_verify_unlink(self): mock_unlink = Mock(return_value=0) - temp_file_handle = tempfile.NamedTemporaryFile(delete=False) + temp_file_handle = tempfile.NamedTemporaryFile("w", delete=False) mock_mkstemp = MagicMock(return_value=temp_file_handle) with patch.object(vertica_system, 'shell_execute', diff -Nru openstack-trove-6.0.0~b2/trove/tests/unittests/guestagent/test_guestagent_utils.py openstack-trove-6.0.0~b3~dev119/trove/tests/unittests/guestagent/test_guestagent_utils.py --- openstack-trove-6.0.0~b2/trove/tests/unittests/guestagent/test_guestagent_utils.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/unittests/guestagent/test_guestagent_utils.py 2016-08-29 20:08:35.000000000 +0000 @@ -13,6 +13,10 @@ # License for the specific language governing permissions and limitations # under the License. +from mock import Mock +from mock import patch + +from trove.common import pagination from trove.guestagent.common import guestagent_utils from trove.tests.unittests import trove_testtools @@ -137,11 +141,37 @@ def test_to_bytes(self): self.assertEqual('1024', guestagent_utils.to_bytes('1024')) - self.assertEqual('1048576', guestagent_utils.to_bytes('1024K')) - self.assertEqual('1073741824', guestagent_utils.to_bytes('1024M')) - self.assertEqual('1099511627776', guestagent_utils.to_bytes('1024G')) + self.assertEqual(1048576, guestagent_utils.to_bytes('1024K')) + self.assertEqual(1073741824, guestagent_utils.to_bytes('1024M')) + self.assertEqual(1099511627776, guestagent_utils.to_bytes('1024G')) self.assertEqual('1024T', guestagent_utils.to_bytes('1024T')) self.assertEqual(1024, guestagent_utils.to_bytes(1024)) self.assertEqual('Hello!', guestagent_utils.to_bytes('Hello!')) self.assertEqual('', guestagent_utils.to_bytes('')) self.assertIsNone(guestagent_utils.to_bytes(None)) + + @patch.object(pagination, 'paginate_object_list') + def test_paginate_list(self, paginate_obj_mock): + limit = Mock() + marker = Mock() + include_marker = Mock() + test_list = [Mock(), Mock(), Mock()] + guestagent_utils.paginate_list( + test_list, + limit=limit, marker=marker, include_marker=include_marker) + paginate_obj_mock.assert_called_once_with( + test_list, 'name', + limit=limit, marker=marker, include_marker=include_marker) + + def test_serialize_list(self): + test_list = [Mock(), Mock(), Mock()] + with patch.object(guestagent_utils, 'paginate_list', + return_value=(test_list[:2], test_list[-2]) + ) as paginate_lst_mock: + _, next_name = guestagent_utils.serialize_list(test_list) + paginate_lst_mock.assert_called_once_with( + test_list, + limit=None, marker=None, include_marker=False) + for item in paginate_lst_mock.return_value[0]: + item.serialize.assert_called_once_with() + self.assertEqual(paginate_lst_mock.return_value[1], next_name) diff -Nru openstack-trove-6.0.0~b2/trove/tests/unittests/guestagent/test_mongodb_manager.py openstack-trove-6.0.0~b3~dev119/trove/tests/unittests/guestagent/test_mongodb_manager.py --- openstack-trove-6.0.0~b2/trove/tests/unittests/guestagent/test_mongodb_manager.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/unittests/guestagent/test_mongodb_manager.py 2016-08-29 20:08:35.000000000 +0000 @@ -241,7 +241,8 @@ users, next_marker = self.manager.list_users(self.context) self.assertIsNone(next_marker) - self.assertEqual(sorted([user1, user2]), users) + self.assertEqual(sorted([user1, user2], key=lambda x: x['_name']), + users) @mock.patch.object(service.MongoDBAdmin, 'create_validated_user') @mock.patch.object(utils, 'generate_random_password', @@ -345,16 +346,14 @@ 'db0', 'db1', 'db2', 'db3']) mocked_client().__enter__().database_names = mocked_list - marker = models.MongoDBSchema('db1').serialize() dbs, next_marker = self.manager.list_databases( - self.context, limit=2, marker=marker, include_marker=True) + self.context, limit=2, marker='db1', include_marker=True) mocked_list.assert_any_call() self.assertEqual([models.MongoDBSchema('db1').serialize(), models.MongoDBSchema('db2').serialize()], dbs) - self.assertEqual(models.MongoDBSchema('db2').serialize(), - next_marker) + self.assertEqual('db2', next_marker) @mock.patch.object(service, 'MongoDBClient') @mock.patch.object(service.MongoDBAdmin, '_admin_user') diff -Nru openstack-trove-6.0.0~b2/trove/tests/unittests/guestagent/test_operating_system.py openstack-trove-6.0.0~b3~dev119/trove/tests/unittests/guestagent/test_operating_system.py --- openstack-trove-6.0.0~b2/trove/tests/unittests/guestagent/test_operating_system.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/unittests/guestagent/test_operating_system.py 2016-08-29 20:08:35.000000000 +0000 @@ -26,7 +26,7 @@ from trove.common import exception from trove.common.stream_codecs import ( Base64Codec, IdentityCodec, IniCodec, JsonCodec, - KeyValueCodec, PropertiesCodec, YamlCodec) + KeyValueCodec, PropertiesCodec, XmlCodec, YamlCodec) from trove.common import utils from trove.guestagent.common import guestagent_utils from trove.guestagent.common import operating_system @@ -55,32 +55,23 @@ def test_ini_file_codec(self): data_no_none = {"Section1": {"s1k1": 's1v1', - "s1k2": '3.1415926535'}, - "Section2": {"s2k1": '1', - "s2k2": 'True'}} + "s1k2": 3.1415926535}, + "Section2": {"s2k1": 1, + "s2k2": True}} self._test_file_codec(data_no_none, IniCodec()) data_with_none = {"Section1": {"s1k1": 's1v1', - "s1k2": '3.1415926535'}, - "Section2": {"s2k1": '1', - "s2k2": 'True', + "s1k2": 3.1415926535}, + "Section2": {"s2k1": 1, + "s2k2": True, "s2k3": None}} # Keys with None values will be written without value. self._test_file_codec(data_with_none, IniCodec()) - # Non-string values will be converted to strings. - data_with_none_as_objects = {"Section1": {"s1k1": 's1v1', - "s1k2": 3.1415926535}, - "Section2": {"s2k1": 1, - "s2k2": True, - "s2k3": None}} - self._test_file_codec(data_with_none_as_objects, IniCodec(), - expected_data=data_with_none) - # None will be replaced with 'default_value'. - default_value = '1' + default_value = 1 expected_data = guestagent_utils.update_dict( {"Section2": {"s2k3": default_value}}, dict(data_with_none)) self._test_file_codec(data_with_none, @@ -92,7 +83,11 @@ "Section2": {"s2k1": '1', "s2k2": 'True'}, "Section3": {"Section4": {"s4k1": '3.1415926535', - "s4k2": None}} + "s4k2": None}}, + "Section5": {"s5k1": 1, + "s5k2": True}, + "Section6": {"Section7": {"s7k1": 3.1415926535, + "s7k2": None}} } self._test_file_codec(data, YamlCodec()) @@ -128,11 +123,27 @@ "Section2": {"s2k1": '1', "s2k2": 'True'}, "Section3": {"Section4": {"s4k1": '3.1415926535', - "s4k2": None}} + "s4k2": None}}, + "Section5": {"s5k1": 1, + "s5k2": True}, + "Section6": {"Section7": {"s7k1": 3.1415926535, + "s7k2": None}} } self._test_file_codec(data, JsonCodec()) + def test_xml_file_codec(self): + data = {'document': {'@name': 'mydocument', '@ttl': '10', + 'author': {'@name': 'Jycll ;-)'}, + 'page': [{'@number': '1', 'paragraph': + ['lorem ipsum', 'more lorem ipsum']}, + {'@number': '1', 'paragraph': + ['lorem ipsum', 'more lorem ipsum']}] + } + } + + self._test_file_codec(data, XmlCodec()) + def _test_file_codec(self, data, read_codec, write_codec=None, expected_data=None, expected_exception=None, diff -Nru openstack-trove-6.0.0~b2/trove/tests/unittests/guestagent/test_query.py openstack-trove-6.0.0~b3~dev119/trove/tests/unittests/guestagent/test_query.py --- openstack-trove-6.0.0~b2/trove/tests/unittests/guestagent/test_query.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/unittests/guestagent/test_query.py 2016-08-29 20:08:35.000000000 +0000 @@ -351,82 +351,59 @@ "IDENTIFIED BY 'password123';", str(cu)) -class UpdateUserTest(QueryTestBase): +class RenameUserTest(QueryTestBase): + def setUp(self): - super(UpdateUserTest, self).setUp() + super(RenameUserTest, self).setUp() def tearDown(self): - super(UpdateUserTest, self).tearDown() + super(RenameUserTest, self).tearDown() def test_rename_user(self): username = 'root' hostname = 'localhost' new_user = 'root123' - uu = sql_query.UpdateUser(user=username, host=hostname, + uu = sql_query.RenameUser(user=username, host=hostname, new_user=new_user) - self.assertEqual("UPDATE mysql.user SET User='root123' " - "WHERE User = 'root' " - "AND Host = 'localhost';", str(uu)) - - def test_change_password(self): - username = 'root' - hostname = 'localhost' - new_password = 'password123' - uu = sql_query.UpdateUser(user=username, host=hostname, - clear=new_password) - self.assertEqual("UPDATE mysql.user SET " - "Password=PASSWORD('password123') " - "WHERE User = 'root' " - "AND Host = 'localhost';", str(uu)) + self.assertEqual("RENAME USER 'root'@'localhost' " + "TO 'root123'@'localhost';", str(uu)) def test_change_host(self): username = 'root' hostname = 'localhost' new_host = '%' - uu = sql_query.UpdateUser(user=username, host=hostname, + uu = sql_query.RenameUser(user=username, host=hostname, new_host=new_host) - self.assertEqual("UPDATE mysql.user SET Host='%' " - "WHERE User = 'root' " - "AND Host = 'localhost';", str(uu)) - - def test_change_password_and_username(self): - username = 'root' - hostname = 'localhost' - new_user = 'root123' - new_password = 'password123' - uu = sql_query.UpdateUser(user=username, host=hostname, - clear=new_password, new_user=new_user) - self.assertEqual("UPDATE mysql.user SET User='root123', " - "Password=PASSWORD('password123') " - "WHERE User = 'root' " - "AND Host = 'localhost';", str(uu)) + self.assertEqual("RENAME USER 'root'@'localhost' " + "TO 'root'@'%';", str(uu)) - def test_change_username_password_hostname(self): + def test_change_username_and_hostname(self): username = 'root' hostname = 'localhost' new_user = 'root123' - new_password = 'password123' new_host = '%' - uu = sql_query.UpdateUser(user=username, host=hostname, - clear=new_password, new_user=new_user, - new_host=new_host) - self.assertEqual("UPDATE mysql.user SET User='root123', " - "Host='%', " - "Password=PASSWORD('password123') " - "WHERE User = 'root' " - "AND Host = 'localhost';", str(uu)) + uu = sql_query.RenameUser(user=username, host=hostname, + new_user=new_user, new_host=new_host) + self.assertEqual("RENAME USER 'root'@'localhost' " + "TO 'root123'@'%';", str(uu)) - def test_change_username_and_hostname(self): + +class SetPasswordTest(QueryTestBase): + + def setUp(self): + super(SetPasswordTest, self).setUp() + + def tearDown(self): + super(SetPasswordTest, self).tearDown() + + def test_alter_user(self): username = 'root' hostname = 'localhost' - new_user = 'root123' - new_host = '%' - uu = sql_query.UpdateUser(user=username, host=hostname, - new_host=new_host, new_user=new_user) - self.assertEqual("UPDATE mysql.user SET User='root123', " - "Host='%' " - "WHERE User = 'root' " - "AND Host = 'localhost';", str(uu)) + new_password = 'new_password' + uu = sql_query.SetPassword(user=username, host=hostname, + new_password=new_password) + self.assertEqual("SET PASSWORD FOR 'root'@'localhost' = " + "PASSWORD('new_password');", str(uu)) class DropUserTest(QueryTestBase): diff -Nru openstack-trove-6.0.0~b2/trove/tests/unittests/instance/test_instance_models.py openstack-trove-6.0.0~b3~dev119/trove/tests/unittests/instance/test_instance_models.py --- openstack-trove-6.0.0~b2/trove/tests/unittests/instance/test_instance_models.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/unittests/instance/test_instance_models.py 2016-08-29 20:08:31.000000000 +0000 @@ -22,6 +22,7 @@ from trove.datastore import models as datastore_models from trove.instance import models from trove.instance.models import DBInstance +from trove.instance.models import DBInstanceFault from trove.instance.models import filter_ips from trove.instance.models import Instance from trove.instance.models import InstanceServiceStatus @@ -39,12 +40,14 @@ def setUp(self): super(SimpleInstanceTest, self).setUp() + self.context = trove_testtools.TroveTestContext(self, is_admin=True) db_info = DBInstance( InstanceTasks.BUILDING, name="TestInstance") self.instance = SimpleInstance( None, db_info, InstanceServiceStatus( ServiceStatuses.BUILDING), ds_version=Mock(), ds=Mock(), locality='affinity') + self.instance.context = self.context db_info.addresses = {"private": [{"addr": "123.123.123.123"}], "internal": [{"addr": "10.123.123.123"}], "public": [{"addr": "15.123.123.123"}]} @@ -106,6 +109,21 @@ def test_locality(self): self.assertEqual('affinity', self.instance.locality) + def test_fault(self): + fault_message = 'Error' + fault_details = 'details' + fault_date = 'now' + temp_fault = Mock() + temp_fault.message = fault_message + temp_fault.details = fault_details + temp_fault.updated = fault_date + fault_mock = Mock(return_value=temp_fault) + with patch.object(DBInstanceFault, 'find_by', fault_mock): + fault = self.instance.fault + self.assertEqual(fault_message, fault.message) + self.assertEqual(fault_details, fault.details) + self.assertEqual(fault_date, fault.updated) + class CreateInstanceTest(trove_testtools.TestCase): diff -Nru openstack-trove-6.0.0~b2/trove/tests/unittests/instance/test_instance_views.py openstack-trove-6.0.0~b3~dev119/trove/tests/unittests/instance/test_instance_views.py --- openstack-trove-6.0.0~b2/trove/tests/unittests/instance/test_instance_views.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/unittests/instance/test_instance_views.py 2016-08-29 20:08:31.000000000 +0000 @@ -63,6 +63,13 @@ self.instance.slave_of_id = None self.instance.slaves = [] self.instance.locality = 'affinity' + self.fault_message = 'Error' + self.fault_details = 'details' + self.fault_date = 'now' + self.instance.fault = Mock() + self.instance.fault.message = self.fault_message + self.instance.fault.details = self.fault_details + self.instance.fault.updated = self.fault_date def tearDown(self): super(InstanceDetailViewTest, self).tearDown() @@ -98,3 +105,13 @@ result = view.data() self.assertEqual(self.instance.locality, result['instance']['locality']) + + def test_fault(self): + view = InstanceDetailView(self.instance, Mock()) + result = view.data() + self.assertEqual(self.fault_message, + result['instance']['fault']['message']) + self.assertEqual(self.fault_details, + result['instance']['fault']['details']) + self.assertEqual(self.fault_date, + result['instance']['fault']['created']) diff -Nru openstack-trove-6.0.0~b2/trove/tests/unittests/taskmanager/test_models.py openstack-trove-6.0.0~b3~dev119/trove/tests/unittests/taskmanager/test_models.py --- openstack-trove-6.0.0~b2/trove/tests/unittests/taskmanager/test_models.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/unittests/taskmanager/test_models.py 2016-08-29 20:08:35.000000000 +0000 @@ -60,9 +60,10 @@ class FakeOptGroup(object): def __init__(self, tcp_ports=['3306', '3301-3307'], - udp_ports=[]): + udp_ports=[], icmp=False): self.tcp_ports = tcp_ports self.udp_ports = udp_ports + self.icmp = icmp class fake_Server: @@ -368,6 +369,15 @@ self.freshinstancetasks._create_secgroup, datastore_manager) + def test_create_sg_rules_icmp(self): + datastore_manager = 'mysql' + self.task_models_conf_mock.get = Mock( + return_value=FakeOptGroup(icmp=True)) + self.freshinstancetasks.update_db = Mock() + self.freshinstancetasks._create_secgroup(datastore_manager) + self.assertEqual(3, taskmanager_models.SecurityGroupRule. + create_sec_group_rule.call_count) + @patch.object(BaseInstance, 'update_db') @patch('trove.taskmanager.models.CONF') @patch('trove.taskmanager.models.LOG') diff -Nru openstack-trove-6.0.0~b2/trove/tests/unittests/trove_testtools.py openstack-trove-6.0.0~b3~dev119/trove/tests/unittests/trove_testtools.py --- openstack-trove-6.0.0~b2/trove/tests/unittests/trove_testtools.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/unittests/trove_testtools.py 2016-08-29 20:08:31.000000000 +0000 @@ -166,9 +166,12 @@ def patch_datastore_manager(self, manager_name): return self.patch_conf_property('datastore_manager', manager_name) - def patch_conf_property(self, property_name, value): + def patch_conf_property(self, property_name, value, section=None): + target = cfg.CONF + if section: + target = target.get(section) conf_patcher = mock.patch.object( - cfg.CONF, property_name, + target, property_name, new_callable=mock.PropertyMock(return_value=value)) self.addCleanup(conf_patcher.stop) return conf_patcher.start() diff -Nru openstack-trove-6.0.0~b2/trove/tests/unittests/util/util.py openstack-trove-6.0.0~b3~dev119/trove/tests/unittests/util/util.py --- openstack-trove-6.0.0~b2/trove/tests/unittests/util/util.py 2016-07-11 16:09:17.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove/tests/unittests/util/util.py 2016-08-29 20:08:31.000000000 +0000 @@ -12,18 +12,22 @@ # License for the specific language governing permissions and limitations # under the License. +import threading + +from trove.common import cfg +from trove.db import get_db_api +from trove.db.sqlalchemy import session + +CONF = cfg.CONF DB_SETUP = None +LOCK = threading.Lock() def init_db(): - global DB_SETUP - if DB_SETUP: - return - from trove.common import cfg - from trove.db import get_db_api - from trove.db.sqlalchemy import session - CONF = cfg.CONF - db_api = get_db_api() - db_api.db_sync(CONF) - session.configure_db(CONF) - DB_SETUP = True + with LOCK: + global DB_SETUP + if not DB_SETUP: + db_api = get_db_api() + db_api.db_sync(CONF) + session.configure_db(CONF) + DB_SETUP = True diff -Nru openstack-trove-6.0.0~b2/trove.egg-info/entry_points.txt openstack-trove-6.0.0~b3~dev119/trove.egg-info/entry_points.txt --- openstack-trove-6.0.0~b2/trove.egg-info/entry_points.txt 2016-07-11 16:12:38.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove.egg-info/entry_points.txt 2016-08-29 20:08:42.000000000 +0000 @@ -24,5 +24,6 @@ security_group = trove.extensions.routes.security_group:Security_group [trove.guestagent.module.drivers] +new_relic_license = trove.guestagent.module.drivers.new_relic_license_driver:NewRelicLicenseDriver ping = trove.guestagent.module.drivers.ping_driver:PingDriver diff -Nru openstack-trove-6.0.0~b2/trove.egg-info/pbr.json openstack-trove-6.0.0~b3~dev119/trove.egg-info/pbr.json --- openstack-trove-6.0.0~b2/trove.egg-info/pbr.json 2016-07-11 16:12:38.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove.egg-info/pbr.json 2016-08-29 20:08:42.000000000 +0000 @@ -1 +1 @@ -{"is_release": true, "git_version": "ff49045"} \ No newline at end of file +{"is_release": false, "git_version": "e02e161"} \ No newline at end of file diff -Nru openstack-trove-6.0.0~b2/trove.egg-info/PKG-INFO openstack-trove-6.0.0~b3~dev119/trove.egg-info/PKG-INFO --- openstack-trove-6.0.0~b2/trove.egg-info/PKG-INFO 2016-07-11 16:12:38.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove.egg-info/PKG-INFO 2016-08-29 20:08:42.000000000 +0000 @@ -1,8 +1,8 @@ Metadata-Version: 1.1 Name: trove -Version: 6.0.0.0b2 +Version: 6.0.0.0b3.dev119 Summary: OpenStack DBaaS -Home-page: http://www.openstack.org/ +Home-page: https://wiki.openstack.org/wiki/Trove Author: OpenStack Author-email: openstack-dev@lists.openstack.org License: UNKNOWN diff -Nru openstack-trove-6.0.0~b2/trove.egg-info/requires.txt openstack-trove-6.0.0~b3~dev119/trove.egg-info/requires.txt --- openstack-trove-6.0.0~b2/trove.egg-info/requires.txt 2016-07-11 16:12:38.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove.egg-info/requires.txt 2016-08-29 20:08:42.000000000 +0000 @@ -2,7 +2,6 @@ SQLAlchemy<1.1.0,>=1.0.10 eventlet!=0.18.3,>=0.18.2 keystonemiddleware!=4.1.0,!=4.5.0,>=4.0.0 -Routes!=2.0,!=2.1,!=2.3.0,>=1.12.3 WebOb>=1.2.3 PasteDeploy>=1.5.0 Paste @@ -12,34 +11,40 @@ httplib2>=0.7.5 lxml>=2.3 passlib>=1.6 -python-heatclient>=1.1.0 +python-heatclient>=1.4.0 python-novaclient!=2.33.0,>=2.29.0 python-cinderclient!=1.7.0,!=1.7.1,>=1.6.0 -python-keystoneclient!=1.8.0,!=2.1.0,>=1.7.0 +python-keystoneclient!=2.1.0,>=2.0.0 python-swiftclient>=2.2.0 python-designateclient>=1.5.0 -python-neutronclient>=4.2.0 +python-neutronclient>=5.1.0 iso8601>=0.1.11 jsonschema!=2.5.0,<3.0.0,>=2.0.0 Jinja2>=2.8 pexpect!=3.3,>=3.1 -oslo.config>=3.10.0 -oslo.context>=2.4.0 +oslo.config>=3.14.0 +oslo.context>=2.9.0 oslo.i18n>=2.1.0 oslo.middleware>=3.0.0 oslo.serialization>=1.10.0 oslo.service>=1.10.0 -oslo.utils>=3.14.0 +oslo.utils>=3.16.0 oslo.concurrency>=3.8.0 PyMySQL>=0.6.2 Babel>=2.3.4 six>=1.9.0 -stevedore>=1.10.0 +stevedore>=1.16.0 oslo.messaging>=5.2.0 -osprofiler>=1.3.0 +osprofiler>=1.4.0 oslo.log>=1.14.0 -oslo.db>=4.1.0 -enum34 +oslo.db>=4.10.0 +xmltodict>=0.10.1 [:(python_version!='2.7')] Routes!=2.0,!=2.3.0,>=1.12.3 + +[:(python_version=='2.7' or python_version=='2.6' or python_version=='3.3')] +enum34 + +[:(python_version=='2.7')] +Routes!=2.0,!=2.1,!=2.3.0,>=1.12.3 diff -Nru openstack-trove-6.0.0~b2/trove.egg-info/SOURCES.txt openstack-trove-6.0.0~b3~dev119/trove.egg-info/SOURCES.txt --- openstack-trove-6.0.0~b2/trove.egg-info/SOURCES.txt 2016-07-11 16:12:39.000000000 +0000 +++ openstack-trove-6.0.0~b3~dev119/trove.egg-info/SOURCES.txt 2016-08-29 20:08:43.000000000 +0000 @@ -8,7 +8,6 @@ README.rst babel.cfg blacklist-py3.txt -doc-test.conf generate_examples.py requirements.txt run_tests.py @@ -17,238 +16,262 @@ setup.py test-requirements.txt tox.ini -apidocs/.gitignore -apidocs/pom.xml -apidocs/replacements.config -apidocs/src/cdb-devguide.xml -apidocs/src/images/Choose_CS_Image.png -apidocs/src/images/Choose_CS_Image_CCP.png -apidocs/src/images/Choose_Image_CCP.png -apidocs/src/images/Choose_Image_CCP.tiff -apidocs/src/images/Cloud_DB_Infographic-1.png -apidocs/src/images/Cloud_DB_Infographic-1.svg -apidocs/src/images/Create_CS.png -apidocs/src/images/phpMyAdmin.png -apidocs/src/samples/db-backup-create-incremental-request-json.txt -apidocs/src/samples/db-backup-create-incremental-request.json -apidocs/src/samples/db-backup-create-incremental-response-json.txt -apidocs/src/samples/db-backup-create-incremental-response.json -apidocs/src/samples/db-backup-create-request-json.txt -apidocs/src/samples/db-backup-create-request.json -apidocs/src/samples/db-backup-create-response-json.txt -apidocs/src/samples/db-backup-create-response.json -apidocs/src/samples/db-backup-delete-request-json.txt -apidocs/src/samples/db-backup-delete-response-json.txt -apidocs/src/samples/db-backup-get-request-json.txt -apidocs/src/samples/db-backup-get-response-json.txt -apidocs/src/samples/db-backup-get-response.json -apidocs/src/samples/db-backup-list-request-json.txt -apidocs/src/samples/db-backup-list-response-json.txt -apidocs/src/samples/db-backup-list-response.json -apidocs/src/samples/db-backup-restore-request-json.txt -apidocs/src/samples/db-backup-restore-request.json -apidocs/src/samples/db-backup-restore-response-json.txt -apidocs/src/samples/db-backup-restore-response.json -apidocs/src/samples/db-backups-by-instance-request-json.txt -apidocs/src/samples/db-backups-by-instance-response-json.txt -apidocs/src/samples/db-backups-by-instance-response.json -apidocs/src/samples/db-change-user-attributes-request-json.txt -apidocs/src/samples/db-change-user-attributes-request.json -apidocs/src/samples/db-change-user-attributes-response-json.txt -apidocs/src/samples/db-change-users-password-request-json.txt -apidocs/src/samples/db-change-users-password-request.json -apidocs/src/samples/db-change-users-password-response-json.txt -apidocs/src/samples/db-check-root-user-request-json.txt -apidocs/src/samples/db-check-root-user-response-json.txt -apidocs/src/samples/db-check-root-user-response.json -apidocs/src/samples/db-configuration-attach-to-instance-request-json.txt -apidocs/src/samples/db-configuration-attach-to-instance-request.json -apidocs/src/samples/db-configuration-attach-to-instance-response-json.txt -apidocs/src/samples/db-configuration-create-request-json.txt -apidocs/src/samples/db-configuration-create-request.json -apidocs/src/samples/db-configuration-create-response-json.txt -apidocs/src/samples/db-configuration-create-response.json -apidocs/src/samples/db-configuration-delete-request-json.txt -apidocs/src/samples/db-configuration-delete-response-json.txt -apidocs/src/samples/db-configuration-detach-from-instance-request-json.txt -apidocs/src/samples/db-configuration-detach-from-instance-request.json -apidocs/src/samples/db-configuration-detach-from-instance-response-json.txt -apidocs/src/samples/db-configuration-details-request-json.txt -apidocs/src/samples/db-configuration-details-response-json.txt -apidocs/src/samples/db-configuration-details-response.json -apidocs/src/samples/db-configuration-edit-parameters-request-json.txt -apidocs/src/samples/db-configuration-edit-parameters-request.json -apidocs/src/samples/db-configuration-edit-parameters-response-json.txt -apidocs/src/samples/db-configuration-list-instances-request-json.txt -apidocs/src/samples/db-configuration-list-instances-response-json.txt -apidocs/src/samples/db-configuration-list-instances-response.json -apidocs/src/samples/db-configuration-list-request-json.txt -apidocs/src/samples/db-configuration-list-response-json.txt -apidocs/src/samples/db-configuration-list-response.json -apidocs/src/samples/db-configuration-parameter-for-datastore-version-request-json.txt -apidocs/src/samples/db-configuration-parameter-for-datastore-version-response-json.txt -apidocs/src/samples/db-configuration-parameter-for-datastore-version-response.json -apidocs/src/samples/db-configuration-parameter-without-datastore-version-request-json.txt -apidocs/src/samples/db-configuration-parameter-without-datastore-version-response-json.txt -apidocs/src/samples/db-configuration-parameter-without-datastore-version-response.json -apidocs/src/samples/db-configuration-parameters-for-datastore-version-request-json.txt -apidocs/src/samples/db-configuration-parameters-for-datastore-version-response-json.txt -apidocs/src/samples/db-configuration-parameters-for-datastore-version-response.json -apidocs/src/samples/db-configuration-parameters-without-datastore-version-request-json.txt -apidocs/src/samples/db-configuration-parameters-without-datastore-version-response-json.txt -apidocs/src/samples/db-configuration-parameters-without-datastore-version-response.json -apidocs/src/samples/db-configuration-update-parameters-request-json.txt -apidocs/src/samples/db-configuration-update-parameters-request.json -apidocs/src/samples/db-configuration-update-parameters-response-json.txt -apidocs/src/samples/db-create-databases-request-json.txt -apidocs/src/samples/db-create-databases-request.json -apidocs/src/samples/db-create-databases-response-json.txt -apidocs/src/samples/db-create-instance-request-json.txt -apidocs/src/samples/db-create-instance-request.json -apidocs/src/samples/db-create-instance-response-json.txt -apidocs/src/samples/db-create-instance-response.json -apidocs/src/samples/db-create-users-request-json.txt -apidocs/src/samples/db-create-users-request.json -apidocs/src/samples/db-create-users-response-json.txt -apidocs/src/samples/db-datastore-by-id-request-json.txt -apidocs/src/samples/db-datastore-by-id-response-json.txt -apidocs/src/samples/db-datastore-by-id-response.json -apidocs/src/samples/db-datastore-version-by-id-request-json.txt -apidocs/src/samples/db-datastore-version-by-id-response-json.txt -apidocs/src/samples/db-datastore-version-by-id-response.json -apidocs/src/samples/db-datastore-versions-list-request-json.txt -apidocs/src/samples/db-datastore-versions-list-response-json.txt -apidocs/src/samples/db-datastore-versions-list-response.json -apidocs/src/samples/db-datastores-list-request-json.txt -apidocs/src/samples/db-datastores-list-response-json.txt -apidocs/src/samples/db-datastores-list-response.json -apidocs/src/samples/db-delete-databases-request-json.txt -apidocs/src/samples/db-delete-databases-response-json.txt -apidocs/src/samples/db-delete-instance-request-json.txt -apidocs/src/samples/db-delete-instance-response-json.txt -apidocs/src/samples/db-delete-users-request-json.txt -apidocs/src/samples/db-delete-users-response-json.txt -apidocs/src/samples/db-disable-root-user-request-json.txt -apidocs/src/samples/db-disable-root-user-response-json.txt -apidocs/src/samples/db-enable-root-user-request-json.txt -apidocs/src/samples/db-enable-root-user-response-json.txt -apidocs/src/samples/db-enable-root-user-response.json -apidocs/src/samples/db-faults-badRequest.json -apidocs/src/samples/db-faults-instanceFault.json -apidocs/src/samples/db-faults-itemNotFound.json -apidocs/src/samples/db-flavors-by-id-request-json.txt -apidocs/src/samples/db-flavors-by-id-response-json.txt -apidocs/src/samples/db-flavors-by-id-response.json -apidocs/src/samples/db-flavors-request-json.txt -apidocs/src/samples/db-flavors-response-json.txt -apidocs/src/samples/db-flavors-response.json -apidocs/src/samples/db-get-default-instance-configuration-request-json.txt -apidocs/src/samples/db-get-default-instance-configuration-response-json.txt -apidocs/src/samples/db-get-default-instance-configuration-response.json -apidocs/src/samples/db-grant-user-access-request-json.txt -apidocs/src/samples/db-grant-user-access-request.json -apidocs/src/samples/db-grant-user-access-response-json.txt -apidocs/src/samples/db-instance-reboot-request-json.txt -apidocs/src/samples/db-instance-reboot-request.json -apidocs/src/samples/db-instance-reboot-response-json.txt -apidocs/src/samples/db-instance-resize-flavor-request-json.txt -apidocs/src/samples/db-instance-resize-flavor-request.json -apidocs/src/samples/db-instance-resize-flavor-response-json.txt -apidocs/src/samples/db-instance-resize-instance-request-json.txt -apidocs/src/samples/db-instance-resize-instance-request.json -apidocs/src/samples/db-instance-resize-instance-response-json.txt -apidocs/src/samples/db-instance-resize-volume-request-json.txt -apidocs/src/samples/db-instance-resize-volume-request.json -apidocs/src/samples/db-instance-resize-volume-response-json.txt -apidocs/src/samples/db-instance-restart-request-json.txt -apidocs/src/samples/db-instance-restart-request.json -apidocs/src/samples/db-instance-restart-response-json.txt -apidocs/src/samples/db-instance-status-detail-request-json.txt -apidocs/src/samples/db-instance-status-detail-response-json.txt -apidocs/src/samples/db-instance-status-detail-response.json -apidocs/src/samples/db-instances-index-pagination-request-json.txt -apidocs/src/samples/db-instances-index-pagination-response-json.txt -apidocs/src/samples/db-instances-index-pagination-response.json -apidocs/src/samples/db-instances-index-request-json.txt -apidocs/src/samples/db-instances-index-response-json.txt -apidocs/src/samples/db-instances-index-response.json -apidocs/src/samples/db-list-databases-pagination-request-json.txt -apidocs/src/samples/db-list-databases-pagination-response-json.txt -apidocs/src/samples/db-list-databases-pagination-response.json -apidocs/src/samples/db-list-databases-request-json.txt -apidocs/src/samples/db-list-databases-response-json.txt -apidocs/src/samples/db-list-databases-response.json -apidocs/src/samples/db-list-user-access-request-json.txt -apidocs/src/samples/db-list-user-access-response-json.txt -apidocs/src/samples/db-list-user-access-response.json -apidocs/src/samples/db-list-user-dbs-request-json.txt -apidocs/src/samples/db-list-user-dbs-response-json.txt -apidocs/src/samples/db-list-user-dbs-response.json -apidocs/src/samples/db-list-users-pagination-request-json.txt -apidocs/src/samples/db-list-users-pagination-response-json.txt -apidocs/src/samples/db-list-users-pagination-response.json -apidocs/src/samples/db-list-users-request-json.txt -apidocs/src/samples/db-list-users-response-json.txt -apidocs/src/samples/db-list-users-response.json -apidocs/src/samples/db-mgmt-get-account-details-request-json.txt -apidocs/src/samples/db-mgmt-get-account-details-response-json.txt -apidocs/src/samples/db-mgmt-get-account-details-response.json -apidocs/src/samples/db-mgmt-get-host-detail-request-json.txt -apidocs/src/samples/db-mgmt-get-host-detail-response-json.txt -apidocs/src/samples/db-mgmt-get-host-detail-response.json -apidocs/src/samples/db-mgmt-get-instance-details-request-json.txt -apidocs/src/samples/db-mgmt-get-instance-details-response-json.txt -apidocs/src/samples/db-mgmt-get-instance-details-response.json -apidocs/src/samples/db-mgmt-get-root-details-request-json.txt -apidocs/src/samples/db-mgmt-get-root-details-response-json.txt -apidocs/src/samples/db-mgmt-get-root-details-response.json -apidocs/src/samples/db-mgmt-get-storage-request-json.txt -apidocs/src/samples/db-mgmt-get-storage-response-json.txt -apidocs/src/samples/db-mgmt-get-storage-response.json -apidocs/src/samples/db-mgmt-instance-diagnostics-request-json.txt -apidocs/src/samples/db-mgmt-instance-diagnostics-response-json.txt -apidocs/src/samples/db-mgmt-instance-diagnostics-response.json -apidocs/src/samples/db-mgmt-instance-index-request-json.txt -apidocs/src/samples/db-mgmt-instance-index-response-json.txt -apidocs/src/samples/db-mgmt-instance-index-response.json -apidocs/src/samples/db-mgmt-list-accounts-request-json.txt -apidocs/src/samples/db-mgmt-list-accounts-response-json.txt -apidocs/src/samples/db-mgmt-list-accounts-response.json -apidocs/src/samples/db-mgmt-list-hosts-request-json.txt -apidocs/src/samples/db-mgmt-list-hosts-response-json.txt -apidocs/src/samples/db-mgmt-list-hosts-response.json -apidocs/src/samples/db-restore-delete-request-json.txt -apidocs/src/samples/db-restore-delete-response-json.txt -apidocs/src/samples/db-revoke-user-access-request-json.txt -apidocs/src/samples/db-revoke-user-access-response-json.txt -apidocs/src/samples/db-version-request-json.txt -apidocs/src/samples/db-version-response-json.txt -apidocs/src/samples/db-version-response.json -apidocs/src/samples/db-versions-request-json.txt -apidocs/src/samples/db-versions-response-json.txt -apidocs/src/samples/db-versions-response.json -apidocs/src/xsd/common.ent -apidocs/src/xsd/dbaas.wadl -apidocs/src/xsd/dbaas.xsd -apidocs/src/xslts/js/shjs/sh_java.js -apidocs/src/xslts/js/shjs/sh_javascript.js -apidocs/src/xslts/js/shjs/sh_main.js -apidocs/src/xslts/js/shjs/sh_xml.js -apidocs/src/xslts/js/trc/util.js -apidocs/src/xslts/js/trc/schema/controller.js -apidocs/src/xslts/js/trc/schema/layoutManager.js -apidocs/src/xslts/js/trc/schema/sampleManager.js -apidocs/src/xslts/style/schema.css -apidocs/src/xslts/style/shjs/sh_acid.css -apidocs/src/xslts/style/shjs/sh_darkblue.css -apidocs/src/xslts/style/shjs/sh_emacs.css -apidocs/src/xslts/style/shjs/sh_night.css -apidocs/src/xslts/style/shjs/sh_pablo.css -apidocs/src/xslts/style/shjs/sh_print.css -apidocs/src/xslts/style/shjs/sh_style.css -apidocs/src/xslts/style/shjs/sh_whitengrey.css -apidocs/src/xslts/xslt/.htaccess -apidocs/src/xslts/xslt/schema.xslt +api-ref/source/api-versions.inc +api-ref/source/conf.py +api-ref/source/configurations.inc +api-ref/source/database-instance-actions.inc +api-ref/source/database-instances.inc +api-ref/source/databases.inc +api-ref/source/datastores.inc +api-ref/source/flavors.inc +api-ref/source/index.rst +api-ref/source/parameters.yaml +api-ref/source/user-management.inc +api-ref/source/samples/db-attach-config-group-request-json-http.txt +api-ref/source/samples/db-attach-config-group-request.json +api-ref/source/samples/db-attach-config-group-response-json-http.txt +api-ref/source/samples/db-backup-create-incremental-request-json-http.txt +api-ref/source/samples/db-backup-create-incremental-request.json +api-ref/source/samples/db-backup-create-incremental-response-json-http.txt +api-ref/source/samples/db-backup-create-incremental-response.json +api-ref/source/samples/db-backup-create-request-json-http.txt +api-ref/source/samples/db-backup-create-request.json +api-ref/source/samples/db-backup-create-response-json-http.txt +api-ref/source/samples/db-backup-create-response.json +api-ref/source/samples/db-backup-delete-request-json-http.txt +api-ref/source/samples/db-backup-delete-response-json-http.txt +api-ref/source/samples/db-backup-get-request-json-http.txt +api-ref/source/samples/db-backup-get-response-json-http.txt +api-ref/source/samples/db-backup-get-response.json +api-ref/source/samples/db-backup-list-request-json-http.txt +api-ref/source/samples/db-backup-list-response-json-http.txt +api-ref/source/samples/db-backup-list-response.json +api-ref/source/samples/db-backup-restore-request-json-http.txt +api-ref/source/samples/db-backup-restore-request.json +api-ref/source/samples/db-backup-restore-response-json-http.txt +api-ref/source/samples/db-backup-restore-response.json +api-ref/source/samples/db-backups-by-instance-request-json-http.txt +api-ref/source/samples/db-backups-by-instance-response-json-http.txt +api-ref/source/samples/db-backups-by-instance-response.json +api-ref/source/samples/db-change-user-attributes-request-json-http.txt +api-ref/source/samples/db-change-user-attributes-request.json +api-ref/source/samples/db-change-user-attributes-response-json-http.txt +api-ref/source/samples/db-change-users-password-request-json-http.txt +api-ref/source/samples/db-change-users-password-request.json +api-ref/source/samples/db-change-users-password-response-json-http.txt +api-ref/source/samples/db-check-root-user-request-json-http.txt +api-ref/source/samples/db-check-root-user-response-json-http.txt +api-ref/source/samples/db-check-root-user-response.json +api-ref/source/samples/db-config-group-details-request-json-http.txt +api-ref/source/samples/db-config-group-details-response-json-http.txt +api-ref/source/samples/db-config-group-details-response.json +api-ref/source/samples/db-config-group-instances-request-json-http.txt +api-ref/source/samples/db-config-group-instances-response-json-http.txt +api-ref/source/samples/db-config-group-instances-response.json +api-ref/source/samples/db-configuration-attach-to-instance-request-json-http.txt +api-ref/source/samples/db-configuration-attach-to-instance-request.json +api-ref/source/samples/db-configuration-attach-to-instance-response-json-http.txt +api-ref/source/samples/db-configuration-create-request-json-http.txt +api-ref/source/samples/db-configuration-create-request.json +api-ref/source/samples/db-configuration-create-response-json-http.txt +api-ref/source/samples/db-configuration-create-response.json +api-ref/source/samples/db-configuration-delete-request-json-http.txt +api-ref/source/samples/db-configuration-delete-response-json-http.txt +api-ref/source/samples/db-configuration-detach-from-instance-request-json-http.txt +api-ref/source/samples/db-configuration-detach-from-instance-request.json +api-ref/source/samples/db-configuration-detach-from-instance-response-json-http.txt +api-ref/source/samples/db-configuration-details-request-json-http.txt +api-ref/source/samples/db-configuration-details-response-json-http.txt +api-ref/source/samples/db-configuration-details-response.json +api-ref/source/samples/db-configuration-edit-parameters-request-json-http.txt +api-ref/source/samples/db-configuration-edit-parameters-request.json +api-ref/source/samples/db-configuration-edit-parameters-response-json-http.txt +api-ref/source/samples/db-configuration-list-instances-request-json-http.txt +api-ref/source/samples/db-configuration-list-instances-response-json-http.txt +api-ref/source/samples/db-configuration-list-instances-response.json +api-ref/source/samples/db-configuration-list-request-json-http.txt +api-ref/source/samples/db-configuration-list-response-json-http.txt +api-ref/source/samples/db-configuration-list-response.json +api-ref/source/samples/db-configuration-parameter-for-datastore-version-request-json-http.txt +api-ref/source/samples/db-configuration-parameter-for-datastore-version-response-json-http.txt +api-ref/source/samples/db-configuration-parameter-for-datastore-version-response.json +api-ref/source/samples/db-configuration-parameter-without-datastore-version-request-json-http.txt +api-ref/source/samples/db-configuration-parameter-without-datastore-version-response-json-http.txt +api-ref/source/samples/db-configuration-parameter-without-datastore-version-response.json +api-ref/source/samples/db-configuration-parameters-for-datastore-version-request-json-http.txt +api-ref/source/samples/db-configuration-parameters-for-datastore-version-response-json-http.txt +api-ref/source/samples/db-configuration-parameters-for-datastore-version-response.json +api-ref/source/samples/db-configuration-parameters-without-datastore-version-request-json-http.txt +api-ref/source/samples/db-configuration-parameters-without-datastore-version-response-json-http.txt +api-ref/source/samples/db-configuration-parameters-without-datastore-version-response.json +api-ref/source/samples/db-configuration-update-parameters-request-json-http.txt +api-ref/source/samples/db-configuration-update-parameters-request.json +api-ref/source/samples/db-configuration-update-parameters-response-json-http.txt +api-ref/source/samples/db-create-config-group-request-json-http.txt +api-ref/source/samples/db-create-config-group-request.json +api-ref/source/samples/db-create-config-group-response-json-http.txt +api-ref/source/samples/db-create-config-group-response.json +api-ref/source/samples/db-create-databases-request-json-http.txt +api-ref/source/samples/db-create-databases-request.json +api-ref/source/samples/db-create-databases-response-json-http.txt +api-ref/source/samples/db-create-instance-request-json-http.txt +api-ref/source/samples/db-create-instance-request.json +api-ref/source/samples/db-create-instance-response-json-http.txt +api-ref/source/samples/db-create-instance-response.json +api-ref/source/samples/db-create-users-request-json-http.txt +api-ref/source/samples/db-create-users-request.json +api-ref/source/samples/db-create-users-response-json-http.txt +api-ref/source/samples/db-datastore-by-id-request-json-http.txt +api-ref/source/samples/db-datastore-by-id-response-json-http.txt +api-ref/source/samples/db-datastore-by-id-response.json +api-ref/source/samples/db-datastore-parameters-response.json +api-ref/source/samples/db-datastore-version-by-id-request-json-http.txt +api-ref/source/samples/db-datastore-version-by-id-response-json-http.txt +api-ref/source/samples/db-datastore-version-by-id-response.json +api-ref/source/samples/db-datastore-versions-list-request-json-http.txt +api-ref/source/samples/db-datastore-versions-list-response-json-http.txt +api-ref/source/samples/db-datastore-versions-list-response.json +api-ref/source/samples/db-datastores-list-request-json-http.txt +api-ref/source/samples/db-datastores-list-response-json-http.txt +api-ref/source/samples/db-datastores-list-response.json +api-ref/source/samples/db-delete-config-group-request-json-http.txt +api-ref/source/samples/db-delete-databases-request-json-http.txt +api-ref/source/samples/db-delete-databases-response-json-http.txt +api-ref/source/samples/db-delete-instance-request-json-http.txt +api-ref/source/samples/db-delete-instance-response-json-http.txt +api-ref/source/samples/db-delete-root-request-json-http.txt +api-ref/source/samples/db-delete-users-request-json-http.txt +api-ref/source/samples/db-delete-users-response-json-http.txt +api-ref/source/samples/db-detach-config-group-request-json-http.txt +api-ref/source/samples/db-detach-config-group-request.json +api-ref/source/samples/db-detach-config-group-response-json-http.txt +api-ref/source/samples/db-detach-replica-request-json-http.txt +api-ref/source/samples/db-detach-replica-request.json +api-ref/source/samples/db-detach-replica-response-json-http.txt +api-ref/source/samples/db-disable-root-user-request-json-http.txt +api-ref/source/samples/db-disable-root-user-response-json-http.txt +api-ref/source/samples/db-enable-root-user-request-json-http.txt +api-ref/source/samples/db-enable-root-user-response-json-http.txt +api-ref/source/samples/db-enable-root-user-response.json +api-ref/source/samples/db-faults-badRequest.json +api-ref/source/samples/db-faults-instanceFault.json +api-ref/source/samples/db-faults-itemNotFound.json +api-ref/source/samples/db-flavors-by-id-request-json-http.txt +api-ref/source/samples/db-flavors-by-id-response-json-http.txt +api-ref/source/samples/db-flavors-by-id-response.json +api-ref/source/samples/db-flavors-request-json-http.txt +api-ref/source/samples/db-flavors-response-json-http.txt +api-ref/source/samples/db-flavors-response.json +api-ref/source/samples/db-get-default-instance-configuration-request-json-http.txt +api-ref/source/samples/db-get-default-instance-configuration-response-json-http.txt +api-ref/source/samples/db-get-default-instance-configuration-response.json +api-ref/source/samples/db-grant-user-access-request-json-http.txt +api-ref/source/samples/db-grant-user-access-request.json +api-ref/source/samples/db-grant-user-access-response-json-http.txt +api-ref/source/samples/db-instance-eject-replica-request-json-http.txt +api-ref/source/samples/db-instance-eject-replica-request.json +api-ref/source/samples/db-instance-promote-replica-request-json-http.txt +api-ref/source/samples/db-instance-promote-replica-request.json +api-ref/source/samples/db-instance-reboot-request-json-http.txt +api-ref/source/samples/db-instance-reboot-request.json +api-ref/source/samples/db-instance-reboot-response-json-http.txt +api-ref/source/samples/db-instance-resize-flavor-request-json-http.txt +api-ref/source/samples/db-instance-resize-flavor-request.json +api-ref/source/samples/db-instance-resize-flavor-response-json-http.txt +api-ref/source/samples/db-instance-resize-instance-request-json-http.txt +api-ref/source/samples/db-instance-resize-instance-request.json +api-ref/source/samples/db-instance-resize-instance-response-json-http.txt +api-ref/source/samples/db-instance-resize-volume-request-json-http.txt +api-ref/source/samples/db-instance-resize-volume-request.json +api-ref/source/samples/db-instance-resize-volume-response-json-http.txt +api-ref/source/samples/db-instance-restart-request-json-http.txt +api-ref/source/samples/db-instance-restart-request.json +api-ref/source/samples/db-instance-restart-response-json-http.txt +api-ref/source/samples/db-instance-status-detail-request-json-http.txt +api-ref/source/samples/db-instance-status-detail-response-json-http.txt +api-ref/source/samples/db-instance-status-detail-response.json +api-ref/source/samples/db-instances-index-pagination-request-json-http.txt +api-ref/source/samples/db-instances-index-pagination-response-json-http.txt +api-ref/source/samples/db-instances-index-pagination-response.json +api-ref/source/samples/db-instances-index-request-json-http.txt +api-ref/source/samples/db-instances-index-response-json-http.txt +api-ref/source/samples/db-instances-index-response.json +api-ref/source/samples/db-list-cfg-defaults-request-json-http.txt +api-ref/source/samples/db-list-cfg-defaults-response-json-http.txt +api-ref/source/samples/db-list-cfg-defaults-response.json +api-ref/source/samples/db-list-cfg-groups-request-json-http.txt +api-ref/source/samples/db-list-cfg-groups-response-json-http.txt +api-ref/source/samples/db-list-cfg-groups-response.json +api-ref/source/samples/db-list-databases-pagination-request-json-http.txt +api-ref/source/samples/db-list-databases-pagination-response-json-http.txt +api-ref/source/samples/db-list-databases-pagination-response.json +api-ref/source/samples/db-list-databases-request-json-http.txt +api-ref/source/samples/db-list-databases-response-json-http.txt +api-ref/source/samples/db-list-databases-response.json +api-ref/source/samples/db-list-datastore-versions-request-json-http.txt +api-ref/source/samples/db-list-datastore-versions-response-json-http.txt +api-ref/source/samples/db-list-datastore-versions.json +api-ref/source/samples/db-list-parameters-request-json-http.txt +api-ref/source/samples/db-list-parameters-response-json-http.txt +api-ref/source/samples/db-list-parameters-response.json +api-ref/source/samples/db-list-user-access-request-json-http.txt +api-ref/source/samples/db-list-user-access-response-json-http.txt +api-ref/source/samples/db-list-user-access-response.json +api-ref/source/samples/db-list-user-dbs-request-json-http.txt +api-ref/source/samples/db-list-user-dbs-response-json-http.txt +api-ref/source/samples/db-list-user-dbs-response.json +api-ref/source/samples/db-list-users-pagination-request-json-http.txt +api-ref/source/samples/db-list-users-pagination-response-json-http.txt +api-ref/source/samples/db-list-users-pagination-response.json +api-ref/source/samples/db-list-users-request-json-http.txt +api-ref/source/samples/db-list-users-response-json-http.txt +api-ref/source/samples/db-list-users-response.json +api-ref/source/samples/db-mgmt-get-account-details-request-json-http.txt +api-ref/source/samples/db-mgmt-get-account-details-response-json-http.txt +api-ref/source/samples/db-mgmt-get-account-details-response.json +api-ref/source/samples/db-mgmt-get-host-detail-request-json-http.txt +api-ref/source/samples/db-mgmt-get-host-detail-response-json-http.txt +api-ref/source/samples/db-mgmt-get-host-detail-response.json +api-ref/source/samples/db-mgmt-get-instance-details-request-json-http.txt +api-ref/source/samples/db-mgmt-get-instance-details-response-json-http.txt +api-ref/source/samples/db-mgmt-get-instance-details-response.json +api-ref/source/samples/db-mgmt-get-root-details-request-json-http.txt +api-ref/source/samples/db-mgmt-get-root-details-response-json-http.txt +api-ref/source/samples/db-mgmt-get-root-details-response.json +api-ref/source/samples/db-mgmt-get-storage-request-json-http.txt +api-ref/source/samples/db-mgmt-get-storage-response-json-http.txt +api-ref/source/samples/db-mgmt-get-storage-response.json +api-ref/source/samples/db-mgmt-instance-diagnostics-request-json-http.txt +api-ref/source/samples/db-mgmt-instance-diagnostics-response-json-http.txt +api-ref/source/samples/db-mgmt-instance-diagnostics-response.json +api-ref/source/samples/db-mgmt-instance-index-request-json-http.txt +api-ref/source/samples/db-mgmt-instance-index-response-json-http.txt +api-ref/source/samples/db-mgmt-instance-index-response.json +api-ref/source/samples/db-mgmt-list-accounts-request-json-http.txt +api-ref/source/samples/db-mgmt-list-accounts-response-json-http.txt +api-ref/source/samples/db-mgmt-list-accounts-response.json +api-ref/source/samples/db-mgmt-list-hosts-request-json-http.txt +api-ref/source/samples/db-mgmt-list-hosts-response-json-http.txt +api-ref/source/samples/db-mgmt-list-hosts-response.json +api-ref/source/samples/db-patch-config-group-request-json-http.txt +api-ref/source/samples/db-patch-config-group-request.json +api-ref/source/samples/db-patch-config-group-response-json-http.txt +api-ref/source/samples/db-restore-delete-request-json-http.txt +api-ref/source/samples/db-restore-delete-response-json-http.txt +api-ref/source/samples/db-revoke-user-access-request-json-http.txt +api-ref/source/samples/db-revoke-user-access-response-json-http.txt +api-ref/source/samples/db-show-parameter-details-request-json-http.txt +api-ref/source/samples/db-show-parameter-details-response-json-http.txt +api-ref/source/samples/db-show-parameter-details.json +api-ref/source/samples/db-update-config-group-request-json-http.txt +api-ref/source/samples/db-update-config-group-request.json +api-ref/source/samples/db-update-config-group-response-json-http.txt +api-ref/source/samples/db-version-request-json-http.txt +api-ref/source/samples/db-version-response-json-http.txt +api-ref/source/samples/db-version-response.json +api-ref/source/samples/db-versions-request-json-http.txt +api-ref/source/samples/db-versions-response-json-http.txt +api-ref/source/samples/db-versions-response.json contrib/trove-guestagent devstack/README.rst devstack/plugin.sh @@ -272,6 +295,7 @@ etc/trove/api-paste.ini.test etc/trove/trove-conductor.conf.sample etc/trove/trove-guestagent.conf.sample +etc/trove/trove-logging-guestagent.conf etc/trove/trove-taskmanager.conf.sample etc/trove/trove.conf.sample etc/trove/trove.conf.test @@ -290,7 +314,11 @@ install-guide/source/next-steps.rst install-guide/source/verify.rst releasenotes/notes/.placeholder +releasenotes/notes/add-cassandra-log-retrieval-a295f3d0d4c56804.yaml releasenotes/notes/add-cors-support-fe3ecbecb68f7efd.yaml +releasenotes/notes/add-icmp-flag-58937cce344e77d9.yaml +releasenotes/notes/add-new-relic-license-driver-0f314edabb7561c4.yaml +releasenotes/notes/alter-user-portable-021f4b792e2c129b.yaml releasenotes/notes/cassandra-backup-and-restore-00de234de67ea5ee.yaml releasenotes/notes/cassandra-configuration-groups-e6bcf4014a79f14f.yaml releasenotes/notes/cassandra-user-functions-041abfa4f4baa591.yaml @@ -303,6 +331,7 @@ releasenotes/notes/fix-apply-configuration-on-prepare-4cff827b7f3c4d33.yaml releasenotes/notes/fix-bad-swift-endpoint-in-guestlog-05f7483509dacbbf.yaml releasenotes/notes/fix-cluster-type-error-71cd846897dfd32e.yaml +releasenotes/notes/fix-gtid-parsing-9f60ad6e9e8f173f.yaml releasenotes/notes/fix-module-apply-after-remove-97c84c30fb320a46.yaml releasenotes/notes/fix-mongo-cluster-grow-8fa4788af0ce5309.yaml releasenotes/notes/fix-mysql-replication-bf2b131994a5a772.yaml @@ -311,6 +340,8 @@ releasenotes/notes/fix_module_driver_logging-666601f411db784a.yaml releasenotes/notes/fix_notification_err_msgs-e52771108633c9cf.yaml releasenotes/notes/fixes-mariadb-config-groups-b5fa4f44a8ed7b85.yaml +releasenotes/notes/flavor-list-vcpu-817b0f5715820377.yaml +releasenotes/notes/guest-call-timeout-2781a57ca8feb89a.yaml releasenotes/notes/implement-cassandra-clustering-9f7bc3ae6817c19e.yaml releasenotes/notes/implement-cassandra-root-b0870d23dbf1a848.yaml releasenotes/notes/implement-mariadb-clustering-088ac2f6012689fb.yaml @@ -320,9 +351,11 @@ releasenotes/notes/mariadb-gtid-replication-1ea972bcfe909773.yaml releasenotes/notes/module-management-66d3979cc45ed440.yaml releasenotes/notes/mongo-cluster-grow-use-az-and-nic-values-207b041113e7b4fb.yaml +releasenotes/notes/mysql-config-preserve-types-77b970162bf6df08.yaml releasenotes/notes/mysql-root-fix-35079552e25170ca.yaml releasenotes/notes/mysql-user-list-pagination-9496c401c180f605.yaml releasenotes/notes/percona-2.3-support-2eab8f12167e44bc.yaml +releasenotes/notes/persist-error-message-fb69ddf885bcde84.yaml releasenotes/notes/pgsql-incremental-backup-acb4421f7de3ac09.yaml releasenotes/notes/postgresql-use-proper-guestagent-models-7ba601c7b4c001d6.yaml releasenotes/notes/pxc-cluster-root-enable-30c366e3b5bcda51.yaml @@ -508,6 +541,7 @@ trove/db/sqlalchemy/migrate_repo/versions/035_flavor_id_int_to_string.py trove/db/sqlalchemy/migrate_repo/versions/036_add_datastore_version_metadata.py trove/db/sqlalchemy/migrate_repo/versions/037_modules.py +trove/db/sqlalchemy/migrate_repo/versions/038_instance_faults.py trove/db/sqlalchemy/migrate_repo/versions/__init__.py trove/dns/__init__.py trove/dns/driver.py @@ -668,6 +702,7 @@ trove/guestagent/module/module_manager.py trove/guestagent/module/drivers/__init__.py trove/guestagent/module/drivers/module_driver.py +trove/guestagent/module/drivers/new_relic_license_driver.py trove/guestagent/module/drivers/ping_driver.py trove/guestagent/strategies/__init__.py trove/guestagent/strategies/backup/__init__.py @@ -678,6 +713,7 @@ trove/guestagent/strategies/backup/experimental/couchbase_impl.py trove/guestagent/strategies/backup/experimental/couchdb_impl.py trove/guestagent/strategies/backup/experimental/db2_impl.py +trove/guestagent/strategies/backup/experimental/mariadb_impl.py trove/guestagent/strategies/backup/experimental/mongo_impl.py trove/guestagent/strategies/backup/experimental/postgresql_impl.py trove/guestagent/strategies/backup/experimental/redis_impl.py @@ -697,6 +733,7 @@ trove/guestagent/strategies/restore/experimental/couchbase_impl.py trove/guestagent/strategies/restore/experimental/couchdb_impl.py trove/guestagent/strategies/restore/experimental/db2_impl.py +trove/guestagent/strategies/restore/experimental/mariadb_impl.py trove/guestagent/strategies/restore/experimental/mongo_impl.py trove/guestagent/strategies/restore/experimental/postgresql_impl.py trove/guestagent/strategies/restore/experimental/redis_impl.py @@ -827,6 +864,7 @@ trove/tests/scenario/groups/instance_actions_group.py trove/tests/scenario/groups/instance_create_group.py trove/tests/scenario/groups/instance_delete_group.py +trove/tests/scenario/groups/instance_error_create_group.py trove/tests/scenario/groups/module_group.py trove/tests/scenario/groups/negative_cluster_actions_group.py trove/tests/scenario/groups/replication_group.py @@ -855,6 +893,7 @@ trove/tests/scenario/runners/instance_actions_runners.py trove/tests/scenario/runners/instance_create_runners.py trove/tests/scenario/runners/instance_delete_runners.py +trove/tests/scenario/runners/instance_error_create_runners.py trove/tests/scenario/runners/module_runners.py trove/tests/scenario/runners/negative_cluster_actions_runners.py trove/tests/scenario/runners/replication_runners.py @@ -872,14 +911,15 @@ trove/tests/tempest/services/database/json/versions_client.py trove/tests/tempest/tests/__init__.py trove/tests/tempest/tests/api/__init__.py -trove/tests/tempest/tests/api/base.py -trove/tests/tempest/tests/api/flavors/__init__.py -trove/tests/tempest/tests/api/flavors/test_flavors.py -trove/tests/tempest/tests/api/flavors/test_flavors_negative.py -trove/tests/tempest/tests/api/limits/__init__.py -trove/tests/tempest/tests/api/limits/test_limits.py -trove/tests/tempest/tests/api/versions/__init__.py -trove/tests/tempest/tests/api/versions/test_versions.py +trove/tests/tempest/tests/api/database/__init__.py +trove/tests/tempest/tests/api/database/base.py +trove/tests/tempest/tests/api/database/flavors/__init__.py +trove/tests/tempest/tests/api/database/flavors/test_flavors.py +trove/tests/tempest/tests/api/database/flavors/test_flavors_negative.py +trove/tests/tempest/tests/api/database/limits/__init__.py +trove/tests/tempest/tests/api/database/limits/test_limits.py +trove/tests/tempest/tests/api/database/versions/__init__.py +trove/tests/tempest/tests/api/database/versions/test_versions.py trove/tests/unittests/__init__.py trove/tests/unittests/trove_testtools.py trove/tests/unittests/api/__init__.py @@ -933,6 +973,8 @@ trove/tests/unittests/db/test_migration_utils.py trove/tests/unittests/dns/__init__.py trove/tests/unittests/dns/test_designate_driver.py +trove/tests/unittests/flavor/__init__.py +trove/tests/unittests/flavor/test_flavor_views.py trove/tests/unittests/guestagent/__init__.py trove/tests/unittests/guestagent/test_agent_heartbeats_models.py trove/tests/unittests/guestagent/test_api.py