def _copy_cloned_experiment_input_uris()

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


def _copy_cloned_experiment_input_uris(request, cloned_experiment):
    # update the experimentInputs of type URI, copying input files into the
    # tmp input files directory of the data store
    for experiment_input in cloned_experiment.experimentInputs:
        # skip inputs without values
        if not experiment_input.value:
            continue
        if experiment_input.type == DataType.URI:
            cloned_data_product = _copy_experiment_input_uri(request,
                                                             experiment_input.value)
            if cloned_data_product is None:
                logger.warning("Setting cloned input {} to null".format(
                    experiment_input.name))
                experiment_input.value = None
            else:
                experiment_input.value = cloned_data_product.productUri
        elif experiment_input.type == DataType.URI_COLLECTION:
            data_product_uris = experiment_input.value.split(
                ",") if experiment_input.value else []
            cloned_data_product_uris = []
            for data_product_uri in data_product_uris:
                cloned_data_product = _copy_experiment_input_uri(request,
                                                                 data_product_uri)
                if cloned_data_product is None:
                    logger.warning(
                        "Omitting a cloned input value for {}".format(
                            experiment_input.name))
                else:
                    cloned_data_product_uris.append(
                        cloned_data_product.productUri)
            experiment_input.value = ",".join(cloned_data_product_uris)