Ejemplo n.º 1
0
def get_workflow_instances(base_url, digest_login, params):
    """
    Get workflow instances.

    :param base_url: The URL for the request
    :type base_url: str
    :param digest_login: The login credentials for digest authentication
    :type digest_login: DigestLogin
    :param params: Additional parameters
    :type params: dict
    :return: list of workflow instances
    :rtype: dict
    """

    url = '{}/workflow/instances.json'.format(base_url)

    for i, param in enumerate(params):
        if i == 0:
            url += "?"
        else:
            url += "&"
        url += param + "=" + params.get(param)

    response = get_request(url, digest_login, "workflow instances")
    return get_json_content(response)["workflows"]
Ejemplo n.º 2
0
def __get_acls_of_event(event, base_url, digest_login):
    """
    Get two lists for episode and series ACLs for a given event.

    :param event: The event
    :type event: dict
    :param base_url: The base URL for the request
    :type base_url: str
    :param digest_login: The login credentials for digest authentication
    :type digest_login: DigestLogin
    :return: The episode and series acls
    :rtype: list, list
    :raise RequestError:
    """

    url = '{}/admin-ng/event/{}/asset/attachment/attachments.json'.format(base_url, get_id(event))

    response = get_request(url, digest_login, ElementDescription.EVENT.unknown(), AssetTypeDescription.BOTH.plural(),
                           AssetDescription.ACL.plural())

    json_content = get_json_content(response)

    episode_acls = [__get_asset_content(acl, digest_login, ElementDescription.EVENT.unknown(),
                                        AssetTypeDescription.EPISODE.singular(), AssetDescription.ACL.singular())
                    for acl in json_content if "security-policy-episode" in acl["id"]]
    series_acls = [__get_asset_content(acl, digest_login, ElementDescription.EVENT.unknown(),
                                       AssetTypeDescription.SERIES.singular(), AssetDescription.ACL.singular())
                   for acl in json_content if "security-policy-series" in acl["id"]]

    return episode_acls, series_acls
Ejemplo n.º 3
0
def __get_dcs_of_event(event, base_url, digest_login):
    """
    Get two lists for episode and series Dublin Core catalogs for a given event.

    :param event: The event
    :type event: dict
    :param base_url: The base URL for the request
    :type base_url: str
    :param digest_login: The login credentials for digest authentication
    :type digest_login: DigestLogin
    :return: The episode and series Dublin Core catalogs
    :rtype: list, list
    :raise RequestError:
    """

    url = '{}/admin-ng/event/{}/asset/catalog/catalogs.json'.format(base_url, get_id(event))

    response = get_request(url, digest_login, ElementDescription.EVENT.unknown(), AssetTypeDescription.BOTH.plural(),
                           AssetDescription.DC.plural())

    json_content = get_json_content(response)

    episode_dcs = [__get_asset_content(catalog, digest_login, ElementDescription.EVENT.unknown(),
                                       AssetTypeDescription.EPISODE.singular(), AssetDescription.DC.singular())
                   for catalog in json_content if "dublincore/episode" in catalog["type"]]
    series_dcs = [__get_asset_content(catalog, digest_login, ElementDescription.EVENT.unknown(),
                                      AssetTypeDescription.SERIES.singular(), AssetDescription.DC.singular())
                  for catalog in json_content if "dublincore/series" in catalog["type"]]

    return episode_dcs, series_dcs
Ejemplo n.º 4
0
def __get_acl_of_series(series, base_url, digest_login):
    """
    Get the series ACL for a given series.

    :param series: The series
    :type series: dict
    :param base_url: The base URL for the request
    :type base_url: str
    :param digest_login: The login credentials for digest authentication
    :type digest_login: DigestLogin
    :return: The series ACL
    :rtype: dict
    :raise RequestError:
    """

    url = "{}/series/{}/acl.json".format(base_url, get_id(series))

    response = get_request(url, digest_login, ElementDescription.SERIES.unknown(),
                           AssetTypeDescription.SERIES.singular(),
                           AssetDescription.ACL.singular())

    json_content = get_json_content(response)

    series_acl = json_content["acl"]

    return series_acl
Ejemplo n.º 5
0
def get_tenants(base_url, digest_login):
    """
    Return a sorted list of unique tenant IDs

    :param base_url: The URL to an opencast instance
    :type base_url: str
    :param digest_login: The login credentials for digest authentication
    :type digest_login: DigestLogin
    :return: tenant ids
    :raise RequestError:
    """

    url = '{}/org/all.json'.format(base_url)

    response = get_request(url, digest_login, "tenants")

    json_content = get_json_content(response)

    if isinstance(json_content["organizations"]["organization"], list):
        tenants = [
            org["id"]
            for org in (json_content["organizations"])["organization"]
        ]
        tenants = sorted(set(tenants))
    else:
        tenants = [json_content["organizations"]["organization"]["id"]]
    return tenants
Ejemplo n.º 6
0
def get_events_of_series(base_url, digest_login, series_id):
    """
    Get the events for a series from the API

    :param base_url: The base URL for the request
    :type base_url: str
    :param digest_login: The login credentials for digest authentication
    :type digest_login: DigestLogin
    :param series_id: The series id
    :type series_id: str
    :return: list of events
    :rtype: list
    :raise RequestError:
    """

    url = '{}/api/events/?filter=is_part_of:{}'.format(base_url, series_id)

    response = get_request(url, digest_login, "events")
    return get_json_content(response)
Ejemplo n.º 7
0
def get_events(base_url, digest_login):
    """
    Return all events of one tenant.

    :param base_url: The URL to an opencast instance including the tenant
    :type base_url: str
    :param digest_login: The login credentials for digest authentication
    :type digest_login: DigestLogin
    :return: events
    """

    url = '{}/admin-ng/event/events.json?limit={}'.format(
        base_url, JAVA_MAX_INT)

    response = get_request(url, digest_login, "events")

    json_content = get_json_content(response)

    return json_content["results"]
Ejemplo n.º 8
0
def get_episode_from_search(base_url, digest_login, event_id):
    """
    Get episode from search as json.

    :param base_url: The base URL for the request
    :type base_url: str
    :param digest_login: The login credentials for digest authentication
    :type digest_login: DigestLogin
    :param event_id: The event id
    :type event_id: str
    :return: episode as json or None
    :rtype: episode as json or None
    :raise RequestError:
    """

    url = '{}/search/episode.json?id={}'.format(base_url, event_id)

    response = get_request(url, digest_login, "search episode")
    search_results = get_json_content(response)["search-results"]
    if "result" in search_results:
        return search_results["result"]
    return None