From c337eda1ed12cc6afff1506b51e49337fc6a93e4 Mon Sep 17 00:00:00 2001 From: zeus Date: Sun, 24 Jan 2021 17:52:42 +0200 Subject: [PATCH] version 0.1 --- src-local/llo/new.js | 6 +- src/App.vue | 19 +- src/assets/img/hybrid-1.png | Bin 0 -> 11856 bytes src/assets/img/hybrid.png | Bin 0 -> 46375 bytes src/components/managedeploy.vue | 55 ++ src/components/manageservices.vue | 2 + .../manageservices/deploy-bootstrap.vue | 710 ++++++++++++++++++ .../manageservices/manage-service.vue | 6 + .../manageservices/view-service.vue | 600 +++++++++++++++ src/components/mynetwork/myconnect-server.vue | 7 +- src/store/modules/create_pipelineLLO.js | 133 ++++ viwsession/session1 | 242 ++++-- 12 files changed, 1695 insertions(+), 85 deletions(-) create mode 100644 src/assets/img/hybrid-1.png create mode 100644 src/assets/img/hybrid.png create mode 100644 src/components/managedeploy.vue create mode 100644 src/components/manageservices/deploy-bootstrap.vue create mode 100644 src/components/manageservices/view-service.vue diff --git a/src-local/llo/new.js b/src-local/llo/new.js index ffd5c7d..a546e43 100644 --- a/src-local/llo/new.js +++ b/src-local/llo/new.js @@ -111,8 +111,8 @@ app.get('/dockerservices', (req, res, next) => { RES.filter = req.query["filter"] RES.type = req.query["type"] -var showexec = `docker ps --format '{"ID":"{{ .ID }}", "Image": "{{ .Image }}", "Names":"{{ .Names }}", "Ports":"{{.Ports}}", "Networks":"{{.Networks}}", "Status":"{{.Status}}","RunningFor":"{{.RunningFor}}","CreatedAt":"{{.CreatedAt}}"}' | jq . -s ` - exec(showexec, (err, stdout, stderr) => { + var showexec = `docker ps --format '{"ID":"{{ .ID }}", "Image": "{{ .Image }}", "Names":"{{ .Names }}", "Ports":"{{.Ports}}", "Networks":"{{.Networks}}", "Status":"{{.Status}}","RunningFor":"{{.RunningFor}}","CreatedAt":"{{.CreatedAt}}"}' | jq . -s ` + exec(showexec, (err, stdout, stderr) => { if (err) { console.error(`exec error: ${err}`); return; @@ -770,7 +770,7 @@ PersistentKeepalive = 30 io.emit('message_out', n); var n = {} - n.data = 'sudo bash ./connect-server.sh' + n.data = 'bash ./connect-server.sh' io.emit('message_close', n); }); socket.on('get-serverconfig', () => { diff --git a/src/App.vue b/src/App.vue index aadd536..ba24be2 100644 --- a/src/App.vue +++ b/src/App.vue @@ -131,6 +131,7 @@ Zone + Deploy @@ -190,6 +191,7 @@ + @@ -272,6 +274,18 @@ + + + + + + + + + @@ -298,6 +312,7 @@ import ConnectServer from "./components/myconnect-server.vue"; import NetworkTable from "./components/mynetwork.vue"; import ServicesTable from "./components/myservices.vue"; import ManageServices from "./components/manageservices.vue"; +import ManageDeploy from "./components/managedeploy.vue"; export default { name: 'app', @@ -305,7 +320,8 @@ export default { NetworkTable, ServicesTable, ConnectServer, - ManageServices + ManageServices, + ManageDeploy }, data() { return { @@ -394,6 +410,7 @@ export default { this.$root.$emit('hybrid_refresh_availableservices') }else if(action == 'manage_service'){ //this.$root.$emit('hybrid_manage_service') + }else if(action == 'manage_deploy'){ } }, isActive: function (menuItem) { diff --git a/src/assets/img/hybrid-1.png b/src/assets/img/hybrid-1.png new file mode 100644 index 0000000000000000000000000000000000000000..3e90bd6fe609e7fb3dc9a603c5c4780927631945 GIT binary patch literal 11856 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 literal 0 HcmV?d00001 diff --git a/src/components/managedeploy.vue b/src/components/managedeploy.vue new file mode 100644 index 0000000..340b28c --- /dev/null +++ b/src/components/managedeploy.vue @@ -0,0 +1,55 @@ + + + + diff --git a/src/components/manageservices.vue b/src/components/manageservices.vue index c24a92a..3687863 100644 --- a/src/components/manageservices.vue +++ b/src/components/manageservices.vue @@ -11,9 +11,11 @@

+
diff --git a/src/components/manageservices/deploy-bootstrap.vue b/src/components/manageservices/deploy-bootstrap.vue new file mode 100644 index 0000000..4a987e9 --- /dev/null +++ b/src/components/manageservices/deploy-bootstrap.vue @@ -0,0 +1,710 @@ + + + diff --git a/src/components/manageservices/manage-service.vue b/src/components/manageservices/manage-service.vue index 008529f..def2d64 100644 --- a/src/components/manageservices/manage-service.vue +++ b/src/components/manageservices/manage-service.vue @@ -466,6 +466,12 @@ export default { alert("You clicked edit on"+ JSON.stringify(rowData)); }, async onAction (action, data, index) { + var log1 = await store.dispatch("pipelineLLO/swarmlabhybridjoin",{ + token:this.token, + action:'join' + }) + console.log(JSON.stringify(log1)) + if(action == 'edit' ){ this.nodeadmin = true this.nodeadminupdate = true diff --git a/src/components/manageservices/view-service.vue b/src/components/manageservices/view-service.vue new file mode 100644 index 0000000..4a15457 --- /dev/null +++ b/src/components/manageservices/view-service.vue @@ -0,0 +1,600 @@ + + + diff --git a/src/components/mynetwork/myconnect-server.vue b/src/components/mynetwork/myconnect-server.vue index 04c0177..679bdea 100644 --- a/src/components/mynetwork/myconnect-server.vue +++ b/src/components/mynetwork/myconnect-server.vue @@ -46,7 +46,7 @@
-
+
+
-
+
@@ -249,6 +251,7 @@ export default { console.log('swarm ' + JSON.stringify(log.data.data.workerkey)) console.log('start ' + JSON.stringify('load')) + this.onAction('save') }else if(action == 'connect'){ console.log('start ' + JSON.stringify('connect')) var log = await store.dispatch("pipelineLLO/get_config",{ diff --git a/src/store/modules/create_pipelineLLO.js b/src/store/modules/create_pipelineLLO.js index 93266bc..b192513 100644 --- a/src/store/modules/create_pipelineLLO.js +++ b/src/store/modules/create_pipelineLLO.js @@ -336,6 +336,139 @@ export default { } } }, + async hybrid_servicerm({commit,rootGetters}, value) { + try { + var token = value.token + var params = { + bootstrapstackid: value.bootstrapstackid, + bootstrapnameid: value.bootstrapnameid, + action: 'servicesrm' + } + var options = { + headers: { 'content-type': 'application/x-www-form-urlencoded',Authorization: `Bearer ${token}` }, + }; + var p = await axios.post('https://api.swarmlab.io/swarmlabhybridrmservice',params,options); + if(p.error == "invalid_token"){ + console.log(p) + console.log(JSON.stringify(p)) + }else{ + } + //console.log(value.token) + //console.log(value.swarmlabname) + console.log(JSON.stringify(p)) + return p + } 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 stackrm({commit,rootGetters}, value) { + try { + var token = value.token + var params = { + bootstrapstackid: value.bootstrapstackid, + action: 'stackrm' + } + var options = { + headers: { 'content-type': 'application/x-www-form-urlencoded',Authorization: `Bearer ${token}` }, + }; + var p = await axios.post('https://api.swarmlab.io/swarmlabhybridrmstack',params,options); + if(p.error == "invalid_token"){ + console.log(p) + console.log(JSON.stringify(p)) + }else{ + } + //console.log(value.token) + //console.log(value.swarmlabname) + console.log(JSON.stringify(p)) + return p + } 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 swarmlabhybridjoin({commit,rootGetters}, value) { + try { + var token = value.token + var params = { + swarmlabservice: 'ondemand_test_spitifgdfgdfkngkndfkngkdfngkdfk', + action: 'join' + } + var options = { + headers: { 'content-type': 'application/x-www-form-urlencoded',Authorization: `Bearer ${token}` }, + }; + var p = await axios.post('https://api.swarmlab.io/swarmlabhybridjoin',params,options); + if(p.error == "invalid_token"){ + console.log(p) + console.log(JSON.stringify(p)) + }else{ + } + //console.log(value.token) + //console.log(value.swarmlabname) + console.log(JSON.stringify(p)) + return p + } 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 adddeploy({commit,rootGetters}, value) { + try { + var token = value.token + var params = { + deploy: value.deploy, + action: 'deploy' + } + var options = { + headers: { 'content-type': 'application/x-www-form-urlencoded',Authorization: `Bearer ${token}` }, + }; + var p = await axios.post('https://api.swarmlab.io/adddeployhybrid',params,options); + if(p.error == "invalid_token"){ + console.log(p) + console.log(JSON.stringify(p)) + }else{ + } + //console.log(value.token) + //console.log(value.swarmlabname) + console.log(JSON.stringify(p)) + return p + } 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; + } + } + }, diff --git a/viwsession/session1 b/viwsession/session1 index 95a4f2e..022fc38 100644 --- a/viwsession/session1 +++ b/viwsession/session1 @@ -9,17 +9,20 @@ if expand('%') == '' && !&modified && line('$') <= 1 && getline(1) == '' endif set shortmess=aoO badd +1 /data/appl/ok/swarmlab-hybrid-agent/src/components/mynetwork/AdhocView.vue -badd +8 /data/appl/ok/swarmlab-hybrid-agent/src-local/llo/new.js +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 +1 /data/appl/ok/swarmlab-hybrid-agent/src/store/modules/create_pipelineLLO.js +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 +0 /data/appl/ok/swarmlab-hybrid-agent/src/components/mynetwork/myconnect-server.vue -badd +0 /data/appl/ok/swarmlab-hybrid-agent/src/components/manageservices/manage-service.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 @@ -42,14 +45,14 @@ set nosplitbelow set nosplitright wincmd t set winminheight=1 winheight=1 winminwidth=1 winwidth=1 -exe '1resize ' . ((&lines * 22 + 24) / 48) -exe 'vert 1resize ' . ((&columns * 99 + 101) / 202) -exe '2resize ' . ((&lines * 22 + 24) / 48) -exe 'vert 2resize ' . ((&columns * 99 + 101) / 202) -exe '3resize ' . ((&lines * 22 + 24) / 48) -exe 'vert 3resize ' . ((&columns * 102 + 101) / 202) -exe '4resize ' . ((&lines * 22 + 24) / 48) -exe 'vert 4resize ' . ((&columns * 102 + 101) / 202) +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 @@ -60,12 +63,12 @@ setlocal fml=1 setlocal fdn=20 setlocal fen silent! normal! zE -let s:l = 395 - ((13 * winheight(0) + 11) / 22) +let s:l = 393 - ((12 * winheight(0) + 11) / 23) if s:l < 1 | let s:l = 1 | endif exe s:l normal! zt -395 -normal! 015| +393 +normal! 010| lcd /data/appl/ok/swarmlab-hybrid-agent/src/components wincmd w argglobal @@ -79,12 +82,12 @@ setlocal fml=1 setlocal fdn=20 setlocal fen silent! normal! zE -let s:l = 206 - ((14 * winheight(0) + 11) / 22) +let s:l = 51 - ((4 * winheight(0) + 11) / 23) if s:l < 1 | let s:l = 1 | endif exe s:l normal! zt -206 -normal! 06| +51 +normal! 0 lcd /data/appl/ok/swarmlab-hybrid-agent/src/components wincmd w argglobal @@ -98,12 +101,12 @@ setlocal fml=1 setlocal fdn=20 setlocal fen silent! normal! zE -let s:l = 34 - ((18 * winheight(0) + 11) / 22) +let s:l = 21 - ((0 * winheight(0) + 11) / 23) if s:l < 1 | let s:l = 1 | endif exe s:l normal! zt -34 -normal! 0 +21 +normal! 09| lcd /data/appl/ok/swarmlab-hybrid-agent/src/components wincmd w argglobal @@ -117,22 +120,22 @@ setlocal fml=1 setlocal fdn=20 setlocal fen silent! normal! zE -let s:l = 3 - ((2 * winheight(0) + 11) / 22) +let s:l = 35 - ((0 * winheight(0) + 11) / 23) if s:l < 1 | let s:l = 1 | endif exe s:l normal! zt -3 -normal! 0 +35 +normal! 010| lcd /data/appl/ok/swarmlab-hybrid-agent/src/components wincmd w -exe '1resize ' . ((&lines * 22 + 24) / 48) -exe 'vert 1resize ' . ((&columns * 99 + 101) / 202) -exe '2resize ' . ((&lines * 22 + 24) / 48) -exe 'vert 2resize ' . ((&columns * 99 + 101) / 202) -exe '3resize ' . ((&lines * 22 + 24) / 48) -exe 'vert 3resize ' . ((&columns * 102 + 101) / 202) -exe '4resize ' . ((&lines * 22 + 24) / 48) -exe 'vert 4resize ' . ((&columns * 102 + 101) / 202) +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 | @@ -147,11 +150,11 @@ set nosplitbelow set nosplitright wincmd t set winminheight=1 winheight=1 winminwidth=1 winwidth=1 -exe 'vert 1resize ' . ((&columns * 99 + 101) / 202) -exe '2resize ' . ((&lines * 22 + 24) / 48) -exe 'vert 2resize ' . ((&columns * 102 + 101) / 202) -exe '3resize ' . ((&lines * 22 + 24) / 48) -exe 'vert 3resize ' . ((&columns * 102 + 101) / 202) +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 @@ -162,12 +165,12 @@ setlocal fml=1 setlocal fdn=20 setlocal fen silent! normal! zE -let s:l = 386 - ((44 * winheight(0) + 22) / 45) +let s:l = 115 - ((1 * winheight(0) + 23) / 47) if s:l < 1 | let s:l = 1 | endif exe s:l normal! zt -386 -normal! 07| +115 +normal! 03| lcd /data/appl/ok/swarmlab-hybrid-agent/src/components/mynetwork wincmd w argglobal @@ -181,12 +184,12 @@ setlocal fml=1 setlocal fdn=20 setlocal fen silent! normal! zE -let s:l = 191 - ((21 * winheight(0) + 11) / 22) +let s:l = 148 - ((0 * winheight(0) + 11) / 23) if s:l < 1 | let s:l = 1 | endif exe s:l normal! zt -191 -normal! 0 +148 +normal! 09| lcd /data/appl/ok/swarmlab-hybrid-agent/src/components wincmd w argglobal @@ -200,19 +203,19 @@ setlocal fml=1 setlocal fdn=20 setlocal fen silent! normal! zE -let s:l = 310 - ((9 * winheight(0) + 11) / 22) +let s:l = 312 - ((0 * winheight(0) + 11) / 23) if s:l < 1 | let s:l = 1 | endif exe s:l normal! zt -310 +312 normal! 013| lcd /data/appl/ok/swarmlab-hybrid-agent/src/components wincmd w -exe 'vert 1resize ' . ((&columns * 99 + 101) / 202) -exe '2resize ' . ((&lines * 22 + 24) / 48) -exe 'vert 2resize ' . ((&columns * 102 + 101) / 202) -exe '3resize ' . ((&lines * 22 + 24) / 48) -exe 'vert 3resize ' . ((&columns * 102 + 101) / 202) +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 | @@ -223,8 +226,8 @@ set nosplitbelow set nosplitright wincmd t set winminheight=1 winheight=1 winminwidth=1 winwidth=1 -exe 'vert 1resize ' . ((&columns * 101 + 101) / 202) -exe 'vert 2resize ' . ((&columns * 100 + 101) / 202) +exe 'vert 1resize ' . ((&columns * 102 + 102) / 205) +exe 'vert 2resize ' . ((&columns * 102 + 102) / 205) argglobal setlocal fdm=manual setlocal fde=0 @@ -235,12 +238,12 @@ setlocal fml=1 setlocal fdn=20 setlocal fen silent! normal! zE -let s:l = 20 - ((19 * winheight(0) + 22) / 45) +let s:l = 344 - ((20 * winheight(0) + 23) / 47) if s:l < 1 | let s:l = 1 | endif exe s:l normal! zt -20 -normal! 05| +344 +normal! 015| lcd /data/appl/ok/swarmlab-hybrid-agent/src/components/mynetwork wincmd w argglobal @@ -254,16 +257,16 @@ setlocal fml=1 setlocal fdn=20 setlocal fen silent! normal! zE -let s:l = 106 - ((20 * winheight(0) + 22) / 45) +let s:l = 406 - ((0 * winheight(0) + 23) / 47) if s:l < 1 | let s:l = 1 | endif exe s:l normal! zt -106 -normal! 056| +406 +normal! 019| lcd /data/appl/ok/swarmlab-hybrid-agent/src/components/mynetwork wincmd w -exe 'vert 1resize ' . ((&columns * 101 + 101) / 202) -exe 'vert 2resize ' . ((&columns * 100 + 101) / 202) +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 | @@ -274,8 +277,8 @@ set nosplitbelow set nosplitright wincmd t set winminheight=1 winheight=1 winminwidth=1 winwidth=1 -exe 'vert 1resize ' . ((&columns * 101 + 101) / 202) -exe 'vert 2resize ' . ((&columns * 100 + 101) / 202) +exe 'vert 1resize ' . ((&columns * 102 + 102) / 205) +exe 'vert 2resize ' . ((&columns * 102 + 102) / 205) argglobal setlocal fdm=manual setlocal fde=0 @@ -286,11 +289,11 @@ setlocal fml=1 setlocal fdn=20 setlocal fen silent! normal! zE -let s:l = 27 - ((26 * winheight(0) + 22) / 45) +let s:l = 26 - ((25 * winheight(0) + 23) / 47) if s:l < 1 | let s:l = 1 | endif exe s:l normal! zt -27 +26 normal! 0 lcd /data/appl/ok/swarmlab-hybrid-agent/src/components/mynetwork wincmd w @@ -305,17 +308,17 @@ setlocal fml=1 setlocal fdn=20 setlocal fen silent! normal! zE -let s:l = 129 - ((30 * winheight(0) + 22) / 45) +let s:l = 145 - ((6 * winheight(0) + 23) / 47) if s:l < 1 | let s:l = 1 | endif exe s:l normal! zt -129 +145 normal! 0 lcd /data/appl/ok/swarmlab-hybrid-agent/src/components/mynetwork wincmd w -exe 'vert 1resize ' . ((&columns * 101 + 101) / 202) -exe 'vert 2resize ' . ((&columns * 100 + 101) / 202) -tabedit /data/appl/ok/swarmlab-hybrid-agent/src/components/manageservices/manage-service.vue +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 @@ -325,8 +328,21 @@ set nosplitbelow set nosplitright wincmd t set winminheight=1 winheight=1 winminwidth=1 winwidth=1 -exe 'vert 1resize ' . ((&columns * 101 + 101) / 202) -exe 'vert 2resize ' . ((&columns * 100 + 101) / 202) +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 @@ -337,17 +353,36 @@ setlocal fml=1 setlocal fdn=20 setlocal fen silent! normal! zE -let s:l = 1 - ((0 * winheight(0) + 22) / 45) +let s:l = 18 - ((11 * winheight(0) + 23) / 47) if s:l < 1 | let s:l = 1 | endif exe s:l normal! zt -1 -normal! 0 +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 -enew -file /data/appl/ok/swarmlab-hybrid-agent/src/components/manageservices.vue setlocal fdm=manual setlocal fde=0 setlocal fmr={{{,}}} @@ -356,11 +391,60 @@ 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 -exe 'vert 1resize ' . ((&columns * 101 + 101) / 202) -exe 'vert 2resize ' . ((&columns * 100 + 101) / 202) -tabnext 5 +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