Commit 51eea2ef authored by 智勇's avatar 智勇

get db config from mongodb

parent ab546dab
var express = require('express'); var express = require('express');
var cproc = require('child_process'); var cproc = require('child_process');
var bodyParser = require('body-parser'); var bodyParser = require('body-parser');
var db_config = require('./config/db');
var request = require('request'); var request = require('request');
// const mongodb = require('mongodb');
const mongoose = require('mongoose'); const mongoose = require('mongoose');
var ProConfig = require('./model/proconfig.js'); var ProConfig = require('./model/proconfig.js');
var DBconfig = require('./model/dbconfig.js');
// return // return
var execSync = cproc.execSync; var execSync = cproc.execSync;
var options = { var options = {
...@@ -13,6 +13,7 @@ var options = { ...@@ -13,6 +13,7 @@ var options = {
limit: '100kb', limit: '100kb',
type: 'application/octet-stream' type: 'application/octet-stream'
}; };
// 同步进行接口转发 // 同步进行接口转发
function requestPromise(option) { function requestPromise(option) {
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
...@@ -25,10 +26,9 @@ function requestPromise(option) { ...@@ -25,10 +26,9 @@ function requestPromise(option) {
}) })
}) })
} }
// mongoose.connect('mongodb://localhost/my_database'); // mongoose.connect('mongodb://192.168.28.179:27017/qaHome');
mongoose.connect('mongodb://172.30.220.22:27017/qaHome') mongoose.connect('mongodb://172.30.220.22:27017/qaHome')
var app = express(); var app = express();
var admin = express(); // the sub app var admin = express(); // the sub app
app.use(bodyParser.urlencoded({ extended: false })) app.use(bodyParser.urlencoded({ extended: false }))
...@@ -88,10 +88,9 @@ function parseJson2Str(json) { ...@@ -88,10 +88,9 @@ function parseJson2Str(json) {
} }
return a.join(" ") return a.join(" ")
} }
// ------------UTILS---------- // ------------UTILS----------
// DB 维护数据
let db_conf = db_config.db_config();
let db_conf_keys = Object.keys(db_conf);
// 从mongo中获取配置 // 从mongo中获取配置
function getProjectConfigPromise() { function getProjectConfigPromise() {
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
...@@ -106,9 +105,6 @@ function getProjectConfigPromise() { ...@@ -106,9 +105,6 @@ function getProjectConfigPromise() {
} else if (pro["project_name"] == "new-paycenter-ui") { } else if (pro["project_name"] == "new-paycenter-ui") {
hosts["paycenter-ui--new-paycenter-ui"] = pro["host_name"]; hosts["paycenter-ui--new-paycenter-ui"] = pro["host_name"];
} }
// else if(pro["project_name"] == "new-spider-center-ui"){
// hosts["spider-center-ui--new-spider-center-ui"] = pro["host_name"];
// }
let temp = { let temp = {
project_group: "", project_group: "",
...@@ -152,11 +148,29 @@ function getProjectConfigPromise() { ...@@ -152,11 +148,29 @@ function getProjectConfigPromise() {
}) })
} }
// let db_conf = db_config.db_config();
// let db_conf_keys = Object.keys(db_conf);
// 从mongo中获取DB配置
function getDBConfigPromise() {
return new Promise(function (resolve, reject) {
DBconfig.find({}).exec().then(res => {
let re = {}
let _dbs = JSON.parse(JSON.stringify(res))
for (let db of _dbs) {
re[db["dbname"]] = db
}
resolve(re)
}).catch((err) => {
reject(err)
});
})
}
// //
admin.get('/get_db_config/:name/:attr', function (req, res) { admin.get('/get_db_config/:name/:attr', async function (req, res) {
let str = "" let db_conf = await getDBConfigPromise();
let db_conf_keys = Object.keys(db_conf);
if (req.params.name == "all") { if (req.params.name == "all") {
if (req.params.attr == "name") { if (req.params.attr == "name") {
res.send(db_conf_keys.join(" ")); res.send(db_conf_keys.join(" "));
...@@ -167,27 +181,29 @@ admin.get('/get_db_config/:name/:attr', function (req, res) { ...@@ -167,27 +181,29 @@ admin.get('/get_db_config/:name/:attr', function (req, res) {
} else { } else {
let item = db_conf[req.params.name] let item = db_conf[req.params.name]
// res.send(JSON.stringify(db_conf[req.params.name])) // res.send(JSON.stringify(db_conf[req.params.name]))
res.send(`${item.host} ${item.port} ${item.user} ${item.pwd} ${item.sys_table_list}`) res.send(`${item.ip} ${item.port} ${item.username} ${item.passwd} ${item.table_list}`)
} }
} }
}); });
admin.get('/get_db_dump_command/:name/:opt', function (req, res) { admin.get('/get_db_dump_command/:name/:opt', async function (req, res) {
let db_conf = await getDBConfigPromise();
let db_conf_keys = Object.keys(db_conf);
if (req.params.opt != "opt") { if (req.params.opt != "opt") {
res.send(db_config.get_mysql_dump_table(req.params.name)); res.send(db_config.get_mysql_dump_table(req.params.name));
} else { } else {
res.send(db_config.get_mysql_dump_opt(req.params.name)); res.send(db_config.get_mysql_dump_opt(req.params.name));
} }
}); });
admin.get('/get_db_config/refersh', function () {
admin.get('/get_db_config/refersh', async function (req, res) {
let db_conf = await getDBConfigPromise();
let db_conf_keys = Object.keys(db_conf);
res.setHeader("Content-Type", "application/json"); res.setHeader("Content-Type", "application/json");
db_conf = db_config.db_config();
db_conf_keys = Object.keys(db_conf);
res.send({ code: "OK" }) res.send({ code: "OK" })
}) })
// 获取节点命令
// 获取节点命令
admin.get('/get_node_command/:name', async function (req, res) { admin.get('/get_node_command/:name', async function (req, res) {
res.setHeader("Content-Type", "application/json"); res.setHeader("Content-Type", "application/json");
let configs = await getProjectConfigPromise(); let configs = await getProjectConfigPromise();
...@@ -196,7 +212,6 @@ admin.get('/get_node_command/:name', async function (req, res) { ...@@ -196,7 +212,6 @@ admin.get('/get_node_command/:name', async function (req, res) {
res.send({ configPath: pro.config_file, buildCmd: pro.command, gitPath: pro.git_path }); res.send({ configPath: pro.config_file, buildCmd: pro.command, gitPath: pro.git_path });
}); });
// 获取项目配置 // 获取项目配置
admin.get('/get_project_attr/:name', async function (req, res) { admin.get('/get_project_attr/:name', async function (req, res) {
res.setHeader("Content-Type", "application/json"); res.setHeader("Content-Type", "application/json");
...@@ -376,9 +391,6 @@ admin.get('/get_proxy', function (req, res) { ...@@ -376,9 +391,6 @@ admin.get('/get_proxy', function (req, res) {
res.send({ namespace: String(str) }); res.send({ namespace: String(str) });
}); });
app.use('/config_server', admin) app.use('/config_server', admin)
console.log("http://192.168.4.3:10088/config_server/get_node_command") console.log("http://192.168.4.3:10088/config_server/get_node_command")
app.listen(10088) app.listen(10088)
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var DBConfigSchema = new Schema({
dbname: String,
ip: String,
port: Number,
username: String,
passwd: String,
table_list: String
});
module.exports = mongoose.model('Dbconfig', DBConfigSchema);
\ No newline at end of file
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