Commit 5c2663b9 authored by tywldx's avatar tywldx

Merge branch 'master' of http://git.quantgroup.cn/QA/qaHome

parents 19873944 a4b6c1ba
/** /**
* 新增/更新一个配置 * 新增/更新一个配置
*/ */
var cproc = require('child_process')
var jenkinsapi = require('jenkins-api')
var jenkins = jenkinsapi.init("http://qahome:qahome@192.168.4.2:8080")
var execSync = cproc.execSync
let default_username = 'xyqb_query' let default_username = 'xyqb_query'
let default_passwd = 'Uiwb@o^fR&nHOa5t' let default_passwd = 'Uiwb@o^fR&nHOa5t'
exports.save = async function () { exports.save = async function () {
await this.bindDefault(); await this.bindDefault();
let req = this.request.body let req = this.request.body
...@@ -66,7 +71,7 @@ exports.save = async function () { ...@@ -66,7 +71,7 @@ exports.save = async function () {
exports.get_db_config = async function () { exports.get_db_config = async function () {
await this.bindDefault(); await this.bindDefault();
let db_configs = await this.mongo("dbconfig").getDBConfig({ "dbname": 1, "ip": 1 }, { dbname: 1 }); let db_configs = await this.mongo("dbconfig").getDBConfig({}, {}, { dbname: 1 });
for (let db of db_configs) { for (let db of db_configs) {
if (db.username === default_username) { if (db.username === default_username) {
db.username = '' db.username = ''
...@@ -74,6 +79,8 @@ exports.get_db_config = async function () { ...@@ -74,6 +79,8 @@ exports.get_db_config = async function () {
if (db.passwd === default_passwd) { if (db.passwd === default_passwd) {
db.passwd = '' db.passwd = ''
} }
// process.env.TZ = 'Asia/Shanghai';
// db.update_at = db.update_at.toLocaleString()
} }
this.body = db_configs; this.body = db_configs;
} }
...@@ -84,7 +91,7 @@ exports.delete = async function () { ...@@ -84,7 +91,7 @@ exports.delete = async function () {
await this.mongo("dbconfig").delete(this.request.query._id) await this.mongo("dbconfig").delete(this.request.query._id)
this.body = { code: "0002" } this.body = { code: "0002" }
} catch (error) { } catch (error) {
//执行不到这里,及时删除前将要删除的记录手动删除了,也不会报错 //执行不到这里,即使删除前将要删除的记录手动删除了,也不会报错
this.body = { code: "0001", msg: "删除失败" } this.body = { code: "0001", msg: "删除失败" }
} }
console.log(111, this.body) console.log(111, this.body)
...@@ -92,3 +99,106 @@ exports.delete = async function () { ...@@ -92,3 +99,106 @@ exports.delete = async function () {
// this.body = item // this.body = item
} }
exports.delete.__method__ = 'get'; exports.delete.__method__ = 'get';
exports.get_dbs = async function () {
await this.bindDefault
let dbs = await this.mongo("dbconfig").getDBConfig({}, { "_id": 0, "dbname": 1 }, { dbname: 1 })
this.body = dbs
}
exports.get_dbs.__method__ = 'get'
function requestJenkinsPromise(job, option) {
return new Promise(function (resolve, reject) {
jenkins.build_with_params(job, option, function (err, data) {
if (err) {
resolve({ code: "0001", err: err })
}
else {
resolve(data)
}
})
})
}
exports.db_sync = async function () {
await this.bindDefault
let req = this.request.body
console.log(req)
if (req.replace_ip === '' || req.sync_db_name == '' || req.sync_db_name == undefined || req.target_db_port == '') {
this.body = {
code: "0001", msg: "有必填项没有填写", data: {
sync_db_name: req.sync_db_name,
target_db_host: req.target_db_host,
target_db_port: req.target_db_port,
replace_ip: req.replace_ip,
delete_business_data: req.delete_business_data,
use_cache: req.use_cache
}
}
return
}
if (req.target_db_host > 0 && req.target_db_host < 256) {
req.target_db_host = '192.168.4.' + req.target_db_host
}
console.log(req.target_db_host)
re = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/
if (!re.test(req.target_db_host)) {
this.body = { code: "0001", msg: "target_db_host不正确" }
return
}
console.log(parseInt(req.target_db_port))
if (parseInt(req.target_db_port) < 1 || parseInt(req.target_db_port) > 65535 || isNaN(parseInt(req.target_db_port))) {
this.body = { code: "0001", msg: "target_db_port不正确" }
return
}
let sync_db_name = req.sync_db_name
let target_db_host = req.target_db_host
let target_db_port = req.target_db_port
let replace_ip = req.replace_ip
let delete_business_data = req.delete_business_data
let use_cache = req.use_cache
var res = {}
res = await requestJenkinsPromise('sync_database_schema', {
depth: 1,
"sync_db_name": sync_db_name,
"target_db_host": target_db_host,
"target_db_port": target_db_port,
"re_replace_ip": replace_ip,
"delete_business_data": delete_business_data,
"use_cache": use_cache,
})
// let default_target_username = 'qa'
// let default_target_passwd = 'qatest'
// //异步
// console.log(`sh /home/qa-deploy-utils/db-utils/db_schema_sync.sh ${target_db_host} ${default_target_username} ${default_target_passwd} ${sync_db_name} ${replace_ip} ${delete_business_data} ${use_cache} ${target_db_port}`)
// cproc.exec(`sh /home/qa-deploy-utils/db-utils/db_schema_sync.sh ${target_db_host} ${default_target_username} ${default_target_passwd} ${sync_db_name} ${replace_ip} ${delete_business_data} ${use_cache} ${target_db_port}`, function (err, stdout, stderr) {
// if (err) {
// console.log('get error' + err)
// this.body = { code: "0001", msg: "出错了" }
// return
// } else {
// console.log(222)
// console.log(stdout)
// var data = JSON.parse(stdout)
// this.body = { code: "0000", msg: data }
// }
// })
// // 同步
// // let dir = '/Users/zhiyong/IdeaProjects/coding/qaHome'
// // let aaa = String(execSync(`sleep 1;cd "$dir";pwd`))
// // console.log(aaa)
this.body = { code: "0000", msg: res }
}
\ No newline at end of file
...@@ -42,7 +42,7 @@ exports.methods = { ...@@ -42,7 +42,7 @@ exports.methods = {
//gp.update_at="2018-04-01T13:29:46.641Z" db.update_at=2018-04-01T13:29:46.641Z //gp.update_at="2018-04-01T13:29:46.641Z" db.update_at=2018-04-01T13:29:46.641Z
let update_at = "\"" + db.update_at + "\"" let update_at = "\"" + db.update_at + "\""
if (update_at === JSON.stringify(gp.update_at)) { if (update_at === JSON.stringify(gp.update_at)) {
db.update_at = new Date() db.update_at = new Date().toLocaleString()
return await this.model("dbconfig").update({ "_id": _id }, db); return await this.model("dbconfig").update({ "_id": _id }, db);
} else { } else {
return { code: "0001", msg: "停留时间太长导致时间戳不正确,请刷新后再试~" } return { code: "0001", msg: "停留时间太长导致时间戳不正确,请刷新后再试~" }
...@@ -55,8 +55,8 @@ exports.methods = { ...@@ -55,8 +55,8 @@ exports.methods = {
} }
}, },
getDBConfig: async function (query, sort) { getDBConfig: async function (query, column, sort) {
return await this.model("dbconfig").find().sort(sort) return await this.model("dbconfig").find(query, column).sort(sort)
}, },
delete: async function (_id) { delete: async function (_id) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment