Files
certd/packages/libs/lib-jdcloud/src/repo/deploy/v1/deploy.js
T
2025-04-02 23:13:55 +08:00

786 lines
22 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
* Copyright 2018 JDCLOUD.COM
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http:#www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* 依赖
* 云部署依赖相关接口
*
* OpenAPI spec version: v1
* Contact:
*
* NOTE: This class is auto generated by the jdcloud code generator program.
*/
require('../../../lib/node_loader')
var JDCloud = require('../../../lib/core')
var Service = JDCloud.Service
var serviceId = 'deploy'
Service._services[serviceId] = true
/**
* deploy service.
* @version 1.0.0
*/
JDCloud.DEPLOY = class DEPLOY extends Service {
constructor (options = {}) {
options._defaultEndpoint = {}
options._defaultEndpoint.protocol =
options._defaultEndpoint.protocol || 'https'
options._defaultEndpoint.host =
options._defaultEndpoint.host || 'deploy.jdcloud-api.com'
options.basePath = '/v1' // 默认要设为空""
super(serviceId, options)
}
/**
* 批量查询应用的信息,此接口支持分页查询,默认每页20条
* @param {Object} opts - parameters
* @param {integer} [opts.pageNumber] - 页码;默认为1 optional
* @param {integer} [opts.pageSize] - 分页大小;默认为20;取值范围[10, 100] optional
* @param {filter} [opts.filters] - appId - 应用ID,精确匹配
appName - 应用名,精确匹配
platform - 部署平台,精确匹配
optional
* @param {string} regionId - ID of the region
* @param {string} callback - callback
@return {Object} result
* @param app apps
* @param number totalCount
*/
describeApps (opts, regionId = this.config.regionId, callback) {
if (typeof regionId === 'function') {
callback = regionId
regionId = this.config.regionId
}
if (regionId === undefined || regionId === null) {
throw new Error(
"Missing the required parameter 'regionId' when calling describeApps"
)
}
opts = opts || {}
let postBody = null
let queryParams = {}
if (opts.pageNumber !== undefined && opts.pageNumber !== null) {
queryParams['pageNumber'] = opts.pageNumber
}
if (opts.pageSize !== undefined && opts.pageSize !== null) {
queryParams['pageSize'] = opts.pageSize
}
Object.assign(queryParams, this.buildFilterParam(opts.filters, 'filters'))
let pathParams = {
regionId: regionId
}
let headerParams = {
'User-Agent': 'JdcloudSdkNode/1.0.0 deploy/1.0.0'
}
let contentTypes = ['application/json']
let accepts = ['application/json']
// 扩展自定义头
if (opts['x-extra-header']) {
for (let extraHeader in opts['x-extra-header']) {
headerParams[extraHeader] = opts['x-extra-header'][extraHeader]
}
if (Array.isArray(opts['x-extra-header']['content-type'])) {
contentTypes = opts['x-extra-header']['content-type']
} else if (typeof opts['x-extra-header']['content-type'] === 'string') {
contentTypes = opts['x-extra-header']['content-type'].split(',')
}
if (Array.isArray(opts['x-extra-header']['accept'])) {
accepts = opts['x-extra-header']['accept']
} else if (typeof opts['x-extra-header']['accept'] === 'string') {
accepts = opts['x-extra-header']['accept'].split(',')
}
}
let formParams = {}
let returnType = null
this.config.logger(
`call describeApps with params:\npathParams:${JSON.stringify(
pathParams
)},\nqueryParams:${JSON.stringify(
queryParams
)}, \nheaderParams:${JSON.stringify(
headerParams
)}, \nformParams:${JSON.stringify(
formParams
)}, \npostBody:${JSON.stringify(postBody)}`,
'DEBUG'
)
let request = this.makeRequest(
'/regions/{regionId}/apps',
'GET',
pathParams,
queryParams,
headerParams,
formParams,
postBody,
contentTypes,
accepts,
returnType,
callback
)
return request.then(
function (result) {
if (callback && typeof callback === 'function') {
return callback(null, result)
}
return result
},
function (error) {
if (callback && typeof callback === 'function') {
return callback(error)
}
return Promise.reject(error)
}
)
}
/**
* 查询一个应用的信息
* @param {Object} opts - parameters
* @param {string} opts.appId - App Id
* @param {string} regionId - ID of the region
* @param {string} callback - callback
@return {Object} result
* @param app app
*/
describeApp (opts, regionId = this.config.regionId, callback) {
if (typeof regionId === 'function') {
callback = regionId
regionId = this.config.regionId
}
if (regionId === undefined || regionId === null) {
throw new Error(
"Missing the required parameter 'regionId' when calling describeApp"
)
}
opts = opts || {}
if (opts.appId === undefined || opts.appId === null) {
throw new Error(
"Missing the required parameter 'opts.appId' when calling describeApp"
)
}
let postBody = null
let queryParams = {}
let pathParams = {
regionId: regionId,
appId: opts.appId
}
let headerParams = {
'User-Agent': 'JdcloudSdkNode/1.0.0 deploy/1.0.0'
}
let contentTypes = ['application/json']
let accepts = ['application/json']
// 扩展自定义头
if (opts['x-extra-header']) {
for (let extraHeader in opts['x-extra-header']) {
headerParams[extraHeader] = opts['x-extra-header'][extraHeader]
}
if (Array.isArray(opts['x-extra-header']['content-type'])) {
contentTypes = opts['x-extra-header']['content-type']
} else if (typeof opts['x-extra-header']['content-type'] === 'string') {
contentTypes = opts['x-extra-header']['content-type'].split(',')
}
if (Array.isArray(opts['x-extra-header']['accept'])) {
accepts = opts['x-extra-header']['accept']
} else if (typeof opts['x-extra-header']['accept'] === 'string') {
accepts = opts['x-extra-header']['accept'].split(',')
}
}
let formParams = {}
let returnType = null
this.config.logger(
`call describeApp with params:\npathParams:${JSON.stringify(
pathParams
)},\nqueryParams:${JSON.stringify(
queryParams
)}, \nheaderParams:${JSON.stringify(
headerParams
)}, \nformParams:${JSON.stringify(
formParams
)}, \npostBody:${JSON.stringify(postBody)}`,
'DEBUG'
)
let request = this.makeRequest(
'/regions/{regionId}/app/{appId}',
'GET',
pathParams,
queryParams,
headerParams,
formParams,
postBody,
contentTypes,
accepts,
returnType,
callback
)
return request.then(
function (result) {
if (callback && typeof callback === 'function') {
return callback(null, result)
}
return result
},
function (error) {
if (callback && typeof callback === 'function') {
return callback(error)
}
return Promise.reject(error)
}
)
}
/**
* 创建部署任务
* @param {Object} opts - parameters
* @param {string} opts.groupId - 部署组ID,部署组的唯一标识
* @param {string} [opts.desc] - 描述 optional
* @param {integer} opts.deploySource - 部署来源:1url2云编译,3云存储
* @param {string} [opts.deployCmd] - 部署操作 optional
* @param {integer} [opts.cmdSource] - 1使用输入的操作,2使用程序自带操作 optional
* @param {integer} [opts.cmdType] - 部署操作展示格式:1form,2ymal optional
* @param {integer} [opts.productType] - 项目类型 1tomcat,2 optional
* @param {string} [opts.downloadUrl] - 下载url optional
* @param {string} [opts.md5] - md5 optional
* @param {string} [opts.compileProject] - 云编译项目名 optional
* @param {string} [opts.compileSeries] - 云编译构建序号 optional
* @param {string} [opts.ossSpace] - 云存储空间 optional
* @param {string} [opts.ossDir] - 云存储目录 optional
* @param {integer} [opts.fileType] - 文件类型:1.tar2.zip,3.tar.gz optional
* @param {string} regionId - ID of the region
* @param {string} callback - callback
@return {Object} result
* @param string deployId 上线单ID
*/
createDeploy (opts, regionId = this.config.regionId, callback) {
if (typeof regionId === 'function') {
callback = regionId
regionId = this.config.regionId
}
if (regionId === undefined || regionId === null) {
throw new Error(
"Missing the required parameter 'regionId' when calling createDeploy"
)
}
opts = opts || {}
if (opts.groupId === undefined || opts.groupId === null) {
throw new Error(
"Missing the required parameter 'opts.groupId' when calling createDeploy"
)
}
if (opts.deploySource === undefined || opts.deploySource === null) {
throw new Error(
"Missing the required parameter 'opts.deploySource' when calling createDeploy"
)
}
let postBody = {}
if (opts.groupId !== undefined && opts.groupId !== null) {
postBody['groupId'] = opts.groupId
}
if (opts.desc !== undefined && opts.desc !== null) {
postBody['desc'] = opts.desc
}
if (opts.deploySource !== undefined && opts.deploySource !== null) {
postBody['deploySource'] = opts.deploySource
}
if (opts.deployCmd !== undefined && opts.deployCmd !== null) {
postBody['deployCmd'] = opts.deployCmd
}
if (opts.cmdSource !== undefined && opts.cmdSource !== null) {
postBody['cmdSource'] = opts.cmdSource
}
if (opts.cmdType !== undefined && opts.cmdType !== null) {
postBody['cmdType'] = opts.cmdType
}
if (opts.productType !== undefined && opts.productType !== null) {
postBody['productType'] = opts.productType
}
if (opts.downloadUrl !== undefined && opts.downloadUrl !== null) {
postBody['downloadUrl'] = opts.downloadUrl
}
if (opts.md5 !== undefined && opts.md5 !== null) {
postBody['md5'] = opts.md5
}
if (opts.compileProject !== undefined && opts.compileProject !== null) {
postBody['compileProject'] = opts.compileProject
}
if (opts.compileSeries !== undefined && opts.compileSeries !== null) {
postBody['compileSeries'] = opts.compileSeries
}
if (opts.ossSpace !== undefined && opts.ossSpace !== null) {
postBody['ossSpace'] = opts.ossSpace
}
if (opts.ossDir !== undefined && opts.ossDir !== null) {
postBody['ossDir'] = opts.ossDir
}
if (opts.fileType !== undefined && opts.fileType !== null) {
postBody['fileType'] = opts.fileType
}
let queryParams = {}
let pathParams = {
regionId: regionId
}
let headerParams = {
'User-Agent': 'JdcloudSdkNode/1.0.0 deploy/1.0.0'
}
let contentTypes = ['application/json']
let accepts = ['application/json']
// 扩展自定义头
if (opts['x-extra-header']) {
for (let extraHeader in opts['x-extra-header']) {
headerParams[extraHeader] = opts['x-extra-header'][extraHeader]
}
if (Array.isArray(opts['x-extra-header']['content-type'])) {
contentTypes = opts['x-extra-header']['content-type']
} else if (typeof opts['x-extra-header']['content-type'] === 'string') {
contentTypes = opts['x-extra-header']['content-type'].split(',')
}
if (Array.isArray(opts['x-extra-header']['accept'])) {
accepts = opts['x-extra-header']['accept']
} else if (typeof opts['x-extra-header']['accept'] === 'string') {
accepts = opts['x-extra-header']['accept'].split(',')
}
}
let formParams = {}
let returnType = null
this.config.logger(
`call createDeploy with params:\npathParams:${JSON.stringify(
pathParams
)},\nqueryParams:${JSON.stringify(
queryParams
)}, \nheaderParams:${JSON.stringify(
headerParams
)}, \nformParams:${JSON.stringify(
formParams
)}, \npostBody:${JSON.stringify(postBody)}`,
'DEBUG'
)
let request = this.makeRequest(
'/regions/{regionId}/deploy',
'POST',
pathParams,
queryParams,
headerParams,
formParams,
postBody,
contentTypes,
accepts,
returnType,
callback
)
return request.then(
function (result) {
if (callback && typeof callback === 'function') {
return callback(null, result)
}
return result
},
function (error) {
if (callback && typeof callback === 'function') {
return callback(error)
}
return Promise.reject(error)
}
)
}
/**
* 查询一个部署任务详情
* @param {Object} opts - parameters
* @param {string} opts.deployId - Deploy Id
* @param {string} regionId - ID of the region
* @param {string} callback - callback
@return {Object} result
* @param deploy deploy
*/
describeDeploy (opts, regionId = this.config.regionId, callback) {
if (typeof regionId === 'function') {
callback = regionId
regionId = this.config.regionId
}
if (regionId === undefined || regionId === null) {
throw new Error(
"Missing the required parameter 'regionId' when calling describeDeploy"
)
}
opts = opts || {}
if (opts.deployId === undefined || opts.deployId === null) {
throw new Error(
"Missing the required parameter 'opts.deployId' when calling describeDeploy"
)
}
let postBody = null
let queryParams = {}
let pathParams = {
regionId: regionId,
deployId: opts.deployId
}
let headerParams = {
'User-Agent': 'JdcloudSdkNode/1.0.0 deploy/1.0.0'
}
let contentTypes = ['application/json']
let accepts = ['application/json']
// 扩展自定义头
if (opts['x-extra-header']) {
for (let extraHeader in opts['x-extra-header']) {
headerParams[extraHeader] = opts['x-extra-header'][extraHeader]
}
if (Array.isArray(opts['x-extra-header']['content-type'])) {
contentTypes = opts['x-extra-header']['content-type']
} else if (typeof opts['x-extra-header']['content-type'] === 'string') {
contentTypes = opts['x-extra-header']['content-type'].split(',')
}
if (Array.isArray(opts['x-extra-header']['accept'])) {
accepts = opts['x-extra-header']['accept']
} else if (typeof opts['x-extra-header']['accept'] === 'string') {
accepts = opts['x-extra-header']['accept'].split(',')
}
}
let formParams = {}
let returnType = null
this.config.logger(
`call describeDeploy with params:\npathParams:${JSON.stringify(
pathParams
)},\nqueryParams:${JSON.stringify(
queryParams
)}, \nheaderParams:${JSON.stringify(
headerParams
)}, \nformParams:${JSON.stringify(
formParams
)}, \npostBody:${JSON.stringify(postBody)}`,
'DEBUG'
)
let request = this.makeRequest(
'/regions/{regionId}/deploy/{deployId}',
'GET',
pathParams,
queryParams,
headerParams,
formParams,
postBody,
contentTypes,
accepts,
returnType,
callback
)
return request.then(
function (result) {
if (callback && typeof callback === 'function') {
return callback(null, result)
}
return result
},
function (error) {
if (callback && typeof callback === 'function') {
return callback(error)
}
return Promise.reject(error)
}
)
}
/**
* 批量查询部署组的信息,此接口支持分页查询,默认每页20条
* @param {Object} opts - parameters
* @param {integer} [opts.pageNumber] - 页码;默认为1 optional
* @param {integer} [opts.pageSize] - 分页大小;默认为20;取值范围[10, 100] optional
* @param {filter} [opts.filters] - appId - 应用ID,精确匹配
groupId - 部署组ID,精确匹配
groupName - 部署组名,精确匹配
optional
* @param {string} regionId - ID of the region
* @param {string} callback - callback
@return {Object} result
* @param group groups
* @param number totalCount
*/
describeGroups (opts, regionId = this.config.regionId, callback) {
if (typeof regionId === 'function') {
callback = regionId
regionId = this.config.regionId
}
if (regionId === undefined || regionId === null) {
throw new Error(
"Missing the required parameter 'regionId' when calling describeGroups"
)
}
opts = opts || {}
let postBody = null
let queryParams = {}
if (opts.pageNumber !== undefined && opts.pageNumber !== null) {
queryParams['pageNumber'] = opts.pageNumber
}
if (opts.pageSize !== undefined && opts.pageSize !== null) {
queryParams['pageSize'] = opts.pageSize
}
Object.assign(queryParams, this.buildFilterParam(opts.filters, 'filters'))
let pathParams = {
regionId: regionId
}
let headerParams = {
'User-Agent': 'JdcloudSdkNode/1.0.0 deploy/1.0.0'
}
let contentTypes = ['application/json']
let accepts = ['application/json']
// 扩展自定义头
if (opts['x-extra-header']) {
for (let extraHeader in opts['x-extra-header']) {
headerParams[extraHeader] = opts['x-extra-header'][extraHeader]
}
if (Array.isArray(opts['x-extra-header']['content-type'])) {
contentTypes = opts['x-extra-header']['content-type']
} else if (typeof opts['x-extra-header']['content-type'] === 'string') {
contentTypes = opts['x-extra-header']['content-type'].split(',')
}
if (Array.isArray(opts['x-extra-header']['accept'])) {
accepts = opts['x-extra-header']['accept']
} else if (typeof opts['x-extra-header']['accept'] === 'string') {
accepts = opts['x-extra-header']['accept'].split(',')
}
}
let formParams = {}
let returnType = null
this.config.logger(
`call describeGroups with params:\npathParams:${JSON.stringify(
pathParams
)},\nqueryParams:${JSON.stringify(
queryParams
)}, \nheaderParams:${JSON.stringify(
headerParams
)}, \nformParams:${JSON.stringify(
formParams
)}, \npostBody:${JSON.stringify(postBody)}`,
'DEBUG'
)
let request = this.makeRequest(
'/regions/{regionId}/groups',
'GET',
pathParams,
queryParams,
headerParams,
formParams,
postBody,
contentTypes,
accepts,
returnType,
callback
)
return request.then(
function (result) {
if (callback && typeof callback === 'function') {
return callback(null, result)
}
return result
},
function (error) {
if (callback && typeof callback === 'function') {
return callback(error)
}
return Promise.reject(error)
}
)
}
/**
* 查询一个部署组的信息
* @param {Object} opts - parameters
* @param {string} opts.groupId - Group Id
* @param {string} regionId - ID of the region
* @param {string} callback - callback
@return {Object} result
* @param group group
*/
describeGroup (opts, regionId = this.config.regionId, callback) {
if (typeof regionId === 'function') {
callback = regionId
regionId = this.config.regionId
}
if (regionId === undefined || regionId === null) {
throw new Error(
"Missing the required parameter 'regionId' when calling describeGroup"
)
}
opts = opts || {}
if (opts.groupId === undefined || opts.groupId === null) {
throw new Error(
"Missing the required parameter 'opts.groupId' when calling describeGroup"
)
}
let postBody = null
let queryParams = {}
let pathParams = {
regionId: regionId,
groupId: opts.groupId
}
let headerParams = {
'User-Agent': 'JdcloudSdkNode/1.0.0 deploy/1.0.0'
}
let contentTypes = ['application/json']
let accepts = ['application/json']
// 扩展自定义头
if (opts['x-extra-header']) {
for (let extraHeader in opts['x-extra-header']) {
headerParams[extraHeader] = opts['x-extra-header'][extraHeader]
}
if (Array.isArray(opts['x-extra-header']['content-type'])) {
contentTypes = opts['x-extra-header']['content-type']
} else if (typeof opts['x-extra-header']['content-type'] === 'string') {
contentTypes = opts['x-extra-header']['content-type'].split(',')
}
if (Array.isArray(opts['x-extra-header']['accept'])) {
accepts = opts['x-extra-header']['accept']
} else if (typeof opts['x-extra-header']['accept'] === 'string') {
accepts = opts['x-extra-header']['accept'].split(',')
}
}
let formParams = {}
let returnType = null
this.config.logger(
`call describeGroup with params:\npathParams:${JSON.stringify(
pathParams
)},\nqueryParams:${JSON.stringify(
queryParams
)}, \nheaderParams:${JSON.stringify(
headerParams
)}, \nformParams:${JSON.stringify(
formParams
)}, \npostBody:${JSON.stringify(postBody)}`,
'DEBUG'
)
let request = this.makeRequest(
'/regions/{regionId}/group/{groupId}',
'GET',
pathParams,
queryParams,
headerParams,
formParams,
postBody,
contentTypes,
accepts,
returnType,
callback
)
return request.then(
function (result) {
if (callback && typeof callback === 'function') {
return callback(null, result)
}
return result
},
function (error) {
if (callback && typeof callback === 'function') {
return callback(error)
}
return Promise.reject(error)
}
)
}
}
module.exports = JDCloud.DEPLOY