Changeset 2610


Ignore:
Timestamp:
Oct 18, 2016, 1:07:20 PM (3 years ago)
Author:
hectorgh
Message:

wip

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

Legend:

Unmodified
Added
Removed
  • lliurex-mirror/trunk/fuentes/lliurex-mirror2/lliurex-mirror.py

    r2595 r2610  
    1414import math
    1515import sys
     16import tempfile
    1617from math import pi
    1718import lliurex_mirror_connect
     
    241242                self.url_entry=builder.get_object("url_entry")
    242243               
     244                self.configuration_infobar=builder.get_object("configuration_infobar")
     245                self.configuration_panel_label=builder.get_object("configuration_panel_label")
     246                self.configuration_infobar.connect("response",self.ib_response)
     247               
    243248                self.arrow_eb.add_events(Gdk.EventMask.BUTTON_RELEASE_MASK )
    244249                self.arrow_eb.connect("button-release-event",self.arrow_clicked)
     
    314319                self.url_rb_label=builder.get_object("url_rb_label")
    315320                self.destination_opt_label=builder.get_object("destination_opt_label")
    316                
    317                
    318                
     321                               
    319322                self.ib=builder.get_object("infobar1")
    320323                self.ib.connect("response",self.ib_response)
    321324                self.info_label=builder.get_object("info_label")
     325               
     326                self.info_button=builder.get_object("info_button")
     327                self.info_button.connect("clicked",self.info_button_clicked)
    322328               
    323329                self.main_content_box=Gtk.Grid()
     
    435441                self.ib.hide()
    436442                self.button1.hide()
     443                self.configuration_infobar.hide()
    437444               
    438445                self.progress_da.connect("draw",self.draw_progress)
     
    440447               
    441448                               
    442                
    443449               
    444450               
     
    853859               
    854860                self.ib.set_message_type(message_type)
    855                 self.info_label.set_text(txt)
     861                self.info_label.set_markup(txt)
    856862                self.ib.show()
     863               
     864        #def set_info_text
     865       
     866        def set_conf_text(self,txt,message_type=Gtk.MessageType.INFO):
     867               
     868                self.configuration_infobar.set_message_type(message_type)
     869                self.configuration_panel_label.set_markup(txt)
     870                self.configuration_infobar.show()
    857871               
    858872        #def set_info_text
     
    954968        def ib_response(self,widget,response):
    955969
    956                 self.ib.hide()
     970                widget.hide()
    957971               
    958972        #
     
    10941108                        GLib.timeout_add(self.update_degree_time,self.update_degree)
    10951109                       
    1096                         #print c.update('mippa','3','172.20.8.6/mirror/ppa-xenial')
    1097                         #print c.update('mippa','2','/home/mirror-ppa-otracarpeta')
    1098                         #print c.update('mippa','1')
    1099        
    11001110                        self.llx_conn.update(self.current_mirror.info["KEY"],mode,data)
    11011111                       
     
    11031113                        self.update_label.set_text("Cancel")
    11041114                        self.update_label_box.set_name("CANCEL_BUTTON_OVER")
    1105                        
    11061115                        self.export_label_box.set_name("DISABLED_BUTTON")
    11071116                       
     
    13301339                                key=self.llx_conn.create_config(self.current_mirror.info)
    13311340                                self.current_mirror.info["KEY"]=key
    1332                                 self.set_info_text("Configuration Saved",INFO)
     1341                                self.set_conf_text("Configuration Saved",INFO)
    13331342                        except Exception as e:
    1334                                 self.set_info_text("Could not save configuration [%s]"%e,ERROR)
     1343                                self.set_conf_text("Could not save configuration [%s]"%e,ERROR)
    13351344               
    13361345                else:
    13371346                        try:
    13381347                                self.llx_conn.save_config(self.current_mirror.info["KEY"],self.current_mirror.info)
    1339                                 self.set_info_text("Configuration Saved",INFO)
     1348                                self.configuration_infobar.hide()
     1349                                self.set_conf_text("Configuration Saved",INFO)
    13401350                        except Exception as e:
    1341                                 self.set_info_text("Could not save configuration [%s]"%e,ERROR)
     1351                                self.set_conf_text("Could not save configuration [%s]"%e,ERROR)
    13421352               
    13431353        #def save_button_clicked
     
    13751385        def validate_thread(self):
    13761386               
    1377                
     1387                print self.server_ip
    13781388               
    13791389                c=xmlrpclib.ServerProxy("https://"+self.server_ip+":9779")
     
    13841394                except Exception as e:
    13851395                        self.ret=[False,str(e)]
     1396                        GLib.idle_add(self.set_login_msg,str(e))
     1397                        GLib.idle_add(self.login_form_sensitive)
     1398                        return
    13861399
    13871400               
     
    14371450                                self.server_ip="localhost"
    14381451                               
    1439                                
    1440                         self.user="lliurex"
    1441                         self.password="lliurex"
     1452                        if self.user=="":       
     1453                                self.user="lliurex"
     1454                        if self.password=="":
     1455                                self.password="lliurex"
    14421456                       
    14431457                        self.login_animation_r=60
     
    15731587                                else:
    15741588                                        error="Error:\n"
    1575                                                
     1589                                        print ret["msg"],len(ret["msg"])
    15761590                                        error+=ret["msg"].lstrip().rstrip()
    15771591                                        self.set_info_text(error,Gtk.MessageType.ERROR)
     
    19271941        #def mouse_left
    19281942
     1943        def info_button_clicked(self,button):
     1944               
     1945                buffer=self.textview.get_buffer()
     1946                ret=self.llx_conn.get_last_log()
     1947                if ret!=None:
     1948                        os.system("xdg-open %s &"%ret)
     1949               
     1950        #def info_button_clicked
     1951
     1952        def hide_window(self,widget,event):
     1953               
     1954                widget.hide()
     1955                return True
     1956               
     1957        #def
     1958
    19291959       
    19301960        def restore_shadow_alpha(self,mirror_button,widget):
  • lliurex-mirror/trunk/fuentes/lliurex-mirror2/lliurex_mirror_connect.py

    r2578 r2610  
    11import xmlrpclib
     2import base64
     3import tempfile
    24
    35class LliurexMirrorN4d:
     
    7274        def save_config(self,mirror,config):
    7375               
    74                 parsed_mirror={}
    75                
    76                 for key in self.key_list:
    77                         parsed_mirror[key]=config[key]
    78                
    79                
    80                 result = self.client.update_mirror_config(self.credentials,'MirrorManager',mirror,parsed_mirror)
    81                 return result
     76                try:
     77               
     78                        parsed_mirror={}
     79                       
     80                        for key in self.key_list:
     81                                parsed_mirror[key]=config[key]
     82                       
     83                       
     84                        result = self.client.update_mirror_config(self.credentials,'MirrorManager',mirror,parsed_mirror)
     85                        return result
     86                       
     87                except Exception as e:
     88                        print "[!] Error saving configuration: [!]"
     89                        print e
     90                        return None
    8291               
    8392        #def save_config
    8493
    8594        def create_config(self,config):
    86                 print config
    87                 if type(self.client) == type(None):
     95               
     96                try:
     97               
     98                        if type(self.client) == type(None):
     99                                return {}
     100                        result = self.client.new_mirror_config(self.credentials,'MirrorManager',config)
     101               
     102                        if result['status']:
     103                                return result['msg']
     104                               
     105                except:
     106                       
    88107                        return {}
    89                 result = self.client.new_mirror_config(self.credentials,'MirrorManager',config)
    90                 print 2
    91                 if result['status']:
    92                         return result['msg']
    93                 return result
     108               
     109               
     110               
    94111        #def create_conf
    95112
     
    99116                data is extra info to update (local network ip, )
    100117                '''
    101                 self.mode = None
    102                 self.localport = None
    103                 callback_args = None
    104                 if mode == '2':
    105                         self.mode = 2
     118               
     119                try:
     120               
     121                        self.mode = None
     122                        self.localport = None
     123                        callback_args = None
     124                        if mode == '2':
     125                                self.mode = 2
     126                                result = self.client.get_client_ip('','MirrorManager','')
     127                                tempserver = result['msg']
     128                                result = self.localclient.enable_webserver_into_folder(self.localcredentials,'MirrorManager',data)
     129                                print result
     130                                tempserver = tempserver + ":" + str(result['msg'])
     131                                data = tempserver
     132                                callback_args = {}
     133                                callback_args['port'] = str(result['msg'])
     134                                self.localport = str(result['msg'])
     135                        if data != None:
     136                                self.client.set_mirror_orig(self.credentials,'MirrorManager',mirror,data,mode)
     137                        self.client.set_option_update(self.credentials,'MirrorManager',mirror,mode)
     138                        result = self.client.update(self.credentials,'MirrorManager','',mirror,callback_args)
     139                        return result['status']
     140                       
     141                except Exception as e:
     142                        print e
     143                       
     144                        return None
     145                       
     146        #def update
     147
     148        def export(self, mirror,folder):
     149               
     150                try:
     151                        # Get config for this mirror
     152                        result = self.client.get_all_configs(self.credentials,'MirrorManager')
     153                        config = result['msg'][mirror]
    106154                        result = self.client.get_client_ip('','MirrorManager','')
    107                         tempserver = result['msg']
    108                         result = self.localclient.enable_webserver_into_folder(self.localcredentials,'MirrorManager',data)
    109                         print result
    110                         tempserver = tempserver + ":" + str(result['msg'])
    111                         data = tempserver
     155                        ip = result['msg']
     156                        # Open webserver for mirror and get ip
     157                        result = self.client.enable_webserver_into_folder(self.credentials,'MirrorManager',config['MIRROR_PATH'])
     158                        port = str(result['msg'])
     159                        self.remoteport = port
     160                        # Modify Config and write
     161                       
     162                        config['MIRROR_PATH'] = folder
     163                        config['CURRENT_UPDATE_OPTION'] = '3'
     164                        config['ORIGS']['3'] = self.serverip + ":" + str(port)
     165                        result = self.client.render_debmirror_config(self.credentials,'MirrorManager',config)
     166                        temp_file = tempfile.mktemp()
     167                        f = open(temp_file,'w')
     168                        f.write(result['msg'])
     169                        f.close()
    112170                        callback_args = {}
    113                         callback_args['port'] = str(result['msg'])
    114                         self.localport = str(result['msg'])
    115                 if data != None:
    116                         self.client.set_mirror_orig(self.credentials,'MirrorManager',mirror,data,mode)
    117                 self.client.set_option_update(self.credentials,'MirrorManager',mirror,mode)
    118                 result = self.client.update(self.credentials,'MirrorManager','',mirror,callback_args)
    119                 return result['status']
    120         #def update
    121 
    122         def export(self, mirror,folder):
    123                 import tempfile
    124 
    125                 # Get config for this mirror
    126                 result = self.client.get_all_configs(self.credentials,'MirrorManager')
    127                 config = result['msg'][mirror]
    128                 result = self.client.get_client_ip('','MirrorManager','')
    129                 ip = result['msg']
    130                 # Open webserver for mirror and get ip
    131                 result = self.client.enable_webserver_into_folder(self.credentials,'MirrorManager',config['MIRROR_PATH'])
    132                 port = str(result['msg'])
    133                 self.remoteport = port
    134                 # Modify Config and write
    135                
    136                 config['MIRROR_PATH'] = folder
    137                 config['CURRENT_UPDATE_OPTION'] = '3'
    138                 config['ORIGS']['3'] = self.serverip + ":" + str(port)
    139                 result = self.client.render_debmirror_config(self.credentials,'MirrorManager',config)
    140                 temp_file = tempfile.mktemp()
    141                 f = open(temp_file,'w')
    142                 f.write(result['msg'])
    143                 f.close()
    144                 callback_args = {}
    145                 callback_args['ip'] = ip
    146                 callback_args['port'] = port
    147                 # Execute mirror
    148                 print self.localclient.get_mirror(self.localcredentials,'MirrorManager',temp_file,callback_args)
    149                 return True
     171                        callback_args['ip'] = ip
     172                        callback_args['port'] = port
     173                        # Execute mirror
     174                        print self.localclient.get_mirror(self.localcredentials,'MirrorManager',temp_file,callback_args)
     175                        return True
     176                except:
     177                       
     178                        return False
    150179        #def export
    151180
    152181        def get_percentage_export(self):
    153                 result = self.localclient.is_alive_get_mirror(self.localcredentials,'MirrorManager')
    154                 return result['msg'][0]
     182                try:
     183                        result = self.localclient.is_alive_get_mirror(self.localcredentials,'MirrorManager')
     184                        return result['msg'][0]
     185                except Exception as e:
     186                        print e
     187                        return None
     188                       
    155189        #def get_percentage_export
    156190
    157191        def is_alive_export(self):
    158                 result = self.localclient.is_alive_get_mirror(self.localcredentials,'MirrorManager')
    159                 return result
     192                try:
     193                        result = self.localclient.is_alive_get_mirror(self.localcredentials,'MirrorManager')
     194                        return result
     195                except Exception as e:
     196                        print e
     197                        return None
    160198               
    161199
    162200
    163201        def get_percentage(self,mirror):
    164                 result = self.client.get_percentage(self.credentials,'MirrorManager',mirror)
    165                 if result['status'] :
    166                         return result['msg']
     202               
     203                try:
     204               
     205                        result = self.client.get_percentage(self.credentials,'MirrorManager',mirror)
     206                        if result['status'] :
     207                                return result['msg']
     208                               
     209                except Exception as e:
     210                        print e
     211                        return None
     212                       
    167213        #def get_percentage
     214
    168215       
    169216        def get_status(self,mirror):
     
    179226                        return {"status": False, "msg": str(e) }
    180227                       
    181         #def get_status
     228        #def get_status
     229
     230       
     231        def get_last_log(self):
     232               
     233                try:
     234               
     235                        ret=self.client.get_last_log(self.credentials,"MirrorManager")
     236                        txt=base64.b64decode(ret["msg"])
     237                        tmp_file=tempfile.mkstemp(suffix=".lliurex-mirror")
     238                        f=os.fdopen(tmp_file[0],"w")
     239                        f.write(txt)
     240                        f.close()
     241                        return tmp_file[1]
     242                       
     243                except Exception as e:
     244                        print e
     245                        return None
     246
     247        #def get_last_log
    182248
    183249        def is_update_available(self,mirror):
    184                 result = self.client.is_update_available(self.credentials,'MirrorManager',mirror)
    185                 return result['status']
     250                try:
     251                        result = self.client.is_update_available(self.credentials,'MirrorManager',mirror)
     252                        return result['status']
     253                except Exception as e:
     254                        print e
     255                        return None
     256                       
    186257        #def is_update_available
    187258
    188259        def stop_update(self):
    189                 if self.mode == '2':
    190                         self.localclient.stop_webserver(self.credentials,'MirrorManager',self.localport)
    191                 result = self.client.stopupdate(self.credentials,'MirrorManager')
    192                 return result['status']
     260                try:
     261                        if self.mode == '2':
     262                                self.localclient.stop_webserver(self.credentials,'MirrorManager',self.localport)
     263                        result = self.client.stopupdate(self.credentials,'MirrorManager')
     264                        return result['status']
     265                except Exception as e:
     266                        print e
     267                        return None
     268                       
    193269        #def stop_update
    194270
    195271        def stop_export(self):
    196                 self.client.stop_webserver(self.credentials,'MirrorManager',self.remoteport)
    197                 result = self.localclient.stopgetmirror(self.credentials,'MirrorManager')
    198                 return result['status']
     272               
     273                try:
     274                        self.client.stop_webserver(self.credentials,'MirrorManager',self.remoteport)
     275                        result = self.localclient.stopgetmirror(self.credentials,'MirrorManager')
     276                        return result['status']
     277                except Exception as e:
     278                        print e
     279                        return None
     280                       
    199281        #def stop_update
    200282
  • lliurex-mirror/trunk/fuentes/lliurex-mirror2/rsrc/lliurex-mirror.ui

    r2518 r2610  
    7171        <property name="orientation">vertical</property>
    7272        <child>
    73           <placeholder/>
     73          <object class="GtkInfoBar" id="configuration_infobar">
     74            <property name="visible">True</property>
     75            <property name="app_paintable">True</property>
     76            <property name="can_focus">False</property>
     77            <property name="show_close_button">True</property>
     78            <child internal-child="action_area">
     79              <object class="GtkButtonBox" id="infobar-action_area2">
     80                <property name="can_focus">False</property>
     81                <property name="spacing">6</property>
     82                <property name="layout_style">end</property>
     83                <child>
     84                  <placeholder/>
     85                </child>
     86              </object>
     87              <packing>
     88                <property name="expand">False</property>
     89                <property name="fill">False</property>
     90                <property name="position">0</property>
     91              </packing>
     92            </child>
     93            <child internal-child="content_area">
     94              <object class="GtkBox" id="infobar-content_area2">
     95                <property name="can_focus">False</property>
     96                <property name="spacing">16</property>
     97                <child>
     98                  <object class="GtkLabel" id="configuration_panel_label">
     99                    <property name="visible">True</property>
     100                    <property name="can_focus">False</property>
     101                  </object>
     102                  <packing>
     103                    <property name="expand">False</property>
     104                    <property name="fill">True</property>
     105                    <property name="position">0</property>
     106                  </packing>
     107                </child>
     108              </object>
     109              <packing>
     110                <property name="expand">False</property>
     111                <property name="fill">False</property>
     112                <property name="position">0</property>
     113              </packing>
     114            </child>
     115            <child>
     116              <placeholder/>
     117            </child>
     118          </object>
     119          <packing>
     120            <property name="expand">False</property>
     121            <property name="fill">True</property>
     122            <property name="position">0</property>
     123          </packing>
    74124        </child>
    75125      </object>
     
    846896                <property name="layout_style">end</property>
    847897                <child>
    848                   <placeholder/>
     898                  <object class="GtkButton" id="info_button">
     899                    <property name="label" translatable="yes">View Log</property>
     900                    <property name="visible">True</property>
     901                    <property name="can_focus">True</property>
     902                    <property name="receives_default">True</property>
     903                  </object>
     904                  <packing>
     905                    <property name="expand">True</property>
     906                    <property name="fill">True</property>
     907                    <property name="position">0</property>
     908                  </packing>
    849909                </child>
    850910                <child>
     
    10731133            <property name="can_focus">False</property>
    10741134            <property name="margin_left">30</property>
    1075             <property name="label" translatable="yes">/home/cless/my_local_mirror</property>
    10761135            <property name="ellipsize">end</property>
    10771136            <property name="xalign">0</property>
Note: See TracChangeset for help on using the changeset viewer.