def _deploy_cluster(zone): if not xmlobject.has_element(zone, "clusters.cluster"): return if zone.duplication__ == None: zone_duplication = 1 else: zone_duplication = int(zone.duplication__) for zone_ref in range(zone_duplication): for cluster in xmlobject.safe_list(zone.clusters.cluster): if cluster_name and cluster_name != cluster.name_: continue if cluster.duplication__ == None: cluster_duplication = 1 else: cluster_duplication = int(cluster.duplication__) for cluster_ref in range(cluster_duplication): action = api_actions.CreateClusterAction() action.sessionUuid = session_uuid action.name = generate_dup_name(generate_dup_name(cluster.name_, zone_ref, 'z'), cluster_ref, 'c') action.description = generate_dup_name(generate_dup_name(cluster.description__, zone_ref, 'z'), cluster_ref, 'c') action.hypervisorType = cluster.hypervisorType_ zone_name = generate_dup_name(zone.name_, zone_ref, 'z') zinvs = res_ops.get_resource(res_ops.ZONE, session_uuid, name=zone_name) zinv = get_first_item_from_list(zinvs, 'Zone', zone_name, 'Cluster') action.zoneUuid = zinv.uuid thread = threading.Thread(target=_add_cluster, args=(action, zone_ref, cluster, cluster_ref, )) wait_for_thread_queue() thread.start()
def create_cluster(cluster_option, session_uuid=None): action = api_actions.CreateClusterAction() action.timeout = 30000 action.name = cluster_option.get_name() action.description = cluster_option.get_description() action.hypervisorType = cluster_option.get_hypervisor_type() action.type = cluster_option.get_type() evt = account_operations.execute_action_with_session(action, session_uuid) test_util.action_logger('Create Cluster [uuid:] %s [name:] %s' % \ (evt.uuid, action.name)) return evt.inventory