python-cinderclient/cinderclient/tests/unit/fake_actions_module.py
Cao Shufeng b76f594413 Add "start_version" and "end_version" support to argparse
Now, "cinder help subcommand" can not show whether an argument
is supported for a specific microversion.
With this change, developers only need to add a start_version or
end_version in the utils.arg wrap, cinderclient will support
the microversion for that arguement.

    @utils.arg(
    '--foo',
    start_version='3.1')
    @utils.arg(
    '--bar',
    start_version='3.2',
    end_version='3.5')
    def do_some_action():
        ......

In previous example, an exception will be raised for such command:
   $ cinder --os-volume-api-version 3.6 --bar some-ation

And only "--foo" will show up for such help command:
   $ cinder --os-volume-api-version 3.1 help some-ation

Change-Id: I74137486992846bbf9fdff53c009851db2356eef
Partial-Bug: #1600567
Co-Authored-By: Nate Potter <nathaniel.potter@intel.com>
2016-08-16 16:16:13 +00:00

66 lines
1.5 KiB
Python

# Copyright 2016 FUJITSU LIMITED
# 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 cinderclient import api_versions
from cinderclient import utils
@api_versions.wraps("3.0", "3.1")
def do_fake_action():
"""help message
This will not show up in help message
"""
return "fake_action 3.0 to 3.1"
@api_versions.wraps("3.2", "3.3")
def do_fake_action():
return "fake_action 3.2 to 3.3"
@api_versions.wraps("3.6")
@utils.arg(
'--foo',
start_version='3.7')
def do_another_fake_action():
return "another_fake_action"
@utils.arg(
'--foo',
start_version='3.1',
end_version='3.2')
@utils.arg(
'--bar',
help='bar help',
start_version='3.3',
end_version='3.4')
def do_fake_action2():
return "fake_action2"
@utils.arg(
'--foo',
help='first foo',
start_version='3.6',
end_version='3.7')
@utils.arg(
'--foo',
help='second foo',
start_version='3.8')
def do_fake_action3():
return "fake_action3"