New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ability to return a JSON body from an exception #230

Merged
merged 2 commits into from Jan 24, 2016

Conversation

Projects
None yet
6 participants
@sigmavirus24
Copy link
Contributor

sigmavirus24 commented Jan 12, 2016

Closes #209

@@ -308,6 +322,9 @@ def generate_response(self, environ, start_response):
if accept and 'html' in accept or '*/*' in accept:
content_type = 'text/html'
body = self.html_body(environ)
elif accept and 'json' in accept:

This comment has been minimized.

@bertjwregeer

bertjwregeer Jan 13, 2016

Member

If you have an XHR request that also still has */* in it, this case will not get hit. Is this acceptable? Or do we want to see if JSON is listed first before checking for HTML/*/*?

@bertjwregeer

This comment has been minimized.

Copy link
Member

bertjwregeer commented Jan 13, 2016

If you could please make sure that coverage is back to 100% I will accept this PR.

@mmerickel

This comment has been minimized.

Copy link
Member

mmerickel commented Jan 13, 2016

I would really prefer a solution that parsed the accept and used best_match if we are going down this route of caring about accept.

accept = webob.accept.Accept.parse(environ.get['HTTP_ACCEPT'])
match = accept.best_match('text/html', 'application/json')
...
@bertjwregeer

This comment has been minimized.

Copy link
Member

bertjwregeer commented Jan 13, 2016

We currently already care about accept, in that it checks if HTML exists or not. Using best_match would indeed be a better solution.

@bertjwregeer

This comment has been minimized.

Copy link
Member

bertjwregeer commented Jan 13, 2016

This kind of goes hand in hand with: Pylons/pyramid#1378 in that we could use very similar to almost exactly the same code in both codebases since Pyramid's HTTPExceptions are a strict superset of the WebOb ones.

Use Accept to parse headers and find the best match
Add more tests to bring coverage back up to 100%
@sigmavirus24

This comment has been minimized.

Copy link
Contributor

sigmavirus24 commented Jan 14, 2016

@bertjwregeer I've addressed the feedback thus far. Travis is running, but just wanted to let you know this should be ready for review again (I've 100% coverage locally.)

@mmerickel

This comment has been minimized.

Copy link
Member

mmerickel commented Jan 14, 2016

Do you have a need for passing a custom json_formatter into __init__? That smells like feature creep to me.

@sigmavirus24

This comment has been minimized.

Copy link
Contributor

sigmavirus24 commented Jan 14, 2016

@mmerickel it's mostly to give people a way to change the "template" for their JSON response but I guess they can just subclass and override that? I was trying to provide functionality similar to body_template and text_template. I don't know if that's desired though.

@sigmavirus24

This comment has been minimized.

Copy link
Contributor

sigmavirus24 commented Jan 16, 2016

@mmerickel @bertjwregeer any further thoughts on json_formatter or this PR?

@bertjwregeer

This comment has been minimized.

Copy link
Member

bertjwregeer commented Jan 18, 2016

I personally don't mind adding the json_formatter. I think it might be a good idea that allows customization and would be helpful in my own projects so I don't have to sub-class anything.

@bertjwregeer

This comment has been minimized.

Copy link
Member

bertjwregeer commented Jan 18, 2016

Unless I hear a complaint I'll merge this in the next day or so.

@bertjwregeer bertjwregeer added this to the Version 1.6 milestone Jan 18, 2016

@mmerickel

This comment has been minimized.

Copy link
Member

mmerickel commented Jan 18, 2016

LGTM, I just wanted to force someone to defend it before it goes in. Conforming to the analogous text_template etc is enough for me!

@sigmavirus24

This comment has been minimized.

Copy link
Contributor

sigmavirus24 commented Jan 18, 2016

Yeah, we just can't use templates for JSON unfortunately. There are keywords to json.dumps that people may want to pass in the future too, but by default this should be enough. It might be fair, however, to ask people to subclass to pass those specifically. I don't need them, but I can imagine someone might, thoughts?

@bertjwregeer

This comment has been minimized.

Copy link
Member

bertjwregeer commented Jan 18, 2016

@sigmavirus24 If someone wants to pass particular keywords, then they can sub-class, otherwise we can keep going and ultimately WebOb will have full JSON parsing/validation/everything else ;-)

@sigmavirus24

This comment has been minimized.

Copy link
Contributor

sigmavirus24 commented Jan 18, 2016

👌

@sjmc7

This comment has been minimized.

Copy link

sjmc7 commented Jan 22, 2016

As an additional vote for this, it'd be really helpful for the openstack projects that use webob and generally work with JSON requests and responses.

@ttripp

This comment has been minimized.

Copy link

ttripp commented Jan 22, 2016

As an OpenStack developer, I can definitely agree that this would help keep us from having to re-implement this code.

bertjwregeer added a commit that referenced this pull request Jan 24, 2016

Merge pull request #230 from sigmavirus24/bug/209
Add ability to return a JSON body from an exception

@bertjwregeer bertjwregeer merged commit bbca6e8 into Pylons:master Jan 24, 2016

1 check passed

continuous-integration/travis-ci/pr The Travis CI build passed
Details
@bertjwregeer

This comment has been minimized.

Copy link
Member

bertjwregeer commented Jan 24, 2016

As an OpenStack user, I don't want you guys re-implementing this code =)

@sigmavirus24 sigmavirus24 deleted the sigmavirus24:bug/209 branch Jan 26, 2016

@sigmavirus24

This comment has been minimized.

Copy link
Contributor

sigmavirus24 commented Jan 26, 2016

Thanks @bertjwregeer! Let me know if I can help out with 1.6. It's clear a bunch of people would benefit from this. (I suspect @sjmc7 and @ttripp would also be willing to help out too.)

@bertjwregeer

This comment has been minimized.

Copy link
Member

bertjwregeer commented Jan 26, 2016

@sigmavirus24 appreciate that, I have tagged issues for 1.6 release with the milestone 1.6, they are visible here: https://github.com/Pylons/webob/milestones/Version%201.6

All of them are currently PR's that just need someone to verify A. that they fix the issue at hand, and B. that they don't cause any backwards incompatible changes (and if it does, is there a way to do it in a BW-compat way?).

Even something as simple as pulling them down, verifying they work correctly, and then adding a +1 to the PR would be very helpful!

@sjmc7

This comment has been minimized.

Copy link

sjmc7 commented Jan 28, 2016

For what it's worth, i tested our service against the current master (bbca6e8) and everything seems to work as expected, though we don't use a lot of the features in that list. In particular, the change sigmavirus24 made seems to work as expected.

@sigmavirus24

This comment has been minimized.

Copy link
Contributor

sigmavirus24 commented Jan 28, 2016

@sjmc7 can you pull the other changes in the 1.6 milestone and test your service against that all merged into master?

@sjmc7

This comment has been minimized.

Copy link

sjmc7 commented Jan 28, 2016

Yep, I pulled the current master, not just this patch.

@bertjwregeer

This comment has been minimized.

Copy link
Member

bertjwregeer commented Feb 1, 2016

The content-type returned should be based upon what the original requestor asked for. If this is not the case, then things need to be changed, but if it is correct currently and the tests are failing because WebOb is now arguably doing the correct thing, then that's something we need to take into account.

@flaper87

This comment has been minimized.

Copy link

flaper87 commented Feb 2, 2016

I didn't see other tests break other than the ones I reported. Those tests, as @sigmavirus24 mentioned are extremely specific and they could be changed. @bertjwregeer When is the release scheduled? I'd appreciate a couple of days for us to fix them before the release.

@bertjwregeer

This comment has been minimized.

Copy link
Member

bertjwregeer commented Feb 2, 2016

Is the behaviour that WebOb has correct? That's what I want to make sure of first and foremost. If you guys are expecting a different response and that is broken with the new code, why is that the case? Is the Accept matching not accurate?

openstack-gerrit added a commit to openstack/openstack that referenced this pull request Feb 3, 2016

Updated openstack/openstack
Project: openstack/glance  5e3c0cf8c9e31024d5dbde43728e3b5defb9f6a3

Change exception format checks in artifact tests

