Skip to content

Commit 1763c11

Browse files
Zuulopenstack-gerrit
authored andcommitted
Merge "Fix image import --disallow-failure flag"
2 parents 702a37c + 1efca54 commit 1763c11

File tree

2 files changed

+36
-3
lines changed

2 files changed

+36
-3
lines changed

openstackclient/image/v2/image.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1689,7 +1689,8 @@ def get_parser(self, prog_name):
16891689
"'copy-image' import method)"
16901690
),
16911691
)
1692-
parser.add_argument(
1692+
allow_failure_group = parser.add_mutually_exclusive_group()
1693+
allow_failure_group.add_argument(
16931694
'--allow-failure',
16941695
action='store_true',
16951696
dest='allow_failure',
@@ -1700,9 +1701,9 @@ def get_parser(self, prog_name):
17001701
'Only usable with --stores or --all-stores'
17011702
),
17021703
)
1703-
parser.add_argument(
1704+
allow_failure_group.add_argument(
17041705
'--disallow-failure',
1705-
action='store_true',
1706+
action='store_false',
17061707
dest='allow_failure',
17071708
default=True,
17081709
help=_(

openstackclient/tests/unit/image/v2/test_image.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2092,6 +2092,38 @@ def test_import_image__copy_image(self):
20922092
all_stores_must_succeed=False,
20932093
)
20942094

2095+
def test_import_image__copy_image_disallow_failure(self):
2096+
self.image.status = 'active'
2097+
arglist = [
2098+
self.image.name,
2099+
'--method',
2100+
'copy-image',
2101+
'--store',
2102+
'fast',
2103+
'--disallow-failure',
2104+
]
2105+
verifylist = [
2106+
('image', self.image.name),
2107+
('import_method', 'copy-image'),
2108+
('stores', ['fast']),
2109+
('allow_failure', False),
2110+
]
2111+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
2112+
2113+
self.cmd.take_action(parsed_args)
2114+
2115+
self.image_client.import_image.assert_called_once_with(
2116+
self.image,
2117+
method='copy-image',
2118+
uri=None,
2119+
remote_region=None,
2120+
remote_image_id=None,
2121+
remote_service_interface=None,
2122+
stores=['fast'],
2123+
all_stores=None,
2124+
all_stores_must_succeed=True,
2125+
)
2126+
20952127
def test_import_image__glance_download(self):
20962128
arglist = [
20972129
self.image.name,

0 commit comments

Comments
 (0)