| 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 |