ControlProxy/backend/yjs/ControlProxy.yjs

141 lines
4.0 KiB
Plaintext
Raw Normal View History

2022-04-19 01:26:59 +00:00
import "repodetail.yjs"
import "search.yjs"
import "audit.yjs"
import "networking.yjs"
import "DAC.yjs"
//网关为Gateway
//路由器改名为Resolver中文名为标识解析系统
//搜索引擎改名为为Registry中文名为注册表系统
//本文接口由李智负责对接。
contract ControlProxy{
function convertArgToJson(arg){
if (typeof(arg)=='string' && !arg.startsWith("{")) return arg;
if (typeof(arg)=='string') return JSON.parse(arg);
return arg;
}
2022-04-20 04:00:37 +00:00
function onCreate(arg){
2022-04-19 01:26:59 +00:00
if (arg==null|| typeof(arg)=='string'){
arg={"prefix":"test.ab.cd",
"router":"GlobalRouter"
};
}
arg = convertArgToJson(arg);
Global.router = "GlobalRouter";
Global.prefix = arg.prefix;
Global.router = arg.router;
initDAC(requester);
2022-04-20 04:00:37 +00:00
org.bdware.sc.controlproxy.RepoProxy.init(arg);
2022-04-19 01:26:59 +00:00
}
function isString(arg){
return typeof(arg)=='string';
}
export function isOwner(){
return checkPermission(requester);
}
@Descripton("参数为,{\"doId\":\"bdware.ss/Repox\"}")
export function addRepo(arg){
arg = convertArgToJson(arg);
if (arg.doId ==undefined ){
return {
"msg":"missing arguments repoId ","code":1};
}
executeContract("Gateway","addLocalRepo",arg);
return {
"msg":"success","rrt":"110ms","code":0};
}
//网关需新增的接口
@Descripton("参数为,{\"doId\":\"bdware.ss/Repox\"}")
export function pingRepo(arg){
arg = convertArgToJson(arg);
if (arg.doId ==undefined ){
return {
"msg":"missing arguments repoId ","code":1};
}
var ret = executeContract("Gateway","pingRepo",arg.doId);
ret = ret.result
if(ret.rrt > 0)
return {
"msg":"success","rrt":ret.rrt,"code":0,"repoInfo":JSON.parse(ret.repoInfo)};
else
return {
"msg":"repo is unconnected","code":1};
}
//网关的接口
export function getCCCCCCCCCCCCConfInfo(){
return Global;
}
@Descripton("无参数")
export function getRepoList(arg){
//use configed arg.routerId;
//TODO!!
ret = executeContract(Global.router,"listRepo","");
//ret=executeContract("Gateway","listLocalRepo","");
//var list = ret.result
return ret.result;
}
//网关的接口
@Descripton("参数为 {\"doId\":\"bdware.ss/Repox\"}")
export function deleteRepo(arg){
arg = convertArgToJson(arg);
if (arg.doId != null && arg.doId.indexOf(Global.prefix) != -1){
executeContract("Gateway","deleteLocalRepo",arg.doId);
return {
"status":"success","code":0};
}
return {
"msg":"can not found repo","code":1};
}
//网关的接口 需新增
@Descripton("参数为 [{\"doId\":\"bdware.ss/Repox\"},{\"doId\":\"bdware.ss/Repoy\"}]")
export function deleteRepoList(arg){
arg = convertArgToJson(arg);
var ret = [];
for (var i=0;i<arg.length;i++){
ret.push(deleteRepo(arg[i]));
}
return ret;
}
//网关的接口
@Descripton("参数为 {\"doId\":..., \"address\":..., \"owner\":..., }")
export function updateRepo(arg){
arg = convertArgToJson(arg);
if (arg.doId!=null){
executeContract("Gateway","addLocalRepo",arg);
return {
"msg":"success","code":0};
}
return {
"msg":"missing arguments","code":1};
}
//总体拓扑图
//@范博
export function getAllTopology(){
var nodeList = [];
nodeList.push({
"name":"小店区仓库","doId":"bdware.ss.ab/Repo1","previousNode":["bdware.ss/Gateway1","bdware.ss/Gateway2"]}
);
nodeList.push({
"name":"太原内部共享网关","doId":"bdware.ss/Gateway1","previousNode":["bdware/Gateway1", "bdware/Gateway2"]}
);
nodeList.push({
"name":"太原对外开放网关","doId":"bdware.ss/Gateway2", "previousNode":["bdware/Gateway1"]}
);
nodeList.push({
"name":"山西内部共享网关","doId":"bdware/Gateway1"}
);
nodeList.push({
"name":"山西内部共享网关2","doId":"bdware/Gateway2"}
);
return nodeList;
}
}