Changeset 5552


Ignore:
Timestamp:
Jul 18, 2017, 1:41:09 PM (22 months ago)
Author:
joamuran
Message:

using getxpraConnections

Location:
lmd/trunk/fuentes
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • lmd/trunk/fuentes/admin-center-ltsp.install/modul/lliurex-ltsp/src/i18n/ca-ES@valencia/messages.json

    r4770 r5552  
    133133     "ltsconf.new.param.name":["Nom de la variable"],
    134134     "ltsconf.new.param.value":["Valor de la variable"],
    135      "noLTSClientsFound":["No hi ha cap client connectat a la xarxa de l'aula"]
     135     "noLTSClientsFound":["No hi ha cap client connectat a la xarxa de l'aula"],
     136     "ltsp_edit_connection":["Enllaça a la connexió activa al port: "],
     137     "ltsp_clean_connections":["Elimina totes les connexions actives"]
    136138
    137139  }
  • lmd/trunk/fuentes/admin-center-ltsp.install/modul/lliurex-ltsp/src/i18n/en-US/messages.json

    r4484 r5552  
    133133     "ltsconf.new.param.name":["Variable name"],
    134134     "ltsconf.new.param.value":["Variable value"],
    135      "noLTSClientsFound":["There are not clients connected to classroom network"]
     135     "noLTSClientsFound":["There are not clients connected to classroom network"],
     136     "ltsp_edit_connection":["Link to active connection at port: "],
     137     "ltsp_clean_connections":["Remove all active connecions"]
    136138  }
    137139}
  • lmd/trunk/fuentes/admin-center-ltsp.install/modul/lliurex-ltsp/src/i18n/es-ES/messages.json

    r5058 r5552  
    133133     "ltsconf.new.param.name":["Nombre de la variable"],
    134134     "ltsconf.new.param.value":["Valor de la variable"],
    135      "noLTSClientsFound":["No hay ningún cliente conectado a la red del aula"]
     135     "noLTSClientsFound":["No hay ningún cliente conectado a la red del aula"],
     136     "ltsp_edit_connection":["Enlazar a la conexión activa al puerto: "],
     137     "ltsp_clean_connections":["Elimina todas las conexiones activas"]
    136138     
    137139   
  • lmd/trunk/fuentes/admin-center-ltsp.install/modul/lliurex-ltsp/src/js/imageManager.js

    r5141 r5552  
    8787    var n4dmethod="check_image_editing";
    8888    var arglist=[];
     89
     90    console.log("*********************");
     91    console.log(editCommand);
     92    console.log(id);
     93    //alert("pajaritos tralari");
     94
    8995   
    9096    Utils.n4d(credentials, n4dclass, n4dmethod, arglist, function(response){
     
    120126   
    121127  var self=this;
    122  
    123128  // Stage 1: Prepare Connection
    124129  var screenWidth=819;
     
    132137 
    133138 
    134     Utils.waitwin.ShowModalInfo(self._("ltsp_loading_image"), self._("ltsp_loading_image_description"), WAITWIN_LOADING);
    135  
     139  Utils.waitwin.ShowModalInfo(self._("ltsp_loading_image"), self._("ltsp_loading_image_description"), WAITWIN_LOADING);
    136140  Utils.n4d(credentials, n4dclass, n4dmethod, arglist, function(response){
    137141    // Connection is prepared
     
    139143    display=response.msg.display;
    140144
     145  console.log("::::"+port+" "+display);
    141146   
    142147    //console.log("Port: "+port+" Display: "+display);
     
    147152    self.timer=null;
    148153   
    149          
    150154    // Stage 2: Launch app into Window (wait 5 seconds)
    151155    //console.log("launching app");
     
    162166    arglist.push(display);
    163167
     168
    164169    Utils.n4d(credentials, n4dclass, n4dmethod, arglist, function(response){
    165         //console.log("Received response from run into connection:");
    166         //console.log(response);
    167        
     170        console.log("Received response from run into connection:");
     171        console.log(response);
     172       
     173        self.prepareXephyrWindow(screenWidth, screenHeight, port, id);
     174       
     175    });  // 0 is timeout for curl; 0 means sync call...
     176
     177  },0);
     178   
     179   
     180
     181}
     182
     183
     184ImageManager.prototype.prepareXephyrWindow=function prepareXephyrWindow(screenWidth, screenHeight, port, id=null, imagefile=null){
    168185        // Prepare Xephyr Window
     186        // imagefile only used if we want to refresh image status before...
     187        var self=this;
    169188        var margin_left=0-(screenWidth/2);
    170189        var margin_top=0-(screenHeight/2);
     
    186205           
    187206        $(divXPRA).append(divXPRAHdr, divXPRAContent);
    188                    
    189                
     207                         
    190208        $(divXPRAContentCloseBt).on("click", function(){
    191209            console.log("Detected window close");
     
    209227                $("#divXPRA").remove();
    210228               
     229                console.log(imagefile+"****");
     230               
     231                // Refresh image status now
     232                if (imagefile){
     233                    console.log(imagefile);
     234                    self.imageList=[];
     235                    $("#llx-ltsp-imagelist").empty();
     236                    self.timer=setTimeout(function(){
     237                        self.getImageList();
     238                    }, 1000); // Timer
     239                   
     240                }
     241               
     242               
     243                   
     244               
     245               
    211246                // Reset interval for refresh imagelist
    212247                if (self.timer===null) {
    213248                    self.timer=setInterval(function(){
    214249                        self.getImageList();
    215                     }, 5000); // Timer
     250                    }, 20000); // Timer
    216251                }
    217252               
     
    238273        $("body").append(divXPRA);
    239274       
    240      
    241     });  // 0 is timeout for curl; 0 means sync call...
    242 
    243   },0);
    244    
    245    
    246 
    247 }
     275};
     276
     277
     278
     279
    248280
    249281
     
    419451   
    420452};
    421 
    422453
    423454/*ImageManager.prototype.createSelect=function createSelect(item){
     
    672703                    console.log("rendered but changed");
    673704                    $(checker).remove(); // Remove for redraw
    674                    
    675                     /*
    676                     console.log(imageContent.task_status);
    677                     if (imageContent.task_status=="DONE"){
    678                         console.log("adding available");
    679                         $(checker).removeClass("llx-ltsp-image-file-wip").removeClass("llx-ltsp-image-file-broken");
    680                         $(checker).addClass("llx-ltsp-image-file-available");
    681                     } else if (imageContent.task_status=="RUNNING"){
    682                         console.log("adding running");
    683                         $(checker).removeClass("llx-ltsp-image-file-available").removeClass("llx-ltsp-image-file-broken");
    684                         $(checker).addClass("llx-ltsp-image-file-wip");
    685                     } else {
    686                         console.log("adding broken");
    687                         $(checker).removeClass("llx-ltsp-image-file-wip").removeClass("llx-ltsp-image-file-available");
    688                         $(checker).addClass("llx-ltsp-image-file-broken");
    689                     }
    690                     */
     705         
    691706                    $(checker).attr("status", imageContent.task_status); // Adding status
    692707                    // return 0;               
     
    713728            $(editImgBt).html("<i class='material-icons' style='vertical-align:middle;'>cast</i>&nbsp;Edit");*/
    714729           
    715              
     730           
    716731            var editImgBt=$(document.createElement("div")).addClass("btn-group").css("padding", "0").css("margin", "0").css("float","right");
    717732            var editImgBtButton=$(document.createElement("button")).addClass("btn btn-info ltsp-img-bt btn-raised dropdown-toggle").attr("data-toggle", "dropdown");
     733            //$(editImgBtButton).css("background", "#ff0000");
    718734            $(editImgBtButton).html(self._("ltsp_Edit")+"<span class='caret'></span>");
    719735            var editOptions=$(document.createElement("ul")).addClass("dropdown-menu");
     736           
    720737            var editOptionUpdate=$(document.createElement("li")).addClass("edit_submenu").html(self._("ltsp_edit_update_image"));
    721738            var editOptionInstall=$(document.createElement("li")).addClass("edit_submenu").html(self._("ltsp_edit_run_synaptic"));
     
    723740            var editOptionMATE=$(document.createElement("li")).addClass("edit_submenu").html(self._("ltsp_edit_launch_mate"));
    724741            var editOptionAwesome=$(document.createElement("li")).addClass("edit_submenu").html(self._("ltsp_edit_launch_awesome"));
    725             $(editOptions).append(editOptionUpdate, editOptionInstall, editOptionTerminal, editOptionMATE, editOptionAwesome);
     742            // MOVED AFTER IF: $(editOptions).append(editOptionUpdate, editOptionInstall, editOptionTerminal, editOptionMATE, editOptionAwesome);
     743           
     744           
     745            // Checking if there are XPRA active connections
     746            if(imageContent.xpraConnections.length>0)
     747                { // If there are connections, add options for reconnect them or remove these connections
     748                    console.log(imageContent.xpraConnections);
     749                    $(editImgBtButton).css("background-color", "#ff9800");
     750                    for (i in imageContent.xpraConnections){
     751                        var xpraOption=$(document.createElement("li")).addClass("edit_submenu").html(self._("ltsp_edit_connection")+imageContent.xpraConnections[i][0]);
     752                        $(xpraOption).attr("port", imageContent.xpraConnections[i][0]).addClass("xpraConnectionsActive");
     753                        $(xpraOption).attr("imagefile", imagefile);
     754                        $(xpraOption).attr("target_id", imageContent.id);
     755                        $(editOptions).append(xpraOption);
     756                    }
     757                    // Add option to clean connections
     758                    var xpraOptionClean=$(document.createElement("li")).addClass("edit_submenu").html(self._("ltsp_clean_connections")).attr("id", "ltsp_edit_clean_xpra_connections");
     759                    $(editOptions).append(xpraOptionClean);
     760                       
     761                    // Otherwhise, lets add common options
     762                } else $(editOptions).append(editOptionUpdate, editOptionInstall, editOptionTerminal, editOptionMATE, editOptionAwesome);
     763
     764            // And add properly options for edit Image Button
    726765            $(editImgBt).append(editImgBtButton, editOptions);
    727            
    728766           
    729767           
     
    758796            $(editOptionAwesome).attr("arch", imageContent.arch);
    759797           
     798           
    760799            /*$(editImgBt).on("click", function(){
    761800                self.editImageWithCheck($(this).attr("target_id"));
     
    769808            });
    770809            $(editOptionTerminal).on("click", function(){
     810                //alert("mate-terminal");
    771811                self.editImageWithCheck($(this).attr("target_id"), "run_mate_terminal", $(this).attr("arch"));
    772812            });
     
    863903            });
    864904           
    865             /*$(listenImgBt).on("click", function(event){
    866                 var credentials='';
    867                 var n4dclass="LmdServer";
    868                 var n4dmethod="add_listener";
    869                 console.log($(event.target).parent());
    870                 console.log($(event.target).parent().parent().attr("job_id"));
    871                 var srv_job_id=$(event.target).parent().parent().attr("job_id");
    872                 var target_id=$(event.target).parent().parent().attr("target_id");
    873                 //console.log("*************"+srv_job_id);
    874                 var arglist=[];
    875                 //arglist.push("");
    876                
    877                 //Utils.n4dWithLog(credentials, n4dclass, n4dmethod, arglist, function(response){});
    878                 //Utils.n4dWithLog(credentials, n4dclass, n4dmethod, arglist, srv_job_id, target_id); // no callback is needed
    879                 //Utils.n4dWithLog(credentials, n4dclass, n4dmethod, arglist, srv_job_id, target_id,  function(response){}); // no callback is needed
    880                 Utils.n4dWithLog(credentials, n4dclass, n4dmethod, arglist, srv_job_id, target_id); // no callback is needed
    881             });*/
    882            
    883            
    884    
    885             // Check button type and status...(if there is any task working on it)
    886             //var sfi=self.checkStatusForImage(imageContent.id);
    887            
    888             // Hide extra buttons for minimal image
    889             //console.log("**********************");
    890             //console.log(imageContent);
    891             //console.log("**********************");
    892            
    893                    
    894             /*if (imageContent["status"]==="enabled-non-editable")
    895                 $(ImageButtonsColumn).append(removeImgBt);
    896                 //else if (imageContent["status"]==="enabled-non-editable")
    897                 else $(ImageButtonsColumn).append(removeImgBt, cloneImgBt, regenerateImgBt, editImgBt, imgOptsBt);
    898               */ 
     905           
    899906                       
    900907            var imgFile=$(document.createElement("div"));
     
    938945                    });
    939946            } else {$(imgFile).fadeIn();}
     947           
     948           
     949            // Binding events for running sessions
     950           
     951            $(".xpraConnectionsActive").on("click", function(){
     952                var screenWidth=819;
     953                var screenHeight=614;
     954                var port=$(this).attr("port");
     955                var imagefile=$(this).attr("imagefile");
     956                var id=$(this).attr("target_id");
     957               
     958                Utils.waitwin.ShowModalInfo(self._("ltsp_loading_image"), self._("ltsp_loading_image_description"), WAITWIN_LOADING);
     959                Utils.waitwin.SetStatus(self._("ltsp_connection_stablished"), self._("ltsp_connection_stablished_description")+sessionStorage.server+":"+port, WAITWIN_WAITING);
     960                                       
     961                self.prepareXephyrWindow(screenWidth, screenHeight, port, id, imagefile);
     962               
     963            });
     964           
     965            $("#ltsp_edit_clean_xpra_connections").on("click", function(){
     966                var portlist=[];
     967                var counter=0;
     968                var processed=0;
     969               
     970                Utils.waitwin.SetStatus(self._("ltsp_closing_connection"),self._("ltsp_closing_connection_description"), WAITWIN_LOADING);
     971               
     972                $(".xpraConnectionsActive").each(function(){
     973                    portlist.push($(this).attr("port"));
     974                    counter++;
     975                });
     976               
     977                for (i=0;i<counter;i++){
     978                    var port=portlist[i];
     979                   
     980                    var credentials=[sessionStorage.username , sessionStorage.password];
     981                    var n4dclass="RemoteWebGui";
     982                    var n4dmethod="close_connection";
     983                    var arglist=[port];
     984                   
     985                   
     986                    Utils.n4d(credentials, n4dclass, n4dmethod, arglist, function(response){
     987                      if (response!=-1) {
     988                        $("#divXPRA").remove();
     989                        processed++;
     990                        console.log("processed is: "+processed);
     991                       
     992                        if (processed==counter){
     993                            console.log("processed is counter, cleaning");
     994                            // Refresh image status now
     995                            self.imageList=[];
     996                            $("#llx-ltsp-imagelist").empty();
     997                           
     998                            self.timer=setTimeout(function(){
     999                                self.getImageList();
     1000                                // Reset interval for refresh imagelist
     1001                                if (self.timer===null) {
     1002                                    self.timer=setInterval(function(){
     1003                                        self.getImageList();
     1004                                    }, 20000); // Timer
     1005                                }
     1006                            }, 1000); // TimeOut
     1007                           
     1008                            // Remove Modal Wait Window
     1009                            Utils.waitwin.RemoveModalInfo();
     1010                            message="Connection closed sucessful!";
     1011                            Utils.msg(message, MSG_INFO);
     1012                        }
     1013                    }
     1014               
     1015                }); // n4d call ends
     1016                }
     1017            }); //
     1018           
     1019            // End Binding events for running sessions
     1020           
    9401021        });
    9411022       
  • lmd/trunk/fuentes/lmd-server.install/usr/sbin/lmd-import-img.sh

    r4914 r5552  
    7575
    7676echo "[lmd Import] Extracting file..."
     77echo "[lmd Import] Extracting file... " > /tmp/importlog.txt
    7778tar -xvzf ${1} -C /tmp/extracted_image | zenity --progress --pulsate --auto-close --text "${MSG_EXTRACTING}" $ZEN_QUESTION
    7879
     
    8283fi
    8384
     85echo "[lmd Import] Extracted. No errors untaring. " >> /tmp/importlog.txt
     86
     87
    8488# Moving
    8589extracted_image=`ls /tmp/extracted_image/opt/ltsp/*/*.json | cut -d "/" -f 6`
    8690extracted_filename=`ls /tmp/extracted_image/opt/ltsp/*/*.json | cut -d "/" -f 7`
    8791new_imagename="${extracted_filename%.*}"
     92
     93echo "[lmd Import] Extracted image is  $extracted_image" >> /tmp/importlog.txt
    8894
    8995
     
    9298    zenity --question --text "${MSG_EXISTS_CHROOT}" $ZEN_QUESTION
    9399    if [ $? -eq  1 ]; then
     100        echo "[lmd Import] Cancelled. Image exists." >> /tmp/importlog.txt
    94101        exit -1
    95102    else
     103        echo "[lmd Import] Image already exists, but deleting that" >> /tmp/importlog.txt
    96104        rm -r /opt/ltsp/${new_imagename} | zenity --progress --auto-close --pulsate --text "${MSG_REMOVING}" $ZEN_QUESTION
    97105    fi
     
    102110echo "moving /opt/ltsp/${new_imagename}/${extracted_filename} to /etc/ltsp/images/"
    103111
     112echo "moving /tmp/extracted_image/opt/ltsp/${extracted_image} to /opt/ltsp/${new_imagename}"  >> /tmp/importlog.txt
     113echo "moving /opt/ltsp/${new_imagename}/${extracted_filename} to /etc/ltsp/images/"  >> /tmp/importlog.txt
     114
     115
    104116mv /tmp/extracted_image/opt/ltsp/${extracted_image}  /opt/ltsp/${new_imagename}
    105117mv /opt/ltsp/${new_imagename}/${extracted_filename}  /etc/ltsp/images/
    106118
    107119# Update kernels and regenerate image
     120echo "[lmd Import] Updating kernels into image" >> /tmp/importlog.txt
    108121ltsp-update-kernels ${new_imagename}
     122
     123echo "[lmd Import] Updating keys" >> /tmp/importlog.txt
    109124ltsp-update-sshkeys
     125
     126echo "[lmd Import] Update image" >> /tmp/importlog.txt
    110127ltsp-update-image ${new_imagename} | zenity --progress --pulsate --text "${MSG_CREATE_SQUASHFS}" $ZEN_QUESTION
    111 lmd-server.install/usr/sbin/lmd-import-img.sh
     128# WTF !!! lmd-server.install/usr/sbin/lmd-import-img.sh
    112129
    113130if [ $? -ne 0 ] ; then
     131echo "[lmd Import] Some error has success... updating image..." >> /tmp/importlog.txt
    114132zenity --error --text "${MSG_CANCELLED}" $ZEN_ERROR
    115133exit -1
     
    117135
    118136# Setting image into bootMenu
     137echo "[lmd Import] Pushing to boot list" >> /tmp/importlog.txt
    119138n4d-client -c LlxBootManager -m pushToBootList -u ${USER} -p ${PASS} -a ltp_label${new_imagename}
    120139 
    121140# Restarting NBD
     141echo "[lmd Import] Restarting NBD" >> /tmp/importlog.txt
    122142invoke-rc.d nbd-server restart
    123143
     144echo "[lmd Import] All worked fine" >> /tmp/importlog.txt
    124145zenity --info --text "${MSG_SUCCESS}" $ZEN_ERROR
    125146exit 0
  • lmd/trunk/fuentes/lmd-server.install/usr/share/n4d/python-plugins/LmdImageManager.py

    r4362 r5552  
    6969                        # if ret[status] is false the task has been done time ago
    7070                        data["task_status"]=status;
     71                       
     72                        xpraConnections=objects["RemoteWebGui"].getXpraConnections(image.replace(".json", ""));
     73                        data["xpraConnections"]=xpraConnections;
     74                       
    7175                       
    7276                        return json.dumps(data)
Note: See TracChangeset for help on using the changeset viewer.