Changeset 3833


Ignore:
Timestamp:
Mar 7, 2017, 3:03:10 PM (2 years ago)
Author:
daduve
Message:

Updating n4d methods for server

Location:
lliurex-remote-installer/trunk/fuentes
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • lliurex-remote-installer/trunk/fuentes/lliurex-remote-installer-client.install/etc/n4d/conf.d/LliurexRemoteInstallerClient

    r3694 r3833  
    11[SETUP]
    22type=python
    3 path=LliurexRemoteInstallerClient.py
    4 class=LliureXRemoteInstallerClient
     3path=LliureXRemoteInstaller.py
     4class=LliureXRemoteInstaller
    55[METHODS]
    6 read_var=anonymous
    7 test_system=admins,admin,adm,teachers
    8 repo_add=admins,admin,adm,teachers
    9 repo_restore=admins,admin,adm,teachers
    10 repo_update=admins,admin,adm,teachers
    11 apt_install=admins,admin,adm,teachers
    12 sh_install=admins,admin,adm,teachers
    13 deb_install=admins,admin,adm,teachers
     6test_var=admin,admins,adm,teachers
     7reset_var=admin,admins,adm,teachers
     8update_var_dict=admin,admins,adm,teachers
     9app_deb_exist=admin,admins,adm,teachers
     10app_repo_exist=admin,admins,adm,teachers
     11repo_add=admin,admins,adm,teachers
     12repo_restore=admin,admins,adm,teachers
     13repo_update=admin,admins,adm,teachers
     14dict_ok=admin,admins,adm,teachers
     15test_apt_list =admin,admins,adm,teachers
     16test_deb_list =admin,admins,adm,teachers
     17remove_file =admin,admins,adm,teachers
  • lliurex-remote-installer/trunk/fuentes/lliurex-remote-installer-server.install/usr/share/n4d/python-plugins/LliureXRemoteInstaller.py

    r3694 r3833  
    1818        APT='apt'
    1919        SH='sh'
    20         LIST='lista'
     20        LIST='packages'
    2121        URL='url'
     22        SHARE_DIRECTORY='/var/www/llx-remote'
    2223       
    2324        def __init__(self):
     
    3233                        u=(user,passwd)
    3334                        VALOR=c.get_variable(u,"VariablesManager",namevar)
     35                        print self.SHARE_DIRECTORY
     36                        if not os.path.exists(self.SHARE_DIRECTORY):
     37                                os.makedirs(self.SHARE_DIRECTORY)
     38                                subprocess.Popen(["LANGUAGE=en_EN; chown 775 %s; sudo setfacl -m g:adm:rwx -d -m g:adm:rwx %s" %self.SHARE_DIRECTORY],shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE).communicate()[0]
     39                                os.system("sudo setfacl -m g:adm:rwx -d -m g:adm:rwx %s"%self.SHARE_DIRECTORY)
     40                                #os.chmod(self.SHARE_DIRECTORY, 755)
    3441                        print "[LLXRemoteInstaller] (test_var) Value for variable %s: %s"%(namevar,VALOR)
    3542                        if  VALOR in ["",None,'None']:
     
    141148                                f_used=open(self.file_sources,mode)
    142149                                print "open(%s,%s)"%(self.file_sources,mode)
    143                                 f_used.write(sources_private)
     150                                f_used.write(sources_private+'\n')
    144151                                f_used.close()
    145152                                print "[LLXRemoteInstaller](repo_add) File created now read it"
     
    164171        #def_repo_update
    165172       
    166        
     173        def remove_file (self,file=None):
     174                try:
     175                       
     176                        COMMENT="[LLXRemoteInstaller](remove_file) Reemoving file %s"%file     
     177                        print ("%s" %COMMENT)
     178                        if os.path.exists(file):
     179                                #print "Borrandoooooooooooooooooooooooooooooo"
     180                                os.remove(file)
     181                       
     182                                COMMENT="[LLXRemoteInstaller](remove_file) File %s has been deleted from server"%file
     183                                print ("%s" %COMMENT)
     184                                return [True,str(COMMENT)]
     185                        else:
     186                                COMMENT="[LLXRemoteInstaller](remove_file) ERROR: Cannot delete file %s from server"%file
     187                                print ("%s" %COMMENT)
     188                                return [False,str(COMMENT)]
     189                       
     190                except Exception as e:
     191                        return [False,str(e)]
     192               
     193        #def_repo_restore
    167194       
    168195        def repo_restore (self,file=None):
     
    202229       
    203230       
     231        def test_apt_list (self,dict=None):
     232               
     233                try:
     234                        list_apt=[]
     235                        list_apt_ok=[]
     236                        list_apt_testing=[]
     237                        for x in dict[self.APT]:
     238                                print "[LLXRemoteInstaller](test_apt_list) Comprobando el PPA: %s"%x
     239                                #print "[LLXRemoteInstaller](dict_ok) Comprobando el listado de APP: %s"%list_apt
     240                                url=dict[self.APT][x][self.URL]
     241                                list_apt_testing=dict[self.APT][x][self.LIST]
     242                                if url not in ["",None] and list_apt_testing not in ["",[],None]:
     243                                        if self.repo_add(url)[0]:
     244                                                COMMENT="[LLXRemoteInstaller](test_apt_list) Repo esta ADDED"
     245                                                print COMMENT
     246                                                list_apt=list_apt+list_apt_testing
     247                                                print "[LLXRemoteInstaller](test_apt_list) Anyadimos las APT del repo anterior, nueva lista: %s"%(list_apt)
     248                                        else:
     249                                                self.repo_restore(self.file_sources)
     250                                                COMMENT="[LLXRemoteInstaller](test_apt_list) Repo no se puede ADDED - PROBLEM"
     251                                                return [False,list_apt,COMMENT]
     252                       
     253                        if list_apt not in ["",None,[]] :
     254                                if self.repo_update()[0]:
     255                                        for app in list_apt:
     256                                                print "[LLXRemoteInstaller](test_apt_list) Comprobando si es avaiable el APT: %s"%app
     257                                                if self.app_repo_exist(app)[0]:
     258                                                        list_apt_ok.append(app)
     259                                        list_apt=list_apt_ok
     260                                        COMMENT="[LLXRemoteInstaller](test_apt_list) El listado de APT disponibles en el repo es: %s"%(list_apt)
     261                                        print COMMENT
     262                                else:
     263                                        self.repo_restore(self.file_sources)
     264                                        COMMENT="[LLXRemoteInstaller](test_apt_list) No se puede actualizar el repo - PROBLEM"
     265                                        return [False,list_apt,COMMENT]
     266                                       
     267                               
     268                        else:
     269                                COMMENT="[LLXRemoteInstaller](test_apt_list) No hacemos nada con este REPO esta vacio de contenido"
     270                                print COMMENT
     271                               
     272                        #UPDATE DICT
     273                        list_apt_deleted=[]
     274                        for x in dict[self.APT]:
     275                                list_apt_testing=[]
     276                                for app in dict[self.APT][x][self.LIST]:
     277                                        if app in list_apt:
     278                                                list_apt_testing.append(app)
     279                                        else:
     280                                                list_apt_deleted.append(app)
     281                                dict[self.APT][x][self.LIST]=list_apt_testing
     282                               
     283                        self.repo_restore(self.file_sources)
     284                        return [True,dict,list_apt,list_apt_deleted,COMMENT]
     285                       
     286                except Exception as e:
     287                        return [False,str(e)]
     288               
     289               
     290        #def test_apt_list
     291       
     292        def test_deb_list (self,dict=None):
     293               
     294                try:
     295               
     296                        #TEST DE LOS DEBS
     297                        list_debs=dict[self.DEB][self.LIST]
     298                        url=dict[self.DEB][self.URL]
     299                        #url=self.SHARE_DIRECTORY
     300                        print "[LLXRemoteInstaller](test_deb_list) El listado de DEBS es %s i lo comprobaremos en la URL: %s"%(list_debs,url)
     301                        list_debs_ok=[]
     302                        list_debs_fail=[]
     303                        for app in list_debs:
     304                                print "[LLXRemoteInstaller](test_deb_list) Comprobando si es avaiable el DEB: %s"%app
     305                                if self.app_deb_exist(app,url)[0]:
     306                                        list_debs_ok.append(app)
     307                                else:
     308                                        list_debs_fail.append(app)
     309                        list_debs=list_debs_ok
     310                        dict[self.DEB][self.LIST]=list_debs
     311                        print "[LLXRemoteInstaller](test_deb_list) Listado avaiable de DEBS: %s"%list_debs_ok
     312                        print "[LLXRemoteInstaller](test_deb_list) Listado Unavaiable de DEBS: %s"%list_debs_fail
     313                        return [True,dict,list_debs_ok,list_debs_fail]
     314                except Exception as e:
     315                        return [False,str(e)]
     316               
     317               
     318        #def test_deb_list
     319       
     320       
     321       
     322       
     323       
     324       
    204325        def dict_ok (self, dict={}):
    205326                try:
     
    211332                        #TEST DE LOS DEBS
    212333                        list_debs=dict[self.DEB][self.LIST]
    213                         url=dict[self.DEB][self.URL]
     334                        #url=dict[self.DEB][self.URL]
     335                       
    214336                        print "[LLXRemoteInstaller](dict_ok) El listado de DEBS es %s i lo comprobaremos en la URL: %s"%(list_debs,url)
    215337                        list_debs_ok=[]
Note: See TracChangeset for help on using the changeset viewer.