def cluster_upgrade_plan(ctx, cluster_name, vdc, org_name): """Display templates that the specified cluster can upgrade to.""" try: restore_session(ctx) client = ctx.obj['client'] cluster = Cluster(client) if not client.is_sysadmin() and org_name is None: org_name = ctx.obj['profiles'].get('org_in_use') templates = cluster.get_upgrade_plan(cluster_name, vdc=vdc, org=org_name) result = [] for template in templates: result.append({ 'Template Name': template[LocalTemplateKey.NAME], 'Template Revision': template[LocalTemplateKey.REVISION], 'Kubernetes': template[LocalTemplateKey.KUBERNETES_VERSION], 'Docker-CE': template[LocalTemplateKey.DOCKER_VERSION], 'CNI': f"{template[LocalTemplateKey.CNI]} {template[LocalTemplateKey.CNI_VERSION]}" # noqa: E501 }) if not templates: result = f"No valid upgrade targets for cluster '{cluster_name}'" stdout(result, ctx, sort_headers=False) except Exception as e: stderr(e, ctx)
def cluster_upgrade_plan(ctx, cluster_name, vdc, org_name, k8_runtime=None): """Display templates that the specified cluster can upgrade to. \b Examples vcd cse cluster upgrade-plan my-cluster (Supported only for vcd api version < 35) \b vcd cse cluster upgrade-plan --k8-runtime native my-cluster (Supported only for vcd api version >= 35) """ CLIENT_LOGGER.debug(f'Executing command: {ctx.command_path}') try: client_utils.cse_restore_session(ctx) if client_utils.is_cli_for_tkg_only(): if k8_runtime in [ shared_constants.ClusterEntityKind.NATIVE.value, shared_constants.ClusterEntityKind.TKG_PLUS.value ]: # noqa: E501 # Cannot run the command as cse cli is enabled only for native raise CseServerNotRunningError() k8_runtime = shared_constants.ClusterEntityKind.TKG.value client = ctx.obj['client'] cluster = Cluster(client, k8_runtime=k8_runtime) if not client.is_sysadmin() and org_name is None: org_name = ctx.obj['profiles'].get('org_in_use') templates = cluster.get_upgrade_plan(cluster_name, vdc=vdc, org=org_name) result = [] for template in templates: result.append({ 'Template Name': template[LocalTemplateKey.NAME], 'Template Revision': template[LocalTemplateKey.REVISION], 'Kubernetes': template[LocalTemplateKey.KUBERNETES_VERSION], 'Docker-CE': template[LocalTemplateKey.DOCKER_VERSION], 'CNI': f"{template[LocalTemplateKey.CNI]} {template[LocalTemplateKey.CNI_VERSION]}" # noqa: E501 }) if not templates: result = f"No valid upgrade targets for cluster '{cluster_name}'" stdout(result, ctx, sort_headers=False) CLIENT_LOGGER.debug(result) except Exception as e: stderr(e, ctx) CLIENT_LOGGER.error(str(e))