Changeset 7258


Ignore:
Timestamp:
May 7, 2018, 11:55:13 AM (18 months ago)
Author:
mabarracus
Message:

Avoid n4d exceptions throwing error messages when are called without proper parameters
Misc Fixes

Location:
lliurex-mirror/trunk/fuentes
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • lliurex-mirror/trunk/fuentes/debian/changelog

    r7216 r7258  
     1lliurex-mirror (28.8.8) xenial; urgency=medium
     2
     3  * Avoid n4d exceptions throwing error messages when are called without proper parameters
     4  * Misc Fixes
     5
     6 -- M.Angel Juan <m.angel.juan@gmail.com>  Wed, 02 May 2018 13:26:33 +0200
     7
    18lliurex-mirror (28.8.7) xenial; urgency=medium
    29
  • lliurex-mirror/trunk/fuentes/lliurex-mirror-cli/usr/sbin/lliurex-mirror

    r7094 r7258  
    112112                                result = self.client.get_client_ip('','MirrorManager','')
    113113                                tempserver = result['msg']
     114                                if not self.localcredentials:
     115                                    print 'Need superuser privileges'
     116                                    return 1
    114117                                result = self.localclient.enable_webserver_into_folder(self.localcredentials,'MirrorManager',pathtoupdate)
    115118                                tempserver = tempserver + ":" + str(result['msg'])
     
    155158                # This code is equal on lliurex_mirror_connect.py file. Don't forget modify on both files.
    156159                #
     160                if not self.localcredentials:
     161                    print 'Need superuser privileges'
     162                    return 1
    157163                result = self.client.get_all_configs(self.credentials,'MirrorManager')
    158164                config = result['msg'][mirror]
     
    177183                callback_args['port'] = port
    178184                # Execute mirror
     185                print temp_file
     186                print callback_args
    179187                print self.localclient.get_mirror(self.localcredentials,'MirrorManager',temp_file,callback_args)
    180188
    181189        def get_percentage_export(self):
    182190                try:
     191                        if not self.localcredentials:
     192                            print 'Need superuser privileges'
     193                            return 1
    183194                        result = self.localclient.is_alive_get_mirror(self.localcredentials,'MirrorManager')
    184                         print result['msg'][0]
     195                        print result['msg']
    185196                        return 0
    186197                except Exception as e:
     
    191202
    192203        def is_alive_export(self):
     204                if not self.localcredentials:
     205                    print 'Need superuser privileges'
     206                    return 1
    193207                try:
    194208                        result = self.localclient.is_alive_get_mirror(self.localcredentials,'MirrorManager')
     
    337351       
    338352        def distrolistoptions(self,distro):
    339                 if distro:
    340                     result = self.client.get_distro_options(self.credentials,"MirrorManager",distro)
    341                 else:
    342                     return 1
     353                #if distro:
     354                result = self.client.get_distro_options(self.credentials,"MirrorManager",distro)
     355                #else:
     356                #    return 1
    343357                if 'msg' in result:
    344358                    print str(result['msg'])
     
    349363       
    350364        def resetConfig(self,distro):
    351                 if distro:
    352                     result = self.client.reset_debmirror_config(self.credentials,"MirrorManager",distro)
    353                 else:
    354                     return 1
     365                #if distro:
     366                result = self.client.reset_debmirror_config(self.credentials,"MirrorManager",distro)
     367                #else:
     368                #    return 1
    355369                if 'msg' in result:
    356370                    print str(result['msg'])
     
    359373                    print result
    360374                    return 1
    361 
     375       
     376        def getoptionupdate(self,distro):
     377            ret=self.client.get_option_update(self.credentials,"MirrorManager", distro)
     378            if 'msg' in ret:
     379                print str(ret['msg'])
     380                return 0 if ret['status'] else 1
     381            else:
     382                print ret
     383                return 1
     384         
    362385def usage():
    363386        puts("Usage")
     
    368391                        puts("Options tagged with '*' need admin privileges, '[]' indicates optional parameter")
    369392                        puts("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
    370                         puts("* setcname                                   (Set DNS Name)")
    371                         puts("* update DISTRO [URL|FILEPATH]               (Update DISTRO mirror from URL or FILEPATH)")
    372                         puts("* rundebmirror DISTRO [URL|FILEPATH]         (Same option as update)")
    373                         puts("* volatileupdate DISTRO [URL|FILEPATH]       (Update without writing changes to config)")
    374                         puts("* unattendedupdate DISTRO [URL|FILEPATH]     (Automated update)")
    375                         puts("* exportmirror DISTRO DESTMIRROR             (Export current DISTRO mirror to DESTMIRROR)")
    376                         puts("  isalive                                    (Check if update thread is running)")
    377                         puts("  isaliveexport                              (Check if exportation thread is running)")
    378                         puts("  getmirrorarchitecture                      (Get current mirror architecture/s)")
    379                         puts("* setmirrorarchitecture DISTRO [ARCH ARCH..] (Set ARCH... as current DISTRO architecture)")
    380                         puts("  getmirrororig DISTRO [OPTION]              (Get origin/s from DISTRO)")
    381                         puts("* setmirrororig MIRROR URL OPTION            (Set mirror origin into optional update slot)")
    382                         puts("  getchecksumvalidation                      (Get mirror checksum)")
    383                         puts("* setchecksumvalidation [0|1]                (Set checksum validation when download deb's)")
    384                         puts("  getpercentage                              (Get current update percentage)")
    385                         puts("  getpercentageexport                        (Get current exportation percentage)")
    386                         puts("* enablewebserverforpath PATH                (Setup webserver to export mirror from path)")
    387                         puts("  stopwebserver PORT                         (Stop current local webserver)")
    388                         puts("* stopupdate                                 (Cancel current update process)")
    389                         puts("  getavailabledistros                        (Get all distro available)")
    390                         puts("  distrolistoptions DISTRO                   (Get options for DISTRO)")
    391                         puts("  ismirrorupdate                             (Check if it's updating the mirror)")
    392                         puts("* resetconfig DISTRO                         (Reset all config files for DISTRO)")
     393                        puts("* setcname                                     (Set DNS Name)")
     394                        puts("* update DISTRO [URL|FILEPATH]                 (Update DISTRO mirror from URL or FILEPATH)")
     395                        puts("* rundebmirror DISTRO [URL|FILEPATH]           (Same option as update)")
     396                        puts("* volatileupdate DISTRO [URL|FILEPATH]         (Update without writing changes to config)")
     397                        puts("* unattendedupdate DISTRO [URL|FILEPATH]       (Automated update)")
     398                        puts("* exportmirror DISTRO DESTMIRROR               (Export current DISTRO mirror to DESTMIRROR)")
     399                        puts("  isalive                                      (Check if update thread is running)")
     400                        puts("  isaliveexport                                (Check if exportation thread is running)")
     401                        puts("  getmirrorarchitecture                        (Get current mirror architecture/s)")
     402                        puts("* setmirrorarchitecture DISTRO ARCH [ARCH..]   (Set ARCH... as current DISTRO architecture)")
     403                        puts("  getmirrororig [DISTRO OPTION]                (Get origin/s from DISTRO)")
     404                        puts("* setmirrororig DISTRO URL OPTION              (Set mirror origin into optional update slot)")
     405                        puts("  getchecksumvalidation [DISTRO]               (Get mirror checksum)")
     406                        puts("* setchecksumvalidation [0|1]                  (Set checksum validation when download deb's)")
     407                        puts("  getpercentage [DISTRO]                       (Get current update percentage)")
     408                        puts("  getpercentageexport [DISTRO]                 (Get current exportation percentage)")
     409                        puts("* enablewebserverforpath PATH                  (Setup webserver to export mirror from path)")
     410                        puts("  stopwebserver PORT                           (Stop current local webserver)")
     411                        puts("* stopupdate                                   (Cancel current update process)")
     412                        puts("  getavailabledistros                          (Get all distro available)")
     413                        puts("  distrolistoptions [DISTRO]                   (Get options for DISTRO)")
     414                        puts("  getoptionupdate [DISTRO]                     (Get current update option for DISTRO)")
     415                        puts("* setoptionupdate DISTRO OPTION                (Set current update option for DISTRO)")
     416                        puts("  ismirrorupdate [DISTRO]                      (Check if it's updating the mirror)")
     417                        puts("* resetconfig [DISTRO]                         (Reset all config files for DISTRO)")
    393418                puts("Flags")
    394419                with indent(4):
     
    398423                        puts("-u --user : User to validation")
    399424                        puts("-p --password : Password to validation")
    400 
     425                puts("DISTRO release examples:  (default: llx16)")
     426                with indent(4):
     427                        puts('"llx16", "llx15"')
    401428                       
    402429        sys.exit(1)
     
    498525                sys.exit(lliurexmirror.getChecksumValidation(args.get(0)))
    499526        elif action == "setchecksumvalidation":
    500                 checkvalue = 1 if args.get(1) == "True" else 0
     527                arg = str(args.get(1)).lower()
     528                if arg == 'true' or arg == '1':
     529                    checkvalue = 1
     530                else:
     531                    checkvalue = 0
    501532                sys.exit(lliurexmirror.setChecksumValidation(args.get(0),checkvalue))
    502533        elif action == "getpercentage":
     
    514545        elif action == "ismirrorupdate":
    515546                sys.exit(lliurexmirror.isMirrorUpdate(args.get(0)))
     547        elif action == "getoptionupdate":
     548                sys.exit(lliurexmirror.getoptionupdate(args.get(0)))
     549        elif action == "setoptionupdate":
     550                sys.exit(lliurexmirror.setOptionUpdate(args.get(0),args.get(1)))
    516551        elif action == "exportmirror":
    517552                mirror = args.get(0)
  • lliurex-mirror/trunk/fuentes/n4d-lliurex-mirror.install/usr/share/n4d/python-plugins/MirrorManager.py

    r7089 r7258  
    165165        #def set_cname
    166166       
     167        def _check_distro_param(self,distro):
     168            try:
     169                if not distro:
     170                    distro = self.distro
     171
     172                filepath = os.path.join(self.configpath, distro + ".json")
     173                if not os.path.isfile(filepath):
     174                    filepath = None
     175                return distro, filepath
     176            except Exception as e:
     177                return None,None
     178        #def _check_distro_param(self,distro):
     179       
    167180        def update(self,ip,distro=None,callback_args=None,restore_info={}):
    168 
    169                 if distro==None:
    170                         distro=self.distro
    171        
     181                distro,filepath = self._check_distro_param(distro)
     182                if not filepath:
     183                        return {'status':False,'msg':'Needed valid DISTRO parameter'}
    172184                if self.update_thread.is_alive():
    173185                        return {'status':False,'msg':'Lliurex-mirror (n4d instance) is running'}
     
    312324
    313325        def set_mirror_info(self,distro=None):
    314                
    315                 if distro!=None:
    316                         distro=distro
    317                 else:
    318                         distro=self.distro
    319                
    320                 configpath = os.path.join(self.configpath, distro + ".json")
     326                distro,configpath = self._check_distro_param(distro)
     327                if not distro:
     328                        return {'status':False, 'msg': 'Needed valid DISTRO parameter'}
     329                if not configpath:
     330                        return {'status':False, 'msg': 'Wrong DISTRO parameter'}
    321331                config = json.load(open(configpath,'r'))
    322332
     
    347357           
    348358        def get_distro_options(self,distro):
    349                 configpath = os.path.join(self.configpath, distro + ".json")
     359                distro,configpath = self._check_distro_param(distro)
     360                if not distro:
     361                        return {'status':False,'msg': 'Needed valid DISTRO parameter','action':'nothing'}
     362                if not configpath:
     363                        return {'status':False, 'msg': 'Wrong DISTRO parameter'}
    350364                try:
    351365                    config = json.load(open(configpath,'r'))
     
    361375       
    362376        def update_size_info(self,distro):
    363                 if distro!=None:
    364                         distro=distro
    365                 else:
    366                         distro=self.distro
    367                
    368                 configpath = os.path.join(self.configpath, distro + ".json")
     377                distro,configpath = self._check_distro_param(distro)
     378                if not distro:
     379                        return {'status':False,'msg': 'Needed valid DISTRO parameter','action':'nothing'}
     380                if not configpath:
     381                        return {'status':False, 'msg': 'Wrong DISTRO parameter'}
    369382                config = json.load(open(configpath,'r'))
    370383
     
    377390
    378391        def get_size(self,start_path = '.'):
    379        
    380392                total_size = 0
    381393                try:
     
    406418       
    407419        def get_mirror_architecture(self,distro):
    408 
    409                 configpath = os.path.join(self.configpath,distro + ".json")
    410                 config = json.load(open(configpath,'r'))
    411                 if not os.path.lexists(configpath):
    412                         return {'status':False,'msg':'not exists debmirror.conf to '+ distro }
     420                distro,configpath = self._check_distro_param(distro)
     421                if not distro:
     422                        return {'status':False,'msg': 'Needed valid DISTRO parameter','action':'nothing'}
     423                if not configpath:
     424                        return {'status':False, 'msg': 'Wrong DISTRO parameter'}
     425                config = json.load(open(configpath,'r'))
    413426
    414427                if "ARCHITECTURES" in config.keys():
     
    419432       
    420433        def set_mirror_architecture(self,distro,archs):
    421                 configpath = os.path.join(self.configpath,distro + ".json")
     434                distro,configpath = self._check_distro_param(distro)
     435                if not distro:
     436                        return {'status':False,'msg': 'Needed valid DISTRO parameter','action':'nothing'}
     437                if not archs:
     438                        return {'status':False,'msg': 'Needed ARCHS parameter','action':'nothing'}
     439                if not configpath:
     440                        return {'status':False, 'msg': 'Wrong DISTRO parameter'}
    422441                config = json.load(open(configpath,'r'))
    423442                config['ARCHITECTURES'] = archs
     
    432451       
    433452        def get_mirror_orig(self,distro,option):
    434 
    435                 configpath = os.path.join(self.configpath,distro + ".json")
    436                 config = json.load(open(configpath,'r'))
    437                 if not os.path.lexists(configpath):
    438                         return {'status':False,'msg':'not exists debmirror.conf to '+ distro }
    439 
     453                distro,configpath = self._check_distro_param(distro)
     454                if not distro:
     455                        return {'status':False,'msg': 'Needed valid DISTRO parameter','action':'nothing'}
     456                if not configpath:
     457                        return {'status':False, 'msg': 'Wrong DISTRO parameter'}
     458                config = json.load(open(configpath,'r'))
    440459                if "ORIGS" in config.keys():
    441460                        if option:
     
    454473
    455474        def set_mirror_orig(self,distro,url,option):
     475                distro,configpath = self._check_distro_param(distro)
     476                if not distro:
     477                        return {'status':False,'msg': 'Needed valid DISTRO parameter','action':'nothing'}
    456478                if url == None:
    457                         return {'status':False,'msg':'url is None'}
    458                 configpath = os.path.join(self.configpath, distro + ".json")
     479                        return {'status':False,'msg':'Needed URL parameter'}
     480                if not configpath:
     481                        return {'status':False, 'msg': 'Wrong DISTRO parameter'}
    459482                config = json.load(open(configpath,'r'))
    460483                config['ORIGS'][str(option)] = url
     
    468491
    469492        def get_option_update(self,distro):
    470                 configpath = os.path.join(self.configpath,distro + ".json")
     493                distro,configpath = self._check_distro_param(distro)
     494                if not distro:
     495                        return {'status':False,'msg': 'Needed valid DISTRO parameter','action':'nothing'}
     496                if not configpath:
     497                        return {'status':False, 'msg': 'Wrong DISTRO parameter'}
    471498                config = json.load(open(configpath,'r'))
    472499                if not os.path.lexists(configpath):
     
    480507
    481508        def set_option_update(self,distro,option):
    482                 configpath = os.path.join(self.configpath, distro + ".json")
     509                distro,configpath = self._check_distro_param(distro)
     510                if not distro:
     511                        return {'status':False,'msg': 'Needed valid DISTRO parameter','action':'nothing'}
     512                if not configpath:
     513                        return {'status':False, 'msg': 'Wrong DISTRO parameter'}
    483514                config = json.load(open(configpath,'r'))
    484515                #Sanitize mirror url if it's a custom one
     
    498529
    499530        def get_percentage(self,distro):
     531                distro,configpath = self._check_distro_param(distro)
     532                if not distro:
     533                        return {'status':False,'msg': 'Needed valid DISTRO parameter','action':'nothing'}
     534                if not configpath:
     535                        return {'status':False, 'msg': 'Wrong DISTRO parameter'}
    500536                if self.variable.has_key(distro):
    501537                        return {'status':True,'msg':self.variable[distro]['progress']}
     
    505541
    506542        def build_debmirror_config(self,distro):
     543                distro,configpath = self._check_distro_param(distro)
     544                if not distro:
     545                        return {'status':False,'msg': 'Needed valid DISTRO parameter','action':'nothing'}
     546                if not configpath:
     547                        return {'status':False, 'msg': 'Wrong DISTRO parameter'}
    507548                result = self.render_debmirror_config(distro)
    508549                string_template = result['msg']
     
    514555
    515556        def reset_debmirror_config(self,distro):
     557                distro,configpath = self._check_distro_param(distro)
     558                if not distro:
     559                        return {'status':False,'msg': 'Needed valid DISTRO parameter','action':'nothing'}
     560                if not configpath:
     561                        return {'status':False, 'msg': 'Wrong DISTRO parameter'}
    516562                try:
    517563                    try:
     
    536582
    537583        def _render_debmirror_config_distro(self,distro):
     584                distro,configpath = self._check_distro_param(distro)
     585                if not distro:
     586                        return {'status':False,'msg': 'Needed valid DISTRO parameter','action':'nothing'}
     587                if not configpath:
     588                        return {'status':False, 'msg': 'Wrong DISTRO parameter'}
    538589                template = self.tpl_env.get_template('debmirror.conf')
    539                 configpath = os.path.join(self.configpath,distro + ".json")
    540590                config = json.load(open(configpath,'r'))
    541591                return {'status':True,'msg':template.render(config).encode('utf-8')}
     
    548598
    549599        def enable_webserver_into_folder(self,path):
    550                
    551600                s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    552601                s.bind(('localhost', 0))
     
    560609        def _enable_webserver_into_folder(self,port,path):
    561610                try:
    562                         iface = '127.0.0.1'
     611                        iface = ''
    563612                        sock = (iface,port)
    564613                        proto = "HTTP/1.0"
     
    581630       
    582631        def set_checksum_validation(self,distro,status):
    583                 configpath = os.path.join(self.configpath, distro + ".json")
     632                distro,configpath = self._check_distro_param(distro)
     633                if not distro:
     634                        return {'status':False,'msg': 'Needed valid DISTRO parameter','action':'nothing'}
     635                if not configpath:
     636                        return {'status':False, 'msg': 'Wrong DISTRO parameter'}
    584637                config = json.load(open(configpath,'r'))
    585638                config['CHK_MD5'] = status
     
    595648       
    596649        def get_checksum_validation(self,distro):
    597 
    598                 configpath = os.path.join(self.configpath,distro + ".json")
    599                 config = json.load(open(configpath,'r'))
    600                 if not os.path.lexists(configpath):
    601                         return {'status':False,'msg':'not exists debmirror.conf to '+ distro }
     650                distro,configpath = self._check_distro_param(distro)
     651                if not distro:
     652                        return {'status':False,'msg': 'Needed valid DISTRO parameter','action':'nothing'}
     653                if not configpath:
     654                        return {'status':False, 'msg': 'Wrong DISTRO parameter'}
     655                config = json.load(open(configpath,'r'))
    602656                if "IGN_GPG" in config.keys():
    603657                        return {'status':True,'msg':config["CHK_MD5"] }
     
    626680
    627681        def download_time_file(self,distro):
    628                
    629                 configpath = os.path.join(self.configpath,distro + ".json")
     682                distro,configpath = self._check_distro_param(distro)
     683                if not distro:
     684                        return {'status':False,'msg': 'Needed valid DISTRO parameter','action':'nothing'}
     685                if not configpath:
     686                        return {'status':False, 'msg': 'Wrong DISTRO parameter'}
    630687                config = json.load(open(configpath,'r'))
    631688                path=config["MIRROR_PATH"]
     
    642699               
    643700        def get_time_file(self,url,dest):
    644                
     701                if not url or not dest:
     702                        return {'status':False,'msg': 'Needed URL and DEST parameter','action':'nothing'}
    645703                try:
    646704                        r=urlopen(url)
     
    657715
    658716        def is_update_available(self,distro):
    659 
    660                 configpath = os.path.join(self.configpath,distro + ".json")
     717                distro, configpath = self._check_distro_param(distro)
     718                if not distro:
     719                        return {'status':False,'msg': 'Needed valid DISTRO parameter','action':'nothing'}
     720                if not configpath:
     721                        return {'status':False, 'msg': 'Wrong DISTRO parameter'}
    661722                config = json.load(open(configpath,'r'))
    662723                path = config["MIRROR_PATH"]
     
    740801
    741802        def update_mirror_config(self,mirror,config):
    742                 configpath = os.path.join(self.configpath,mirror + ".json")
     803                mirror,configpath = self._check_distro_param(mirror)
     804                if not mirror:
     805                        return {'status':False,'msg': 'Needed valid MIRROR parameter','action':'nothing'}
     806                if not configpath:
     807                        return {'status':False, 'msg': 'Wrong MIRROR parameter'}
     808
     809                #if not mirror:
     810                #       return {'status':False,'msg': 'Needed MIRROR parameter','action':'nothing'}
     811                #configpath = os.path.join(self.configpath,mirror + ".json")
    743812
    744813                f=open(configpath,"w")
Note: See TracChangeset for help on using the changeset viewer.