1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 """Block Storage API Test (Volume Types)"""
18
19
20 from yakumo.smoketest import *
21 from yakumo import utils
22
23
25
26 LOG.info("Create Volume Type #1")
27 name = get_random_str('volume')
28 i = c.image.find_one(name='cirros')
29 metadata = {'foo': 'bar', 'foo2': 'bar2'}
30 with c.volume_type.create(name=name,
31 description='volume type 1',
32 metadata=metadata,
33 is_public=False) as vt1:
34
35 test("Volume Type #1 is created", vt1 is not None)
36 test("Volume Type #1 name is " + name, vt1.name == name)
37
38
39
40 name = get_random_str('volume')
41 vt1.update(name=name)
42
43 test("Volume Type #1 has a new name", vt1.name == name)
44
45
46
47 LOG.debug("Set/unset metadata")
48
49 LOG.debug("Initial metadata: %s", vt1.metadata)
50 test("Metadata has %s" % metadata, vt1.metadata == metadata)
51
52 m = {'foo2': 'bar4', 'foo3': 'bar3'}
53 LOG.debug("Set metadata : %s", m)
54 metadata.update(m)
55 vt1.set_metadata(**m)
56 LOG.debug("Updated metadata: %s", vt1.metadata)
57 test("Metadata has %s" % metadata, vt1.metadata == metadata)
58
59 m = ['foo', 'foo2']
60 LOG.debug("Unset metadata : %s", m)
61 for key in m:
62 metadata.pop(key)
63 vt1.unset_metadata(*m)
64 LOG.debug("Updated metadata: %s", vt1.metadata)
65 test("Metadata has %s" % metadata, vt1.metadata == metadata)
66
67
68
69 LOG.info("Create Volume #1")
70 name = get_random_str('volume')
71 with c.volume.create(name=name,
72 volume_type=vt1,
73 size=1) as v1:
74 test("Volume #1 is created", v1 is not None)
75
76 LOG.debug("wait for created")
77 v1.wait_for_finished()
78
79 LOG.debug("Volume #1: %s", v1.get_attrs())
80 test("Volume #1 name is " + name, v1.name == name)
81 test("Volume type is " + vt1.name, v1.volume_type == vt1)
82
83 test("Volume #1 is deleted", v1 not in c.volume.list())
84
85 test("Volume Type #1 is deleted", vt1 not in c.volume.list())
86
87
88 if __name__ == '__main__':
89 c = utils.get_client()
90
91 LOG.debug("list volume types: %s", [_.name for _ in c.volume_type.list()])
92 LOG.debug("list volumes: %s", [_.name for _ in c.volume.list()])
93 LOG.debug("list QoS: %s", [_.name for _ in c.volume_type_qos.list()])
94 main(c)
95 LOG.debug("list volume types: %s", [_.name for _ in c.volume_type.list()])
96 LOG.debug("list volumes: %s", [_.name for _ in c.volume.list()])
97 LOG.debug("list QoS: %s", [_.name for _ in c.volume_type_qos.list()])
98
99 show_test_summary()
100