def runinstance(request): """Run a CloudBioLinux/CloudMan instance with current session credentials. """ form = request.session["ec2data"] rs = None instance_type = form['instance_type'] # Create EC2 connection with provided creds ec2_conn = connect_ec2(form["access_key"], form["secret_key"], form['cloud']) form["freenxpass"] = form["password"] if form['image_id']: image = models.Image.objects.get(pk=form['image_id']) else: try: image = models.Image.objects.get(cloud=form['cloud'], default=True) except models.Image.DoesNotExist: log.error("Cannot find an image to launch for cloud {0}".format( form['cloud'])) return False rs = run_instance( ec2_conn=ec2_conn, user_provided_data=form, image_id=image.image_id, kernel_id=image.kernel_id if image.kernel_id != '' else None, ramdisk_id=image.ramdisk_id if image.ramdisk_id != '' else None, key_name=form["kp_name"], security_groups=[form["sg_name"]], placement=form['placement']) if rs is not None: request.session['ec2data']['instance_id'] = rs.instances[0].id request.session['ec2data']['public_dns'] = rs.instances[ 0].public_dns_name request.session['ec2data']['image_id'] = rs.instances[0].image_id # Add an entry to the Usage table try: u = models.Usage(cloud_name=form["cloud_name"], cloud_type=form["cloud_type"], image_id=image.image_id, instance_type=instance_type, user_id=form["access_key"]) u.save() except Exception, e: log.debug("Trouble saving Usage data: {0}".format(e)) return True
def runinstance(request): """Run a CloudBioLinux/CloudMan instance with current session credentials. """ form = request.session["ec2data"] rs = None instance_type = form['instance_type'] # Create EC2 connection with provided creds ec2_conn = connect_ec2(form["access_key"], form["secret_key"], form['cloud']) form["freenxpass"] = form["password"] if form['image_id']: image = models.Image.objects.get(pk=form['image_id']) else: try: image = models.Image.objects.get(cloud=form['cloud'], default=True) except models.Image.DoesNotExist: log.error("Cannot find an image to launch for cloud {0}".format(form['cloud'])) return False rs = run_instance(ec2_conn=ec2_conn, user_provided_data=form, image_id=image.image_id, kernel_id=image.kernel_id if image.kernel_id != '' else None, ramdisk_id=image.ramdisk_id if image.ramdisk_id != '' else None, key_name=form["kp_name"], security_groups=[form["sg_name"]], placement=form['placement']) if rs is not None: request.session['ec2data']['instance_id'] = rs.instances[0].id request.session['ec2data']['public_dns'] = rs.instances[0].public_dns_name request.session['ec2data']['image_id'] = rs.instances[0].image_id # Add an entry to the Usage table try: u = models.Usage(cloud_name=form["cloud_name"], cloud_type=form["cloud_type"], image_id=image.image_id, instance_type=instance_type, user_id=form["access_key"]) u.save() except Exception, e: log.debug("Trouble saving Usage data: {0}".format(e)) return True
request.session["ec2data"] = params if params['image_id']: image = models.Image.objects.get(pk=params['image_id']) else: try: image = models.Image.objects.get(cloud=params['cloud'], default=True) except models.Image.DoesNotExist: log.error("Cannot find an image to launch for cloud {0}".format(params['cloud'])) result = HttpResponse(simplejson.dumps("ERROR")) return result ec2_conn = connect_ec2(params["access_key"], params["secret_key"], cloud) rs = run_instance(ec2_conn=ec2_conn, user_provided_data=params, image_id=image.image_id, kernel_id=image.kernel_id if image.kernel_id != '' else None, ramdisk_id=image.ramdisk_id if image.ramdisk_id != '' else None, key_name=params["kp_name"], security_groups=[params["sg_name"]])#, #placement=params['placement']) ## TODO: Save usage file? instance_id = rs.instances[0].id public_dns = rs.instances[0].public_dns_name image_id = rs.instances[0].image_id result_dict = { "instance_id": instance_id, "public_dns": public_dns, "image_id": image_id, } else: result_dict = {"error": ec2_error}