export default async function aksCreateCluster()

in src/commands/aksCreateCluster/aksCreateCluster.ts [16:80]


export default async function aksCreateCluster(_context: IActionContext, target: unknown): Promise<void> {
    let subscriptionId: string | undefined;
    let subscriptionName: string | undefined;
    let commandId: string | undefined;

    const cloudExplorer = await k8s.extension.cloudExplorer.v1;
    const sessionProvider = await getReadySessionProvider();

    if (failed(sessionProvider)) {
        vscode.window.showErrorMessage(sessionProvider.error);
        return;
    }

    if (typeof target === "string") {
        const subscriptionResult = await getSubscription(sessionProvider.result, target);

        if (failed(subscriptionResult)) {
            vscode.window.showErrorMessage(subscriptionResult.error);
            return;
        }

        commandId = "aks.aksCreateClusterFromCopilot";
        subscriptionId = subscriptionResult.result?.subscriptionId;
        subscriptionName = subscriptionResult.result?.displayName;
    } else {
        const subscriptionNode = getAksClusterSubscriptionNode(target, cloudExplorer);

        if (failed(subscriptionNode)) {
            vscode.window.showErrorMessage(subscriptionNode.error);
            return;
        }

        if (!subscriptionNode.result?.subscriptionId || !subscriptionNode.result?.name) {
            vscode.window.showErrorMessage("Subscription not found.");
            return;
        }

        commandId = "aks.createCluster";
        subscriptionId = subscriptionNode.result?.subscriptionId;
        subscriptionName = subscriptionNode.result?.name;
    }

    const extension = getExtension();
    if (failed(extension)) {
        vscode.window.showErrorMessage(extension.error);
        return;
    }

    const panel = new CreateClusterPanel(extension.result.extensionUri);

    if (!subscriptionId || !subscriptionName) {
        vscode.window.showErrorMessage("Subscription ID or Name is undefined.");
        return;
    }

    const dataProvider = new CreateClusterDataProvider(
        sessionProvider.result,
        subscriptionId,
        subscriptionName,
        () => vscode.commands.executeCommand("aks.refreshSubscription", target),
        commandId,
    );

    panel.show(dataProvider);
}