blob: f80c8181bdfa1b0aaf757cbd0593543a4ab80251 [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
Eiichi Aikawa9012f462014-03-05 16:43:32 +090014from tempest import test
Attila Fazekas689e2652013-10-07 18:06:57 +020015
16
JordanP236da422014-01-16 14:38:07 +000017class ImagesMemberTest(base.BaseV2MemberImageTest):
Attila Fazekas689e2652013-10-07 18:06:57 +020018 _interface = 'json'
19
Eiichi Aikawa9012f462014-03-05 16:43:32 +090020 @test.attr(type='gate')
Attila Fazekas689e2652013-10-07 18:06:57 +020021 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
Eiichi Aikawa9012f462014-03-05 16:43:32 +090043 @test.attr(type='gate')
Attila Fazekas689e2652013-10-07 18:06:57 +020044 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
Eiichi Aikawa9012f462014-03-05 16:43:32 +090059 @test.attr(type='gate')
Sergey Nikitinc6b2ee82014-02-03 17:13:50 +040060 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
Eiichi Aikawa9012f462014-03-05 16:43:32 +090076 @test.attr(type='gate')
Sergey Nikitinc6b2ee82014-02-03 17:13:50 +040077 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())
raiesmh084b980eb2014-03-11 09:40:49 +053089
90 @test.attr(type='gate')
91 def test_get_image_member_schema(self):
92 resp, body = self.os_img_client.get_schema("member")
93 self.assertEqual(200, resp.status)
94 self.assertEqual("member", body['name'])
95
96 @test.attr(type='gate')
97 def test_get_image_members_schema(self):
98 resp, body = self.os_img_client.get_schema("members")
99 self.assertEqual(200, resp.status)
100 self.assertEqual("members", body['name'])