Changeset 8725


Ignore:
Timestamp:
Sep 11, 2019, 3:25:39 PM (6 days ago)
Author:
jrpelegrina
Message:

Improved internet connection checking

Location:
epi/trunk/fuentes
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • epi/trunk/fuentes/epi-cli/__init__.py

    r8464 r8725  
    9696                print ('  [EPIC]: Checking system...')
    9797
    98                 self.connection=self.epicore.check_connection()
    99 
    100                 if self.connection[0]:
     98                #self.connection=self.epicore.check_connection()
     99
     100                connection=self.pulsate_check_connection()
     101               
     102                if connection[0]:
    101103                        self.epicore.check_root()
    102104                        self.epicore.get_pkg_info()
     
    117119                                check=False
    118120                else:
    119                         msg_log="Internet connection not detected: "+self.connection[1]
     121                        msg_log="Internet connection not detected: "+connection[1]
    120122                        print ('  [EPIC]: '+msg_log)
    121123                        self.write_log(msg_log)
     
    125127
    126128        #def checking_system
     129
     130        def pulsate_check_connection(self):
     131
     132                end_check=False
     133               
     134                result=""
     135                result_queue=multiprocessing.Queue()
     136               
     137                self.checking_url1_t=multiprocessing.Process(target=self.checking_url1,args=(result_queue,))
     138                self.checking_url2_t=multiprocessing.Process(target=self.checking_url2,args=(result_queue,))
     139                self.checking_url1_t.start()
     140                self.checking_url2_t.start()
     141
     142                while not end_check:
     143
     144                        time.sleep(0.5)
     145                        if self.checking_url1_t.is_alive() and self.checking_url2_t.is_alive():
     146                                end_check=False
     147
     148                        else:
     149                                if result=="":
     150                                        result=result_queue.get()
     151                                if not result[0]:
     152                                        if self.checking_url1_t.is_alive() or self.checking_url2_t.is_alive():
     153                                                end_check=False
     154                                        else:
     155                                                result=result_queue.get()
     156                                                end_check=True
     157
     158                                else:
     159                                        end_check=True
     160               
     161                return result                   
     162               
     163        #def pulsate_check_connection   
     164
     165        def checking_url1(self,result_queue):
     166
     167                result_queue.put(self.epicore.check_connection(self.epicore.urltocheck1))
     168
     169        #def checking_url1     
     170
     171        def checking_url2(self,result_queue):
     172
     173                result_queue.put(self.epicore.check_connection(self.epicore.urltocheck2))
     174
     175        #def checking_url2
    127176
    128177        def check_required_x(self):
  • epi/trunk/fuentes/epi-gtk/python3-epigtk/MainWindow.py

    r8503 r8725  
    171171                self.stack.set_visible_child_name("loadingBox")
    172172                self.stack.set_transition_duration(1000)
    173                 GLib.timeout_add(100,self.pulsate_checksystem)
     173                #GLib.timeout_add(100,self.pulsate_checksystem)
     174                self.init_threads()
     175                self.checking_url1_t.start()
     176                self.checking_url1_t.launched=True
     177                self.checking_url2_t.start()
     178                self.checking_url2_t.launched=True
     179                GLib.timeout_add(100,self.pulsate_check_url)
    174180       
    175181        #def init_process
     
    177183        def init_threads(self):
    178184
     185                self.checking_url1_t=threading.Thread(target=self.checking_url1)
     186                self.checking_url2_t=threading.Thread(target=self.checking_url2)
    179187                self.checking_system_t=threading.Thread(target=self.checking_system)
    180188                self.unlock_process_t=threading.Thread(target=self.unlock_process)
     189                self.checking_url1_t.daemon=True
     190                self.checking_url2_t.daemon=True
    181191                self.checking_system_t.daemon=True
    182192                self.unlock_process_t.daemon=True
     193                self.checking_url1_t.launched=False
     194                self.checking_url2_t.launched=False
    183195                self.checking_system_t.launched=False
    184196                self.unlock_process_t.launched=False
     
    207219        #def load_info
    208220
     221        def pulsate_check_url(self):
     222
     223                end_check=False
     224
     225
     226                if self.checking_url1_t.is_alive() and self.checking_url2_t.is_alive():
     227                        return True
     228
     229                else:
     230                        if not self.connection[0]:
     231                                if self.checking_url1_t.is_alive() or self.checking_url2_t.is_alive():
     232                                        return True
     233                                else:
     234                                        end_check=True
     235
     236                        else:
     237                                end_check=True
     238
     239
     240                if end_check:           
     241               
     242                        if self.connection[0]:
     243                                GLib.timeout_add(100,self.pulsate_checksystem)
     244                                return False
     245                        else:
     246                                msg_code=3
     247                                self.loadingBox.loading_spinner.stop()
     248                                self.loadingBox.loading_label.set_name("MSG_ERROR_LABEL")
     249                                msg_error=self.get_msg_text(msg_code)
     250                                self.write_log(msg_error+":"+self.connection[1])
     251                                self.loadingBox.loading_label.set_text(msg_error)
     252                                return False
     253               
     254                return True     
     255
     256        #def pulsate_check_url
     257                         
     258        def checking_url1(self):
     259
     260                self.connection=self.core.epiManager.check_connection(self.core.epiManager.urltocheck1)
     261
     262        #def checking_url1     
     263
     264        def checking_url2(self):
     265
     266                self.connection=self.core.epiManager.check_connection(self.core.epiManager.urltocheck2)
     267
     268#def checking_url2
     269
    209270        def pulsate_checksystem(self):
    210271
     
    219280                if self.checking_system_t.done:
    220281
    221                         if self.connection[0]:
    222                                 if self.order>0:
    223                                         if not self.required_root:
    224                                                 if len (self.lock_info)>0:
    225                                                         self.load_unlock_panel()
     282                        #if self.connection[0]:
     283                        if self.order>0:
     284                                if not self.required_root:
     285                                        if len (self.lock_info)>0:
     286                                                self.load_unlock_panel()
    226287                                                                                                       
    227                                                 else:
    228                                                         self.load_info_panel()
    229                                                 return False
    230288                                        else:
    231                                                 error=True
    232                                                 msg_code=2     
     289                                                self.load_info_panel()
     290                                        return False
    233291                                else:
    234292                                        error=True
    235                                         if self.valid_json:
    236                                                 msg_code=1
    237                                         else:
    238                                                 msg_code=18     
    239                                        
     293                                        msg_code=2     
     294                        else:
     295                                error=True
     296                                if self.valid_json:
     297                                        msg_code=1
     298                                else:
     299                                        msg_code=18     
     300                        '''             
    240301                        else:
    241302                                error=True
    242303                                msg_code=3
    243304                                aditional_info=self.connection[1]
     305                        '''     
    244306                                                               
    245307
     
    265327        def checking_system(self):
    266328       
    267                 time.sleep(1)
    268                 self.connection=self.core.epiManager.check_connection()
    269                
    270                 if self.connection[0]:
    271                         self.valid_json=self.core.epiManager.read_conf(self.epi_file)
    272                         epi_loaded=self.core.epiManager.epiFiles
    273                         order=len(epi_loaded)
    274                         if order>0:
    275                                 self.core.epiManager.check_root()
    276                                 self.core.epiManager.get_pkg_info()
    277                                 self.required_root=self.core.epiManager.required_root()
    278                                 self.required_eula=self.core.epiManager.required_eula()
    279                                 if len(self.required_eula)>0:
    280                                         self.eula_accepted=False
    281                                 self.lock_info=self.core.epiManager.check_locks()       
    282                                 self.write_log("Locks info: "+ str(self.lock_info))
    283                                 self.checking_system_t.done=True
    284                                 self.load_epi_conf=self.core.epiManager.epiFiles
    285                                 self.order=len(self.load_epi_conf)
    286                         else:
    287                                 self.load_epi_conf=epi_loaded
    288                                 self.order=order
     329                #time.sleep(1)
     330                #self.connection=self.core.epiManager.check_connection()
     331               
     332                #if self.connection[0]:
     333                self.valid_json=self.core.epiManager.read_conf(self.epi_file)
     334                epi_loaded=self.core.epiManager.epiFiles
     335                order=len(epi_loaded)
     336                if order>0:
     337                        self.core.epiManager.check_root()
     338                        self.core.epiManager.get_pkg_info()
     339                        self.required_root=self.core.epiManager.required_root()
     340                        self.required_eula=self.core.epiManager.required_eula()
     341                        if len(self.required_eula)>0:
     342                                self.eula_accepted=False
     343                        self.lock_info=self.core.epiManager.check_locks()       
     344                        self.write_log("Locks info: "+ str(self.lock_info))
     345                        self.checking_system_t.done=True
     346                        self.load_epi_conf=self.core.epiManager.epiFiles
     347                        self.order=len(self.load_epi_conf)
     348                else:
     349                        self.load_epi_conf=epi_loaded
     350                        self.order=order
    289351                       
    290352
  • epi/trunk/fuentes/python3-epi/epimanager.py

    r8464 r8725  
    2727                self.epi_sources=os.path.join(self.reposPath,self.sources_list)
    2828                self.epi_keyring="/tmp/epi_keyring"
     29
     30                self.urltocheck1="http://lliurex.net"
     31                self.urltocheck2="https://github.com/lliurex"
    2932                                               
    3033                self.order=0
     
    4851
    4952       
    50         def check_connection(self):
     53        def check_connection(self,url):
    5154       
    5255                result=[]
    5356                try:
    54                         res=urllib.request.urlopen("http://lliurex.net")
     57                        res=urllib.request.urlopen(url)
    5558                        result.append(True)
    5659                       
Note: See TracChangeset for help on using the changeset viewer.