def launch()

in airavata_django_portal_sdk/experiment_util/api.py [0:0]


def launch(request, experiment_id):
    if remoteapi.is_remote_api_configured():
        resp = remoteapi.call(request,
                              "/experiments/{experiment_id}/launch/",
                              path_params={"experiment_id": experiment_id},
                              base_url="/api",
                              method="post")
        data = resp.json()
        if not data["success"]:
            logger.error(f"Failed to launch experiment {experiment_id}: {data['errorMessage']})", extra={'request': request})
            raise Exception(data["errorMessage"])
        return
    else:
        experiment = request.airavata_client.getExperiment(
            request.authz_token, experiment_id)
        _set_storage_id_and_data_dir(request, experiment)
        _move_tmp_input_file_uploads_to_data_dir(request, experiment)
        request.airavata_client.updateExperiment(
            request.authz_token, experiment_id, experiment)
        request.airavata_client.launchExperiment(
            request.authz_token, experiment_id, settings.GATEWAY_ID)