zeus 3 лет назад
Родитель
Сommit
ad66ccf37b
  1. 37
      Dockerfile
  2. 70
      Dockerfile.backup
  3. 9
      dist/css/app.ed7b5fa8.css
  4. 2
      dist/css/chunk-vendors.8f6b4875.css
  5. Двоичные данные
      dist/img/hybrid-1.852eef88.png
  6. 2
      dist/index.html
  7. 2
      dist/js/app.a5b73d3b.js
  8. 1
      dist/js/app.a5b73d3b.js.map
  9. 2
      dist/js/app.a72e0553.js
  10. 1
      dist/js/app.a72e0553.js.map
  11. 34
      dist/js/chunk-vendors.07104166.js
  12. 1
      dist/js/chunk-vendors.07104166.js.map
  13. 1
      dist/js/chunk-vendors.b4c99bde.js.map
  14. 22
      ecosystem.config.js
  15. 43
      ecosystem.config.js.backup
  16. 10
      install.sh
  17. 25
      nginx/swarmlab-stats-proxy-server.conf
  18. 11
      run.yml
  19. 56
      run.yml.backup
  20. 79
      src-local/llo/new.js
  21. 3
      src-local/logs/logfile
  22. 3
      src-local/logs/outfile
  23. 1
      src-local/pid-0.pid
  24. 56
      src/components/manageservices/deploy-bootstrap.vue
  25. 54
      src/components/mynetwork/mytable.vue
  26. 31
      src/store/modules/create_pipelineLLO.js
  27. 3
      start.sh
  28. 4
      stop.sh
  29. 10
      test/testdocker.sh
  30. 462
      viwsession/session1

37
Dockerfile

@ -22,7 +22,9 @@ RUN apk add --no-cache \
build-base \
libxml2-dev \
which \
nginx
jq \
nginx \
&& apk add -U wireguard-tools
# Installing Python dependencies for additional
# functionnalities
@ -40,8 +42,17 @@ RUN apk add --no-cache --virtual .pythonmakedepends \
COPY dist /home/node/swarmlab-app
COPY src-local/llo /home/node/server/llo
COPY src-local/package.json /home/node/server/package.json
COPY src-local/ecosystem.config.js /home/node/swarmlab-app/ecosystem.config.js
#COPY src-local/llo /home/node/swarmlab-app/llo
#COPY src-local/package.json /home/node/swarmlab-app/package.json
#COPY src-local/hybrid /home/node/swarmlab-app/hybrid
#COPY src-local/instance /home/node/swarmlab-app/instance
#COPY src-local/logs /home/node/swarmlab-app/logs
#COPY src-local/myconfig /home/node/swarmlab-app/myconfig
#COPY src-local/start-server.sh /home/node/swarmlab-app/start-server.sh
#COPY src-local/stop-server.sh /home/node/swarmlab-app/stop-server.sh
RUN mkdir -p /home/node/run \
&& mkdir -p /home/node/logs \
@ -54,17 +65,17 @@ RUN mkdir -p /home/node/run \
USER node
WORKDIR /home/node/server
RUN set -uex; \
# npm run build no need it!
npm install; \
npm i async chokidar url-exist-sync axios socketio-auth socket.io-client https socket.io bufferutil utf-8-validate --save \
npm audit fix; \
npm cache clean --force;
#WORKDIR /home/node/swarmlab-app
#RUN set -uex; \
# # npm run build no need it!
# npm install; \
# npm i async chokidar url-exist-sync axios socketio-auth socket.io-client https socket.io bufferutil utf-8-validate simple-git --save \
# npm audit fix; \
# npm cache clean --force;
#
WORKDIR /home/node/swarmlab-app
VOLUME /home/node/swarmlab-app
EXPOSE 443 8080 3000 3080
EXPOSE 80 443 8080 3000 3080
CMD ["pm2-runtime", "ecosystem.config.js"]
CMD ["pm2-runtime", "/home/node/swarmlab-app/ecosystem.config.js"]

70
Dockerfile.backup

@ -0,0 +1,70 @@
#FROM alpine:3.11
FROM node:alpine
LABEL MAINTAINERS="Guillaume Scheibel <guillaume.scheibel@gmail.com>, Damien DUPORTAL <damien.duportal@gmail.com>"
# Installing package required for the runtime
RUN apk add --no-cache \
bash \
curl \
ca-certificates \
findutils \
font-bakoma-ttf \
git \
graphviz \
inotify-tools \
make \
python3 \
py3-pillow \
py3-setuptools \
tzdata \
unzip \
build-base \
libxml2-dev \
which \
nginx
# Installing Python dependencies for additional
# functionnalities
RUN apk add --no-cache --virtual .pythonmakedepends \
build-base \
python3-dev \
py3-pip \
&& pip3 install --no-cache-dir \
actdiag \
pip install supervisor supervisor-stdout \
'blockdiag[pdf]' \
nwdiag \
seqdiag \
&& apk del -r --no-cache .pythonmakedepends
COPY dist /home/node/swarmlab-app
COPY src-local/llo /home/node/server/llo
COPY src-local/package.json /home/node/server/package.json
RUN mkdir -p /home/node/run \
&& mkdir -p /home/node/logs \
&& chown -R node.node /home/node \
&& chmod -R 755 /home/node \
&& ln -s /usr/local/bin/node /usr/bin/node \
&& mkdir -p /run/nginx \
&& npm install pm2@latest -g
USER node
WORKDIR /home/node/server
RUN set -uex; \
# npm run build no need it!
npm install; \
npm i async chokidar url-exist-sync axios socketio-auth socket.io-client https socket.io bufferutil utf-8-validate --save \
npm audit fix; \
npm cache clean --force;
WORKDIR /home/node/swarmlab-app
VOLUME /home/node/swarmlab-app
EXPOSE 443 8080 3000 3080
CMD ["pm2-runtime", "ecosystem.config.js"]

9
dist/css/app.84310fb0.css → dist/css/app.ed7b5fa8.css

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

