1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 """Compute API Test (Server Metadata)"""
18
19
20 import time
21
22 from yakumo.smoketest import *
23 from yakumo import utils
24
25
26 KEY_PAIR_NAME = 'key1'
27 FLAVOR_NAME = 'm1.small'
28 IMAGE_NAME = 'cirros'
29 NETWORK_NAME = 'private'
30
31
32 -def main(c, key_pair=None, flavor=None, image=None, network=None, **kwargs):
33
34 LOG.debug("key pair: %s", key_pair)
35 LOG.debug("flavor: %s", flavor)
36 LOG.debug("image: %s", image)
37 LOG.debug("network: %s", network)
38
39 metadata = {'foo': 'bar', 'foo2': 'bar2'}
40 LOG.info("Metadata: %s", metadata)
41
42 LOG.info("Create Server #1")
43 name = get_random_str('server')
44 with c.server.create(name=name,
45 networks=[network],
46 image=image,
47 flavor=flavor,
48 metadata=metadata,
49 key_pair=key_pair) as s:
50
51 LOG.debug("list servers: %s", [_.name for _ in c.server.list()])
52
53 LOG.debug("wait for created")
54 s.wait_for_finished()
55 test("Server #1 name is " + name, s.name == name)
56 test("Server #1 is active", s.status == 'ACTIVE')
57
58 LOG.info("Metadata: %s", s.metadata)
59 test("Metadata has %s" % metadata, s.metadata == metadata)
60
61 m = {'foo2': 'bar4', 'foo3': 'bar3'}
62 metadata.update(m)
63 s.set_metadata(**m)
64 LOG.info("Metadata: %s", s.metadata)
65 test("Metadata has %s" % metadata, s.metadata == metadata)
66
67 m = ['foo', 'foo2']
68 for key in m:
69 metadata.pop(key)
70 s.unset_metadata(*m)
71 LOG.info("Metadata: %s", s.metadata)
72 test("Metadata has %s" % metadata, s.metadata == metadata)
73
74 test("Server #1 is deleted", s not in c.server.list())
75
76
77 if __name__ == '__main__':
78 c = utils.get_client()
79
80 k = c.key_pair.find_one(name=KEY_PAIR_NAME)
81 f = c.flavor.find_one(name=FLAVOR_NAME)
82 i = c.image.find_one(name=IMAGE_NAME)
83 n = c.network.find_one(name=NETWORK_NAME)
84
85 LOG.debug("list servers: %s", [_.name for _ in c.server.list()])
86 main(c, key_pair=k, flavor=f, image=i, network=n)
87 LOG.debug("list servers: %s", [_.name for _ in c.server.list()])
88
89 show_test_summary()
90