This is mostly auto-generated, save for having to manually move some 'noqa' lines and move some printf arguments outside of localized string calls. Change-Id: I48cd5ead0953d7d9b03535172a60f4727e95e935 Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
175 lines
5.6 KiB
Python
175 lines
5.6 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
|
|
|
|
from manilaclient.tests.functional.osc import base
|
|
|
|
|
|
class ShareBackupCLITest(base.OSCClientTestBase):
|
|
"""Functional tests for share backup."""
|
|
|
|
def test_share_backup_create(self):
|
|
share = self.create_share()
|
|
|
|
backup = self.create_backup(
|
|
share_id=share['id'],
|
|
name='test_backup_create',
|
|
description='Description',
|
|
backup_options={'dummy': True},
|
|
)
|
|
|
|
# fetch latest after periodic callback updates status
|
|
backup = json.loads(
|
|
self.openstack(f'share backup show -f json {backup["id"]}')
|
|
)
|
|
|
|
self.assertEqual(share["id"], backup["share_id"])
|
|
self.assertEqual('test_backup_create', backup["name"])
|
|
self.assertEqual('Description', backup["description"])
|
|
self.assertEqual('available', backup["status"])
|
|
|
|
backups_list = self.listing_result('share backup', 'list')
|
|
self.assertIn(backup['id'], [item['ID'] for item in backups_list])
|
|
|
|
def test_share_backup_delete(self):
|
|
share = self.create_share()
|
|
|
|
backup = self.create_backup(
|
|
share_id=share['id'],
|
|
backup_options={'dummy': True},
|
|
add_cleanup=False,
|
|
)
|
|
|
|
self.openstack(f'share backup delete {backup["id"]} --wait')
|
|
|
|
self.check_object_deleted('share backup', backup["id"])
|
|
|
|
def test_share_backup_show(self):
|
|
share = self.create_share()
|
|
|
|
backup = self.create_backup(
|
|
share_id=share['id'],
|
|
name='test_backup_show',
|
|
description='Description',
|
|
backup_options={'dummy': True},
|
|
)
|
|
|
|
show_result = self.dict_result('share backup', f'show {backup["id"]}')
|
|
|
|
self.assertEqual(backup["id"], show_result["id"])
|
|
self.assertEqual('test_backup_show', show_result["name"])
|
|
self.assertEqual('Description', show_result["description"])
|
|
|
|
def test_share_backup_restore(self):
|
|
share = self.create_share()
|
|
|
|
backup = self.create_backup(
|
|
share_id=share['id'], backup_options={'dummy': True}
|
|
)
|
|
|
|
self.openstack(f'share backup restore {backup["id"]} --wait')
|
|
|
|
backup = json.loads(
|
|
self.openstack(f'share backup show -f json {backup["id"]}')
|
|
)
|
|
share = json.loads(self.openstack(f'share show -f json {share["id"]}'))
|
|
|
|
self.assertEqual('available', backup['status'])
|
|
self.assertEqual('available', share['status'])
|
|
|
|
def test_share_backup_set(self):
|
|
share = self.create_share()
|
|
|
|
backup = self.create_backup(
|
|
share_id=share['id'], backup_options={'dummy': True}
|
|
)
|
|
|
|
self.openstack(
|
|
f'share backup set {backup["id"]} '
|
|
f'--name test_backup_set --description Description'
|
|
)
|
|
|
|
show_result = self.dict_result('share backup ', f'show {backup["id"]}')
|
|
|
|
self.assertEqual(backup['id'], show_result["id"])
|
|
self.assertEqual('test_backup_set', show_result["name"])
|
|
self.assertEqual('Description', show_result["description"])
|
|
|
|
def test_share_backup_unset(self):
|
|
share = self.create_share()
|
|
|
|
backup = self.create_backup(
|
|
share_id=share['id'],
|
|
name='test_backup_unset',
|
|
description='Description',
|
|
backup_options={'dummy': True},
|
|
)
|
|
|
|
self.openstack(
|
|
f'share backup unset {backup["id"]} --name --description'
|
|
)
|
|
|
|
show_result = json.loads(
|
|
self.openstack(f'share backup show -f json {backup["id"]}')
|
|
)
|
|
|
|
self.assertEqual(backup['id'], show_result["id"])
|
|
self.assertIsNone(show_result["name"])
|
|
self.assertIsNone(show_result["description"])
|
|
|
|
def test_share_backup_list(self):
|
|
share_1 = self.create_share()
|
|
share_2 = self.create_share()
|
|
|
|
backup_1 = self.create_backup(
|
|
share_id=share_1['id'], backup_options={'dummy': True}
|
|
)
|
|
backup_2 = self.create_backup(
|
|
share_id=share_2['id'], backup_options={'dummy': True}
|
|
)
|
|
|
|
backups_list = self.listing_result(
|
|
'share backup', f'list --name {backup_2["name"]} '
|
|
)
|
|
|
|
self.assertTableStruct(
|
|
backups_list, ['ID', 'Name', 'Share ID', 'Status']
|
|
)
|
|
self.assertEqual(1, len(backups_list))
|
|
self.assertIn(backup_2['id'], [item['ID'] for item in backups_list])
|
|
|
|
backups_list = self.listing_result(
|
|
'share backup', f'list --share {share_1["id"]} --detail'
|
|
)
|
|
|
|
self.assertTableStruct(
|
|
backups_list,
|
|
[
|
|
'ID',
|
|
'Name',
|
|
'Share ID',
|
|
'Status',
|
|
'Description',
|
|
'Availability Zone',
|
|
'Created At',
|
|
'Updated At',
|
|
'Size',
|
|
'Progress',
|
|
'Restore Progress',
|
|
'Host',
|
|
'Topic',
|
|
],
|
|
)
|
|
self.assertEqual(1, len(backups_list))
|
|
self.assertIn(backup_1['id'], [item['ID'] for item in backups_list])
|