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 |