Skip to main content
Glama
yjiace

AlibabaCloud DevOps MCP Server

by yjiace
vmDeployOrder.ts8.6 kB
import * as utils from "../../common/utils.js"; import { z } from "zod"; // 定义VM部署单相关的Zod模式 export const DeployOrderMachineActionSchema = z.object({ type: z.string().nullable().optional().describe("类型 RetryVMDeployMachine重试机器部署 SkipVMDeployMachine跳过机器部署 LogVMDeployMachine查看机器部署日志"), disable: z.boolean().nullable().optional().describe("当前用户是否有权限进行后续 action"), params: z.object({}).nullable().optional().describe("参数"), }); export const DeployOrderMachineSchema = z.object({ createTime: z.number().int().nullable().optional().describe("创建时间"), updateTime: z.number().int().nullable().optional().describe("更新时间"), status: z.string().nullable().optional().describe("状态 Success成功 Pending待部署 Running部署中 Cancelled取消 Queued部署等待中 Failed失败 Skipped已跳过"), machineSn: z.string().nullable().optional().describe("机器sn"), clientStatus: z.string().nullable().optional().describe("机器状态 ok(正常) error(连接失败)"), ip: z.string().nullable().optional().describe("机器ip"), batchNum: z.number().int().nullable().optional().describe("部署批次"), actions: z.array(DeployOrderMachineActionSchema).nullable().optional().describe("操作列表"), }); export const DeployOrderDeployMachinesSchema = z.object({ hostGroupId: z.number().int().nullable().optional().describe("主机组Id"), batchNum: z.number().int().nullable().optional().describe("发布批次"), deployMachines: z.array(DeployOrderMachineSchema).nullable().optional().describe("部署机器列表"), }); export const DeployOrderActionSchema = z.object({ type: z.string().nullable().optional().describe("类型 StopVMDeployOrder 取消部署单 ResumeVMDeployOrder 继续部署单运行"), disable: z.boolean().nullable().optional().describe("当前用户是否有权限进行后续 action"), params: z.object({}).nullable().optional().describe("参数"), }); export const DeployOrderSchema = z.object({ deployOrderId: z.number().int().nullable().optional().describe("部署单id"), createTime: z.number().int().nullable().optional().describe("创建时间"), updateTime: z.number().int().nullable().optional().describe("更新时间"), creator: z.string().nullable().optional().describe("创建人"), currentBatch: z.number().int().nullable().optional().describe("当前发布批次"), totalBatch: z.number().int().nullable().optional().describe("总发布批次"), status: z.string().nullable().optional().describe("发布状态 Waiting暂停 Running部署中 Cancelled已取消 Success成功"), exceptionCode: z.string().nullable().optional().describe("错误码"), actions: z.array(DeployOrderActionSchema).nullable().optional().describe("操作列表"), deployMachineInfo: DeployOrderDeployMachinesSchema.nullable().optional().describe("部署机器信息"), }); export const DeployOrderLogSchema = z.object({ deployLog: z.string().nullable().optional().describe("部署日志"), aliyunRegion: z.string().nullable().optional().describe("部署地域"), deployLogPath: z.string().nullable().optional().describe("部署日志路径"), deployBeginTime: z.string().nullable().optional().describe("部署开始时间"), deployEndTime: z.string().nullable().optional().describe("部署结束时间"), }); // 定义API请求参数的Zod模式 export const BaseVMDeployOrderSchema = z.object({ organizationId: z.string().describe("企业Id"), pipelineId: z.string().describe("流水线Id"), deployOrderId: z.string().describe("部署单Id"), }); export const StopVMDeployOrderSchema = BaseVMDeployOrderSchema; export const SkipVMDeployMachineSchema = BaseVMDeployOrderSchema.extend({ machineSn: z.string().describe("机器sn"), }); export const RetryVMDeployMachineSchema = BaseVMDeployOrderSchema.extend({ machineSn: z.string().describe("机器sn"), }); export const ResumeVMDeployOrderSchema = BaseVMDeployOrderSchema; export const GetVMDeployOrderSchema = BaseVMDeployOrderSchema; export const GetVMDeployMachineLogSchema = BaseVMDeployOrderSchema.extend({ machineSn: z.string().describe("机器sn"), }); // 定义类型 export type DeployOrderMachineAction = z.infer<typeof DeployOrderMachineActionSchema>; export type DeployOrderMachine = z.infer<typeof DeployOrderMachineSchema>; export type DeployOrderDeployMachines = z.infer<typeof DeployOrderDeployMachinesSchema>; export type DeployOrderAction = z.infer<typeof DeployOrderActionSchema>; export type DeployOrder = z.infer<typeof DeployOrderSchema>; export type DeployOrderLog = z.infer<typeof DeployOrderLogSchema>; export type StopVMDeployOrderParams = z.infer<typeof StopVMDeployOrderSchema>; export type SkipVMDeployMachineParams = z.infer<typeof SkipVMDeployMachineSchema>; export type RetryVMDeployMachineParams = z.infer<typeof RetryVMDeployMachineSchema>; export type ResumeVMDeployOrderParams = z.infer<typeof ResumeVMDeployOrderSchema>; export type GetVMDeployOrderParams = z.infer<typeof GetVMDeployOrderSchema>; export type GetVMDeployMachineLogParams = z.infer<typeof GetVMDeployMachineLogSchema>; /** * 终止机器部署 * @param organizationId 企业Id * @param pipelineId 流水线Id * @param deployOrderId 部署单Id * @returns 是否成功 */ export async function stopVMDeployOrderFunc( organizationId: string, pipelineId: string, deployOrderId: string ): Promise<boolean> { const url = `/oapi/v1/flow/organizations/${organizationId}/pipelines/${pipelineId}/deploy/${deployOrderId}/stop`; const response = await utils.yunxiaoRequest(url, { method: "PUT", }); return Boolean(response); } /** * 跳过机器部署 * @param organizationId 企业Id * @param pipelineId 流水线Id * @param deployOrderId 部署单Id * @param machineSn 机器sn * @returns 是否成功 */ export async function skipVMDeployMachineFunc( organizationId: string, pipelineId: string, deployOrderId: string, machineSn: string ): Promise<boolean> { const url = `/oapi/v1/flow/organizations/${organizationId}/pipelines/${pipelineId}/deploy/${deployOrderId}/machine/${machineSn}/skip`; const response = await utils.yunxiaoRequest(url, { method: "PUT", }); return Boolean(response); } /** * 重试机器部署 * @param organizationId 企业Id * @param pipelineId 流水线Id * @param deployOrderId 部署单Id * @param machineSn 机器sn * @returns 是否成功 */ export async function retryVMDeployMachineFunc( organizationId: string, pipelineId: string, deployOrderId: string, machineSn: string ): Promise<boolean> { const url = `/oapi/v1/flow/organizations/${organizationId}/pipelines/${pipelineId}/deploy/${deployOrderId}/machine/${machineSn}/retry`; const response = await utils.yunxiaoRequest(url, { method: "PUT", }); return Boolean(response); } /** * 继续部署单运行 * @param organizationId 企业Id * @param pipelineId 流水线Id * @param deployOrderId 部署单Id * @returns 是否成功 */ export async function resumeVMDeployOrderFunc( organizationId: string, pipelineId: string, deployOrderId: string ): Promise<boolean> { const url = `/oapi/v1/flow/organizations/${organizationId}/pipelines/${pipelineId}/deploy/${deployOrderId}/resume`; const response = await utils.yunxiaoRequest(url, { method: "PUT", }); return Boolean(response); } /** * 获取部署单详情 * @param organizationId 企业Id * @param pipelineId 流水线id * @param deployOrderId 部署Id * @returns 部署单详情 */ export async function getVMDeployOrderFunc( organizationId: string, pipelineId: string, deployOrderId: string ): Promise<DeployOrder> { const url = `/oapi/v1/flow/organizations/${organizationId}/pipelines/${pipelineId}/deploy/${deployOrderId}`; const response = await utils.yunxiaoRequest(url, { method: "GET", }); return DeployOrderSchema.parse(response); } /** * 查询机器部署日志 * @param organizationId 企业Id * @param pipelineId 流水线Id * @param deployOrderId 部署单Id * @param machineSn 机器sn * @returns 机器部署日志 */ export async function getVMDeployMachineLogFunc( organizationId: string, pipelineId: string, deployOrderId: string, machineSn: string ): Promise<DeployOrderLog> { const url = `/oapi/v1/flow/organizations/${organizationId}/pipelines/${pipelineId}/deploy/${deployOrderId}/machine/${machineSn}/log`; const response = await utils.yunxiaoRequest(url, { method: "GET", }); return DeployOrderLogSchema.parse(response); }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/yjiace/alibabacloud-devops-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server