Skip to content

Commit

Permalink
Fix "server create"command with --boot-from-volume
Browse files Browse the repository at this point in the history
This patch modifes the "server create --boot-from-volume" command
without image option print "'NoneType' object has no attribute 'id'"

story: 2010892
task: 48669
Change-Id: I566f81c285d4ebc1e23ea0762d67492fb6b3bcbe
  • Loading branch information
kimwoo123 committed Aug 25, 2023
1 parent 29f2444 commit 89e5d67
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 0 deletions.
6 changes: 6 additions & 0 deletions openstackclient/compute/v2/server.py
Expand Up @@ -1580,6 +1580,12 @@ def _match_image(image_api, wanted_properties):
]
elif parsed_args.boot_from_volume:
# Tell nova to create a root volume from the image provided.
if not image:
msg = _(
"An image (--image or --image-property) is required "
"to support --boot-from-volume option"
)
raise exceptions.CommandError(msg)
block_device_mapping_v2 = [
{
'uuid': image.id,
Expand Down
28 changes: 28 additions & 0 deletions openstackclient/tests/unit/compute/v2/test_server.py
Expand Up @@ -3436,6 +3436,34 @@ def test_server_create_volume_boot_from_volume_conflict(self):
'--volume is not allowed with --boot-from-volume', str(ex)
)

def test_server_create_boot_from_volume_no_image(self):
# Test --boot-from-volume option without --image or
# --image-property.
arglist = [
'--flavor',
self.flavor.id,
'--boot-from-volume',
'1',
self.new_server.name,
]
verifylist = [
('flavor', self.flavor.id),
('boot_from_volume', 1),
('config_drive', False),
('server_name', self.new_server.name),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)

ex = self.assertRaises(
exceptions.CommandError, self.cmd.take_action, parsed_args
)
# Assert it is the error we expect.
self.assertIn(
'An image (--image or --image-property) is required '
'to support --boot-from-volume option',
str(ex),
)

def test_server_create_image_property(self):
arglist = [
'--image-property',
Expand Down

0 comments on commit 89e5d67

Please sign in to comment.