diff --git a/packages/core/pipeline/src/plugin/api.ts b/packages/core/pipeline/src/plugin/api.ts index 1a2349b7b..60985e0ce 100644 --- a/packages/core/pipeline/src/plugin/api.ts +++ b/packages/core/pipeline/src/plugin/api.ts @@ -102,6 +102,7 @@ export abstract class AbstractTaskPlugin implements ITaskPlugin { _result: TaskResult = { clearLastStatus: false, files: [], pipelineVars: {}, pipelinePrivateVars: {} }; ctx!: TaskInstanceContext; logger!: ILogger; + http!: HttpClient; accessService!: IAccessService; clearLastStatus() { @@ -122,6 +123,7 @@ export abstract class AbstractTaskPlugin implements ITaskPlugin { this.ctx = ctx; this.logger = ctx.logger; this.accessService = ctx.accessService; + this.http = ctx.http; } async getAccess(accessId: string) { diff --git a/packages/plugins/plugin-cert/src/dns-provider/base.ts b/packages/plugins/plugin-cert/src/dns-provider/base.ts index 58bfb6767..01519baec 100644 --- a/packages/plugins/plugin-cert/src/dns-provider/base.ts +++ b/packages/plugins/plugin-cert/src/dns-provider/base.ts @@ -2,12 +2,17 @@ import { CreateRecordOptions, DnsProviderContext, DnsProviderDefine, IDnsProvide import psl from "psl"; import { dnsProviderRegistry } from "./registry.js"; import { Decorator } from "@certd/pipeline"; +import { HttpClient, ILogger } from "@certd/basic"; export abstract class AbstractDnsProvider implements IDnsProvider { ctx!: DnsProviderContext; + http!: HttpClient; + logger!: ILogger; setCtx(ctx: DnsProviderContext) { this.ctx = ctx; + this.logger = ctx.logger; + this.http = ctx.http; } abstract createRecord(options: CreateRecordOptions): Promise; diff --git a/packages/plugins/plugin-cert/src/plugin/cert-plugin/base.ts b/packages/plugins/plugin-cert/src/plugin/cert-plugin/base.ts index e396d4db8..8383cd9f2 100644 --- a/packages/plugins/plugin-cert/src/plugin/cert-plugin/base.ts +++ b/packages/plugins/plugin-cert/src/plugin/cert-plugin/base.ts @@ -92,7 +92,6 @@ export abstract class CertApplyBasePlugin extends AbstractTaskPlugin { csrInfo!: string; userContext!: IContext; - http!: HttpClient; lastStatus!: Step; @TaskOutput({ @@ -102,7 +101,6 @@ export abstract class CertApplyBasePlugin extends AbstractTaskPlugin { async onInstance() { this.userContext = this.ctx.userContext; - this.http = this.ctx.http; this.lastStatus = this.ctx.lastStatus as Step; await this.onInit(); } diff --git a/packages/plugins/plugin-cert/src/plugin/cert-plugin/lego/index.ts b/packages/plugins/plugin-cert/src/plugin/cert-plugin/lego/index.ts index 241e70bc5..187cc0bd9 100644 --- a/packages/plugins/plugin-cert/src/plugin/cert-plugin/lego/index.ts +++ b/packages/plugins/plugin-cert/src/plugin/cert-plugin/lego/index.ts @@ -96,7 +96,6 @@ export class CertApplyLegoPlugin extends CertApplyBasePlugin { this.accessService = this.ctx.accessService; this.logger = this.ctx.logger; this.userContext = this.ctx.userContext; - this.http = this.ctx.http; this.lastStatus = this.ctx.lastStatus as Step; if (this.legoEabAccessId) { this.eab = await this.accessService.getById(this.legoEabAccessId); diff --git a/packages/ui/certd-server/src/plugins/plugin-aliyun/dns-provider/aliyun-dns-provider.ts b/packages/ui/certd-server/src/plugins/plugin-aliyun/dns-provider/aliyun-dns-provider.ts index 3942557a7..e45450489 100644 --- a/packages/ui/certd-server/src/plugins/plugin-aliyun/dns-provider/aliyun-dns-provider.ts +++ b/packages/ui/certd-server/src/plugins/plugin-aliyun/dns-provider/aliyun-dns-provider.ts @@ -1,6 +1,5 @@ import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert'; import { Autowire } from '@certd/pipeline'; -import { ILogger } from '@certd/basic'; import { AliyunAccess, AliyunClient } from '@certd/plugin-plus'; @@ -14,8 +13,6 @@ export class AliyunDnsProvider extends AbstractDnsProvider { client: any; @Autowire() access!: AliyunAccess; - @Autowire() - logger!: ILogger; async onInstance() { const access: any = this.access; diff --git a/packages/ui/certd-server/src/plugins/plugin-cachefly/plugins/plugin-deploy-to-cdn.ts b/packages/ui/certd-server/src/plugins/plugin-cachefly/plugins/plugin-deploy-to-cdn.ts index 47632d322..c69076884 100644 --- a/packages/ui/certd-server/src/plugins/plugin-cachefly/plugins/plugin-deploy-to-cdn.ts +++ b/packages/ui/certd-server/src/plugins/plugin-cachefly/plugins/plugin-deploy-to-cdn.ts @@ -1,4 +1,4 @@ -import { AbstractTaskPlugin, HttpClient, IsTaskPlugin, pluginGroups, RunStrategy, TaskInput } from '@certd/pipeline'; +import { AbstractTaskPlugin, IsTaskPlugin, pluginGroups, RunStrategy, TaskInput } from '@certd/pipeline'; import { CertInfo } from '@certd/plugin-cert'; import { CacheflyAccess } from '../access.js'; @@ -35,12 +35,9 @@ export class CacheFlyPlugin extends AbstractTaskPlugin { required: true, }) accessId!: string; - http!: HttpClient; private readonly baseApi = 'https://api.cachefly.com'; - async onInstance() { - this.http = this.ctx.http; - } + async onInstance() {} private async doRequestApi(url: string, data: any = null, method = 'post', token: string | null = null) { const headers = { diff --git a/packages/ui/certd-server/src/plugins/plugin-cloudflare/dns-provider.ts b/packages/ui/certd-server/src/plugins/plugin-cloudflare/dns-provider.ts index d7b168ada..65f97d9bf 100644 --- a/packages/ui/certd-server/src/plugins/plugin-cloudflare/dns-provider.ts +++ b/packages/ui/certd-server/src/plugins/plugin-cloudflare/dns-provider.ts @@ -1,6 +1,4 @@ import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert'; -import { Autowire } from '@certd/pipeline'; -import { HttpClient, ILogger } from '@certd/basic'; import { CloudflareAccess } from './access.js'; @@ -27,15 +25,11 @@ export type CloudflareRecord = { }) export class CloudflareDnsProvider extends AbstractDnsProvider { // 通过Autowire传递context - @Autowire() - logger!: ILogger; access!: CloudflareAccess; - http!: HttpClient; async onInstance() { //一些初始化的操作 // 也可以通过ctx成员变量传递context, 与Autowire效果一样 this.access = this.ctx.access as CloudflareAccess; - this.http = this.ctx.http; } async getZoneId(domain: string) { diff --git a/packages/ui/certd-server/src/plugins/plugin-demo/dns-provider.ts b/packages/ui/certd-server/src/plugins/plugin-demo/dns-provider.ts index fd583ca4d..e51445815 100644 --- a/packages/ui/certd-server/src/plugins/plugin-demo/dns-provider.ts +++ b/packages/ui/certd-server/src/plugins/plugin-demo/dns-provider.ts @@ -1,6 +1,5 @@ import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert'; import { Autowire } from '@certd/pipeline'; -import { HttpClient, ILogger } from '@certd/basic'; import { DemoAccess } from './access.js'; import { isDev } from '../../utils/env.js'; @@ -22,13 +21,9 @@ export class DemoDnsProvider extends AbstractDnsProvider { // 通过Autowire注入工具对象 @Autowire() access!: DemoAccess; - @Autowire() - logger!: ILogger; - http!: HttpClient; async onInstance() { // 也可以通过ctx成员变量传递context, 与Autowire效果一样 - this.http = this.ctx.http; this.logger.debug('access', this.access); //初始化的操作 //... diff --git a/packages/ui/certd-server/src/plugins/plugin-demo/plugins/plugin-test.ts b/packages/ui/certd-server/src/plugins/plugin-demo/plugins/plugin-test.ts index 20734ff20..2df790843 100644 --- a/packages/ui/certd-server/src/plugins/plugin-demo/plugins/plugin-test.ts +++ b/packages/ui/certd-server/src/plugins/plugin-demo/plugins/plugin-test.ts @@ -120,6 +120,16 @@ export class DemoTestPlugin extends AbstractTaskPlugin { this.logger.info('select:', select); this.logger.info('switch:', this.switch); this.logger.info('授权id:', accessId); + + const res = await this.http.request({ + url: 'https://api.demo.com', + method: 'GET', + }); + if (res.code !== 0) { + //检查res是否报错,你需要抛异常,来结束插件执行,否则会判定为执行成功,下次执行时会跳过本任务 + throw new Error(res.message); + } + this.logger.info('部署成功:', res); } //此方法演示,如何让前端在添加插件时可以从后端获取选项,这里是后端返回选项的方法 diff --git a/packages/ui/certd-server/src/plugins/plugin-gcore/plugins/plugin-flush.ts b/packages/ui/certd-server/src/plugins/plugin-gcore/plugins/plugin-flush.ts index 9c196a43a..eefd4596c 100644 --- a/packages/ui/certd-server/src/plugins/plugin-gcore/plugins/plugin-flush.ts +++ b/packages/ui/certd-server/src/plugins/plugin-gcore/plugins/plugin-flush.ts @@ -1,4 +1,4 @@ -import { AbstractTaskPlugin, HttpClient, IsTaskPlugin, pluginGroups, RunStrategy, TaskInput } from '@certd/pipeline'; +import { AbstractTaskPlugin, IsTaskPlugin, pluginGroups, RunStrategy, TaskInput } from '@certd/pipeline'; import { CertInfo } from '@certd/plugin-cert'; import { GcoreAccess } from '../access.js'; @@ -45,17 +45,14 @@ export class GcoreflushPlugin extends AbstractTaskPlugin { required: true, }) accessId!: string; - http!: HttpClient; private readonly baseApi = 'https://api.gcore.com'; - async onInstance() { - this.http = this.ctx.http; - } + async onInstance() {} private async doRequestApi(url: string, data: any = null, method = 'post', token: string | null = null) { const headers = { 'Content-Type': 'application/json', - ...(token ? { 'authorization': `Bearer ${token}` } : {}), + ...(token ? { authorization: `Bearer ${token}` } : {}), }; const res = await this.http.request({ url, @@ -68,7 +65,7 @@ export class GcoreflushPlugin extends AbstractTaskPlugin { } async execute(): Promise { - const { cert,accessId } = this; + const { cert, accessId } = this; const access = (await this.accessService.getById(accessId)) as GcoreAccess; let otp = null; if (access.otpkey) { diff --git a/packages/ui/certd-server/src/plugins/plugin-gcore/plugins/plugin-upload.ts b/packages/ui/certd-server/src/plugins/plugin-gcore/plugins/plugin-upload.ts index c3fdf540c..add682270 100644 --- a/packages/ui/certd-server/src/plugins/plugin-gcore/plugins/plugin-upload.ts +++ b/packages/ui/certd-server/src/plugins/plugin-gcore/plugins/plugin-upload.ts @@ -1,4 +1,4 @@ -import { AbstractTaskPlugin, HttpClient, IsTaskPlugin, pluginGroups, RunStrategy, TaskInput } from '@certd/pipeline'; +import { AbstractTaskPlugin, IsTaskPlugin, pluginGroups, RunStrategy, TaskInput } from '@certd/pipeline'; import { CertInfo } from '@certd/plugin-cert'; import { GcoreAccess } from '../access.js'; @@ -41,17 +41,14 @@ export class GcoreuploadPlugin extends AbstractTaskPlugin { required: true, }) accessId!: string; - http!: HttpClient; private readonly baseApi = 'https://api.gcore.com'; - async onInstance() { - this.http = this.ctx.http; - } + async onInstance() {} private async doRequestApi(url: string, data: any = null, method = 'post', token: string | null = null) { const headers = { 'Content-Type': 'application/json', - ...(token ? { 'authorization': `Bearer ${token}` } : {}), + ...(token ? { authorization: `Bearer ${token}` } : {}), }; const res = await this.http.request({ url, @@ -64,7 +61,7 @@ export class GcoreuploadPlugin extends AbstractTaskPlugin { } async execute(): Promise { - const { cert,accessId } = this; + const { cert, accessId } = this; const access = (await this.accessService.getById(accessId)) as GcoreAccess; let otp = null; if (access.otpkey) { diff --git a/packages/ui/certd-server/src/plugins/plugin-huawei/dns-provider/huawei-dns-provider.ts b/packages/ui/certd-server/src/plugins/plugin-huawei/dns-provider/huawei-dns-provider.ts index 640925593..928daf33a 100644 --- a/packages/ui/certd-server/src/plugins/plugin-huawei/dns-provider/huawei-dns-provider.ts +++ b/packages/ui/certd-server/src/plugins/plugin-huawei/dns-provider/huawei-dns-provider.ts @@ -1,7 +1,6 @@ import * as _ from 'lodash-es'; import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert'; import { Autowire } from '@certd/pipeline'; -import { ILogger } from '@certd/basic'; import { HuaweiAccess } from '../access/index.js'; import { ApiRequestOptions, HuaweiYunClient } from '@certd/lib-huawei'; @@ -20,8 +19,6 @@ export class HuaweiDnsProvider extends AbstractDnsProvider { client!: HuaweiYunClient; @Autowire() access!: HuaweiAccess; - @Autowire() - logger!: ILogger; domainEndpoint = 'https://domains-external.myhuaweicloud.com'; dnsEndpoint = 'https://dns.cn-south-1.myhuaweicloud.com'; async onInstance() { diff --git a/packages/ui/certd-server/src/plugins/plugin-namesilo/dns-provider.ts b/packages/ui/certd-server/src/plugins/plugin-namesilo/dns-provider.ts index af14bed5d..3ceeb64e0 100644 --- a/packages/ui/certd-server/src/plugins/plugin-namesilo/dns-provider.ts +++ b/packages/ui/certd-server/src/plugins/plugin-namesilo/dns-provider.ts @@ -1,6 +1,4 @@ import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert'; -import { Autowire } from '@certd/pipeline'; -import { HttpClient, ILogger } from '@certd/basic'; import qs from 'qs'; import { NamesiloAccess } from './access.js'; import { merge } from 'lodash-es'; @@ -19,15 +17,11 @@ export type NamesiloRecord = { }) export class NamesiloDnsProvider extends AbstractDnsProvider { // 通过Autowire传递context - @Autowire() - logger!: ILogger; access!: NamesiloAccess; - http!: HttpClient; async onInstance() { //一些初始化的操作 // 也可以通过ctx成员变量传递context, 与Autowire效果一样 this.access = this.ctx.access as NamesiloAccess; - this.http = this.ctx.http; } private async doRequest(url: string, params: any = null) { diff --git a/packages/ui/certd-server/src/plugins/plugin-tencent/dns-provider/dnspod-dns-provider.ts b/packages/ui/certd-server/src/plugins/plugin-tencent/dns-provider/dnspod-dns-provider.ts index 0abf7abe9..c772044e2 100644 --- a/packages/ui/certd-server/src/plugins/plugin-tencent/dns-provider/dnspod-dns-provider.ts +++ b/packages/ui/certd-server/src/plugins/plugin-tencent/dns-provider/dnspod-dns-provider.ts @@ -1,5 +1,4 @@ import { Autowire } from '@certd/pipeline'; -import { HttpClient, ILogger } from '@certd/basic'; import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert'; import * as _ from 'lodash-es'; @@ -13,13 +12,8 @@ import { DnspodAccess } from '../access/index.js'; deprecated: 'dnspod已废弃,请换成腾讯云', }) export class DnspodDnsProvider extends AbstractDnsProvider { - @Autowire() - http!: HttpClient; - @Autowire() access!: DnspodAccess; - @Autowire() - logger!: ILogger; loginToken: any; diff --git a/packages/ui/certd-server/src/plugins/plugin-tencent/dns-provider/tencent-dns-provider.ts b/packages/ui/certd-server/src/plugins/plugin-tencent/dns-provider/tencent-dns-provider.ts index 6c50dc1ae..23b91a05c 100644 --- a/packages/ui/certd-server/src/plugins/plugin-tencent/dns-provider/tencent-dns-provider.ts +++ b/packages/ui/certd-server/src/plugins/plugin-tencent/dns-provider/tencent-dns-provider.ts @@ -1,5 +1,4 @@ import { Autowire } from '@certd/pipeline'; -import { HttpClient, ILogger } from '@certd/basic'; import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert'; import { TencentAccess } from '@certd/plugin-plus'; @@ -11,13 +10,8 @@ import { TencentAccess } from '@certd/plugin-plus'; accessType: 'tencent', }) export class TencentDnsProvider extends AbstractDnsProvider { - @Autowire() - http!: HttpClient; - @Autowire() access!: TencentAccess; - @Autowire() - logger!: ILogger; client!: any; diff --git a/packages/ui/certd-server/src/plugins/plugin-west/dns-provider.ts b/packages/ui/certd-server/src/plugins/plugin-west/dns-provider.ts index b141b560b..1ec68327c 100644 --- a/packages/ui/certd-server/src/plugins/plugin-west/dns-provider.ts +++ b/packages/ui/certd-server/src/plugins/plugin-west/dns-provider.ts @@ -1,7 +1,5 @@ import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert'; import { Autowire } from '@certd/pipeline'; -import { HttpClient, ILogger } from '@certd/basic'; - import { WestAccess } from './access.js'; @@ -26,13 +24,9 @@ export class WestDnsProvider extends AbstractDnsProvider { // 通过Autowire注入工具对象 @Autowire() access!: WestAccess; - @Autowire() - logger!: ILogger; - http!: HttpClient; async onInstance() { // 也可以通过ctx成员变量传递context, 与Autowire效果一样 - this.http = this.ctx.http; this.logger.debug('access:', this.access); //初始化的操作 //... @@ -45,7 +39,7 @@ export class WestDnsProvider extends AbstractDnsProvider { } else { data.apidomainkey = this.access.apidomainkey; } - const res = await this.http.request({ + const res = await this.ctx.http.request({ url, method, data, diff --git a/packages/ui/certd-server/src/plugins/plugin-woai/plugins/plugin-deploy-to-cdn.ts b/packages/ui/certd-server/src/plugins/plugin-woai/plugins/plugin-deploy-to-cdn.ts index 652b6e3eb..e01a4f6c0 100644 --- a/packages/ui/certd-server/src/plugins/plugin-woai/plugins/plugin-deploy-to-cdn.ts +++ b/packages/ui/certd-server/src/plugins/plugin-woai/plugins/plugin-deploy-to-cdn.ts @@ -1,7 +1,6 @@ import { AbstractTaskPlugin, IsTaskPlugin, pluginGroups, RunStrategy, TaskInput } from '@certd/pipeline'; import { CertInfo } from '@certd/plugin-cert'; import { WoaiAccess } from '../access.js'; -import { HttpClient } from '@certd/basic'; @IsTaskPlugin({ name: 'WoaiCDN', @@ -43,12 +42,9 @@ export class WoaiCdnPlugin extends AbstractTaskPlugin { required: true, }) accessId!: string; - http!: HttpClient; private readonly baseApi = 'https://console.edeg.51vs.club'; - async onInstance() { - this.http = this.ctx.http; - } + async onInstance() {} private async doRequestApi(url: string, data: any = null, method = 'post', token: string | null = null) { const headers = {