Skip to content

Site

Helper methods for Site subscriptions that make database interactions easier.

get_active_site_subscriptions(includes=None)

Retrieve active subscriptions specifically for sites.

Parameters:

Name Type Description Default
includes list[str] | None

The fields to be included in the returned Subscription objects.

None

Returns:

Type Description
list[SubscriptionType]

A list of Subscription objects for sites.

Source code in gso/services/subscriptions/site.py
def get_active_site_subscriptions(includes: list[str] | None = None) -> list[SubscriptionType]:
    """Retrieve active subscriptions specifically for sites.

    Args:
        includes: The fields to be included in the returned Subscription objects.

    Returns:
        A list of Subscription objects for sites.
    """
    return get_subscriptions(
        product_types=[ProductType.SITE], lifecycles=[SubscriptionLifecycle.ACTIVE], includes=includes
    )

get_site_by_name(site_name)

Get a site by its name.

Parameters:

Name Type Description Default
site_name str

The name of the site.

required
Source code in gso/services/subscriptions/site.py
def get_site_by_name(site_name: str) -> Site:
    """Get a site by its name.

    Args:
        site_name: The name of the site.
    """
    subscriptions = get_subscriptions(
        product_types=[ProductType.SITE],
        instance_filters=[{"site_name": site_name}],
        includes=["subscription_id"],
        lifecycles=[SubscriptionLifecycle.ACTIVE],
    )
    if not subscriptions:
        msg = f"Site with name {site_name} not found."
        raise ValueError(msg)

    return Site.from_subscription(subscriptions[0]["subscription_id"])

get_all_active_sites()

Retrieve all active sites subscription together with instance values.

Returns:

Type Description
list[dict[str, Any]]

A list of active sites with their subscription IDs and site instances.

Source code in gso/services/subscriptions/site.py
def get_all_active_sites() -> list[dict[str, Any]]:
    """Retrieve all active sites subscription together with instance values.

    Returns:
        A list of active sites with their subscription IDs and site instances.
    """
    return [
        {
            "subscription_id": subscription["subscription_id"],
            "site": Site.from_subscription(subscription["subscription_id"]).site,
        }
        for subscription in get_active_site_subscriptions(includes=["subscription_id"])
    ]