def cleanup_pubsub_topics(pubsub_client: pubsub_v1.PublisherClient, project_id): yesterday = datetime.datetime.utcnow() - datetime.timedelta(days=1) for topic in pubsub_client.list_topics(project=f"projects/{project_id}"): topic_id = topic.name.split("/")[-1] if ( topic_id.startswith(RESOURCE_PREFIX) and resource_name_to_date(topic_id) < yesterday ): pubsub_client.delete_topic(topic=topic.name)
def check_pubsub_topic(pubsub_client: pubsub_v1.PublisherClient, topic): # check topic in pubsub project_path = pubsub_client.project_path(GOOGLE_CLOUD_PROJECT) topics = [ topic_ref.name for topic_ref in pubsub_client.list_topics(project_path) ] if topic not in topics: log.info(f'create pubsub topic {topic}') pubsub_client.create_topic(topic)