2
dist/css/chunk-vendors.7ca8a1ff.css → dist/css/chunk-vendors.8f6b4875.css

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Двоичные данные
dist/img/hybrid-1.852eef88.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 12 KiB

2
dist/index.html

@ -1 +1 @@
<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Vue App</title><link href="/css/app.84310fb0.css" rel="preload" as="style"><link href="/css/chunk-vendors.7ca8a1ff.css" rel="preload" as="style"><link href="/js/app.a72e0553.js" rel="preload" as="script"><link href="/js/chunk-vendors.b4c99bde.js" rel="preload" as="script"><link href="/css/chunk-vendors.7ca8a1ff.css" rel="stylesheet"><link href="/css/app.84310fb0.css" rel="stylesheet"></head><body><div id="app"></div><script src="/js/chunk-vendors.b4c99bde.js"></script><script src="/js/app.a72e0553.js"></script></body></html>
<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Vue App</title><link href="/css/app.ed7b5fa8.css" rel="preload" as="style"><link href="/css/chunk-vendors.8f6b4875.css" rel="preload" as="style"><link href="/js/app.a5b73d3b.js" rel="preload" as="script"><link href="/js/chunk-vendors.07104166.js" rel="preload" as="script"><link href="/css/chunk-vendors.8f6b4875.css" rel="stylesheet"><link href="/css/app.ed7b5fa8.css" rel="stylesheet"></head><body><div id="app"></div><script src="/js/chunk-vendors.07104166.js"></script><script src="/js/app.a5b73d3b.js"></script></body></html>

2
dist/js/app.a5b73d3b.js

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

1
dist/js/app.a5b73d3b.js.map

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

2
dist/js/app.a72e0553.js

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

1
dist/js/app.a72e0553.js.map

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

34
dist/js/chunk-vendors.b4c99bde.js → dist/js/chunk-vendors.07104166.js

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

1
dist/js/chunk-vendors.07104166.js.map

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

1
dist/js/chunk-vendors.b4c99bde.js.map

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

22
ecosystem.config.js

@ -17,27 +17,7 @@ module.exports = {
"max_restarts": 10,
"max_memory_restart": "500M",
"restart_delay" : 1000
},
{
"name" : "server",
"autorestart" : true,
"watch" : true,
"cwd" : "/home/node/server",
"script" : "llo/new.js",
"run_as_user" : "node",
"args" : "start",
"pid_file" : "/home/node/pid.pid",
"log_type" : "json",
"log_file" : "/home/node/logs/logfile",
"error_file" : "/home/node/logs/errorfile",
"out_file" : "/home/node/logs/outfile",
"log_date_format": "YYYY-MM-DD HH:mm Z",
"merge_logs" : true,
"exec_mode" : "fork",
"max_restarts": 10,
"max_memory_restart": "500M",
"restart_delay": 1000
},
}
]
}

43
ecosystem.config.js.backup

@ -0,0 +1,43 @@
module.exports = {
"apps": [
{
"name" : "www",
"autorestart" : true,
"watch" : true,
"cwd" : "/home/node/swarmlab-app",
"script" : "nginx -g 'daemon off;'",
"exec_interpreter" : "none",
"log_type" : "json",
"log_file" : "/home/node/logs/logfilenginx",
"error_file" : "/home/node/logs/errorfilenginx",
"out_file" : "/home/node/logs/outfilenginx",
"log_date_format": "YYYY-MM-DD HH:mm Z",
"merge_logs" : true,
"exec_mode" : "fork_mode",
"max_restarts": 10,
"max_memory_restart": "500M",
"restart_delay" : 1000
},
{
"name" : "server",
"autorestart" : true,
"watch" : true,
"cwd" : "/home/node/server",
"script" : "llo/new.js",
"run_as_user" : "node",
"args" : "start",
"pid_file" : "/home/node/pid.pid",
"log_type" : "json",
"log_file" : "/home/node/logs/logfile",
"error_file" : "/home/node/logs/errorfile",
"out_file" : "/home/node/logs/outfile",
"log_date_format": "YYYY-MM-DD HH:mm Z",
"merge_logs" : true,
"exec_mode" : "fork",
"max_restarts": 10,
"max_memory_restart": "500M",
"restart_delay": 1000
},
]
}

10
install.sh

@ -195,10 +195,10 @@ fi
# npm install
if [ $toolsok == 'ok' ];then
npm install
npm audit fix
fi
#if [ $toolsok == 'ok' ];then
# npm install
# npm audit fix
#fi
if [ $toolsok == 'ok' ];then
cd src-local
@ -243,6 +243,8 @@ FOE
fi
sudo bash ./src-local/hybrid/connect/get-base-ca
sudo bash ./src-local/hybrid/connect/get-swarmlab-ca
#echo $nodeversion

25
nginx/swarmlab-stats-proxy-server.conf