Some tests for glance artifacts make some assumptions about
exception format from WebOp library. That can cause issues if
exception format is changed (we faced with that here
Pylons/webob#230). So we need just check
if some info is present in exception message and don't make any
assumptions about exception format.

Change-Id: I284842de7786ab18bc892aa27fd7985896d4f4de

openstack-gerrit added a commit to openstack/openstack that referenced this pull request Feb 3, 2016

Updated openstack/openstack
Project: openstack/glance  5e3c0cf8c9e31024d5dbde43728e3b5defb9f6a3

Change exception format checks in artifact tests

Some tests for glance artifacts make some assumptions about
exception format from WebOp library. That can cause issues if
exception format is changed (we faced with that here
Pylons/webob#230). So we need just check
if some info is present in exception message and don't make any
assumptions about exception format.

Change-Id: I284842de7786ab18bc892aa27fd7985896d4f4de

openstack-gerrit pushed a commit to openstack/glance that referenced this pull request Feb 3, 2016

Change exception format checks in artifact tests
Some tests for glance artifacts make some assumptions about
exception format from WebOp library. That can cause issues if
exception format is changed (we faced with that here
Pylons/webob#230). So we need just check
if some info is present in exception message and don't make any
assumptions about exception format.

Change-Id: I284842de7786ab18bc892aa27fd7985896d4f4de
@bertjwregeer

This comment has been minimized.

Copy link
Member

bertjwregeer commented Feb 22, 2016

@flaper87 @sigmavirus24 @sjmc7 Are you guys okay with the changes moving forward?

I noticed that the tests that have changed were expecting HTML, when their accept headers stated they wanted JSON (which this change fixes for the better). Are we good to ship this?

@bertjwregeer bertjwregeer removed the backport label Feb 22, 2016

@flaper87

This comment has been minimized.

Copy link

flaper87 commented Feb 23, 2016

@bertjwregeer We are good to ship this, those tests have been fixed. Thanks a bunch for waiting on us and following-up! You just won a cake: 🍰

@sjmc7

This comment has been minimized.

Copy link

sjmc7 commented Feb 24, 2016

Yep, we're good with it too, thanks!

@sigmavirus24

This comment has been minimized.

Copy link
Contributor

sigmavirus24 commented Feb 24, 2016

:shipit:

@bertjwregeer

This comment has been minimized.

Copy link
Member

bertjwregeer commented Feb 24, 2016

Cheers! Will ship soon.

@ttripp

This comment has been minimized.

Copy link

ttripp commented Feb 24, 2016

\O/

From: Bert JW Regeer <notifications@github.commailto:notifications@github.com>
Reply-To: Pylons/webob <reply@reply.github.commailto:reply@reply.github.com>
Date: Wednesday, February 24, 2016 at 2:44 PM
To: Pylons/webob <webob@noreply.github.commailto:webob@noreply.github.com>
Cc: Travis Tripp <travis.tripp@hp.commailto:travis.tripp@hp.com>
Subject: Re: [webob] Add ability to return a JSON body from an exception (#230)

Cheers! Will ship soon.


Reply to this email directly or view it on GitHubhttps://github.com//pull/230#issuecomment-188493646.

openstack-gerrit added a commit to openstack/openstack that referenced this pull request Mar 30, 2016

Updated openstack/openstack
Project: openstack/python-novaclient  8c204ac1a27f7b645e151d67ee38a4c18dd2201b

Handle error response for webob>=1.6.0

WebOb change Pylons/webob#230 changed
the way in which the error response body is formatted such that
it's no longer a nested dict. So we have to handle both the
old convention of an error message key to the response body error
dict and the new way with just the error body dict.

This was reported upstream:

Pylons/webob#235

But given this was apparently implemented as a long-overdue change
in WebOb the behavior is not likely to change.

Change-Id: If653a247d842786d2824b4b3a5c0cde1383ed7ab
Closes-Bug: #1559072

openstack-gerrit pushed a commit to openstack/python-novaclient that referenced this pull request Mar 30, 2016

Handle error response for webob>=1.6.0
WebOb change Pylons/webob#230 changed
the way in which the error response body is formatted such that
it's no longer a nested dict. So we have to handle both the
old convention of an error message key to the response body error
dict and the new way with just the error body dict.

This was reported upstream:

Pylons/webob#235

But given this was apparently implemented as a long-overdue change
in WebOb the behavior is not likely to change.

Change-Id: If653a247d842786d2824b4b3a5c0cde1383ed7ab
Closes-Bug: #1559072

openstack-gerrit added a commit to openstack/openstack that referenced this pull request Mar 30, 2016

Updated openstack/openstack
Project: openstack/python-novaclient  8c204ac1a27f7b645e151d67ee38a4c18dd2201b

Handle error response for webob>=1.6.0

WebOb change Pylons/webob#230 changed
the way in which the error response body is formatted such that
it's no longer a nested dict. So we have to handle both the
old convention of an error message key to the response body error
dict and the new way with just the error body dict.

This was reported upstream:

Pylons/webob#235

But given this was apparently implemented as a long-overdue change
in WebOb the behavior is not likely to change.

Change-Id: If653a247d842786d2824b4b3a5c0cde1383ed7ab
Closes-Bug: #1559072

bertjwregeer added a commit that referenced this pull request Apr 14, 2016

Change the default returned type to text/html
Currently if WebOb encounters a */* Accept header on an exception it
will return an application/json result. This leads to some interesting
results for crawlers and others that don't send an explicit HTTP Accept
and then end up receiving JSON instead of what was previously HTML.

This breaks B/W compat with issue #230.

openstack-gerrit pushed a commit to openstack/python-novaclient that referenced this pull request Oct 5, 2016

Handle error response for webob>=1.6.0
WebOb change Pylons/webob#230 changed
the way in which the error response body is formatted such that
it's no longer a nested dict. So we have to handle both the
old convention of an error message key to the response body error
dict and the new way with just the error body dict.

This was reported upstream:

Pylons/webob#235

But given this was apparently implemented as a long-overdue change
in WebOb the behavior is not likely to change.

Change-Id: If653a247d842786d2824b4b3a5c0cde1383ed7ab
Closes-Bug: #1559072

openstack-gerrit added a commit to openstack/openstack that referenced this pull request Dec 11, 2016

Updated openstack/openstack
Project: openstack/python-cinderclient  702988b8b94bc9112f62281b5d30ad70a16e142f

Handle error response for webob>=1.6.0

WebOb change Pylons/webob#230 changed
the way in which the error response body is formatted such that
it's no longer a nested dict. So we have to handle both the
old convention of an error message key to the response body error
dict and the new way with just the error body dict.

This was reported upstream:

Pylons/webob#235

But given this was apparently implemented as a long-overdue change
in WebOb the behavior is not likely to change.Handle error response for
webob>=1.6.0

Change-Id: I7d589415aa024588faf77c8234ac026110f6c3cd
Closes-Bug: #1559072

openstack-gerrit pushed a commit to openstack/python-cinderclient that referenced this pull request Dec 11, 2016

Akira KAMIO
Handle error response for webob>=1.6.0
WebOb change Pylons/webob#230 changed
the way in which the error response body is formatted such that
it's no longer a nested dict. So we have to handle both the
old convention of an error message key to the response body error
dict and the new way with just the error body dict.

This was reported upstream:

Pylons/webob#235

But given this was apparently implemented as a long-overdue change
in WebOb the behavior is not likely to change.Handle error response for
webob>=1.6.0

Change-Id: I7d589415aa024588faf77c8234ac026110f6c3cd
Closes-Bug: #1559072

openstack-gerrit added a commit to openstack/openstack that referenced this pull request Dec 11, 2016

Updated openstack/openstack
Project: openstack/python-cinderclient  702988b8b94bc9112f62281b5d30ad70a16e142f

Handle error response for webob>=1.6.0

WebOb change Pylons/webob#230 changed
the way in which the error response body is formatted such that
it's no longer a nested dict. So we have to handle both the
old convention of an error message key to the response body error
dict and the new way with just the error body dict.

This was reported upstream:

Pylons/webob#235

But given this was apparently implemented as a long-overdue change
in WebOb the behavior is not likely to change.Handle error response for
webob>=1.6.0

Change-Id: I7d589415aa024588faf77c8234ac026110f6c3cd
Closes-Bug: #1559072

openstack-gerrit pushed a commit to openstack/python-cinderclient that referenced this pull request May 6, 2017

Handle error response for webob>=1.6.0
WebOb change Pylons/webob#230 changed
the way in which the error response body is formatted such that
it's no longer a nested dict. So we have to handle both the
old convention of an error message key to the response body error
dict and the new way with just the error body dict.

This was reported upstream:

Pylons/webob#235

But given this was apparently implemented as a long-overdue change
in WebOb the behavior is not likely to change.Handle error response for
webob>=1.6.0

Change-Id: I7d589415aa024588faf77c8234ac026110f6c3cd
Closes-Bug: #1559072
(cherry picked from commit 19befa6)

@pyup-bot pyup-bot referenced this pull request Nov 3, 2017

Closed

Update webob to 1.7.3 #434

@pyup-bot pyup-bot referenced this pull request Jan 26, 2018

Closed

Update webob to 1.7.4 #407

openstack-gerrit pushed a commit to openstack/python-troveclient that referenced this pull request Feb 12, 2018

Handle error response for webob>=1.6.0
WebOb change Pylons/webob#230 changed
the way in which the error response body is formatted such that
it's no longer a nested dict. So we have to handle both the
old convention of an error message key to the response body error
dict and the new way with just the error body dict.

This was reported upstream:
Pylons/webob#235

But given this was apparently implemented as a long-overdue change
in WebOb the behavior is not likely to change.

Change-Id: Id8bfde6277640de48768bbe5a5e4252b97253ed2
Closes-Bug: #1559072
Co-Authored-By: Matt Riedemann <mriedem@us.ibm.com>
Signed-off-by: Zhao Chao <zhaochao1984@gmail.com>

openstack-gerrit added a commit to openstack/openstack that referenced this pull request Jan 8, 2019

Update git submodules
* Update python-troveclient from branch 'master'
  - Update hacking version
    
    1. update hacking version to latest
    2. fix pep8 failed
    
    Change-Id: I49a6d46466b06bd56bed1f15632c9c80ef539b38
    
  - Merge "add python 3.6 unit test job"
  - Merge "Add Python 3.6 classifier to setup.cfg"
  - Change openstack-dev to openstack-discuss
    
    Mailinglists have been updated. Openstack-discuss replaces openstack-dev.
    
    Change-Id: Ic6ce8f7fad2375b37c0fae477ca43803ff907280
    
  - Add Python 3.6 classifier to setup.cfg
    
    Change-Id: Id9bd181ef7d76f228484e0f610e31904eca52b8a
    
  - add python 3.6 unit test job
    
    This is a mechanically generated patch to add a unit test job running
    under Python 3.6 as part of the python3-first goal.
    
    See the python3-first goal document for details:
    https://governance.openstack.org/tc/goals/stein/python3-first.html
    
    Change-Id: I72d4101d9edb049b58f5ce662160f9629dbf1665
    Story: #2002586
    
  - Add python3 compatibility for guest logs features
    
    During working with python3-first goals, I have notticed the
    log_generator and log_save methods was non compliance with python3.
    
    This is what doesn't appears in integration tests because we execute
    only trove-functional-mysql job which doesn't covers guest-log tests.
    
    In separate change I will extend zull definition by scenario tests to
    avoid similar issues in future.
    
    Change-Id: If85dff57afe110991553d510c6af4468a6781f64
    Signed-off-by: Marcin Piwowarczyk <m.piwowarczy@samsung.com>
    
  - Add scenario tests to gate and check pipeline
    
    Current functional tests executed via trovestack doesn't cover all
    integration tests scenarios.
    
    This change extends gate and check pipelines by
    trove-scenario-mysql-single job.
    
    Change-Id: I04c53c47b078f4006397f503a58b85ba868ecaac
    Signed-off-by: Marcin Piwowarczyk <m.piwowarczy@samsung.com>
    
  - Update min tox version to 2.0
    
    The commands used by constraints need at least tox 2.0.  Update to
    reflect reality, which should help with local running of constraints
    targets.
    
    Change-Id: I8a8766706f60a75c546fa338943630a28f3670f2
    
  - Merge "Add detailed list for instances"
  - Add detailed list for instances
    
    Currently, listing instances only allows to get basic information about
    entities. To get the details, one need to query instance "show" endpoint
    for each instance separately. This is inefficient and exposes API to a
    heavier load.
    
    There are use cases in which we want to obtain detailed information
    about all instances. In particular, in services integrating with Trove.
    For example, Vitrage project requires this information to build vertices
    and edges in the resource graph for RCA analysis.
    
    This change extends Trove client by optional parameter allowing user  to
    specify whether API should include more instance details in the
    response.
    
    Change-Id: Iecea2f711a3e23fd63167beb6cab4cecc63bcabe
    Signed-off-by: Bartosz Zurkowski <b.zurkowski@samsung.com>
    
  - Don't quote {posargs} in tox.ini
    
    Quotes around {posargs} cause the entire string to be combined into one
    arg that gets passed to stestr. This prevents passing multiple args
    (e.g. '--concurrency=16 some-regex')
    
    Change-Id: Ieeaa82bc6fb472490d1806c41cbffac130c0d23a
    
  - Fix wrong keyword arguments
    
    Currently 'openstack database flavor list' command fails when using
    '--datastore-type' and '--datastore-version-id' options. This change
    fixes the issue by correcting keyword arguments.
    
    This change also adds a test case of listing flavors with the optional
    arguments.
    
    Change-Id: I37be4911d4dda1529e2550344a912e0aa3c50558
    Closes-Bug: #1794663
    
  - Merge "Replace assertRaisesRegexp with assertRaisesRegex"
  - Merge "Add release note link in README"
  - Merge "Cleanup zuul.yaml"
  - Merge "add python 3.6 unit test job"
  - Merge "switch documentation job to new PTI"
  - Merge "import zuul job settings from project-config"
  - Cleanup zuul.yaml
    
    Small cleanups:
    * Sort list of templates alphabetically
    * Use lower-constraints template instead of individual jobs
    
    Change-Id: Ic9246644ad61b300cae2e5119a056301f4e3263f
    
  - Merge "Fix python3 compatibility issues"
  - add python 3.6 unit test job
    
    This is a mechanically generated patch to add a unit test job running
    under Python 3.6 as part of the python3-first goal.
    
    See the python3-first goal document for details:
    https://governance.openstack.org/tc/goals/stein/python3-first.html
    
    Change-Id: Ieafc9bd8878108b48aacfa8447977d80756389fb
    Story: #2002586
    Task: #24342
    
  - switch documentation job to new PTI
    
    This is a mechanically generated patch to switch the documentation
    jobs to use the new PTI versions of the jobs as part of the
    python3-first goal.
    
    See the python3-first goal document for details:
    https://governance.openstack.org/tc/goals/stein/python3-first.html
    
    Change-Id: Id74094be3d2ff577433cc3d431141d42e7827dc3
    Story: #2002586
    Task: #24342
    
  - import zuul job settings from project-config
    
    This is a mechanically generated patch to complete step 1 of moving
    the zuul job settings out of project-config and into each project
    repository.
    
    Because there will be a separate patch on each branch, the branch
    specifiers for branch-specific jobs have been removed.
    
    Because this patch is generated by a script, there may be some
    cosmetic changes to the layout of the YAML file(s) as the contents are
    normalized.
    
    See the python3-first goal document for details:
    https://governance.openstack.org/tc/goals/stein/python3-first.html
    
    Change-Id: I9a295f2773fda26ccb9707360129a9d1c618ed7f
    Story: #2002586
    Task: #24342
    
  - Fix python3 compatibility issues
    
    While executing functional tests in trove project, with baseptyhon
    python3 in change [1], there appears few incompatibilities
    in troveclient.
    
    All of them are directly related to differences in PY3 version.
    
    This change removes these issues and will allow to execute functional
    tests seamlessly.
    
    Change details:
      * troveclient/compat/base.py - dict.iteritems was removed in PY3
        because dict.items now does the thing dict.iteritems did in PY2
      * troveclient/compat/client.py - json.loads expects string, and
        PY3 doesnt convert bytes to string. We have to use explicity call
        decode() which will decode given bytes to string
      * troveclient/apiclient/base.py - to avoid infinite recursion
        exception raised when pickling class attributes
    
    [1] I9ee34642c700d1e6ba9c2f3891b7fa1f7f7e1e1d
    
    Change-Id: I8989fd4798e80eae27408017e1543819a68b4ab1
    Signed-off-by: Marcin Piwowarczyk <m.piwowarczy@samsung.com>
    
  - Replace assertRaisesRegexp with assertRaisesRegex
    
    This replaces the deprecated (in python 3.2) unittest.TestCase method
    assertRaisesRegexp() with assertRaisesRegex().
    
    Change-Id: Ib260a6549a7a957fc1b91b89156a676922142b04
    Signed-off-by: Chuck Short <chucks@redhat.com>
    
  - Sync two parameters of cluster-create to OSC
    
    The previous patches have add configuration and extended_properties
    to "trove cluster-create"[1][2], this commit add the two paramenters
    to OSC, user can pass configuration and extended_properties during
    "openstack database cluster create".
    
    [1] https://review.openstack.org/#/c/583125/
    [2] https://review.openstack.org/#/c/589047/
    
    Change-Id: Ic8e3ba4e92d3b65fa65875675f58eead5827976a
    Signed-off-by: zhanggang <zhanggang@cmss.chinamobile.com>
    
  - Merge "Update reno for stable/rocky"
  - Merge "Support configuration groups for clusters"
  - Update reno for stable/rocky
    
    Change-Id: Ic360311c1c6897e60c9d0619b49fc4fc093b23aa
    
  - Support configuration groups for clusters
    
    Handles API part implemented in change:
    I7c0a22c6a0287128d0c37e100589c78173fd9c1a
    
    So far passing configuration group was possible only for single instance
    deployment.
    
    As the trove api now already supports configuration attach and detach
    for clusters, we are able to handle it in client.
    
    Configuration will be applied to each cluster instance.
    
    Partially implements: blueprint cluster-configuration-groups
    Change-Id: Ic0840c995cbc34203c76494d7ba522f3e17141a7
    Signed-off-by: Marcin Piwowarczyk <m.piwowarczy@samsung.com>
    
  - Merge "Remove PyPI downloads"
  - Merge "Switch to stestr"
  - Merge "Add extended properties support for mongo cluster."
  - Add extended properties support for mongo cluster.
    
    User can specify the number and volume of mongos/configserver with
    extended_properties argument when creating mongodb. Currently,
    the supported parameters are, num_configsvr, num_mongos,
    configsvr_volume_size, configsvr_volume_type, mongos_volume_size
    and mongos_volume_type.
    
    Change-Id: I35406f9967ce00a51b320eda37572e96228b209d
    Signed-off-by: zhanggang <zhanggang@cmss.chinamobile.com>
    
  - Switch to stestr
    
    According to Openstack summit session [1],
    stestr is maintained project to which all Openstack projects should migrate.
    Let's switch to stestr as other projects have already moved to it.
    
    [1] https://etherpad.openstack.org/p/YVR-python-pti
    
    Change-Id: I9bfb80f2556ca7c801dde69d1685751169e25307
    
  - Merge "Add promote-to-replica-source to OSC"
  - Merge "Add execution-delete to OSC"
  - Merge "Add configuration-default to OSC"
  - Add configuration-default to OSC
    
    This change adds database support to the python-openstackclient
    project for the configuration-default command.
    
    The trove command configuration-default is now:
        openstack database configuration default
    
    Change-Id: I9403df629e893bb1c4d75566cffd3d49697a543d
    Partially-Implements: blueprint trove-support-in-python-openstackclient
    
  - Add detach-replica to OSC
    
    This change adds database support to the python-openstackclient
    project for the detach-replica command.
    
    The trove command detach-replica is now:
        openstack database instance detach replica
    
    Change-Id: Ia6034eccbd3490696270d44d00966c3da94b3999
    Partially-Implements: blueprint trove-support-in-python-openstackclient
    
  - Add execution-delete to OSC
    
    This change adds database support to the python-openstackclient
    project for the execution-delete command.
    
    The trove command execution-delete is now:
        openstack database backup execution delete
    
    Change-Id: I9934a047d48daed53567b59bb51a2eab4d6e37b5
    Partially-Implements: blueprint trove-support-in-python-openstackclient
    
  - Add promote-to-replica-source to OSC
    
    This change adds database support to the python-openstackclient
    project for the promote-to-replica-source command.
    
    The trove command promote-to-replica-source is now:
        openstack database instance promote to replica source
    
    Change-Id: I0009b3e1074ddabaed6b02f5578f28cffc995b30
    Partially-Implements: blueprint trove-support-in-python-openstackclient
    
  - Merge "Add log-list to OSC"
  - Merge "Add configuration-instances to OSC"
  - Merge "Add eject-replica-source to OSC"
  - Add log-list to OSC
    
    This change adds database support to the python-openstackclient
    project for the log-list command.
    
    The trove command log-list is now:
        openstack database log list
    
    Change-Id: If048a653df01244882a451e3fddf28a8faac59f6
    Partially-Implements: blueprint trove-support-in-python-openstackclient
    
  - Merge "Replace 'raise StopIteration' with 'return'"
  - Add eject-replica-source to OSC
    
    This change adds database support to the python-openstackclient
    project for the eject-replica-source command.
    
    The trove command eject-replica-source is now:
        openstack database instance eject replica source
    
    Change-Id: I674e78e310b2953b28d0829cbe6fda62c00b6ea8
    Partially-Implements: blueprint trove-support-in-python-openstackclient
    
  - Merge "fix tox python3 overrides"
  - Merge "Migrate to Zuul v3 native job definitions"
  - Add configuration-instances to OSC
    
    This change adds database support to the python-openstackclient
    project for the configuration-instances command.
    
    The trove command configuration-instances is now:
        openstack database configuration instances
    
    Change-Id: I4ad52cc8772534c95b708b49d018f4b2e35d6f86
    Partially-Implements: blueprint trove-support-in-python-openstackclient
    
  - fix tox python3 overrides
    
    We want to default to running all tox environments under python 3, so
    set the basepython value in each environment.
    
    We do not want to specify a minor version number, because we do not
    want to have to update the file every time we upgrade python.
    
    We do not want to set the override once in testenv, because that
    breaks the more specific versions used in default environments like
    py35 and py36.
    
    Change-Id: I3868de365369664b3689582cc9d25f3228e5dbb7
    Signed-off-by: Doug Hellmann <doug@doughellmann.com>
    
  - Correctly mocking builtin open in test_v1_shell
    
    There's now a seperate module 'builtins' from python-future(this package
    is now installed by stestr, and stestr in required by oslotest-3.6.0),
    so under Python 2.x 'builtins' is also imported as a module and
    'bultins.open' is mocked instead of '__builtin__.open'. And according to
    the Mock document, we should always patch the object where it's looked
    up, so only necessary mocking is made in this patch.
    
    Change-Id: I57ea61cefd3b01b19475b0fa7e16f716eaaa14e6
    Signed-off-by: Zhao Chao <zhaochao1984@gmail.com>
    
  - Replace 'raise StopIteration' with 'return'
    
    With PEP 479, the behaviour of StopIteration is changing. Raising it to
    stop a generator is considered incorrect and from Python 3.7 this will
    cause a RuntimeError. The PEP recommends using the return statement.
    
    More details: https://www.python.org/dev/peps/pep-0479/#examples-of-breakage
    
    Change-Id: If53f0f4c313a699a4036838ab6035fffa931931b
    
  - Add release note link in README
    
    Change-Id: I49e0e59e7666a444925e9a48bb02b1517db6d51c
    
  - Merge "Update the troveclient's README."
  - Merge "Add cluster-modules to OSC"
  - Add cluster-modules to OSC
    
    This change adds database support to the python-openstackclient
    project for the cluster-modules command.
    
    The trove command cluster-modules is now:
        openstack database cluster modules
    
    Change-Id: Ib16578de1520163e9b9bc6894a079e8f0fcef37b
    Partially-Implements: blueprint trove-support-in-python-openstackclient
    
  - Update the troveclient's README.
    
    Change the display of documentation and bugs, update some url from
    http to https
    
    Change-Id: Iab61ffabfa00ef1d265c6ea84ac0e863448bc829
    Signed-off-by: zhanggang <zhanggang@cmss.chinamobile.com>
    
  - Remove PyPI downloads
    
    According to official site,
    https://packaging.python.org/guides/analyzing-pypi-package-downloads/
    PyPI package download statistics is no longer maintained and thus
    should be removed.
    
    Change-Id: Idefa586d3b2ff48d1245226588fa27923b0a0734
    
  - Trivial: Update pypi url to new url
    
    Pypi url changed from [1] to [2]
    
    [1] https://pypi.python.org/pypi/<package>
    [2] https://pypi.org/project/<package>
    
    Change-Id: Ie129cd43876313849985ce757be7f3487b4f9465
    
  - Follow the new PTI for document build
    
    - Follow new PTI for docs build
    - Add sphinxcontrib.apidoc to replace pbr autodoc
    
    REF:
    https://governance.openstack.org/tc/reference/project-testing-interface.html
    http://lists.openstack.org/pipermail/openstack-dev/2017-December/125710.html
    http://lists.openstack.org/pipermail/openstack-dev/2018-March/128594.html
    
    Change-Id: I078e2ed32da04303203d6c2a3e498f82b9a15939
    
  - Migrate to Zuul v3 native job definitions
    
    This patch migrate python-troveclient-tempest-neutron-src to a Zuul v3
    native jobs, following the documents below:
    https://docs.openstack.org/infra/manual/zuulv3.html
    https://docs.openstack.org/devstack/latest/zuul_ci_jobs_migration.html
    
    Change-Id: Id054e38ea1ee93033721f1627e55add9dca55118
    Signed-off-by: Zhao Chao <zhaochao1984@gmail.com>
    
  - Merge "Change testenv from py34 to py35"
  - Change testenv from py34 to py35
    
    - The Zuul gate currently only support py35.
    - In setup.cfg, the project said that it support
    Programming Language :: Python :: 3.5.
    
    Therefor, this patch changes py34 to py35.
    
    Change-Id: Iaad9bf41e3c8a8915c06ff039e570a2cc41ca2a1
    
  - add lower-constraints job
    
    Create a tox environment for running the unit tests against the lower
    bounds of the dependencies.
    
    Create a lower-constraints.txt to be used to enforce the lower bounds
    in those tests.
    
    Add openstack-tox-lower-constraints job to the zuul configuration.
    
    See http://lists.openstack.org/pipermail/openstack-dev/2018-March/128352.html
    for more details.
    
    About PrettyTable requirement:
    The minimum version of PrettyTable is not correct in requirements.txt,
    which should be 0.7.2 according to the unittests(before 0.7.2, if the
    table is empty, i.e. no rows in the table, PrettyTable won't print the
    headers and borders, this is changed during 0.7.2)
    
    Co-Authored-By: Zhao Chao <zhaochao1984@gmail.com>
    Change-Id: Ia9cadcbc2bc9aa2864fe47040dfe7be8ae286b98
    Depends-On: https://review.openstack.org/555034
    Signed-off-by: Doug Hellmann <doug@doughellmann.com>
    
  - Updated from global requirements
    
    Change-Id: I5428b7f4f4f57511a6f60e654811b66152119ee4
    
  - Updated from global requirements
    
    Change-Id: I2d9b7ccba2d1a57f10988488f5899f2f5e6d6bae
    
  - Merge "Fix invalid mock in OSC cluster creating unittest"
  - Merge "Add cluster-grow and cluster-shrink to OSC"
  - Merge "Clean imports in code"
  - Clean imports in code
    
    In some part in the code we import objects. In the Openstack style guidelines
    they recommend to import only modules. [1]: "Do not import objects, only modules".
    
    [1] https://docs.openstack.org/hacking/0.10.3/
    
    Change-Id: I8dd5396ab604013639a0b626ce3ecd3e3fad12e8
    
  - Updated from global requirements
    
    Change-Id: Ia83b80d03bd227522d29f743eb48a270048cc84c
    
  - Fix invalid mock in OSC cluster creating unittest
    
    As '_parse_instance_options' is imported into database_clusters, mocking
    destination should be the database_clusters module, not the original
    troveclient.v1.shell.
    
    The reason this test passed before this patch is, the return value of
    '_parse_instance_options' is not checked, i.e. the mock object is also
    useless. This patch also checks how troveclient.v1.clusters.create is
    called to ensure '_parse_instance_options' is correctly mocked.
    
    Change-Id: I903a3b9565e4044c33401a6abcc47d50a5a2567f
    Signed-off-by: Zhao Chao <zhaochao1984@gmail.com>
    
  - Add cluster-grow and cluster-shrink to OSC
    
    This change adds database support to python-openstackclient
    project for the cluster-grow and cluster-shrink commands.
    
    The trove command cluster-grow is now:
        openstack database cluster grow
    The trove command cluster-shrink is now:
        openstack database cluster shrink
    
    Change-Id: I449e7f7d841ea266611ff79f8a41f6e730fced3c
    Partially-Implements: blueprint trove-support-in-python-openstackclient
    Signed-off-by: Zhao Chao <zhaochao1984@gmail.com>
    
  - Handle error response for webob>=1.6.0
    
    WebOb change https://github.com/Pylons/webob/pull/230 changed
    the way in which the error response body is formatted such that
    it's no longer a nested dict. So we have to handle both the
    old convention of an error message key to the response body error
    dict and the new way with just the error body dict.
    
    This was reported upstream:
    https://github.com/Pylons/webob/issues/235
    
    But given this was apparently implemented as a long-overdue change
    in WebOb the behavior is not likely to change.
    
    Change-Id: Id8bfde6277640de48768bbe5a5e4252b97253ed2
    Closes-Bug: #1559072
    Co-Authored-By: Matt Riedemann <mriedem@us.ibm.com>
    Signed-off-by: Zhao Chao <zhaochao1984@gmail.com>
    
  - Update reno for stable/queens
    
    Change-Id: Iab7543eb68b6e9f6179da98ca0869e65776f1044
    
  - Updated from global requirements
    
    Change-Id: I3e068f6888e7be53645fea5d31e983197b212a5d
    
  - Merge "Fix log-enable high priority error"
  - Merge "Remove now obsolete Zuul job name"
  - Merge "Updated from global requirements"
  - Merge "Updated from global requirements"
  - Fix log-enable high priority error
    
    1. Modify setup.cfg to make command openstack database log enable run
    correctlly. class EnableDatabaseInstanceLog should be in database_instances,
    not in database_limits. This is a HIGH priority error.
    
    2. Originally, trove log-enable will return a log info when execute successfully.
    This change makes OSC log_enable acts like the origin troveclient enable_log.
    
    Change-Id: I68c5ef451c8e6c7fb189d6270bad002da7ffc9a6
    
  - Add 'update' command to OSC
    
    This change adds database support to the python-openstackclient
    project for the 'update' command.
    
    The trove command update is now:
        openstack database instance update
    
    Change-Id: I426c892540f82bc19b7b28d7845a2f6699c3f526
    Partially-Implements: blueprint trove-support-in-python-openstackclient
    Signed-off-by: Zhao Chao <zhaochao1984@gmail.com>
    
  - Remove now obsolete Zuul job name
    
    Remove the now obsolete Zuul job name, all users have been renamed.
    
    Change-Id: I7d7cbb6b6cc6dd63c867114df52582db1bcec05f
    Depends-On: I2dd2075e41680d7b85d574575a19531599dabf5e
    
  - Rename zuul v3 job
    
    Rename job to follow naming conventions for a shared global namespace:
    https://docs.openstack.org/infra/manual/drivers.html#consistent-naming-for-jobs-with-zuul-v3
    
    Also, remove name from project stanza, it's not needed for in-tree zuul
    files anymore.
    
    Keep old name to allow renaming, a followup will remove it.
    
    Needed-By: I2dd2075e41680d7b85d574575a19531599dabf5e
    Change-Id: Id2aed659c1fcb7333b7efa4dc0a019d21bdcd51a
    
  - Add restart to OSC
    
    This change adds database support to the python-openstackclient
    project for the restart command
    
    The trove command restart is now:
        openstack database instance restart
    
    Change-Id: I24eeb001d27eae39be5c33650e9bc04287053c8c
    Partially-Implements: blueprint trove-support-in-python-openstackclient
    
  - Add log-enable to OSC
    
    This change adds database support to the python-openstackclient
    project for the log-enable command
    
    The trove command log-enable is now:
        openstack database log enable
    
    Change-Id: Ia5bb395264946f79673970336e4c1f23857bb77d
    Partially-Implements: blueprint trove-support-in-python-openstackclient
    
  - Merge "Add force-delete to OSC"
  - Merge "Add quota commands to OSC"
  - Add force-delete to OSC
    
    This change adds database support for the python-openstackclient
    project for the force-delete and cluster-force-delete commands.
    
    The trove command force-delete is now:
        openstack database instance force delete
    The trove command cluster-force-delete is now:
        openstack database cluster force delete
    
    Change-Id: I919678ca6b06d3b5762eac1990cc1fbf0e149d7c
    Partially-Implements: blueprint trove-support-in-python-openstackclient
    Signed-off-by: Zhao Chao <zhaochao1984@gmail.com>
    
  - Add resize-volume to OSC
    
    This change adds database support to the python-openstackclient
    project for the resize-volume command
    
    The trove command resize-volume is now:
        openstack database instance resize volume
    
    Change-Id: If2413a605d294db0b0ee9c7aa49fbb1c929ebcd0
    Partially-Implements: blueprint trove-support-in-python-openstackclient
    
  - Add quota commands to OSC
    
    This change adds database support for the python-openstackclient
    project for the quota-show and quota-update commands.
    
    The trove command quota-show is now:
        openstack database quota show
    The trove command quota-update is now:
        openstack database quota update
    
    Change-Id: I989b360fd358004e1a2378bdc3a573450baff2f3
    Partially-Implements: blueprint trove-support-in-python-openstackclient
    Signed-off-by: Zhao Chao <zhaochao1984@gmail.com>
    
  - Add upgrade to OSC
    
    This change adds database support for the python-openstackclient
    project for the upgrade and cluster-upgrade commands.
    
    The trove command upgrade is now:
        openstack database instance upgrade
    The trove command cluster-upgrade is now:
        openstack database cluster upgrade
    
    Change-Id: Ic416d476c645fa3c697881fb001d512ed3d25d2b
    Partially-Implements: blueprint trove-support-in-python-openstackclient
    Signed-off-by: Zhao Chao <zhaochao1984@gmail.com>
    
  - Merge "Add cluster-instances to OSC"
  - Merge "Add resize-instance to OSC"
  - Add resize-instance to OSC
    
    This change adds database support to the python-openstackclient
    project for the resize-instance command
    
    The trove command resize-instance is now:
        openstack database instance resize flavor
    
    Change-Id: I58f8a6ebf8f715c5cc67ce67a36f87d720056ffe
    Partially-Implements: blueprint trove-support-in-python-openstackclient
    
  - Add cluster-instances to OSC
    
    This change adds database support for the python-openstackclient
    project for the cluster-instances command.
    
    The trove command cluster-instances is now:
        openstack database cluster list instances
    
    Change-Id: Ifcbb0a0374d4b2918ee22b85a0733c8bbbf21497
    Partially-Implements: blueprint trove-support-in-python-openstackclient
    Signed-off-by: Zhao Chao <zhaochao1984@gmail.com>
    
  - Updated from global requirements
    
    Change-Id: Ia6b449d83d44d34f26d32a8071afa4386fd50321
    I941090320ec464c2f61cae4eb80979542261bb49
    
  - Merge "Fix show instance with integer name NotFound"
  - Updated from global requirements
    
    Change-Id: I10be649c8683405b652067547ab39ec16e755da3
    I941090320ec464c2f61cae4eb80979542261bb49
    Ia6b449d83d44d34f26d32a8071afa4386fd50321
    
  - Fix show instance with integer name NotFound
    
    Fix trove cli 'show' instance with integer name error
    
    Change-Id: Ic6a943b4d5980017915dd2c0361636877376c5cb
    Closes-bug: #1740015
    
  - Updated from global requirements
    
    Change-Id: I941090320ec464c2f61cae4eb80979542261bb49
    
  - Add root-disable to OSC
    
    This change adds database support for the python-openstackclient
    project for the root-disable command.
    
    The trove command root-disable is now:
        openstack database root disable
    
    Change-Id: I51d351174d6bf36948eb7e48de0aa6509c563738
    Partially-Implements: blueprint trove-support-in-python-openstackclient
    Signed-off-by: Zhao Chao <zhaochao1984@gmail.com>
    
  - Add root-show to OSC
    
    This change adds database support for the python-openstackclient
    project for the root-show command.
    
    The trove command root-show is now:
        openstack database root show
    
    Change-Id: I621f41d0c920306fed5502f30e1de3806b911929
    Partially-Implements: blueprint trove-support-in-python-openstackclient
    Signed-off-by: Zhao Chao <zhaochao1984@gmail.com>
    
  - Add root-enable to OSC
    
    This change adds database support for the python-openstackclient
    project for the root-enable command.
    
    The trove command root-enable is now:
        openstack database root enable
    
    Change-Id: I121dbe09bc10c57358c091e1eb882c816df6d4b2
    Partially-Implements: blueprint trove-support-in-python-openstackclient
    Signed-off-by: Zhao Chao <zhaochao1984@gmail.com>
    
  - Merge "Add user-update-attributes to OSC"
  - Merge "Add configuration-attach/detach to OSC"
  - Merge "Avoid tox_install.sh for constraints support"
  - Merge "Consume new trove tempest plugin"
  - Merge "Add reset-status to OSC"
  - Add configuration-attach/detach to OSC
    
    This change adds database support to the python-openstackclient
    project for the configuration-attach/detach command.
    
    The trove command configuration-attach is now:
        openstack database configuration attach
    The trove command configuration-detach is now:
        openstack database configuration detach
    Partially-Implements: blueprint trove-support-in-python-openstackclient
    
    Change-Id: I03c71f6828ff7af8f9caf5c6b383e5e875f348c3
    
  - Add reset-status to OSC
    
    This change adds database support to the python-openstackclient
    project for the cluster-reset-status and reset-status command.
    
    The trove command cluster-reset-status is now:
        openstack database cluster reset status
    The trove command reset-status is now:
        openstack database instance reset status
    
    Change-Id: I8945327d244bfd2a9afe7febb7179467a8be9bd0
    Partially-Implements: blueprint trove-support-in-python-openstackclient
    
  - Merge "Make OSC user list and show support instance name"
  - Add user-update-attributes to OSC
    
    This change adds database support to the python-openstackclient
    project for the user-update-attributes command.
    
    The trove command user-update-attributes is now:
        openstack database user update attributes
    
    Change-Id: I2acc85809cca4595c03a3d4252643a7806d5d791
    Partially-Implements: blueprint trove-support-in-python-openstackclient
    
  - Merge "Fix print_list label name in troveclient/utils.py"
  - Merge "Fix error with  configuration-parameter-show"
  - Merge "Add backup-list-instance to OSC"
  - Merge "Add configuration-create to OSC"
  - Merge "Add database-create to OSC"
  - Consume new trove tempest plugin
    
    Depends-On: I59aafa0ec978033ba4add2bc2a2144d177afb9ac
    Change-Id: Icf1384bb5d11b3a22d023f5df76de7bffc198656
    
  - Merge "Add user access related to OSC"
  - Merge "Add create to OSC"
  - Merge "Add cluster-create to OSC"
  - Add user access related to OSC
    
    This change adds database support to the python-openstackclient
    project for the user access related command.
    
    The trove command user-grant-access is now:
        openstack database user grant access
    
    The trove command user-revoke-access is now:
        openstack database user revoke access
    
    The trove command user-show-access is now:
        openstack database user show access
    
    Change-Id: Ifb4f607d37aa2616b81afd53e35b18dd6e5ff8f1
    Partially-Implements: blueprint trove-support-in-python-openstackclient
    
  - Add cluster-create to OSC
    
    This change adds database support to the python-openstackclient
    project for the cluster-create command.
    
    The trove command cluster-create is now:
        openstack database cluster create
    
    Change-Id: Iff5557411e498a1657e2f0f60fc7c46e16a42f2a
    Partially-Implements: blueprint trove-support-in-python-openstackclient
    
  - Add backup-list-instance to OSC
    
    This change adds database support to the python-openstackclient
    project for the backup-list-instance command.
    
    The trove command backup-list-instance is now:
        openstack database backup list instance
    
    Change-Id: I383cfe0bac54051641fe0589057c24e7d885f5c1
    Partially-Implements: blueprint trove-support-in-python-openstackclient
    
  - Merge "Add backup-create to OSC"
  - Add configuration-create to OSC
    
    This change adds database support to the python-openstackclient
    project for the configuration-create command.
    
    The trove command configuration-create is now:
        openstack database configuration create
    
    Change-Id: I5aadb88860d0d69c8e2b4b78b5fb0dca2eba031f
    Partially-Implements: blueprint trove-support-in-python-openstackclient
    
  - Add create to OSC
    
    This change adds database support to the python-openstackclient
    project for the create command.
    
    The trove command create is now:
        openstack database instance create
    
    Change-Id: Icab8761a35a4cbc2f7b5f845eb1da917675eb98d
    Partially-Implements: blueprint trove-support-in-python-openstackclient
    
  - Merge "Add configuration-delete to OSC"
  - Add backup-create to OSC
    
    This change adds database support to the python-openstackclient
    project for the backup-create command.
    
    The trove command backup-create is now:
        openstack database backup create
    
    Change-Id: I0dedce04efa9d2af4455bb6a94a96b6cbfc77bab
    Partially-Implements: blueprint trove-support-in-python-openstackclient
    
  - Add database-create to OSC
    
    This change adds database support to the python-openstackclient
    project for the database-create command.
    
    The trove command database-create is now:
        openstack database db create
    
    Change-Id: I6ef3a6f61be4d4ec94d8b3d9edd09398ac8d6939
    Partially-Implements: blueprint trove-support-in-python-openstackclient
    
  - Merge "Add user-create to OSC"
  - Merge "Updated from global requirements"
  - Fix print_list label name in troveclient/utils.py
    
    The output of list make nice labels from fields. Fisrt, replace
    underscore with space. Then, replace "id" with "ID". Finally,
    capitalize each word. This works fine for "*_id"(for exmaple,
    "flavor_id" will be replaced to "Flavor ID"), but when a word
    has a "id" inside, it will be wrong. For example, "cidr"
    will be replaced to "CIDr", actually it should be "Cidr".
    
    This change fix the problem, only "id" after a underscore will be
    replaced to "ID".
    
    Change-Id: I8e357c946b21dc6f6c6c79d78a45f23b440a57da
    
  - Add user-create to OSC
    
    This change adds database support to the python-openstackclient
    project for the user-create command.
    
    The trove command user-create is now:
        openstack database user create
    
    Change-Id: I325b87225260ed19b787b99e6190503b66f5949c
    Partially-Implements: blueprint trove-support-in-python-openstackclient
    
  - Make OSC user list and show support instance name
    
    Like trove user-list/user-show support parameter
    instance with name or ID.
    
    Change-Id: Ia83451b943c5ea959eeba2b555d04cbd87e25cdc
    
  - Merge "Use ID instead of Name in secgroup_delete_rule"
  - Fix error with  configuration-parameter-show
    
    According bug description, there will be an error when
    use  configuration-parameter-show without version_id
    and datastore. To fix this problem, I add an judgement
    for use the cmd without parameter datstore and
    datastore_version not like an uuid.
    
    Now in such a case, the cmd will has an exception info.
    
    Change-Id: I01fd56bad80f389da369be90dff5c89b05e6a8dc
    Closes-Bug: #1363065
    
  - Merge "Support delete and cluster_delete with many resources"
  - Add configuration-delete to OSC
    
    This change adds database support to the python-openstackclient
    project for the configuration-delete command.
    
    The trove command configuration-delete is now:
        openstack database configuration delete
    
    Change-Id: I747566e5a1ddf415c3127a86debc2ba477256141
    Partially-Implements: trove-support-in-python-openstackclient
    
  - Merge "Modify database-list in OSC"
  - Use ID instead of Name in secgroup_delete_rule
    
    In trove secgroup_delete_rule help message, the parameters
    <security_group_rule> is described "Name of security group rule".
    In fact, security group rule has not attribute 'name', it only has
    'id'.
    Users could use trove secgroup-list-rules to get all ID of rules.
    
    Change-Id: If5b97f744b24838e6aa61f4c96608da569886dd2
    
  - Support delete and cluster_delete with many resources
    
    Not like nova-delete when use trove-delete there is only support
    delete an instance everytime. With this patch, we can delete
    many instances or clusters in the same call, like
    trove delete instance1 instance2.
    
    Change-Id: I6bb0c406ba7f4c0e43cddfdff1d156b7e82ffa7a
    
  - Merge "Add configuration-parameter-show to OSC"
  - Modify database-list in OSC
    
    This change modifies database support to the python-openstackclient
    project for the database-list command.
    
    The trove command database-list in OSC
    before: openstack database list
    now: openstack database db list
    
    Change-Id: I3ef4e744050fcfcada6ff3de490149f916304001
    
  - Updated from global requirements
    
    Change-Id: I6795c7aa07a0faf3f4d18439e5e21325e02ff1f9
    
  - Merge "Fix datastore abnormal display with trove list"
  - Merge "Add cluster-delete to OSC"
  - Merge "Add datastore-version-show to OSC"
  - Merge "Add instance-delete to OSC"
  - Merge "Add database-delete to OSC"
  - Merge "Add user-delete to OSC"
  - Add datastore-version-show to OSC
    
    This change adds database support to the python-openstackclient
    project for the datastore-version-show command.
    
    The trove command datastore-version-show is now:
        openstack datastore version show
    
    Change-Id: I14844d887565bc58d44181db7ed3da454dc574d0
    Partially-Implements: trove-support-in-python-openstackclient
    
  - Add configuration-parameter-show to OSC
    
    This change adds database support to the python-openstackclient
    project for the configuration-parameter-show command.
    
    The trove command configuration-parameter-show is now:
        openstack database configuration parameter show
    
    Change-Id: I0a286390135a09b125fab0efa8c83aefec8ca334
    Partially-Implements: trove-support-in-python-openstackclient
    
  - Merge "Add backup-delete to OSC"
  - Merge "Add configuration-parameter-list to OSC"
  - Merge "Fix abnormal display with openstack database instance list"
  - Merge "Add datastore-version-list to OSC"
  - Add database-delete to OSC
    
    This change adds database support to the python-openstackclient
    project for the database-delete command.
    
    The trove command database-delete is now:
        openstack database db delete
    
    Change-Id: I7e56326b8f60624c2f408046055a10a42ea4d183
    Partially-Implements: trove-support-in-python-openstackclient
    
  - Add user-delete to OSC
    
    This change adds database support to the python-openstackclient
    project for the user-delete command.
    
    The trove command user-delete is now:
        openstack database user delete
    
    Change-Id: Ie11a2a41dfca0e1f58e155eaf7c5949e11352c6a
    Partially-Implements: trove-support-in-python-openstackclient
    
  - Add cluster-delete to OSC
    
    This change adds database support to the python-openstackclient
    project for the cluster-delete command.
    
    The trove command cluster-delete is now:
        openstack database cluster delete
    
    Change-Id: Ibf8f0670231799508a902cffd332c844584ed407
    Partially-Implements: trove-support-in-python-openstackclient
    
  - Add backup-delete to OSC
    
    This change adds database support to the python-openstackclient
    project for the backup-delete command.
    
    The trove command backup-delete is now:
        openstack database backup delete
    
    Change-Id: I869d8649cc83d8c889995a8133e6b91407d7f862
    Partially-Implements: trove-support-in-python-openstackclient
    
  - Add instance-delete to OSC
    
    This change adds database support to the python-openstackclient
    project for the instance-delete command.
    
    The trove command delete is now:
        openstack database instance delete
    
    Change-Id: Id052d14190e9fbdfe10db4e043fa78d6aef83ba9
    Partially-Implements: trove-support-in-python-openstackclient
    
  - Add configuration-parameter-list to OSC
    
    This change adds database support to the python-openstackclient
    project for the configuration-parameter-list command.
    
    The trove command configuration-parameter-list is now:
        openstack database configuration parameter list
    
    Change-Id: I8e7ee36529b75b0962aeaf30a074b55b9e0cee12
    Partially-Implements: trove-support-in-python-openstackclient
    
  - Add user-show to OSC
    
    This change adds database support to the python-openstackclient
    project for the user-show command.
    
    The trove command user-show is now:
        openstack database user show
    
    Change-Id: I92455f1606c8a20b477fdbe66daf98e59cc19fd7
    Partially-Implements: trove-support-in-python-openstackclient
    
  - Add datastore-version-list to OSC
    
    This change adds database support to the python-openstackclient
    project for the datastore-version-list command.
    
    The trove command datastore-version-list is now:
        openstack datastore version list
    
    Change-Id: I88dad48f857329d07e4d6662744420eeaae5c8a3
    Partially-Implements: trove-support-in-python-openstackclient
    
  - Merge "Add cluster-show to OSC"
  - Merge "Add backup-show to OSC"
  - Merge "Add datastore-show to OSC"
  - Fix abnormal display with openstack database instance list
    
    According bug description, openstack database instance list
    abnormal display except first instance. The cause of the problem
    is method set_attributes_for_print when return instances got a
    wrong indentation. So just modify this. And modify tests to
    validate it.
    
    Change-Id: I6124706ba79ab13bbd769631f491e314784652c7
    Closes-Bug: #1734228
    
  - Merge "Add configuration-show to OSC"
  - Merge "Add flavor-show to OSC"
  - Add show to OSC
    
    This change adds database support to the python-openstackclient
    project for the show command.
    
    The trove command show is now:
        openstack database instance show
    
    Change-Id: I18580a7cc3394cecede18c15dc2fa9027ea842ba
    
  - Avoid tox_install.sh for constraints support
    
    We do not need tox_install.sh, pip can handle constraints itself
    and install the project correctly. Thus update tox.ini and remove
    the now obsolete tools/tox_install.sh file.
    
    This follows https://review.openstack.org/#/c/508061 to remove
    tools/tox_install.sh.
    
    Change-Id: I65e1e4d40fbd56c7e2f7e4a59c0438d7176c36b4
    
  - Add flavor-show to OSC
    
    This change adds database support to the python-openstackclient
    project for the flavor-show command.
    
    The trove command flavor-show is now:
        openstack database flavor show
    
    Change-Id: Ie91f81bad239869bba21e1358cc97e8efa7bf468
    Partially-Implements: trove-support-in-python-openstackclient
    
  - Merge "Fix datastore abnormal display with trove backup-show"
  - Add configuration-show to OSC
    
    This change adds database support to the python-openstackclient
    project for the configuration-show command.
    
    The trove command configuration-show is now:
        openstack database configuration show
    
    Change-Id: I2f2cd93054ecaa8f67722a0efd8789b63e59b373
    Partially-Implements: trove-support-in-python-openstackclient
    
  - Add datastore-show to OSC
    
    This change adds database support to the python-openstackclient
    project for the datastore-show command.
    
    The trove command datastore-show is now:
        openstack datastore show
    
    Change-Id: I126493627d6b7fdf60e5d605dd64cfb3fbead10e
    Partially-Implements: trove-support-in-python-openstackclient
    
  - Add cluster-show to OSC
    
    This change adds database support to the python-openstackclient
    project for the cluster-show command.
    
    The trove command cluster-show is now:
        openstack database cluster show
    
    Change-Id: I7021a0bf7fedaa5bbaa4979709b6a1de005b1db3
    Partially-Implements: trove-support-in-python-openstackclient
    
  - Add backup-show to OSC
    
    This change adds database support to the python-openstackclient
    project for the backup-show command.
    
    The trove command backup-show is now:
        openstack database backup show
    
    Change-Id: I2f8a4c9c9df1ca68c5746acd272e80d7d9eda364
    Partially-Implements: trove-support-in-python-openstackclient
    
  - Fix datastore abnormal display with trove backup-show
    
    According bug description, the datastore display abnormal
    when use trove backup-show.  The cause of the problem
    is method _print_object unformatted datastore from result.
    
    Fix by formatted datastore where necessary.
    
    Change-Id: Ifbcc8312e52eb3d052f5d24645d4d243ec50aed7
    Closes-Bug: #1735157
    
  - Zuul: add file extension to playbook path
    
    Zuul now supports including the file extension on the playbook path
    and omitting the extension is now deprecrated.  Update references
    to include the extension.
    
    Change-Id: I96d9772d363305fd65119d1195cc25a508ec33dc
    
  - Fix datastore abnormal display with trove list
    
    According bug description, the datastore display abnormal
    when use trove list.
    
    Change-Id: Ia1dda1c2fb6822ea991afbdf3a67819c262e49a8
    Closes-Bug: #1734846
    
  - Merge "Fix networks abnormal display with trove show"
  - Merge "Update the doc link"
  - Fix networks abnormal display with trove show
    
    According bug description, the networks display abnormal
    when use trove show. The cause of the problem is method
    _print_instance unformatted networks from result.
    
    Change-Id: I30e27b731f67ab7c31e30af8ab9bb3e499e27dfa
    Closes-Bug: #1734710
    
  - Merge "Updated from global requirements"
  - Merge "Remove setting of version/release from releasenotes"
  - Update the doc link
    
    Change-Id: I6be8ddec1be9c4aa7aa24829821068af57079c52
    
  - Remove log translations
    
        Log messages are no longer being translated.
        This removes all use of the _LE, _LI, and _LW
        translation markers to simplify logging and to
        avoid confusion with new contributions.
    
        See:
        http://lists.openstack.org/pipermail/openstack-i18n/2016-November/002574.html
        http://lists.openstack.org/pipermail/openstack-dev/2017-March/113365.html
    
    Change-Id: Iee792d0e3bae6a3ea84a3eed2853017c7ec39c76
    
  - Merge "Add proper message when delete instance or cluster"
  - Remove setting of version/release from releasenotes
    
    Release notes are version independent, so remove version/release
    values. We've found that projects now require the service package
    to be installed in order to build release notes, and this is entirely
    due to the current convention of pulling in the version information.
    
    Release notes should not need installation in order to build, so this
    unnecessary version setting needs to be removed.
    
    This is needed for new release notes publishing, see
    I56909152975f731a9d2c21b2825b972195e48ee8 and the discussion starting
    at
    http://lists.openstack.org/pipermail/openstack-dev/2017-November/124480.html
    .
    
    Change-Id: I63aeef045ca3804adadfe020d2269b2ee5b11721
    
  - Updated from global requirements
    
    Change-Id: If8791552165fd5ed4985b383d7bf904e6cb4fb60
    
  - Updated from global requirements
    
    Change-Id: I0e5a12a0841a5767c46a81479df2b2d0fe0f068c
    
  - Merge "Remove extra parameter 'backup' in backup-create"
  - Add proper message when delete instance or cluster
    
    According bug description, not like nova-delete when use trove-delete
    there is no message or alert is generated. To solve this problem, I
    added some message when normally execute deleting instance or cluster.
    
    Change-Id: I572a24116fd1abec220f49a3f9705a5c071155bf
    Closes-Bug: #1569669
    
  - Merge "ESFIX:Fix troveclient error with Chinese character"
  - Merge "Use openstackclient-plugin-jobs"
  - Fix "trove module-instances" command which don't work.
    
    The "trove module-instances" command don't work.
    
    cat <<EOF>> myping.data
    message=Module.V1
    EOF
    
    trove module-create myping ping myping.data
    
    trove module-apply \
          7d95769f-1912-4e77-8b86-d9a4eb48cd2e myping
    trove module-instances myping
    ERROR: Module with ID 7d95769f-1912-4e77-8b86-d9a4eb48cd2e \
    could not be found.
    
    Change-Id: I30c2e698bd1ea90cc8fdf0dc5e3a5b087ca2bec2
    Closes-Bug: #1664472
    
  - Updated from global requirements
    
    Change-Id: I2759a64e0274fd7652872c8556537471c2971cf7
    
  - Use openstackclient-plugin-jobs
    
    Follow Iabba152c3996295358acf0cb21e9a1e1b559a974 and use the new
    template that is in openstack/openstackclient.
    
    Change-Id: I5b3fd92088ca71c93fbdecc393596781208e59ba
    
  - ESFIX:Fix troveclient error with Chinese character
    
    Now troveclient does not support returning Chinese characters, so
    to make changes.This should also avoid other unicode output
    problems
    
    Change-Id: Ie948cff4e81806f17c697f50271992cc492c48f4
    Closes-Bug: #1720490
    
  - Merge "Fix trove schedule-list error"
  - Fix gate / add tempest job
    
    The Zuul v3 conversion missed the
    tempest-dsvm-neutron-src-python-troveclient job and the base
    tempest job is running in its place and blocking the gate.
    
    This adds the Zuul project config and the definition for the
    missing tempest job.
    
    Change-Id: I532776e2e23b1ab5a5c9ef2b0278489f04a1097f
    
  - Enable Keystone v3 support for compat client
    
    Enable Keystone v3 auth support in the compat client.
    This is needed for the Trove integration and scenario tests which
    use the compat client. The Keystone v2 APIs have been removed in
    the Queens release and this stop-gap fix of putting Keystone v3
    support in the compat client is needed to fix the Trove gate.
    
    Change-Id: I60ea2188443d8905c03c24607703e69c6490420b
    
  - Fix trove schedule-list error
    
    When I set parameter TROVE_BYPASS_URL in admin_openrc.sh,the cmd  schedule-list return error message.
    Debug detail as follow:
    [root@trove ~]# trove --debug schedule-list rds-120
    DEBUG (shell:754) HTTPClient object has no attribute username
    
    Change-Id: I09d1d65683409da38a299675d88b90b29e34ea78
    Closes-Bug: #1677438
    
  - Remove extra parameter 'backup' in backup-create
    
    The parameter 'backup' in backup-create is never read by our Trove API[1], so
    I guess it's a extra key argument for history reason. In addition, the
    'backup-copy' subcommand should be removed as well because it does not
    support in current Trove API.
    
    [1] https://github.com/openstack/trove/blob/master/trove/backup/service.py#L61-L77
    
    Change-Id: I33d439e0037efd4573eeae186758fd778ba5c514
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment