Vue App
\ No newline at end of file
+Vue App
\ No newline at end of file
diff --git a/dist/js/app.b80507d3.js b/dist/js/app.0e8526dd.js
similarity index 50%
rename from dist/js/app.b80507d3.js
rename to dist/js/app.0e8526dd.js
index ed24090..840657a 100644
--- a/dist/js/app.b80507d3.js
+++ b/dist/js/app.0e8526dd.js
@@ -1,2 +1,2 @@
-(function(t){function e(e){for(var s,n,r=e[0],l=e[1],c=e[2],u=0,m=[];uName',sortField:"name",titleClass:"text-center aligned",visible:!0,dataClass:"center aligned",width:"20%"},{name:"nodeid",title:'nodeid',titleClass:"text-center aligned",sortField:"nodeid",visible:!0,width:"20%"},{name:"ip",title:'IP',titleClass:"text-center aligned",sortField:"swarmlabname",visible:!0,width:"13%"},{name:"role",title:'Role',titleClass:"text-center aligned",sortField:"role",visible:!0,width:"15%",formatter(t){const e=/^ondemand_playground/.test(t);if(e){var a='
";this.$swal({type:t,html:s+a,showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,cancelButtonText:"No, cancel!",showCancelButton:!1,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!0,confirmButtonText:"Ok!"})},setFilter(){this.moreParams={filter:this.searchFor,type:this.selected},s["default"].nextTick(()=>this.$refs.vuetable.refresh())},resetFilter(){this.moreParams={},this.searchFor="",s["default"].nextTick(()=>this.$refs.vuetable.refresh())},onPaginationData(t){this.$refs.pagination.setPaginationData(t),this.$refs.paginationInfo.setPaginationData(t)},onChangePage(t){this.$refs.vuetable.changePage(t)},editRow(t){alert("You clicked edit on"+JSON.stringify(t))},async onAction(t,e,a){await v.dispatch("pipelineLLO/swarmlabhybridjoin",{token:this.token,action:"join"});if("edit"==t)this.nodeadmin=!0,this.nodeadminupdate=!0,this.nodeid=e.nodeid,this.nodeip=e.ip,this.nodename=e.name,this.noderole=e.role,this.nodezones=e.zones,this.nodedesc=e.description;else if("update"==t){if(await this.$refs.provider.validate().then(t=>{t.valid?this.valid=!0:this.valid=!1}),this.valid){await v.dispatch("pipelineLLO/swarmlabhybridadd",{token:this.token,action:"add",nodeid:this.nodeid,nodeip:this.nodeip,nodename:this.nodename,noderole:this.noderole,nodezones:this.nodezones,nodedesc:this.nodedesc});s["default"].nextTick(()=>this.$refs.vuetable.refresh())}}else if("rm"==t)this.rowdata=e,this.$swal({type:"info",html:"info",showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,cancelButtonText:"No, cancel!",showCancelButton:!0,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!0,confirmButtonText:"Yes, Delete it!"}).then(t=>{this.rmAndClose(t)});else if("add"==t)this.nodeadmin=!0,this.nodeadminupdate=!1;else if("addserver"==t){if(await this.$refs.provider.validate().then(t=>{t.valid?this.valid=!0:this.valid=!1}),this.valid){this.nodeadmin=!1,this.nodeadminupdate=!1;await v.dispatch("pipelineLLO/swarmlabhybridadd",{token:this.token,action:"add",nodeid:this.nodeid,nodeip:this.nodeip,nodename:this.nodename,noderole:this.noderole,nodezones:this.nodezones,nodedesc:this.nodedesc});s["default"].nextTick(()=>this.$refs.vuetable.refresh())}}else"cancel"==t&&(this.nodeadmin=!1,this.nodeadminupdate=!1)},async rmAndClose(t){await v.dispatch("pipelineLLO/getswarmlabhybridinfo",{token:this.token,nodezones:this.rowdata.zones});if(t.value){await v.dispatch("pipelineLLO/swarmlabhybridrm",{token:this.token,action:"rm",nodeid:this.rowdata.nodeid,nodeip:this.rowdata.ip,nodename:this.rowdata.name,noderole:this.rowdata.role,nodezones:this.rowdata.zones,nodedesc:this.rowdata.description});s["default"].nextTick(()=>this.$refs.vuetable.refresh())}},async addAndClose(t){},refreshVuetable(){this.$nextTick(()=>{this.vuetablekeyc+=1})},playbookinfoShow(t){return this.visibility[t]=!0},playbookinfo(t){return this.playbookInfo=t},rowClicked(t,e){return{html:!0,title:()=>"Hello Popover: "+ ++this.counter,content:()=>"The date is: "+new Date+""}},loadsuccess(t){var e=t.data.data;if(this.fielddata=e,e.length){e.length;1}},onLoadError(t){"401"==t.response.status&&(window.location.href="https://api-login.swarmlab.io:8089",s["default"].nextTick(()=>window.location.href="https://api-login.swarmlab.io:8089"))}},actions:{}},P=E,D=(a("55b7"),Object(_["a"])(P,O,R,!1,null,null,null)),T=D.exports,V=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("card",{staticClass:"card-header",staticStyle:{"max-height":"100%"},attrs:{title:"Hybrid API Request"}},[a("b-row",[a("b-col",{attrs:{cols:"12"}},[a("table",{staticClass:"table table-bordered"},[a("tbody",[a("tr",[a("th",{staticClass:"text-center",attrs:{scope:"row"}},[t._v(" Project ")]),a("td",[a("div",{staticClass:"input-group input-group-sm sm-3"},[a("input",{directives:[{name:"model",rawName:"v-model",value:t.swarmlabhybridapi.project,expression:"swarmlabhybridapi.project"}],staticClass:"form-control",attrs:{type:"text","aria-label":"Small","aria-describedby":"inputGroup-sizing-sm",placeholder:"Project Name (Alphanumeric characters, dashes and underscores, NOT spaces)"},domProps:{value:t.swarmlabhybridapi.project},on:{input:function(e){e.target.composing||t.$set(t.swarmlabhybridapi,"project",e.target.value)}}}),a("div",{staticClass:"input-group-append"},[a("button",{staticClass:"ti-info btn btn-outline-primary",attrs:{round:"",type:"button"},on:{click:function(e){return t.showinfo("Project")}}})])])])]),a("tr",[a("th",{staticClass:"text-center",attrs:{scope:"row"}},[t._v(" Category ")]),a("td",[a("input",{directives:[{name:"model",rawName:"v-model",value:t.swarmlabhybridapi.faculty,expression:"swarmlabhybridapi.faculty"}],staticClass:"form-control",attrs:{type:"text","aria-label":"Small","aria-describedby":"inputGroup-sizing-sm",placeholder:"Project Category"},domProps:{value:t.swarmlabhybridapi.faculty},on:{input:function(e){e.target.composing||t.$set(t.swarmlabhybridapi,"faculty",e.target.value)}}})])]),a("tr",[a("th",{staticClass:"text-center",attrs:{scope:"row"}},[t._v(" Description ")]),a("td",[a("input",{directives:[{name:"model",rawName:"v-model",value:t.swarmlabhybridapi.desc,expression:"swarmlabhybridapi.desc"}],staticClass:"form-control",attrs:{type:"text","aria-label":"Small","aria-describedby":"inputGroup-sizing-sm",placeholder:"What is the purpose of the project?"},domProps:{value:t.swarmlabhybridapi.desc},on:{input:function(e){e.target.composing||t.$set(t.swarmlabhybridapi,"desc",e.target.value)}}})])])])])])],1),a("b-row",[a("b-col",{attrs:{cols:"12"}},[a("div",{staticClass:"input-group-append"},[a("button",{staticClass:"btn btn-outline-success",attrs:{round:"",type:"button"},on:{click:t.getApi}},[t._v(" Request hybrid API ")])])])],1)],1)},F=[],G={components:{},props:{},data(){return{swarmlabhybridapi:{labservices:"services"}}},mounted(){},beforeDestroy(){},computed:{},methods:{showinfo(t){if("Project"==t){var e='We use that "Name" to retrieve the corresponding key values The name assigned here will be needed to connect you to Swarmlab Server. The ProjectName can only contain alphanumeric characters, dashes or underscores.';this.$swal({type:"info",html:e,showCloseButton:!1,showLoaderOnConfirm:!1,allowOutsideClick:!1,showCancelButton:!1,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!1,confirmButtonText:"Ok!"})}},async getApi(){console.log("getApi");var t=await v.dispatch("pipelineLLO/swarmlabhybridapi",{lab:this.swarmlabhybridapi});if("ok"==t.data.action){var e="
";this.$swal({type:"info",icon:"info",html:i+s,showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!0})}else if("register"==t){s="Before you begin\n \n Before you start using the Swarmlab Hybrid API, you need a hybrid enabled account and the Swarmlab API enabled. \n \n To learn more, see Get Started with Hybrid Platform. \n ",i="
Get API Key's
";this.$swal({type:"info",html:i+s,showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!0})}}},actions:{}},H=q,K=(a("cd6e"),Object(_["a"])(H,U,Y,!1,null,null,null)),W=K.exports,Q={components:{HybridLab:j,ZonesView:T,card:k,MyconnectServer:W},data(){return{loading:!1,ishybridlab:!1,consoleView:"off",productIndex:1}},mounted(){this.$root.$on("hybrid_lab_keyview",t=>{"open"==t?this.ishybridlab=!0:"close"==t&&(this.ishybridlab=!1)})},beforeDestroy(){this.$root.$off("hybrid_lab_keyview")},created(){}},J=Q,Z=Object(_["a"])(J,x,A,!1,null,null,null),X=Z.exports,tt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("card",{staticClass:"card-user",staticStyle:{"max-height":"100%"}},[a("div",{staticClass:"row"},[a("div",{staticClass:"col-7 order-first "},[a("br"),a("view-network"),a("docker-services")],1),a("div",{staticClass:"col-5 order-last"},[a("br"),t.viewconsole?a("adhoc-view"):t._e(),a("docker-images",{directives:[{name:"show",rawName:"v-show",value:t.viewimages,expression:"viewimages"}]}),a("docker-networks",{directives:[{name:"show",rawName:"v-show",value:t.viewnetworks,expression:"viewnetworks"}]})],1)])])},et=[],at=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("card",{staticClass:"card-user",staticStyle:{"max-height":"100%"}},[s("div",{staticClass:"author"},[s("img",{staticClass:"avatar border-white",attrs:{src:a("0ed5"),alt:"..."}})]),s("v-wait",{attrs:{for:"myRunInstanceeditor"}},[s("template",{slot:"waiting"},[s("div",[s("img",{attrs:{src:a("cf1c")}}),t._v(" Enter Editor... ")])])],2),s("b-container",{staticClass:"bv-example-row",attrs:{fluid:""}},[s("div",{staticClass:"row text-center"},[s("div",{staticClass:"col-12"},[s("b",[s("span",{staticClass:"text-muted"},[t._v("View and Manage your")]),t._v(" "),s("span",{staticClass:"text-info"},[t._v("Running Instances")])])])]),s("br"),s("div",{staticClass:"row"},[s("div",{staticClass:"col-5"},[s("div",{staticClass:"input-group input-group-sm sm-3"},[s("div",{staticClass:"input-group-prepend"},[t.$socket.disconnected?s("button",{staticClass:"ti-unlink btn btn-outline-danger",attrs:{round:"",type:"button",title:"You are disconnected from Swarmlab-hybrid",disabled:""}}):s("button",{staticClass:"ti-link btn btn-outline-success",attrs:{round:"",type:"button",title:"You are connected swarmlab-hybrid"},on:{click:function(e){return t.onAction("shareinfo")}}})]),s("div",{staticClass:"input-group-prepend"},[t.webinterface?s("button",{staticClass:"btn btn-outline-success",attrs:{round:"",type:"button"},on:{click:function(e){return t.onAction("startweb")}}},[t._v(" Web")]):t._e(),t.webinterfacegeneric&&t.hybridshowdata.Names?s("button",{staticClass:"btn btn-info",attrs:{round:"",type:"button"},on:{click:function(e){return t.onAction("startwebgeneric")}}},[t._v(" "+t._s(t.webinterfacegeneric_text))]):t._e()]),s("div",{staticClass:"input-group-prepend"},[t.hybridshowdata.Names?s("button",{staticClass:"btn btn-outline-success",attrs:{round:"",type:"button"},on:{click:function(e){return t.onAction("container-connect")}}},[t._v(" Connect")]):s("button",{staticClass:"btn btn-outline-secondary",attrs:{round:"",type:"button",disabled:""}},[t._v(" Connect")]),t.webinterfacegenericedit&&t.hybridshowdata.Names?s("button",{staticClass:"btn btn-outline-info",attrs:{round:"",type:"button"},on:{click:function(e){return t.onAction("basedireditor")}}},[t._v(" Editor")]):t._e(),t.hybridshowdata.Names?s("button",{staticClass:"btn btn-outline-danger",attrs:{round:"",type:"button"},on:{click:function(e){return t.onAction("container-stop")}}},[t._v(" Stop")]):s("button",{staticClass:"btn btn-outline-secondary",attrs:{round:"",type:"button",disabled:""}},[t._v(" stop")]),t.actionrowindexconsole?s("button",{staticClass:"btn btn-warning",attrs:{round:"",type:"button"},on:{click:function(e){return t.onAction("container-logsclose")}}},[t._v(" Close Console")]):t._e()])])]),t._v(" "),s("div",{staticClass:"col-1"},[s("div",{staticClass:"input-group input-group-sm sm-3"},[s("div",{staticClass:"input-group-prepend float-center"})])]),t._v(" "),s("div",{staticClass:"col-1"}),t._v(" "),s("div",{staticClass:"col-5"},[s("div",{staticClass:"input-group input-group-sm sm-3"},[s("div",{staticClass:"input-group-prepend float-right"},[t.actionrowindex&&t.hybridshowdata.Names?s("button",{staticClass:"ti-more-alt btn btn-secondary btn-sm",attrs:{title:"More Options...",round:""},on:{click:function(e){return t.runmore("off")}}}):t._e(),t.actionrowindexselect&&t.hybridshowdata.Names?s("button",{staticClass:"ti-more btn btn-outline-info btn-sm",attrs:{round:"",title:"More Options..."},on:{click:function(e){return t.runmore("on")}}}):t._e(),t.actionrowindex&&t.hybridshowdata.Names?s("button",{staticClass:"btn btn-outline-info",attrs:{round:"",type:"button"},on:{click:function(e){return t.onAction("basedir")}}},[t._v(" Persistent Data")]):t._e()]),s("div",{staticClass:"input-group-prepend float-right"},[t.actionrowindex&&t.hybridshowdata.Names?s("button",{staticClass:"btn btn-outline-warning",attrs:{round:"",type:"button"},on:{click:function(e){return t.onAction("basebackup")}}},[t._v(" Backup")]):t._e()]),s("div",{staticClass:"input-group-prepend float-right"},[t.actionrowindex&&t.hybridshowdata.Names?s("button",{staticClass:"btn btn-outline-success",attrs:{round:"",type:"button"},on:{click:function(e){return t.onAction("basebackupview")}}},[t._v(" BrowseBackups")]):t._e()]),s("div",{staticClass:"input-group-append"},[!t.actionrowindexconsole&&t.actionrowindex&&t.hybridshowdata.Names?s("button",{staticClass:"btn btn-outline-warning",attrs:{round:"",type:"button"},on:{click:function(e){return t.onAction("container-logs")}}},[t._v(" Logs")]):t._e(),t.actionrowindexconsole&&t.actionrowindex&&t.hybridshowdata.Names?s("button",{staticClass:"btn btn-warning",attrs:{round:"",type:"button"},on:{click:function(e){return t.onAction("container-logsclose")}}},[t._v(" Logs")]):t._e()])])])]),t._v(" "),t.webinterfacegeneric&&t.webinterfacegeneric_menou1&&t.hybridshowdata.Names?s("div",{staticClass:"row"},[s("div",{staticClass:"col-12"},[s("hr")])]):t._e(),t.webinterfacegeneric&&t.webinterfacegeneric_menou1&&t.hybridshowdata.Names?s("div",{staticClass:"row"},[s("div",{staticClass:"col-5"},[s("div",{staticClass:"input-group input-group-sm sm-3"},[s("div",{staticClass:"input-group-prepend"},[t.webinterfacegeneric&&t.webinterfacegeneric_menou1&&t.hybridshowdata.Names&&!t.webinterfacegeneric_menou1typelog?s("a",{staticClass:"btn btn-outline-secondary",attrs:{href:t.webinterfacegeneric_menou1_url,target:t.webinterfacegeneric_menou1_url_target1,role:"button"}},[t._v(" "+t._s(t.webinterfacegeneric_menou1_text)+" ")]):t._e(),t.webinterfacegeneric&&t.webinterfacegeneric_menou1&&t.hybridshowdata.Names&&t.webinterfacegeneric_menou1typelog&&!t.webinterfacegeneric_menou1typelog_active?s("button",{staticClass:"btn btn-outline-secondary",attrs:{round:"",type:"button"},on:{click:function(e){return t.guilogs(1)}}},[t._v(" "+t._s(t.webinterfacegeneric_menou1_text)+" ")]):t._e(),t.webinterfacegeneric&&t.webinterfacegeneric_menou1&&t.hybridshowdata.Names&&t.webinterfacegeneric_menou1typelog&&t.webinterfacegeneric_menou1typelog_active?s("button",{staticClass:"btn btn-outline-warning",attrs:{round:"",type:"button"},on:{click:function(e){return t.guilogsclose(1)}}},[t._v(" "+t._s(t.webinterfacegeneric_menou1_text)+" ")]):t._e()]),s("div",{staticClass:"input-group-prepend"},[t.webinterfacegeneric&&t.webinterfacegeneric_menou2&&t.hybridshowdata.Names&&!t.webinterfacegeneric_menou2typelog?s("a",{staticClass:"btn btn-outline-secondary",attrs:{href:t.webinterfacegeneric_menou2_url,target:t.webinterfacegeneric_menou1_url_target2,role:"button"}},[t._v(" "+t._s(t.webinterfacegeneric_menou2_text)+" ")]):t._e(),t.webinterfacegeneric&&t.webinterfacegeneric_menou2&&t.hybridshowdata.Names&&t.webinterfacegeneric_menou2typelog&&!t.webinterfacegeneric_menou2typelog_active?s("button",{staticClass:"btn btn-outline-secondary",attrs:{round:"",type:"button"},on:{click:function(e){return t.guilogs(2)}}},[t._v(" "+t._s(t.webinterfacegeneric_menou2_text)+" ")]):t._e(),t.webinterfacegeneric&&t.webinterfacegeneric_menou2&&t.hybridshowdata.Names&&t.webinterfacegeneric_menou2typelog&&t.webinterfacegeneric_menou2typelog_active?s("button",{staticClass:"btn btn-outline-warning",attrs:{round:"",type:"button"},on:{click:function(e){return t.guilogsclose(2)}}},[t._v(" "+t._s(t.webinterfacegeneric_menou2_text)+" ")]):t._e()]),s("div",{staticClass:"input-group-prepend"},[t.webinterfacegeneric&&t.webinterfacegeneric_menou3&&t.hybridshowdata.Names&&!t.webinterfacegeneric_menou3typelog?s("a",{staticClass:"btn btn-outline-secondary",attrs:{href:t.webinterfacegeneric_menou3_url,target:t.webinterfacegeneric_menou1_url_target3,role:"button"}},[t._v(" "+t._s(t.webinterfacegeneric_menou3_text)+" ")]):t._e(),t.webinterfacegeneric&&t.webinterfacegeneric_menou3&&t.hybridshowdata.Names&&t.webinterfacegeneric_menou3typelog&&!t.webinterfacegeneric_menou3typelog_active?s("button",{staticClass:"btn btn-outline-secondary",attrs:{round:"",type:"button"},on:{click:function(e){return t.guilogs(3)}}},[t._v(" "+t._s(t.webinterfacegeneric_menou3_text)+" ")]):t._e(),t.webinterfacegeneric&&t.webinterfacegeneric_menou3&&t.hybridshowdata.Names&&t.webinterfacegeneric_menou3typelog&&t.webinterfacegeneric_menou3typelog_active?s("button",{staticClass:"btn btn-outline-warning",attrs:{round:"",type:"button"},on:{click:function(e){return t.guilogsclose(3)}}},[t._v(" "+t._s(t.webinterfacegeneric_menou3_text)+" ")]):t._e()])])])]):t._e()]),s("b-container",{attrs:{fluid:""}},[s("div",{staticClass:"row"},[s("div",{staticClass:"col-2 text-info"},[t._v(" ID ")]),s("div",{staticClass:"col-3 text-muted"},[t._v(" "+t._s(t.hybridshowdata.ID)+" ")]),s("div",{staticClass:"col-2 text-info"},[t._v(" Image ")]),s("div",{staticClass:"col-4 text-muted"},[t._v(" "+t._s(t.hybridshowdata.Image)+" ")])]),t._v(" "),s("div",{staticClass:"row"},[s("div",{staticClass:"col-2 text-info"},[t._v(" Names ")]),s("div",{staticClass:"col-3 text-muted"},[t._v(" "+t._s(t.hybridshowdata.Names)+" ")]),s("div",{staticClass:"col-2 text-info"},[t._v(" RunningFor ")]),s("div",{staticClass:"col-4 text-muted"},[t._v(" "+t._s(t.hybridshowdata.RunningFor)+" ")])]),t._v(" "),s("div",{staticClass:"row"},[s("div",{staticClass:"col-2 text-info"},[t._v(" Status ")]),s("div",{staticClass:"col-3 text-muted"},[t._v(" "+t._s(t.hybridshowdata.Status)+" ")]),s("div",{staticClass:"col-2 text-info"},[t._v(" CreatedAt ")]),s("div",{staticClass:"col-4 text-muted"},[t._v(" "+t._s(t.hybridshowdata.CreatedAt)+" ")])]),t._v(" "),s("div",{staticClass:"row"},[t.actionrowindex?s("div",{staticClass:"col-2 text-info"},[t.hybridshowdata.Networks&&0==t.addNetworkMenou?s("button",{staticClass:"btn btn-primary btn-sm",attrs:{round:"",type:"button"},on:{click:function(e){return t.addNetwork(t.hybridshowdata,"on")}}},[t._v(" Networks")]):t._e(),t.hybridshowdata.Networks&&1==t.addNetworkMenou?s("button",{staticClass:"btn btn-outline-warning btn-sm",attrs:{round:"",type:"button"},on:{click:function(e){return t.addNetwork(t.hybridshowdata,"off")}}},[t._v(" Networks")]):t._e()]):s("div",{staticClass:"col-2 text-info"},[t._v(" Networks ")]),s("div",{staticClass:"col-3 text-muted"},[t._v(" "+t._s(t.hybridshowdata.Networks)+" ")]),s("div",{staticClass:"col-2 text-info"},[t._v(" Ports ")]),s("div",{staticClass:"col-4 text-muted"},[t._v(" "+t._s(t.hybridshowdata.Ports)+" ")])])]),1==t.addNetworkMenou?s("div",{staticClass:"card border-success bg-light mb-3",staticStyle:{"max-width":"100%"}},[s("div",{staticClass:"card-header"}),s("div",{staticClass:"card-body text-info"},[s("div",{staticClass:"row"},[s("div",{staticClass:"col-6 text-info"},[s("h5",{staticClass:"card-title"},[t._v("Select network")])]),s("div",{staticClass:"col-6 text-info"},[t._v(" Connect a running container to multiple networks ")])]),s("div",{staticClass:"row"},[s("div",{staticClass:"col-6 text-info"},[s("b-form-select",{attrs:{options:t.localNetworkoptions,multiple:"","select-size":4},model:{value:t.selectedNetworks,callback:function(e){t.selectedNetworks=e},expression:"selectedNetworks"}}),s("div",{staticClass:"mt-3"},[t._v("Selected: "),s("strong",[t._v(t._s(t.selectedNetworks))])])],1),s("div",{staticClass:"col-6 text-info"},[s("img",{staticClass:"border-white img-thumbnail",attrs:{src:a("04d6"),alt:"..."}})])]),s("div",{staticClass:"row"},[s("div",{staticClass:"col-6 text-info"},[s("button",{staticClass:"btn btn-warning btn-sm",attrs:{round:"",type:"button"},on:{click:function(e){return t.updateNetwork(t.hybridshowdata,"update")}}},[t._v(" Update")])])])])]):t._e()],1)},st=[];const it=[{name:"justtemplate",automated:!0,version:0,menou:"xeLatex",menou1:"ViewPDF",menou1url:"docs/main.pdf",menou1server:"http://localhost:3384",menou2:"View2",menou2url:"docs2/main.pdf",menou2type:"log",menou2server:"http://localhost:3384",menou3:"Compile",menou3url:"docs/main111111111111.pdf",menou3server:"http://localhost:3384",port:0},{name:"microservice-firefox",automated:!0,menou:"openGui",version:0,port:0},{name:"microservice-xelatexthesis",automated:!0,exec:'/bin/sh -c "latex-all"',version:0,menou:"Compile",menou1:"View-PDF",menou1url:"docs/main.pdf",menou1server:"http://localhost:3384",menou2:"xeLatex-LOG",menou2type:"log",menou2url:"docs/main.log",menou2server:"http://localhost:3394",port:0},{name:"microservice-wireshark",automated:!0,menou:"openGui",version:0,port:0},{name:"microservice-oletools",automated:!0,menou:"openGui",version:0,port:0}],ot=[{name:"just-test-info-no-service",large:"no or text",custom:"true",customostext:"Base OS: python:3.11-rc-alpine3.15",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"6901/tcp",ttyd:!1,ttydport:"3787/tcp",ttydurl:"http",app1:!1,link1:"Click here to open rstudio",url1:"http",port1:"8787/tcp",app2:!1,link2:"Click here to open app text",url2:"http",port2:"8788/tcp",app3:!1,link3:"Click here to open app text",url3:"http",port3:"8789/tcp"},{name:"microservice-etherpad",app:!0,url:"http",port:"9001/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"jitsiweb",app:!0,url:"https",port:"443/tcp",ttyd:!1,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-novncfull",app:!0,url:"http",port:"80/tcp",ttyd:!1,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-novnclite",app:!0,url:"http",port:"6901/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-mongoexpress",app:!0,url:"http",port:"8081/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-gns3",custom:"true",customostext:"Base OS: ubuntu:18.04.6 LTS ",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!0,url:"http",port:"8001/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-ubuntu",custom:"true",customostext:"Base OS: ubuntu:20.04.3 LTS",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"8001/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-ubuntugui",app:!0,url:"http",port:"80/tcp",ttyd:!1,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-numpylite",custom:"true",customostext:"Base OS: debian:buster",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-nodejs",custom:"true",customostext:"Base OS: alpine:3.13",customos:"apk add --no-cache net-tools ",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-nginx",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-ipterm",custom:"true",customostext:"Base OS: debian:jessie ",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-firefox",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-haproxy",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-xelatexthesis",custom:"true",customostext:"Base OS: alpine:3.15 ",customos:"apk add --no-cache net-tools ",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-snmpsim",custom:"true",customostext:"Base OS: debian:bullseye ",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-ansible",custom:"true",customostext:"Base OS: alpine:3.14 ",customos:"apk add --no-cache net-tools ",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-wireshark",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-redisserver",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-mongoserver",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-filemanager",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-powershell",custom:"true",customostext:"Base OS: alpine:3.14 ",customos:"apk add --no-cache net-tools ",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-dvwa",app:!0,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-hping3",custom:"true",customostext:"Base OS: alpine:3.15 ",customos:"apk add --no-cache net-tools ",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-volatilitylinux",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-volatilitywindows",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-twint",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-twintexplorer",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-octave",large:"The build will take some time, so be patient!",custom:"true",customostext:"Base OS: ubuntu:18.04.6 LTS ",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!0,url:"http",port:"6901/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-r",large:"Note that this image is somewhat heavy (~2GB). It can take some time to build the Instance. If you think the proccess is frosen you can reload the page in your Browser",custom:"true",customostext:"Base OS: ubuntu:18.04.6 LTS ",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!0,url:"http",port:"6901/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http",app1:!0,link1:"Click here to open rstudio",url1:"http",port1:"8787/tcp"},{name:"microservice-rust",large:"no",app:!1,url:"http",port:"6901/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-julia",large:"no",custom:"true",customostext:"Base OS: alpine3.15",customos:"apk add --no-cache net-tools ",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"6901/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-lua",large:"no",custom:"true",customostext:"Base OS: alpine3.12",customos:"apk add --no-cache net-tools ",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"6901/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-luajit",large:"no",custom:"true",customostext:"Base OS: alpine3.12",customos:"apk add --no-cache net-tools ",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"6901/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-nodesqlite3",large:"no",custom:"true",customostext:"Base OS: ubuntu:20.04 LTS ",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"6901/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-electron",large:"Note that this image is somewhat heavy (~1.5GB). It can take some time to build the Instance. If you think the proccess is frosen you can reload the page in your Browser",app:!1,url:"http",port:"6901/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-rubyfull",large:"Note that this image is somewhat heavy (~1GB). It can take some time to build the Instance. If you think the proccess is frosen you can reload the page in your Browser",custom:"true",customostext:"Base OS: debian:bullseye ",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"6901/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-ruby",large:"no",custom:"true",customostext:"Base OS: alpine3.15",customos:"apk add --no-cache net-tools ",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"6901/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-golangfull",large:"Note that this image is somewhat heavy (~1GB). It can take some time to build the Instance. If you think the proccess is frosen you can reload the page in your Browser",custom:"true",customostext:"Base OS: debian:bullseye ",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"6901/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-golang",large:"no",custom:"true",customostext:"Base OS: alpine3.15",customos:"apk add --no-cache net-tools ",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"6901/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-mariadb",large:"no",app:!1,url:"http",port:"6901/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-adminer",large:"no",custom:"true",customostext:"Base OS: alpine3.15",customos:"apk add --no-cache net-tools ",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!0,url:"http",port:"8080/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-gcc",large:"no",custom:"true",customostext:"Base OS: debian:bullseye ",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"8080/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-opencv",large:"no",custom:"true",customostext:"Base OS: debian:buster",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"8080/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-phpcli",large:"no",app:!1,url:"http",port:"8080/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-phpapache",large:"no",custom:"true",customostext:"Base OS: debian:bullseye ",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http",app2:!0,link2:"Click to run your PHP code over https",url2:"https",port2:"443/tcp",app1:!0,link1:"Click to run your PHP code over http",url1:"http",port1:"80/tcp"},{name:"microservice-wordpress",large:"no",custom:"true",customostext:"Base OS: debian:bullseye ",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!0,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-oletools",large:"no",custom:"true",customostext:"Base OS: python:3.11-rc-alpine3.15",customos:"apk add --no-cache net-tools ",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-dfirntfs",large:"no",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-peframe",large:"The build will take some time, so be patient!",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-libvshadow",large:"no",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-regripper",large:"no",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-jsshell",large:"no",custom:"true",customostext:"Base OS: python:3.11-rc-alpine3.15",customos:"apk add --no-cache net-tools ",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-alpine313",large:"no",custom:"true",customostext:"Base OS: alpine3.13",customos:"apk add --no-cache net-tools ",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-alpine314",large:"no",custom:"true",customostext:"Base OS: alpine3.14",customos:"apk add --no-cache net-tools ",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-alpine315",large:"no",custom:"true",customostext:"Base OS: alpine3.15",customos:"apk add --no-cache net-tools ",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-debianbookworm",large:"no",custom:"true",customostext:"Base OS: debian:bookworm ",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-debianbullseye",large:"no",custom:"true",customostext:"Base OS: debian:bullseye ",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-debianbuster",large:"no",custom:"true",customostext:"Base OS: debian:buster ",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-awscli",large:"no",custom:"true",customostext:"Base OS: alpine3.13",customos:"apk add --no-cache net-tools ",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-perl",large:"no",custom:"true",customostext:"Base OS: debian:bullseye ",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-perlfull",large:"no",custom:"true",customostext:"Base OS: debian:bullseye ",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"}],nt=[{name:"microservice-xelatexthesis",automated:!0,url:"http",version:0,port:0},{name:"microservice-ansible",automated:!0,url:"http",version:0,port:0},{name:"microservice-nodejs",automated:!0,url:"http",version:0,port:0},{name:"microservice-numpylite",automated:!0,url:"http",version:0,port:0},{name:"microservice-rust",automated:!0,url:"http",version:0,port:0},{name:"microservice-julia",automated:!0,url:"http",version:0,port:0},{name:"microservice-lua",automated:!0,url:"http",version:0,port:0},{name:"microservice-luajit",automated:!0,url:"http",version:0,port:0},{name:"microservice-nodesqlite3",automated:!0,url:"http",version:0,port:0},{name:"microservice-electron",automated:!0,url:"http",version:0,port:0},{name:"microservice-ruby",automated:!0,url:"http",version:0,port:0},{name:"microservice-rubyfull",automated:!0,url:"http",version:0,port:0},{name:"microservice-golang",automated:!0,url:"http",version:0,port:0},{name:"microservice-golangfull",automated:!0,url:"http",version:0,port:0},{name:"microservice-gcc",automated:!0,url:"http",version:0,port:0},{name:"microservice-opencv",automated:!0,url:"http",version:0,port:0},{name:"microservice-phpcli",automated:!0,url:"http",version:0,port:0},{name:"microservice-jsshell",automated:!0,url:"http",version:0,port:0},{name:"microservice-phpapache",automated:!0,url:"http",version:0,port:0},{name:"microservice-alpine313",automated:!0,url:"http",version:0,port:0},{name:"microservice-alpine314",automated:!0,url:"http",version:0,port:0},{name:"microservice-alpine315",automated:!0,url:"http",version:0,port:0},{name:"microservice-debianbookworm",automated:!0,url:"http",version:0,port:0},{name:"microservice-debianbuster",automated:!0,url:"http",version:0,port:0},{name:"microservice-debianbullseye",automated:!0,url:"http",version:0,port:0},{name:"microservice-awscli",automated:!0,url:"http",version:0,port:0},{name:"microservice-perl",automated:!0,url:"http",version:0,port:0},{name:"microservice-perlfull",automated:!0,url:"http",version:0,port:0}];Object(B["b"])("alpha_num",N["a"]),Object(B["b"])("required",{...N["c"],message:"This field is required"});var rt={components:{card:k},props:{},data(){return{actionrowindexconsole:!1,actionrowindex:!1,actionrowindexselect:!0,addNetworkMenou:!1,localNetworks:[],selectedNetworks:[],localNetworkoptions:[],localNetworkdefault:"",webinterface:!1,webinterfacegeneric:!1,webinterfacegeneric_text:"openGui",webinterfacegeneric_menou1_url_target1:"_blank",webinterfacegeneric_menou1_url_target2:"_blank",webinterfacegeneric_menou1_url_target3:"_blank",webinterfacegeneric_menou_exec:"",webinterfacegeneric_menou_basedir:"",swarmlab_services_type:"swarmlab",webinterfacegeneric_menou1:!1,webinterfacegeneric_menou1_text:"",webinterfacegeneric_menou1_url:"",webinterfacegeneric_menou1typelog:!1,webinterfacegeneric_menou1typelog_active:!1,webinterfacegeneric_menou1typedir:"",webinterfacegeneric_menou1typedir_log:"",webinterfacegeneric_menou2:!1,webinterfacegeneric_menou2_text:"",webinterfacegeneric_menou2_url:"",webinterfacegeneric_menou2typelog:!1,webinterfacegeneric_menou2typelog_active:!1,webinterfacegeneric_menou2typedir:"",webinterfacegeneric_menou2typedir_log:"",webinterfacegeneric_menou3:!1,webinterfacegeneric_menou3_text:"",webinterfacegeneric_menou3_url:"",webinterfacegeneric_menou3typelog:!1,webinterfacegeneric_menou3typelog_active:!1,webinterfacegeneric_menou3typedir:"",webinterfacegeneric_menou3typedir_log:"",webinterfacegenericedit:!1,webinterface_port:"",STATUS:{},editor_instance:{start:"",port:""},CONFIG:{status:"",workerkey:"",swarmlab_public_wgkey:"",server_ip:"",allowed_ips:"",wg_port:"",wg_ip:"",swarm_ip:"",privatekey:"",publickey:"",workerkey:"",privatekey:"",publickey:"",server_ip:""},CONFIGallowed_ips:"",swarmlabnamecustomstart:{},swarmlabnamecustomdata:{},swarmlabnamecustom:"",swarmlabnamecustomservice:"",swarmlabnamecustomuser:"",swarmlabname:"swarmlab-sec",swarmlabname_port:"",swarmlabname_size:3,swarmlabname_git:"",hybridshowdata:{},hybridshowdata_user:{},hybridshowdatashare:{},issocket:"close",setFilter:{},searchFor:{},resetFilter:{}}},beforeMount(){this.socketopen(),this.socketauthenticate()},mounted(){this.$root.$on("hybrid_show_info",t=>{(async()=>{this.actionrowindex=!1,this.actionrowindexselect=!0,this.addNetworkMenou=!1,this.actionrowindexconsole=!1,this.$root.$emit("hybrid_show_instance_images","images"),this.webinterface=!1,this.webinterfacegeneric=!1,this.webinterfacegenericedit=!1,this.hybridshowdata=t;var e="microservice-jupyter",a=new RegExp(e);a.test(t.Networks)&&a.test(t.Names)?(this.webinterface=!0,this.webinterface_port=t.Ports):(this.webinterface=!1,this.webinterface_port="");for(var s=this.hybridshowdata.Names.split("_"),i=0;i{this.swarmlabname=t.swarmlabname,t.size&&(this.swarmlabname_size=t.size),t.port&&(this.swarmlabname_port=t.port),this.onAction("start")}),this.$root.$on("hybrid_start_instance_custom",t=>{this.swarmlabnamecustomdata=t.baseservicedata,this.swarmlabnamecustomstart=t,t.size&&(this.swarmlabname_size=t.size),t.port&&(this.swarmlabname_port=t.port),this.onAction("startcustom")}),this.$root.$on("hybrid_start_instance_storage",t=>{var e={action:"up"};e.token=this.token,e.swarmlabname=t.swarmlabname,e.password=t.password,this.$socket.client.open(),this.$socket.client.emit("start_storage",e)}),this.$root.$on("hybrid_start_instance_poc",t=>{var e={action:"up"};e.token=this.token,e.swarmlabname=t.swarmlabname,e.password=t.password,this.$socket.client.open(),this.$socket.client.emit("start_poc",e)}),this.$root.$on("SERVER_build_image",t=>{this.$socket.client.open(),this.$socket.client.emit("build_image",t)}),this.$root.$on("SERVER_build_vmlist",t=>{var e={action:"up"};e.token=this.token,e.kill=2,this.$socket.client.open(),this.$socket.client.emit("build_vmlist",e)}),this.$root.$on("SERVER_build_kill",t=>{var e={action:"up"};e.token=this.token,e.kill=t.pid,this.$socket.client.open(),this.$socket.client.emit("build_kill",e)}),this.$root.$on("hybrid_install_instance",t=>{this.swarmlabname=t.swarmlabname,this.swarmlabname_git=t.git,this.onAction("install")}),this.$root.$on("hybrid_install_instance_custom",t=>{console.log(t),this.swarmlabnamecustomdata=t.baseservicedata,this.swarmlabnamecustom=t.baseservice,this.swarmlabnamecustomservice=t.service,this.swarmlabnamecustomuser=t.user,this.swarmlabname_git=t.git,this.onAction("installcustom")}),this.$root.$on("hybrid_install_instance_storage",t=>{var e={action:"up"};e.token=this.token,e.swarmlabname=t.swarmlabname,e.git=t.git,this.$socket.client.open(),this.$socket.client.emit("installstorage",e)}),this.$root.$on("hybrid_connect_server",t=>{this.$socket.client.emit("get-serverconfig")}),this.$root.$on("hybrid_stop_instance",t=>{this.swarmlabname=t,this.onAction("stop")}),this.$root.$on("hybrid_stop_instance_storage",t=>{this.$socket.client.emit("stop_storage",t)}),this.$root.$on("hybrid_stop_instance_poc",t=>{this.$socket.client.emit("stop_poc",t)})},created(){var t=window.location.href,e=new URL(t);this.token=e.searchParams.get("token");v.dispatch("pipelineLLO/settoken",{token:this.token});this.socketopen()},beforeDestroy(){this.$root.$off("hybrid_show_info"),this.$root.$off("hybrid_start_instance"),this.$root.$off("hybrid_start_instance_custom"),this.$root.$off("hybrid_stop_instance"),this.$root.$off("hybrid_connect_server"),this.$root.$off("hybrid_install_instance"),this.$root.$off("hybrid_install_instance_custom"),this.$root.$off("hybrid_install_instance_storage"),this.$root.$off("SERVER_build_vmlist"),this.$root.$off("SERVER_build_kill"),this.$root.$off("SERVER_build_image")},computed:{httpOptions(){var t=this.token;return{headers:{Authorization:"Bearer "+t}}}},methods:{async guilogsclose(t){this.webinterfacegeneric_menou1typelog_active=!1,this.webinterfacegeneric_menou2typelog_active=!1,this.webinterfacegeneric_menou3typelog_active=!1,this.actionrowindexconsole=!1,this.$root.$emit("hybrid_show_instance_images","images")},async guilogs(t){var e=await v.dispatch("pipelineLLO/getlog4gui",{token:this.token,instance:this.webinterfacegeneric_menou2typedir});if(!e.data.error&&"no"!=e.data.log)if(1==t){this.webinterfacegeneric_menou1typedir_log=e.data.log,this.webinterfacegeneric_menou1typelog_active=!0,this.actionrowindexconsole=!0,this.$root.$emit("hybrid_show_instance_images","console");var a={};a.data=this.webinterfacegeneric_menou1typedir_log;await v.dispatch("pipelineLLO/getlogs",{container:this.hybridshowdata.ID});this.$root.$emit("hybrid_log_in",a)}else if(2==t){this.webinterfacegeneric_menou2typedir_log=e.data.log,this.webinterfacegeneric_menou2typelog_active=!0,this.actionrowindexconsole=!0,this.$root.$emit("hybrid_show_instance_images","console");a={};a.data=this.webinterfacegeneric_menou2typedir_log;await v.dispatch("pipelineLLO/getlogs",{container:this.hybridshowdata.ID});this.$root.$emit("hybrid_log_in",a)}else if(3==t){this.webinterfacegeneric_menou3typedir_log=e.data.log,this.webinterfacegeneric_menou3typelog_active=!0,this.actionrowindexconsole=!0,this.$root.$emit("hybrid_show_instance_images","console");a={};a.data=this.webinterfacegeneric_menou3typedir_log;await v.dispatch("pipelineLLO/getlogs",{container:this.hybridshowdata.ID});this.$root.$emit("hybrid_log_in",a)}},async updateNetwork(t,e){await v.dispatch("pipelineLLO/updatenetworks",{networks:this.selectedNetworks,defaultnetwork:this.localNetworkdefault,container:t.ID});this.$root.$emit("hybrid_refresh_networktable"),this.hybridshowdata={},this.addNetworkMenou=!1,this.localNetworks=[],this.selectedNetworks=[],this.localNetworkoptions=[],this.localNetworkdefault=""},async addNetwork(t,e){if("on"==e){this.addNetworkMenou=!0;var a=await v.dispatch("pipelineLLO/getnetworks",{instance:t.ID});this.localNetworks=a.data.data;var s="";this.localNetworkoptions=[];for(var i=0;i',s+=" Click on hyperlink opens Directory in new tab",s+='View Backups',s+=" ",this.$swal({type:"Info",title:"Info!",icon:"info",html:s,showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,cancelButtonText:"No, cancel!",showCancelButton:!1,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!0,confirmButtonText:"Ok!"})}else if("basebackup"==t){s="Create a full backup of persistent data:
\n The current limit of 125 layers is due to the kernel\'s ARG_MAX, which limits the number of arguments / length of arguments that can be passed when mounting the layers \n \n (this limit can be raised in kernels, but is not something that could be relied on as it would make those images non-interoperable on systems that don\'t have the custom configuration)\n
\n
\n Note that not every step in a Dockerfile creates a new layer, only (RUN) steps that modify the filesystem will introduce a new layer.\n
\n\n
\n
Solution
\n \n
\n Delete all local docker images related to your dockerfile using the following:\n \n \n docker rmi -f $(docker images -a -q)\n
\n\n
\n
Description
\n \n Remove unused image \n - all images not referenced by any container -\n \n
(Open page in new window)';this.$swal({type:"info",html:r+n,showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!0})}else if("delete-item"==t)this.$swal({type:"info",html:r+n,icon:"info",showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,cancelButtonText:"No, cancel!",showCancelButton:!0,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!0,confirmButtonText:"Yes, Delete it!"}),this.refreshVuetable();else if("rm-install"==t){r=`
swarmlab encountered a problem while deleting your labroom files. This propably means that you have created some files while operating the labroom. To remove those files please run the following command as root.
",o+=' You can back up content using: ',o+='sudo tar -zcvf /home/$USER/swarmlabbackup_'+e.swarmlabname+".tar.gz "+t.data.path+"/instance/"+e.swarmlabname+" ";var n="
(Open page in new window)';this.$swal({type:"info",html:l+r,showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!0})}}else if("delete-item"==t){this.hybridoptions.swarmlabname=e.swarmlabname;l="
This will remove the storage with the name "+e.swarmlabname+"
";var c=this.hybridoptions.swarmlabname,d=(r="",await v.dispatch("pipelineLLO/getstoragesudopreparestop",c));if("yes"==d.data.data&&"no"==d.data.error){var u=d.data.path;r='Before continuing RUN the following command
(Open page in new window)';this.$swal({type:"info",html:n,icon:"info",showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!0})}else if("delete-item"==t)this.$swal({type:"info",html:n+d,showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,cancelButtonText:"No, cancel!",showCancelButton:!0,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!0,confirmButtonText:"Yes, Delete it!"}),s["default"].nextTick(()=>this.refreshVuetable());else if("rm-install"==t){this.resetcustom(),this.hybridoptions.swarmlabname=e.swarmlabname,this.$wait.start("myRunInstancetutor");var r=await v.dispatch("pipelineLLO/rmswarmlablocal",this.hybridoptions.swarmlabname);this.$wait.end("myRunInstancetutor");var l={};l.token=this.token,l.instance=e.swarmlabname;var c=await v.dispatch("pipelineLLO/getservicesinfo",l);if("yes"==c.data.data&&"yes"==c.data.data){var d='
swarmlab encountered a problem while deleting your labroom files. This propably means that you have created some files while operating the labroom. To remove those files please run the following command as root.
",d+=' You can back up content using: ',d+='sudo tar -zcvf /home/$USER/swarmlabbackup_'+e.swarmlabname+".tar.gz "+r.data.path+"/instance/"+e.swarmlabname+" ";n="
Labroom remove
";this.$swal({type:"info",html:n+d,icon:"info",showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,cancelButtonText:"No, cancel!",showCancelButton:!1,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!0,confirmButtonText:"Ok!"})}this.refreshVuetable(),this.$root.$emit("hybrid_refresh_info_deploy_local")}else if("run-install"==t){this.swarmlabinfonow=!0,this.$wait.start("myRunInstancetutor"),this.hybridoptions.swarmlabname=e.swarmlabname,this.hybridoptions.index=a;let t={};t.swarmlabname=this.hybridoptions.swarmlabname,t.index=this.hybridoptions.index,t.size=this.hybridoptions.size,t.port=this.hybridoptions.port;r=await v.dispatch("pipelineLLO/getswarmlabmicroserviceinfo",t.swarmlabname),o=r.data.swarmlabinfo;t.git=o;await v.dispatch("pipelineLLO/checkowner",{token:this.token,instance:this.hybridoptions.swarmlabname});this.$root.$emit("hybrid_install_instance",t),this.$wait.end("myRunInstancetutor"),await this.refreshVuetable(),await this.refreshVuetableall()}else if("run-item"==t){this.resetcustom(),this.heavy=!1,this.heavytext="",this.up_name=this.hybridoptions.swarmlabname;var u="microservice-volatilitywindows",m=new RegExp(u),p="microservice-jupyter";new RegExp(p);if(m.test(this.hybridoptions.swarmlabname))this.viewhybridoptions=!0,this.heavy=!0,this.heavytext="Note that this image is somewhat heavy (~2GB) since they embed some of the kernel debug symbols for Microsoft Windows. It can take some time to build the Instance",this.hybridoptions.swarmlabname=this.hybridoptions.swarmlabname,this.hybridoptions.index=a;else{this.viewhybridoptions=!0,this.hybridoptions.swarmlabname=this.hybridoptions.swarmlabname,this.hybridoptions.index=a;for(var h=0;h Microservice: ${this.hybridoptions.swarmlabname} `;n+=" Stop and remove containers, networks, images, and volumes",this.$swal({type:"info",html:n,icon:"info",showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,cancelButtonText:"No, cancel!",showCancelButton:!0,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!1,confirmButtonText:"Yes!"}).then(t=>{this.rmAndClose(t)})}},async rmAndClose(t){if(t.isConfirmed){this.hybridoptions.swarmlabname,await v.dispatch("pipelineLLO/stopservice",{token:this.token,instance:this.hybridoptions.swarmlabname});this.refreshVuetable()}else console.log("no")},async setcustomcancel(){this.custommenouopen=!1,this.custommenou=!1},async setcustomsave(){let t={};t.swarmlabname=this.hybridoptions.swarmlabname;await v.dispatch("pipelineLLO/savecustom",{token:this.token,instance:this.hybridoptions.swarmlabname,package:this.custom.os,sh:this.custom.sh});this.custommenouopen=!1,this.custommenou=!1},async setcustom(){let t={};t.swarmlabname=this.hybridoptions.swarmlabname,this.custommenouopen=!0,this.custommenou=!0;var e=await v.dispatch("pipelineLLO/getcustom",{token:this.token,instance:this.hybridoptions.swarmlabname});if(!1===e.data.error){if("nodir"==e.data.error_msg){var a="
Please redownload Microservice and try launching the module again \n
swarmlab encountered a problem while deleting your labroom files. This propably means that you have created some files while operating the labroom. To remove those files please run the following command as root.
",i+=' You can back up content using: ',i+='sudo tar -zcvf /home/$USER/swarmlabbackup_'+data.swarmlabname+".tar.gz "+e.data.path+"/instance/"+data.swarmlabname+" ";var o="
swarmlab encountered a problem while deleting your labroom files. This propably means that you have created some files while operating the labroom. To remove those files please run the following command as root.
",i+=' You can back up content using: ',i+='sudo tar -zcvf /home/$USER/swarmlabbackup_'+data.service+".tar.gz "+e.data.mydir+"/community/"+e.data.path+" ";var o="
swarmlab encountered a problem while deleting your labroom files. This propably means that you have created some files while operating the labroom. To remove those files please run the following command as root.
",d+=' You can back up content using: ',d+='sudo tar -zcvf /home/$USER/swarmlabbackup_'+e.service+".tar.gz "+r.data.mydir+"/community/"+r.data.path+" ";n="
(Open page in new window)';this.$swal({type:"info",html:o+i,showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!0})}else if("delete-item"==t){this.hybridoptions.swarmlabname=e.swarmlabname;o="
This will remove the storage with the name "+e.swarmlabname+"
',e+="The base image you wish to use. \n \n \nHere you should select the one closest to your final product to minimize the changes you will have to make.\n "):"form_version"==t?(a='
Service Version
',e+="\n The field may contain alphanumeric characters to describe the service Name\n "):"form_baseservice"==t?(a='
\n This is the git repository associated with your project. \n \nHere you can upload all the necessary files for your service.\n \n \n for example \n
\n\t
\n if you are performing a task for a tutor you might want to include filed needed to run it\n\t
\n\t
\n or if the projects is shared between multiple students you will have to include the files for everyone to use\n\t
\n
\n \n \nThis way we have a centralized store for our projectss files\n
\n '):"form_rclocal"==t?(a='
rc.local
',e+='\n\n
\n\nHere you may start additional services. \n \n \nPlease keep in mind that they WILL NOT be started automatically! You HAVE to start them here!\n\n \n \nIt is executed after all build processes are finished.\n\t\t
\nA script intended to be run after the installation is done to automate system update, extra software installation and configuration. \n\n \n \nIt is executed after "add packages" step has finished\n \n \n\nHere you can make changes or install other software for example programs that cannot be found using the package manager\n\n\n\t\t
\n please add the email addresses of the users you would like to invite separated with comas \n \n Examples\n \n user1@email.com,user2@foo.com\n \n \n NOTE \n \n
\n swarmlab.io uses GitHub as an Identity Provider\n \n \n To avoid further naming issues swarmlab uses the email used with the oauth provider as the identification key.\n \n \n This ensures that multiple accounts with different providers and the same name won\'t be messed up within swarmlab\n
\n ':"form_os"==t?(a='
Add Extrapackages
',e+='\n\n
\n\n sh script to install packages\n\n\t\t\t\t \n \n Examples\n \n apt update && apt install -y vim\n \n OR\n \n apk update && apk add --no-cache vim\n \n \n The file needs to contain the commands in ONE LINE!\n\n\n\t\t
',e+="\n Build Description: a simple description of the services provided\n"):"port"==t&&(a='
Port - URI - Name
',e+='\n \n
\n\nHere you can declare the services you wish to start and publish.\n\n \n \n\nPublished ports:\nBy default, when you create or run a container, it does not publish any of its ports to the outside world.\n \nTo make a port available to services outside of Docker, or to Docker containers which are not connected to the container’s network, use the "Port" field. \n\t\t
\n \n
\n\t\t\t\tURI: http/https\n\t\t
\n \n
\n\t\t\t\tName: \n this is the name used by the end user. Try to be clear using few words!\n\n\t\t
(Open page in new window)';this.$swal({type:"info",html:r+n,showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!0})}}else if("upload-item"==t){this.swarmlab=e;var l={data:e};this.$root.$emit("hybrid_build_micro_service",l)}},playbookinfoShow(t){return this.visibility[t]=!0},playbookinfo(t){return this.playbookInfo=t},rowClicked(t,e){console.log(t),this.onAction("upload-item",t,t._id)},loadsuccess(t){var e=t.data.data;this.fielddata=e;e.length},onLoadError(t){"401"==t.response.status&&(window.location.href="https://api-login.swarmlab.io:8089",s["default"].nextTick(()=>window.location.href="https://api-login.swarmlab.io:8089"))}},actions:{}},ba=ha,va=(a("83ff"),Object(_["a"])(ba,ma,pa,!1,null,null,null)),fa=va.exports,wa=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("card",{staticClass:"card-user",staticStyle:{"max-height":"100%"}},[s("br"),s("v-wait",{attrs:{for:"myRunInstancetutormybuild"}},[s("template",{slot:"waiting"},[s("div",[s("img",{attrs:{src:a("cf1c")}}),t._v(" Enter Lab_room... ")])])],2),s("div",{staticClass:"row text-center"},[s("div",{staticClass:"col-12"},[s("b",[t._v("Swarmlab "),s("span",{staticClass:"text-info"},[t._v("my Custom MicroServices")])])])]),s("br"),s("div",{staticClass:"input-group input-group-sm sm-3"}),s("div",{staticClass:"input-group input-group-sm sm-3"},[s("button",{staticClass:"btn btn-outline-success btn-sm",attrs:{round:"",type:"button"},on:{click:t.refreshVuetable}},[t._v(" Refresh Table ")]),s("input",{directives:[{name:"model",rawName:"v-model",value:t.searchFor,expression:"searchFor"}],staticClass:"form-control",attrs:{type:"text","aria-label":"Small","aria-describedby":"inputGroup-sizing-sm",placeholder:"Search"},domProps:{value:t.searchFor},on:{keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.setFilter(e)},input:function(e){e.target.composing||(t.searchFor=e.target.value)}}}),s("div",{staticClass:"input-group-append"},[s("button",{staticClass:"btn btn-outline-primary",attrs:{round:"",type:"button"},on:{click:t.setFilter}},[t._v(" Go")])]),s("div",{staticClass:"input-group-append"},[s("button",{staticClass:"btn btn-outline-secondary",attrs:{round:"",type:"button"},on:{click:t.resetFilter}},[t._v(" Reset")])])]),t.viewhybridoptions&&t.heavy?s("div",{staticClass:"input-group-append"},[s("p",{staticClass:"text-danger"},[t._v(t._s(t.heavytext))])]):t._e(),s("vuetable",{key:t.vuetablekeygmybuildservice123,ref:"vuetable",attrs:{id:"idvuetablekeygmybuildservice123","api-url":t.apiurl,"api-mode":!0,"http-options":t.httpOptions,fields:t.fields,"item-actions":t.itemActions,"sort-order":t.sortOrder,"show-sort-icons":!0,"multi-sort":t.multiSort,"per-page":t.perpage,"pagination-path":"links.pagination","pagination-component":t.paginationComponent,"append-params":t.moreParams,"wrapper-class":"vuetable-wrapper","loading-class":"loading","detail-row-id":"id",css:t.css.table},on:{"vuetable:pagination-data":t.onPaginationData,"vuetable:load-success":t.loadsuccess,"vuetable:load-error":t.onLoadError},scopedSlots:t._u([{key:"actions",fn:function(e){return s("div",{},[s("div",{staticClass:"d-flex justify-content-center"},[s("button",{staticClass:"ti-pencil btn btn-sm",attrs:{title:"Upload MicroService",round:""},on:{click:function(a){return t.onAction("upload-item",e.rowData,e.rowData._id)}}}),s("button",{staticClass:"ti-trash btn btn-sm text-warning",attrs:{title:"MicroService Info",round:""},on:{click:function(a){return t.onAction("rm-item",e.rowData,e.rowData._id)}}})])])}}])}),s("div",{staticClass:"vuetable-pagination ui basic segment grid"},[s("vuetable-pagination-info",{ref:"paginationInfo",attrs:{css:t.css.paginationInfo}}),s("vuetable-pagination",{ref:"pagination",attrs:{css:t.css.pagination},on:{"vuetable-pagination:change-page":t.onChangePage}})],1)],1)},ga=[],ya={components:{card:k,Vuetable:$["Vuetable"],VuetablePagination:S["a"],VuetablePaginationInfo:L["a"],VuetablePaginationDropdown:$["VuetablePaginationDropdown"]},props:{},data(){return{testactionrowindex:[],teststatusindex:[],testtest:[],testtestdir:[],hybridoptions:{index:"",swarmlabname:"",size:"",port:""},viewhybridoptions:!1,heavy:!1,heavytext:"",customedit:!1,custommenouopen:!1,custommenou:!1,custom:{os:"",sh:""},customostext:"",customshtext:"",up_name:"",swarmlab:{},playbookInfo:{},token:"",playbook:{title:"",name:"",description:""},container:{name:"",view:0},pipeline:{},selected:"hybrid",options:[{text:"Packages",value:"packages"},{text:"Images",value:"images"},{text:"Scripts",value:"scripts"}],showModal:!1,visibility:[],active:!1,vuetablekeygmybuildservice123:0,vuetablekeygslot:0,fielddata:{},fields:[{name:"service",title:'Name',sortField:"service",visible:!0,dataClass:"left aligned col-3",width:"30%"},{name:"_id",title:'mongo',visible:!1},{name:"readme",title:'Info',sortField:"gitrepoCloneUrl",dataClass:"left aligned w-25",visible:!0,width:"20%"},{name:"baseservice",title:'Base',sortField:"baseservice",titleClass:"center aligned",dataClass:"left aligned w-25",visible:!0,width:"30%"},{name:"visibility",title:'Pub',sortField:"gitrepoCloneUrl",dataClass:"center aligned w-10 text-center",visible:!0,width:"10%",callback:function(t){if("Public"==t){var e=' \n\t\t\t\t\t\n';return e}e=' \n\t\t\t\t\t\n';return e}},{name:"__slot:actions",title:"Actions",titleClass:"col text-center",dataClass:"center aligned",width:"10%"}],apiurl:d.swarmlab_url_80+"/swarmlabhybridmymicroservices",css:I["a"],perpage:8,searchFor:"",sortOrder:[{field:"pipelinename",direction:"asc"}],multiSort:!0,paginationComponent:"vuetable-pagination",currentpage:"1",currentpagepaginationData:{},dataselect:"",indexselect:"",itemActions:[{name:"view-item",label:"",icon:"glyphicon glyphicon-zoom-in",class:"btn btn-info",extra:{title:"View","data-toggle":"tooltip","data-placement":"left"}},{name:"edit-item",label:"",icon:"glyphicon glyphicon-pencil",class:"btn btn-warning",extra:{title:"Edit","data-toggle":"tooltip","data-placement":"top"}},{name:"delete-item",label:"",icon:"glyphicon glyphicon-remove",class:"btn btn-danger",extra:{title:"Delete","data-toggle":"tooltip","data-placement":"right"}}],moreParams:{filter:"",type:"scripts"}}},mounted(){this.$root.$on("hybrid_build_micro_service_menou_refreshtable",()=>{this.refreshVuetable()})},async created(){var t=window.location.href,e=new URL(t);this.token=e.searchParams.get("token"),this.$root.$emit("hybrid_build_micro_service_menou")},beforeDestroy(){this.$root.$off("hybrid_build_micro_service_menou_refreshtable")},computed:{httpOptions(){var t=this.token;return{headers:{Authorization:"Bearer "+t}}}},methods:{async refreshVuetable(){this.vuetablekeygmybuildservice123+=1},setFilter(){this.moreParams={filter:this.searchFor,type:this.selected},s["default"].nextTick(()=>this.$refs.vuetable.refresh())},resetFilter(){this.moreParams={},this.searchFor="",this.moreParams={filter:"",type:"scripts"},s["default"].nextTick(()=>this.refreshVuetableall())},onPaginationData(t){this.$refs.pagination.setPaginationData(t),this.$refs.paginationInfo.setPaginationData(t),this.currentpagepaginationData=t},onChangePage(t){this.currentpage=t,this.$refs.vuetable.changePage(t)},editRow(t){alert("You clicked edit on"+JSON.stringify(t))},async rmAndClose(t){if(t.isConfirmed){this.hybridoptions.swarmlabname;var e=await v.dispatch("pipelineLLO/rmmycustomservice",{token:this.token,service:this.swarmlab.service});if(this.refreshVuetable(),"ok"==e.data.action);else{var a="Remove error ";this.$swal({type:"Info",title:"Info!",icon:"error",html:a,showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,cancelButtonText:"No, cancel!",showCancelButton:!1,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!0,confirmButtonText:"Ok!"})}}else console.log("no")},async onAction(t,e,a){if("rm-item"==t){this.swarmlab=e;this.swarmlab;var s="Remove service: "+this.swarmlab.service;s+="",this.$swal({type:"info",html:s,icon:"warning",showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,cancelButtonText:"No, cancel!",showCancelButton:!0,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!1,confirmButtonText:"Yes!"}).then(t=>{this.rmAndClose(t)})}else if("upload-item"==t){var i={data:e},o={data:i};this.swarmlab=e;var n={data:e,log:o};this.$root.$emit("hybrid_build_micro_myservice",n)}},playbookinfoShow(t){return this.visibility[t]=!0},playbookinfo(t){return this.playbookInfo=t},rowClicked(t,e){return{html:!0,title:()=>"Hello Popover: "+ ++this.counter,content:()=>"The date is: "+new Date+""}},loadsuccess(t){var e=t.data.data;this.fielddata=e;e.length},onLoadError(t){"401"==t.response.status&&(window.location.href="https://api-login.swarmlab.io:8089",s["default"].nextTick(()=>window.location.href="https://api-login.swarmlab.io:8089"))}},actions:{}},_a=ya,Ca=(a("f830"),Object(_["a"])(_a,wa,ga,!1,null,null,null)),ka=Ca.exports,xa={components:{ServiceView:ua,card:k,BuilderServices:fa,BuilderMyServices:ka},data(){return{loading:!1,consoleView:"off",productIndex:1}},mounted(){},beforeDestroy(){},created(){}},Aa=xa,Oa=Object(_["a"])(Aa,ia,oa,!1,null,null,null),Ra=Oa.exports,$a=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("card",{staticClass:"card-user",staticStyle:{"max-height":"100%"}},[a("div",{staticClass:"row"},[a("div",{staticClass:"col-6 order-first "},[a("br"),a("mydeploy-manage-bootstrap")],1),a("div",{staticClass:"col-6 order-last"},[a("br"),a("mydeploy-manage-view")],1)])])},La=[],Sa=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("card",{staticClass:"card-user",staticStyle:{"max-height":"100%"}},[s("div",{staticClass:"author"},[s("img",{staticClass:"avatar border-white",attrs:{src:a("0ed5"),alt:"..."}})]),s("b-container",{staticClass:"bv-example-row",attrs:{fluid:""}},[s("div",{staticClass:"row text-center"},[s("div",{staticClass:"col-12"},[s("b",[t._v("Swarmlab hybrid Deploy")])])]),s("br"),s("b-row",[s("b-col",{attrs:{cols:"8"}},[s("ValidationProvider",{ref:"hybrid_image",attrs:{name:"Image",rules:"required|alpha_num_image"},scopedSlots:t._u([{key:"default",fn:function(e){var a=e.errors;e.ariaMsg,e.ariaInput,e.valid,e.invalid;return[s("div",{staticClass:"input-group input-group-sm sm-3"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.deploy.image,expression:"deploy.image"}],staticClass:"form-control",class:{"is-valid":1==t.isDeployValid.image,"is-invalid":2==t.isDeployValid.image},attrs:{type:"text",name:"Image","aria-label":"Small","aria-describedby":"inputGroup-sizing-sm",placeholder:"Image"},domProps:{value:t.deploy.image},on:{keyup:function(e){return t.isValid("image")},input:function(e){e.target.composing||t.$set(t.deploy,"image",e.target.value)}}}),s("div",{staticClass:"input-group-append"},[s("button",{staticClass:"ti-info btn btn-outline-secondary",attrs:{round:"",type:"button"},on:{click:function(e){return t.showInfo("image")}}})])]),s("span",{staticClass:"hybrid-field-error"},[t._v(t._s(a[0]))])]}}])})],1),s("b-col",{attrs:{cols:"4"}},[s("ValidationProvider",{ref:"hybrid_stackname",attrs:{name:"StackName",rules:"required|alpha_num_name"},scopedSlots:t._u([{key:"default",fn:function(e){var a=e.errors;e.ariaMsg,e.ariaInput,e.valid,e.invalid;return[s("div",{staticClass:"input-group input-group-sm sm-3"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.deploy.stackname,expression:"deploy.stackname"}],staticClass:"form-control",class:{"is-valid":1==t.isDeployValid.stackname,"is-invalid":2==t.isDeployValid.stackname},attrs:{type:"text",name:"StackName","aria-label":"Small","aria-describedby":"inputGroup-sizing-sm",placeholder:"StackName"},domProps:{value:t.deploy.stackname},on:{keyup:function(e){return t.isValid("stackname")},input:function(e){e.target.composing||t.$set(t.deploy,"stackname",e.target.value)}}}),s("div",{staticClass:"input-group-append"},[s("button",{staticClass:"ti-info btn btn-outline-secondary",attrs:{round:"",type:"button"},on:{click:function(e){return t.showInfo("stackname")}}})])]),s("span",{staticClass:"hybrid-field-error"},[t._v(t._s(a[0]))])]}}])})],1)],1),s("b-row",[s("b-col",{attrs:{cols:"8"}},[s("ValidationProvider",{ref:"hybrid_name",attrs:{name:"Name",rules:"required|alpha_num_name"},scopedSlots:t._u([{key:"default",fn:function(e){var a=e.errors;e.ariaMsg,e.ariaInput,e.valid,e.invalid;return[s("div",{staticClass:"input-group input-group-sm sm-3"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.deploy.name,expression:"deploy.name"}],staticClass:"form-control",class:{"is-valid":1==t.isDeployValid.name,"is-invalid":2==t.isDeployValid.name},attrs:{type:"HybridError",name:"Name","aria-label":"Small","aria-describedby":"inputGroup-sizing-sm",placeholder:"Name"},domProps:{value:t.deploy.name},on:{keyup:function(e){return t.isValid("name")},input:function(e){e.target.composing||t.$set(t.deploy,"name",e.target.value)}}}),s("div",{staticClass:"input-group-append"},[s("button",{staticClass:"ti-info btn btn-outline-secondary",attrs:{round:"",type:"button"},on:{click:function(e){return t.showInfo("name")}}})])]),s("span",{staticClass:"hybrid-field-error"},[t._v(t._s(a[0]))])]}}])})],1),s("b-col",{attrs:{cols:"4"}},[s("ValidationProvider",{ref:"hybrid_network",attrs:{name:"Network",rules:"required|alpha_num_name"},scopedSlots:t._u([{key:"default",fn:function(e){var a=e.errors;e.ariaMsg,e.ariaInput,e.valid,e.invalid;return[s("div",{staticClass:"input-group input-group-sm sm-3"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.deploy.network,expression:"deploy.network"}],staticClass:"form-control",class:{"is-valid":1==t.isDeployValid.network,"is-invalid":2==t.isDeployValid.network},attrs:{type:"text",name:"Network","aria-label":"Small","aria-describedby":"inputGroup-sizing-sm",placeholder:"Network Name"},domProps:{value:t.deploy.network},on:{keyup:function(e){return t.isValid("network")},input:function(e){e.target.composing||t.$set(t.deploy,"network",e.target.value)}}}),s("div",{staticClass:"input-group-append"},[s("button",{staticClass:"ti-info btn btn-outline-secondary",attrs:{round:"",type:"button"},on:{click:function(e){return t.showInfo("network")}}})])]),s("span",{staticClass:"hybrid-field-error"},[t._v(t._s(a[0]))])]}}])})],1)],1),s("b-row",[s("b-col",{attrs:{cols:"4"}},[s("ValidationProvider",{ref:"hybrid_cpu",attrs:{name:"Cpu",rules:"required|alpha_num_cpu"},scopedSlots:t._u([{key:"default",fn:function(e){var a=e.errors;e.ariaMsg,e.ariaInput,e.valid,e.invalid;return[s("div",{staticClass:"input-group input-group-sm sm-3"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.deploy.cpu,expression:"deploy.cpu"}],staticClass:"form-control",class:{"is-valid":1==t.isDeployValid.cpu,"is-invalid":2==t.isDeployValid.cpu},attrs:{type:"text",name:"Cpu","aria-label":"Small","aria-describedby":"inputGroup-sizing-sm",placeholder:"Limit CPU e.g. 0.50"},domProps:{value:t.deploy.cpu},on:{keyup:function(e){return t.isValid("cpu")},input:function(e){e.target.composing||t.$set(t.deploy,"cpu",e.target.value)}}}),s("div",{staticClass:"input-group-append"},[s("button",{staticClass:"ti-info btn btn-outline-secondary",attrs:{round:"",type:"button"},on:{click:function(e){return t.showInfo("cpu")}}})])]),s("span",{staticClass:"hybrid-field-error"},[t._v(t._s(a[0]))])]}}])})],1),s("b-col",{attrs:{cols:"4"}},[s("ValidationProvider",{ref:"hybrid_memory",attrs:{name:"Memory",rules:"required|alpha_num_memory"},scopedSlots:t._u([{key:"default",fn:function(e){var a=e.errors;e.ariaMsg,e.ariaInput,e.valid,e.invalid;return[s("div",{staticClass:"input-group input-group-sm sm-3"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.deploy.memory,expression:"deploy.memory"}],staticClass:"form-control",class:{"is-valid":1==t.isDeployValid.memory,"is-invalid":2==t.isDeployValid.memory},attrs:{type:"text",name:"Memory","aria-label":"Small","aria-describedby":"inputGroup-sizing-sm",placeholder:"Limit Memory e.g. 500"},domProps:{value:t.deploy.memory},on:{keyup:function(e){return t.isValid("memory")},input:function(e){e.target.composing||t.$set(t.deploy,"memory",e.target.value)}}}),s("div",{staticClass:"input-group-append"},[s("button",{staticClass:"ti-info btn btn-outline-secondary",attrs:{round:"",type:"button"},on:{click:function(e){return t.showInfo("memory")}}})])]),s("span",{staticClass:"hybrid-field-error"},[t._v(t._s(a[0]))])]}}])})],1),s("b-col",{attrs:{cols:"4"}},[s("ValidationProvider",{ref:"hybrid_networkport",attrs:{name:"Networkport",rules:"mybetween:1,65535"},scopedSlots:t._u([{key:"default",fn:function(e){var a=e.errors;e.ariaMsg,e.ariaInput,e.valid,e.invalid;return[s("div",{staticClass:"input-group input-group-sm sm-3"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.deploy.networkport,expression:"deploy.networkport"}],staticClass:"form-control",class:{"is-valid":1==t.isDeployValid.networkport,"is-invalid":2==t.isDeployValid.networkport},attrs:{type:"text",name:"Networkport","aria-label":"Small","aria-describedby":"inputGroup-sizing-sm",placeholder:"Net Port (inside the container)"},domProps:{value:t.deploy.networkport},on:{keyup:function(e){return t.isValid("networkport")},input:function(e){e.target.composing||t.$set(t.deploy,"networkport",e.target.value)}}}),s("div",{staticClass:"input-group-append"},[s("button",{staticClass:"ti-info btn btn-outline-secondary",attrs:{round:"",type:"button"},on:{click:function(e){return t.showInfo("networkport")}}})])]),s("span",{staticClass:"hybrid-field-error"},[t._v(t._s(a[0]))])]}}])})],1)],1),s("b-row",[s("b-col",{attrs:{cols:"12"}},[s("ValidationProvider",{ref:"hybrid_url",attrs:{name:"Url",rules:"required|alpha_url"},scopedSlots:t._u([{key:"default",fn:function(e){var a=e.errors;e.ariaMsg,e.ariaInput,e.valid,e.invalid;return[s("div",{staticClass:"input-group input-group-sm sm-3"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.deploy.url,expression:"deploy.url"}],staticClass:"form-control",class:{"is-valid":1==t.isDeployValid.url,"is-invalid":2==t.isDeployValid.url},attrs:{type:"text",name:"Url","aria-label":"Small","aria-describedby":"inputGroup-sizing-sm",placeholder:"link to README file (see info button for more)"},domProps:{value:t.deploy.url},on:{keyup:function(e){return t.isValid("url")},input:function(e){e.target.composing||t.$set(t.deploy,"url",e.target.value)}}}),s("div",{staticClass:"input-group-append"},[s("button",{staticClass:"ti-info btn btn-outline-secondary",attrs:{round:"",type:"button"},on:{click:function(e){return t.showInfo("url")}}})])]),s("span",{staticClass:"hybrid-field-error"},[t._v(t._s(a[0]))])]}}])})],1)],1),s("b-row",[s("b-col",{attrs:{cols:"6"}},[s("div",{staticClass:"input-group input-group-sm mb-3"},[s("div",{staticClass:"input-group-prepend"},[s("button",{staticClass:"btn btn-outline-secondary",attrs:{type:"button"}},[t._v("Start date ")])]),s("date-picker",{attrs:{type:"date",autocomplete:"off",format:"YYYY-MM-DD",lang:"en"},model:{value:t.deploy.startdate,callback:function(e){t.$set(t.deploy,"startdate",e)},expression:"deploy.startdate"}})],1)]),s("b-col",{attrs:{cols:"6"}},[s("div",{staticClass:"input-group input-group-sm mb-3"},[s("div",{staticClass:"input-group-prepend"},[s("button",{staticClass:"btn btn-outline-secondary",attrs:{type:"button"}},[t._v("Start time")])]),s("date-picker",{attrs:{type:"time",format:"HH:mm","show-hour":"","show-minute":"","time-picker-options":t.timePickerOptions,lang:"en"},model:{value:t.deploy.starttime,callback:function(e){t.$set(t.deploy,"starttime",e)},expression:"deploy.starttime"}})],1)])],1),s("b-row",[s("b-col",{attrs:{cols:"6"}},[s("div",{staticClass:"input-group input-group-sm mb-3"},[s("div",{staticClass:"input-group-prepend"},[s("button",{staticClass:"btn btn-outline-secondary",attrs:{type:"button"}},[t._v("End date ")])]),s("date-picker",{attrs:{type:"date",autocomplete:"off",format:"YYYY-MM-DD",lang:"en"},model:{value:t.deploy.enddate,callback:function(e){t.$set(t.deploy,"enddate",e)},expression:"deploy.enddate"}})],1)]),s("b-col",{attrs:{cols:"6"}},[s("div",{staticClass:"input-group input-group-sm mb-3"},[s("div",{staticClass:"input-group-prepend"},[s("button",{staticClass:"btn btn-outline-secondary",attrs:{type:"button"}},[t._v("End time")])]),s("date-picker",{attrs:{type:"time",format:"HH:mm","show-hour":"","show-minute":"","time-picker-options":t.timePickerOptions,lang:"en"},model:{value:t.deploy.endtime,callback:function(e){t.$set(t.deploy,"endtime",e)},expression:"deploy.endtime"}})],1)])],1),s("b-row",[s("b-col",{attrs:{cols:"6"}},[s("div",{staticClass:"input-group input-group-sm sm-3"},[s("div",{staticClass:"input-group-prepend"},[s("button",{staticClass:"ti-cloud-up btn btn-outline-success",attrs:{round:"",type:"button",title:"Deploy"},on:{click:function(e){return t.add_deploy()}}},[t._v(" Deploy ")])])])]),s("b-col",{attrs:{cols:"2"}}),s("b-col",{attrs:{cols:"4"}},[s("div",{staticClass:"custom-control custom-switch"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.deploy.usersjoin,expression:"deploy.usersjoin"}],staticClass:"custom-control-input",attrs:{type:"checkbox",id:"customStack",value:"true","unchecked-value":"false"},domProps:{checked:Array.isArray(t.deploy.usersjoin)?t._i(t.deploy.usersjoin,"true")>-1:t.deploy.usersjoin},on:{change:function(e){var a=t.deploy.usersjoin,s=e.target,i=!!s.checked;if(Array.isArray(a)){var o="true",n=t._i(a,o);s.checked?n<0&&t.$set(t.deploy,"usersjoin",a.concat([o])):n>-1&&t.$set(t.deploy,"usersjoin",a.slice(0,n).concat(a.slice(n+1)))}else t.$set(t.deploy,"usersjoin",i)}}}),s("label",{staticClass:"custom-control-label",attrs:{for:"customStack"}},[t._v("Users can join the lab instance")])])])],1)],1)],1)},Ia=[],Ba=a("ec45");a("411c");Object(B["b"])("alpha_num",N["a"]),Object(B["b"])("mybetween",N["b"]),Object(B["b"])("mybetween",{message:"The {_field_} field must be a number: 1-65535"}),Object(B["b"])("alpha_num_image",t=>{var e=new RegExp(/^[A-Za-z0-9\:\.\-\_\/]+$/,"i");return!!e.test(t)||"The {_field_} field may contain alphabetic characters, numbers, colons, hyphens, slashes, dots and underscores"}),Object(B["b"])("alpha_num_name",t=>{var e=new RegExp(/^[A-Za-z0-9]+$/,"i");return!!e.test(t)||"The {_field_} field may contain alphabetic characters and numbers"}),Object(B["b"])("alpha_num_cpu",t=>{var e=new RegExp(/^(?!0\d)\d+(?:\.\d{1})?$/);return!!e.test(t)||"The {_field_} field may contain numbers and dots e.g 0.5"}),Object(B["b"])("alpha_num_memory",t=>{var e=new RegExp(/^[0-9]+$/,"i");return!!e.test(t)||"The {_field_} field may contain numbers e.g 500"}),Object(B["b"])("alpha_url",t=>{var e=new RegExp(/https?:\/\/(git\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,4}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/,"i");return!!e.test(t)||"The {_field_} field may contain url"}),Object(B["b"])("required",{...N["c"],message:"This field is required"});var Na={components:{DatePicker:Ba["a"],ValidationProvider:B["a"],card:k},props:{},data(){return{isHybridError:!1,isHybridSuccess:!1,token:"",timePickerOptions:{start:"00:00",step:"00:30",end:"23:30"},deploy:{usersjoin:!0},isDeployValid:{image:3,name:3,stackname:3,network:3,url:3,cpu:3,memory:3},isDeployError:{}}},mounted(){},created(){var t=window.location.href,e=new URL(t);this.token=e.searchParams.get("token")},beforeDestroy(){},computed:{},methods:{async add_deploy(){var t=Object.entries(this.deploy),e=new Promise((e,a)=>{t.forEach((t,a,s)=>{this.isValid(s[a][0]),a===s.length-1&&e()})});e.then(()=>{(async()=>{var t=!0;for(const[a,s]of Object.entries(this.isDeployValid))1!=s&&(t=!1);if(t){await v.dispatch("pipelineLLO/adddeploy",{token:this.token,deploy:this.deploy});this.$root.$emit("hybrid_refresh_bootstrap_view");var e='
The deploy process is started
Please wait for it to finish before trying again!
See also in "Manage your deployments" table';this.$swal({type:"Info",title:"Info!",icon:"info",html:e,showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,cancelButtonText:"No, cancel!",showCancelButton:!1,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!0,confirmButtonText:"Ok!"})}else{e="Missing required fields";this.$swal({type:"Info",title:"Info!",icon:"info",html:e,showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,cancelButtonText:"No, cancel!",showCancelButton:!1,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!0,confirmButtonText:"Ok!"})}})()})},async showInfo(t){if("image"==t)var e='
To start, we need to have a docker image \n We have built some. You can find it here: Menu "Images"
\n \n \n The field may contain alphabetic characters, numbers, colons, hyphens, slashes, dots and underscores\n';else if("stackname"==t)e="
To start, we need to have a Stack Name \n This will bring up all the services, volumes, networks and everything else in an isolated environment.\n\n \n \n The field may contain alphabetic characters and numbers\n";else if("network"==t)e="
To start, we need to have a Network \n This will bring up all the services, volumes, networks and everything else in an isolated network environment.\n \n \nServices running inside any of this networks containers have access (not limited by any firewall) to all other services.\n \n
\n \n \n The field may contain alphabetic characters and numbers\n\n";else if("url"==t)e="
Git Repo url
\n The location of the file describing your service. (most comonly README) \n \n\n
\n \n \n The field may contain any valid url BUT it must be under https://git.swarmlab.io\n";else if("networkport"==t)e="
Network Port
\n \n
\nBy default, when you create a container, it does not publish any of its ports to the outside world. \n \nTo make a port available to Services which are not connected to the Stack network, we use this port. \n
\n \n
\n\nTo make a service available we have to know the port number used by these service inside the container.\n\n \nPlease insert that here.\n
\n \n \n(The port for outside connections is automatically generated and you dont have to worry about it!)\n \n \n The field may contain numbers\n";else if("cpu"==t)e="
To start, we need to have a CPU Limit \n Limit the specific CPUs or cores a container can use\n\n \n \nThe field may contain numbers and dots e.g 0.5\n";else if("memory"==t)e="
To start, we need to have a Memory Limit \n
Limit the specific Memoty a container can use \ne.g 200\n \n(MB)\n\n \n \n
\n\nIt is important not to allow a running container to consume too much of the host machine’s memory.\n\n
\n \n \n The field may contain numbers\n";else if("name"==t)e="
To start, we need to have a Name \nThis name is only for your own use. The system completely disregards it!\n
\n \n`;this.$swal({type:"Info",title:"Course Info!",icon:"info",html:u,showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,cancelButtonText:"No, cancel!",showCancelButton:!1,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!0,confirmButtonText:"Ok!"})}this.getprogress(this.datadir)},refreshVuetable(){this.$nextTick(()=>{this.vuetablekeyf+=1})},playbookinfoShow(t){return this.visibility[t]=!0},playbookinfo(t){return this.playbookInfo=t},rowClicked(t,e){return{html:!0,title:()=>"Hello Popover: "+ ++this.counter,content:()=>"The date is: "+new Date+""}},loadsuccess(t){var e=t.data.data;this.fielddata=e;e.length},onLoadError(t){"401"==t.response.status&&(window.location.href="https://api-login.swarmlab.io:8089",s["default"].nextTick(()=>window.location.href="https://api-login.swarmlab.io:8089"))}},actions:{}},is=ss,os=(a("cc7b"),Object(_["a"])(is,es,as,!1,null,null,null)),ns=os.exports,rs=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("card",{staticClass:"card-user",staticStyle:{"max-height":"100%"}},[s("div",{staticClass:"author"},["asciidoc"==t.hybridshow?s("img",{staticClass:"avatar border-white",attrs:{src:a("3784"),alt:"..."}}):t._e(),"asciinema"==t.hybridshow?s("img",{staticClass:"avatar border-white",attrs:{src:a("3606"),alt:"..."}}):t._e(),"video"==t.hybridshow?s("img",{staticClass:"avatar border-white",attrs:{src:a("2e15"),alt:"..."}}):t._e()]),s("v-wait",{attrs:{for:"myRunInstancetutor"}},[s("template",{slot:"waiting"},[s("div",[s("img",{attrs:{src:a("cf1c")}}),t._v(" Enter Lab_room... ")])])],2),s("b-container",{attrs:{fluid:""}},["asciinema"==t.hybridshow?s("div",{staticClass:"row text-center"},[s("div",{staticClass:"col-12"},[s("b",[t._v("Copy & Paste")]),s("br"),t._v(" Any time you see a command you'd like to try in your own terminal just pause the player "),s("br"),t._v(" and copy-paste the content you want. ")]),s("div",{staticClass:"col-12"},[s("iframe",{attrs:{id:"llo",title:"title",width:"600",height:"700",src:t.asciinemasource,allowfullscreen:"",frameborder:"0"}})])]):t._e(),"video"==t.hybridshow?s("div",{staticClass:"row text-center"},[s("iframe",{attrs:{id:"llo",width:"740",height:"500",src:t.sourcevimeo,allowfullscreen:"",frameborder:"0"},on:{load:function(e){return t.dofin()}}})]):t._e(),"asciidoc"==t.hybridshow?s("div",{staticClass:"row text-center"},[s("div",{staticClass:"col-12"},[s("iframe",{attrs:{id:"lloasciiview1",title:"title",width:"100%",height:"700",src:t.asciidocurl,frameborder:"0"}})])]):t._e(),"penguin"==t.hybridshow?s("div",{staticClass:"row text-center"},[s("div",{staticClass:"col-12"},[s("img",{attrs:{src:a("4cc0"),width:"400",height:"400"}})])]):t._e()]),s("hr"),"penguin"!=t.hybridshow?s("b-container",{staticClass:"bv-example-row",attrs:{fluid:""}},[s("div",{staticClass:"col-12"},[s("div",{staticClass:"input-group input-group-sm sm-3"},[s("select",{directives:[{name:"model",rawName:"v-model",value:t.completiontracking,expression:"completiontracking"}],staticClass:"custom-select custom-select-sm",on:{change:[function(e){var a=Array.prototype.filter.call(e.target.options,(function(t){return t.selected})).map((function(t){var e="_value"in t?t._value:t.value;return e}));t.completiontracking=e.target.multiple?a:a[0]},function(e){return t.oncompletiontracking()}]}},[s("option",{attrs:{value:"0",selected:""}},[t._v("Completion tracking")]),s("option",{attrs:{value:"1"}},[t._v("Completed")]),s("option",{attrs:{value:"2"}},[t._v("Almost")])]),s("select",{directives:[{name:"model",rawName:"v-model",value:t.courseread,expression:"courseread"}],staticClass:"custom-select custom-select-sm",on:{change:[function(e){var a=Array.prototype.filter.call(e.target.options,(function(t){return t.selected})).map((function(t){var e="_value"in t?t._value:t.value;return e}));t.courseread=e.target.multiple?a:a[0]},function(e){return t.oncompletiontracking()}]}},[s("option",{attrs:{value:"0",selected:""}},[t._v("Did you find this helpful?")]),s("option",{attrs:{value:"1"}},[t._v("No")]),s("option",{attrs:{value:"2"}},[t._v("Not really/A bit")]),s("option",{attrs:{value:"3"}},[t._v("Yes")])])])])]):t._e()],1)},ls=[],cs=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("iframe",{attrs:{id:"llo",title:t.title,width:t.width,height:t.height,src:t.source,allowfullscreen:"",frameborder:"0"}})},ds=[],us={props:{title:"",course:"",llo:""},data(){return{source:`http://localhost:3080/player/aplayer.html?llo=${this.llo}&item=${this.course}`,width:"600",height:"750"}},mounted(){}},ms=us,ps=Object(_["a"])(ms,cs,ds,!1,null,null,null),hs=ps.exports,bs=a("97a1"),vs=a.n(bs),fs={components:{aplayer:hs,card:k},props:{},data(){return{vtype:"",completiontracking:0,courseread:0,hybridshow:"penguin",llo:"",llocourse:"",llochapter:"",asciidocurl:"",asciidoccode:"",course:"",asciinemasource:"",coursevimeo:"",hybridcourse:"",token:""}},mounted(){this.$root.$on("hybrid_llo_viecourse",t=>{this.completiontracking=0,this.courseread=0,this.llocourse=t.llo,this.llochapter=t.course,"asciinema"==t.type?(this.hybridshow=t.type,this.llo=t.llo,this.course=t.course,this.asciinemasource=`http://localhost:3080/player/aplayer.html?llo=${this.llo}&item=${this.course}`,this.getcompletion()):"asciidoc"==t.type?(this.asciidoccode=t.code,this.vtype=t.type,this.addlloascii(),this.getcompletion()):"video"==t.type&&(this.$wait.start("myRunInstancetutor"),this.hybridshow=t.type,this.sourcevimeo="https://player.vimeo.com/video/"+t.course,this.getcompletion())})},created(){var t=window.location.href,e=new URL(t);this.token=e.searchParams.get("token")},beforeDestroy(){this.$root.$off("hybrid_llo_viecourse")},computed:{},methods:{async getcompletion(){var t={};t.token=this.token,t.course=this.llocourse,t.chapter=this.llochapter;var e=await v.dispatch("pipelineLLO/getcompletion",t);console.log("params "+JSON.stringify(e)),"ok"==e.data.action&&e.data.data&&(this.completiontracking=e.data.data.track,this.courseread=e.data.data.evaluation)},async oncompletiontracking(){var t={};t.token=this.token,t.action="track",t.track=this.completiontracking,t.evaluation=this.courseread,t.course=this.llocourse,t.chapter=this.llochapter;await v.dispatch("pipelineLLO/oncompletiontracking",t);this.$root.$emit("hybrid_progress_refresh")},dofin(){this.$wait.end("myRunInstancetutor")},async addlloascii(){var t=this.asciidoccode;try{var e=vs()(),a=e.convert(t,{standalone:!0,backend:"html5",header_footer:!1,doctype:"article",safe:"safe",attributes:{"source-highlighter":"highlightjs",sectnums:!0,icons:"font",copycss:!0,stylesheet:"http://cdnjs.cloudflare.com/ajax/libs/asciidoctor.js/1.5.9/css/asciidoctor.min.css","iconfont-cdn":"http://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.14.0/css/all.min.css","iconfont-name":"fontawesome-5-14.0","iconfont-remote":!0,linkcss:!0}}),s=await v.dispatch("pipelineLLO/save_llo_asciidoctmp",a);"nofile"==s.data?console.log("no write permission"):(this.asciidocurl=`http://localhost:3080/asciidoc/${s.data.data}.html?token=${this.token}`,this.hybridshow="no",this.hybridshow=this.vtype)}catch(i){return void console.log(" ascerror "+JSON.stringify(i))}}},actions:{}},ws=fs,gs=(a("4844"),Object(_["a"])(ws,rs,ls,!1,null,null,null)),ys=gs.exports,_s={components:{card:k,MylloSearch:ns,MylloView:ys},data(){return{loading:!1,consoleView:"off",productIndex:1}},mounted(){},beforeDestroy(){},created(){}},Cs=_s,ks=Object(_["a"])(Cs,Xa,ts,!1,null,null,null),xs=ks.exports,As=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("card",{staticClass:"card-user",staticStyle:{"max-height":"100%"}},[s("div",{staticClass:"row"},[s("div",{staticClass:"col-8 order-first "},[s("br"),s("calendar-view")],1),s("div",{staticClass:"col-4 order-last"},[s("br"),s("b-container",{directives:[{name:"show",rawName:"v-show",value:1==t.hybridshowlog,expression:"hybridshowlog==1"}],attrs:{fluid:""}},[s("div",{staticClass:"row text-center"},[s("div",{staticClass:"col-12"},[s("img",{staticClass:"border-white",attrs:{src:a("10cc"),alt:"..."}})])])])],1)])])},Os=[],Rs=function(){var t=this,e=t.$createElement;t._self._c;return t._m(0)},$s=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{attrs:{id:"appcalendar"}},[a("div",{staticClass:"calendar-parent overflow-auto"},[a("h1",[t._v("Welcome to Swarmlab!")]),a("h3",[t._v(" An open source work/study-from-home application. ")]),a("br"),a("h5",[t._v(" Swarmlab provides you with all the required tools, tools to teach work or try out demos in a completely virtual environment. ")]),a("br"),a("div",[a("p",[a("b",[t._v("Swarmlab is a collection of services that aims to:")]),a("ul",[a("li",[t._v(" provide "),a("b",[t._v("teachers and professors")]),t._v(" with online remote tools to do their lessons")]),a("li",[t._v(" give "),a("b",[t._v("students")]),t._v(" the opportunity to study real life examples in their chosen area of expertise ")]),a("li",[t._v(" allow "),a("b",[t._v("developers")]),t._v(" to fully test and debug their applications and provide POC’s")])])])]),a("br"),a("p",[t._v("Swarmlab, up and running since 2020, is already used for teaching purposes in a university and has proven itself as a powerful tool in the post covid remote-based situation.")]),a("br"),a("h3",[t._v("As of now the services provided by swarmlab are:")]),a("ul",[a("li",[a("b",[t._v("Labrooms")]),t._v("(virtual classrooms in the form of model applications to be tweaked at will)")]),a("ul",[a("li",[t._v(" linux → base linux system – designed for use as a base to further develop your app")]),a("li",[t._v(" MPI → Instances of Ubuntu Linux with MPICH — portable implementation of Message Passing Interface (MPI) standard. Designed for MPI program development and deployment.")]),a("li",[t._v(" Node.js")]),a("li",[t._v(" sec → a basic linux-based os with security tools – designed as a template for apps")])])]),a("ul",[a("li",[a("b",[t._v("Storage")]),t._v(" to automatically create a cluster of databases.")])]),a("ul",[a("li",[a("b",[t._v("Proof Of Concept")]),t._v(" (POC) options ")]),a("ul",[a("li",[t._v(" datacollector → using provided services a fully developed application may collect data from a swarm and use it for further analysis")])])]),a("li",[a("b",[t._v("Microservices")])]),a("ul",[a("li",[t._v(" Jupyter ")]),a("li",[t._v(" numpy")]),a("li",[t._v(" scipy")]),a("li",[t._v(" nodejs")]),a("li",[t._v(" nginx")]),a("li",[t._v(" haproxy")]),a("li",[t._v(" gns3")]),a("li",[t._v(" wireshark")]),a("li",[t._v(" snmpsim")]),a("li",[t._v(" xelatexthesis")]),a("li",[t._v(" ansible")]),a("li",[t._v(" etherpad")]),a("li",[t._v(" codeserver (vscode)")]),a("li",[t._v(" redisserver")]),a("li",[t._v(" mongoserver")]),a("li",[t._v(" mongoclient (GUI)")])]),a("h5",[a("i",[t._v("to be continued… ")])]),a("h5",[t._v(" And all the above using just the command line and a Browser of your system! ")])])])}],Ls=a("be6a");a("8bb7"),a("88ef");var Ss={components:{card:k,CalendarView:Ls["b"],CalendarViewHeader:Ls["c"]},mixins:[Ls["a"]],data(){return{showDate:this.thisMonth(1),message:"",startingDayOfWeek:1,disablePast:!1,disableFuture:!1,displayPeriodUom:"month",displayPeriodCount:1,displayWeekNumbers:!0,showTimes:!1,selectionStart:null,selectionEnd:null,newItemTitle:"",newItemStartDate:"",newItemEndDate:"",useDefaultTheme:!0,useHolidayTheme:!1,useTodayIcons:!0,timeFormatOptions:{hour:"numeric",minute:"numeric",hour12:!1,timeZone:"Europe/Athens"},begindate:"",enddate:"",items:[]}},computed:{getevents4month(){},userLocale(){return this.getDefaultBrowserLocale},dayNames(){return this.getFormattedWeekdayNames(this.userLocale,"long",0)},themeClasses(){return{"theme-default":this.useDefaultTheme,"holiday-us-traditional":this.useHolidayTheme,"holiday-us-official":this.useHolidayTheme}}},mounted(){this.newItemStartDate=this.isoYearMonthDay(this.today()),this.newItemEndDate=this.isoYearMonthDay(this.today());const t=new Date;let e=t.getFullYear(),a=(t.getMonth()+1).toString().padStart(2,"0"),s="01";this.begindate=`${e}-${a}-${s}`,this.enddate=`${e}-${a}-31`,this.getevents()},methods:{async getevents(){var t={};t.begin=this.begindate,t.end=this.enddate;var e=await v.dispatch("pipelineLLO/getevents",t);this.items=e.data.result},periodChanged(t){let e=t.periodStart,a=e.getFullYear(),s=(e.getMonth()+1).toString().padStart(2,"0"),i=e.getDate().toString().padStart(2,"0");this.begindate=`${a}-${s}-${i}`;let o=t.periodEnd,n=o.getFullYear(),r=(o.getMonth()+1).toString().padStart(2,"0"),l=o.getDate().toString().padStart(2,"0");this.enddate=`${n}-${r}-${l}`,this.getevents()},thisMonth(t,e,a){const s=new Date;return new Date(s.getFullYear(),s.getMonth(),t,e||0,a||0)},onClickDay(t){this.selectionStart=null,this.selectionEnd=null,this.message="You clicked: "+t.toLocaleDateString()},onClickItem(t){this.message="You clicked: "+t.title,this.$root.$emit("hybrid_labobject_view",t)},setShowDate(t){this.message="Changing calendar view to "+t.toLocaleDateString(),this.showDate=t},setSelection(t){this.selectionEnd=t[1],this.selectionStart=t[0]},finishSelection(t){this.setSelection(t),this.message=`You selected: ${this.selectionStart.toLocaleDateString()} -${this.selectionEnd.toLocaleDateString()}`},onDrop(t,e){this.message=`You dropped ${t.id} on ${e.toLocaleDateString()}`;const a=this.dayDiff(t.startDate,e);t.originalItem.startDate=this.addDays(t.startDate,a),t.originalItem.endDate=this.addDays(t.endDate,a)},clickTestAddItem(){this.items.push({startDate:this.newItemStartDate,endDate:this.newItemEndDate,title:this.newItemTitle,id:"e"+Math.random().toString(36).substr(2,10)}),this.message="You added a calendar item!"}}},Is=Ss,Bs=(a("c5ed"),Object(_["a"])(Is,Rs,$s,!1,null,null,null)),Ns=Bs.exports,Es={components:{card:k,CalendarView:Ns},data(){return{hybridshowlog:1,loading:!1,consoleView:"off",productIndex:1}},mounted(){this.$root.$on("hybrid_labobject_view",t=>{this.hybridshowlog=2})},beforeDestroy(){},created(){}},Ps=Es,Ds=Object(_["a"])(Ps,As,Os,!1,null,null,null),Ts=Ds.exports,Vs=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("card",{staticClass:"card-user",staticStyle:{"max-height":"100%"}},[a("div",{staticClass:"row"},[a("div",{staticClass:"col-12 order-first "},[a("br"),a("dashboard-view")],1)])])},Fs=[],Gs=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("b-container",{staticClass:"bv-example-row",attrs:{fluid:""}},[s("div",{staticClass:"row h-50"},[s("div",{staticClass:"col-sm-6 text-center"},[s("v-wait",{attrs:{for:"stats_stats_imagescontainers"}},[s("template",{slot:"waiting"},[s("div",[s("img",{attrs:{src:a("cf1c"),width:"50",height:"50"}}),t._v(" Build Stats... ")])])],2),s("div",{staticClass:"card h-50 shadow p-3 mb-5 bg-white rounded"},[s("v-chart",{key:t.stats_stats_imagescontainers,staticClass:"chart",staticStyle:{"min-width":"100%"},attrs:{option:t.optionsystem}})],1)],1),s("div",{staticClass:"col-sm-6 text-center"},[s("v-wait",{attrs:{for:"wait_stats_stats_container"}},[s("template",{slot:"waiting"},[s("div",[s("img",{attrs:{src:a("cf1c"),width:"50",height:"50"}}),t._v(" Build Stats... ")])])],2),s("div",{staticClass:"card h-50 shadow p-3 mb-5 bg-white rounded"},[s("v-chart",{key:t.stats_stats_container,staticClass:"chart",staticStyle:{"min-width":"100%"},attrs:{option:t.optiondocker}})],1)],1)])])},zs=[],Ms=a("22b4"),js=a("f95e"),Us=a("49bb"),Ys=a("4cb5"),qs=a("9394"),Hs=a("2da7"),Ks=a("ff32"),Ws=a("4b2a"),Qs=a("5c7f");Object(Ms["a"])([js["a"],Us["a"],qs["a"],Hs["a"],Ks["a"],Ws["a"],Ys["a"]]);var Js={components:{card:k,VChart:Qs["b"]},provide:{[Qs["a"]]:"white"},data(){return{stats_stats_imagescontainers:0,stats_stats_container:0,stats_stats_volume:0,width:document.documentElement.clientWidth,height:document.documentElement.clientHeight,optiondocker:{height:"100%",width:"100%",responsive:!0,maintainAspectRatio:!1,title:{text:"Containers Memory",left:"center"},tooltip:{trigger:"item",formatter:"{a} {b} : {c} ({d}%)"},series:[{name:"Container Memory",type:"pie",radius:"55%",center:["50%","60%"],data:[],emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}}}]},optionsystem:{title:{text:"Images/Containers"},tooltip:{trigger:"axis",axisPointer:{type:"shadow"}},legend:{},grid:{left:"3%",right:"4%",bottom:"3%",containLabel:!0},xAxis:{type:"value",boundaryGap:[0,.01]},yAxis:{type:"category",data:["Containers","Images"]},series:[{name:"TOTAL",type:"bar",emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}}},{name:"ACTIVE",type:"bar",emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}}}]}}},mounted(){window.addEventListener("resize",this.getDimensions)},created(){var t=window.location.href,e=new URL(t);this.token=e.searchParams.get("token"),(async()=>{this.$wait.start("stats_stats_imagescontainers"),this.$wait.start("wait_stats_stats_container"),this.$wait.start("wait_stats_stats_volume");for(var t=await v.dispatch("pipelineLLO/get_stats_imagescontainers",{token:this.token,action:"images_containers"}),e=t.data.data.length,a=t.data.data,s=0;s{this.hybridshowlog=2})},beforeDestroy(){},created(){}},ai=ei,si=Object(_["a"])(ai,Vs,Fs,!1,null,null,null),ii=si.exports,oi={name:"app",components:{card:k,NetworkTable:Ft,ViewDashboard:Ts,ViewDashboardall:ii,ServicesTable:Jt,ConnectServer:X,ManageServices:ce,ManageStorage:_e,ManageMicroservices:Fe,ManageMymicroservices:Ye,ManageProofofconcept:sa,ManageBuilders:Ra,ManageDeploy:Za,ManageLlo:xs},data(){return{warning:!0,componentKeyreload:1,componentKeyreload1:1,componentKeyreload2:1,componentKeyreload3:1,mycomponentKeyreload3:1,componentKeyreload4:1,componentKeybuilders:1,setStatusAgent:"",issocket:!1,isconnect:!1,activeItem:"",activeItemSub:"",sidemenou:"max",hybridmenou:"dashboard",show:!0,token:"",SwarmabAsciiLabTemplate:""}},mounted(){this.$root.$on("hybrid_server_status",t=>{this.serverstatus()})},beforeDestroy(){this.$root.$off("hybrid_server_status")},created(){},methods:{setWarning(){this.warning=!1},async onAction(t){if("check"==t){if(this.$socket.disconnected)var e="close";else if(this.$socket.connected)e="open";if(this.isconnect);else;var a="Status ";a+="Agent is "+e+" ",this.$swal({type:"info",html:a,showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,showCancelButton:!0,showLoaderOnConfirm:!1,focusCancel:!0,confirmButtonText:"Yes, Reconnect!"}).then(t=>{this.reconnenting(t)})}},async reconnenting(t){t.value&&(this.componentKeyreload+=1,this.componentKeyreload1+=1,this.componentKeyreload2+=1,this.componentKeyreload3+=1,this.mycomponentKeyreload3+=1,this.componentKeyreload4+=1,this.componentKeybuilders+=1)},async serverstatus(t){var e=v.getters["pipelineLLO/getstatus"];"active"==e.data.swarmlab&&"Online"==e.data.hybrid?this.isconnect=!0:this.isconnect=!1},onActionMenu(t){"max"==t?this.sidemenou="max":"min"==t&&(this.sidemenou="min")},hybrid(t){this.hybridmenou=t,"bootstrap"==t?(this.$root.$emit("hybrid_console_not_view",!0),this.$root.$emit("hybrid_refresh_dockerservices")):"dashboard"==t?(this.$root.$emit("hybrid_console_not_view",!0),console.log("dashboard "+t)):"dashboardall"==t?(this.$root.$emit("hybrid_console_not_view",!0),console.log("dashboardall "+t)):"connect-server"==t?(this.$root.$emit("hybrid_console_not_view",!0),this.$root.$emit("hybrid_connect_server")):"llo"==t?(this.$root.$emit("hybrid_console_not_view",!0),console.log("llo "+t)):"services"==t?(this.$root.$emit("hybrid_console_not_view",!0),this.$root.$emit("hybrid_refresh_availableservices")):"manage_service"==t||"storage"==t?this.$root.$emit("hybrid_console_not_view",!0):"microservice"==t?this.$root.$emit("hybrid_console_not_view",!1):"proofofconcept"==t&&this.$root.$emit("hybrid_console_not_view",!0)},isActive:function(t){return this.activeItem===t},isActiveSub:function(t){return this.activeItemSub===t},setActive:function(t,e){this.activeItem=t,this.activeItemSub=e},showdiscl(){var t='Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:';t+=" ",t+=" ",t+="1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.",t+=" ",t+=" ",t+="2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.",t+=" ",t+=" ",t+="3. Neither the name of Swarmlab.io nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.",t+=" ",t+=" ",t+="THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.";let e='
'+t+"
";this.$swal({type:"Info",title:"Legal Disclaimer and Notices",icon:"info",html:e,showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,cancelButtonText:"No, cancel!",showCancelButton:!1,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!0,confirmButtonText:"Ok!"})}},computed:{socketStatus(){return v.getters["pipelineLLO/getsocketStatus"]}},watch:{socketStatus(t){this.issocket=t}}},ni=oi,ri=(a("034f"),Object(_["a"])(ni,i,o,!1,null,null,null)),li=ri.exports,ci=a("5886"),di=(a("4413"),a("f2d6")),ui=a.n(di),mi=(a("c059"),a("f87c")),pi=a("8e27");s["default"].use(ci["a"]),s["default"].use(ui.a);var hi=d.url_80;const bi=Object(pi["io"])(hi,{autoConnect:!1,reconnection:!0,reconnectionDelay:5e3,reconnectionDelayMax:5e3,maxReconnectionAttempts:1/0,pingInterval:25e3,pingTimeout:9e4,timeout:7e4,transports:["websocket","polling"],secure:!0,rejectUnauthorized:!1});s["default"].use(mi["a"],bi),s["default"].use(r["b"]);s["default"].component("ValidationProvider",B["a"]),s["default"].config.productionTip=!1,new s["default"]({el:"#app",store:v,wait:new ui.a,render:t=>t(li)})},"5dec":function(t,e,a){},6413:function(t,e,a){},"6d9e":function(t,e,a){},7296:function(t,e,a){"use strict";a("0d35")},"72c9":function(t,e,a){},7649:function(t,e,a){t.exports=a.p+"img/penguinfledgling.7cf62d54.png"},"778e":function(t,e,a){},"798c":function(t,e,a){},"83ff":function(t,e,a){"use strict";a("d766")},"85ec":function(t,e,a){},9168:function(t,e,a){},"9e07":function(t,e,a){},"9f0c":function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAySSURBVHhe7Z0/bBtHHoXdubzyypQpU6Z0mdJIZMNdXAYIQqk5wBYNnDuXKl2qdKk/h8BNrBUQi7rO1wlXHFy6dOk2N7/lW/mJeo+7I5Ia0p4P+BAEeTP7OEMuuasAe6dSqVQqlUqlUqlUKpVKpVKpVCqVSqVSqVQqlUpl1Ryenv7t8M3k/uHJ5Hl43Jy/OGomjXE/Mkcnb58cnr691zTNXUyzUuJYh2/e7kz7TV6KXp173es4ejN59Pvp6d8xRaUjFiUWJxbr6GTyLv3zr4U8OXt/1JwdtBt0+u9vcJgbM31Dnj1Oc+8vqd9F+ud+zLmMfhtJLOrRm7NfsBh6oZblyeQ8jpXz6fu86WcHcs5lGm/YdAb7Ks4O/zqdfNueMk8mH+VirN7XcfpGnWvEJzJl9mfG3JrHzdmr4z/+/AF1vhziO739JIoXXciG3wiHp2ff3cqnfahxZkxnLdTbXPCJen3tBa6P6YfaGm38rOk3x/Hp2++xnJtD/Bqf/jqffJIvrJrrXvwuwfKuN/Eddis/7r42TyYf4moJy7wePNp58s2D0dOdB9u7+w+2x00oy+caLzZ+sNE1vhTX4u1pvL38E3OtwoL9unXeGo1f/bS9++Thzvg7bMftMd308UUyCl1Rle41fVXEL+BFb5Z0N5HSnHHNvrwrjTXqp9b8wWj8fmu0+/z+zvPVfk389Nvu/TiYLAFVaW/6ZKRFXdUdvMvFlsce4vr1U2veubU9/pBc/tXDzz//8+6D0e5LddBZVenrnh3EpRemXzn51/fr20+tufBgaWeDmCh9x5+Lg0hVaTZuBmHqWwcLLXt1rns/tebGi/iNhqlvRvvJz9j8UJVmMXUxVCcWsWKoTqxac2v6ul7oTIBf93pyoyrNYupiqE4sYsVQnVi15j02mDqPtPmPxGS9qtIspi+G6sQiVgzViVVr3mu6asP0w4hTf/yilJPNOtr92J4p0kG2dp7dU6VZHMLyn//+769FxDQW1YlFzKKOmSOmsahObKxxd+9l6B5tbe9+evjrP4ZfvuI6X042YzM7sSrNImZRi5YjprGoTixiFnXMHDGNRXViEWvBD/RBX9Nb28/2MKyfvmv91tH4BeJXUKVZxCxq0XLENBbViUXMoo6ZI6axqE4sYldo78+oPSLjLBBndgzxpMm+VRPMaH9YqNIsYha1aDliGovqxCJmUcfMEdNYVCcWsWsMuk8zetr//xrELUU5uDN958/7PlGlWcQsatFyxDQW1YlFzKKOmSOmsahOLGLXmN6s6ztz7+4j7knBg+sDP9v3XaJKs4hZ1KLliGksqhOLmEUdM0dMY1GdWMQk8cchtWed6cP9DlFPepfMvfHz8LfxY0QlqjSLmEUtWo6YxqI6sYhZ1DFzxDQW1YlFTBKneLVnnXHVgKin7zTS9+dHVZpFzKIWLUdMY1GdWMQs6pg5YhqL6sQiJpleFeh960TUowaxiFlUaRaxYqhOLGLFUJ1YxCxqz1jEPGoQi5hFlWYRK4bqxCJWDNWJRcyi9oxFzKMGsYhZVGkWsWKoTixixVCdWMQsas9YxDxqEIuYRZVmESuG6sQiVgzViUXMovaMRcyjBrGIWVRpFrFiqE4sYsVQnVjELGrPWMQ8ahCLmEWVZhErhurEIlYM1YlFzKL2jEXMowaxiFlUaRaxYqhOLGLFUJ1YxCxqz1jEPGoQi5hFlWYRK4bqxCJWDNWJRcyi9oxFzKMGsYhZVGkWMYu6eZIjprGoTixiFnXMHDGNRXViEbOoPWMR86hBLGIWVZpFzKIWLUdMY1GdWMQs6pg5YhqL6sQiZlF7xiLmUYNYxCyqNIuYRS1ajpjGojqxiFnUMXPENBbViUXMovaMRcyjBrGIWVRpFjGLWrQcMY1FdWIRs6hj5ohpLKoTi5hF7RmLmEcNYhGzqNIsYha1aDliGovqxCJmUcfMEdNYVCcWMYvaMxYxjxrEImZRpVnELGrRcsQ0FtWJRcyijpkjprGoTixiFrVnLGIeNYhFzKJKs4hZ1KLliGksqhOLmEUdM0dMY1GdWMQsas9YxDxqEIuYRZVmEbOoRcsR01hUJxYxizpmjpjGojqxiFnUnrGIedQgFjGLKs0iVgzViUWsGKoTi5hF7RmLmEcNYhGzqNIsYsVQnVjEiqE6sYhZ1J6xiHnUIBYxiyrNIlYM1YlFrBiqE4uYRe0Zi5hHDWIRs6jSLGLFUJ1YxIqhOrGIWdSesYh51CAWMYsqzSJWDNWJRawYqhOLmEXtGYuYRw1iEbOo0ixixVCdWMSKoTqxiFnUnrGIedQgFjGLKs0iVgzViUWsGKoTi5hF7RmLmEcNYhGzqNIsYsVQnVjEiqE6sYhZ1J6xiHnUIBYxiyrNImZRN09yxDQW1YlFzKKOmSOmsahOLGIWtWcsYh41iEXMokqziFnUouWIaSyqE4uYRR0zR0xjUZ1YxCxqz1jEPGoQi5hFlWYRs6hFyxHTWFQnFjGLOmaOmMaiOrGIWdSesYh51CAWMYsqzSJmUYuWI6axqE4sYhZ1zBwxjUV1YhGzqD1jEfOoQSxiFlWaRcyiFi1HTGNRnVjELOqYOWIai+rEImZRe8Yi5lGDWMQsqjSLmEUtWo6YxqI6sYhZ1DFzxDQW1YlFzKL2jEXMowaxiFlUaRYxi1q0HDGNRXViEbOoY+aIaSyqE4uYRe0Zi5hHDWIRs6jSLGIWtWg5YhqL6sQiZlHHzBHTWFQnFjGL2jMWMY8axCJmUaVZxIqhOrGIFUN1YhGzqD1jEfOoQSxiFlWaRawYqhOLWDFUJxYxi9ozFjGPGsQiZlGlWcSKoTqxiBVDdWIRs6g9YxHzqEEsYhZVmkWsGKoTi1gxVCcWMYvaMxYxjxrEImZRpVnEiqE6sYgVQ3ViEbOoPWMR86hBLGIWVZpFrBiqE4tYMVQnFjGL2jMWMY8axCJmUaVZxIqhOrGIFUN1YhGzqD1jEfOoQSxiFlWaRawYqhOLWDFUJxYxi9ozFjGPGsQiZlGlWcTmEs/t6Z69F8/QjWfvhe2j2+KBTvj36SPiu+f0DXvIk+rEIjaXde6n9oxFzKMGsYhZVGkWsUviQUmfn8+/hIcrts/jS5uQFl89AEqOIRG7ZN37zaL2jEXMowaxiFlUaXbpC9rnyeTD9KGPZ7/EgssMue79sMwWtWcsYh41iEXMokpXlyeW2aL2jEXMowaxiFlU6eryxDJb1J6xiHnUIBYxiypdXZ5YZovaMxYxjxrEImZRpavLE8tsUXvGIuZRg1jELKp0dXlimS1qz1jEPH3Pout7Hq0qfWNPzi74uvr4jz9/aK+pu+vsZMrtJZv0a/rTlbGrt0nucZfo13bs/j1+3Z9M3s2MW0gss2T6qF+9b52IeuK5MmpgZzyiDFHJQpdO08Xai8eqx7P2MeVg4hKu3YTm/MVSF376mvbiUfLq2n0I8cZFr/Nr8w81vckxneTH0fh7tWeXjnY/IupJZ4DXcnCneV5gx/RumCivTAt73ExexsL+fno6/MmWA4k3RFxfp2PFp1V3cKY3UHyKb7rh82ia5m68ydNx9qZnOXF87dznAA944OcFop54KpgYyF7MewBhu+jzT8eNuwu2Stpe7YLHnTjZq3N/6G3bZUFv1NczXa4YZxEMkfR+eLfHB4h6+p481dpzFsAdLfrUxa3Ps8c3Oa0vm+gQb8D0Rvhw2W/6pthbxVkol+gXZ0T8fph+kNLXRny1ISKJp7nJvSL7nvjWMn0AYTwQWk/SGd83GLKxxGKvw6YvSvwwH7Jngx8gPeQxpPEs2nhQIYZUCtF+8gdsfrL/9N8R75TYYDGJcPc8SvQ9T7CyPGKtY80HfOdfmr0/vc8Q3lDx8ixqzOY74JnBs0xvKsx/jOwmipdnUWM22tH4fTxRFC8vj/hx0XdncNPES7OoMZtqfI0v/NUcEwz8kbER4mVZ1JhNtP0Nly7p8bIWoz0T9Nwi3hTn/S1jyL30jTCd9pf+ozwWZ8Bdwg1w9xFe0jW2dp7d02M2x63R+NWNv/OH0N50SNeUswfeGNOnw93KTv+9uZbfHJtbvTkX9wpw+/EgFnWmzLp7EZ92vJT2r2g519TrYPw4bzuPnu7M+1r76ojT36quXJb+vVpZDQP+LJptfLdi+sq6M/3BuryzQHs9PfQPKZX1IP7PpeF/z5hv/aPXhhI3QhZ9E8TfRDBdZRNZ5E1QP/lfCNM/b2fdxDqov/i/QKZ/3GrfCM2VH4nTv3U08T/C1I2vVCqVSqVSqVQqlUqlUqlUKpVKpVKpVCqVSqWy2dy583/z2anbdD5tZgAAAABJRU5ErkJggg=="},a2af:function(t,e,a){t.exports=a.p+"img/warning.31d7a72d.png"},a6d9:function(t,e,a){},aa1b:function(t,e,a){"use strict";a("798c")},b68d:function(t,e,a){},b721:function(t,e,a){},b73e:function(t,e,a){t.exports=a.p+"img/academy.90116857.png"},b876:function(t,e,a){"use strict";a("c41e")},c000:function(t,e,a){},c059:function(t,e,a){},c385:function(t,e,a){},c40c:function(t,e,a){},c41e:function(t,e,a){},c5ed:function(t,e,a){"use strict";a("08ea")},c972:function(t,e,a){},cc7b:function(t,e,a){"use strict";a("4c32")},cd6e:function(t,e,a){"use strict";a("a6d9")},cf1c:function(t,e,a){t.exports=a.p+"img/loading.f4404720.gif"},d013:function(t,e,a){"use strict";a("0a08")},d766:function(t,e,a){},d929:function(t,e,a){},e454:function(t,e,a){},e8d2:function(t,e,a){"use strict";a("9e07")},ea90:function(t,e,a){"use strict";a("72c9")},ec01:function(t,e,a){},f101:function(t,e,a){"use strict";a("d929")},f1fa:function(t,e,a){"use strict";a("c40c")},f467:function(t,e,a){t.exports=a.p+"img/hybrid-1.852eef88.png"},f830:function(t,e,a){"use strict";a("6413")}});
-//# sourceMappingURL=app.b80507d3.js.map
\ No newline at end of file
+(function(t){function e(e){for(var s,n,r=e[0],l=e[1],c=e[2],u=0,m=[];uName',sortField:"name",titleClass:"text-center aligned",visible:!0,dataClass:"center aligned",width:"20%"},{name:"nodeid",title:'nodeid',titleClass:"text-center aligned",sortField:"nodeid",visible:!0,width:"20%"},{name:"ip",title:'IP',titleClass:"text-center aligned",sortField:"swarmlabname",visible:!0,width:"13%"},{name:"role",title:'Role',titleClass:"text-center aligned",sortField:"role",visible:!0,width:"15%",formatter(t){const e=/^ondemand_playground/.test(t);if(e){var a='
";this.$swal({type:t,html:s+a,showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,cancelButtonText:"No, cancel!",showCancelButton:!1,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!0,confirmButtonText:"Ok!"})},setFilter(){this.moreParams={filter:this.searchFor,type:this.selected},s["default"].nextTick(()=>this.$refs.vuetable.refresh())},resetFilter(){this.moreParams={},this.searchFor="",s["default"].nextTick(()=>this.$refs.vuetable.refresh())},onPaginationData(t){this.$refs.pagination.setPaginationData(t),this.$refs.paginationInfo.setPaginationData(t)},onChangePage(t){this.$refs.vuetable.changePage(t)},editRow(t){alert("You clicked edit on"+JSON.stringify(t))},async onAction(t,e,a){await v.dispatch("pipelineLLO/swarmlabhybridjoin",{token:this.token,action:"join"});if("edit"==t)this.nodeadmin=!0,this.nodeadminupdate=!0,this.nodeid=e.nodeid,this.nodeip=e.ip,this.nodename=e.name,this.noderole=e.role,this.nodezones=e.zones,this.nodedesc=e.description;else if("update"==t){if(await this.$refs.provider.validate().then(t=>{t.valid?this.valid=!0:this.valid=!1}),this.valid){await v.dispatch("pipelineLLO/swarmlabhybridadd",{token:this.token,action:"add",nodeid:this.nodeid,nodeip:this.nodeip,nodename:this.nodename,noderole:this.noderole,nodezones:this.nodezones,nodedesc:this.nodedesc});s["default"].nextTick(()=>this.$refs.vuetable.refresh())}}else if("rm"==t)this.rowdata=e,this.$swal({type:"info",html:"info",showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,cancelButtonText:"No, cancel!",showCancelButton:!0,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!0,confirmButtonText:"Yes, Delete it!"}).then(t=>{this.rmAndClose(t)});else if("add"==t)this.nodeadmin=!0,this.nodeadminupdate=!1;else if("addserver"==t){if(await this.$refs.provider.validate().then(t=>{t.valid?this.valid=!0:this.valid=!1}),this.valid){this.nodeadmin=!1,this.nodeadminupdate=!1;await v.dispatch("pipelineLLO/swarmlabhybridadd",{token:this.token,action:"add",nodeid:this.nodeid,nodeip:this.nodeip,nodename:this.nodename,noderole:this.noderole,nodezones:this.nodezones,nodedesc:this.nodedesc});s["default"].nextTick(()=>this.$refs.vuetable.refresh())}}else"cancel"==t&&(this.nodeadmin=!1,this.nodeadminupdate=!1)},async rmAndClose(t){await v.dispatch("pipelineLLO/getswarmlabhybridinfo",{token:this.token,nodezones:this.rowdata.zones});if(t.value){await v.dispatch("pipelineLLO/swarmlabhybridrm",{token:this.token,action:"rm",nodeid:this.rowdata.nodeid,nodeip:this.rowdata.ip,nodename:this.rowdata.name,noderole:this.rowdata.role,nodezones:this.rowdata.zones,nodedesc:this.rowdata.description});s["default"].nextTick(()=>this.$refs.vuetable.refresh())}},async addAndClose(t){},refreshVuetable(){this.$nextTick(()=>{this.vuetablekeyc+=1})},playbookinfoShow(t){return this.visibility[t]=!0},playbookinfo(t){return this.playbookInfo=t},rowClicked(t,e){return{html:!0,title:()=>"Hello Popover: "+ ++this.counter,content:()=>"The date is: "+new Date+""}},loadsuccess(t){var e=t.data.data;if(this.fielddata=e,e.length){e.length;1}},onLoadError(t){"401"==t.response.status&&(window.location.href="https://api-login.swarmlab.io:8089",s["default"].nextTick(()=>window.location.href="https://api-login.swarmlab.io:8089"))}},actions:{}},P=E,D=(a("55b7"),Object(_["a"])(P,O,R,!1,null,null,null)),T=D.exports,V=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("card",{staticClass:"card-header",staticStyle:{"max-height":"100%"},attrs:{title:"Hybrid API Request"}},[a("b-row",[a("b-col",{attrs:{cols:"12"}},[a("table",{staticClass:"table table-bordered"},[a("tbody",[a("tr",[a("th",{staticClass:"text-center",attrs:{scope:"row"}},[t._v(" Project ")]),a("td",[a("div",{staticClass:"input-group input-group-sm sm-3"},[a("input",{directives:[{name:"model",rawName:"v-model",value:t.swarmlabhybridapi.project,expression:"swarmlabhybridapi.project"}],staticClass:"form-control",attrs:{type:"text","aria-label":"Small","aria-describedby":"inputGroup-sizing-sm",placeholder:"Project Name (Alphanumeric characters, dashes and underscores, NOT spaces)"},domProps:{value:t.swarmlabhybridapi.project},on:{input:function(e){e.target.composing||t.$set(t.swarmlabhybridapi,"project",e.target.value)}}}),a("div",{staticClass:"input-group-append"},[a("button",{staticClass:"ti-info btn btn-outline-primary",attrs:{round:"",type:"button"},on:{click:function(e){return t.showinfo("Project")}}})])])])]),a("tr",[a("th",{staticClass:"text-center",attrs:{scope:"row"}},[t._v(" Category ")]),a("td",[a("input",{directives:[{name:"model",rawName:"v-model",value:t.swarmlabhybridapi.faculty,expression:"swarmlabhybridapi.faculty"}],staticClass:"form-control",attrs:{type:"text","aria-label":"Small","aria-describedby":"inputGroup-sizing-sm",placeholder:"Project Category"},domProps:{value:t.swarmlabhybridapi.faculty},on:{input:function(e){e.target.composing||t.$set(t.swarmlabhybridapi,"faculty",e.target.value)}}})])]),a("tr",[a("th",{staticClass:"text-center",attrs:{scope:"row"}},[t._v(" Description ")]),a("td",[a("input",{directives:[{name:"model",rawName:"v-model",value:t.swarmlabhybridapi.desc,expression:"swarmlabhybridapi.desc"}],staticClass:"form-control",attrs:{type:"text","aria-label":"Small","aria-describedby":"inputGroup-sizing-sm",placeholder:"What is the purpose of the project?"},domProps:{value:t.swarmlabhybridapi.desc},on:{input:function(e){e.target.composing||t.$set(t.swarmlabhybridapi,"desc",e.target.value)}}})])])])])])],1),a("b-row",[a("b-col",{attrs:{cols:"12"}},[a("div",{staticClass:"input-group-append"},[a("button",{staticClass:"btn btn-outline-success",attrs:{round:"",type:"button"},on:{click:t.getApi}},[t._v(" Request hybrid API ")])])])],1)],1)},F=[],G={components:{},props:{},data(){return{swarmlabhybridapi:{labservices:"services"}}},mounted(){},beforeDestroy(){},computed:{},methods:{showinfo(t){if("Project"==t){var e='We use that "Name" to retrieve the corresponding key values The name assigned here will be needed to connect you to Swarmlab Server. The ProjectName can only contain alphanumeric characters, dashes or underscores.';this.$swal({type:"info",html:e,showCloseButton:!1,showLoaderOnConfirm:!1,allowOutsideClick:!1,showCancelButton:!1,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!1,confirmButtonText:"Ok!"})}},async getApi(){console.log("getApi");var t=await v.dispatch("pipelineLLO/swarmlabhybridapi",{lab:this.swarmlabhybridapi});if("ok"==t.data.action){var e="
";this.$swal({type:"info",icon:"info",html:i+s,showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!0})}else if("register"==t){s="Before you begin\n \n Before you start using the Swarmlab Hybrid API, you need a hybrid enabled account and the Swarmlab API enabled. \n \n To learn more, see Get Started with Hybrid Platform. \n ",i="
Get API Key's
";this.$swal({type:"info",html:i+s,showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!0})}}},actions:{}},H=q,K=(a("cd6e"),Object(_["a"])(H,U,Y,!1,null,null,null)),W=K.exports,Q={components:{HybridLab:j,ZonesView:T,card:k,MyconnectServer:W},data(){return{loading:!1,ishybridlab:!1,consoleView:"off",productIndex:1}},mounted(){this.$root.$on("hybrid_lab_keyview",t=>{"open"==t?this.ishybridlab=!0:"close"==t&&(this.ishybridlab=!1)})},beforeDestroy(){this.$root.$off("hybrid_lab_keyview")},created(){}},J=Q,Z=Object(_["a"])(J,x,A,!1,null,null,null),X=Z.exports,tt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("card",{staticClass:"card-user",staticStyle:{"max-height":"100%"}},[a("div",{staticClass:"row"},[a("div",{staticClass:"col-7 order-first "},[a("br"),a("view-network"),a("docker-services")],1),a("div",{staticClass:"col-5 order-last"},[a("br"),t.viewconsole?a("adhoc-view"):t._e(),a("docker-images",{directives:[{name:"show",rawName:"v-show",value:t.viewimages,expression:"viewimages"}]}),a("docker-networks",{directives:[{name:"show",rawName:"v-show",value:t.viewnetworks,expression:"viewnetworks"}]})],1)])])},et=[],at=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("card",{staticClass:"card-user",staticStyle:{"max-height":"100%"}},[s("div",{staticClass:"author"},[s("img",{staticClass:"avatar border-white",attrs:{src:a("0ed5"),alt:"..."}})]),s("v-wait",{attrs:{for:"myRunInstanceeditor"}},[s("template",{slot:"waiting"},[s("div",[s("img",{attrs:{src:a("cf1c")}}),t._v(" Enter Editor... ")])])],2),s("b-container",{staticClass:"bv-example-row",attrs:{fluid:""}},[s("div",{staticClass:"row text-center"},[s("div",{staticClass:"col-12"},[s("b",[s("span",{staticClass:"text-muted"},[t._v("View and Manage your")]),t._v(" "),s("span",{staticClass:"text-info"},[t._v("Running Instances")])])])]),s("br"),s("div",{staticClass:"row"},[s("div",{staticClass:"col-5"},[s("div",{staticClass:"input-group input-group-sm sm-3"},[s("div",{staticClass:"input-group-prepend"},[t.$socket.disconnected?s("button",{staticClass:"ti-unlink btn btn-outline-danger",attrs:{round:"",type:"button",title:"You are disconnected from Swarmlab-hybrid",disabled:""}}):s("button",{staticClass:"ti-link btn btn-outline-success",attrs:{round:"",type:"button",title:"You are connected swarmlab-hybrid"},on:{click:function(e){return t.onAction("shareinfo")}}})]),s("div",{staticClass:"input-group-prepend"},[t.webinterface?s("button",{staticClass:"btn btn-outline-success",attrs:{round:"",type:"button"},on:{click:function(e){return t.onAction("startweb")}}},[t._v(" Web")]):t._e(),t.webinterfacegeneric&&t.hybridshowdata.Names?s("button",{staticClass:"btn btn-info",attrs:{round:"",type:"button"},on:{click:function(e){return t.onAction("startwebgeneric")}}},[t._v(" "+t._s(t.webinterfacegeneric_text))]):t._e()]),s("div",{staticClass:"input-group-prepend"},[t.hybridshowdata.Names?s("button",{staticClass:"btn btn-outline-success",attrs:{round:"",type:"button"},on:{click:function(e){return t.onAction("container-connect")}}},[t._v(" Connect")]):s("button",{staticClass:"btn btn-outline-secondary",attrs:{round:"",type:"button",disabled:""}},[t._v(" Connect")]),t.webinterfacegenericedit&&t.hybridshowdata.Names?s("button",{staticClass:"btn btn-outline-info",attrs:{round:"",type:"button"},on:{click:function(e){return t.onAction("basedireditor")}}},[t._v(" Editor")]):t._e(),t.hybridshowdata.Names?s("button",{staticClass:"btn btn-outline-danger",attrs:{round:"",type:"button"},on:{click:function(e){return t.onAction("container-stop")}}},[t._v(" Stop")]):s("button",{staticClass:"btn btn-outline-secondary",attrs:{round:"",type:"button",disabled:""}},[t._v(" stop")]),t.actionrowindexconsole?s("button",{staticClass:"btn btn-warning",attrs:{round:"",type:"button"},on:{click:function(e){return t.onAction("container-logsclose")}}},[t._v(" Close Console")]):t._e()])])]),t._v(" "),s("div",{staticClass:"col-1"},[s("div",{staticClass:"input-group input-group-sm sm-3"},[s("div",{staticClass:"input-group-prepend float-center"})])]),t._v(" "),s("div",{staticClass:"col-1"}),t._v(" "),s("div",{staticClass:"col-5"},[s("div",{staticClass:"input-group input-group-sm sm-3"},[s("div",{staticClass:"input-group-prepend float-right"},[t.actionrowindex&&t.hybridshowdata.Names?s("button",{staticClass:"ti-more-alt btn btn-secondary btn-sm",attrs:{title:"More Options...",round:""},on:{click:function(e){return t.runmore("off")}}}):t._e(),t.actionrowindexselect&&t.hybridshowdata.Names?s("button",{staticClass:"ti-more btn btn-outline-info btn-sm",attrs:{round:"",title:"More Options..."},on:{click:function(e){return t.runmore("on")}}}):t._e(),t.actionrowindex&&t.hybridshowdata.Names?s("button",{staticClass:"btn btn-outline-info",attrs:{round:"",type:"button"},on:{click:function(e){return t.onAction("basedir")}}},[t._v(" Persistent Data")]):t._e()]),s("div",{staticClass:"input-group-prepend float-right"},[t.actionrowindex&&t.hybridshowdata.Names?s("button",{staticClass:"btn btn-outline-warning",attrs:{round:"",type:"button"},on:{click:function(e){return t.onAction("basebackup")}}},[t._v(" Backup")]):t._e()]),s("div",{staticClass:"input-group-prepend float-right"},[t.actionrowindex&&t.hybridshowdata.Names?s("button",{staticClass:"btn btn-outline-success",attrs:{round:"",type:"button"},on:{click:function(e){return t.onAction("basebackupview")}}},[t._v(" BrowseBackups")]):t._e()]),s("div",{staticClass:"input-group-append"},[!t.actionrowindexconsole&&t.actionrowindex&&t.hybridshowdata.Names?s("button",{staticClass:"btn btn-outline-warning",attrs:{round:"",type:"button"},on:{click:function(e){return t.onAction("container-logs")}}},[t._v(" Logs")]):t._e(),t.actionrowindexconsole&&t.actionrowindex&&t.hybridshowdata.Names?s("button",{staticClass:"btn btn-warning",attrs:{round:"",type:"button"},on:{click:function(e){return t.onAction("container-logsclose")}}},[t._v(" Logs")]):t._e()])])])]),t._v(" "),t.webinterfacegeneric&&t.webinterfacegeneric_menou1&&t.hybridshowdata.Names?s("div",{staticClass:"row"},[s("div",{staticClass:"col-12"},[s("hr")])]):t._e(),t.webinterfacegeneric&&t.webinterfacegeneric_menou1&&t.hybridshowdata.Names?s("div",{staticClass:"row"},[s("div",{staticClass:"col-5"},[s("div",{staticClass:"input-group input-group-sm sm-3"},[s("div",{staticClass:"input-group-prepend"},[t.webinterfacegeneric&&t.webinterfacegeneric_menou1&&t.hybridshowdata.Names&&!t.webinterfacegeneric_menou1typelog?s("a",{staticClass:"btn btn-outline-secondary",attrs:{href:t.webinterfacegeneric_menou1_url,target:t.webinterfacegeneric_menou1_url_target1,role:"button"}},[t._v(" "+t._s(t.webinterfacegeneric_menou1_text)+" ")]):t._e(),t.webinterfacegeneric&&t.webinterfacegeneric_menou1&&t.hybridshowdata.Names&&t.webinterfacegeneric_menou1typelog&&!t.webinterfacegeneric_menou1typelog_active?s("button",{staticClass:"btn btn-outline-secondary",attrs:{round:"",type:"button"},on:{click:function(e){return t.guilogs(1)}}},[t._v(" "+t._s(t.webinterfacegeneric_menou1_text)+" ")]):t._e(),t.webinterfacegeneric&&t.webinterfacegeneric_menou1&&t.hybridshowdata.Names&&t.webinterfacegeneric_menou1typelog&&t.webinterfacegeneric_menou1typelog_active?s("button",{staticClass:"btn btn-outline-warning",attrs:{round:"",type:"button"},on:{click:function(e){return t.guilogsclose(1)}}},[t._v(" "+t._s(t.webinterfacegeneric_menou1_text)+" ")]):t._e()]),s("div",{staticClass:"input-group-prepend"},[t.webinterfacegeneric&&t.webinterfacegeneric_menou2&&t.hybridshowdata.Names&&!t.webinterfacegeneric_menou2typelog?s("a",{staticClass:"btn btn-outline-secondary",attrs:{href:t.webinterfacegeneric_menou2_url,target:t.webinterfacegeneric_menou1_url_target2,role:"button"}},[t._v(" "+t._s(t.webinterfacegeneric_menou2_text)+" ")]):t._e(),t.webinterfacegeneric&&t.webinterfacegeneric_menou2&&t.hybridshowdata.Names&&t.webinterfacegeneric_menou2typelog&&!t.webinterfacegeneric_menou2typelog_active?s("button",{staticClass:"btn btn-outline-secondary",attrs:{round:"",type:"button"},on:{click:function(e){return t.guilogs(2)}}},[t._v(" "+t._s(t.webinterfacegeneric_menou2_text)+" ")]):t._e(),t.webinterfacegeneric&&t.webinterfacegeneric_menou2&&t.hybridshowdata.Names&&t.webinterfacegeneric_menou2typelog&&t.webinterfacegeneric_menou2typelog_active?s("button",{staticClass:"btn btn-outline-warning",attrs:{round:"",type:"button"},on:{click:function(e){return t.guilogsclose(2)}}},[t._v(" "+t._s(t.webinterfacegeneric_menou2_text)+" ")]):t._e()]),s("div",{staticClass:"input-group-prepend"},[t.webinterfacegeneric&&t.webinterfacegeneric_menou3&&t.hybridshowdata.Names&&!t.webinterfacegeneric_menou3typelog?s("a",{staticClass:"btn btn-outline-secondary",attrs:{href:t.webinterfacegeneric_menou3_url,target:t.webinterfacegeneric_menou1_url_target3,role:"button"}},[t._v(" "+t._s(t.webinterfacegeneric_menou3_text)+" ")]):t._e(),t.webinterfacegeneric&&t.webinterfacegeneric_menou3&&t.hybridshowdata.Names&&t.webinterfacegeneric_menou3typelog&&!t.webinterfacegeneric_menou3typelog_active?s("button",{staticClass:"btn btn-outline-secondary",attrs:{round:"",type:"button"},on:{click:function(e){return t.guilogs(3)}}},[t._v(" "+t._s(t.webinterfacegeneric_menou3_text)+" ")]):t._e(),t.webinterfacegeneric&&t.webinterfacegeneric_menou3&&t.hybridshowdata.Names&&t.webinterfacegeneric_menou3typelog&&t.webinterfacegeneric_menou3typelog_active?s("button",{staticClass:"btn btn-outline-warning",attrs:{round:"",type:"button"},on:{click:function(e){return t.guilogsclose(3)}}},[t._v(" "+t._s(t.webinterfacegeneric_menou3_text)+" ")]):t._e()])])])]):t._e()]),s("b-container",{attrs:{fluid:""}},[s("div",{staticClass:"row"},[s("div",{staticClass:"col-2 text-info"},[t._v(" ID ")]),s("div",{staticClass:"col-3 text-muted"},[t._v(" "+t._s(t.hybridshowdata.ID)+" ")]),s("div",{staticClass:"col-2 text-info"},[t._v(" Image ")]),s("div",{staticClass:"col-4 text-muted"},[t._v(" "+t._s(t.hybridshowdata.Image)+" ")])]),t._v(" "),s("div",{staticClass:"row"},[s("div",{staticClass:"col-2 text-info"},[t._v(" Names ")]),s("div",{staticClass:"col-3 text-muted"},[t._v(" "+t._s(t.hybridshowdata.Names)+" ")]),s("div",{staticClass:"col-2 text-info"},[t._v(" RunningFor ")]),s("div",{staticClass:"col-4 text-muted"},[t._v(" "+t._s(t.hybridshowdata.RunningFor)+" ")])]),t._v(" "),s("div",{staticClass:"row"},[s("div",{staticClass:"col-2 text-info"},[t._v(" Status ")]),s("div",{staticClass:"col-3 text-muted"},[t._v(" "+t._s(t.hybridshowdata.Status)+" ")]),s("div",{staticClass:"col-2 text-info"},[t._v(" CreatedAt ")]),s("div",{staticClass:"col-4 text-muted"},[t._v(" "+t._s(t.hybridshowdata.CreatedAt)+" ")])]),t._v(" "),s("div",{staticClass:"row"},[t.actionrowindex?s("div",{staticClass:"col-2 text-info"},[t.hybridshowdata.Networks&&0==t.addNetworkMenou?s("button",{staticClass:"btn btn-primary btn-sm",attrs:{round:"",type:"button"},on:{click:function(e){return t.addNetwork(t.hybridshowdata,"on")}}},[t._v(" Networks")]):t._e(),t.hybridshowdata.Networks&&1==t.addNetworkMenou?s("button",{staticClass:"btn btn-outline-warning btn-sm",attrs:{round:"",type:"button"},on:{click:function(e){return t.addNetwork(t.hybridshowdata,"off")}}},[t._v(" Networks")]):t._e()]):s("div",{staticClass:"col-2 text-info"},[t._v(" Networks ")]),s("div",{staticClass:"col-3 text-muted"},[t._v(" "+t._s(t.hybridshowdata.Networks)+" ")]),s("div",{staticClass:"col-2 text-info"},[t._v(" Ports ")]),s("div",{staticClass:"col-4 text-muted"},[t._v(" "+t._s(t.hybridshowdata.Ports)+" ")])])]),1==t.addNetworkMenou?s("div",{staticClass:"card border-success bg-light mb-3",staticStyle:{"max-width":"100%"}},[s("div",{staticClass:"card-header"}),s("div",{staticClass:"card-body text-info"},[s("div",{staticClass:"row"},[s("div",{staticClass:"col-6 text-info"},[s("h5",{staticClass:"card-title"},[t._v("Select network")])]),s("div",{staticClass:"col-6 text-info"},[t._v(" Connect a running container to multiple networks ")])]),s("div",{staticClass:"row"},[s("div",{staticClass:"col-6 text-info"},[s("b-form-select",{attrs:{options:t.localNetworkoptions,multiple:"","select-size":4},model:{value:t.selectedNetworks,callback:function(e){t.selectedNetworks=e},expression:"selectedNetworks"}}),s("div",{staticClass:"mt-3"},[t._v("Selected: "),s("strong",[t._v(t._s(t.selectedNetworks))])])],1),s("div",{staticClass:"col-6 text-info"},[s("img",{staticClass:"border-white img-thumbnail",attrs:{src:a("04d6"),alt:"..."}})])]),s("div",{staticClass:"row"},[s("div",{staticClass:"col-6 text-info"},[s("button",{staticClass:"btn btn-warning btn-sm",attrs:{round:"",type:"button"},on:{click:function(e){return t.updateNetwork(t.hybridshowdata,"update")}}},[t._v(" Update")])])])])]):t._e()],1)},st=[];const it=[{name:"justtemplate",automated:!0,version:0,menou:"xeLatex",menou1:"ViewPDF",menou1url:"docs/main.pdf",menou1server:"http://localhost:3384",menou2:"View2",menou2url:"docs2/main.pdf",menou2type:"log",menou2server:"http://localhost:3384",menou3:"Compile",menou3url:"docs/main111111111111.pdf",menou3server:"http://localhost:3384",port:0},{name:"microservice-firefox",automated:!0,menou:"openGui",version:0,port:0},{name:"microservice-xelatexthesis",automated:!0,exec:'/bin/sh -c "latex-all"',version:0,menou:"Compile",menou1:"View-PDF",menou1url:"docs/main.pdf",menou1server:"http://localhost:3384",menou2:"xeLatex-LOG",menou2type:"log",menou2url:"docs/main.log",menou2server:"http://localhost:3394",port:0},{name:"microservice-wireshark",automated:!0,menou:"openGui",version:0,port:0},{name:"microservice-oletools",automated:!0,menou:"openGui",version:0,port:0}],ot=[{name:"just-test-info-no-service",large:"no or text",custom:"true",customostext:"Base OS: python:3.11-rc-alpine3.15",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"6901/tcp",ttyd:!1,ttydport:"3787/tcp",ttydurl:"http",app1:!1,link1:"Click here to open rstudio",url1:"http",port1:"8787/tcp",app2:!1,link2:"Click here to open app text",url2:"http",port2:"8788/tcp",app3:!1,link3:"Click here to open app text",url3:"http",port3:"8789/tcp"},{name:"microservice-etherpad",app:!0,url:"http",port:"9001/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"jitsiweb",app:!0,url:"https",port:"443/tcp",ttyd:!1,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-novncfull",app:!0,url:"http",port:"80/tcp",ttyd:!1,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-novnclite",app:!0,url:"http",port:"6901/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-mongoexpress",app:!0,url:"http",port:"8081/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-gns3",custom:"true",customostext:"Base OS: ubuntu:18.04.6 LTS ",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!0,url:"http",port:"8001/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-ubuntu",custom:"true",customostext:"Base OS: ubuntu:20.04.3 LTS",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"8001/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-ubuntugui",app:!0,url:"http",port:"80/tcp",ttyd:!1,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-numpylite",custom:"true",customostext:"Base OS: debian:buster",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-nodejs",custom:"true",customostext:"Base OS: alpine:3.13",customos:"apk add --no-cache net-tools ",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-nginx",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-ipterm",custom:"true",customostext:"Base OS: debian:jessie ",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-firefox",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-haproxy",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-xelatexthesis",custom:"true",customostext:"Base OS: alpine:3.15 ",customos:"apk add --no-cache net-tools ",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-snmpsim",custom:"true",customostext:"Base OS: debian:bullseye ",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-ansible",custom:"true",customostext:"Base OS: alpine:3.14 ",customos:"apk add --no-cache net-tools ",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-wireshark",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-redisserver",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-mongoserver",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-filemanager",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-powershell",custom:"true",customostext:"Base OS: alpine:3.14 ",customos:"apk add --no-cache net-tools ",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-dvwa",app:!0,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-hping3",custom:"true",customostext:"Base OS: alpine:3.15 ",customos:"apk add --no-cache net-tools ",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-volatilitylinux",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-volatilitywindows",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-twint",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-twintexplorer",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-octave",large:"The build will take some time, so be patient!",custom:"true",customostext:"Base OS: ubuntu:18.04.6 LTS ",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!0,url:"http",port:"6901/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-r",large:"Note that this image is somewhat heavy (~2GB). It can take some time to build the Instance. If you think the proccess is frosen you can reload the page in your Browser",custom:"true",customostext:"Base OS: ubuntu:18.04.6 LTS ",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!0,url:"http",port:"6901/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http",app1:!0,link1:"Click here to open rstudio",url1:"http",port1:"8787/tcp"},{name:"microservice-rust",large:"no",app:!1,url:"http",port:"6901/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-julia",large:"no",custom:"true",customostext:"Base OS: alpine3.15",customos:"apk add --no-cache net-tools ",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"6901/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-lua",large:"no",custom:"true",customostext:"Base OS: alpine3.12",customos:"apk add --no-cache net-tools ",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"6901/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-luajit",large:"no",custom:"true",customostext:"Base OS: alpine3.12",customos:"apk add --no-cache net-tools ",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"6901/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-nodesqlite3",large:"no",custom:"true",customostext:"Base OS: ubuntu:20.04 LTS ",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"6901/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-electron",large:"Note that this image is somewhat heavy (~1.5GB). It can take some time to build the Instance. If you think the proccess is frosen you can reload the page in your Browser",app:!1,url:"http",port:"6901/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-rubyfull",large:"Note that this image is somewhat heavy (~1GB). It can take some time to build the Instance. If you think the proccess is frosen you can reload the page in your Browser",custom:"true",customostext:"Base OS: debian:bullseye ",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"6901/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-ruby",large:"no",custom:"true",customostext:"Base OS: alpine3.15",customos:"apk add --no-cache net-tools ",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"6901/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-golangfull",large:"Note that this image is somewhat heavy (~1GB). It can take some time to build the Instance. If you think the proccess is frosen you can reload the page in your Browser",custom:"true",customostext:"Base OS: debian:bullseye ",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"6901/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-golang",large:"no",custom:"true",customostext:"Base OS: alpine3.15",customos:"apk add --no-cache net-tools ",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"6901/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-mariadb",large:"no",app:!1,url:"http",port:"6901/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-adminer",large:"no",custom:"true",customostext:"Base OS: alpine3.15",customos:"apk add --no-cache net-tools ",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!0,url:"http",port:"8080/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-gcc",large:"no",custom:"true",customostext:"Base OS: debian:bullseye ",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"8080/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-opencv",large:"no",custom:"true",customostext:"Base OS: debian:buster",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"8080/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-phpcli",large:"no",app:!1,url:"http",port:"8080/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-phpapache",large:"no",custom:"true",customostext:"Base OS: debian:bullseye ",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http",app2:!0,link2:"Click to run your PHP code over https",url2:"https",port2:"443/tcp",app1:!0,link1:"Click to run your PHP code over http",url1:"http",port1:"80/tcp"},{name:"microservice-wordpress",large:"no",custom:"true",customostext:"Base OS: debian:bullseye ",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!0,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-oletools",large:"no",custom:"true",customostext:"Base OS: python:3.11-rc-alpine3.15",customos:"apk add --no-cache net-tools ",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-dfirntfs",large:"no",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-peframe",large:"The build will take some time, so be patient!",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-libvshadow",large:"no",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-regripper",large:"no",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-jsshell",large:"no",custom:"true",customostext:"Base OS: python:3.11-rc-alpine3.15",customos:"apk add --no-cache net-tools ",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-alpine313",large:"no",custom:"true",customostext:"Base OS: alpine3.13",customos:"apk add --no-cache net-tools ",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-alpine314",large:"no",custom:"true",customostext:"Base OS: alpine3.14",customos:"apk add --no-cache net-tools ",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-alpine315",large:"no",custom:"true",customostext:"Base OS: alpine3.15",customos:"apk add --no-cache net-tools ",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-debianbookworm",large:"no",custom:"true",customostext:"Base OS: debian:bookworm ",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-debianbullseye",large:"no",custom:"true",customostext:"Base OS: debian:bullseye ",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-debianbuster",large:"no",custom:"true",customostext:"Base OS: debian:buster ",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-awscli",large:"no",custom:"true",customostext:"Base OS: alpine3.13",customos:"apk add --no-cache net-tools ",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-perl",large:"no",custom:"true",customostext:"Base OS: debian:bullseye ",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"},{name:"microservice-perlfull",large:"no",custom:"true",customostext:"Base OS: debian:bullseye ",customos:"apt-get update && apt-get install -y --no-install-recommends net-tools",customshtext:"It is executed after all the normal builds",customsh:" #!/bin/sh",app:!1,url:"http",port:"80/tcp",ttyd:!0,ttydport:"3787/tcp",ttydurl:"http"}],nt=[{name:"microservice-xelatexthesis",automated:!0,url:"http",version:0,port:0},{name:"microservice-ansible",automated:!0,url:"http",version:0,port:0},{name:"microservice-nodejs",automated:!0,url:"http",version:0,port:0},{name:"microservice-numpylite",automated:!0,url:"http",version:0,port:0},{name:"microservice-rust",automated:!0,url:"http",version:0,port:0},{name:"microservice-julia",automated:!0,url:"http",version:0,port:0},{name:"microservice-lua",automated:!0,url:"http",version:0,port:0},{name:"microservice-luajit",automated:!0,url:"http",version:0,port:0},{name:"microservice-nodesqlite3",automated:!0,url:"http",version:0,port:0},{name:"microservice-electron",automated:!0,url:"http",version:0,port:0},{name:"microservice-ruby",automated:!0,url:"http",version:0,port:0},{name:"microservice-rubyfull",automated:!0,url:"http",version:0,port:0},{name:"microservice-golang",automated:!0,url:"http",version:0,port:0},{name:"microservice-golangfull",automated:!0,url:"http",version:0,port:0},{name:"microservice-gcc",automated:!0,url:"http",version:0,port:0},{name:"microservice-opencv",automated:!0,url:"http",version:0,port:0},{name:"microservice-phpcli",automated:!0,url:"http",version:0,port:0},{name:"microservice-jsshell",automated:!0,url:"http",version:0,port:0},{name:"microservice-phpapache",automated:!0,url:"http",version:0,port:0},{name:"microservice-alpine313",automated:!0,url:"http",version:0,port:0},{name:"microservice-alpine314",automated:!0,url:"http",version:0,port:0},{name:"microservice-alpine315",automated:!0,url:"http",version:0,port:0},{name:"microservice-debianbookworm",automated:!0,url:"http",version:0,port:0},{name:"microservice-debianbuster",automated:!0,url:"http",version:0,port:0},{name:"microservice-debianbullseye",automated:!0,url:"http",version:0,port:0},{name:"microservice-awscli",automated:!0,url:"http",version:0,port:0},{name:"microservice-perl",automated:!0,url:"http",version:0,port:0},{name:"microservice-perlfull",automated:!0,url:"http",version:0,port:0}];Object(B["b"])("alpha_num",N["a"]),Object(B["b"])("required",{...N["c"],message:"This field is required"});var rt={components:{card:k},props:{},data(){return{actionrowindexconsole:!1,actionrowindex:!1,actionrowindexselect:!0,addNetworkMenou:!1,localNetworks:[],selectedNetworks:[],localNetworkoptions:[],localNetworkdefault:"",webinterface:!1,webinterfacegeneric:!1,webinterfacegeneric_text:"openGui",webinterfacegeneric_menou1_url_target1:"_blank",webinterfacegeneric_menou1_url_target2:"_blank",webinterfacegeneric_menou1_url_target3:"_blank",webinterfacegeneric_menou_exec:"",webinterfacegeneric_menou_basedir:"",swarmlab_services_type:"swarmlab",webinterfacegeneric_menou1:!1,webinterfacegeneric_menou1_text:"",webinterfacegeneric_menou1_url:"",webinterfacegeneric_menou1typelog:!1,webinterfacegeneric_menou1typelog_active:!1,webinterfacegeneric_menou1typedir:"",webinterfacegeneric_menou1typedir_log:"",webinterfacegeneric_menou2:!1,webinterfacegeneric_menou2_text:"",webinterfacegeneric_menou2_url:"",webinterfacegeneric_menou2typelog:!1,webinterfacegeneric_menou2typelog_active:!1,webinterfacegeneric_menou2typedir:"",webinterfacegeneric_menou2typedir_log:"",webinterfacegeneric_menou3:!1,webinterfacegeneric_menou3_text:"",webinterfacegeneric_menou3_url:"",webinterfacegeneric_menou3typelog:!1,webinterfacegeneric_menou3typelog_active:!1,webinterfacegeneric_menou3typedir:"",webinterfacegeneric_menou3typedir_log:"",webinterfacegenericedit:!1,webinterface_port:"",STATUS:{},editor_instance:{start:"",port:""},CONFIG:{status:"",workerkey:"",swarmlab_public_wgkey:"",server_ip:"",allowed_ips:"",wg_port:"",wg_ip:"",swarm_ip:"",privatekey:"",publickey:"",workerkey:"",privatekey:"",publickey:"",server_ip:""},CONFIGallowed_ips:"",swarmlabnamecustomstart:{},swarmlabnamecustomdata:{},swarmlabnamecustom:"",swarmlabnamecustomservice:"",swarmlabnamecustomuser:"",swarmlabname:"swarmlab-sec",swarmlabname_port:"",swarmlabname_size:3,swarmlabname_git:"",hybridshowdata:{},hybridshowdata_user:{},hybridshowdatashare:{},issocket:"close",setFilter:{},searchFor:{},resetFilter:{}}},beforeMount(){this.socketopen(),this.socketauthenticate()},mounted(){this.$root.$on("hybrid_show_info",t=>{(async()=>{this.actionrowindex=!1,this.actionrowindexselect=!0,this.addNetworkMenou=!1,this.actionrowindexconsole=!1,this.$root.$emit("hybrid_show_instance_images","images"),this.webinterface=!1,this.webinterfacegeneric=!1,this.webinterfacegenericedit=!1,this.hybridshowdata=t;var e="microservice-jupyter",a=new RegExp(e);a.test(t.Networks)&&a.test(t.Names)?(this.webinterface=!0,this.webinterface_port=t.Ports):(this.webinterface=!1,this.webinterface_port="");for(var s=this.hybridshowdata.Names.split("_"),i=0;i{this.swarmlabname=t.swarmlabname,t.size&&(this.swarmlabname_size=t.size),t.port&&(this.swarmlabname_port=t.port),this.onAction("start")}),this.$root.$on("hybrid_start_instance_custom",t=>{this.swarmlabnamecustomdata=t.baseservicedata,this.swarmlabnamecustomstart=t,t.size&&(this.swarmlabname_size=t.size),t.port&&(this.swarmlabname_port=t.port),this.onAction("startcustom")}),this.$root.$on("hybrid_start_instance_storage",t=>{var e={action:"up"};e.token=this.token,e.swarmlabname=t.swarmlabname,e.password=t.password,this.$socket.client.open(),this.$socket.client.emit("start_storage",e)}),this.$root.$on("hybrid_start_instance_poc",t=>{var e={action:"up"};e.token=this.token,e.swarmlabname=t.swarmlabname,e.password=t.password,this.$socket.client.open(),this.$socket.client.emit("start_poc",e)}),this.$root.$on("SERVER_build_image",t=>{this.$socket.client.open(),this.$socket.client.emit("build_image",t)}),this.$root.$on("SERVER_build_vmlist",t=>{var e={action:"up"};e.token=this.token,e.kill=2,this.$socket.client.open(),this.$socket.client.emit("build_vmlist",e)}),this.$root.$on("SERVER_build_kill",t=>{var e={action:"up"};e.token=this.token,e.kill=t.pid,this.$socket.client.open(),this.$socket.client.emit("build_kill",e)}),this.$root.$on("hybrid_install_instance",t=>{this.swarmlabname=t.swarmlabname,this.swarmlabname_git=t.git,this.onAction("install")}),this.$root.$on("hybrid_install_instance_custom",t=>{console.log(t),this.swarmlabnamecustomdata=t.baseservicedata,this.swarmlabnamecustom=t.baseservice,this.swarmlabnamecustomservice=t.service,this.swarmlabnamecustomuser=t.user,this.swarmlabname_git=t.git,this.onAction("installcustom")}),this.$root.$on("hybrid_install_instance_storage",t=>{var e={action:"up"};e.token=this.token,e.swarmlabname=t.swarmlabname,e.git=t.git,this.$socket.client.open(),this.$socket.client.emit("installstorage",e)}),this.$root.$on("hybrid_connect_server",t=>{this.$socket.client.emit("get-serverconfig")}),this.$root.$on("hybrid_stop_instance",t=>{this.swarmlabname=t,this.onAction("stop")}),this.$root.$on("hybrid_stop_instance_storage",t=>{this.$socket.client.emit("stop_storage",t)}),this.$root.$on("hybrid_stop_instance_poc",t=>{this.$socket.client.emit("stop_poc",t)})},created(){var t=window.location.href,e=new URL(t);this.token=e.searchParams.get("token");v.dispatch("pipelineLLO/settoken",{token:this.token});this.socketopen()},beforeDestroy(){this.$root.$off("hybrid_show_info"),this.$root.$off("hybrid_start_instance"),this.$root.$off("hybrid_start_instance_custom"),this.$root.$off("hybrid_stop_instance"),this.$root.$off("hybrid_connect_server"),this.$root.$off("hybrid_install_instance"),this.$root.$off("hybrid_install_instance_custom"),this.$root.$off("hybrid_install_instance_storage"),this.$root.$off("SERVER_build_vmlist"),this.$root.$off("SERVER_build_kill"),this.$root.$off("SERVER_build_image")},computed:{httpOptions(){var t=this.token;return{headers:{Authorization:"Bearer "+t}}}},methods:{async guilogsclose(t){this.webinterfacegeneric_menou1typelog_active=!1,this.webinterfacegeneric_menou2typelog_active=!1,this.webinterfacegeneric_menou3typelog_active=!1,this.actionrowindexconsole=!1,this.$root.$emit("hybrid_show_instance_images","images")},async guilogs(t){var e=await v.dispatch("pipelineLLO/getlog4gui",{token:this.token,instance:this.webinterfacegeneric_menou2typedir});if(!e.data.error&&"no"!=e.data.log)if(1==t){this.webinterfacegeneric_menou1typedir_log=e.data.log,this.webinterfacegeneric_menou1typelog_active=!0,this.actionrowindexconsole=!0,this.$root.$emit("hybrid_show_instance_images","console");var a={};a.data=this.webinterfacegeneric_menou1typedir_log;await v.dispatch("pipelineLLO/getlogs",{container:this.hybridshowdata.ID});this.$root.$emit("hybrid_log_in",a)}else if(2==t){this.webinterfacegeneric_menou2typedir_log=e.data.log,this.webinterfacegeneric_menou2typelog_active=!0,this.actionrowindexconsole=!0,this.$root.$emit("hybrid_show_instance_images","console");a={};a.data=this.webinterfacegeneric_menou2typedir_log;await v.dispatch("pipelineLLO/getlogs",{container:this.hybridshowdata.ID});this.$root.$emit("hybrid_log_in",a)}else if(3==t){this.webinterfacegeneric_menou3typedir_log=e.data.log,this.webinterfacegeneric_menou3typelog_active=!0,this.actionrowindexconsole=!0,this.$root.$emit("hybrid_show_instance_images","console");a={};a.data=this.webinterfacegeneric_menou3typedir_log;await v.dispatch("pipelineLLO/getlogs",{container:this.hybridshowdata.ID});this.$root.$emit("hybrid_log_in",a)}},async updateNetwork(t,e){await v.dispatch("pipelineLLO/updatenetworks",{networks:this.selectedNetworks,defaultnetwork:this.localNetworkdefault,container:t.ID});this.$root.$emit("hybrid_refresh_networktable"),this.hybridshowdata={},this.addNetworkMenou=!1,this.localNetworks=[],this.selectedNetworks=[],this.localNetworkoptions=[],this.localNetworkdefault=""},async addNetwork(t,e){if("on"==e){this.addNetworkMenou=!0;var a=await v.dispatch("pipelineLLO/getnetworks",{instance:t.ID});this.localNetworks=a.data.data;var s="";this.localNetworkoptions=[];for(var i=0;i',s+=" Click on hyperlink opens Directory in new tab",s+='View Backups',s+=" ",this.$swal({type:"Info",title:"Info!",icon:"info",html:s,showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,cancelButtonText:"No, cancel!",showCancelButton:!1,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!0,confirmButtonText:"Ok!"})}else if("basebackup"==t){s="Create a full backup of persistent data:
\n The current limit of 125 layers is due to the kernel\'s ARG_MAX, which limits the number of arguments / length of arguments that can be passed when mounting the layers \n \n (this limit can be raised in kernels, but is not something that could be relied on as it would make those images non-interoperable on systems that don\'t have the custom configuration)\n
\n
\n Note that not every step in a Dockerfile creates a new layer, only (RUN) steps that modify the filesystem will introduce a new layer.\n
\n\n
\n
Solution
\n \n
\n Delete all local docker images related to your dockerfile using the following:\n \n \n docker rmi -f $(docker images -a -q)\n
\n\n
\n
Description
\n \n Remove unused image \n - all images not referenced by any container -\n \n
(Open page in new window)';this.$swal({type:"info",html:r+n,showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!0})}else if("delete-item"==t)this.$swal({type:"info",html:r+n,icon:"info",showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,cancelButtonText:"No, cancel!",showCancelButton:!0,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!0,confirmButtonText:"Yes, Delete it!"}),this.refreshVuetable();else if("rm-install"==t){r=`
swarmlab encountered a problem while deleting your labroom files. This propably means that you have created some files while operating the labroom. To remove those files please run the following command as root.
",o+=' You can back up content using: ',o+='sudo tar -zcvf /home/$USER/swarmlabbackup_'+e.swarmlabname+".tar.gz "+t.data.path+"/instance/"+e.swarmlabname+" ";var n="
(Open page in new window)';this.$swal({type:"info",html:l+r,showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!0})}}else if("delete-item"==t){this.hybridoptions.swarmlabname=e.swarmlabname;l="
This will remove the storage with the name "+e.swarmlabname+"
";var c=this.hybridoptions.swarmlabname,d=(r="",await v.dispatch("pipelineLLO/getstoragesudopreparestop",c));if("yes"==d.data.data&&"no"==d.data.error){var u=d.data.path;r='Before continuing RUN the following command
(Open page in new window)';this.$swal({type:"info",html:n,icon:"info",showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!0})}else if("delete-item"==t)this.$swal({type:"info",html:n+d,showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,cancelButtonText:"No, cancel!",showCancelButton:!0,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!0,confirmButtonText:"Yes, Delete it!"}),s["default"].nextTick(()=>this.refreshVuetable());else if("rm-install"==t){this.resetcustom(),this.hybridoptions.swarmlabname=e.swarmlabname,this.$wait.start("myRunInstancetutor");var r=await v.dispatch("pipelineLLO/rmswarmlablocal",this.hybridoptions.swarmlabname);this.$wait.end("myRunInstancetutor");var l={};l.token=this.token,l.instance=e.swarmlabname;var c=await v.dispatch("pipelineLLO/getservicesinfo",l);if("yes"==c.data.data&&"yes"==c.data.data){var d='
swarmlab encountered a problem while deleting your labroom files. This propably means that you have created some files while operating the labroom. To remove those files please run the following command as root.
",d+=' You can back up content using: ',d+='sudo tar -zcvf /home/$USER/swarmlabbackup_'+e.swarmlabname+".tar.gz "+r.data.path+"/instance/"+e.swarmlabname+" ";n="
Labroom remove
";this.$swal({type:"info",html:n+d,icon:"info",showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,cancelButtonText:"No, cancel!",showCancelButton:!1,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!0,confirmButtonText:"Ok!"})}this.refreshVuetable(),this.$root.$emit("hybrid_refresh_info_deploy_local")}else if("run-install"==t){this.swarmlabinfonow=!0,this.$wait.start("myRunInstancetutor"),this.hybridoptions.swarmlabname=e.swarmlabname,this.hybridoptions.index=a;let t={};t.swarmlabname=this.hybridoptions.swarmlabname,t.index=this.hybridoptions.index,t.size=this.hybridoptions.size,t.port=this.hybridoptions.port;r=await v.dispatch("pipelineLLO/getswarmlabmicroserviceinfo",t.swarmlabname),o=r.data.swarmlabinfo;t.git=o;await v.dispatch("pipelineLLO/checkowner",{token:this.token,instance:this.hybridoptions.swarmlabname});this.$root.$emit("hybrid_install_instance",t),this.$wait.end("myRunInstancetutor"),await this.refreshVuetable(),await this.refreshVuetableall()}else if("run-item"==t){this.resetcustom(),this.heavy=!1,this.heavytext="",this.up_name=this.hybridoptions.swarmlabname;var u="microservice-volatilitywindows",m=new RegExp(u),p="microservice-jupyter";new RegExp(p);if(m.test(this.hybridoptions.swarmlabname))this.viewhybridoptions=!0,this.heavy=!0,this.heavytext="Note that this image is somewhat heavy (~2GB) since they embed some of the kernel debug symbols for Microsoft Windows. It can take some time to build the Instance",this.hybridoptions.swarmlabname=this.hybridoptions.swarmlabname,this.hybridoptions.index=a;else{this.viewhybridoptions=!0,this.hybridoptions.swarmlabname=this.hybridoptions.swarmlabname,this.hybridoptions.index=a;for(var h=0;h Microservice: ${this.hybridoptions.swarmlabname} `;n+=" Stop and remove containers, networks, images, and volumes",this.$swal({type:"info",html:n,icon:"info",showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,cancelButtonText:"No, cancel!",showCancelButton:!0,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!1,confirmButtonText:"Yes!"}).then(t=>{this.rmAndClose(t)})}},async rmAndClose(t){if(t.isConfirmed){this.hybridoptions.swarmlabname,await v.dispatch("pipelineLLO/stopservice",{token:this.token,instance:this.hybridoptions.swarmlabname});this.refreshVuetable()}else console.log("no")},async setcustomcancel(){this.custommenouopen=!1,this.custommenou=!1},async setcustomsave(){let t={};t.swarmlabname=this.hybridoptions.swarmlabname;await v.dispatch("pipelineLLO/savecustom",{token:this.token,instance:this.hybridoptions.swarmlabname,package:this.custom.os,sh:this.custom.sh});this.custommenouopen=!1,this.custommenou=!1},async setcustom(){let t={};t.swarmlabname=this.hybridoptions.swarmlabname,this.custommenouopen=!0,this.custommenou=!0;var e=await v.dispatch("pipelineLLO/getcustom",{token:this.token,instance:this.hybridoptions.swarmlabname});if(!1===e.data.error){if("nodir"==e.data.error_msg){var a="
Please redownload Microservice and try launching the module again \n
swarmlab encountered a problem while deleting your labroom files. This propably means that you have created some files while operating the labroom. To remove those files please run the following command as root.
",i+=' You can back up content using: ',i+='sudo tar -zcvf /home/$USER/swarmlabbackup_'+data.swarmlabname+".tar.gz "+e.data.path+"/instance/"+data.swarmlabname+" ";var o="
swarmlab encountered a problem while deleting your labroom files. This propably means that you have created some files while operating the labroom. To remove those files please run the following command as root.
",i+=' You can back up content using: ',i+='sudo tar -zcvf /home/$USER/swarmlabbackup_'+data.service+".tar.gz "+e.data.mydir+"/community/"+e.data.path+" ";var o="
swarmlab encountered a problem while deleting your labroom files. This propably means that you have created some files while operating the labroom. To remove those files please run the following command as root.
",d+=' You can back up content using: ',d+='sudo tar -zcvf /home/$USER/swarmlabbackup_'+e.service+".tar.gz "+r.data.mydir+"/community/"+r.data.path+" ";n="
(Open page in new window)';this.$swal({type:"info",html:o+i,showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!0})}else if("delete-item"==t){this.hybridoptions.swarmlabname=e.swarmlabname;o="
This will remove the storage with the name "+e.swarmlabname+"
',e+="The base image you wish to use. \n \n \nHere you should select the one closest to your final product to minimize the changes you will have to make.\n "):"form_version"==t?(a='
Service Version
',e+="\n The field may contain alphanumeric characters to describe the service Name\n "):"form_baseservice"==t?(a='
\n This is the git repository associated with your project. \n \nHere you can upload all the necessary files for your service.\n \n \n for example \n
\n\t
\n if you are performing a task for a tutor you might want to include filed needed to run it\n\t
\n\t
\n or if the projects is shared between multiple students you will have to include the files for everyone to use\n\t
\n
\n \n \nThis way we have a centralized store for our projectss files\n
\n '):"form_rclocal"==t?(a='
rc.local
',e+='\n\n
\n\nHere you may start additional services. \n \n \nPlease keep in mind that they WILL NOT be started automatically! You HAVE to start them here!\n\n \n \nIt is executed after all build processes are finished.\n\t\t
\nA script intended to be run after the installation is done to automate system update, extra software installation and configuration. \n\n \n \nIt is executed after "add packages" step has finished\n \n \n\nHere you can make changes or install other software for example programs that cannot be found using the package manager\n\n\n\t\t
\n please add the email addresses of the users you would like to invite separated with comas \n \n Examples\n \n user1@email.com,user2@foo.com\n \n \n NOTE \n \n
\n swarmlab.io uses GitHub as an Identity Provider\n \n \n To avoid further naming issues swarmlab uses the email used with the oauth provider as the identification key.\n \n \n This ensures that multiple accounts with different providers and the same name won\'t be messed up within swarmlab\n
\n ':"form_os"==t?(a='
Add Extrapackages
',e+='\n\n
\n\n sh script to install packages\n\n\t\t\t\t \n \n Examples\n \n apt update && apt install -y vim\n \n OR\n \n apk update && apk add --no-cache vim\n \n \n The file needs to contain the commands in ONE LINE!\n\n\n\t\t
',e+="\n Build Description: a simple description of the services provided\n"):"port"==t&&(a='
Port - URI - Name
',e+='\n \n
\n\nHere you can declare the services you wish to start and publish.\n\n \n \n\nPublished ports:\nBy default, when you create or run a container, it does not publish any of its ports to the outside world.\n \nTo make a port available to services outside of Docker, or to Docker containers which are not connected to the container’s network, use the "Port" field. \n\t\t
\n \n
\n\t\t\t\tURI: http/https\n\t\t
\n \n
\n\t\t\t\tName: \n this is the name used by the end user. Try to be clear using few words!\n\n\t\t
(Open page in new window)';this.$swal({type:"info",html:r+n,showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!0})}}else if("upload-item"==t){this.swarmlab=e;var l={data:e};this.$root.$emit("hybrid_build_micro_service",l)}},playbookinfoShow(t){return this.visibility[t]=!0},playbookinfo(t){return this.playbookInfo=t},rowClicked(t,e){console.log(t),this.onAction("upload-item",t,t._id)},loadsuccess(t){var e=t.data.data;this.fielddata=e;e.length},onLoadError(t){"401"==t.response.status&&(window.location.href="https://api-login.swarmlab.io:8089",s["default"].nextTick(()=>window.location.href="https://api-login.swarmlab.io:8089"))}},actions:{}},ba=ha,va=(a("83ff"),Object(_["a"])(ba,ma,pa,!1,null,null,null)),fa=va.exports,wa=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("card",{staticClass:"card-user",staticStyle:{"max-height":"100%"}},[s("br"),s("v-wait",{attrs:{for:"myRunInstancetutormybuild"}},[s("template",{slot:"waiting"},[s("div",[s("img",{attrs:{src:a("cf1c")}}),t._v(" Enter Lab_room... ")])])],2),s("div",{staticClass:"row text-center"},[s("div",{staticClass:"col-12"},[s("b",[t._v("Swarmlab "),s("span",{staticClass:"text-info"},[t._v("my Custom MicroServices")])])])]),s("br"),s("div",{staticClass:"input-group input-group-sm sm-3"}),s("div",{staticClass:"input-group input-group-sm sm-3"},[s("button",{staticClass:"btn btn-outline-success btn-sm",attrs:{round:"",type:"button"},on:{click:t.refreshVuetable}},[t._v(" Refresh Table ")]),s("input",{directives:[{name:"model",rawName:"v-model",value:t.searchFor,expression:"searchFor"}],staticClass:"form-control",attrs:{type:"text","aria-label":"Small","aria-describedby":"inputGroup-sizing-sm",placeholder:"Search"},domProps:{value:t.searchFor},on:{keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.setFilter(e)},input:function(e){e.target.composing||(t.searchFor=e.target.value)}}}),s("div",{staticClass:"input-group-append"},[s("button",{staticClass:"btn btn-outline-primary",attrs:{round:"",type:"button"},on:{click:t.setFilter}},[t._v(" Go")])]),s("div",{staticClass:"input-group-append"},[s("button",{staticClass:"btn btn-outline-secondary",attrs:{round:"",type:"button"},on:{click:t.resetFilter}},[t._v(" Reset")])])]),t.viewhybridoptions&&t.heavy?s("div",{staticClass:"input-group-append"},[s("p",{staticClass:"text-danger"},[t._v(t._s(t.heavytext))])]):t._e(),s("vuetable",{key:t.vuetablekeygmybuildservice123,ref:"vuetable",attrs:{id:"idvuetablekeygmybuildservice123","api-url":t.apiurl,"api-mode":!0,"http-options":t.httpOptions,fields:t.fields,"item-actions":t.itemActions,"sort-order":t.sortOrder,"show-sort-icons":!0,"multi-sort":t.multiSort,"per-page":t.perpage,"pagination-path":"links.pagination","pagination-component":t.paginationComponent,"append-params":t.moreParams,"wrapper-class":"vuetable-wrapper","loading-class":"loading","detail-row-id":"id",css:t.css.table},on:{"vuetable:pagination-data":t.onPaginationData,"vuetable:load-success":t.loadsuccess,"vuetable:load-error":t.onLoadError},scopedSlots:t._u([{key:"actions",fn:function(e){return s("div",{},[s("div",{staticClass:"d-flex justify-content-center"},[s("button",{staticClass:"ti-pencil btn btn-sm",attrs:{title:"Upload MicroService",round:""},on:{click:function(a){return t.onAction("upload-item",e.rowData,e.rowData._id)}}}),s("button",{staticClass:"ti-trash btn btn-sm text-warning",attrs:{title:"MicroService Info",round:""},on:{click:function(a){return t.onAction("rm-item",e.rowData,e.rowData._id)}}})])])}}])}),s("div",{staticClass:"vuetable-pagination ui basic segment grid"},[s("vuetable-pagination-info",{ref:"paginationInfo",attrs:{css:t.css.paginationInfo}}),s("vuetable-pagination",{ref:"pagination",attrs:{css:t.css.pagination},on:{"vuetable-pagination:change-page":t.onChangePage}})],1)],1)},ga=[],ya={components:{card:k,Vuetable:$["Vuetable"],VuetablePagination:S["a"],VuetablePaginationInfo:L["a"],VuetablePaginationDropdown:$["VuetablePaginationDropdown"]},props:{},data(){return{testactionrowindex:[],teststatusindex:[],testtest:[],testtestdir:[],hybridoptions:{index:"",swarmlabname:"",size:"",port:""},viewhybridoptions:!1,heavy:!1,heavytext:"",customedit:!1,custommenouopen:!1,custommenou:!1,custom:{os:"",sh:""},customostext:"",customshtext:"",up_name:"",swarmlab:{},playbookInfo:{},token:"",playbook:{title:"",name:"",description:""},container:{name:"",view:0},pipeline:{},selected:"hybrid",options:[{text:"Packages",value:"packages"},{text:"Images",value:"images"},{text:"Scripts",value:"scripts"}],showModal:!1,visibility:[],active:!1,vuetablekeygmybuildservice123:0,vuetablekeygslot:0,fielddata:{},fields:[{name:"service",title:'Name',sortField:"service",visible:!0,dataClass:"left aligned col-3",width:"30%"},{name:"_id",title:'mongo',visible:!1},{name:"readme",title:'Info',sortField:"gitrepoCloneUrl",dataClass:"left aligned w-25",visible:!0,width:"20%"},{name:"baseservice",title:'Base',sortField:"baseservice",titleClass:"center aligned",dataClass:"left aligned w-25",visible:!0,width:"30%"},{name:"visibility",title:'Pub',sortField:"gitrepoCloneUrl",dataClass:"center aligned w-10 text-center",visible:!0,width:"10%",callback:function(t){if("Public"==t){var e=' \n\t\t\t\t\t\n';return e}e=' \n\t\t\t\t\t\n';return e}},{name:"__slot:actions",title:"Actions",titleClass:"col text-center",dataClass:"center aligned",width:"10%"}],apiurl:d.swarmlab_url_80+"/swarmlabhybridmymicroservices",css:I["a"],perpage:8,searchFor:"",sortOrder:[{field:"pipelinename",direction:"asc"}],multiSort:!0,paginationComponent:"vuetable-pagination",currentpage:"1",currentpagepaginationData:{},dataselect:"",indexselect:"",itemActions:[{name:"view-item",label:"",icon:"glyphicon glyphicon-zoom-in",class:"btn btn-info",extra:{title:"View","data-toggle":"tooltip","data-placement":"left"}},{name:"edit-item",label:"",icon:"glyphicon glyphicon-pencil",class:"btn btn-warning",extra:{title:"Edit","data-toggle":"tooltip","data-placement":"top"}},{name:"delete-item",label:"",icon:"glyphicon glyphicon-remove",class:"btn btn-danger",extra:{title:"Delete","data-toggle":"tooltip","data-placement":"right"}}],moreParams:{filter:"",type:"scripts"}}},mounted(){this.$root.$on("hybrid_build_micro_service_menou_refreshtable",()=>{this.refreshVuetable()})},async created(){var t=window.location.href,e=new URL(t);this.token=e.searchParams.get("token"),this.$root.$emit("hybrid_build_micro_service_menou")},beforeDestroy(){this.$root.$off("hybrid_build_micro_service_menou_refreshtable")},computed:{httpOptions(){var t=this.token;return{headers:{Authorization:"Bearer "+t}}}},methods:{async refreshVuetable(){this.vuetablekeygmybuildservice123+=1},setFilter(){this.moreParams={filter:this.searchFor,type:this.selected},s["default"].nextTick(()=>this.$refs.vuetable.refresh())},resetFilter(){this.moreParams={},this.searchFor="",this.moreParams={filter:"",type:"scripts"},s["default"].nextTick(()=>this.refreshVuetableall())},onPaginationData(t){this.$refs.pagination.setPaginationData(t),this.$refs.paginationInfo.setPaginationData(t),this.currentpagepaginationData=t},onChangePage(t){this.currentpage=t,this.$refs.vuetable.changePage(t)},editRow(t){alert("You clicked edit on"+JSON.stringify(t))},async rmAndClose(t){if(t.isConfirmed){this.hybridoptions.swarmlabname;var e=await v.dispatch("pipelineLLO/rmmycustomservice",{token:this.token,service:this.swarmlab.service});if(this.refreshVuetable(),"ok"==e.data.action);else{var a="Remove error ";this.$swal({type:"Info",title:"Info!",icon:"error",html:a,showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,cancelButtonText:"No, cancel!",showCancelButton:!1,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!0,confirmButtonText:"Ok!"})}}else console.log("no")},async onAction(t,e,a){if("rm-item"==t){this.swarmlab=e;this.swarmlab;var s="Remove service: "+this.swarmlab.service;s+="",this.$swal({type:"info",html:s,icon:"warning",showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,cancelButtonText:"No, cancel!",showCancelButton:!0,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!1,confirmButtonText:"Yes!"}).then(t=>{this.rmAndClose(t)})}else if("upload-item"==t){var i={data:e},o={data:i};this.swarmlab=e;var n={data:e,log:o};this.$root.$emit("hybrid_build_micro_myservice",n)}},playbookinfoShow(t){return this.visibility[t]=!0},playbookinfo(t){return this.playbookInfo=t},rowClicked(t,e){return{html:!0,title:()=>"Hello Popover: "+ ++this.counter,content:()=>"The date is: "+new Date+""}},loadsuccess(t){var e=t.data.data;this.fielddata=e;e.length},onLoadError(t){"401"==t.response.status&&(window.location.href="https://api-login.swarmlab.io:8089",s["default"].nextTick(()=>window.location.href="https://api-login.swarmlab.io:8089"))}},actions:{}},_a=ya,Ca=(a("f830"),Object(_["a"])(_a,wa,ga,!1,null,null,null)),ka=Ca.exports,xa={components:{ServiceView:ua,card:k,BuilderServices:fa,BuilderMyServices:ka},data(){return{loading:!1,consoleView:"off",productIndex:1}},mounted(){},beforeDestroy(){},created(){}},Aa=xa,Oa=Object(_["a"])(Aa,ia,oa,!1,null,null,null),Ra=Oa.exports,$a=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("card",{staticClass:"card-user",staticStyle:{"max-height":"100%"}},[a("div",{staticClass:"row"},[a("div",{staticClass:"col-6 order-first "},[a("br"),a("mydeploy-manage-bootstrap")],1),a("div",{staticClass:"col-6 order-last"},[a("br"),a("mydeploy-manage-view")],1)])])},La=[],Sa=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("card",{staticClass:"card-user",staticStyle:{"max-height":"100%"}},[s("div",{staticClass:"author"},[s("img",{staticClass:"avatar border-white",attrs:{src:a("0ed5"),alt:"..."}})]),s("b-container",{staticClass:"bv-example-row",attrs:{fluid:""}},[s("div",{staticClass:"row text-center"},[s("div",{staticClass:"col-12"},[s("b",[t._v("Swarmlab hybrid Deploy")])])]),s("br"),s("b-row",[s("b-col",{attrs:{cols:"8"}},[s("ValidationProvider",{ref:"hybrid_image",attrs:{name:"Image",rules:"required|alpha_num_image"},scopedSlots:t._u([{key:"default",fn:function(e){var a=e.errors;e.ariaMsg,e.ariaInput,e.valid,e.invalid;return[s("div",{staticClass:"input-group input-group-sm sm-3"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.deploy.image,expression:"deploy.image"}],staticClass:"form-control",class:{"is-valid":1==t.isDeployValid.image,"is-invalid":2==t.isDeployValid.image},attrs:{type:"text",name:"Image","aria-label":"Small","aria-describedby":"inputGroup-sizing-sm",placeholder:"Image"},domProps:{value:t.deploy.image},on:{keyup:function(e){return t.isValid("image")},input:function(e){e.target.composing||t.$set(t.deploy,"image",e.target.value)}}}),s("div",{staticClass:"input-group-append"},[s("button",{staticClass:"ti-info btn btn-outline-secondary",attrs:{round:"",type:"button"},on:{click:function(e){return t.showInfo("image")}}})])]),s("span",{staticClass:"hybrid-field-error"},[t._v(t._s(a[0]))])]}}])})],1),s("b-col",{attrs:{cols:"4"}},[s("ValidationProvider",{ref:"hybrid_stackname",attrs:{name:"StackName",rules:"required|alpha_num_name"},scopedSlots:t._u([{key:"default",fn:function(e){var a=e.errors;e.ariaMsg,e.ariaInput,e.valid,e.invalid;return[s("div",{staticClass:"input-group input-group-sm sm-3"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.deploy.stackname,expression:"deploy.stackname"}],staticClass:"form-control",class:{"is-valid":1==t.isDeployValid.stackname,"is-invalid":2==t.isDeployValid.stackname},attrs:{type:"text",name:"StackName","aria-label":"Small","aria-describedby":"inputGroup-sizing-sm",placeholder:"StackName"},domProps:{value:t.deploy.stackname},on:{keyup:function(e){return t.isValid("stackname")},input:function(e){e.target.composing||t.$set(t.deploy,"stackname",e.target.value)}}}),s("div",{staticClass:"input-group-append"},[s("button",{staticClass:"ti-info btn btn-outline-secondary",attrs:{round:"",type:"button"},on:{click:function(e){return t.showInfo("stackname")}}})])]),s("span",{staticClass:"hybrid-field-error"},[t._v(t._s(a[0]))])]}}])})],1)],1),s("b-row",[s("b-col",{attrs:{cols:"8"}},[s("ValidationProvider",{ref:"hybrid_name",attrs:{name:"Name",rules:"required|alpha_num_name"},scopedSlots:t._u([{key:"default",fn:function(e){var a=e.errors;e.ariaMsg,e.ariaInput,e.valid,e.invalid;return[s("div",{staticClass:"input-group input-group-sm sm-3"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.deploy.name,expression:"deploy.name"}],staticClass:"form-control",class:{"is-valid":1==t.isDeployValid.name,"is-invalid":2==t.isDeployValid.name},attrs:{type:"HybridError",name:"Name","aria-label":"Small","aria-describedby":"inputGroup-sizing-sm",placeholder:"Name"},domProps:{value:t.deploy.name},on:{keyup:function(e){return t.isValid("name")},input:function(e){e.target.composing||t.$set(t.deploy,"name",e.target.value)}}}),s("div",{staticClass:"input-group-append"},[s("button",{staticClass:"ti-info btn btn-outline-secondary",attrs:{round:"",type:"button"},on:{click:function(e){return t.showInfo("name")}}})])]),s("span",{staticClass:"hybrid-field-error"},[t._v(t._s(a[0]))])]}}])})],1),s("b-col",{attrs:{cols:"4"}},[s("ValidationProvider",{ref:"hybrid_network",attrs:{name:"Network",rules:"required|alpha_num_name"},scopedSlots:t._u([{key:"default",fn:function(e){var a=e.errors;e.ariaMsg,e.ariaInput,e.valid,e.invalid;return[s("div",{staticClass:"input-group input-group-sm sm-3"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.deploy.network,expression:"deploy.network"}],staticClass:"form-control",class:{"is-valid":1==t.isDeployValid.network,"is-invalid":2==t.isDeployValid.network},attrs:{type:"text",name:"Network","aria-label":"Small","aria-describedby":"inputGroup-sizing-sm",placeholder:"Network Name"},domProps:{value:t.deploy.network},on:{keyup:function(e){return t.isValid("network")},input:function(e){e.target.composing||t.$set(t.deploy,"network",e.target.value)}}}),s("div",{staticClass:"input-group-append"},[s("button",{staticClass:"ti-info btn btn-outline-secondary",attrs:{round:"",type:"button"},on:{click:function(e){return t.showInfo("network")}}})])]),s("span",{staticClass:"hybrid-field-error"},[t._v(t._s(a[0]))])]}}])})],1)],1),s("b-row",[s("b-col",{attrs:{cols:"4"}},[s("ValidationProvider",{ref:"hybrid_cpu",attrs:{name:"Cpu",rules:"required|alpha_num_cpu"},scopedSlots:t._u([{key:"default",fn:function(e){var a=e.errors;e.ariaMsg,e.ariaInput,e.valid,e.invalid;return[s("div",{staticClass:"input-group input-group-sm sm-3"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.deploy.cpu,expression:"deploy.cpu"}],staticClass:"form-control",class:{"is-valid":1==t.isDeployValid.cpu,"is-invalid":2==t.isDeployValid.cpu},attrs:{type:"text",name:"Cpu","aria-label":"Small","aria-describedby":"inputGroup-sizing-sm",placeholder:"Limit CPU e.g. 0.50"},domProps:{value:t.deploy.cpu},on:{keyup:function(e){return t.isValid("cpu")},input:function(e){e.target.composing||t.$set(t.deploy,"cpu",e.target.value)}}}),s("div",{staticClass:"input-group-append"},[s("button",{staticClass:"ti-info btn btn-outline-secondary",attrs:{round:"",type:"button"},on:{click:function(e){return t.showInfo("cpu")}}})])]),s("span",{staticClass:"hybrid-field-error"},[t._v(t._s(a[0]))])]}}])})],1),s("b-col",{attrs:{cols:"4"}},[s("ValidationProvider",{ref:"hybrid_memory",attrs:{name:"Memory",rules:"required|alpha_num_memory"},scopedSlots:t._u([{key:"default",fn:function(e){var a=e.errors;e.ariaMsg,e.ariaInput,e.valid,e.invalid;return[s("div",{staticClass:"input-group input-group-sm sm-3"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.deploy.memory,expression:"deploy.memory"}],staticClass:"form-control",class:{"is-valid":1==t.isDeployValid.memory,"is-invalid":2==t.isDeployValid.memory},attrs:{type:"text",name:"Memory","aria-label":"Small","aria-describedby":"inputGroup-sizing-sm",placeholder:"Limit Memory e.g. 500"},domProps:{value:t.deploy.memory},on:{keyup:function(e){return t.isValid("memory")},input:function(e){e.target.composing||t.$set(t.deploy,"memory",e.target.value)}}}),s("div",{staticClass:"input-group-append"},[s("button",{staticClass:"ti-info btn btn-outline-secondary",attrs:{round:"",type:"button"},on:{click:function(e){return t.showInfo("memory")}}})])]),s("span",{staticClass:"hybrid-field-error"},[t._v(t._s(a[0]))])]}}])})],1),s("b-col",{attrs:{cols:"4"}},[s("ValidationProvider",{ref:"hybrid_networkport",attrs:{name:"Networkport",rules:"mybetween:1,65535"},scopedSlots:t._u([{key:"default",fn:function(e){var a=e.errors;e.ariaMsg,e.ariaInput,e.valid,e.invalid;return[s("div",{staticClass:"input-group input-group-sm sm-3"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.deploy.networkport,expression:"deploy.networkport"}],staticClass:"form-control",class:{"is-valid":1==t.isDeployValid.networkport,"is-invalid":2==t.isDeployValid.networkport},attrs:{type:"text",name:"Networkport","aria-label":"Small","aria-describedby":"inputGroup-sizing-sm",placeholder:"Net Port (inside the container)"},domProps:{value:t.deploy.networkport},on:{keyup:function(e){return t.isValid("networkport")},input:function(e){e.target.composing||t.$set(t.deploy,"networkport",e.target.value)}}}),s("div",{staticClass:"input-group-append"},[s("button",{staticClass:"ti-info btn btn-outline-secondary",attrs:{round:"",type:"button"},on:{click:function(e){return t.showInfo("networkport")}}})])]),s("span",{staticClass:"hybrid-field-error"},[t._v(t._s(a[0]))])]}}])})],1)],1),s("b-row",[s("b-col",{attrs:{cols:"12"}},[s("ValidationProvider",{ref:"hybrid_url",attrs:{name:"Url",rules:"required|alpha_url"},scopedSlots:t._u([{key:"default",fn:function(e){var a=e.errors;e.ariaMsg,e.ariaInput,e.valid,e.invalid;return[s("div",{staticClass:"input-group input-group-sm sm-3"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.deploy.url,expression:"deploy.url"}],staticClass:"form-control",class:{"is-valid":1==t.isDeployValid.url,"is-invalid":2==t.isDeployValid.url},attrs:{type:"text",name:"Url","aria-label":"Small","aria-describedby":"inputGroup-sizing-sm",placeholder:"link to README file (see info button for more)"},domProps:{value:t.deploy.url},on:{keyup:function(e){return t.isValid("url")},input:function(e){e.target.composing||t.$set(t.deploy,"url",e.target.value)}}}),s("div",{staticClass:"input-group-append"},[s("button",{staticClass:"ti-info btn btn-outline-secondary",attrs:{round:"",type:"button"},on:{click:function(e){return t.showInfo("url")}}})])]),s("span",{staticClass:"hybrid-field-error"},[t._v(t._s(a[0]))])]}}])})],1)],1),s("b-row",[s("b-col",{attrs:{cols:"6"}},[s("div",{staticClass:"input-group input-group-sm mb-3"},[s("div",{staticClass:"input-group-prepend"},[s("button",{staticClass:"btn btn-outline-secondary",attrs:{type:"button"}},[t._v("Start date ")])]),s("date-picker",{attrs:{type:"date",autocomplete:"off",format:"YYYY-MM-DD",lang:"en"},model:{value:t.deploy.startdate,callback:function(e){t.$set(t.deploy,"startdate",e)},expression:"deploy.startdate"}})],1)]),s("b-col",{attrs:{cols:"6"}},[s("div",{staticClass:"input-group input-group-sm mb-3"},[s("div",{staticClass:"input-group-prepend"},[s("button",{staticClass:"btn btn-outline-secondary",attrs:{type:"button"}},[t._v("Start time")])]),s("date-picker",{attrs:{type:"time",format:"HH:mm","show-hour":"","show-minute":"","time-picker-options":t.timePickerOptions,lang:"en"},model:{value:t.deploy.starttime,callback:function(e){t.$set(t.deploy,"starttime",e)},expression:"deploy.starttime"}})],1)])],1),s("b-row",[s("b-col",{attrs:{cols:"6"}},[s("div",{staticClass:"input-group input-group-sm mb-3"},[s("div",{staticClass:"input-group-prepend"},[s("button",{staticClass:"btn btn-outline-secondary",attrs:{type:"button"}},[t._v("End date ")])]),s("date-picker",{attrs:{type:"date",autocomplete:"off",format:"YYYY-MM-DD",lang:"en"},model:{value:t.deploy.enddate,callback:function(e){t.$set(t.deploy,"enddate",e)},expression:"deploy.enddate"}})],1)]),s("b-col",{attrs:{cols:"6"}},[s("div",{staticClass:"input-group input-group-sm mb-3"},[s("div",{staticClass:"input-group-prepend"},[s("button",{staticClass:"btn btn-outline-secondary",attrs:{type:"button"}},[t._v("End time")])]),s("date-picker",{attrs:{type:"time",format:"HH:mm","show-hour":"","show-minute":"","time-picker-options":t.timePickerOptions,lang:"en"},model:{value:t.deploy.endtime,callback:function(e){t.$set(t.deploy,"endtime",e)},expression:"deploy.endtime"}})],1)])],1),s("b-row",[s("b-col",{attrs:{cols:"6"}},[s("div",{staticClass:"input-group input-group-sm sm-3"},[s("div",{staticClass:"input-group-prepend"},[s("button",{staticClass:"ti-cloud-up btn btn-outline-success",attrs:{round:"",type:"button",title:"Deploy"},on:{click:function(e){return t.add_deploy()}}},[t._v(" Deploy ")])])])]),s("b-col",{attrs:{cols:"2"}}),s("b-col",{attrs:{cols:"4"}},[s("div",{staticClass:"custom-control custom-switch"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.deploy.usersjoin,expression:"deploy.usersjoin"}],staticClass:"custom-control-input",attrs:{type:"checkbox",id:"customStack",value:"true","unchecked-value":"false"},domProps:{checked:Array.isArray(t.deploy.usersjoin)?t._i(t.deploy.usersjoin,"true")>-1:t.deploy.usersjoin},on:{change:function(e){var a=t.deploy.usersjoin,s=e.target,i=!!s.checked;if(Array.isArray(a)){var o="true",n=t._i(a,o);s.checked?n<0&&t.$set(t.deploy,"usersjoin",a.concat([o])):n>-1&&t.$set(t.deploy,"usersjoin",a.slice(0,n).concat(a.slice(n+1)))}else t.$set(t.deploy,"usersjoin",i)}}}),s("label",{staticClass:"custom-control-label",attrs:{for:"customStack"}},[t._v("Users can join the lab instance")])])])],1)],1)],1)},Ia=[],Ba=a("ec45");a("411c");Object(B["b"])("alpha_num",N["a"]),Object(B["b"])("mybetween",N["b"]),Object(B["b"])("mybetween",{message:"The {_field_} field must be a number: 1-65535"}),Object(B["b"])("alpha_num_image",t=>{var e=new RegExp(/^[A-Za-z0-9\:\.\-\_\/]+$/,"i");return!!e.test(t)||"The {_field_} field may contain alphabetic characters, numbers, colons, hyphens, slashes, dots and underscores"}),Object(B["b"])("alpha_num_name",t=>{var e=new RegExp(/^[A-Za-z0-9]+$/,"i");return!!e.test(t)||"The {_field_} field may contain alphabetic characters and numbers"}),Object(B["b"])("alpha_num_cpu",t=>{var e=new RegExp(/^(?!0\d)\d+(?:\.\d{1})?$/);return!!e.test(t)||"The {_field_} field may contain numbers and dots e.g 0.5"}),Object(B["b"])("alpha_num_memory",t=>{var e=new RegExp(/^[0-9]+$/,"i");return!!e.test(t)||"The {_field_} field may contain numbers e.g 500"}),Object(B["b"])("alpha_url",t=>{var e=new RegExp(/https?:\/\/(git\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,4}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/,"i");return!!e.test(t)||"The {_field_} field may contain url"}),Object(B["b"])("required",{...N["c"],message:"This field is required"});var Na={components:{DatePicker:Ba["a"],ValidationProvider:B["a"],card:k},props:{},data(){return{isHybridError:!1,isHybridSuccess:!1,token:"",timePickerOptions:{start:"00:00",step:"00:30",end:"23:30"},deploy:{usersjoin:!0},isDeployValid:{image:3,name:3,stackname:3,network:3,url:3,cpu:3,memory:3},isDeployError:{}}},mounted(){},created(){var t=window.location.href,e=new URL(t);this.token=e.searchParams.get("token")},beforeDestroy(){},computed:{},methods:{async add_deploy(){var t=Object.entries(this.deploy),e=new Promise((e,a)=>{t.forEach((t,a,s)=>{this.isValid(s[a][0]),a===s.length-1&&e()})});e.then(()=>{(async()=>{var t=!0;for(const[a,s]of Object.entries(this.isDeployValid))1!=s&&(t=!1);if(t){await v.dispatch("pipelineLLO/adddeploy",{token:this.token,deploy:this.deploy});this.$root.$emit("hybrid_refresh_bootstrap_view");var e='
The deploy process is started
Please wait for it to finish before trying again!
See also in "Manage your deployments" table';this.$swal({type:"Info",title:"Info!",icon:"info",html:e,showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,cancelButtonText:"No, cancel!",showCancelButton:!1,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!0,confirmButtonText:"Ok!"})}else{e="Missing required fields";this.$swal({type:"Info",title:"Info!",icon:"info",html:e,showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,cancelButtonText:"No, cancel!",showCancelButton:!1,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!0,confirmButtonText:"Ok!"})}})()})},async showInfo(t){if("image"==t)var e='
To start, we need to have a docker image \n We have built some. You can find it here: Menu "Images"
\n \n \n The field may contain alphabetic characters, numbers, colons, hyphens, slashes, dots and underscores\n';else if("stackname"==t)e="
To start, we need to have a Stack Name \n This will bring up all the services, volumes, networks and everything else in an isolated environment.\n\n \n \n The field may contain alphabetic characters and numbers\n";else if("network"==t)e="
To start, we need to have a Network \n This will bring up all the services, volumes, networks and everything else in an isolated network environment.\n \n \nServices running inside any of this networks containers have access (not limited by any firewall) to all other services.\n \n
\n \n \n The field may contain alphabetic characters and numbers\n\n";else if("url"==t)e="
Git Repo url
\n The location of the file describing your service. (most comonly README) \n \n\n
\n \n \n The field may contain any valid url BUT it must be under https://git.swarmlab.io\n";else if("networkport"==t)e="
Network Port
\n \n
\nBy default, when you create a container, it does not publish any of its ports to the outside world. \n \nTo make a port available to Services which are not connected to the Stack network, we use this port. \n
\n \n
\n\nTo make a service available we have to know the port number used by these service inside the container.\n\n \nPlease insert that here.\n
\n \n \n(The port for outside connections is automatically generated and you dont have to worry about it!)\n \n \n The field may contain numbers\n";else if("cpu"==t)e="
To start, we need to have a CPU Limit \n Limit the specific CPUs or cores a container can use\n\n \n \nThe field may contain numbers and dots e.g 0.5\n";else if("memory"==t)e="
To start, we need to have a Memory Limit \n
Limit the specific Memoty a container can use \ne.g 200\n \n(MB)\n\n \n \n
\n\nIt is important not to allow a running container to consume too much of the host machine’s memory.\n\n
\n \n \n The field may contain numbers\n";else if("name"==t)e="
To start, we need to have a Name \nThis name is only for your own use. The system completely disregards it!\n
\n \n`;this.$swal({type:"Info",title:"Course Info!",icon:"info",html:u,showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,cancelButtonText:"No, cancel!",showCancelButton:!1,showLoaderOnConfirm:!1,reverseButtons:!0,focusCancel:!0,confirmButtonText:"Ok!"})}this.getprogress(this.datadir)},refreshVuetable(){this.$nextTick(()=>{this.vuetablekeyf+=1})},playbookinfoShow(t){return this.visibility[t]=!0},playbookinfo(t){return this.playbookInfo=t},rowClicked(t,e){return{html:!0,title:()=>"Hello Popover: "+ ++this.counter,content:()=>"The date is: "+new Date+""}},loadsuccess(t){var e=t.data.data;this.fielddata=e;e.length},onLoadError(t){"401"==t.response.status&&(window.location.href="https://api-login.swarmlab.io:8089",s["default"].nextTick(()=>window.location.href="https://api-login.swarmlab.io:8089"))}},actions:{}},is=ss,os=(a("cc7b"),Object(_["a"])(is,es,as,!1,null,null,null)),ns=os.exports,rs=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("card",{staticClass:"card-user",staticStyle:{"max-height":"100%"}},[s("div",{staticClass:"author"},["asciidoc"==t.hybridshow?s("img",{staticClass:"avatar border-white",attrs:{src:a("3784"),alt:"..."}}):t._e(),"asciinema"==t.hybridshow?s("img",{staticClass:"avatar border-white",attrs:{src:a("3606"),alt:"..."}}):t._e(),"video"==t.hybridshow?s("img",{staticClass:"avatar border-white",attrs:{src:a("2e15"),alt:"..."}}):t._e()]),s("v-wait",{attrs:{for:"myRunInstancetutor"}},[s("template",{slot:"waiting"},[s("div",[s("img",{attrs:{src:a("cf1c")}}),t._v(" Enter Lab_room... ")])])],2),s("b-container",{attrs:{fluid:""}},["asciinema"==t.hybridshow?s("div",{staticClass:"row text-center"},[s("div",{staticClass:"col-12"},[s("b",[t._v("Copy & Paste")]),s("br"),t._v(" Any time you see a command you'd like to try in your own terminal just pause the player "),s("br"),t._v(" and copy-paste the content you want. ")]),s("div",{staticClass:"col-12"},[s("iframe",{attrs:{id:"llo",title:"title",width:"600",height:"700",src:t.asciinemasource,allowfullscreen:"",frameborder:"0"}})])]):t._e(),"video"==t.hybridshow?s("div",{staticClass:"row text-center"},[s("iframe",{attrs:{id:"llo",width:"740",height:"500",src:t.sourcevimeo,allowfullscreen:"",frameborder:"0"},on:{load:function(e){return t.dofin()}}})]):t._e(),"asciidoc"==t.hybridshow?s("div",{staticClass:"row text-center"},[s("div",{staticClass:"col-12"},[s("iframe",{attrs:{id:"lloasciiview1",title:"title",width:"100%",height:"700",src:t.asciidocurl,frameborder:"0"}})])]):t._e(),"penguin"==t.hybridshow?s("div",{staticClass:"row text-center"},[s("div",{staticClass:"col-12"},[s("img",{attrs:{src:a("4cc0"),width:"400",height:"400"}})])]):t._e()]),s("hr"),"penguin"!=t.hybridshow?s("b-container",{staticClass:"bv-example-row",attrs:{fluid:""}},[s("div",{staticClass:"col-12"},[s("div",{staticClass:"input-group input-group-sm sm-3"},[s("select",{directives:[{name:"model",rawName:"v-model",value:t.completiontracking,expression:"completiontracking"}],staticClass:"custom-select custom-select-sm",on:{change:[function(e){var a=Array.prototype.filter.call(e.target.options,(function(t){return t.selected})).map((function(t){var e="_value"in t?t._value:t.value;return e}));t.completiontracking=e.target.multiple?a:a[0]},function(e){return t.oncompletiontracking()}]}},[s("option",{attrs:{value:"0",selected:""}},[t._v("Completion tracking")]),s("option",{attrs:{value:"1"}},[t._v("Completed")]),s("option",{attrs:{value:"2"}},[t._v("Almost")])]),s("select",{directives:[{name:"model",rawName:"v-model",value:t.courseread,expression:"courseread"}],staticClass:"custom-select custom-select-sm",on:{change:[function(e){var a=Array.prototype.filter.call(e.target.options,(function(t){return t.selected})).map((function(t){var e="_value"in t?t._value:t.value;return e}));t.courseread=e.target.multiple?a:a[0]},function(e){return t.oncompletiontracking()}]}},[s("option",{attrs:{value:"0",selected:""}},[t._v("Did you find this helpful?")]),s("option",{attrs:{value:"1"}},[t._v("No")]),s("option",{attrs:{value:"2"}},[t._v("Not really/A bit")]),s("option",{attrs:{value:"3"}},[t._v("Yes")])])])])]):t._e()],1)},ls=[],cs=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("iframe",{attrs:{id:"llo",title:t.title,width:t.width,height:t.height,src:t.source,allowfullscreen:"",frameborder:"0"}})},ds=[],us={props:{title:"",course:"",llo:""},data(){return{source:`http://localhost:3080/player/aplayer.html?llo=${this.llo}&item=${this.course}`,width:"600",height:"750"}},mounted(){}},ms=us,ps=Object(_["a"])(ms,cs,ds,!1,null,null,null),hs=ps.exports,bs=a("97a1"),vs=a.n(bs),fs={components:{aplayer:hs,card:k},props:{},data(){return{vtype:"",completiontracking:0,courseread:0,hybridshow:"penguin",llo:"",llocourse:"",llochapter:"",asciidocurl:"",asciidoccode:"",course:"",asciinemasource:"",coursevimeo:"",hybridcourse:"",token:""}},mounted(){this.$root.$on("hybrid_llo_viecourse",t=>{this.completiontracking=0,this.courseread=0,this.llocourse=t.llo,this.llochapter=t.course,"asciinema"==t.type?(this.hybridshow=t.type,this.llo=t.llo,this.course=t.course,this.asciinemasource=`http://localhost:3080/player/aplayer.html?llo=${this.llo}&item=${this.course}`,this.getcompletion()):"asciidoc"==t.type?(this.asciidoccode=t.code,this.vtype=t.type,this.addlloascii(),this.getcompletion()):"video"==t.type&&(this.$wait.start("myRunInstancetutor"),this.hybridshow=t.type,this.sourcevimeo="https://player.vimeo.com/video/"+t.course,this.getcompletion())})},created(){var t=window.location.href,e=new URL(t);this.token=e.searchParams.get("token")},beforeDestroy(){this.$root.$off("hybrid_llo_viecourse")},computed:{},methods:{async getcompletion(){var t={};t.token=this.token,t.course=this.llocourse,t.chapter=this.llochapter;var e=await v.dispatch("pipelineLLO/getcompletion",t);console.log("params "+JSON.stringify(e)),"ok"==e.data.action&&e.data.data&&(this.completiontracking=e.data.data.track,this.courseread=e.data.data.evaluation)},async oncompletiontracking(){var t={};t.token=this.token,t.action="track",t.track=this.completiontracking,t.evaluation=this.courseread,t.course=this.llocourse,t.chapter=this.llochapter;await v.dispatch("pipelineLLO/oncompletiontracking",t);this.$root.$emit("hybrid_progress_refresh")},dofin(){this.$wait.end("myRunInstancetutor")},async addlloascii(){var t=this.asciidoccode;try{var e=vs()(),a=e.convert(t,{standalone:!0,backend:"html5",header_footer:!1,doctype:"article",safe:"safe",attributes:{"source-highlighter":"highlightjs",sectnums:!0,icons:"font",copycss:!0,stylesheet:"http://cdnjs.cloudflare.com/ajax/libs/asciidoctor.js/1.5.9/css/asciidoctor.min.css","iconfont-cdn":"http://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.14.0/css/all.min.css","iconfont-name":"fontawesome-5-14.0","iconfont-remote":!0,linkcss:!0}}),s=await v.dispatch("pipelineLLO/save_llo_asciidoctmp",a);"nofile"==s.data?console.log("no write permission"):(this.asciidocurl=`http://localhost:3080/asciidoc/${s.data.data}.html?token=${this.token}`,this.hybridshow="no",this.hybridshow=this.vtype)}catch(i){return void console.log(" ascerror "+JSON.stringify(i))}}},actions:{}},ws=fs,gs=(a("4844"),Object(_["a"])(ws,rs,ls,!1,null,null,null)),ys=gs.exports,_s={components:{card:k,MylloSearch:ns,MylloView:ys},data(){return{loading:!1,consoleView:"off",productIndex:1}},mounted(){},beforeDestroy(){},created(){}},Cs=_s,ks=Object(_["a"])(Cs,Xa,ts,!1,null,null,null),xs=ks.exports,As=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("card",{staticClass:"card-user",staticStyle:{"max-height":"100%"}},[s("div",{staticClass:"row"},[s("div",{staticClass:"col-8 order-first "},[s("br"),s("calendar-view")],1),s("div",{staticClass:"col-4 order-last"},[s("br"),s("b-container",{directives:[{name:"show",rawName:"v-show",value:1==t.hybridshowlog,expression:"hybridshowlog==1"}],attrs:{fluid:""}},[s("div",{staticClass:"row text-center"},[s("div",{staticClass:"col-12"},[s("img",{staticClass:"border-white",attrs:{src:a("10cc"),alt:"..."}})])])])],1)])])},Os=[],Rs=function(){var t=this,e=t.$createElement;t._self._c;return t._m(0)},$s=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{attrs:{id:"appcalendar"}},[a("div",{staticClass:"calendar-parent overflow-auto"},[a("h1",[t._v("Welcome to Swarmlab!")]),a("h3",[t._v(" An open source work/study-from-home application. ")]),a("br"),a("h5",[t._v(" Swarmlab provides you with all the required tools, tools to teach work or try out demos in a completely virtual environment. ")]),a("br"),a("div",[a("p",[a("b",[t._v("Swarmlab is a collection of services that aims to:")]),a("ul",[a("li",[t._v(" provide "),a("b",[t._v("teachers and professors")]),t._v(" with online remote tools to do their lessons")]),a("li",[t._v(" give "),a("b",[t._v("students")]),t._v(" the opportunity to study real life examples in their chosen area of expertise ")]),a("li",[t._v(" allow "),a("b",[t._v("developers")]),t._v(" to fully test and debug their applications and provide POC’s")])])])]),a("br"),a("p",[t._v("Swarmlab, up and running since 2020, is already used for teaching purposes in a university and has proven itself as a powerful tool in the post covid remote-based situation.")]),a("br"),a("h3",[t._v("As of now the services provided by swarmlab are:")]),a("ul",[a("li",[a("b",[t._v("Labrooms")]),t._v("(virtual classrooms in the form of model applications to be tweaked at will)")]),a("ul",[a("li",[t._v(" linux → base linux system – designed for use as a base to further develop your app")]),a("li",[t._v(" MPI → Instances of Ubuntu Linux with MPICH — portable implementation of Message Passing Interface (MPI) standard. Designed for MPI program development and deployment.")]),a("li",[t._v(" Node.js")]),a("li",[t._v(" sec → a basic linux-based os with security tools – designed as a template for apps")])])]),a("ul",[a("li",[a("b",[t._v("Storage")]),t._v(" to automatically create a cluster of databases.")])]),a("ul",[a("li",[a("b",[t._v("Proof Of Concept")]),t._v(" (POC) options ")]),a("ul",[a("li",[t._v(" datacollector → using provided services a fully developed application may collect data from a swarm and use it for further analysis")])])]),a("li",[a("b",[t._v("Microservices")])]),a("ul",[a("li",[t._v(" Jupyter ")]),a("li",[t._v(" numpy")]),a("li",[t._v(" scipy")]),a("li",[t._v(" nodejs")]),a("li",[t._v(" nginx")]),a("li",[t._v(" haproxy")]),a("li",[t._v(" gns3")]),a("li",[t._v(" wireshark")]),a("li",[t._v(" snmpsim")]),a("li",[t._v(" xelatexthesis")]),a("li",[t._v(" ansible")]),a("li",[t._v(" etherpad")]),a("li",[t._v(" codeserver (vscode)")]),a("li",[t._v(" redisserver")]),a("li",[t._v(" mongoserver")]),a("li",[t._v(" mongoclient (GUI)")])]),a("h5",[a("i",[t._v("to be continued… ")])]),a("h5",[t._v(" And all the above using just the command line and a Browser of your system! ")])])])}],Ls=a("be6a");a("8bb7"),a("88ef");var Ss={components:{card:k,CalendarView:Ls["b"],CalendarViewHeader:Ls["c"]},mixins:[Ls["a"]],data(){return{showDate:this.thisMonth(1),message:"",startingDayOfWeek:1,disablePast:!1,disableFuture:!1,displayPeriodUom:"month",displayPeriodCount:1,displayWeekNumbers:!0,showTimes:!1,selectionStart:null,selectionEnd:null,newItemTitle:"",newItemStartDate:"",newItemEndDate:"",useDefaultTheme:!0,useHolidayTheme:!1,useTodayIcons:!0,timeFormatOptions:{hour:"numeric",minute:"numeric",hour12:!1,timeZone:"Europe/Athens"},begindate:"",enddate:"",items:[]}},computed:{getevents4month(){},userLocale(){return this.getDefaultBrowserLocale},dayNames(){return this.getFormattedWeekdayNames(this.userLocale,"long",0)},themeClasses(){return{"theme-default":this.useDefaultTheme,"holiday-us-traditional":this.useHolidayTheme,"holiday-us-official":this.useHolidayTheme}}},mounted(){this.newItemStartDate=this.isoYearMonthDay(this.today()),this.newItemEndDate=this.isoYearMonthDay(this.today());const t=new Date;let e=t.getFullYear(),a=(t.getMonth()+1).toString().padStart(2,"0"),s="01";this.begindate=`${e}-${a}-${s}`,this.enddate=`${e}-${a}-31`,this.getevents()},methods:{async getevents(){var t={};t.begin=this.begindate,t.end=this.enddate;var e=await v.dispatch("pipelineLLO/getevents",t);this.items=e.data.result},periodChanged(t){let e=t.periodStart,a=e.getFullYear(),s=(e.getMonth()+1).toString().padStart(2,"0"),i=e.getDate().toString().padStart(2,"0");this.begindate=`${a}-${s}-${i}`;let o=t.periodEnd,n=o.getFullYear(),r=(o.getMonth()+1).toString().padStart(2,"0"),l=o.getDate().toString().padStart(2,"0");this.enddate=`${n}-${r}-${l}`,this.getevents()},thisMonth(t,e,a){const s=new Date;return new Date(s.getFullYear(),s.getMonth(),t,e||0,a||0)},onClickDay(t){this.selectionStart=null,this.selectionEnd=null,this.message="You clicked: "+t.toLocaleDateString()},onClickItem(t){this.message="You clicked: "+t.title,this.$root.$emit("hybrid_labobject_view",t)},setShowDate(t){this.message="Changing calendar view to "+t.toLocaleDateString(),this.showDate=t},setSelection(t){this.selectionEnd=t[1],this.selectionStart=t[0]},finishSelection(t){this.setSelection(t),this.message=`You selected: ${this.selectionStart.toLocaleDateString()} -${this.selectionEnd.toLocaleDateString()}`},onDrop(t,e){this.message=`You dropped ${t.id} on ${e.toLocaleDateString()}`;const a=this.dayDiff(t.startDate,e);t.originalItem.startDate=this.addDays(t.startDate,a),t.originalItem.endDate=this.addDays(t.endDate,a)},clickTestAddItem(){this.items.push({startDate:this.newItemStartDate,endDate:this.newItemEndDate,title:this.newItemTitle,id:"e"+Math.random().toString(36).substr(2,10)}),this.message="You added a calendar item!"}}},Is=Ss,Bs=(a("c5ed"),Object(_["a"])(Is,Rs,$s,!1,null,null,null)),Ns=Bs.exports,Es={components:{card:k,CalendarView:Ns},data(){return{hybridshowlog:1,loading:!1,consoleView:"off",productIndex:1}},mounted(){this.$root.$on("hybrid_labobject_view",t=>{this.hybridshowlog=2})},beforeDestroy(){},created(){}},Ps=Es,Ds=Object(_["a"])(Ps,As,Os,!1,null,null,null),Ts=Ds.exports,Vs=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("card",{staticClass:"card-user",staticStyle:{"max-height":"100%"}},[a("div",{staticClass:"row"},[a("div",{staticClass:"col-12 order-first "},[a("br"),a("dashboard-view")],1)])])},Fs=[],Gs=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("b-container",{staticClass:"bv-example-row",attrs:{fluid:""}},[s("div",{staticClass:"row h-50"},[s("div",{staticClass:"col-sm-6 text-center"},[s("v-wait",{attrs:{for:"stats_stats_imagescontainers"}},[s("template",{slot:"waiting"},[s("div",[s("img",{attrs:{src:a("cf1c"),width:"50",height:"50"}}),t._v(" Build Stats... ")])])],2),s("div",{staticClass:"card h-50 shadow p-3 mb-5 bg-white rounded"},[s("v-chart",{key:t.stats_stats_imagescontainers,staticClass:"chart",staticStyle:{"min-width":"100%"},attrs:{option:t.optionsystem}})],1)],1),s("div",{staticClass:"col-sm-6 text-center"},[s("v-wait",{attrs:{for:"wait_stats_stats_container"}},[s("template",{slot:"waiting"},[s("div",[s("img",{attrs:{src:a("cf1c"),width:"50",height:"50"}}),t._v(" Build Stats... ")])])],2),s("div",{staticClass:"card h-50 shadow p-3 mb-5 bg-white rounded"},[s("v-chart",{key:t.stats_stats_container,staticClass:"chart",staticStyle:{"min-width":"100%"},attrs:{option:t.optiondocker}})],1)],1)])])},zs=[],Ms=a("22b4"),js=a("f95e"),Us=a("49bb"),Ys=a("4cb5"),qs=a("9394"),Hs=a("2da7"),Ks=a("ff32"),Ws=a("4b2a"),Qs=a("5c7f");Object(Ms["a"])([js["a"],Us["a"],qs["a"],Hs["a"],Ks["a"],Ws["a"],Ys["a"]]);var Js={components:{card:k,VChart:Qs["b"]},provide:{[Qs["a"]]:"white"},data(){return{stats_stats_imagescontainers:0,stats_stats_container:0,stats_stats_volume:0,width:document.documentElement.clientWidth,height:document.documentElement.clientHeight,optiondocker:{height:"100%",width:"100%",responsive:!0,maintainAspectRatio:!1,title:{text:"Containers Memory",left:"center"},tooltip:{trigger:"item",formatter:"{a} {b} : {c} ({d}%)"},series:[{name:"Container Memory",type:"pie",radius:"55%",center:["50%","60%"],data:[],emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}}}]},optionsystem:{title:{text:"Images/Containers"},tooltip:{trigger:"axis",axisPointer:{type:"shadow"}},legend:{},grid:{left:"3%",right:"4%",bottom:"3%",containLabel:!0},xAxis:{type:"value",boundaryGap:[0,.01]},yAxis:{type:"category",data:["Containers","Images"]},series:[{name:"TOTAL",type:"bar",emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}}},{name:"ACTIVE",type:"bar",emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}}}]}}},mounted(){window.addEventListener("resize",this.getDimensions)},created(){var t=window.location.href,e=new URL(t);this.token=e.searchParams.get("token"),(async()=>{this.$wait.start("stats_stats_imagescontainers"),this.$wait.start("wait_stats_stats_container"),this.$wait.start("wait_stats_stats_volume");for(var t=await v.dispatch("pipelineLLO/get_stats_imagescontainers",{token:this.token,action:"images_containers"}),e=t.data.data.length,a=t.data.data,s=0;s{this.hybridshowlog=2})},beforeDestroy(){},created(){}},ai=ei,si=Object(_["a"])(ai,Vs,Fs,!1,null,null,null),ii=si.exports,oi={name:"app",components:{card:k,NetworkTable:Ft,ViewDashboard:Ts,ViewDashboardall:ii,ServicesTable:Jt,ConnectServer:X,ManageServices:ce,ManageStorage:_e,ManageMicroservices:Fe,ManageMymicroservices:Ye,ManageProofofconcept:sa,ManageBuilders:Ra,ManageDeploy:Za,ManageLlo:xs},data(){return{warning:!0,componentKeyreload:1,componentKeyreload1:1,componentKeyreload2:1,componentKeyreload3:1,mycomponentKeyreload3:1,componentKeyreload4:1,componentKeybuilders:1,setStatusAgent:"",issocket:!1,isconnect:!1,activeItem:"",activeItemSub:"",sidemenou:"max",hybridmenou:"dashboard",show:!0,token:"",SwarmabAsciiLabTemplate:""}},mounted(){this.$root.$on("hybrid_server_status",t=>{this.serverstatus()})},beforeDestroy(){this.$root.$off("hybrid_server_status")},created(){},methods:{setWarning(){this.warning=!1},async onAction(t){if("check"==t){if(this.$socket.disconnected)var e="close";else if(this.$socket.connected)e="open";if(this.isconnect);else;var a="Status ";a+="Agent is "+e+" ",this.$swal({type:"info",html:a,showCloseButton:!0,showLoaderOnConfirm:!1,allowOutsideClick:!1,showCancelButton:!0,showLoaderOnConfirm:!1,focusCancel:!0,confirmButtonText:"Yes, Reconnect!"}).then(t=>{this.reconnenting(t)})}},async reconnenting(t){t.value&&(this.componentKeyreload+=1,this.componentKeyreload1+=1,this.componentKeyreload2+=1,this.componentKeyreload3+=1,this.mycomponentKeyreload3+=1,this.componentKeyreload4+=1,this.componentKeybuilders+=1)},async serverstatus(t){var e=v.getters["pipelineLLO/getstatus"];"active"==e.data.swarmlab&&"Online"==e.data.hybrid?this.isconnect=!0:this.isconnect=!1},onActionMenu(t){"max"==t?this.sidemenou="max":"min"==t&&(this.sidemenou="min")},hybrid(t){this.hybridmenou=t,"bootstrap"==t?(this.$root.$emit("hybrid_console_not_view",!0),this.$root.$emit("hybrid_refresh_dockerservices")):"dashboard"==t?(this.$root.$emit("hybrid_console_not_view",!0),console.log("dashboard "+t)):"dashboardall"==t?(this.$root.$emit("hybrid_console_not_view",!0),console.log("dashboardall "+t)):"connect-server"==t?(this.$root.$emit("hybrid_console_not_view",!0),this.$root.$emit("hybrid_connect_server")):"llo"==t?(this.$root.$emit("hybrid_console_not_view",!0),console.log("llo "+t)):"services"==t?(this.$root.$emit("hybrid_console_not_view",!0),this.$root.$emit("hybrid_refresh_availableservices")):"manage_service"==t||"storage"==t?this.$root.$emit("hybrid_console_not_view",!0):"microservice"==t?this.$root.$emit("hybrid_console_not_view",!1):"proofofconcept"==t&&this.$root.$emit("hybrid_console_not_view",!0)},isActive:function(t){return this.activeItem===t},isActiveSub:function(t){return this.activeItemSub===t},setActive:function(t,e){this.activeItem=t,this.activeItemSub=e},showdiscl(){var t='Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:';t+=" ",t+=" ",t+="1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.",t+=" ",t+=" ",t+="2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.",t+=" ",t+=" ",t+="3. Neither the name of Swarmlab.io nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.",t+=" ",t+=" ",t+="THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.";let e='
\n \n \n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./availableservices.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./availableservices.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./availableservices.vue?vue&type=template&id=62a1a569&\"\nimport script from \"./availableservices.vue?vue&type=script&lang=js&\"\nexport * from \"./availableservices.vue?vue&type=script&lang=js&\"\nimport style0 from \"./availableservices.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n \n\n
\n
\n\t\t\t\t\n\t\t\t\t\n
\n
\n
\n
\n\t\t\t\t\n\t\t\t\t\n
\n
\n
\n\n
\n
\n \n \n\n \n
\n\n
\n \n \n\n \n
\n
\n\n\n \n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./myservices.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./myservices.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./myservices.vue?vue&type=template&id=83b04f5c&\"\nimport script from \"./myservices.vue?vue&type=script&lang=js&\"\nexport * from \"./myservices.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('card',{staticClass:\"card-user\",staticStyle:{\"max-height\":\"100%\"}},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12 order-first \"},[_c('br'),_c('myconnect-manage-server')],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('card',{staticClass:\"card-user\",staticStyle:{\"max-height\":\"100%\"}},[_c('div',{staticClass:\"author\"},[_c('img',{staticClass:\"avatar border-white\",attrs:{\"src\":require(\"@/assets/img/hybrid-1.png\"),\"alt\":\"...\"}})]),_c('div',{staticClass:\"card text-center\"},[_c('div',{staticClass:\"card-header\"}),_c('div',{staticClass:\"card-body\"},[_c('h2',{staticClass:\"card-title\"},[_vm._v(\" share with your friends \")]),_c('br'),_c('p',{staticClass:\"card-text\"}),_c('h4',[_vm._v(\"Swarmlab uses VENUS to create virtual networks and ensure your data safety. \"),_c('br'),_vm._v(\"If you choose to proceed VENUS will have to be installed on your PC.\")]),_c('p'),_c('a',{staticClass:\"btn btn-primary\",attrs:{\"href\":\"https://git.swarmlab.io:3000/swarmlab/venus-client\",\"target\":\"newwindow\"}},[_vm._v(\"Get VENUS here\")])]),_c('div',{staticClass:\"card-footer text-muted\"},[_c('b',[_vm._v(\"VENUS is an open source service developed and maintained by the swarmlab team. \")]),_c('br'),_c('br'),_c('h5',[_vm._v(\" Safety is ensured using wireguard. \")])])]),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-1 text-secondary\"}),_c('div',{staticClass:\"col-10 text-secondary\"},[_c('br')]),_c('div',{staticClass:\"col-1 text-secondary\"})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n
\n \n
\n\n\n\n\n\n\n\n\n\n\n\n\n
\n
\n
\n
\n
\n share with your friends\n
\n \n
\n
Swarmlab uses VENUS to create virtual networks and ensure your data safety. If you choose to proceed VENUS will have to be installed on your PC.
\n \n \n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./llo-search.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./llo-search.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./llo-search.vue?vue&type=template&id=199fa386&\"\nimport script from \"./llo-search.vue?vue&type=script&lang=js&\"\nexport * from \"./llo-search.vue?vue&type=script&lang=js&\"\nimport style0 from \"./llo-search.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('card',{staticClass:\"card-user\",staticStyle:{\"max-height\":\"100%\"}},[_c('div',{staticClass:\"author\"},[(_vm.hybridshow=='asciidoc')?_c('img',{staticClass:\"avatar border-white\",attrs:{\"src\":require(\"@/assets/img/book.png\"),\"alt\":\"...\"}}):_vm._e(),(_vm.hybridshow=='asciinema')?_c('img',{staticClass:\"avatar border-white\",attrs:{\"src\":require(\"@/assets/img/code-128.png\"),\"alt\":\"...\"}}):_vm._e(),(_vm.hybridshow=='video')?_c('img',{staticClass:\"avatar border-white\",attrs:{\"src\":require(\"@/assets/img/video1.png\"),\"alt\":\"...\"}}):_vm._e()]),_c('v-wait',{attrs:{\"for\":\"myRunInstancetutor\"}},[_c('template',{slot:\"waiting\"},[_c('div',[_c('img',{attrs:{\"src\":require(\"@/assets/loading.gif\")}}),_vm._v(\" Enter Lab_room... \")])])],2),_c('b-container',{attrs:{\"fluid\":\"\"}},[(_vm.hybridshow=='asciinema')?_c('div',{staticClass:\"row text-center\"},[_c('div',{staticClass:\"col-12\"},[_c('b',[_vm._v(\"Copy & Paste\")]),_c('br'),_vm._v(\" Any time you see a command you'd like to try in your own terminal just pause the player \"),_c('br'),_vm._v(\" and copy-paste the content you want. \")]),_c('div',{staticClass:\"col-12\"},[_c('iframe',{attrs:{\"id\":\"llo\",\"title\":\"title\",\"width\":\"600\",\"height\":\"700\",\"src\":_vm.asciinemasource,\"allowfullscreen\":\"\",\"frameborder\":\"0\"}})])]):_vm._e(),(_vm.hybridshow=='video')?_c('div',{staticClass:\"row text-center\"},[_c('iframe',{attrs:{\"id\":\"llo\",\"width\":\"740\",\"height\":\"500\",\"src\":_vm.sourcevimeo,\"allowfullscreen\":\"\",\"frameborder\":\"0\"},on:{\"load\":function($event){return _vm.dofin()}}})]):_vm._e(),(_vm.hybridshow=='asciidoc')?_c('div',{staticClass:\"row text-center\"},[_c('div',{staticClass:\"col-12\"},[_c('iframe',{attrs:{\"id\":\"lloasciiview1\",\"title\":\"title\",\"width\":\"100%\",\"height\":\"700\",\"src\":_vm.asciidocurl,\"frameborder\":\"0\"}})])]):_vm._e(),(_vm.hybridshow=='penguin')?_c('div',{staticClass:\"row text-center\"},[_c('div',{staticClass:\"col-12\"},[_c('img',{attrs:{\"src\":require(\"@/assets/img/penguin21a.png\"),\"width\":\"400\",\"height\":\"400\"}})])]):_vm._e()]),_c('hr'),(_vm.hybridshow!='penguin')?_c('b-container',{staticClass:\"bv-example-row\",attrs:{\"fluid\":\"\"}},[_c('div',{staticClass:\"col-12\"},[_c('div',{staticClass:\"input-group input-group-sm sm-3\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.completiontracking),expression:\"completiontracking\"}],staticClass:\"custom-select custom-select-sm\",on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.completiontracking=$event.target.multiple ? $$selectedVal : $$selectedVal[0]},function($event){return _vm.oncompletiontracking()}]}},[_c('option',{attrs:{\"value\":\"0\",\"selected\":\"\"}},[_vm._v(\"Completion tracking\")]),_c('option',{attrs:{\"value\":\"1\"}},[_vm._v(\"Completed\")]),_c('option',{attrs:{\"value\":\"2\"}},[_vm._v(\"Almost\")])]),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.courseread),expression:\"courseread\"}],staticClass:\"custom-select custom-select-sm\",on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.courseread=$event.target.multiple ? $$selectedVal : $$selectedVal[0]},function($event){return _vm.oncompletiontracking()}]}},[_c('option',{attrs:{\"value\":\"0\",\"selected\":\"\"}},[_vm._v(\"Did you find this helpful?\")]),_c('option',{attrs:{\"value\":\"1\"}},[_vm._v(\"No\")]),_c('option',{attrs:{\"value\":\"2\"}},[_vm._v(\"Not really/A bit\")]),_c('option',{attrs:{\"value\":\"3\"}},[_vm._v(\"Yes\")])])])])]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('iframe',{attrs:{\"id\":\"llo\",\"title\":_vm.title,\"width\":_vm.width,\"height\":_vm.height,\"src\":_vm.source,\"allowfullscreen\":\"\",\"frameborder\":\"0\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\t\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./asciiplayer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./asciiplayer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./asciiplayer.vue?vue&type=template&id=938d80c4&\"\nimport script from \"./asciiplayer.vue?vue&type=script&lang=js&\"\nexport * from \"./asciiplayer.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n \n\n
\n \n \n \n
\n \n \n
\n \n Enter Lab_room...\n
\n \n \n\n \n
\n\n
\n Copy & Paste \n \n Any time you see a command you'd like to try in your own terminal just pause the player and copy-paste the content you want.\n
\n
\n\t\n\n
\n
\n\n
\n \n
\n\n
\n
\n\t\n
\n
\n\n
\n
\n \n
\n
\n \n\n \n
\n\t\t
\n \n \n
\n
\n
\n \n\n \n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./llo-view.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./llo-view.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./llo-view.vue?vue&type=template&id=14952149&\"\nimport script from \"./llo-view.vue?vue&type=script&lang=js&\"\nexport * from \"./llo-view.vue?vue&type=script&lang=js&\"\nimport style0 from \"./llo-view.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n \n\n
\n
\n \n \n\n \n
\n\n
\n \n \n \n\n \n \n
\n
\n\n\n \n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./managello.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./managello.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./managello.vue?vue&type=template&id=01e26349&\"\nimport script from \"./managello.vue?vue&type=script&lang=js&\"\nexport * from \"./managello.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('card',{staticClass:\"card-user\",staticStyle:{\"max-height\":\"100%\"}},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-8 order-first \"},[_c('br'),_c('calendar-view')],1),_c('div',{staticClass:\"col-4 order-last\"},[_c('br'),_c('b-container',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hybridshowlog==1),expression:\"hybridshowlog==1\"}],attrs:{\"fluid\":\"\"}},[_c('div',{staticClass:\"row text-center\"},[_c('div',{staticClass:\"col-12\"},[_c('img',{staticClass:\"border-white\",attrs:{\"src\":require(\"@/assets/img/penguin/penguinfledgling2.png\"),\"alt\":\"...\"}})])])])],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"appcalendar\"}},[_c('div',{staticClass:\"calendar-parent overflow-auto\"},[_c('h1',[_vm._v(\"Welcome to Swarmlab!\")]),_c('h3',[_vm._v(\" An open source work/study-from-home application. \")]),_c('br'),_c('h5',[_vm._v(\" Swarmlab provides you with all the required tools, tools to teach work or try out demos in a completely virtual environment. \")]),_c('br'),_c('div',[_c('p',[_c('b',[_vm._v(\"Swarmlab is a collection of services that aims to:\")]),_c('ul',[_c('li',[_vm._v(\" provide \"),_c('b',[_vm._v(\"teachers and professors\")]),_vm._v(\" with online remote tools to do their lessons\")]),_c('li',[_vm._v(\" give \"),_c('b',[_vm._v(\"students\")]),_vm._v(\" the opportunity to study real life examples in their chosen area of expertise \")]),_c('li',[_vm._v(\" allow \"),_c('b',[_vm._v(\"developers\")]),_vm._v(\" to fully test and debug their applications and provide POC’s\")])])])]),_c('br'),_c('p',[_vm._v(\"Swarmlab, up and running since 2020, is already used for teaching purposes in a university and has proven itself as a powerful tool in the post covid remote-based situation.\")]),_c('br'),_c('h3',[_vm._v(\"As of now the services provided by swarmlab are:\")]),_c('ul',[_c('li',[_c('b',[_vm._v(\"Labrooms\")]),_vm._v(\"(virtual classrooms in the form of model applications to be tweaked at will)\")]),_c('ul',[_c('li',[_vm._v(\" linux → base linux system – designed for use as a base to further develop your app\")]),_c('li',[_vm._v(\" MPI → Instances of Ubuntu Linux with MPICH — portable implementation of Message Passing Interface (MPI) standard. Designed for MPI program development and deployment.\")]),_c('li',[_vm._v(\" Node.js\")]),_c('li',[_vm._v(\" sec → a basic linux-based os with security tools – designed as a template for apps\")])])]),_c('ul',[_c('li',[_c('b',[_vm._v(\"Storage\")]),_vm._v(\" to automatically create a cluster of databases.\")])]),_c('ul',[_c('li',[_c('b',[_vm._v(\"Proof Of Concept\")]),_vm._v(\" (POC) options \")]),_c('ul',[_c('li',[_vm._v(\" datacollector → using provided services a fully developed application may collect data from a swarm and use it for further analysis\")])])]),_c('li',[_c('b',[_vm._v(\"Microservices\")])]),_c('ul',[_c('li',[_vm._v(\" Jupyter \")]),_c('li',[_vm._v(\" numpy\")]),_c('li',[_vm._v(\" scipy\")]),_c('li',[_vm._v(\" nodejs\")]),_c('li',[_vm._v(\" nginx\")]),_c('li',[_vm._v(\" haproxy\")]),_c('li',[_vm._v(\" gns3\")]),_c('li',[_vm._v(\" wireshark\")]),_c('li',[_vm._v(\" snmpsim\")]),_c('li',[_vm._v(\" xelatexthesis\")]),_c('li',[_vm._v(\" ansible\")]),_c('li',[_vm._v(\" etherpad\")]),_c('li',[_vm._v(\" codeserver (vscode)\")]),_c('li',[_vm._v(\" redisserver\")]),_c('li',[_vm._v(\" mongoserver\")]),_c('li',[_vm._v(\" mongoclient (GUI)\")])]),_c('h5',[_c('i',[_vm._v(\"to be continued… \")])]),_c('h5',[_vm._v(\" And all the above using just the command line and a Browser of your system! \")])])])}]\n\nexport { render, staticRenderFns }","\n\t
\n\t\t
\n\n
Welcome to Swarmlab!
\n\n\n
\nAn open source work/study-from-home application.\n
\n \n
\nSwarmlab provides you with all the required tools, tools to teach work or try out demos in a completely virtual environment.\n
\n \n
\n
Swarmlab is a collection of services that aims to:\n\n
\n
provide teachers and professors with online remote tools to do their lessons
\n\n
give students the opportunity to study real life examples in their chosen area of expertise
\n\n
allow developers to fully test and debug their applications and provide POC’s
\n
\n\n
\n \n\n
Swarmlab, up and running since 2020, is already used for teaching purposes in a university and has proven itself as a powerful tool in the post covid remote-based situation.
\n\n \n\n
As of now the services provided by swarmlab are:
\n\n
\n
Labrooms(virtual classrooms in the form of model applications to be tweaked at will)
\n
\n
linux → base linux system – designed for use as a base to further develop your app
\n\n
MPI → Instances of Ubuntu Linux with MPICH — portable implementation of Message Passing Interface (MPI) standard. Designed for MPI program development and deployment.
\n\n
Node.js
\n\n
sec → a basic linux-based os with security tools – designed as a template for apps
\n
\n
\n
\n
Storage to automatically create a cluster of databases.
\n
\n\n
\n
Proof Of Concept (POC) options
\n
\n
datacollector → using provided services a fully developed application may collect data from a swarm and use it for further analysis
\n
\n
\n\n\n
Microservices
\n
\n\t\t
Jupyter
\n\n\t\t
numpy
\n\n\t\t
scipy
\n\n\t\t
nodejs
\n\n\t\t
nginx
\n\n\t\t
haproxy
\n\n\t\t
gns3
\n\n\t\t
wireshark
\n\n\t\t
snmpsim
\n\n\t\t
xelatexthesis
\n\n\t\t
ansible
\n\n\t\t
etherpad
\n\n\t\t
codeserver (vscode)
\n\n\t\t
redisserver
\n\n\t\t
mongoserver
\n\n\t\t
mongoclient (GUI)
\n\n
\n\n
to be continued…
\n\n
\nAnd all the above using just the command line and a Browser of your system!\n
\n\n\n\n\n\n\n\n \n\t\t
\n\n\t
\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./calendarview.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./calendarview.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./calendarview.vue?vue&type=template&id=20632474&\"\nimport script from \"./calendarview.vue?vue&type=script&lang=js&\"\nexport * from \"./calendarview.vue?vue&type=script&lang=js&\"\nimport style0 from \"./calendarview.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n \n\n
\n\n\n\n \n\n\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./view-dashboard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./view-dashboard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./view-dashboard.vue?vue&type=template&id=34a315fc&scoped=true&\"\nimport script from \"./view-dashboard.vue?vue&type=script&lang=js&\"\nexport * from \"./view-dashboard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./view-dashboard.vue?vue&type=style&index=0&id=34a315fc&scoped=true&lang=css&\"\nimport style1 from \"./view-dashboard.vue?vue&type=style&index=1&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"34a315fc\",\n null\n \n)\n\nexport default component.exports","\n \n\n
\n
\n \n \n\n \n
\n
\n\n\n \n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dashboardall.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dashboardall.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./dashboardall.vue?vue&type=template&id=7841e8ca&\"\nimport script from \"./dashboardall.vue?vue&type=script&lang=js&\"\nexport * from \"./dashboardall.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n
\n\n\t\t\t\t\t\n
\n \t\n \n\n
\n
\n \n
\n\n
\n \n\n\n\t\t\t\t\t\t
Welcome to Swarmlab-hybrid!
\n\t\t\t\t\t\t \n\n\t\t\t\t\t\tYou are now connected to the local Swarmlab client.\n\t\t\t\t\t\t \n\t\t\t\t\t\tThat means that at the moment you are offline and can only work locally on your PC.\n\t\t\t\t\t\t \n\t\t\t\t\t\t \n\n\t\t\t\t\t\tTo connect to the server and built on-demand network environments visit the \"https://git.swarmlab.io:3000/swarmlab/venus-client\" and install \"Venus\".\n\t\t\t\t\t\t \n\t\t\t\t\t\t \n\n\t\t\t\t\t\tDISCLAMER:\n\t\t\t\t\t\t \n\t\t\t\t\t\tWhen connecting to the server your host is becoming part of a network of multiple other computers that are also connected.\n\t\t\t\t\t\t \n\t\t\t\t\t\tThis means that communication between those hosts is unlimited.\n\t\t\t\t\t\t \n\t\t\t\t\t\t \n\n\t\t\t\t\t\tSince docker is a contained virtual environment this is VERY SAFE \n\t\t\t\t\t\t \n\n\t\t\t\t\t\t \n\t\t\t\t\t\tBUT\n\t\t\t\t\t\t \n\t\t\t\t\t\tto be absolutely secure, like when connecting to any network:\n\t\t\t\t\t\t \n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\tplease make sure your passwords are strong (and obviously change all defaults like the ones provided for the downloadable docker images or our labs, since they are publicly available)\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\tdon't connect to hosts you don't trust (e.g. when using the hybrid only trust relliable sources)\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\tbe aware that you are in a public network (like an airport e.g.) and act accordingly\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n \t\t\t\t\t\t\t\t\tYou can always check your connection status at the top right\n\t\t\t\t\t\t\t\t\t
\n \t\t\t\t\t
\n \t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n \t\t\t\t\t \n \t\t\t\t\t \n
\n Please make sure all users on your system have a strong password!\n
\n
\n Advice: If at all unsure (e.g. if your machine has personal data on it) you can ofcourse use our image and launch a virtual machine to be absolutely isolated.\n
\n \n \n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./availableservices.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./availableservices.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./availableservices.vue?vue&type=template&id=ca717846&\"\nimport script from \"./availableservices.vue?vue&type=script&lang=js&\"\nexport * from \"./availableservices.vue?vue&type=script&lang=js&\"\nimport style0 from \"./availableservices.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n \n\n
\n
\n\t\t\t\t\n\t\t\t\t\n
\n
\n
\n
\n\t\t\t\t\n\t\t\t\t\n
\n
\n
\n\n
\n
\n \n \n\n \n
\n\n
\n \n \n\n \n
\n
\n\n\n \n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./myservices.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./myservices.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./myservices.vue?vue&type=template&id=83b04f5c&\"\nimport script from \"./myservices.vue?vue&type=script&lang=js&\"\nexport * from \"./myservices.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('card',{staticClass:\"card-user\",staticStyle:{\"max-height\":\"100%\"}},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12 order-first \"},[_c('br'),_c('myconnect-manage-server')],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('card',{staticClass:\"card-user\",staticStyle:{\"max-height\":\"100%\"}},[_c('div',{staticClass:\"author\"},[_c('img',{staticClass:\"avatar border-white\",attrs:{\"src\":require(\"@/assets/img/hybrid-1.png\"),\"alt\":\"...\"}})]),_c('div',{staticClass:\"card text-center\"},[_c('div',{staticClass:\"card-header\"}),_c('div',{staticClass:\"card-body\"},[_c('h2',{staticClass:\"card-title\"},[_vm._v(\" share with your friends \")]),_c('br'),_c('p',{staticClass:\"card-text\"}),_c('h4',[_vm._v(\"Swarmlab uses VENUS to create virtual networks and ensure your data safety. \"),_c('br'),_vm._v(\"If you choose to proceed VENUS will have to be installed on your PC.\")]),_c('p'),_c('a',{staticClass:\"btn btn-primary\",attrs:{\"href\":\"https://git.swarmlab.io:3000/swarmlab/venus-client\",\"target\":\"newwindow\"}},[_vm._v(\"Get VENUS here\")])]),_c('div',{staticClass:\"card-footer text-muted\"},[_c('b',[_vm._v(\"VENUS is an open source service developed and maintained by the swarmlab team. \")]),_c('br'),_c('br'),_c('h5',[_vm._v(\" Safety is ensured using wireguard. \")])])]),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-1 text-secondary\"}),_c('div',{staticClass:\"col-10 text-secondary\"},[_c('br')]),_c('div',{staticClass:\"col-1 text-secondary\"})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n
\n \n
\n\n\n\n\n\n\n\n\n\n\n\n\n
\n
\n
\n
\n
\n share with your friends\n
\n \n
\n
Swarmlab uses VENUS to create virtual networks and ensure your data safety. If you choose to proceed VENUS will have to be installed on your PC.
\n \n \n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./llo-search.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./llo-search.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./llo-search.vue?vue&type=template&id=199fa386&\"\nimport script from \"./llo-search.vue?vue&type=script&lang=js&\"\nexport * from \"./llo-search.vue?vue&type=script&lang=js&\"\nimport style0 from \"./llo-search.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('card',{staticClass:\"card-user\",staticStyle:{\"max-height\":\"100%\"}},[_c('div',{staticClass:\"author\"},[(_vm.hybridshow=='asciidoc')?_c('img',{staticClass:\"avatar border-white\",attrs:{\"src\":require(\"@/assets/img/book.png\"),\"alt\":\"...\"}}):_vm._e(),(_vm.hybridshow=='asciinema')?_c('img',{staticClass:\"avatar border-white\",attrs:{\"src\":require(\"@/assets/img/code-128.png\"),\"alt\":\"...\"}}):_vm._e(),(_vm.hybridshow=='video')?_c('img',{staticClass:\"avatar border-white\",attrs:{\"src\":require(\"@/assets/img/video1.png\"),\"alt\":\"...\"}}):_vm._e()]),_c('v-wait',{attrs:{\"for\":\"myRunInstancetutor\"}},[_c('template',{slot:\"waiting\"},[_c('div',[_c('img',{attrs:{\"src\":require(\"@/assets/loading.gif\")}}),_vm._v(\" Enter Lab_room... \")])])],2),_c('b-container',{attrs:{\"fluid\":\"\"}},[(_vm.hybridshow=='asciinema')?_c('div',{staticClass:\"row text-center\"},[_c('div',{staticClass:\"col-12\"},[_c('b',[_vm._v(\"Copy & Paste\")]),_c('br'),_vm._v(\" Any time you see a command you'd like to try in your own terminal just pause the player \"),_c('br'),_vm._v(\" and copy-paste the content you want. \")]),_c('div',{staticClass:\"col-12\"},[_c('iframe',{attrs:{\"id\":\"llo\",\"title\":\"title\",\"width\":\"600\",\"height\":\"700\",\"src\":_vm.asciinemasource,\"allowfullscreen\":\"\",\"frameborder\":\"0\"}})])]):_vm._e(),(_vm.hybridshow=='video')?_c('div',{staticClass:\"row text-center\"},[_c('iframe',{attrs:{\"id\":\"llo\",\"width\":\"740\",\"height\":\"500\",\"src\":_vm.sourcevimeo,\"allowfullscreen\":\"\",\"frameborder\":\"0\"},on:{\"load\":function($event){return _vm.dofin()}}})]):_vm._e(),(_vm.hybridshow=='asciidoc')?_c('div',{staticClass:\"row text-center\"},[_c('div',{staticClass:\"col-12\"},[_c('iframe',{attrs:{\"id\":\"lloasciiview1\",\"title\":\"title\",\"width\":\"100%\",\"height\":\"700\",\"src\":_vm.asciidocurl,\"frameborder\":\"0\"}})])]):_vm._e(),(_vm.hybridshow=='penguin')?_c('div',{staticClass:\"row text-center\"},[_c('div',{staticClass:\"col-12\"},[_c('img',{attrs:{\"src\":require(\"@/assets/img/penguin21a.png\"),\"width\":\"400\",\"height\":\"400\"}})])]):_vm._e()]),_c('hr'),(_vm.hybridshow!='penguin')?_c('b-container',{staticClass:\"bv-example-row\",attrs:{\"fluid\":\"\"}},[_c('div',{staticClass:\"col-12\"},[_c('div',{staticClass:\"input-group input-group-sm sm-3\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.completiontracking),expression:\"completiontracking\"}],staticClass:\"custom-select custom-select-sm\",on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.completiontracking=$event.target.multiple ? $$selectedVal : $$selectedVal[0]},function($event){return _vm.oncompletiontracking()}]}},[_c('option',{attrs:{\"value\":\"0\",\"selected\":\"\"}},[_vm._v(\"Completion tracking\")]),_c('option',{attrs:{\"value\":\"1\"}},[_vm._v(\"Completed\")]),_c('option',{attrs:{\"value\":\"2\"}},[_vm._v(\"Almost\")])]),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.courseread),expression:\"courseread\"}],staticClass:\"custom-select custom-select-sm\",on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.courseread=$event.target.multiple ? $$selectedVal : $$selectedVal[0]},function($event){return _vm.oncompletiontracking()}]}},[_c('option',{attrs:{\"value\":\"0\",\"selected\":\"\"}},[_vm._v(\"Did you find this helpful?\")]),_c('option',{attrs:{\"value\":\"1\"}},[_vm._v(\"No\")]),_c('option',{attrs:{\"value\":\"2\"}},[_vm._v(\"Not really/A bit\")]),_c('option',{attrs:{\"value\":\"3\"}},[_vm._v(\"Yes\")])])])])]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('iframe',{attrs:{\"id\":\"llo\",\"title\":_vm.title,\"width\":_vm.width,\"height\":_vm.height,\"src\":_vm.source,\"allowfullscreen\":\"\",\"frameborder\":\"0\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\t\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./asciiplayer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./asciiplayer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./asciiplayer.vue?vue&type=template&id=938d80c4&\"\nimport script from \"./asciiplayer.vue?vue&type=script&lang=js&\"\nexport * from \"./asciiplayer.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n \n\n
\n \n \n \n
\n \n \n
\n \n Enter Lab_room...\n
\n \n \n\n \n
\n\n
\n Copy & Paste \n \n Any time you see a command you'd like to try in your own terminal just pause the player and copy-paste the content you want.\n
\n
\n\t\n\n
\n
\n\n
\n \n
\n\n
\n
\n\t\n
\n
\n\n
\n
\n \n
\n
\n \n\n \n
\n\t\t
\n \n \n
\n
\n
\n \n\n \n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./llo-view.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./llo-view.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./llo-view.vue?vue&type=template&id=14952149&\"\nimport script from \"./llo-view.vue?vue&type=script&lang=js&\"\nexport * from \"./llo-view.vue?vue&type=script&lang=js&\"\nimport style0 from \"./llo-view.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n \n\n
\n
\n \n \n\n \n
\n\n
\n \n \n \n\n \n \n
\n
\n\n\n \n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./managello.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./managello.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./managello.vue?vue&type=template&id=01e26349&\"\nimport script from \"./managello.vue?vue&type=script&lang=js&\"\nexport * from \"./managello.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('card',{staticClass:\"card-user\",staticStyle:{\"max-height\":\"100%\"}},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-8 order-first \"},[_c('br'),_c('calendar-view')],1),_c('div',{staticClass:\"col-4 order-last\"},[_c('br'),_c('b-container',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hybridshowlog==1),expression:\"hybridshowlog==1\"}],attrs:{\"fluid\":\"\"}},[_c('div',{staticClass:\"row text-center\"},[_c('div',{staticClass:\"col-12\"},[_c('img',{staticClass:\"border-white\",attrs:{\"src\":require(\"@/assets/img/penguin/penguinfledgling2.png\"),\"alt\":\"...\"}})])])])],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"appcalendar\"}},[_c('div',{staticClass:\"calendar-parent overflow-auto\"},[_c('h1',[_vm._v(\"Welcome to Swarmlab!\")]),_c('h3',[_vm._v(\" An open source work/study-from-home application. \")]),_c('br'),_c('h5',[_vm._v(\" Swarmlab provides you with all the required tools, tools to teach work or try out demos in a completely virtual environment. \")]),_c('br'),_c('div',[_c('p',[_c('b',[_vm._v(\"Swarmlab is a collection of services that aims to:\")]),_c('ul',[_c('li',[_vm._v(\" provide \"),_c('b',[_vm._v(\"teachers and professors\")]),_vm._v(\" with online remote tools to do their lessons\")]),_c('li',[_vm._v(\" give \"),_c('b',[_vm._v(\"students\")]),_vm._v(\" the opportunity to study real life examples in their chosen area of expertise \")]),_c('li',[_vm._v(\" allow \"),_c('b',[_vm._v(\"developers\")]),_vm._v(\" to fully test and debug their applications and provide POC’s\")])])])]),_c('br'),_c('p',[_vm._v(\"Swarmlab, up and running since 2020, is already used for teaching purposes in a university and has proven itself as a powerful tool in the post covid remote-based situation.\")]),_c('br'),_c('h3',[_vm._v(\"As of now the services provided by swarmlab are:\")]),_c('ul',[_c('li',[_c('b',[_vm._v(\"Labrooms\")]),_vm._v(\"(virtual classrooms in the form of model applications to be tweaked at will)\")]),_c('ul',[_c('li',[_vm._v(\" linux → base linux system – designed for use as a base to further develop your app\")]),_c('li',[_vm._v(\" MPI → Instances of Ubuntu Linux with MPICH — portable implementation of Message Passing Interface (MPI) standard. Designed for MPI program development and deployment.\")]),_c('li',[_vm._v(\" Node.js\")]),_c('li',[_vm._v(\" sec → a basic linux-based os with security tools – designed as a template for apps\")])])]),_c('ul',[_c('li',[_c('b',[_vm._v(\"Storage\")]),_vm._v(\" to automatically create a cluster of databases.\")])]),_c('ul',[_c('li',[_c('b',[_vm._v(\"Proof Of Concept\")]),_vm._v(\" (POC) options \")]),_c('ul',[_c('li',[_vm._v(\" datacollector → using provided services a fully developed application may collect data from a swarm and use it for further analysis\")])])]),_c('li',[_c('b',[_vm._v(\"Microservices\")])]),_c('ul',[_c('li',[_vm._v(\" Jupyter \")]),_c('li',[_vm._v(\" numpy\")]),_c('li',[_vm._v(\" scipy\")]),_c('li',[_vm._v(\" nodejs\")]),_c('li',[_vm._v(\" nginx\")]),_c('li',[_vm._v(\" haproxy\")]),_c('li',[_vm._v(\" gns3\")]),_c('li',[_vm._v(\" wireshark\")]),_c('li',[_vm._v(\" snmpsim\")]),_c('li',[_vm._v(\" xelatexthesis\")]),_c('li',[_vm._v(\" ansible\")]),_c('li',[_vm._v(\" etherpad\")]),_c('li',[_vm._v(\" codeserver (vscode)\")]),_c('li',[_vm._v(\" redisserver\")]),_c('li',[_vm._v(\" mongoserver\")]),_c('li',[_vm._v(\" mongoclient (GUI)\")])]),_c('h5',[_c('i',[_vm._v(\"to be continued… \")])]),_c('h5',[_vm._v(\" And all the above using just the command line and a Browser of your system! \")])])])}]\n\nexport { render, staticRenderFns }","\n\t
\n\t\t
\n\n
Welcome to Swarmlab!
\n\n\n
\nAn open source work/study-from-home application.\n
\n \n
\nSwarmlab provides you with all the required tools, tools to teach work or try out demos in a completely virtual environment.\n
\n \n
\n
Swarmlab is a collection of services that aims to:\n\n
\n
provide teachers and professors with online remote tools to do their lessons
\n\n
give students the opportunity to study real life examples in their chosen area of expertise
\n\n
allow developers to fully test and debug their applications and provide POC’s
\n
\n\n
\n \n\n
Swarmlab, up and running since 2020, is already used for teaching purposes in a university and has proven itself as a powerful tool in the post covid remote-based situation.
\n\n \n\n
As of now the services provided by swarmlab are:
\n\n
\n
Labrooms(virtual classrooms in the form of model applications to be tweaked at will)
\n
\n
linux → base linux system – designed for use as a base to further develop your app
\n\n
MPI → Instances of Ubuntu Linux with MPICH — portable implementation of Message Passing Interface (MPI) standard. Designed for MPI program development and deployment.
\n\n
Node.js
\n\n
sec → a basic linux-based os with security tools – designed as a template for apps
\n
\n
\n
\n
Storage to automatically create a cluster of databases.
\n
\n\n
\n
Proof Of Concept (POC) options
\n
\n
datacollector → using provided services a fully developed application may collect data from a swarm and use it for further analysis
\n
\n
\n\n\n
Microservices
\n
\n\t\t
Jupyter
\n\n\t\t
numpy
\n\n\t\t
scipy
\n\n\t\t
nodejs
\n\n\t\t
nginx
\n\n\t\t
haproxy
\n\n\t\t
gns3
\n\n\t\t
wireshark
\n\n\t\t
snmpsim
\n\n\t\t
xelatexthesis
\n\n\t\t
ansible
\n\n\t\t
etherpad
\n\n\t\t
codeserver (vscode)
\n\n\t\t
redisserver
\n\n\t\t
mongoserver
\n\n\t\t
mongoclient (GUI)
\n\n
\n\n
to be continued…
\n\n
\nAnd all the above using just the command line and a Browser of your system!\n
\n\n\n\n\n\n\n\n \n\t\t
\n\n\t
\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./calendarview.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./calendarview.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./calendarview.vue?vue&type=template&id=20632474&\"\nimport script from \"./calendarview.vue?vue&type=script&lang=js&\"\nexport * from \"./calendarview.vue?vue&type=script&lang=js&\"\nimport style0 from \"./calendarview.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n \n\n
\n\n\n\n \n\n\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./view-dashboard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./view-dashboard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./view-dashboard.vue?vue&type=template&id=34a315fc&scoped=true&\"\nimport script from \"./view-dashboard.vue?vue&type=script&lang=js&\"\nexport * from \"./view-dashboard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./view-dashboard.vue?vue&type=style&index=0&id=34a315fc&scoped=true&lang=css&\"\nimport style1 from \"./view-dashboard.vue?vue&type=style&index=1&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"34a315fc\",\n null\n \n)\n\nexport default component.exports","\n \n\n
\n
\n \n \n\n \n
\n
\n\n\n \n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dashboardall.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dashboardall.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./dashboardall.vue?vue&type=template&id=7841e8ca&\"\nimport script from \"./dashboardall.vue?vue&type=script&lang=js&\"\nexport * from \"./dashboardall.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n
\n\n\t\t\t\t\t\n
\n \t\n \n\n
\n
\n \n
\n\n
\n \n\n\n\t\t\t\t\t\t
Welcome to Swarmlab-hybrid!
\n\t\t\t\t\t\t \n\n\t\t\t\t\t\tYou are now connected to the local Swarmlab client.\n\t\t\t\t\t\t \n\t\t\t\t\t\tThat means that at the moment you are offline and can only work locally on your PC.\n\t\t\t\t\t\t \n\t\t\t\t\t\t \n\n\t\t\t\t\t\tTo connect to the server and built on-demand network environments visit the \"https://git.swarmlab.io:3000/swarmlab/venus-client\" and install \"Venus\".\n\t\t\t\t\t\t \n\t\t\t\t\t\t \n\n\t\t\t\t\t\tDISCLAMER:\n\t\t\t\t\t\t \n\t\t\t\t\t\tWhen connecting to the server your host is becoming part of a network of multiple other computers that are also connected.\n\t\t\t\t\t\t \n\t\t\t\t\t\tThis means that communication between those hosts is unlimited.\n\t\t\t\t\t\t \n\t\t\t\t\t\t \n\n\t\t\t\t\t\tSince docker is a contained virtual environment this is VERY SAFE \n\t\t\t\t\t\t \n\n\t\t\t\t\t\t \n\t\t\t\t\t\tBUT\n\t\t\t\t\t\t \n\t\t\t\t\t\tto be absolutely secure, like when connecting to any network:\n\t\t\t\t\t\t \n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\tplease make sure your passwords are strong (and obviously change all defaults like the ones provided for the downloadable docker images or our labs, since they are publicly available)\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\tdon't connect to hosts you don't trust (e.g. when using the hybrid only trust relliable sources)\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\tbe aware that you are in a public network (like an airport e.g.) and act accordingly\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n \t\t\t\t\t\t\t\t\tYou can always check your connection status at the top right\n\t\t\t\t\t\t\t\t\t
\n \t\t\t\t\t
\n \t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n \t\t\t\t\t \n \t\t\t\t\t \n
\n Please make sure all users on your system have a strong password!\n
\n
\n Advice: If at all unsure (e.g. if your machine has personal data on it) you can ofcourse use our image and launch a virtual machine to be absolutely isolated.\n