Ignore:
Timestamp:
Dec 19, 2017, 2:00:53 PM (3 years ago)
Author:
jrpelegrina
Message:

Improve performance

File:
1 edited

Legend:

Unmodified
Added
Removed
  • epi/trunk/fuentes/python3-epi/epimanager.py

    r6469 r6521  
    3535                                        "required_x" : False,
    3636                                        "script": {},
    37                                         "depends" :"",
     37                                        "depends":"",
    3838                                        "zomando":"",
    3939                                        "required_root":False,
    40                                         "url_download":""
     40                                        "download_byscript":False
    4141                                        }
    4242
     
    8484                        self.zomando_name[self.order]=epi_conf["zomando"]
    8585                        try:
    86                                 if conf_base["depends"]!="":
     86                                if epi_conf["depends"]!="":
    8787                                        self.order=self.order+1
    8888                                        self.read_conf(epi_conf["depends"])
     
    101101                for item in tmp_list:
    102102                        pkg_list=[]
    103                         if tmp_list[item]["type"]!="file":
    104                                 pkg_list=tmp_list[item]["pkg_list"]
     103                        #if tmp_list[item]["type"]!="file":
     104                        pkg_list=tmp_list[item]["pkg_list"]
     105                       
     106                        '''
    105107                        else:
     108                               
    106109                                element={}
    107110                                element["name"]=tmp_list[item]["name"]
    108111                                element["key_store"]=tmp_list[item]["key_store"]
    109112                                pkg_list.append(element)
    110 
    111                         info=self.get_store_info(pkg_list)
     113                        '''
     114                        info=self.get_store_info(pkg_list,item)
    112115
    113116                        cont=0
     
    132135                                                       
    133136
    134         def get_store_info(self,pkg_list):                     
    135 
     137        def get_store_info(self,pkg_list,order):                       
     138
     139                        pkg_info={}
     140                       
    136141                        for item in pkg_list:
    137                                 pkg_info={}
    138142                                app=item["name"]
    139143                                name=""
     
    159163                                                        status=data["info"][0]["state"]
    160164                                                else:
    161                                                         status=self.check_pkg_status(app)
     165                                                        status=self.check_pkg_status(app,order)
    162166                                                       
    163167
     
    170174
    171175                                        else:
    172                                                 status=self.check_pkg_status(app)               
     176                                                status=self.check_pkg_status(app,order)         
    173177                                else:
    174                                         status=self.check_pkg_status(app)               
     178                                        status=self.check_pkg_status(app,order)         
    175179                               
    176180                                pkg_info[app]={}
     
    183187                                pkg_info[app]["summary"]=summary
    184188
    185                                 return pkg_info
     189                        return pkg_info
    186190
    187191        #def get_store_info                     
    188192
    189         def check_pkg_status(self,pkg):
     193        def check_pkg_status(self,pkg,order=None):
    190194       
    191195
     
    196200                if len(poutput)>0:
    197201                        return "installed"
     202                else:
     203                        if order !=None:
     204                                if len(self.epiFiles[order]["script"])>0:
     205                                        try:
     206                                                if self.epiFiles[order]["script"]["status"]:
     207
     208                                                        if os.path.exists(self.epiFiles[order]["script"]["name"]):
     209                                                                cmd=self.epiFiles[order]["script"]["name"] +' status';
     210                                                                p=subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE)
     211                                                                poutput=p.communicate()
     212                                                                if len(poutput)>0:
     213                                                                        if poutput[0].decode("utf-8").split("\n")[0]=='0':
     214                                                                                return "installed"
     215                                               
     216                                        except Exception as e:
     217                                                print (str(e))
     218                                                pass   
    198219                               
    199220                return "available"     
     
    304325                                        if item["url"]!="":
    305326                                                f.write(item["url"]+'\n')
    306                                         if item["key_cmd"]!="":
    307                                                 cmd=cmd+item["key_cmd"]+';'     
     327                                        try:
     328                                                key_cmd=item["key_cmd"]
     329                                                if key_cmd !="":
     330                                                        cmd=cmd+key_cmd+';'     
     331                                        except Exception as e:
     332                                                if len(self.epi_conf["script"])>0:
     333                                                        try:
     334                                                                if self.epi_conf["script"]["addRepoKeys"]:
     335                                                                        if os.path.exists(self.epi_conf["script"]["name"]):
     336                                                                                command=self.epi_conf["script"]["name"] + ' addRepoKeys;'
     337                                                                                cmd=cmd+command
     338                                                        except Exception as e:
     339                                                                print (str(e))
     340                                                                pass
    308341
    309342                                f.close()
     
    321354
    322355                if self.force32:
    323                         if self.type=="deb":
    324                                 version=item["version"]["32b"]
     356                       
     357                        #if self.type=="deb":
     358                        version=item["version"]["32b"]
     359                        '''
    325360                        else:
    326361                                version=self.epi_conf["version"]["32b"]
     362                        '''     
    327363                else:
    328                         if self.type=="deb":
    329                                 if item["version"]["all"]=="":
    330                                         version=item["version"]["64b"]
    331                                 else:
    332                                         version=item["version"]["all"]
     364                        #if self.type=="deb":
     365                        if item["version"]["all"]=="":
     366                                version=item["version"]["64b"]
     367                        else:
     368                                version=item["version"]["all"]
     369                        '''
    333370                        else:
    334371                                if self.epi_conf["version"]["all"]=="":
     
    336373                                else:
    337374                                        version=self.epi_conf["version"]["all"]                 
    338 
     375                        '''
    339376                return version
    340377
     
    343380        def download_app(self):
    344381
     382                manage_download=True
    345383                self.download_folder={}
    346384                cmd=""
     
    351389                        self.token_result_download=tempfile.mkstemp("_result_download")
    352390
     391                       
     392                        if self.type=="file":
     393                                if self.epi_conf["download_byscript"]:
     394                                        manage_download=False
     395
     396
     397                        if manage_download:
     398
     399                                for item in self.epi_conf["pkg_list"]:
     400                                        version=self.get_app_version(item)
     401                                        if self.type=="deb":
     402                                                name=item["name"]+".deb"
     403                                                tmp_file=os.path.join(self.download_path,name)
     404                                        else:
     405                                                name=item["name"]
     406                                                tmp_file=os.path.join(self.download_path,version)
     407                               
     408                                        url=item["url_download"]
     409                                       
     410                                        if os.path.exists(tmp_file):
     411                                                cmd=cmd+'rm -f '+ tmp_file +';'
     412                                        self.download_folder["name"]=tmp_file
     413                                        cmd=cmd+'wget ' +url+version + ' --progress=bar:force -O ' + tmp_file +'; '
     414                                        #cmd=cmd+'curl -o ' + tmp_file +' -C - '+ url + version
     415
     416                                cmd=cmd + ' echo $? >' + self.token_result_download[1] +';'     
     417                        '''
    353418                        if self.type=="deb":
    354419
     
    378443                                        cmd=cmd+'curl -o ' + tmp_file +' -C - '+ url + version + '; echo $? >' + self.token_result_download[1] +';'
    379444
     445                        '''
     446
    380447                return cmd                     
    381448                                       
     
    481548                        self.token_result_install=tempfile.mkstemp("_result")
    482549                        script=self.epi_conf["script"]["name"]
    483                         cmd=script + ' install; echo $? >' + self.token_result_install[1] +';'
     550                        if os.path.exists(script):
     551                                cmd=script + ' install; echo $? >' + self.token_result_install[1] +';'
    484552
    485553               
     
    607675                        self.token_result_remove=tempfile.mkstemp("_result_remove")
    608676                        script=self.epiFiles[order]["script"]["name"]
    609                         cmd=script + ' Remove; echo $? >' + self.token_result_remove[1] + ';'
     677                        if os.path.exists(script):
     678                                cmd=script + ' Remove; echo $? >' + self.token_result_remove[1] + ';'
    610679
    611680                return cmd
Note: See TracChangeset for help on using the changeset viewer.