Changeset 2437 for lliurex-mirror


Ignore:
Timestamp:
Sep 15, 2016, 12:12:09 PM (3 years ago)
Author:
kbut
Message:

new functions and refactoring for lliurex-mirror gtk client

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

Legend:

Unmodified
Added
Removed
  • lliurex-mirror/trunk/fuentes/admin-center-lliurex-mirror.install/lliurex-mirror/src/js/lliurex-mirror.js

    r2320 r2437  
    3737LliurexMirror.prototype.loadOrigin = function loadOrigin(distro){
    3838  var self = this;
    39   Utils.n4d(self.credentials, self.n4dclass, "get_mirror_orig", [distro], function getmirrororig(response){
    40     if(response != null && response['status'] == true)
    41       self.distros[distro]['orig'] = response['msg'];
    42       self.showOrig(response['msg']);
     39  Utils.n4d(self.credentials, self.n4dclass, "get_option_update", [distro], function getoptionupdate(response){
     40    if(response != null && response['status'] == true){
     41      Utils.n4d(self.credentials, self.n4dclass, "get_mirror_orig", [distro,response['msg']], function getmirrororig(response){
     42        if(response != null && response['status'] == true){
     43          self.distros[distro]['orig'] = response['msg'];
     44          self.showOrig(response['msg']);
     45        }
     46      });
     47    }
    4348  });
    4449}
     
    194199      customurlform.classList.toggle('llxmirrorhidden');
    195200      internet.classList.add('btn-info');
    196       self.setOrig('lliurex.net/xenial');
     201      self.setOrig('1','lliurex.net/xenial');
    197202      self.showOrigin();
    198203    }
     
    205210      url.classList.add('btn-info');
    206211      customurlform.classList.toggle('llxmirrorhidden');
    207       self.setOrig(customurl.value);
     212      self.setOrig('2',customurl.value);
    208213      self.showOrigin();
    209214    }
     
    211216
    212217
     218
     219Utils.n4d(self.credentials, self.n4dclass, "get_option_update", [distro], function getoptionupdate(response){
    213220  var credentials=[sessionStorage.username , sessionStorage.password];
    214221  var n4dclass="MirrorManager";
     
    248255  clearTimeout(self.urlorig);
    249256  self.urlorig = setTimeout(function(){
    250     self.setOrig(document.querySelector('#customurl').value);
     257    self.setOrig('2',document.querySelector('#customurl').value);
    251258    self.showOrigin();}
    252259    ,1500);
     
    306313}
    307314
    308 LliurexMirror.prototype.setOrig = function setOrig(orig){
     315LliurexMirror.prototype.setOrig = function setOrig(option,orig){
    309316  var self = this;
    310317  var credentials=[sessionStorage.username , sessionStorage.password];
     
    313320  var distro = self.activedistro;
    314321  var arglist = [distro,orig];
    315   Utils.n4d(credentials, n4dclass, n4dmethod, arglist, function(){});
     322  Utils.n4d(credentials, n4dclass, 'set_option_update', [distro,option], function(){
     323    Utils.n4d(credentials, n4dclass, n4dmethod, arglist, function(){});
     324  });
    316325}
    317326
  • lliurex-mirror/trunk/fuentes/n4d-lliurex-mirror.install/usr/share/lliurex-mirror/conf/llx13.json

    r2278 r2437  
    11{
    2     "LLIUREX_ORIG": "lliurex.net/pandora",
    3     "URL": "lliurex.net/pandora",
    4     "ARCHITECTURES": [ "amd64", "i386"],
    5     "SECTIONS": ["main", "main/debian-installer", "universe", "restricted", "multiverse", "partner"],
    6     "MIRRORPATH": "/net/mirror/llx1306",
    7     "DISTRO": "pandora",
    8     "IGN_GPG":1,
    9     "IGN_RELEASE":0,
    10     "CHK_MD5":0
     2        "NAME":"LliureX Pandora",
     3        "BANNER": "",
     4        "ORIGS":{"1":"lliurex.net/pandora","2":"","3":""},
     5        "ARCHITECTURES": [ "amd64", "i386"],
     6        "SECTIONS": ["main", "main/debian-installer", "universe", "restricted", "multiverse", "partner"],
     7        "MIRROR_PATH": "/net/mirror/llx1306",
     8        "DISTROS": ["pandora"],
     9        "IGN_GPG":1,
     10        "IGN_RELEASE":0,
     11        "CHK_MD5":0,
     12        "CURRENT_UPDATE_OPTION":"1"
    1113}
  • lliurex-mirror/trunk/fuentes/n4d-lliurex-mirror.install/usr/share/lliurex-mirror/conf/llx14.json

    r2278 r2437  
    11{
    2     "LLIUREX_ORIG": "lliurex.net/platinum",
    3     "URL": "lliurex.net/platinum",
    4     "ARCHITECTURES": [ "amd64", "i386"],
    5     "SECTIONS": ["main", "main/debian-installer", "universe", "restricted", "multiverse", "partner"],
    6     "MIRRORPATH": "/net/mirror/llx1406",
    7     "DISTROS": ["precise","precise-updates","precise-security"],
    8     "IGN_GPG":1,
    9     "IGN_RELEASE":0,
    10     "CHK_MD5":0
     2        "NAME":"LliureX Platinum",
     3        "BANNER": "",
     4        "ORIGS":{"1":"lliurex.net/platinum","2":"","3":""},
     5        "ARCHITECTURES": [ "amd64", "i386"],
     6        "SECTIONS": ["main", "main/debian-installer", "universe", "restricted", "multiverse", "partner"],
     7        "MIRROR_PATH": "/net/mirror/llx1406",
     8        "DISTROS": ["precise","precise-updates","precise-security"],
     9        "IGN_GPG":1,
     10        "IGN_RELEASE":0,
     11        "CHK_MD5":0,
     12        "CURRENT_UPDATE_OPTION":"1"
    1113}
  • lliurex-mirror/trunk/fuentes/n4d-lliurex-mirror.install/usr/share/lliurex-mirror/conf/llx15.json

    r2278 r2437  
    11{
    2     "LLIUREX_ORIG": "lliurex.net/trusty",
    3     "URL": "lliurex.net/trusty",
    4     "ARCHITECTURES": [ "amd64", "i386"],
    5     "SECTIONS": ["main", "main/debian-installer", "universe", "restricted", "multiverse", "partner"],
    6     "MIRRORPATH": "/net/mirror/llx1505",
    7     "DISTROS": ["trusty","trusty-security","trusty-updates"],
    8     "IGN_GPG":1,
    9     "IGN_RELEASE":0,
    10     "CHK_MD5":0
     2        "NAME":"LliureX Trusty",
     3        "BANNER": "",
     4        "ORIGS":{"1":"lliurex.net/trusty","2":"","3":""},
     5        "ARCHITECTURES": [ "amd64", "i386"],
     6        "SECTIONS": ["main", "main/debian-installer", "universe", "restricted", "multiverse", "partner"],
     7        "MIRROR_PATH": "/net/mirror/llx1505",
     8        "DISTROS": ["trusty","trusty-security","trusty-updates"],
     9        "IGN_GPG":1,
     10        "IGN_RELEASE":0,
     11        "CHK_MD5":0,
     12        "CURRENT_UPDATE_OPTION":"1"
    1113}
  • lliurex-mirror/trunk/fuentes/n4d-lliurex-mirror.install/usr/share/lliurex-mirror/conf/llx16.json

    r2278 r2437  
    11{
    2     "LLIUREX_ORIG": "lliurex.net/xenial",
    3     "URL": "lliurex.net/xenial",
    4     "ARCHITECTURES": [ "amd64", "i386"],
    5     "SECTIONS": ["main", "main/debian-installer", "universe", "restricted", "multiverse", "partner"],
    6     "MIRRORPATH": "/net/mirror/llx16",
    7     "DISTROS": ["xenial","xenial-updates","xenial-security"],
    8     "IGN_GPG":1,
    9     "IGN_RELEASE":0,
    10     "CHK_MD5":0
     2        "NAME":"LliureX Xenial",
     3        "BANNER": "",
     4        "ORIGS":{"1":"lliurex.net/xenial","2":"","3":""},
     5        "ARCHITECTURES": [ "amd64", "i386"],
     6        "SECTIONS": ["main", "main/debian-installer", "universe", "restricted", "multiverse", "partner"],
     7        "MIRROR_PATH": "/net/mirror/llx16",
     8        "DISTROS": ["xenial","xenial-updates","xenial-security"],
     9        "IGN_GPG":1,
     10        "IGN_RELEASE":0,
     11        "CHK_MD5":0,
     12        "CURRENT_UPDATE_OPTION":"1"
    1113}
  • lliurex-mirror/trunk/fuentes/n4d-lliurex-mirror.install/usr/share/n4d/python-plugins/MirrorManager.py

    r2388 r2437  
    3434                self.update_thread=threading.Thread()
    3535                self.percentage=(0,None)
     36                self.mirrorworking = None
    3637                self.webserverprocess = None
    3738                self.defaultmirrorinfo = {"status_mirror":"New","last_mirror_date":None,"mirror_size":0,"progress":0}
     39                self.default_mirror_config = '''
     40{
     41        "NAME": "",
     42        "BANNER": "",
     43        "ORIGS" : {"1":"lliruex.net/xenial","2":"","3":""},
     44        "ARCHITECTURES": [ "amd64", "i386"],
     45        "SECTIONS": ["main", "main/debian-installer", "universe", "restricted", "multiverse", "partner"],
     46        "MIRROR_PATH": "/net/mirror/llx16",
     47        "DISTROS": ["xenial","xenial-updates","xenial-security"],
     48        "IGN_GPG":1,
     49        "IGN_RELEASE":0,
     50        "CHK_MD5":0,
     51        "CURRENT_UPDATE_OPTION":"1"
     52}'''
    3853               
    3954        #def init
     
    137152                self.variable[distro]['status_mirror'] = "Working"
    138153                self.n4d_vars.set_variable("LLIUREXMIRROR",self.variable)
    139                 filelog = open('/var/log/lliurex-mirror.log','w')
    140154                self.build_debmirror_config(distro)
    141155                if os.path.exists('/etc/debmirror.conf'):
    142156                        os.remove('/etc/debmirror.conf')
    143157                os.symlink(os.path.join(self.debmirrorconfpath,distro),'/etc/debmirror.conf')
     158                self.mirrorworking = distro
    144159                self.debmirrorprocess=pexpect.spawn("/usr/bin/debmirror")
    145160                try:
     
    151166                                self.debmirrorprocess.expect('\n')
    152167                                line =self.debmirrorprocess.before
    153                                 filelog.write(line)
    154168                                line1=line.strip("\n")
    155169                                if line1.startswith("[") and line1[5] == "]":
     
    161175                                        if line1 != "" and line1.startswith("[") and line1[5] == "]":
    162176                                                        self.percentage=(int(line1[1:4].strip()),self.debmirrorprocess.exitstatus)
    163                                         filelog.write(line1)
    164177                                        self.debmirrorprocess.close()
    165178                                        status = self.debmirrorprocess.exitstatus
     
    173186                                self.n4d_vars.set_variable("LLIUREXMIRROR",self.variable)
    174187                                break
    175                 filelog.close()
    176188
    177189                self.download_time_file(distro)
    178190
    179191                self.set_mirror_info(distro)
    180 
     192                self.mirrorworking = None
    181193                try:
    182194                        objects["ZCenterVariables"].remove_pulsating_color("lliurexmirror")
     
    187199       
    188200        def is_alive(self):
    189                 return {'status':self.update_thread.is_alive(),'msg':''}
     201
     202                return {'status':self.update_thread.is_alive(),'msg':self.mirrorworking}
    190203        #def is_alive
    191204
     
    200213                config = json.load(open(configpath,'r'))
    201214
    202                 mirrorpath = config["MIRRORPATH"]
     215                mirrorpath = config["MIRROR_PATH"]
    203216                #self.n4d_vars.set_variable("ZEROCENTERINTERNAL",self.internal_variable)
    204217               
     
    286299        #def set_mirror_architecture
    287300       
    288         def get_mirror_orig(self,distro):
     301        def get_mirror_orig(self,distro,option):
    289302
    290303                configpath = os.path.join(self.configpath,distro + ".json")
     
    293306                        return {'status':False,'msg':'not exists debmirror.conf to '+ distro }
    294307
    295                 if "URL" in config.keys():
    296                         return {'status':True,'msg':config["URL"] }
     308                if "ORIGS" in config.keys():
     309                        return {'status':True,'msg':config["ORIGS"][option] }
    297310                       
    298                 return {'status':False,'msg':"debmirror.conf hasn't orig variable" }           
     311                return {'status':False,'msg':"debmirror.conf hasn't orig variable" }   
    299312        #def get_mirror_from
    300313
    301         def set_mirror_orig(self,distro,url):
     314        def set_mirror_orig(self,distro,url,option):
    302315                configpath = os.path.join(self.configpath, distro + ".json")
    303316                config = json.load(open(configpath,'r'))
    304                 config['URL'] = url
     317                config['ORIGS'][option] = url
    305318
    306319                f=open(configpath,"w")
     
    312325                return {'status':True,'msg':'set orig'}
    313326        #def set_mirror_architecture
     327
     328        def get_option_update(self,distro):
     329                configpath = os.path.join(self.configpath,distro + ".json")
     330                config = json.load(open(configpath,'r'))
     331                if not os.path.exists(configpath):
     332                        return {'status':False,'msg':'not exists debmirror.conf to '+ distro }
     333
     334                if "CURRENT_UPDATE_OPTION" in config.keys():
     335                        return {'status':True,'msg':config["CURRENT_UPDATE_OPTION"] }
     336                       
     337                return {'status':False,'msg':"debmirror.conf hasn't option update variable" }
     338        #def set_option_update
     339
     340        def set_option_update(self,distro,option):
     341                configpath = os.path.join(self.configpath, distro + ".json")
     342                config = json.load(open(configpath,'r'))
     343                config['CURRENT_UPDATE_OPTION'] = str(option)
     344
     345                f=open(configpath,"w")
     346                data=unicode(json.dumps(config,indent=4,encoding="utf-8",ensure_ascii=False)).encode("utf-8")
     347                f.write(data)
     348                f.close()
     349
     350                self.build_debmirror_config(distro)
     351                return {'status':True,'msg':'set update option'}
     352        #def set_option_update
    314353
    315354        def get_percentage(self,distro):
     
    318357                else:
    319358                        return {'status':False,'msg':'this repo nos has been configured'}
     359        #def get_percentage
    320360
    321361        def build_debmirror_config(self,distro):
     
    341381        def _enable_webserver_into_folder(self,port,path):
    342382                try:
    343                         import os
    344383                        iface = '127.0.0.1'
    345384                        sock = (iface,port)
     
    403442                configpath = os.path.join(self.configpath,distro + ".json")
    404443                config = json.load(open(configpath,'r'))
    405                 path=config["MIRRORPATH"]
     444                path=config["MIRROR_PATH"]
    406445                f="time-of-last-update"
    407446                dest=os.path.join(path,f)
     
    434473                configpath = os.path.join(self.configpath,distro + ".json")
    435474                config = json.load(open(configpath,'r'))
    436                 path=config["MIRRORPATH"]
     475                path=config["MIRROR_PATH"]
    437476                file_time_name="time-of-last-update"
    438477                file_local_mirror=os.path.join(path,file_time_name)
     
    440479               
    441480                if os.path.isfile(file_local_mirror):
    442                         url_pool="http://"+os.path.join(config["LLIUREX_ORIG"],file_time_name)
     481                        url_pool="http://"+os.path.join(config["ORIGS"]['1'],file_time_name)
    443482                        file_pool=os.path.join("/tmp",file_time_name)
    444483
     
    474513                        return {'status':False,'msg':file_local_mirror + ' does not exist.','action':'nothing'}
    475514
    476         # def is_mirror_update                 
     515        # def is_mirror_update
     516
     517        def new_mirror_config(self,config):
     518                name = config["NAME"].lower().strip()
     519                import string
     520                valid_chars = "-_.%s%s" % (string.ascii_letters, string.digits)
     521                name = ''.join(c for c in name if c in valid_chars)
     522
     523                # Checks
     524                if name == "":
     525                        return {'status':False,'msg':"Name can't void"}
     526                newconfigpath = os.path.join(self.configpath,name,'.json')
     527                if os.path.exists(newconfigpath):
     528                        return {'status':False,'msg':'Path for %s already exists'%config["NAME"]}
     529
     530                data=unicode(json.dumps(config,indent=4,encoding="utf-8",ensure_ascii=False)).encode("utf-8")
     531                f = open(newconfigpath,'w')
     532                f.write(data)
     533                f.close()
     534                return {'status':True,'msg':'Config has been created'}
     535        #def new_mirror_config
     536
     537        def get_all_configs(self):
     538                versions = os.listdir(self.configpath)
     539                allconfigs = {}
     540                for version in versions:
     541                        configfile = os.path.join(self.configpath,version)
     542                        f = open(configfile,'r')
     543                        allconfigs[version] = json.load(f)
     544                        f.close()
     545                return {'status':True,'msg':allconfigs}
     546        #def get_all_configs
     547
     548        def update_mirror_config(self,mirror,config):
     549                configpath = os.path.join(self.configpath,distro + ".json")
     550
     551                f=open(configpath,"w")
     552
     553                data=unicode(json.dumps(config,indent=4,encoding="utf-8",ensure_ascii=False)).encode("utf-8")
     554                f.write(data)
     555                f.close()
     556
     557                return {'status':True,'msg':'Updated config'}
     558        #def update_mirror_config
  • lliurex-mirror/trunk/fuentes/n4d-lliurex-mirror.install/usr/share/n4d/templates/lliurex-mirror/debmirror.conf

    r2119 r2437  
    1313
    1414# Location of the local mirror (use with care)
    15 $mirrordir="{{MIRRORPATH}}";
     15$mirrordir="{{MIRROR_PATH}}";
    1616
    1717# Output options
     
    2121
    2222# Download options
    23 $host="{{ URL }}";
     23$host="{{ ORIGS[CURRENT_UPDATE_OPTION] }}";
    2424#$user="";
    2525#$passwd="anonymous@";
Note: See TracChangeset for help on using the changeset viewer.