A profile type can be treated as the meta-type of a Profile object. A registry of profile types is built when the Cluster service starts. When creating a Profile object, you will indicate the profile type used in its spec property.
To examine the list of profiles:
def list_profiles(conn):
print("List Profiles:")
for profile in conn.cluster.profiles():
print(profile.to_dict())
for profile in conn.cluster.profiles(sort='name:asc'):
print(profile.to_dict())
When listing profiles, you can specify the sorting option using the sort
parameter and you can do pagination using the limit
and marker
parameters.
Full example: manage profile
When creating a profile, you will provide a dictionary with keys and values specified according to the profile type referenced.
def create_profile(conn):
print("Create Profile:")
spec = {
'profile': 'os.nova.server',
'version': 1.0,
'properties': {
'name': SERVER_NAME,
'flavor': FLAVOR_NAME,
'image': IMAGE_NAME,
'networks': {
'network': NETWORK_NAME
}
}
}
profile = conn.cluster.create_profile('os_server', spec)
print(profile.to_dict())
Optionally, you can specify a metadata
keyword argument that contains some
key-value pairs to be associated with the profile.
Full example: manage profile
To find a profile based on its name or ID:
def find_profile(conn):
print("Find Profile:")
profile = conn.cluster.find_profile('os_server')
print(profile.to_dict())
The Cluster service doesn’t allow updating the spec
of a profile. The only
way to achieve that is to create a new profile.
Full example: manage profile
To get a profile based on its name or ID:
def get_profile(conn):
print("Get Profile:")
profile = conn.cluster.get_profile('os_server')
print(profile.to_dict())
Full example: manage profile
After a profile is created, most of its properties are immutable. Still, you
can update a profile’s name
and/or metadata
.
def update_profile(conn):
print("Update Profile:")
profile = conn.cluster.update_profile('os_server', name='old_server')
print(profile.to_dict())
The Cluster service doesn’t allow updating the spec
of a profile. The only
way to achieve that is to create a new profile.
Full example: manage profile
A profile can be deleted after creation, provided that it is not referenced by any active clusters or nodes. If you attempt to delete a profile that is still in use, you will get an error message.
def delete_profile(conn):
print("Delete Profile:")
conn.cluster.delete_profile('os_server')
print("Profile deleted.")
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.