Changeset 6191


Ignore:
Timestamp:
Nov 7, 2017, 6:23:25 PM (2 years ago)
Author:
Juanma
Message:

Changed mirror redirect to n4d's nfsmanager mechanism

File:
1 edited

Legend:

Unmodified
Added
Removed
  • zero-lliurex-mirror-redirect/trunk/fuentes/zero-lliurex-mirror-redirect.install/usr/sbin/mirror-redirect.py

    r6186 r6191  
    1 #!/usr/bin/env python3
     1#!/usr/bin/env python
    22import gi
    33gi.require_version('Gtk', '3.0')
     
    99import threading
    1010import sys
    11 import xmlrpc.client as n4d
    12 import ssl
    13 import lliurex.interfaceparser
     11import xmlrpclib as n4d
     12import lliurex.interfacesparser
     13
    1414import gettext
    1515gettext.textdomain('zero-lliurex-mirror-redirect')
     
    1818class redirectMirror():
    1919        def __init__(self,callback):
    20                 threading.Thread.__init__(self)
     20#               threading.Thread.__init__(self)
    2121                self.dbg=1
    2222                self.sw_slave=False
    2323                self.master_ip=''
    24                 self._set_server_data()
    2524                self.callback=callback
    2625                self.hostFile="/var/lib/dnsmasq/hosts/mirror"
    2726                self.cnameFile="/var/lib/dnsmasq/config/cname-mirror"
     27                self.mirror_dir="/net/mirror/llx16"
     28                self.slave_ip=''
     29                self.master_ip='10.3.0.254'
    2830                self.n4d=self._n4d_connect("localhost")
    29                 self.n4dMaster=self._n4d_connect("server")
     31                self._set_server_data()
     32                self.n4dMaster=self._n4d_connect(self.master_ip)
    3033
    3134        #def __init__
     
    3740
    3841        def _n4d_connect(self,server):
    39                 context=ssl._create_unverified_context()
    40                 n4dclient=n4d.ServerProxy("https://"+server+":9779",context=context)
     42                n4dclient=n4d.ServerProxy("https://"+server+":9779")
    4143                return(n4dclient)
    4244
    4345        def _set_server_data(self):
    44 #               n4dclient=self._n4d_connect()
    4546                self.master_ip=self.n4d.get_variable("","VariablesManager","MASTER_SERVER_IP")
    4647                if (self.master_ip):
     
    5253        def is_enabled(self):
    5354                sw_enabled=False
    54                 ip=self._get_replication_ip()
    55                 sw_enabled=self.n4dMaster.is_mirror_shared("","NfsManager","/net/mirror/llx16",ip)['status']
    56 #               if os.path.isfile(self.hostFile):
    57 #                       f=open(self.hostFile,'r')
    58 #                       fcontent=f.readlines()
    59 #                       for line in fcontent:
    60 #                               ip=line.split(' ')[0]
    61 #                               if (ip!=self.master_ip):
    62 #                                       self._debug("Master ip %s and mirror ip %s don't match" % (ip,self.master_ip))
    63 #                               else:
    64 #                                       sw_enabled=True
     55                self.slave_ip=self._get_replication_ip()
     56                sw_enabled=self.n4dMaster.is_mirror_shared("","NfsManager","/net/mirror/llx16",self.slave_ip)['status']
    6557                return(sw_enabled)
    6658        #def is_enabled
    6759
    6860        def enable_redirect(self):
     61                try:
     62                        sw_add=self.n4dMaster.add_mirror(["lliurex","lliurex"],"NfsManager",self.mirror_dir,self.slave_ip)['status']
     63                        print(sw_add)
     64                        if not self.n4d.is_mount_configured("","NfsManager",self.mirror_dir)['status']:
     65                                self.n4d.configure_mount_on_boot(["lliurex","lliurex"],"NfsManager",self.master_ip+":"+self.mirror_dir,self.mirror_dir)
     66                                print("Mounting on boot")
     67                except Exception as e:
     68                        print(e)
     69                        sw_add=False
     70                GObject.idle_add(self.callback,1)
     71                return sw_add
     72        #def enable_redirect
     73
     74        def disable_redirect(self):
     75                try:
     76                        self.n4d.remove_mount_on_boot("","NfsManager",self.mirror_dir)
     77                        sw_rm=self.n4dMaster.remove_ip_from_mirror(["lliurex","lliurex"],"NfsManager",self.mirror_dir,self.slave_ip)['status']
     78                except:
     79                        sw_rm=False
     80                GObject.idle_add(self.callback,1)
     81                return sw_rm
     82        #def disable_redirect
     83        '''
     84        def enable_redirect2(self):
    6985                hostname=subprocess.check_output("hostname -A",universal_newlines=True,shell=True).rstrip()
    7086                self._debug("Setting cname as %s" % self.master_ip)
     
    8298        #def enable_redirect
    8399
    84         def disable_redirect(self):
     100        #def disable_redirect(self):
    85101                hostname=subprocess.check_output("hostname -A",universal_newlines=True,shell=True).rstrip()
    86102                self._debug("Setting cname as %s" % hostname)
     
    97113                GObject.idle_add(self.callback,1)
    98114        #def disable_redirect
    99 
     115        '''
    100116        def _get_replication_ip(self):
    101117                ifaces=lliurex.interfacesparser.InterfacesParser()
    102118                ifaces.load('/etc/network/interfaces')
    103                 for aux_iface in self.interfaces.get_interfaces_in_range("10.3.0.0/24"):
     119                for aux_iface in ifaces.get_interfaces_in_range("10.3.0.0/24"):
    104120                        iface=aux_iface
    105121                        break
    106                 ip=ifaces.get_info_interface(iface)[1].split('\n').split(' ')[-1]
     122                ip=ifaces.get_info_interface(iface)[1].split('\n')[1].split(' ')[-1]
    107123                return ip
    108124        #def _get_replication_ip
Note: See TracChangeset for help on using the changeset viewer.