Example #1
0
def _launch_cluster_from_thread(request, node_count, roxie_nodes,
                                launch_config):

    # Get needed info
    session = request.session
    access_key_id = session.get('access_key_id')
    secret_access_key = session.get('secret_access_key')
    owner_id = session.get('owner_id')
    region = launch_config['region']

    # Get a new cluster row id
    cluster = Cluster(owner_id=owner_id, node_count=node_count)
    cluster.requesting_ip = request.META.get('REMOTE_ADDR')
    cluster.region = region
    cluster.is_launching = True
    cluster.save()
    cluster_id = cluster.pk

    debug = False

    # Launch Cluster
    if debug:
        launch_cluster(node_count, roxie_nodes, cluster_id, launch_config,
                       access_key_id, secret_access_key, owner_id)
    else:
        args = (node_count, roxie_nodes, cluster_id, launch_config,
                access_key_id, secret_access_key, owner_id)
        thread = Thread(target=launch_cluster, args=args)
        thread.daemon = True
        thread.start()

    return cluster_id