def delete_subscription( *, dataset: Dataset, partition: int, key: str, entity: Entity ) -> RespTuple: if entity not in dataset.get_all_entities(): raise InvalidSubscriptionError( "Invalid subscription dataset and entity combination" ) entity_key = ENTITY_NAME_LOOKUP[entity] SubscriptionDeleter(entity_key, PartitionId(partition)).delete(UUID(key)) metrics.increment("subscription_deleted", tags={"entity": entity_key.value}) return "ok", 202, {"Content-Type": "text/plain"}
def truncate_dataset(dataset: Dataset) -> None: for entity in dataset.get_all_entities(): for storage in entity.get_all_storages(): cluster = storage.get_cluster() clickhouse = cluster.get_query_connection(ClickhouseClientSettings.MIGRATE) database = cluster.get_database() schema = storage.get_schema() if not isinstance(schema, TableSchema): return table = schema.get_local_table_name() clickhouse.execute(f"TRUNCATE TABLE IF EXISTS {database}.{table}")
def create_subscription(*, dataset: Dataset, timer: Timer, entity: Entity) -> RespTuple: if entity not in dataset.get_all_entities(): raise InvalidSubscriptionError( "Invalid subscription dataset and entity combination" ) entity_key = ENTITY_NAME_LOOKUP[entity] subscription = SubscriptionDataCodec(entity_key).decode(http_request.data) identifier = SubscriptionCreator(dataset, entity_key).create(subscription, timer) metrics.increment("subscription_created", tags={"entity": entity_key.value}) return ( json.dumps({"subscription_id": str(identifier)}), 202, {"Content-Type": "application/json"}, )