管理接收器

接收器是与 senlin 集群关联的事件接收端。当监控软件检测到某些事件(或告警)时,该软件可以通知 senlin 集群这些事件(或告警)。当 senlin 接收到这些通知时,它可以自动触发一些预定义的、具有预设参数值的操作。

列出接收器

要查看接收器列表

def list_receivers(conn):
    print("List Receivers:")

    for receiver in conn.clustering.receivers():
        print(receiver.to_dict())

    for receiver in conn.clustering.receivers(sort='name:asc'):
        print(receiver.to_dict())

在列出接收器时,可以使用 sort 参数指定排序选项,并可以使用 limitmarker 参数进行分页。

完整示例:管理接收器

创建接收器

创建接收器时,您将提供一个字典,其中包含根据引用的接收器类型相应的键和值。

def create_receiver(conn):
    print("Create Receiver:")

    # Build the receiver attributes and create the recever.
    spec = {
        "action": "CLUSTER_SCALE_OUT",
        "cluster_id": CLUSTER_ID,
        "name": FAKE_NAME,
        "params": {"count": "1"},
        "type": "webhook",
    }

    receiver = conn.clustering.create_receiver(**spec)
    print(receiver.to_dict())

可选地,您可以指定一个 metadata 关键字参数,其中包含一些键值对,这些键值对将与接收器关联。

完整示例:管理接收器

获取接收器

要根据其名称或 ID 获取接收器

def get_receiver(conn):
    print("Get Receiver:")

    receiver = conn.clustering.get_receiver(FAKE_NAME)
    print(receiver.to_dict())

完整示例:管理接收器

查找接收器

要根据其名称或 ID 查找接收器

def find_receiver(conn):
    print("Find Receiver:")

    receiver = conn.clustering.find_receiver(FAKE_NAME)
    print(receiver.to_dict())

完整示例:管理接收器

更新接收器

创建接收器后,其大部分属性都是不可变的。不过,您可以更新接收器的 name 和/或 params

def update_receiver(conn):
    print("Update Receiver:")

    spec = {"name": "test_receiver2", "params": {"count": "2"}}
    receiver = conn.clustering.update_receiver(FAKE_NAME, **spec)
    print(receiver.to_dict())

完整示例:管理接收器

删除接收器

可以在创建后删除接收器,前提是它没有被任何活动集群引用。如果您尝试删除仍在使用的接收器,将收到错误消息。

def delete_receiver(conn):
    print("Delete Receiver:")

    conn.clustering.delete_receiver(FAKE_NAME)
    print("Receiver deleted.")