@ -4,28 +4,25 @@ resolver_timeout 5s;
server {
listen 80;
listen [::]:80 ipv6only=on;
#server_name hybrid-local.swarmlab.io;
#server_name hybrid-local.swarmlab.io;
server_name localhost;
return 301 https://hybrid-local.swarmlab.io$request_uri;
}
server {
listen [::]:443 ssl ipv6only=off;
#return 301 https://hybrid-local.swarmlab.io$request_uri;
#listen [::]:443 ssl ipv6only=off;
#server_name hybrid-local.swarmlab.io;
server_name localhost;
root /home/node/swarmlab-app/dist;
#server_name localhost;
root /home/node/swarmlab-app/dist;
# To allow special characters in headers
ignore_invalid_headers off;
ignore_invalid_headers off;
# Allow any size file to be uploaded.
# Set to a value such as 1000m; to restrict file size to a specific value
client_max_body_size 0;
client_max_body_size 0;
ssl_certificate /etc/nginx/swarmlab.crt;
ssl_certificate_key /etc/nginx/swarmlab.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
#ssl_certificate /etc/nginx/swarmlab.crt;
#ssl_certificate_key /etc/nginx/swarmlab.key;
#ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#ssl_ciphers HIGH:!aNULL:!MD5;

11
run.yml

@ -4,6 +4,9 @@ services:
swarmlabclient:
image: hub.swarmlab.io:5443/playground-hybrid-agent:latest
user: root
privileged: true
container_name: swarmlab-hybrid-agent
#entrypoint: ["mpi_bootstrap", "role=master", "mpi_master_service_name=master", "mpi_worker_service_name=worker"]
environment:
- NODENAME={{.Node.Hostname}}
- NODEID={{.Node.ID}}
@ -31,20 +34,24 @@ services:
delay: 10s
order: stop-first
ports:
- "55543:443"
- "3088:80"
#- "3000:3000"
networks:
hybrid-net:
volumes:
#- /var/run/docker.sock:/var/run/docker.sock
- /etc/localtime:/etc/localtime:ro
- ${nodepath}/ecosystem.config.js:/home/node/swarmlab-app/ecosystem.config.js
- ${nodepath}/dist:/home/node/swarmlab-app/dist
- ${nodepath}/src-local:/home/node/swarmlab-app/dist/src-local
#- ${nodepath}/src-local/llo/new.js:/home/node/server/llo/new.js
- ${nodepath}/src-local/llo:/home/node/server/llo
#- ${nodepath}/src-local/llo:/home/node/server/llo
#- ${nodepath}/hybrid/swarmlab-sec:/home/node/server/hybrid
# proxy
- ${nodepath}/nginx/swarmlab-stats-proxy-server.conf:/etc/nginx/conf.d/default.conf
- ${nodepath}/keys/swarmlab.crt:/etc/nginx/swarmlab.crt
- ${nodepath}/keys/swarmlab.key:/etc/nginx/swarmlab.key
#command: [nginx-debug, '-g', 'daemon off;']
networks:

56
run.yml.backup

@ -0,0 +1,56 @@
version: "3.8"
services:
swarmlabclient:
image: hub.swarmlab.io:5443/playground-hybrid-agent:latest
user: root
privileged: true
environment:
- NODENAME={{.Node.Hostname}}
- NODEID={{.Node.ID}}
deploy:
replicas: 1
placement:
max_replicas_per_node: 1
#constraints:
#- node.id==${noderead}
#- node.labels.region==okeanos
resources:
limits:
cpus: '0.50'
memory: 250M
reservations:
cpus: '1'
memory: 750M
restart_policy:
condition: on-failure
delay: 5s
max_attempts: 5
window: 120s
update_config:
parallelism: 2
delay: 10s
order: stop-first
ports:
- "3088:443"
#- "3000:3000"
networks:
hybrid-net:
volumes:
#- /var/run/docker.sock:/var/run/docker.sock
#- /etc/localtime:/etc/localtime:ro
- ${nodepath}/ecosystem.config.js:/home/node/swarmlab-app/ecosystem.config.js
- ${nodepath}/dist:/home/node/swarmlab-app/dist
- ${nodepath}/src-local:/home/node/swarmlab-app/dist/src-local
#- ${nodepath}/src-local/llo/new.js:/home/node/server/llo/new.js
- ${nodepath}/src-local/llo:/home/node/server/llo
#- ${nodepath}/hybrid/swarmlab-sec:/home/node/server/hybrid
# proxy
- ${nodepath}/nginx/swarmlab-stats-proxy-server.conf:/etc/nginx/conf.d/default.conf
- ${nodepath}/keys/swarmlab.crt:/etc/nginx/swarmlab.crt
- ${nodepath}/keys/swarmlab.key:/etc/nginx/swarmlab.key
networks:
hybrid-net:

79
src-local/llo/new.js

@ -122,9 +122,9 @@ app.get('/dockerservices', (req, res, next) => {
var string = stdout.toString()
var datajson = JSON.parse(string);
console.log('Number of files ' + stdout);
console.log('Number string ' + string);
console.log('stringify ' + JSON.stringify(datajson));
//console.log('Number of files ' + stdout);
//console.log('Number string ' + string);
//console.log('stringify ' + JSON.stringify(datajson));
var total = datajson.length;
var perpage = per_page
//var page = 1
@ -188,7 +188,7 @@ app.get('/getservicesinfo', (req, res, next) => {
var RES = new Object();
RES.instance = req.query["instance"]
var services_path = './instance/'+RES.instance
console.log(services_path)
//console.log(services_path)
if (fs.existsSync(services_path)) {
var found = 'yes'
RES.error = false
@ -205,6 +205,50 @@ app.get('/getservicesinfo', (req, res, next) => {
});
app.get('/getmountinfo', (req, res, next) => {
var RES = new Object();
RES.instance = req.query["instance"]
var showexec = `docker inspect --format='{{json .Mounts}}' ${RES.instance} | jq . -s`
//console.log(JSON.stringify(showexec))
exec(showexec, (err, stdout, stderr) => {
if (err) {
console.error(`exec error: ${err}`);
return;
}
if (stdout) {
var string = stdout.toString()
var datajson = JSON.parse(string);
//console.log(JSON.stringify(string))
//console.log(JSON.stringify(datajson))
//var extenderror = new RegExp(RES.instance);
/*
var found = 'no';
for(var i = 0; i < datajson.length; i++) {
var servicename = datajson[i].Names
console.log(JSON.stringify(servicename))
if(extenderror.test(servicename)){
found = 'yes';
}
}
*/
RES.error = false
RES.error_msg = "ok"
RES.test = datajson;
//RES.data = found;
res.json(RES)
}else{
var found = 'no'
RES.error = false
RES.error_msg = "ok"
//RES.data = found;
res.json(RES)
}
});
});
app.get('/getservicesstatus', (req, res, next) => {
var RES = new Object();
@ -218,13 +262,13 @@ app.get('/getservicesstatus', (req, res, next) => {
if (stdout) {
var string = stdout.toString()
var datajson = JSON.parse(string);
console.log(JSON.stringify(datajson.length))
console.log(JSON.stringify(datajson))
//console.log(JSON.stringify(datajson.length))
//console.log(JSON.stringify(datajson))
var extenderror = new RegExp(RES.instance);
var found = 'no';
for(var i = 0; i < datajson.length; i++) {
var servicename = datajson[i].Names
console.log(JSON.stringify(servicename))
//console.log(JSON.stringify(servicename))
if(extenderror.test(servicename)){
found = 'yes';
}
@ -287,7 +331,7 @@ app.get('/create_config', (req, res, next) => {
var RES = new Object();
RES.value = req.query["value"]
console.log('value error '+JSON.stringify(RES.value))
//console.log('value error '+JSON.stringify(RES.value))
//var showexec = `cd ./hybrid; /bin/bash ./create-keys.sh`
fs.writeFileSync('./hybrid/keys.json', JSON.stringify(RES.value));
RES.value = JSON.parse(RES.value);
@ -510,8 +554,8 @@ var ppid = ''
io.on('connection', function(socket) {
console.log('new connection');
socket.on('start', (value) => {
console.log('start')
console.log('value '+JSON.stringify(value))
//console.log('start')
//console.log('value '+JSON.stringify(value))
if(value.swarmlabname){
var service = value.swarmlabname
var services_path = './instance/'+service+'/'+service
@ -539,8 +583,8 @@ IMAGE_NAME=${service}
SSH_PORT=${service_port}
TEST=${service}
`
console.log('value1 '+JSON.stringify(ENV_service_file_path))
console.log('value2 '+JSON.stringify(ENV_service_file))
//console.log('value1 '+JSON.stringify(ENV_service_file_path))
//console.log('value2 '+JSON.stringify(ENV_service_file))
fs.writeFileSync(ENV_service_file_path, ENV_service_file ,{encoding:'utf8',flag:'w'});
var service_up = '/bin/bash ../install/usr/share/swarmlab.io/sec/swarmlab-sec up size='+service_size
@ -610,7 +654,7 @@ TEST=${service}
socket.on('install', (value) => {
if(value.swarmlabname){
console.log('install')
//console.log('install')
var service = value.swarmlabname
var service_git = value.git
var services_path = './instance/'+service
@ -691,12 +735,13 @@ SSH_PORT=
});
socket.on('container-stop', (service, id) => {
var services_path = './instance/'+service+'/'+service
var containerrm = '/bin/sh ./container-stop.sh '+id
var mypath = process.cwd()
console.log(mypath);
var containerrm = '/bin/sh ./hybrid/connect/container-stop.sh '+id
const stop = spawn(containerrm, {
stdio: 'pipe',
shell: true,
cwd: services_path
cwd: mypath
});
stop.stdout.on('data', function (data) {
var n = {}
@ -718,7 +763,7 @@ SSH_PORT=
});
socket.on('kill', () => {
console.log(ppid)
//console.log(ppid)
//process.kill(ppid, 'SIGHUP');
child[0].kill('SIGHUP');
//child[0].kill('SIGINT');

3
src-local/logs/logfile

@ -401,3 +401,6 @@
{"message":"10235\n","timestamp":"2020-12-31 03:01 +02:00","type":"out","process_id":0,"app_name":"server"}
{"message":"server up and running at 3000 port\n","timestamp":"2021-01-11 00:11 +02:00","type":"out","process_id":0,"app_name":"server"}
{"message":"server up and running at 3000 port\n","timestamp":"2021-01-11 00:20 +02:00","type":"out","process_id":0,"app_name":"server"}
{"message":"server up and running at 3080 port\n","timestamp":"2021-01-25 11:58 +02:00","type":"out","process_id":0,"app_name":"server"}
{"message":"server up and running at 3080 port\n","timestamp":"2021-01-25 11:58 +02:00","type":"out","process_id":0,"app_name":"server"}
{"message":"new connection\n","timestamp":"2021-01-25 11:59 +02:00","type":"out","process_id":0,"app_name":"server"}

3
src-local/logs/outfile

@ -334,3 +334,6 @@
{"message":"10235\n","timestamp":"2020-12-31 03:01 +02:00","type":"out","process_id":0,"app_name":"server"}
{"message":"server up and running at 3000 port\n","timestamp":"2021-01-11 00:11 +02:00","type":"out","process_id":0,"app_name":"server"}
{"message":"server up and running at 3000 port\n","timestamp":"2021-01-11 00:20 +02:00","type":"out","process_id":0,"app_name":"server"}
{"message":"server up and running at 3080 port\n","timestamp":"2021-01-25 11:58 +02:00","type":"out","process_id":0,"app_name":"server"}
{"message":"server up and running at 3080 port\n","timestamp":"2021-01-25 11:58 +02:00","type":"out","process_id":0,"app_name":"server"}
{"message":"new connection\n","timestamp":"2021-01-25 11:59 +02:00","type":"out","process_id":0,"app_name":"server"}

1
src-local/pid-0.pid

@ -0,0 +1 @@
7544

56
src/components/manageservices/deploy-bootstrap.vue

@ -466,19 +466,51 @@ export default {
*/
async add_deploy(){
for (var key in this.deploy) {
if (this.deploy.hasOwnProperty(key)) {
this.isValid(this.deploy.hasOwnProperty(key))
var o = Object.entries(this.deploy)
var pvalid = new Promise((resolve, reject) => {
o.forEach((value, index, array) => {
this.isValid(array[index][0])
if (index === array.length -1) resolve();
});
});
pvalid.then(() => {
(async () => {
var isAllValid = true
for (const [key, value] of Object.entries(this.isDeployValid)) {
console.log(`${key}: ${value}`);
if(value != 1){
isAllValid = false
}
}
}
/*
var log = await store.dispatch("pipelineLLO/adddeploy",{
token:this.token,
deploy:this.deploy
})
this.$root.$emit('hybrid_refresh_bootstrap_view')
*/
if(isAllValid){
var log = await store.dispatch("pipelineLLO/adddeploy",{
token:this.token,
deploy:this.deploy
})
this.$root.$emit('hybrid_refresh_bootstrap_view')
}else{
var info = "Missing required fields"
this.$swal({
type: 'Info',
title: 'Info!',
icon:'info',
html: info,
showCloseButton: true,
showLoaderOnConfirm: false,
allowOutsideClick: false,
cancelButtonText: 'No, cancel!',
showCancelButton: false,
showLoaderOnConfirm: false,
reverseButtons: true,
focusCancel: true,
confirmButtonText: 'Ok!'
})
}
})();
});
},
async showInfo(action){
if(action == 'image' ){

54
src/components/mynetwork/mytable.vue

@ -39,6 +39,15 @@
</div>
<div class="input-group-prepend">
<button
v-if="hybridshowdata.Names"
class="btn btn-outline-success"
round
type="button"
@click="onAction('container-connect')"
>
Connect</button>
<button
v-if="hybridshowdata.Names"
class="btn btn-outline-danger"
round
type="button"
@ -255,6 +264,51 @@ export default {
//console.log('start ' + JSON.stringify(log))
console.log('startobj ' + JSON.stringify(obj))
//console.log(this.$socket.client.connect())
}else if(action == 'container-connect'){
var log = await store.dispatch("pipelineLLO/getmountinfo",{
instance:this.hybridshowdata.Names
})
console.log('log ' + JSON.stringify(log))
//var Localpath = JSON.parse(log.data.test)
var info=`<h5>You can connect to the same contained process multiple times simultaneously, from different sessions on the Docker host.<br>
<br>
<b>Open a terminal and Run:</b>
<br>
<br>
`
info += 'docker exec -it -udocker '+this.hybridshowdata.Names+' /bin/bash '
info +='<br>'
info +='<br>'
info +=' Directory Maps'
info +=' <table>'
info +='<tr><td><b>Local</b></td><td><i>Container</i></td></tr>'
var datajson = log.data.test[0]
for(var i = 0; i < datajson.length; i++) {
console.log('test1 '+JSON.stringify(datajson[i]))
if(datajson[i].Type == 'bind'){
info +='<tr><td><b>'+datajson[i].Source+' </b></td><td><i>' + datajson[i].Destination+' </i></td></tr>'
}
}
info +=' </table>'
info +='</h5><br>'
//console.log('test1 '+JSON.stringify(this.hybridshowdata))
this.$swal({
type: 'Info',
title: 'Info!',
icon:'info',
html: info,
showCloseButton: true,
showLoaderOnConfirm: false,
allowOutsideClick: false,
cancelButtonText: 'No, cancel!',
showCancelButton: false,
showLoaderOnConfirm: false,
reverseButtons: true,
focusCancel: true,
confirmButtonText: 'Ok!'
})
}else if(action == 'install'){
var obj = {}
obj.action = 'up'

31
src/store/modules/create_pipelineLLO.js

@ -162,6 +162,37 @@ export default {
return R;
}
}
},
async getmountinfo({commit,rootGetters}, value) {
console.log('value '+JSON.stringify(value))
try {
var token = value.token
var params = {
instance: value.instance
}
var options = {
params: params,
headers: { 'content-type': 'application/x-www-form-urlencoded',Authorization: `Bearer ${token}` },
};
var sock_server_l = ApiConfig.url_80+'/getmountinfo'
var p = await axios.get(sock_server_l,options);
//var p = await axios.get('https://localhost:3000/getservicesinfo',options);
return p
//console.log(JSON.stringify(p))
//console.log(value.token)
//console.log(value.swarmlabname)
} catch (e) {
if(e.message == "Request failed with status code 401" || /401/i.test(e.message)){
//console.log('error '+JSON.stringify(e))
window.location.href = 'https://api-login.swarmlab.io:8089';
}else{
var R = {
ERROR_str: e,
ERROR: 'yes'
}
return R;
}
}
},
async getservicesinfo({commit,rootGetters}, value) {
console.log('value '+JSON.stringify(value))

3
start.sh

@ -3,4 +3,5 @@ wdir=$PWD
cd src-local
./start-server.sh
cd $wdir
npm run serve
#npm run serve
./run.yml.sh

4
stop.sh

@ -3,3 +3,7 @@ wdir=$PWD
cd src-local
./stop-server.sh
cd $wdir
#docker stop swarmlab-hybrid-agent
#docker rm swarmlab-hybrid-agent
./down.sh

10
test/testdocker.sh

@ -1,10 +0,0 @@
dockerswarm=$(docker info --format "{{json .}}" | jq .OSType)
tempswarm="${dockerswarm%\"}"
tempswarm="${tempswarm#\"}"
dockerswarm=$tempswarm
echo $dockerswarm

462
viwsession/session1

@ -0,0 +1,462 @@
let SessionLoad = 1
if &cp | set nocp | endif
let s:so_save = &so | let s:siso_save = &siso | set so=0 siso=0
let v:this_session=expand("<sfile>:p")
silent only
cd /data/appl/ok/swarmlab-hybrid-agent/src/components
if expand('%') == '' && !&modified && line('$') <= 1 && getline(1) == ''
let s:wipebuf = bufnr('%')
endif
set shortmess=aoO
badd +1 /data/appl/ok/swarmlab-hybrid-agent/src/components/mynetwork/AdhocView.vue
badd +1 /data/appl/ok/swarmlab-hybrid-agent/src-local/llo/new.js
badd +1 /data/appl/ok/swarmlab-hybrid-agent/src/components/mynetwork/mytable.vue
badd +50 /data/appl/ok/swarmlab-hybrid-agent/src/components/mynetwork/dockerservices.vue
badd +43 /data/appl/ok/swarmlab-hybrid-agent/src/components/mynetwork/availableservices.vue
badd +1 /data/appl/ok/swarmlab-hybrid-agent/src/components/mynetwork.vue
badd +20 /data/appl/ok/swarmlab-hybrid-agent/src/store/modules/create_pipelineLLO.js
badd +1 /data/appl/ok/swarmlab-hybrid-agent/src/components/myservices.vue
badd +1 /data/appl/ok/swarmlab-hybrid-agent/src/App.vue
badd +1 /data/appl/ok/swarmlab-hybrid-agent/src/components/myconnect-server.vue
badd +1 /data/appl/ok/swarmlab-hybrid-agent/src/components/mynetwork/myconnect-server.vue
badd +1 /data/appl/ok/swarmlab-hybrid-agent/src/components/manageservices.vue
badd +58 /data/appl/ok/swarmlab-hybrid-agent/src/components/manageservices/deploy-bootstrap.vue
badd +30 /data/appl/ok/swarmlab-hybrid-agent/src/components/managedeploy.vue
badd +1 /data/appl/ok/swarmlab-hybrid-agent/src/components/manageservices/view-service.vue
argglobal
silent! argdel *
$argadd mynetwork.vue
set stal=2
edit /data/appl/ok/swarmlab-hybrid-agent/src/components/mynetwork/AdhocView.vue
set splitbelow splitright
wincmd _ | wincmd |
vsplit
1wincmd h
wincmd _ | wincmd |
split
1wincmd k
wincmd w
wincmd w
wincmd _ | wincmd |
split
1wincmd k
wincmd w
set nosplitbelow
set nosplitright
wincmd t
set winminheight=1 winheight=1 winminwidth=1 winwidth=1
exe '1resize ' . ((&lines * 23 + 25) / 50)
exe 'vert 1resize ' . ((&columns * 102 + 102) / 205)
exe '2resize ' . ((&lines * 23 + 25) / 50)
exe 'vert 2resize ' . ((&columns * 102 + 102) / 205)
exe '3resize ' . ((&lines * 23 + 25) / 50)
exe 'vert 3resize ' . ((&columns * 102 + 102) / 205)
exe '4resize ' . ((&lines * 23 + 25) / 50)
exe 'vert 4resize ' . ((&columns * 102 + 102) / 205)
argglobal
setlocal fdm=manual
setlocal fde=0
setlocal fmr={{{,}}}
setlocal fdi=#
setlocal fdl=0
setlocal fml=1
setlocal fdn=20
setlocal fen
silent! normal! zE
let s:l = 393 - ((12 * winheight(0) + 11) / 23)
if s:l < 1 | let s:l = 1 | endif
exe s:l
normal! zt
393
normal! 010|
lcd /data/appl/ok/swarmlab-hybrid-agent/src/components
wincmd w
argglobal
if bufexists('/data/appl/ok/swarmlab-hybrid-agent/src/components/mynetwork/mytable.vue') | buffer /data/appl/ok/swarmlab-hybrid-agent/src/components/mynetwork/mytable.vue | else | edit /data/appl/ok/swarmlab-hybrid-agent/src/components/mynetwork/mytable.vue | endif
setlocal fdm=manual
setlocal fde=0
setlocal fmr={{{,}}}
setlocal fdi=#
setlocal fdl=0
setlocal fml=1
setlocal fdn=20
setlocal fen
silent! normal! zE
let s:l = 51 - ((4 * winheight(0) + 11) / 23)
if s:l < 1 | let s:l = 1 | endif
exe s:l
normal! zt
51
normal! 0
lcd /data/appl/ok/swarmlab-hybrid-agent/src/components
wincmd w
argglobal
if bufexists('/data/appl/ok/swarmlab-hybrid-agent/src/components/myservices.vue') | buffer /data/appl/ok/swarmlab-hybrid-agent/src/components/myservices.vue | else | edit /data/appl/ok/swarmlab-hybrid-agent/src/components/myservices.vue | endif
setlocal fdm=manual
setlocal fde=0
setlocal fmr={{{,}}}
setlocal fdi=#
setlocal fdl=0
setlocal fml=1
setlocal fdn=20
setlocal fen
silent! normal! zE
let s:l = 21 - ((0 * winheight(0) + 11) / 23)
if s:l < 1 | let s:l = 1 | endif
exe s:l
normal! zt
21
normal! 09|
lcd /data/appl/ok/swarmlab-hybrid-agent/src/components
wincmd w
argglobal
if bufexists('/data/appl/ok/swarmlab-hybrid-agent/src/components/mynetwork.vue') | buffer /data/appl/ok/swarmlab-hybrid-agent/src/components/mynetwork.vue | else | edit /data/appl/ok/swarmlab-hybrid-agent/src/components/mynetwork.vue | endif
setlocal fdm=manual
setlocal fde=0
setlocal fmr={{{,}}}
setlocal fdi=#
setlocal fdl=0
setlocal fml=1
setlocal fdn=20
setlocal fen
silent! normal! zE
let s:l = 35 - ((0 * winheight(0) + 11) / 23)
if s:l < 1 | let s:l = 1 | endif
exe s:l
normal! zt
35
normal! 010|
lcd /data/appl/ok/swarmlab-hybrid-agent/src/components
wincmd w
exe '1resize ' . ((&lines * 23 + 25) / 50)
exe 'vert 1resize ' . ((&columns * 102 + 102) / 205)
exe '2resize ' . ((&lines * 23 + 25) / 50)
exe 'vert 2resize ' . ((&columns * 102 + 102) / 205)
exe '3resize ' . ((&lines * 23 + 25) / 50)
exe 'vert 3resize ' . ((&columns * 102 + 102) / 205)
exe '4resize ' . ((&lines * 23 + 25) / 50)
exe 'vert 4resize ' . ((&columns * 102 + 102) / 205)
tabedit /data/appl/ok/swarmlab-hybrid-agent/src-local/llo/new.js
set splitbelow splitright
wincmd _ | wincmd |
vsplit
1wincmd h
wincmd w
wincmd _ | wincmd |
split
1wincmd k
wincmd w
set nosplitbelow
set nosplitright
wincmd t
set winminheight=1 winheight=1 winminwidth=1 winwidth=1
exe 'vert 1resize ' . ((&columns * 102 + 102) / 205)
exe '2resize ' . ((&lines * 23 + 25) / 50)
exe 'vert 2resize ' . ((&columns * 102 + 102) / 205)
exe '3resize ' . ((&lines * 23 + 25) / 50)
exe 'vert 3resize ' . ((&columns * 102 + 102) / 205)
argglobal
setlocal fdm=manual
setlocal fde=0
setlocal fmr={{{,}}}
setlocal fdi=#
setlocal fdl=0
setlocal fml=1
setlocal fdn=20
setlocal fen
silent! normal! zE
let s:l = 115 - ((1 * winheight(0) + 23) / 47)
if s:l < 1 | let s:l = 1 | endif
exe s:l
normal! zt
115
normal! 03|
lcd /data/appl/ok/swarmlab-hybrid-agent/src/components/mynetwork
wincmd w
argglobal
if bufexists('/data/appl/ok/swarmlab-hybrid-agent/src/components/mynetwork/dockerservices.vue') | buffer /data/appl/ok/swarmlab-hybrid-agent/src/components/mynetwork/dockerservices.vue | else | edit /data/appl/ok/swarmlab-hybrid-agent/src/components/mynetwork/dockerservices.vue | endif
setlocal fdm=manual
setlocal fde=0
setlocal fmr={{{,}}}
setlocal fdi=#
setlocal fdl=0
setlocal fml=1
setlocal fdn=20
setlocal fen
silent! normal! zE
let s:l = 148 - ((0 * winheight(0) + 11) / 23)
if s:l < 1 | let s:l = 1 | endif
exe s:l
normal! zt
148
normal! 09|
lcd /data/appl/ok/swarmlab-hybrid-agent/src/components
wincmd w
argglobal
if bufexists('/data/appl/ok/swarmlab-hybrid-agent/src/components/mynetwork/availableservices.vue') | buffer /data/appl/ok/swarmlab-hybrid-agent/src/components/mynetwork/availableservices.vue | else | edit /data/appl/ok/swarmlab-hybrid-agent/src/components/mynetwork/availableservices.vue | endif
setlocal fdm=manual
setlocal fde=0
setlocal fmr={{{,}}}
setlocal fdi=#
setlocal fdl=0
setlocal fml=1
setlocal fdn=20
setlocal fen
silent! normal! zE
let s:l = 312 - ((0 * winheight(0) + 11) / 23)
if s:l < 1 | let s:l = 1 | endif
exe s:l
normal! zt
312
normal! 013|
lcd /data/appl/ok/swarmlab-hybrid-agent/src/components
wincmd w
exe 'vert 1resize ' . ((&columns * 102 + 102) / 205)
exe '2resize ' . ((&lines * 23 + 25) / 50)
exe 'vert 2resize ' . ((&columns * 102 + 102) / 205)
exe '3resize ' . ((&lines * 23 + 25) / 50)
exe 'vert 3resize ' . ((&columns * 102 + 102) / 205)
tabedit /data/appl/ok/swarmlab-hybrid-agent/src/store/modules/create_pipelineLLO.js
set splitbelow splitright
wincmd _ | wincmd |
vsplit
1wincmd h
wincmd w
set nosplitbelow
set nosplitright
wincmd t
set winminheight=1 winheight=1 winminwidth=1 winwidth=1
exe 'vert 1resize ' . ((&columns * 102 + 102) / 205)
exe 'vert 2resize ' . ((&columns * 102 + 102) / 205)
argglobal
setlocal fdm=manual
setlocal fde=0
setlocal fmr={{{,}}}
setlocal fdi=#
setlocal fdl=0
setlocal fml=1
setlocal fdn=20
setlocal fen
silent! normal! zE
let s:l = 344 - ((20 * winheight(0) + 23) / 47)
if s:l < 1 | let s:l = 1 | endif
exe s:l
normal! zt
344
normal! 015|
lcd /data/appl/ok/swarmlab-hybrid-agent/src/components/mynetwork
wincmd w
argglobal
if bufexists('/data/appl/ok/swarmlab-hybrid-agent/src/App.vue') | buffer /data/appl/ok/swarmlab-hybrid-agent/src/App.vue | else | edit /data/appl/ok/swarmlab-hybrid-agent/src/App.vue | endif
setlocal fdm=manual
setlocal fde=0
setlocal fmr={{{,}}}
setlocal fdi=#
setlocal fdl=0
setlocal fml=1
setlocal fdn=20
setlocal fen
silent! normal! zE
let s:l = 406 - ((0 * winheight(0) + 23) / 47)
if s:l < 1 | let s:l = 1 | endif
exe s:l
normal! zt
406
normal! 019|
lcd /data/appl/ok/swarmlab-hybrid-agent/src/components/mynetwork
wincmd w
exe 'vert 1resize ' . ((&columns * 102 + 102) / 205)
exe 'vert 2resize ' . ((&columns * 102 + 102) / 205)
tabedit /data/appl/ok/swarmlab-hybrid-agent/src/components/myconnect-server.vue
set splitbelow splitright
wincmd _ | wincmd |
vsplit
1wincmd h
wincmd w
set nosplitbelow
set nosplitright
wincmd t
set winminheight=1 winheight=1 winminwidth=1 winwidth=1
exe 'vert 1resize ' . ((&columns * 102 + 102) / 205)
exe 'vert 2resize ' . ((&columns * 102 + 102) / 205)
argglobal
setlocal fdm=manual
setlocal fde=0
setlocal fmr={{{,}}}
setlocal fdi=#
setlocal fdl=0
setlocal fml=1
setlocal fdn=20
setlocal fen
silent! normal! zE
let s:l = 26 - ((25 * winheight(0) + 23) / 47)
if s:l < 1 | let s:l = 1 | endif
exe s:l
normal! zt
26
normal! 0
lcd /data/appl/ok/swarmlab-hybrid-agent/src/components/mynetwork
wincmd w
argglobal
if bufexists('/data/appl/ok/swarmlab-hybrid-agent/src/components/mynetwork/myconnect-server.vue') | buffer /data/appl/ok/swarmlab-hybrid-agent/src/components/mynetwork/myconnect-server.vue | else | edit /data/appl/ok/swarmlab-hybrid-agent/src/components/mynetwork/myconnect-server.vue | endif
setlocal fdm=manual
setlocal fde=0
setlocal fmr={{{,}}}
setlocal fdi=#
setlocal fdl=0
setlocal fml=1
setlocal fdn=20
setlocal fen
silent! normal! zE
let s:l = 145 - ((6 * winheight(0) + 23) / 47)
if s:l < 1 | let s:l = 1 | endif
exe s:l
normal! zt
145
normal! 0
lcd /data/appl/ok/swarmlab-hybrid-agent/src/components/mynetwork
wincmd w
exe 'vert 1resize ' . ((&columns * 102 + 102) / 205)
exe 'vert 2resize ' . ((&columns * 102 + 102) / 205)
tabedit /data/appl/ok/swarmlab-hybrid-agent/src/components/manageservices.vue
set splitbelow splitright
wincmd _ | wincmd |
vsplit
1wincmd h
wincmd w
set nosplitbelow
set nosplitright
wincmd t
set winminheight=1 winheight=1 winminwidth=1 winwidth=1
exe 'vert 1resize ' . ((&columns * 102 + 102) / 205)
exe 'vert 2resize ' . ((&columns * 102 + 102) / 205)
argglobal
enew
file /data/appl/ok/swarmlab-hybrid-agent/src/components/manageservices/manage-service.vue
setlocal fdm=manual
setlocal fde=0
setlocal fmr={{{,}}}
setlocal fdi=#
setlocal fdl=0
setlocal fml=1
setlocal fdn=20
setlocal fen
lcd /data/appl/ok/swarmlab-hybrid-agent/src/components/mynetwork
wincmd w
argglobal
setlocal fdm=manual
setlocal fde=0
setlocal fmr={{{,}}}
setlocal fdi=#
setlocal fdl=0
setlocal fml=1
setlocal fdn=20
setlocal fen
silent! normal! zE
let s:l = 18 - ((11 * winheight(0) + 23) / 47)
if s:l < 1 | let s:l = 1 | endif
exe s:l
normal! zt
18
normal! 011|
lcd /data/appl/ok/swarmlab-hybrid-agent/src/components/mynetwork
wincmd w
exe 'vert 1resize ' . ((&columns * 102 + 102) / 205)
exe 'vert 2resize ' . ((&columns * 102 + 102) / 205)
tabedit /data/appl/ok/swarmlab-hybrid-agent/src/components/manageservices/deploy-bootstrap.vue
set splitbelow splitright
wincmd _ | wincmd |
vsplit
1wincmd h
wincmd w
wincmd _ | wincmd |
split
1wincmd k
wincmd w
set nosplitbelow
set nosplitright
wincmd t
set winminheight=1 winheight=1 winminwidth=1 winwidth=1
exe 'vert 1resize ' . ((&columns * 75 + 102) / 205)
exe '2resize ' . ((&lines * 18 + 25) / 50)
exe 'vert 2resize ' . ((&columns * 129 + 102) / 205)
exe '3resize ' . ((&lines * 28 + 25) / 50)
exe 'vert 3resize ' . ((&columns * 129 + 102) / 205)
argglobal
setlocal fdm=manual
setlocal fde=0
setlocal fmr={{{,}}}
setlocal fdi=#
setlocal fdl=0
setlocal fml=1
setlocal fdn=20
setlocal fen
silent! normal! zE
let s:l = 262 - ((44 * winheight(0) + 23) / 47)
if s:l < 1 | let s:l = 1 | endif
exe s:l
normal! zt
262
normal! 010|
lcd /data/appl/ok/swarmlab-hybrid-agent/src/components/mynetwork
wincmd w
argglobal
if bufexists('/data/appl/ok/swarmlab-hybrid-agent/src/components/managedeploy.vue') | buffer /data/appl/ok/swarmlab-hybrid-agent/src/components/managedeploy.vue | else | edit /data/appl/ok/swarmlab-hybrid-agent/src/components/managedeploy.vue | endif
setlocal fdm=manual
setlocal fde=0
setlocal fmr={{{,}}}
setlocal fdi=#
setlocal fdl=0
setlocal fml=1
setlocal fdn=20
setlocal fen
silent! normal! zE
let s:l = 12 - ((11 * winheight(0) + 9) / 18)
if s:l < 1 | let s:l = 1 | endif
exe s:l
normal! zt
12
normal! 023|
lcd /data/appl/ok/swarmlab-hybrid-agent/src/components/mynetwork
wincmd w
argglobal
if bufexists('/data/appl/ok/swarmlab-hybrid-agent/src/components/manageservices/view-service.vue') | buffer /data/appl/ok/swarmlab-hybrid-agent/src/components/manageservices/view-service.vue | else | edit /data/appl/ok/swarmlab-hybrid-agent/src/components/manageservices/view-service.vue | endif
setlocal fdm=manual
setlocal fde=0
setlocal fmr={{{,}}}
setlocal fdi=#
setlocal fdl=0
setlocal fml=1
setlocal fdn=20
setlocal fen
silent! normal! zE
let s:l = 292 - ((1 * winheight(0) + 14) / 28)
if s:l < 1 | let s:l = 1 | endif
exe s:l
normal! zt
292
normal! 07|
lcd /data/appl/ok/swarmlab-hybrid-agent/src/components/mynetwork
wincmd w
3wincmd w
exe 'vert 1resize ' . ((&columns * 75 + 102) / 205)
exe '2resize ' . ((&lines * 18 + 25) / 50)
exe 'vert 2resize ' . ((&columns * 129 + 102) / 205)
exe '3resize ' . ((&lines * 28 + 25) / 50)
exe 'vert 3resize ' . ((&columns * 129 + 102) / 205)
tabnext 6
set stal=1
if exists('s:wipebuf')
silent exe 'bwipe ' . s:wipebuf
endif
unlet! s:wipebuf
set winheight=1 winwidth=20 shortmess=filnxtToOA
set winminheight=1 winminwidth=1
let s:sx = expand("<sfile>:p:r")."x.vim"
if file_readable(s:sx)
exe "source " . fnameescape(s:sx)
endif
let &so = s:so_save | let &siso = s:siso_save
doautoall SessionLoadPost
unlet SessionLoad
" vim: set ft=vim :
Загрузка…
Отмена
Сохранить