Commit 94bbb4b1 authored by tywldx's avatar tywldx

fix

parent 3c3428fc
var cproc = require('child_process'); const mongoose = require('mongoose');
var execSync = cproc.execSync;
var project_name, project_attr, projects = {},
java_projects = [],
node_projects = [],
python_projects = [],
ui_projects = [];
var param = {
type: "",
name: "",
attr: ""
}
projects = {}
_projects = String(execSync(`curl -s http://192.168.4.3:10088/config_server/get_project_config_from_db`))
_projects = JSON.parse(_projects)
// console.log(typeof(projects))
for (let pro of _projects) {
projects[pro.name] = pro;
switch (pro['type']) {
case "java":
java_projects.push(pro);
break;
case "node":
node_projects.push(pro);
break;
case "ui":
ui_projects.push(pro);
break;
case "python":
python_projects.push(pro);
break;
}
}
var temp = "";
process.argv.forEach(function(val, index, array) {
if (index >= 2) {
if (index % 2 == 0) {
temp = val.replace(/\-/, "");
param[temp] = "";
} else {
param[temp] = val;
}
}
});
function getListAttr(projects, attr) { function getListAttr(projects, attr) {
var list = []; var list = [];
for (var i = 0; i < projects.length; i++) { for (var i = 0; i < projects.length; i++) {
// if (projects[i].is_active) {
list.push(projects[i][attr]) list.push(projects[i][attr])
// }
} }
return list.join(" "); return list.join(" ");
} }
var configFunction = function() {};
configFunction.prototype = { function getProjectAttr(projects,pName, pAttr) {
getProjectAttr: function(pName, pAttr) {
if (typeof projects[pName] == "undefined") { if (typeof projects[pName] == "undefined") {
console.log("") return ""
} else { } else {
var attrs = pAttr.split("/"); var attrs = pAttr.split("/");
if (attrs.length == 0) { if (attrs.length == 0) {
console.log("") return ""
return
} }
var list = []; var list = [];
for (var j = 0; j < attrs.length; j++) { for (var j = 0; j < attrs.length; j++) {
if(projects[pName][attrs[j]]){ if(projects[pName][attrs[j]]){
list.push(projects[pName][attrs[j]].split(" ").join("^")); list.push(projects[pName][attrs[j]].split(" ").join("^"));
}else{ }else{
list.push(" "); list.push(" ");
} }
} }
console.log(list.join("|")) return list.join("|")
} }
}, }
getProjectsAttrs: function(projects, attr, attr2) {
function getProjectsAttrs(projects, attr, attr2) {
var attrs = attr.split("/"); var attrs = attr.split("/");
if (attrs.length == 0) { if (attrs.length == 0) {
return return
...@@ -92,67 +43,154 @@ configFunction.prototype = { ...@@ -92,67 +43,154 @@ configFunction.prototype = {
for (var j = 0; j < attrs.length; j++) { for (var j = 0; j < attrs.length; j++) {
li.push(projects[i][attrs[j]]); li.push(projects[i][attrs[j]]);
} }
// li.push(projects[i].url);
list.push(li.join("|")); list.push(li.join("|"));
} }
} }
}else{ }else{
for (var i = 0; i < projects.length; i++) { for (var i = 0; i < projects.length; i++) {
// if (projects[i].is_active){
var li = [projects[i]["name"]]; var li = [projects[i]["name"]];
for (var j = 0; j < attrs.length; j++) { for (var j = 0; j < attrs.length; j++) {
li.push(projects[i][attrs[j]]); li.push(projects[i][attrs[j]]);
} }
list.push(li.join("|")); list.push(li.join("|"));
// }
} }
} }
return list.join(" "); return list.join(" ");
}, }
getProjectsAttr: function(type, attr) {
switch (type) { function db2db(pro){
let temp = {
project_group: "",
name: pro["project_name"],
type: pro["type"],
url: pro["host_name"].replace(".xyqb.com", "").replace(".quantgroup.cn", ""),
www: pro["host_name"],
git_path: pro["git_path"],
log_name: pro["log_path"],
config_file: pro["config_path"],
command: "",
command_: "",
command2: "",
node_version: "",
port: `${pro["port"]}`,
desc: pro["des"],
is_active: pro["is_active"],
auth: pro["auth"],
target_path: ""
}
if(pro["type"] == "java"){
temp.node_version = pro["command1"];
temp.target_path = pro["jar_path"];
temp.command2 = pro["build_command"];
temp.command = pro["start_command"];
}else if(pro["type"] == "ui"){
temp.command = pro["build_command"]
}else if(pro["type"] == "node"){
temp.command = pro["start_command"]
temp.command2 = pro["stop_command"]
}else if(pro["type"] == "python"){
}
return temp
}
function controller(param){
//链接数据库
mongoose.connect('mongodb://172.30.220.22:27017/qaHome')
mongoose.model("ProConfig",new mongoose.Schema({})).find({}).exec().then(res=>{
// 定义数据
let _res = JSON.parse(JSON.stringify(res));
var project_name, project_attr, projects = {},
java_projects = [],
node_projects = [],
python_projects = [],
ui_projects = []
hosts = {};
projects = {}
for (let pro of _res) {
let temp = db2db(pro);
projects[temp.name] = temp;
hosts[temp.name] = temp.www;
switch (pro['type']) {
case "java": case "java":
console.log(getListAttr(java_projects, attr)); java_projects.push(temp);
break;
case "node":
node_projects.push(temp);
break; break;
case "ui": case "ui":
console.log(getListAttr(ui_projects, attr)); ui_projects.push(temp);
break; break;
case "python": case "python":
console.log(getListAttr(python_projects, attr)); python_projects.push(temp);
break;
case "node":
console.log(getListAttr(node_projects, attr));
break; break;
} }
} }
}
//tower add //定义方法
module.exports={
java : java_projects,
node : node_projects,
python : python_projects,
ui : ui_projects
}
var F = new configFunction();
try {
if (param["type"] == "") { if (param["type"] == "") {
F.getProjectAttr(param["name"], param["attr"]); let str = getProjectAttr(projects,param["name"], param["attr"]);
console.log(str);
} else if (param["type"] == "multi") { } else if (param["type"] == "multi") {
var str = ""; var str = "";
str += F.getProjectsAttrs(java_projects, param["attr"], param["attr2"]); str += getProjectsAttrs(java_projects, param["attr"], param["attr2"]);
str += " " + F.getProjectsAttrs(ui_projects, param["attr"], param["attr2"]); str += " " + getProjectsAttrs(ui_projects, param["attr"], param["attr2"]);
str += " " + F.getProjectsAttrs(python_projects, param["attr"], param["attr2"]); str += " " + getProjectsAttrs(python_projects, param["attr"], param["attr2"]);
str += " " + F.getProjectsAttrs(node_projects, param["attr"], param["attr2"]); str += " " + getProjectsAttrs(node_projects, param["attr"], param["attr2"]);
console.log(str) console.log(str)
} else if (param["type"] == "hosts") { } else if (param["type"] == "hosts") {
console.log(JSON.stringify(hosts)); console.log(JSON.stringify(hosts));
} else { } else {
F.getProjectsAttr(param["type"], param["attr"]); switch (param["type"]) {
case "java":
console.log(getListAttr(java_projects, param["attr"]));
break;
case "ui":
console.log(getListAttr(ui_projects, param["attr"]));
break;
case "python":
console.log(getListAttr(python_projects, param["attr"]));
break;
case "node":
console.log(getListAttr(node_projects, param["attr"]));
break;
}
}
//关闭连接
mongoose.connection.close()
}).catch((err) => {
//关闭链接
console.log(err)
mongoose.connection.close()
});
}
function main(){
var param = {
type: "",
name: "",
attr: ""
}
//获取请求参数
var temp = "";
process.argv.forEach(function(val, index, array) {
if (index >= 2) {
if (index % 2 == 0) {
temp = val.replace(/\-/, "");
param[temp] = "";
} else {
param[temp] = val;
}
} }
});
controller(param)
//这里区分使用那个方法,需要注意的是,这里不在提供输出结果,结果在mongo链接中输出
}
try {
main()
} catch (e) { } catch (e) {
console.log("") console.log("")
} }
\ 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