| Conditions | 3 | 
| Total Lines | 28 | 
| Lines | 0 | 
| Ratio | 0 % | 
| 1 | import random  | 
            ||
| 12 | def run(self, name, image_id, flavor_id, key_material=None, metadata=None,  | 
            ||
| 13 | region=None):  | 
            ||
| 14 | if region:  | 
            ||
| 15 | cs = self.pyrax.connect_to_cloudservers(region=region)  | 
            ||
| 16 | else:  | 
            ||
| 17 | cs = self.pyrax.cloudservers  | 
            ||
| 18 | |||
| 19 | image = cs.images.get(image_id)  | 
            ||
| 20 | flavor = cs.flavors.get(flavor_id)  | 
            ||
| 21 | |||
| 22 | if key_material:  | 
            ||
| 23 | key_name = 'key-%s' % (random.randint(1, 100000))  | 
            ||
| 24 | cs.keypairs.create(key_name, key_material)  | 
            ||
| 25 | else:  | 
            ||
| 26 | key_name = None  | 
            ||
| 27 | |||
| 28 |         self.logger.info('Creating server...') | 
            ||
| 29 | |||
| 30 | server = cs.servers.create(name=name, image=image, flavor=flavor,  | 
            ||
| 31 | key_name=key_name, meta=metadata)  | 
            ||
| 32 | |||
| 33 | # Block until provisioned  | 
            ||
| 34 | self.pyrax.utils.wait_for_build(server)  | 
            ||
| 35 | |||
| 36 |         self.logger.info('Server successfully created: %s' % (server)) | 
            ||
| 37 | |||
| 38 | result = to_server_dict(server=server)  | 
            ||
| 39 | return result  | 
            ||
| 40 |