Changeset 3199


Ignore:
Timestamp:
Jan 9, 2017, 6:17:27 PM (2 years ago)
Author:
kbut
Message:

update mirror

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

Legend:

Unmodified
Added
Removed
  • lliurex-mirror/trunk/fuentes/lliurex-mirror-cli/usr/sbin/lliurex-mirror

    r2820 r3199  
    33import sys
    44import getpass
     5import tempfile
    56from clint import arguments
    67from clint.textui import puts, indent, colored
     
    1415                self.credentials = credentials
    1516                self.client = x.ServerProxy("https://"+self.ip+":9779",allow_none=True)
     17                self.localclient = x.ServerProxy("https://localhost:9779",allow_none=True)
     18                self.localcredentials = self.get_local_credentials()
     19
     20        def get_local_credentials(self):
     21                try:
     22                        f = open('/etc/n4d/key','r')
     23                        key = f.readline().strip()
     24                        return key
     25                except:
     26                        return None
    1627
    1728        def setCname(self):
    1829                result = self.client.set_cname(self.credentials,"MirrorManager")
    1930                print result['msg']
    20                 sys.exit( 0 if result['status'] else 1 )
    21 
    22         def runDebmirror(self,distro):
    23                 result = self.client.update(self.credentials,"MirrorManager",'',distro,None)
     31                return  0 if result['status'] else 1
     32
     33        def runDebmirror(self,mirror,pathtoupdate):
     34
     35                if len(pathtoupdate) != 0:
     36                        if pathtoupdate.lower().startswith("http"):
     37                                self.setMirrorOrig(mirror,pathtoupdate,3)
     38                                self.setOptionUpdate(mirror,3)
     39                        elif os.path.exists(pathtoupdate):
     40                                result = self.client.get_client_ip('','MirrorManager','')
     41                                tempserver = result['msg']
     42                                result = self.localclient.enable_webserver_into_folder(self.localcredentials,'MirrorManager',pathtoupdate)
     43                                tempserver = tempserver + ":" + str(result['msg'])
     44                                self.setMirrorOrig(mirror,tempserver,2)
     45                                self.setOptionUpdate(mirror,2)
     46                        else:
     47                                print("Error on orig")
     48                                return 2
     49                result = self.client.update(self.credentials,"MirrorManager",'',mirror,None)
    2450                print result['msg']
    25                 sys.exit( 0 if result['status'] else 1 )
     51                return  0 if result['status'] else 1
     52
     53        def exportMirror(self,mirror,dest):
     54                #
     55                # This code is equal on lliurex_mirror_connect.py file. Don't forget modify on both files.
     56                #
     57                result = self.client.get_all_configs(self.credentials,'MirrorManager')
     58                config = result['msg'][mirror]
     59                result = self.client.get_client_ip('','MirrorManager','')
     60                ip = result['msg']
     61                # Open webserver for mirror and get ip
     62                result = self.client.enable_webserver_into_folder(self.credentials,'MirrorManager',config['MIRROR_PATH'])
     63                port = str(result['msg'])
     64                self.remoteport = port
     65                # Modify Config and write
     66               
     67                config['MIRROR_PATH'] = folder
     68                config['CURRENT_UPDATE_OPTION'] = '3'
     69                config['ORIGS']['3'] = self.serverip + ":" + str(port)
     70                result = self.client.render_debmirror_config(self.credentials,'MirrorManager',config)
     71                temp_file = tempfile.mktemp()
     72                f = open(temp_file,'w')
     73                f.write(result['msg'])
     74                f.close()
     75                callback_args = {}
     76                callback_args['ip'] = ip
     77                callback_args['port'] = port
     78                # Execute mirror
     79                print self.localclient.get_mirror(self.localcredentials,'MirrorManager',temp_file,callback_args)
     80
     81        def get_percentage_export(self):
     82                try:
     83                        result = self.localclient.is_alive_get_mirror(self.localcredentials,'MirrorManager')
     84                        return result['msg'][0]
     85                except Exception as e:
     86                        print e
     87                        return None
     88                       
     89        #def get_percentage_export
     90
     91        def is_alive_export(self):
     92                try:
     93                        result = self.localclient.is_alive_get_mirror(self.localcredentials,'MirrorManager')
     94                        return result
     95                except Exception as e:
     96                        print e
     97                        return None
     98
     99
     100        def setOptionUpdate(self,mirror,option):
     101                result = self.client.set_option_update(self.credentials,"MirrorManager",mirror,option)
     102                print str(result['msg'])
     103                return  0 if result['status'] else 1
    26104
    27105        def isAlive(self):
    28106                result = self.client.is_alive(self.credentials,"MirrorManager")
    29107                print "True" if result['status'] else "False"
    30                 sys.exit( 0 if result['status'] else 1 )
     108                return  0 if result['status'] else 1
    31109
    32110        def getMirrorArchitecture(self,distro):
    33111                result = self.client.get_mirror_architecture(self.credentials,"MirrorManager",distro)
    34112                print str(result['msg'])
    35                 sys.exit( 0 if result['status'] else 1 )
     113                return  0 if result['status'] else 1
    36114
    37115        def setMirrorArchitecture(self,distro,archs):
    38116                result = self.client.set_mirror_architecture(self.credentials,"MirrorManager",distro,archs)
    39117                print str(result['msg'])
    40                 sys.exit( 0 if result['status'] else 1 )
     118                return  0 if result['status'] else 1
    41119
    42120        def getMirrorOrig(self,distro):
    43121                result = self.client.get_mirror_orig(self.credentials,"MirrorManager",distro)
    44122                print str(result['msg'])
    45                 sys.exit( 0 if result['status'] else 1 )
    46 
    47         def setMirrorOrig(self,distro,url):
    48                 result = self.client.set_mirror_orig(self.credentials,"MirrorManager",distro,url)
    49                 print str(result['msg'])
    50                 sys.exit( 0 if result['status'] else 1 )
     123                return  0 if result['status'] else 1
     124
     125        def setMirrorOrig(self,distro,url,option):
     126                result = self.client.set_mirror_orig(self.credentials,"MirrorManager",distro,url,option)
     127                print str(result['msg'])
     128                return  0 if result['status'] else 1
    51129
    52130        def getChecksumValidation(self,distro):
    53131                result = self.client.get_checksum_validation(self.credentials,"MirrorManager",distro)
    54132                print str(result['msg'])
    55                 sys.exit( 0 if result['status'] else 1 )
     133                return  0 if result['status'] else 1
    56134
    57135        def setChecksumValidation(self,distro,value):
     
    59137                result = self.client.set_checksum_validation(self.credentials,"MirrorManager",distro,check)
    60138                print str(result['msg'])
    61                 sys.exit( 0 if result['status'] else 1 )
     139                return  0 if result['status'] else 1
    62140
    63141        def getPercentage(self,distro):
    64142                result = self.client.get_percentage(self.credentials,"MirrorManager",distro)
    65143                print str(result['msg'])
    66                 sys.exit( 0 if result['status'] else 1 )
     144                return  0 if result['status'] else 1
    67145
    68146        def enableWebserverForPath(self,path):
    69147                result = self.client.enable_webserver_into_folder(self.credentials,"MirrorManager",path)
    70148                print str(result['msg'])
    71                 sys.exit( 0 if result['status'] else 1 )
     149                return  0 if result['status'] else 1
    72150
    73151        def stopWebserver(self,port):
    74152                result = self.client.stop_webserver(self.credentials,"MirrorManager",port)
    75153                print str(result['msg'])
    76                 sys.exit( 0 if result['status'] else 1 )
     154                return  0 if result['status'] else 1
    77155
    78156        def stopUpdate(self):
    79157                result = self.client.stopupdate(self.credentials,"MirrorManager")
    80158                print str(result['msg'])
    81                 sys.exit( 0 if result['status'] else 1 )
     159                return  0 if result['status'] else 1
    82160
    83161        def getAvailableDistros(self):
    84162                result = self.client.get_available_mirrors(self.credentials,"MirrorManager")
    85163                print str(result['msg'])
    86                 sys.exit( 0 if result['status'] else 1 )
     164                return  0 if result['status'] else 1
    87165
    88166        def isMirrorUpdate(self,distro):
    89167                result = self.client.is_update_available(self.credentials,"MirrorManager",distro)
    90168                print str(result['msg'])
    91                 sys.exit( 0 if result['status'] else 1 )       
     169                return  0 if result['status'] else 1 )
    92170
    93171def usage():
     
    98176                with indent(4):
    99177                        puts("setcname")
    100                         puts("update DISTRO")
    101                         puts("rundebmirror DISTRO")
     178                        puts("update DISTRO [URL|FILEPATH]")
     179                        puts("rundebmirror DISTRO [URL|FILEPATH]")
     180                        puts("exportmirror DISTRO DESTMIRROR")
    102181                        puts("isalive")
    103182                        puts("getmirrorarchitecture")
    104183                        puts("setmirrorarchitecture [ARCH ARCH ...]")
    105184                        puts("getmirrororig")
    106                         puts("setmirrororig URL")
     185                        puts("setmirrororig MIRROR URL OPTION")
    107186                        puts("getchecksumvalidation")
    108187                        puts("setchecksumvalidation [0|1]")
     
    184263        lliurexmirror = LliurexMirror(credentials,host)
    185264        if action == "setcname":
    186                 lliurexmirror.setCname()
     265                sys.exit(lliurexmirror.setCname())
    187266        elif action == "rundebmirror" or action =="update":
    188                 lliurexmirror.runDebmirror(args.get(0))
     267                mirror = args.get(0)
     268                pathtoupdate = " ".join(args[1:])
     269                sys.exit(lliurexmirror.runDebmirror(mirror,pathtoupdate))
    189270        elif action == "isalive":
    190                 lliurexmirror.isAlive()
     271                sys.exit(lliurexmirror.isAlive())
     272        elif action == "isalive":
     273                sys.exit(lliurexmirror.is_alive_export())
    191274        elif action == "getmirrorarchitecture":
    192                 lliurexmirror.getMirrorArchitecture(args.get(0))
     275                sys.exit(lliurexmirror.getMirrorArchitecture(args.get(0)))
    193276        elif action == "setmirrorarchitecture":
    194                 lliurexmirror.setMirrorArchitecture(args.pop(0),args.all)
     277                sys.exit(lliurexmirror.setMirrorArchitecture(args.pop(0),args.all))
    195278        elif action == "getmirrororig":
    196                 lliurexmirror.getMirrorOrig(args.get(0))
     279                sys.exit(lliurexmirror.getMirrorOrig(args.get(0)))
    197280        elif action == "setmirrororig":
    198                 lliurexmirror.setMirrorOrig(args.get(0),args.get(1))
     281                sys.exit(lliurexmirror.setMirrorOrig(args.get(0),args.get(1)))
    199282        elif action == "getchecksumvalidation":
    200                 lliurexmirror.getChecksumValidation(args.get(0))
     283                sys.exit(lliurexmirror.getChecksumValidation(args.get(0)))
    201284        elif action == "setchecksumvalidation":
    202285                checkvalue = 1 if args.get(1) == "True" else 0
    203                 lliurexmirror.setChecksumValidation(args.get(0),checkvalue)
     286                sys.exit(lliurexmirror.setChecksumValidation(args.get(0),checkvalue))
    204287        elif action == "getpercentage":
    205                 lliurexmirror.getPercentage(args.get(0))
     288                sys.exit(lliurexmirror.getPercentage(args.get(0)))
     289        elif action == "getpercentageexport":
     290                sys.exit(lliurexmirror.get_percentage_export())
    206291        elif action == "enablewebserverforpath":
    207                 lliurexmirror.enableWebserverForPath(args.get(0))
     292                sys.exit(lliurexmirror.enableWebserverForPath(args.get(0)))
    208293        elif action == "stopwebserver":
    209                 lliurexmirror.stopWebserver(args.get(0))
     294                sys.exit(lliurexmirror.stopWebserver(args.get(0)))
    210295        elif action == "getavailabledistros":
    211                 lliurexmirror.getAvailableDistros()
     296                sys.exit(lliurexmirror.getAvailableDistros())
    212297        elif action == "stopupdate":
    213                 lliurexmirror.stopUpdate()
     298                sys.exit(lliurexmirror.stopUpdate())
    214299        elif action == "ismirrorupdate":
    215                 lliurexmirror.isMirrorUpdate(args.get(0))       
     300                sys.exit(lliurexmirror.isMirrorUpdate(args.get(0)))
     301        elif action == "exportmirror":
     302                mirror = args.get(0)
     303                destmirror = " ".join(args[1:])
     304                sys.exit(lliurexmirror.exportmirror(mirror,destmirror))
     305               
  • lliurex-mirror/trunk/fuentes/n4d-lliurex-mirror.install/usr/share/n4d/python-plugins/MirrorManager.py

    r2875 r3199  
    4545        "NAME": "",
    4646        "BANNER": "",
    47         "ORIGS" : {"1":"lliruex.net/xenial","2":"","3":""},
     47        "ORIGS" : {"1":"lliruex.net/xenial","2":"","3":""}, # 1 ORIGINAL ; 2 LOCALFILESYSTEM; 3 REMOTEURL
    4848        "ARCHITECTURES": [ "amd64", "i386"],
    4949        "SECTIONS": ["main", "main/debian-installer", "universe", "restricted", "multiverse", "partner"],
Note: See TracChangeset for help on using the changeset viewer.