summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/compute/v2/server.py26
-rw-r--r--openstackclient/identity/v3/user.py2
-rw-r--r--openstackclient/releasenotes/notes/bug-1543222-6f8579344ff5c958.yaml6
-rw-r--r--openstackclient/tests/volume/v2/test_volume.py48
4 files changed, 46 insertions, 36 deletions
diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py
index 2312575a..27abbe63 100644
--- a/openstackclient/compute/v2/server.py
+++ b/openstackclient/compute/v2/server.py
@@ -562,7 +562,7 @@ class CreateServer(command.ShowOne):
else:
self.log.error(_('Error creating server: %s'),
parsed_args.server_name)
- sys.stdout.write(_('\nError creating server'))
+ sys.stdout.write(_('Error creating server\n'))
raise SystemExit
details = _prep_server_detail(compute_client, server)
@@ -646,7 +646,7 @@ class CreateServerImage(command.ShowOne):
else:
self.log.error(_('Error creating snapshot of server: %s'),
parsed_args.server)
- sys.stdout.write(_('\nError creating server snapshot'))
+ sys.stdout.write(_('Error creating server snapshot\n'))
raise SystemExit
image = _prep_image_detail(image_client, image_id)
@@ -688,7 +688,7 @@ class DeleteServer(command.Command):
else:
self.log.error(_('Error deleting server: %s'),
server_obj.id)
- sys.stdout.write(_('\nError deleting server'))
+ sys.stdout.write(_('Error deleting server\n'))
raise SystemExit
@@ -1013,7 +1013,9 @@ class MigrateServer(command.Command):
):
sys.stdout.write(_('Complete\n'))
else:
- sys.stdout.write(_('\nError migrating server'))
+ self.log.error(_('Error migrating server: %s'),
+ server.id)
+ sys.stdout.write(_('Error migrating server\n'))
raise SystemExit
@@ -1085,9 +1087,11 @@ class RebootServer(command.Command):
server.id,
callback=_show_progress,
):
- sys.stdout.write(_('\nReboot complete\n'))
+ sys.stdout.write(_('Complete\n'))
else:
- sys.stdout.write(_('\nError rebooting server\n'))
+ self.log.error(_('Error rebooting server: %s'),
+ server.id)
+ sys.stdout.write(_('Error rebooting server\n'))
raise SystemExit
@@ -1136,9 +1140,11 @@ class RebuildServer(command.ShowOne):
server.id,
callback=_show_progress,
):
- sys.stdout.write(_('\nComplete\n'))
+ sys.stdout.write(_('Complete\n'))
else:
- sys.stdout.write(_('\nError rebuilding server'))
+ self.log.error(_('Error rebuilding server: %s'),
+ server.id)
+ sys.stdout.write(_('Error rebuilding server\n'))
raise SystemExit
details = _prep_server_detail(compute_client, server)
@@ -1290,7 +1296,9 @@ class ResizeServer(command.Command):
):
sys.stdout.write(_('Complete\n'))
else:
- sys.stdout.write(_('\nError resizing server'))
+ self.log.error(_('Error resizing server: %s'),
+ server.id)
+ sys.stdout.write(_('Error resizing server\n'))
raise SystemExit
elif parsed_args.confirm:
compute_client.servers.confirm_resize(server)
diff --git a/openstackclient/identity/v3/user.py b/openstackclient/identity/v3/user.py
index 9a7ced92..8bc4183b 100644
--- a/openstackclient/identity/v3/user.py
+++ b/openstackclient/identity/v3/user.py
@@ -369,6 +369,8 @@ class SetUser(command.Command):
class SetPasswordUser(command.Command):
"""Change current user password"""
+ required_scope = False
+
def get_parser(self, prog_name):
parser = super(SetPasswordUser, self).get_parser(prog_name)
parser.add_argument(
diff --git a/openstackclient/releasenotes/notes/bug-1543222-6f8579344ff5c958.yaml b/openstackclient/releasenotes/notes/bug-1543222-6f8579344ff5c958.yaml
new file mode 100644
index 00000000..c783d013
--- /dev/null
+++ b/openstackclient/releasenotes/notes/bug-1543222-6f8579344ff5c958.yaml
@@ -0,0 +1,6 @@
+---
+fixes:
+ - Keystone V3 `user password set` is a self-service operation. It should
+ not required a scoped token as it is not considered a `scoped operation`.
+ [Bug `1543222 <https://bugs.launchpad.net/bugs/1543222>`_]
+
diff --git a/openstackclient/tests/volume/v2/test_volume.py b/openstackclient/tests/volume/v2/test_volume.py
index 85ff6142..fb48d8ac 100644
--- a/openstackclient/tests/volume/v2/test_volume.py
+++ b/openstackclient/tests/volume/v2/test_volume.py
@@ -14,12 +14,12 @@
import copy
-import mock
from mock import call
from openstackclient.common import utils
from openstackclient.tests import fakes
from openstackclient.tests.identity.v3 import fakes as identity_fakes
+from openstackclient.tests.image.v2 import fakes as image_fakes
from openstackclient.tests.volume.v2 import fakes as volume_fakes
from openstackclient.volume.v2 import volume
@@ -301,19 +301,16 @@ class TestVolumeCreate(TestVolume):
self.assertEqual(self.datalist, data)
def test_volume_create_image_id(self):
- self.images_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(volume_fakes.IMAGE),
- loaded=True,
- )
+ image = image_fakes.FakeImage.create_one_image()
+ self.images_mock.get.return_value = image
arglist = [
- '--image', volume_fakes.image_id,
+ '--image', image.id,
'--size', str(self.new_volume.size),
self.new_volume.name,
]
verifylist = [
- ('image', volume_fakes.image_id),
+ ('image', image.id),
('size', self.new_volume.size),
('name', self.new_volume.name),
]
@@ -334,7 +331,7 @@ class TestVolumeCreate(TestVolume):
project_id=None,
availability_zone=None,
metadata=None,
- imageRef=volume_fakes.image_id,
+ imageRef=image.id,
source_volid=None,
)
@@ -342,19 +339,16 @@ class TestVolumeCreate(TestVolume):
self.assertEqual(self.datalist, data)
def test_volume_create_image_name(self):
- self.images_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(volume_fakes.IMAGE),
- loaded=True,
- )
+ image = image_fakes.FakeImage.create_one_image()
+ self.images_mock.get.return_value = image
arglist = [
- '--image', volume_fakes.image_name,
+ '--image', image.name,
'--size', str(self.new_volume.size),
self.new_volume.name,
]
verifylist = [
- ('image', volume_fakes.image_name),
+ ('image', image.name),
('size', self.new_volume.size),
('name', self.new_volume.name),
]
@@ -375,7 +369,7 @@ class TestVolumeCreate(TestVolume):
project_id=None,
availability_zone=None,
metadata=None,
- imageRef=volume_fakes.image_id,
+ imageRef=image.id,
source_volid=None
)
@@ -383,21 +377,21 @@ class TestVolumeCreate(TestVolume):
self.assertEqual(self.datalist, data)
def test_volume_create_with_snapshot(self):
+ snapshot = volume_fakes.FakeSnapshot.create_one_snapshot()
+ self.new_volume.snapshot_id = snapshot.id
arglist = [
'--size', str(self.new_volume.size),
- '--snapshot', volume_fakes.snapshot_id,
+ '--snapshot', self.new_volume.snapshot_id,
self.new_volume.name,
]
verifylist = [
('size', self.new_volume.size),
- ('snapshot', volume_fakes.snapshot_id),
+ ('snapshot', self.new_volume.snapshot_id),
('name', self.new_volume.name),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- fake_snapshot = mock.Mock()
- fake_snapshot.id = volume_fakes.snapshot_id
- self.snapshots_mock.get.return_value = fake_snapshot
+ self.snapshots_mock.get.return_value = snapshot
# In base command class ShowOne in cliff, abstract method take_action()
# returns a two-part tuple with a tuple of column names and a tuple of
@@ -406,7 +400,7 @@ class TestVolumeCreate(TestVolume):
self.volumes_mock.create.assert_called_once_with(
size=self.new_volume.size,
- snapshot_id=fake_snapshot.id,
+ snapshot_id=snapshot.id,
name=self.new_volume.name,
description=None,
volume_type=None,
@@ -642,12 +636,12 @@ class TestVolumeList(TestVolume):
def test_volume_list_name(self):
arglist = [
- '--name', volume_fakes.volume_name,
+ '--name', self.mock_volume.name,
]
verifylist = [
('long', False),
('all_projects', False),
- ('name', volume_fakes.volume_name),
+ ('name', self.mock_volume.name),
('status', None),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -670,13 +664,13 @@ class TestVolumeList(TestVolume):
def test_volume_list_status(self):
arglist = [
- '--status', volume_fakes.volume_status,
+ '--status', self.mock_volume.status,
]
verifylist = [
('long', False),
('all_projects', False),
('name', None),
- ('status', volume_fakes.volume_status),
+ ('status', self.mock_volume.status),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)