summaryrefslogtreecommitdiffstats
path: root/deploy/post/execute.py
diff options
context:
space:
mode:
Diffstat (limited to 'deploy/post/execute.py')
-rw-r--r--deploy/post/execute.py40
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()