Rui Chen 6aceca218a Replace "Display Name" by "Name" in volume list
Current "volume list --name" command use "display_name" as search_opts
to send to cinder API, and show the result table with "Display Name"
column title in osc, cinder list API support "name" as search opts too,
and there is "name" attribute in volume response body, so we can replace
all "Display Name" by "Name" in order to keep "volume list" command
consistent with other commands, like: server list, network list and so
on, only use "Name" attribute for all objects.

Support a mapping for volume list -c "Display Name" (Volume v1 and v2)
and volume create/show -c "display_name" (Volume v1) for minimal
backward compatibility until R release.

Change-Id: I120be0118e7bb30093b4237c5eeb69a9eedef077
Closes-Bug: #1657956
Depends-On: I1fb62219b092346ea380099811cbd082cae5bafe
2017-05-26 11:37:09 +08:00

88 lines
3.2 KiB
Python

# 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.
import json
import uuid
from openstackclient.tests.functional.volume.v1 import common
class TransferRequestTests(common.BaseVolumeTests):
"""Functional tests for transfer request. """
NAME = uuid.uuid4().hex
VOLUME_NAME = uuid.uuid4().hex
@classmethod
def setUpClass(cls):
super(TransferRequestTests, cls).setUpClass()
cmd_output = json.loads(cls.openstack(
'volume create -f json --size 1 ' + cls.VOLUME_NAME))
cls.assertOutput(cls.VOLUME_NAME, cmd_output['name'])
cmd_output = json.loads(cls.openstack(
'volume transfer request create -f json ' +
cls.VOLUME_NAME +
' --name ' + cls.NAME))
cls.assertOutput(cls.NAME, cmd_output['name'])
@classmethod
def tearDownClass(cls):
raw_output_transfer = cls.openstack(
'volume transfer request delete ' + cls.NAME)
raw_output_volume = cls.openstack(
'volume delete ' + cls.VOLUME_NAME)
cls.assertOutput('', raw_output_transfer)
cls.assertOutput('', raw_output_volume)
def test_volume_transfer_request_accept(self):
volume_name = uuid.uuid4().hex
name = uuid.uuid4().hex
# create a volume
cmd_output = json.loads(self.openstack(
'volume create -f json --size 1 ' + volume_name))
self.assertEqual(volume_name, cmd_output['name'])
# create volume transfer request for the volume
# and get the auth_key of the new transfer request
cmd_output = json.loads(self.openstack(
'volume transfer request create -f json ' +
volume_name +
' --name ' + name))
auth_key = cmd_output['auth_key']
self.assertTrue(auth_key)
# accept the volume transfer request
json_output = json.loads(self.openstack(
'volume transfer request accept -f json ' +
name + ' ' +
'--auth-key ' + auth_key
))
self.assertEqual(name, json_output.get('name'))
# the volume transfer will be removed by default after accepted
# so just need to delete the volume here
raw_output = self.openstack(
'volume delete ' + volume_name)
self.assertEqual('', raw_output)
def test_volume_transfer_request_list(self):
cmd_output = json.loads(self.openstack(
'volume transfer request list -f json'))
self.assertIn(self.NAME, [req['Name'] for req in cmd_output])
def test_volume_transfer_request_show(self):
cmd_output = json.loads(self.openstack(
'volume transfer request show -f json ' + self.NAME))
self.assertEqual(self.NAME, cmd_output['name'])