def launch(request, tenant_id, image_id): def flavorlist(): try: fl = api.extras_api(request).flavors.list() # TODO add vcpu count to flavors sel = [(f.id, "%s (%svcpu / %sGB Disk / %sMB Ram )" % (f.name, f.vcpus, f.disk, f.ram)) for f in fl] return sorted(sel) except: return [(1, "m1.tiny")] def keynamelist(): try: fl = api.extras_api(request).keypairs.list() sel = [(f.key_name, f.key_name) for f in fl] return sel except: return [] image = api.compute_api(request).images.get(image_id) tenant = api.get_tenant(request, request.user.tenant) form, handled = LaunchForm.maybe_handle( request, initial={"flavorlist": flavorlist(), "keynamelist": keynamelist(), "image_id": image_id} ) if handled: return handled return render_to_response( "dash_launch.html", {"tenant": tenant, "image": image, "form": form}, context_instance=template.RequestContext(request), )
def index(request, tenant_id): tenant = api.get_tenant(request, request.user.tenant) all_images = [] try: all_images = api.glance_api(request).get_images_detailed() if not all_images: messages.info(request, "There are currently no images.") except GlanceClientConnectionError, e: messages.error(request, "Error connecting to glance: %s" % e.message)