管理配置

配置类型可以被视为 配置 对象的元类型。当集群服务启动时,会构建一个配置类型注册表。创建 配置 对象时,您将在其 spec 属性中指定使用的配置类型。

列出配置

要查看配置列表

def list_profiles(conn):
    print("List Profiles:")

    for profile in conn.clustering.profiles():
        print(profile.to_dict())

    for profile in conn.clustering.profiles(sort='name:asc'):
        print(profile.to_dict())

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

完整示例:管理配置

创建配置

创建配置时,您将提供一个字典,其中键和值根据引用的配置类型指定。

def create_profile(conn):
    print("Create Profile:")

    spec = {
        'profile': 'os.nova.server',
        'version': 1.0,
        'name': 'os_server',
        'properties': {
            'name': SERVER_NAME,
            'flavor': FLAVOR_NAME,
            'image': IMAGE_NAME,
            'networks': {'network': NETWORK_NAME},
        },
    }

    profile = conn.clustering.create_profile(spec)
    print(profile.to_dict())

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

完整示例:管理配置

查找配置

要根据其名称或 ID 查找配置

def find_profile(conn):
    print("Find Profile:")

    profile = conn.clustering.find_profile('os_server')
    print(profile.to_dict())

集群服务不允许更新配置的 spec。实现此目的的唯一方法是创建一个新的配置。

完整示例:管理配置

获取配置

要根据其名称或 ID 获取配置

def get_profile(conn):
    print("Get Profile:")

    profile = conn.clustering.get_profile('os_server')
    print(profile.to_dict())

完整示例:管理配置

更新配置

创建配置后,其大部分属性都是不可变的。不过,您可以更新配置的 name 和/或 metadata

def update_profile(conn):
    print("Update Profile:")

    profile = conn.clustering.update_profile('os_server', name='old_server')
    print(profile.to_dict())

集群服务不允许更新配置的 spec。实现此目的的唯一方法是创建一个新的配置。

完整示例:管理配置

删除配置

创建配置后可以删除它,前提是它未被任何活动集群或节点引用。如果您尝试删除仍在使用的配置,将收到错误消息。

def delete_profile(conn):
    print("Delete Profile:")

    conn.clustering.delete_profile('os_server')

    print("Profile deleted.")