diff options
Diffstat (limited to 'deploy/post/execute.py')
-rw-r--r-- | deploy/post/execute.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/deploy/post/execute.py b/deploy/post/execute.py index d54b2df5..b9665e10 100644 --- a/deploy/post/execute.py +++ b/deploy/post/execute.py @@ -6,6 +6,9 @@ # which accompanies this distribution, and is available at # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## +import os + +import glance import neutron import nova @@ -57,11 +60,48 @@ def _create_flavor_m1_micro(): print ('Use existing m1.micro flavor') +def _prepare_cirros(): + url = 'http://download.cirros-cloud.net' + version = '0.3.5' + name = 'cirros-{}-x86_64-disk.img'.format(version) + img = os.path.join(os.path.abspath(os.path.dirname(__file__)), name) + if not os.path.isfile(img): + cmd = "wget %(url)s/%(version)s/%(name)s -O %(path)s" % { + 'url': url, + 'version': version, + 'name': name, + 'path': img} + try: + print ('Downloading cirros: {}'.format(cmd)) + os.system(cmd) + except Exception as error: + print ('Download cirros failed: {}'.format(str(error))) + img = None + + return img + + +def _create_image_TestVM(): + glanceclient = glance.Glance() + image = 'TestVM' + if not glanceclient.get_by_name(image): + img = _prepare_cirros() + if img: + try: + glanceclient.create(image, img) + except Exception as error: + print ('Create image failed: {}'.format(str(error))) + else: + print ('Use existing TestVM image') + + def main(): neutronclient = neutron.Neutron() nid = neutronclient.create_network(*(_config_admin_external_network())) neutronclient.create_subnet(_config_admin_external_subnet(nid)) _create_flavor_m1_micro() + _create_image_TestVM() + if __name__ == '__main__': main() |