mirror of https://github.com/certd/certd
perf: 抽取api
parent
5312c11472
commit
8cc80deff8
File diff suppressed because it is too large
Load Diff
|
@ -5,7 +5,7 @@ const logger = util.logger
|
||||||
export class FileStore extends Store {
|
export class FileStore extends Store {
|
||||||
constructor (opts) {
|
constructor (opts) {
|
||||||
super()
|
super()
|
||||||
this.rootDir = util.getUserBasePath()
|
this.rootDir = util.path.getUserBasePath()
|
||||||
if (opts.rootDir != null) {
|
if (opts.rootDir != null) {
|
||||||
this.rootDir = opts.rootDir
|
this.rootDir = opts.rootDir
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,12 +9,11 @@
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@alicloud/pop-core": "^1.7.10",
|
"@alicloud/pop-core": "^1.7.10",
|
||||||
|
"tencentcloud-sdk-nodejs": "^4.0.44",
|
||||||
"@certd/certd": "^0.1.1",
|
"@certd/certd": "^0.1.1",
|
||||||
"@types/node": "^14.14.13",
|
|
||||||
"kubernetes-client": "^9.0.0",
|
"kubernetes-client": "^9.0.0",
|
||||||
"lodash-es": "^4.17.20",
|
"lodash-es": "^4.17.20",
|
||||||
"ssh2": "^0.8.9",
|
"ssh2": "^0.8.9"
|
||||||
"tencentcloud-sdk-nodejs": "^4.0.44"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"chai": "^4.2.0",
|
"chai": "^4.2.0",
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -10,7 +10,9 @@
|
||||||
"author": "Greper",
|
"author": "Greper",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@certd/api": "^0.1.2"
|
"@certd/api": "^0.1.2",
|
||||||
|
"@alicloud/pop-core": "^1.7.10",
|
||||||
|
"tencentcloud-sdk-nodejs": "^4.0.44"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"chai": "^4.2.0",
|
"chai": "^4.2.0",
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
|
import dnsProviders from './index.js'
|
||||||
|
|
||||||
export class DnsProviderFactory {
|
export class DnsProviderFactory {
|
||||||
static async createByType (type, options) {
|
static async createByType (type, options) {
|
||||||
try {
|
try {
|
||||||
const ProviderModule = await import('./impl/' + type + '.js')
|
const Provider = dnsProviders[type]
|
||||||
const Provider = ProviderModule.default
|
|
||||||
return new Provider(options)
|
return new Provider(options)
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
throw new Error('暂不支持此dnsProvider:' + type, e)
|
throw new Error('暂不支持此dnsProvider:' + type, e)
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
import { DnsProvider } from '../dns-provider.js'
|
import { AbstractDnsProvider } from '@certd/api'
|
||||||
import Core from '@alicloud/pop-core'
|
import Core from '@alicloud/pop-core'
|
||||||
import _ from 'lodash'
|
import _ from 'lodash-es'
|
||||||
import log from '../../utils/util.log.js'
|
export class AliyunDnsProvider extends AbstractDnsProvider {
|
||||||
export default class AliyunDnsProvider extends DnsProvider {
|
|
||||||
constructor (dnsProviderConfig) {
|
constructor (dnsProviderConfig) {
|
||||||
super()
|
super()
|
||||||
this.client = new Core({
|
this.client = new Core({
|
||||||
|
@ -13,6 +12,10 @@ export default class AliyunDnsProvider extends DnsProvider {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static name () {
|
||||||
|
return 'aliyun'
|
||||||
|
}
|
||||||
|
|
||||||
async getDomainList () {
|
async getDomainList () {
|
||||||
const params = {
|
const params = {
|
||||||
RegionId: 'cn-hangzhou'
|
RegionId: 'cn-hangzhou'
|
||||||
|
@ -60,7 +63,7 @@ export default class AliyunDnsProvider extends DnsProvider {
|
||||||
}
|
}
|
||||||
|
|
||||||
async createRecord ({ fullRecord, type, value }) {
|
async createRecord ({ fullRecord, type, value }) {
|
||||||
log.info('添加域名解析:', fullRecord, value)
|
this.logger.info('添加域名解析:', fullRecord, value)
|
||||||
const domain = await this.matchDomain(fullRecord)
|
const domain = await this.matchDomain(fullRecord)
|
||||||
const rr = fullRecord.replace('.' + domain, '')
|
const rr = fullRecord.replace('.' + domain, '')
|
||||||
|
|
||||||
|
@ -79,11 +82,11 @@ export default class AliyunDnsProvider extends DnsProvider {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const ret = await this.client.request('AddDomainRecord', params, requestOption)
|
const ret = await this.client.request('AddDomainRecord', params, requestOption)
|
||||||
console.log('添加域名解析成功:', value, value, ret.RecordId)
|
this.logger.info('添加域名解析成功:', value, value, ret.RecordId)
|
||||||
return ret.RecordId
|
return ret.RecordId
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
// e.code === 'DomainRecordDuplicate'
|
// e.code === 'DomainRecordDuplicate'
|
||||||
console.log('添加域名解析出错', e)
|
this.logger.info('添加域名解析出错', e)
|
||||||
throw e
|
throw e
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -99,7 +102,7 @@ export default class AliyunDnsProvider extends DnsProvider {
|
||||||
}
|
}
|
||||||
|
|
||||||
const ret = await this.client.request('DeleteDomainRecord', params, requestOption)
|
const ret = await this.client.request('DeleteDomainRecord', params, requestOption)
|
||||||
log.info('删除域名解析成功:', fullRecord, value, ret.RecordId)
|
this.logger.info('删除域名解析成功:', fullRecord, value, ret.RecordId)
|
||||||
return ret.RecordId
|
return ret.RecordId
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,7 +1,11 @@
|
||||||
import { AbstractDnsProvider, util } from '@certd/api'
|
import { AbstractDnsProvider, util } from '@certd/api'
|
||||||
import _ from 'lodash-es'
|
import _ from 'lodash-es'
|
||||||
const request = util.request
|
const request = util.request
|
||||||
export default class DnspodDnsProvider extends AbstractDnsProvider {
|
export class DnspodDnsProvider extends AbstractDnsProvider {
|
||||||
|
static name () {
|
||||||
|
return 'dnspod'
|
||||||
|
}
|
||||||
|
|
||||||
constructor (dnsProviderConfig) {
|
constructor (dnsProviderConfig) {
|
||||||
super()
|
super()
|
||||||
if (!dnsProviderConfig.id || !dnsProviderConfig.token) {
|
if (!dnsProviderConfig.id || !dnsProviderConfig.token) {
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
import { AliyunDnsProvider } from './impl/aliyun.js'
|
||||||
|
import { DnspodDnsProvider } from './impl/dnspod.js'
|
||||||
|
export default {
|
||||||
|
[AliyunDnsProvider.name()]: AliyunDnsProvider,
|
||||||
|
[DnspodDnsProvider.name()]: DnspodDnsProvider
|
||||||
|
}
|
|
@ -1 +1 @@
|
||||||
export { DnsProviderFactory } from './dns-provider/dns-provider-factory'
|
export { DnsProviderFactory } from './dns-provider/dns-provider-factory.js'
|
||||||
|
|
Loading…
Reference in New Issue