a36f514295
Black used with the '-l 79 -S' flags. A future change will ignore this commit in git-blame history by adding a 'git-blame-ignore-revs' file. Change-Id: Ie106a5cec8831e113a2b764b62b712a205e3153b Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
172 lines
4.1 KiB
Python
172 lines
4.1 KiB
Python
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
"""
|
|
Managing policies in the Cluster service.
|
|
|
|
For a full guide see
|
|
https://docs.openstack.org/openstacksdk/latest/user/guides/clustering.html
|
|
"""
|
|
|
|
CLUSTER_NAME = "Test_Cluster"
|
|
CLUSTER_ID = "47d808e5-ce75-4a1e-bfd2-4ed4639e8640"
|
|
PROFILE_ID = "b0e3a680-e270-4eb8-9361-e5c9503fba0a"
|
|
NODE_ID = "dd803d4a-015d-4223-b15f-db29bad3146c"
|
|
POLICY_ID = "c0e3a680-e270-4eb8-9361-e5c9503fba00"
|
|
|
|
|
|
def list_cluster(conn):
|
|
print("List clusters:")
|
|
|
|
for cluster in conn.clustering.clusters():
|
|
print(cluster.to_dict())
|
|
|
|
for cluster in conn.clustering.clusters(sort='name:asc'):
|
|
print(cluster.to_dict())
|
|
|
|
|
|
def create_cluster(conn):
|
|
print("Create cluster:")
|
|
|
|
spec = {
|
|
"name": CLUSTER_NAME,
|
|
"profile_id": PROFILE_ID,
|
|
"min_size": 0,
|
|
"max_size": -1,
|
|
"desired_capacity": 1,
|
|
}
|
|
|
|
cluster = conn.clustering.create_cluster(**spec)
|
|
print(cluster.to_dict())
|
|
|
|
|
|
def get_cluster(conn):
|
|
print("Get cluster:")
|
|
|
|
cluster = conn.clustering.get_cluster(CLUSTER_ID)
|
|
print(cluster.to_dict())
|
|
|
|
|
|
def find_cluster(conn):
|
|
print("Find cluster:")
|
|
|
|
cluster = conn.clustering.find_cluster(CLUSTER_ID)
|
|
print(cluster.to_dict())
|
|
|
|
|
|
def update_cluster(conn):
|
|
print("Update cluster:")
|
|
|
|
spec = {
|
|
"name": "Test_Cluster001",
|
|
"profile_id": "c0e3a680-e270-4eb8-9361-e5c9503fba0a",
|
|
"profile_only": True,
|
|
}
|
|
cluster = conn.clustering.update_cluster(CLUSTER_ID, **spec)
|
|
print(cluster.to_dict())
|
|
|
|
|
|
def delete_cluster(conn):
|
|
print("Delete cluster:")
|
|
|
|
conn.clustering.delete_cluster(CLUSTER_ID)
|
|
print("Cluster deleted.")
|
|
|
|
# cluster support force delete
|
|
conn.clustering.delete_cluster(CLUSTER_ID, False, True)
|
|
print("Cluster deleted")
|
|
|
|
|
|
def add_nodes_to_cluster(conn):
|
|
print("Add nodes to cluster:")
|
|
|
|
node_ids = [NODE_ID]
|
|
res = conn.clustering.add_nodes_to_cluster(CLUSTER_ID, node_ids)
|
|
print(res)
|
|
|
|
|
|
def remove_nodes_from_cluster(conn):
|
|
print("Remove nodes from a cluster:")
|
|
|
|
node_ids = [NODE_ID]
|
|
res = conn.clustering.remove_nodes_from_cluster(CLUSTER_ID, node_ids)
|
|
print(res)
|
|
|
|
|
|
def replace_nodes_in_cluster(conn):
|
|
print("Replace the nodes in a cluster with specified nodes:")
|
|
|
|
old_node = NODE_ID
|
|
new_node = "cd803d4a-015d-4223-b15f-db29bad3146c"
|
|
spec = {old_node: new_node}
|
|
res = conn.clustering.replace_nodes_in_cluster(CLUSTER_ID, **spec)
|
|
print(res)
|
|
|
|
|
|
def scale_out_cluster(conn):
|
|
print("Inflate the size of a cluster:")
|
|
|
|
res = conn.clustering.scale_out_cluster(CLUSTER_ID, 1)
|
|
print(res)
|
|
|
|
|
|
def scale_in_cluster(conn):
|
|
print("Shrink the size of a cluster:")
|
|
|
|
res = conn.clustering.scale_in_cluster(CLUSTER_ID, 1)
|
|
print(res)
|
|
|
|
|
|
def resize_cluster(conn):
|
|
print("Resize of cluster:")
|
|
|
|
spec = {
|
|
'min_size': 1,
|
|
'max_size': 6,
|
|
'adjustment_type': 'EXACT_CAPACITY',
|
|
'number': 2,
|
|
}
|
|
res = conn.clustering.resize_cluster(CLUSTER_ID, **spec)
|
|
print(res)
|
|
|
|
|
|
def attach_policy_to_cluster(conn):
|
|
print("Attach policy to a cluster:")
|
|
|
|
spec = {'enabled': True}
|
|
res = conn.clustering.attach_policy_to_cluster(
|
|
CLUSTER_ID, POLICY_ID, **spec
|
|
)
|
|
print(res)
|
|
|
|
|
|
def detach_policy_from_cluster(conn):
|
|
print("Detach a policy from a cluster:")
|
|
|
|
res = conn.clustering.detach_policy_from_cluster(CLUSTER_ID, POLICY_ID)
|
|
print(res)
|
|
|
|
|
|
def check_cluster(conn):
|
|
print("Check cluster:")
|
|
|
|
res = conn.clustering.check_cluster(CLUSTER_ID)
|
|
print(res)
|
|
|
|
|
|
def recover_cluster(conn):
|
|
print("Recover cluster:")
|
|
|
|
spec = {'check': True}
|
|
res = conn.clustering.recover_cluster(CLUSTER_ID, **spec)
|
|
print(res)
|