blob: 530262f2cf5c00aac0aac3410e5aafb617841d49 [file] [log] [blame]
Attila Fazekas689e2652013-10-07 18:06:57 +02001# Licensed under the Apache License, Version 2.0 (the "License"); you may
2# not use this file except in compliance with the License. You may obtain
3# a copy of the License at
4#
5# http://www.apache.org/licenses/LICENSE-2.0
6#
7# Unless required by applicable law or agreed to in writing, software
8# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
9# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
10# License for the specific language governing permissions and limitations
11# under the License.
12
13from tempest.api.image import base
14from tempest.test import attr
15
16
JordanP236da422014-01-16 14:38:07 +000017class ImagesMemberTest(base.BaseV2MemberImageTest):
Attila Fazekas689e2652013-10-07 18:06:57 +020018 _interface = 'json'
19
20 @attr(type='gate')
21 def test_image_share_accept(self):
22 image_id = self._create_image()
23 resp, member = self.os_img_client.add_member(image_id,
24 self.alt_tenant_id)
Sergey Nikitinc6b2ee82014-02-03 17:13:50 +040025 self.assertEqual(200, resp.status)
Attila Fazekas689e2652013-10-07 18:06:57 +020026 self.assertEqual(member['member_id'], self.alt_tenant_id)
27 self.assertEqual(member['image_id'], image_id)
28 self.assertEqual(member['status'], 'pending')
29 self.assertNotIn(image_id, self._list_image_ids_as_alt())
30 self.alt_img_client.update_member_status(image_id,
31 self.alt_tenant_id,
32 'accepted')
33 self.assertIn(image_id, self._list_image_ids_as_alt())
Sergey Nikitinc6b2ee82014-02-03 17:13:50 +040034 resp, body = self.os_img_client.get_image_membership(image_id)
35 self.assertEqual(200, resp.status)
Attila Fazekas689e2652013-10-07 18:06:57 +020036 members = body['members']
37 member = members[0]
38 self.assertEqual(len(members), 1, str(members))
39 self.assertEqual(member['member_id'], self.alt_tenant_id)
40 self.assertEqual(member['image_id'], image_id)
41 self.assertEqual(member['status'], 'accepted')
42
43 @attr(type='gate')
44 def test_image_share_reject(self):
45 image_id = self._create_image()
46 resp, member = self.os_img_client.add_member(image_id,
47 self.alt_tenant_id)
Sergey Nikitinc6b2ee82014-02-03 17:13:50 +040048 self.assertEqual(200, resp.status)
Attila Fazekas689e2652013-10-07 18:06:57 +020049 self.assertEqual(member['member_id'], self.alt_tenant_id)
50 self.assertEqual(member['image_id'], image_id)
51 self.assertEqual(member['status'], 'pending')
52 self.assertNotIn(image_id, self._list_image_ids_as_alt())
Sergey Nikitinc6b2ee82014-02-03 17:13:50 +040053 resp, _ = self.alt_img_client.update_member_status(image_id,
54 self.alt_tenant_id,
55 'rejected')
56 self.assertEqual(200, resp.status)
57 self.assertNotIn(image_id, self._list_image_ids_as_alt())
58
59 @attr(type='gate')
60 def test_get_image_member(self):
61 image_id = self._create_image()
62 self.os_img_client.add_member(image_id,
63 self.alt_tenant_id)
Attila Fazekas689e2652013-10-07 18:06:57 +020064 self.alt_img_client.update_member_status(image_id,
65 self.alt_tenant_id,
Sergey Nikitinc6b2ee82014-02-03 17:13:50 +040066 'accepted')
67
68 self.assertIn(image_id, self._list_image_ids_as_alt())
69 resp, member = self.os_img_client.get_member(image_id,
70 self.alt_tenant_id)
71 self.assertEqual(200, resp.status)
72 self.assertEqual(self.alt_tenant_id, member['member_id'])
73 self.assertEqual(image_id, member['image_id'])
74 self.assertEqual('accepted', member['status'])
75
76 @attr(type='gate')
77 def test_remove_image_member(self):
78 image_id = self._create_image()
79 self.os_img_client.add_member(image_id,
80 self.alt_tenant_id)
81 self.alt_img_client.update_member_status(image_id,
82 self.alt_tenant_id,
83 'accepted')
84
85 self.assertIn(image_id, self._list_image_ids_as_alt())
86 resp = self.os_img_client.remove_member(image_id, self.alt_tenant_id)
87 self.assertEqual(204, resp.status)
Attila Fazekas689e2652013-10-07 18:06:57 +020088 self.assertNotIn(image_id, self._list_image_ids_as_alt())