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

Source Code for Module yakumo.smoketests.st42_volume_type_admin

  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  """Block Storage API Test (Volume Types)""" 
 18   
 19   
 20  from yakumo.smoketest import * 
 21  from yakumo import utils 
 22   
 23   
24 -def main(c):
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 # properties 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 # metadata operation 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 # Volume 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