Package yakumo :: Package smoketests :: Module st54_server_metadata
[hide private]
[frames] | no frames]

Source Code for Module yakumo.smoketests.st54_server_metadata

 1  #!/usr/bin/env python 
 2  # 
 3  # Copyright 2014-2017 by Akira Yoshiyama <akirayoshiyama@gmail.com>. 
 4  # All Rights Reserved. 
 5  # 
 6  #    Licensed under the Apache License, Version 2.0 (the "License"); you may 
 7  #    not use this file except in compliance with the License. You may obtain 
 8  #    a copy of the License at 
 9  # 
10  #         http://www.apache.org/licenses/LICENSE-2.0 
11  # 
12  #    Unless required by applicable law or agreed to in writing, software 
13  #    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 
14  #    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 
15  #    License for the specific language governing permissions and limitations 
16  #    under the License. 
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